Neko  0.9.99
A portable framework for high-order spectral element flow simulations
aabb_tree.f90 File Reference

Go to the source code of this file.

Data Types

type  aabb_tree::aabb_node_t
 Node type for the Axis Aligned Bounding Box (aabb) Tree. More...
 
type  aabb_tree::aabb_tree_t
 Axis Aligned Bounding Box (aabb) Tree. More...
 

Modules

module  aabb_tree
 Axis Aligned Bounding Box (aabb) Tree data structure.
 

Functions/Subroutines

subroutine aabb_tree::aabb_node_init (this)
 Initializes the AABB node. More...
 
pure type(aabb_t) function aabb_tree::aabb_node_get_aabb (this)
 Returns the Axis Aligned Bounding Box (aabb) of the node. More...
 
pure integer function aabb_tree::aabb_node_get_object_index (this)
 Returns the object index of the node. More...
 
pure integer function aabb_tree::aabb_node_get_parent_index (this)
 Returns the parent index of the node. More...
 
pure integer function aabb_tree::aabb_node_get_left_index (this)
 Returns the left index of the node. More...
 
pure integer function aabb_tree::aabb_node_get_right_index (this)
 Returns the right index of the node. More...
 
real(kind=dp) function aabb_tree::aabb_node_min_distance (this, p)
 Get the minimum possible distance from the aabb to a point. More...
 
pure logical function aabb_tree::aabb_node_is_leaf (this)
 Returns true if the node is a leaf node. More...
 
pure logical function aabb_tree::aabb_node_is_valid (this)
 Returns true if the node is a valid node. More...
 
pure logical function aabb_tree::aabb_node_less (this, other)
 Returns true if the node is less than the other node. More...
 
pure logical function aabb_tree::aabb_node_greater (this, other)
 Returns true if the node is greater than the other node. More...
 
subroutine aabb_tree::aabb_tree_init (this, initial_capacity)
 Initializes the AABB tree. More...
 
subroutine aabb_tree::aabb_tree_build_tree (this, objects)
 Builds the tree. More...
 
integer function, dimension(:), allocatable aabb_tree::sort (array)
 
integer function aabb_tree::aabb_tree_get_size (this)
 Returns the size of the tree, in number of leaves. More...
 
pure integer function aabb_tree::aabb_tree_get_root_index (this)
 Returns the index of the root node. More...
 
pure integer function aabb_tree::aabb_tree_get_parent_index (this, node_index)
 Returns the index of the parent node of the node at the given index. More...
 
pure integer function aabb_tree::aabb_tree_get_left_index (this, node_index)
 Returns the index of the left node of the node at the given index. More...
 
pure integer function aabb_tree::aabb_tree_get_right_index (this, node_index)
 Returns the index of the right node of the node at the given index. More...
 
pure type(aabb_node_t) function aabb_tree::aabb_tree_get_node (this, node_index)
 Returns the node at the given index. More...
 
pure type(aabb_node_t) function aabb_tree::aabb_tree_get_root_node (this)
 Returns the root node of the tree. More...
 
pure type(aabb_node_t) function aabb_tree::aabb_tree_get_parent_node (this, node_index)
 Returns the parent node of the node at the given index. More...
 
pure type(aabb_node_t) function aabb_tree::aabb_tree_get_left_node (this, node_index)
 Returns the left node of the node at the given index. More...
 
pure type(aabb_node_t) function aabb_tree::aabb_tree_get_right_node (this, node_index)
 Returns the right node of the node at the given index. More...
 
pure type(aabb_t) function aabb_tree::aabb_tree_get_aabb (this, node_index)
 
subroutine aabb_tree::aabb_tree_insert_object (this, object, object_index)
 Inserts an object into the tree. More...
 
subroutine aabb_tree::aabb_tree_query_overlaps (this, object, object_index, overlaps)
 Queries the tree for overlapping objects. More...
 
integer function aabb_tree::aabb_tree_allocate_node (this)
 Allocates a new node in the tree. More...
 
subroutine aabb_tree::aabb_tree_deallocate_node (this, node_index)
 Deallocates a node in the tree. More...
 
subroutine aabb_tree::aabb_tree_insert_leaf (this, leaf_node_index)
 Inserts a leaf into the tree. More...
 
logical function aabb_tree::aabb_tree_valid_tree (this)
 Validates the tree. More...
 
subroutine aabb_tree::aabb_tree_fix_upwards_tree (this, tree_start_index)
 Fixes the tree upwards. More...
 
subroutine aabb_tree::aabb_tree_print (this)
 Prints the tree. More...
 
subroutine aabb_tree::aabb_tree_resize_node_pool (this, new_capacity)
 Resizes the node pool. More...
 

Variables

integer, parameter, public aabb_tree::aabb_null_node = -1