repeat Derived Type

type, public, extends(sdf_base) :: repeat

Repeat a SDF


Components

Type Visibility Attributes Name Initial
real(kind=wp), public :: c
type(vector), public :: la
integer, public :: layer

Layer ID of SDF

type(vector), public :: lb
type(opticalProp_t), public :: optProps

Optical property of the SDF

class(sdf_base), public, pointer :: prim
real(kind=wp), public :: transform(4,4)

Transform to apply to SDF.


Constructor

public interface repeat

  • private function repeat_init(prim, c, la, lb) result(out)

    Initialise the Repeat modifier for a SDF.

    Arguments

    Type IntentOptional Attributes Name
    class(sdf_base), target :: prim

    SDF to modify

    real(kind=wp), intent(in) :: c
    type(vector), intent(in) :: la
    type(vector), intent(in) :: lb

    Return Value type(repeat)


Type-Bound Procedures

procedure, public :: evaluate => eval_repeat

  • private pure elemental function eval_repeat(this, pos) result(res)

    Evaluation function for Repeat modifier.

    Arguments

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

    Position to evaluate the modifier at

    Return Value real(kind=wp)

Source Code

    type, extends(sdf_base) :: repeat
        real(kind=wp) :: c
        type(vector) :: la, lb
        class(sdf_base), pointer :: prim
        contains
        procedure :: evaluate => eval_repeat
    end type repeat