sdf_base Derived Type

type, public, abstract :: sdf_base

Abstract base type from which all SDF inherit from.


Components

Type Visibility Attributes Name Initial
integer, public :: layer

Layer ID of SDF

type(opticalProp_t), public :: optProps

Optical property of the SDF

real(kind=wp), public :: transform(4,4)

Transform to apply to SDF.


Type-Bound Procedures

procedure(evalInterface), public, deferred :: evaluate

  • pure elemental function evalInterface(this, pos) result(res) Prototype

    Evaluation function for SDF. ALL SDF must implment this.

    Arguments

    Type IntentOptional Attributes Name
    class(sdf_base), intent(in) :: this
    type(vector), intent(in) :: pos

    Return Value real(kind=wp)

Source Code

    type, abstract :: sdf_base
        !> Optical property of the SDF
        type(opticalProp_t) :: optProps
        !> Transform to apply to SDF.
        real(kind=wp) :: transform(4, 4)
        !> Layer ID of SDF
        integer :: layer
        contains
            procedure(evalInterface), deferred :: evaluate
    end type sdf_base