This module provides the user with a simple geometrical object like point, line, plane and box.
Detail description of the canonical shapes can be found in the Documentation.
interface to write out canonical shape(s) in lua format to a file
Write out a canonicalND shape in lua format
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(in) | :: | me | canonicalND types to write out |
||
type(aot_out_type), | intent(inout) | :: | conf | Aotus type handling the output to the file in lua format |
Write out an array of canonical shapes in lua format
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(in) | :: | me(:) | canonicalND types to write out |
||
type(aot_out_type), | intent(inout) | :: | conf | Aotus type handling the output to the file in lua format |
interface to load canonical objects
Read one canonical object definition into a tem_canonicalND_type from a lua table.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(out) | :: | me | contains canonicalND data |
||
type(tem_transformation_type), | intent(in) | :: | transform | transformation for spatial object |
||
type(flu_state) | :: | conf | lua state |
|||
integer, | intent(in) | :: | thandle | lua table identification |
||
logical, | intent(in), | optional | :: | reqSegments | Is true if use_get_point is true in output table |
Loading canonicalNDs from the config file valid definitions:
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(out), | allocatable | :: | me(:) | the array of canonical objects which to read in (and first allocate) |
|
type(tem_transformation_type), | intent(in) | :: | transform | transformation for spatial object |
||
type(flu_state) | :: | conf | lua config handle |
|||
integer, | intent(in) | :: | thandle | table handle from which to read |
||
logical, | intent(in), | optional | :: | reqSegments | Is true if use_get_point is true in output table |
This routine apply transformations to canonical objects
This routine apply transformation to canonical objects.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(inout) | :: | canoND(:) | canonical geometry object type |
||
type(tem_transformation_type), | intent(in) | :: | transform | transformation for spatial object |
This routine apply transformation to canonical objects.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(inout) | :: | canoND | canonical geometry object type |
||
type(tem_transformation_type), | intent(in) | :: | transform | transformation for spatial object |
Definition of the canonicalND
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | private | :: | origin(3) | origin of the canonical shape |
|||
real(kind=rk), | private | :: | vec(3,3) | vector along the edge A (also defines size) 1st dimension defines x,y, z coord 2nd dimension vec number |
|||
integer, | private | :: | segments(3) | how many discrete points the canonicalND is divided into |
|||
character(len=labellen), | private | :: | distribution | spatial distribution of the points |
|||
character(len=labellen), | private | :: | kind | kind of canonicalND (line, plane, point, box) |
|||
logical, | private | :: | active(3) | identify which vectors are active (not equal 0) |
|||
integer, | private | :: | nDim | dimension of canonical object nDim=0 - point nDim=1 - line nDim=2 - plane nDim=3 - box |
|||
logical, | private | :: | only_surface | = | .false. | To choose what to do with intersection of box if only_surface = true than the only the surface of the object is intersected if only_surface = false then the whole object is intersected default is set to false |
|
type(tem_point_type), | private | :: | point | canonical point |
|||
type(tem_line_type), | private | :: | line | ||||
type(tem_plane_type), | private | :: | plane | ||||
type(tem_box_type), | private | :: | box |
Return the next coordinate of the canonical shape.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(in) | :: | me | current canonical type |
||
integer, | intent(in) | :: | iElem | current element within total amount of elements to process |
calulated real-world coordinate, which is returned
Create subtree from the intersection of canonical shapes and inTree
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(in) | :: | me(:) | canonicalND objects on which to work |
||
type(treelmesh_type), | intent(in) | :: | inTree | Global tree |
||
integer, | intent(inout) | :: | countElems(globalMaxLevels) | How many elements there will be for each level in the track |
||
type(dyn_intarray_type), | intent(inout) | :: | map2global | growing array for the map2global |
||
logical, | intent(in) | :: | shapeInverted | If true then elements not intersected are added to subTree |
Generate points using segments on canoND and add those points to a growing array of points if a point is found in subTree
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(in) | :: | me(:) | canonicalND objects on which to work |
||
type(treelmesh_type), | intent(in) | :: | inTree | Global tree |
||
type(dyn_intarray_type), | intent(in) | :: | map2global | growing array for the map2global |
||
integer, | intent(inout) | :: | countPoints | How many points there will be |
||
type(tem_grwPoints_type), | intent(inout) | :: | grwPnts | growing array to store tracking points |
Loading canonicalNDs from the config file valid definitions:
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(out), | allocatable | :: | me(:) | the array of canonical objects which to read in (and first allocate) |
|
type(tem_transformation_type), | intent(in) | :: | transform | transformation for spatial object |
||
type(flu_state) | :: | conf | lua config handle |
|||
integer, | intent(in) | :: | thandle | table handle from which to read |
||
logical, | intent(in), | optional | :: | reqSegments | Is true if use_get_point is true in output table |
Read one canonical object definition into a tem_canonicalND_type from a lua table.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(out) | :: | me | contains canonicalND data |
||
type(tem_transformation_type), | intent(in) | :: | transform | transformation for spatial object |
||
type(flu_state) | :: | conf | lua state |
|||
integer, | intent(in) | :: | thandle | lua table identification |
||
logical, | intent(in), | optional | :: | reqSegments | Is true if use_get_point is true in output table |
This routine apply transformation to canonical objects.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(inout) | :: | canoND(:) | canonical geometry object type |
||
type(tem_transformation_type), | intent(in) | :: | transform | transformation for spatial object |
This routine apply transformation to canonical objects.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(inout) | :: | canoND | canonical geometry object type |
||
type(tem_transformation_type), | intent(in) | :: | transform | transformation for spatial object |
Write out an array of canonical shapes in lua format
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(in) | :: | me(:) | canonicalND types to write out |
||
type(aot_out_type), | intent(inout) | :: | conf | Aotus type handling the output to the file in lua format |
Write out a canonicalND shape in lua format
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(in) | :: | me | canonicalND types to write out |
||
type(aot_out_type), | intent(inout) | :: | conf | Aotus type handling the output to the file in lua format |