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