Model type. Allows the collection of multiple SDF into one model. Used to apply modifiers.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(sdf), | public, | allocatable | :: | array(:) |
Array of SDFs in the model |
||
procedure(op), | public, | nopass, pointer | :: | func |
SDF modifier function |
||
real(kind=wp), | public | :: | k |
Parameter that may be used in modifer function. |
|||
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. |
Initalise the model type.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sdf), | intent(in) | :: | array(:) |
Array of SDFs |
||
procedure(op) | :: | func |
Operator to apply to SDF. |
|||
real(kind=wp), | intent(in), | optional | :: | kopt |
Parameter used in modifier |
Evaluate the model
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(model), | intent(in) | :: | this | |||
type(vector), | intent(in) | :: | pos |
Vector position to evaluate at |
type, extends(sdf_base) :: model !> Array of SDFs in the model type(sdf), allocatable :: array(:) !> SDF modifier function procedure(op), nopass, pointer :: func !> Parameter that may be used in modifer function. real(kind=wp) :: k contains procedure :: evaluate => eval_model end type model