Neko 0.9.99
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
aabb_tree::aabb_tree_t Type Reference

Axis Aligned Bounding Box (aabb) Tree. More...

Collaboration diagram for aabb_tree::aabb_tree_t:

Public Member Functions

procedure, pass, public init (this, initial_capacity)
 Initializes the AABB tree.
 
procedure, pass, public build (this, objects)
 Builds the tree.
 
procedure, pass, public insert_object (this, object, object_index)
 Inserts an object into the tree.
 
procedure, pass, public get_size (this)
 Returns the size of the tree, in number of leaves.
 
procedure, pass, public get_root_index (this)
 Returns the index of the root node.
 
procedure, pass, public get_parent_index (this, node_index)
 Returns the index of the parent node of the node at the given index.
 
procedure, pass, public get_left_index (this, node_index)
 Returns the index of the left node of the node at the given index.
 
procedure, pass, public get_right_index (this, node_index)
 Returns the index of the right node of the node at the given index.
 
procedure, pass, public get_node (this, node_index)
 Returns the node at the given index.
 
procedure, pass, public get_root_node (this)
 Returns the root node of the tree.
 
procedure, pass, public get_parent_node (this, node_index)
 Returns the parent node of the node at the given index.
 
procedure, pass, public get_left_node (this, node_index)
 Returns the left node of the node at the given index.
 
procedure, pass, public get_right_node (this, node_index)
 Returns the right node of the node at the given index.
 
procedure, pass, public get_aabb (this, node_index)
 
procedure, pass, public query_overlaps (this, object, object_index, overlaps)
 Queries the tree for overlapping objects.
 
procedure, pass, public print (this)
 Prints the tree.
 
