This routine appends temporary child intersected object to actual growing array of intersected objects. To reduce memory usuage, the child with maximum number of intersected objects from parent is appended at same position as its parent. Rest of the childrens intersected objects are appended to the end of growing array.
We append only objects with level greater than children minLevel to reduce memory.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(sdr_geometry_type), | intent(in) | :: | geometry | type which contains all geometry object infos |
||
type(sdr_node_type), | intent(in) | :: | node | contains information about all nodes in protoTree |
||
integer, | intent(in) | :: | parent | Position of parent node |
||
logical, | intent(in) | :: | testAll | true for level 1 nodes |
||
type(grw_intarray_type), | intent(inout) | :: | intersected_object | Growing array of intersected objects. Could be user defined or distance refine spatial objects |
||
type(grw_intersectobjposarray_type), | intent(inout) | :: | grwObjPos | First and last position of intersected object of all nodes in intersected_object list |
||
integer, | intent(in) | :: | child_nodePos(8) | 8 children node position in protoTree |
||
type(grw_intarray_type), | intent(inout) | :: | child_intersected_object | Temporary array of intersected objects for 8 children |
||
type(sdr_intersectObjPos_type), | intent(in) | :: | child_objPos(8) | first and last index of intersected objects of 8 children in child_intersected_object list |
||
integer, | intent(out) | :: | memLeft | memory of parent intersected object unused by children |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | iChild | ||||
integer, | private | :: | childIDX | ||||
integer, | private | :: | child_sorted(8) | ||||
integer, | private | :: | child_objPos_first_inParent | ||||
integer, | private | :: | child_objPos_next_inParent | ||||
integer, | private | :: | child_nObjectsNew(8) | ||||
logical, | private | :: | parent_isTarget | ||||
integer, | private | :: | iObject | ||||
integer, | private | :: | obj_pos | ||||
integer, | private | :: | attr_pos | ||||
integer, | private | :: | objLevel |