Operator =.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(aabb_tree_object), | intent(inout) | :: | lhs | Left hand side. |
||
| type(aabb_tree_object), | intent(in) | :: | rhs | Right hand side. |
pure subroutine aabb_tree_assign_aabb_tree(lhs, rhs)
!< Operator `=`.
class(aabb_tree_object), intent(inout) :: lhs !< Left hand side.
type(aabb_tree_object), intent(in) :: rhs !< Right hand side.
integer :: b !< Counter.
if (allocated(lhs%node)) then
do b=1, lhs%nodes_number
call lhs%node%destroy
enddo
deallocate(lhs%node)
endif
lhs%refinement_levels = rhs%refinement_levels
lhs%nodes_number = rhs%nodes_number
if (allocated(rhs%node)) then
allocate(lhs%node(0:lhs%nodes_number-1))
do b=0, lhs%nodes_number-1
lhs%node(b) = rhs%node(b)
enddo
endif
lhs%is_initialized = rhs%is_initialized
endsubroutine aabb_tree_assign_aabb_tree