procedure, pass(thisallocate_node (this)
 Allocates a new node in the tree.
 
procedure, pass(thisdeallocate_node (this, node_index)
 Deallocates a node in the tree.
 
procedure, pass(thisresize_node_pool (this, new_capacity)
 Resizes the node pool.
 
procedure, pass(thisinsert_leaf (this, leaf_node_index)
 Inserts a leaf into the tree.
 
procedure, pass(thisfix_upwards_tree (this, tree_start_index)
 Fixes the tree upwards.
 
procedure, pass(thisvalid_tree (this)
 Validates the tree.
 

Public Attributes

integer root_node_index = AABB_NULL_NODE
 
integer allocated_node_count = 0
 
integer next_free_node_index = AABB_NULL_NODE
 
integer node_capacity = 0
 
integer growth_size = 1
 

Private Attributes

type(aabb_node_t), dimension(:), allocatable nodes
 

Detailed Description

Definition at line 129 of file aabb_tree.f90.

Member Function/Subroutine Documentation

◆ allocate_node()

procedure, pass(this) aabb_tree::aabb_tree_t::allocate_node ( class(aabb_tree_t), intent(inout this)

Definition at line 178 of file aabb_tree.f90.

◆ build()

procedure, pass, public aabb_tree::aabb_tree_t::build ( class(aabb_tree_t), intent(inout this,
class(*), dimension(:), intent(in objects 
)

Definition at line 142 of file aabb_tree.f90.

◆ deallocate_node()

procedure, pass(this) aabb_tree::aabb_tree_t::deallocate_node ( class(aabb_tree_t), intent(inout this,
integer, intent(in node_index 
)

Definition at line 179 of file aabb_tree.f90.

◆ fix_upwards_tree()

procedure, pass(this) aabb_tree::aabb_tree_t::fix_upwards_tree ( class(aabb_tree_t), intent(inout this,
integer, intent(in tree_start_index 
)

This method is used to fix the tree upwards after an insertion. It is used to expand the nodes of the tree to fit the new leaf node.

Definition at line 183 of file aabb_tree.f90.

◆ get_aabb()

procedure, pass, public aabb_tree::aabb_tree_t::get_aabb ( class(aabb_tree_t), intent(in this,
integer, intent(in node_index 
)

Definition at line 168 of file aabb_tree.f90.

◆ get_left_index()

procedure, pass, public aabb_tree::aabb_tree_t::get_left_index ( class(aabb_tree_t), intent(in this,
integer, intent(in node_index 
)

Definition at line 153 of file aabb_tree.f90.

◆ get_left_node()

procedure, pass, public aabb_tree::aabb_tree_t::get_left_node ( class(aabb_tree_t), intent(in this,
integer, intent(in node_index 
)

Definition at line 163 of file aabb_tree.f90.

◆ get_node()

procedure, pass, public aabb_tree::aabb_tree_t::get_node ( class(aabb_tree_t), intent(in this,
integer, intent(in node_index 
)

Definition at line 158 of file aabb_tree.f90.

◆ get_parent_index()

procedure, pass, public aabb_tree::aabb_tree_t::get_parent_index ( class(aabb_tree_t), intent(in this,
integer, intent(in node_index 
)

Definition at line 151 of file aabb_tree.f90.

◆ get_parent_node()

procedure, pass, public aabb_tree::aabb_tree_t::get_parent_node ( class(aabb_tree_t), intent(in this,
integer, intent(in node_index 
)

Definition at line 161 of file aabb_tree.f90.

◆ get_right_index()

procedure, pass, public aabb_tree::aabb_tree_t::get_right_index ( class(aabb_tree_t), intent(in this,
integer, intent(in node_index 
)

Definition at line 155 of file aabb_tree.f90.

◆ get_right_node()

procedure, pass, public aabb_tree::aabb_tree_t::get_right_node ( class(aabb_tree_t), intent(in this,
integer, intent(in node_index 
)

Definition at line 165 of file aabb_tree.f90.

◆ get_root_index()

procedure, pass, public aabb_tree::aabb_tree_t::get_root_index ( class(aabb_tree_t), intent(in this)

Definition at line 149 of file aabb_tree.f90.

◆ get_root_node()

procedure, pass, public aabb_tree::aabb_tree_t::get_root_node ( class(aabb_tree_t), intent(in this)

Definition at line 159 of file aabb_tree.f90.

◆ get_size()

procedure, pass, public aabb_tree::aabb_tree_t::get_size ( class(aabb_tree_t), intent(in this)

Definition at line 147 of file aabb_tree.f90.

◆ init()

procedure, pass, public aabb_tree::aabb_tree_t::init ( class(aabb_tree_t), intent(inout this,
integer, intent(in initial_capacity 
)

Definition at line 141 of file aabb_tree.f90.

◆ insert_leaf()

procedure, pass(this) aabb_tree::aabb_tree_t::insert_leaf ( class(aabb_tree_t), intent(inout this,
integer, intent(in leaf_node_index 
)

Definition at line 181 of file aabb_tree.f90.

◆ insert_object()

procedure, pass, public aabb_tree::aabb_tree_t::insert_object ( class(aabb_tree_t), intent(inout this,
class(*), intent(in object,
integer, intent(in object_index 
)

Definition at line 143 of file aabb_tree.f90.

◆ print()

procedure, pass, public aabb_tree::aabb_tree_t::print ( class(aabb_tree_t), intent(inout this)

Definition at line 173 of file aabb_tree.f90.

◆ query_overlaps()

procedure, pass, public aabb_tree::aabb_tree_t::query_overlaps ( class(aabb_tree_t), intent(in this,
class(*), intent(in object,
integer, intent(in object_index,
integer, dimension(:), intent(out overlaps 
)

Definition at line 170 of file aabb_tree.f90.

◆ resize_node_pool()

procedure, pass(this) aabb_tree::aabb_tree_t::resize_node_pool ( class(aabb_tree_t), intent(inout this,
integer, intent(in new_capacity 
)

Definition at line 180 of file aabb_tree.f90.

◆ valid_tree()

procedure, pass(this) aabb_tree::aabb_tree_t::valid_tree ( class(aabb_tree_t), intent(in this)

Definition at line 185 of file aabb_tree.f90.

Member Data Documentation

◆ allocated_node_count

integer aabb_tree::aabb_tree_t::allocated_node_count = 0

Definition at line 133 of file aabb_tree.f90.

◆ growth_size

integer aabb_tree::aabb_tree_t::growth_size = 1

Definition at line 136 of file aabb_tree.f90.

◆ next_free_node_index

integer aabb_tree::aabb_tree_t::next_free_node_index = AABB_NULL_NODE

Definition at line 134 of file aabb_tree.f90.

◆ node_capacity

integer aabb_tree::aabb_tree_t::node_capacity = 0

Definition at line 135 of file aabb_tree.f90.

◆ nodes

type(aabb_node_t), dimension(:), allocatable aabb_tree::aabb_tree_t::nodes
private

Definition at line 131 of file aabb_tree.f90.

◆ root_node_index

integer aabb_tree::aabb_tree_t::root_node_index = AABB_NULL_NODE

Definition at line 132 of file aabb_tree.f90.


The documentation for this type was generated from the following file: