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

Axis Aligned Bounding Box (aabb) data structure. More...

Public Member Functions

procedure, pass, public init (this, lower_left_front, upper_right_back)
 Initialize the aabb.
 
procedure, pass, public get_min (this)
 Get the minimum point of the aabb.
 
procedure, pass, public get_max (this)
 Get the maximum point of the aabb.
 
procedure, pass, public get_width (this)
 Get the width of the aabb. Also known as the x-axis length.
 
procedure, pass, public get_height (this)
 Get the height of the aabb. Also known as the z-axis length.
 
procedure, pass, public get_depth (this)
 Get the depth of the aabb. Also known as the y-axis length.
 
procedure, pass, public get_diameter (this)
 Get the diameter length of the aabb.
 
procedure, pass, public get_surface_area (this)
 Get the surface area of the aabb.
 
procedure, pass, public get_center (this)
 Get the center of the aabb.
 
procedure, pass, public get_diagonal (this)
 Get the diagonal of the aabb.
 
procedure, pass, public add_padding (this, padding)
 Add padding to the aabb.
 
generic operator (this, other)
 Less than comparison operator.
 
generic operator (this, other)
 Greater than comparison operator.
 
procedure, pass, public overlaps (this, other)
 Check if two aabbs are overlapping.
 
procedure, pass, public contains (this, other)
 Check if this aabb fully contains another aabb.
 
procedure, pass, public contains_point (this, p)
 Check if this aabb contains a point.
 
procedure, pass(thisless (this, other)
 Less than comparison operator.
 
procedure, pass(thisgreater (this, other)
 Greater than comparison operator.
 

Public Attributes

real(kind=dp), dimension(3) box_min = huge(0.0_dp)
 
real(kind=dp), dimension(3) box_max = -huge(0.0_dp)
 
real(kind=dp), dimension(3) center = 0.0_dp
 
real(kind=dp) diameter = huge(0.0_dp)
 
real(kind=dp) surface_area = 0.0_dp
 

Private Member Functions

procedure, pass, private calculate_surface_area (this)
 Calculate the surface area of the aabb.
 

Private Attributes

logical initialized = .false.
 

Detailed Description

The aabb is a box that is aligned to the x, y and z axes. It is defined by two points, the lower left front corner and the upper right back corner. The purpose of this is to accelerate a Signed Distance Function, through an aabb_Tree.

Definition at line 107 of file aabb.f90.

Member Function/Subroutine Documentation

◆ add_padding()

procedure, pass, public aabb::aabb_t::add_padding ( class(aabb_t), intent(inout this,
real(kind=dp), intent(in padding 
)

This function adds padding to the aabb. The padding is a multiple of the diameter of the aabb. This is used to avoid numerical issues when the object itself it axis aligned.

Parameters
[in]paddingThe padding of the aabb.

Definition at line 133 of file aabb.f90.

◆ calculate_surface_area()

procedure, pass, private aabb::aabb_t::calculate_surface_area ( class(aabb_t), intent(in this)
private

Definition at line 151 of file aabb.f90.

◆ contains()

procedure, pass, public aabb::aabb_t::contains ( class(aabb_t), intent(in this,
class(aabb_t), intent(in other 
)

Definition at line 142 of file aabb.f90.

◆ contains_point()

procedure, pass, public aabb::aabb_t::contains_point ( class(aabb_t), intent(in this,
real(kind=dp), dimension(3), intent(in p 
)

Definition at line 144 of file aabb.f90.

◆ get_center()

procedure, pass, public aabb::aabb_t::get_center ( class(aabb_t), intent(in this)

Definition at line 130 of file aabb.f90.

◆ get_depth()

procedure, pass, public aabb::aabb_t::get_depth ( class(aabb_t), intent(in this)

Definition at line 127 of file aabb.f90.

◆ get_diagonal()

procedure, pass, public aabb::aabb_t::get_diagonal ( class(aabb_t), intent(in this)

Definition at line 131 of file aabb.f90.

◆ get_diameter()

procedure, pass, public aabb::aabb_t::get_diameter ( class(aabb_t), intent(in this)

Definition at line 128 of file aabb.f90.

◆ get_height()

procedure, pass, public aabb::aabb_t::get_height ( class(aabb_t), intent(in this)

Definition at line 126 of file aabb.f90.

◆ get_max()

procedure, pass, public aabb::aabb_t::get_max ( class(aabb_t), intent(in this)

Definition at line 124 of file aabb.f90.

◆ get_min()

procedure, pass, public aabb::aabb_t::get_min ( class(aabb_t), intent(in this)

Definition at line 123 of file aabb.f90.

◆ get_surface_area()

procedure, pass, public aabb::aabb_t::get_surface_area ( class(aabb_t), intent(in this)

Definition at line 129 of file aabb.f90.

◆ get_width()

procedure, pass, public aabb::aabb_t::get_width ( class(aabb_t), intent(in this)

Definition at line 125 of file aabb.f90.

◆ greater()

procedure, pass(this) aabb::aabb_t::greater ( class(aabb_t), intent(in this,
class(aabb_t), intent(in other 
)

Definition at line 148 of file aabb.f90.

◆ init()

procedure, pass, public aabb::aabb_t::init ( class(aabb_t), intent(inout this,
real(kind=dp), dimension(3), intent(in lower_left_front,
real(kind=dp), dimension(3), intent(in upper_right_back 
)
Parameters
lower_left_frontThe lower left front corner of the aabb.
upper_right_backThe upper right back corner of the aabb.

Definition at line 120 of file aabb.f90.

◆ less()

procedure, pass(this) aabb::aabb_t::less ( class(aabb_t), intent(in this,
class(aabb_t), intent(in other 
)

Definition at line 147 of file aabb.f90.

◆ operator() [1/2]

generic aabb::aabb_t::operator ( class(aabb_t), intent(in this,
class(aabb_t), intent(in other 
)

Definition at line 136 of file aabb.f90.

◆ operator() [2/2]

generic aabb::aabb_t::operator ( class(aabb_t), intent(in this,
class(aabb_t), intent(in other 
)

Definition at line 137 of file aabb.f90.

◆ overlaps()

procedure, pass, public aabb::aabb_t::overlaps ( class(aabb_t), intent(in this,
class(aabb_t), intent(in other 
)

Definition at line 140 of file aabb.f90.

Member Data Documentation

◆ box_max

real(kind=dp), dimension(3) aabb::aabb_t::box_max = -huge(0.0_dp)

Definition at line 112 of file aabb.f90.

◆ box_min

real(kind=dp), dimension(3) aabb::aabb_t::box_min = huge(0.0_dp)

Definition at line 111 of file aabb.f90.

◆ center

real(kind=dp), dimension(3) aabb::aabb_t::center = 0.0_dp

Definition at line 113 of file aabb.f90.

◆ diameter

real(kind=dp) aabb::aabb_t::diameter = huge(0.0_dp)

Definition at line 114 of file aabb.f90.

◆ initialized

logical aabb::aabb_t::initialized = .false.
private

Definition at line 110 of file aabb.f90.

◆ surface_area

real(kind=dp) aabb::aabb_t::surface_area = 0.0_dp

Definition at line 115 of file aabb.f90.


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