#include <bounding_volume_tree.h>
Class Description:
- This abstract class represents a k-discrete oriented polytope (k-DOP) in 3D
- k-DOP is a bounding volume concept, that allows to wrap a geometry in a convex volume
◆ Array2DType
◆ ArrayType
typedef const double Kratos::kDOP::ArrayType[3] |
◆ GeometryType
◆ NodeType
◆ PointType
◆ kDOP()
◆ ~kDOP()
virtual Kratos::kDOP::~kDOP |
( |
| ) |
|
|
inlinevirtual |
◆ Direction()
const double(& Kratos::kDOP::Direction |
( |
std::size_t |
i | ) |
)[3] |
|
inline |
◆ GetInequalities()
void Kratos::kDOP::GetInequalities |
( |
Matrix & |
rM, |
|
|
Vector & |
rB |
|
) |
| const |
|
inline |
◆ GetLongestAxis()
std::size_t Kratos::kDOP::GetLongestAxis |
( |
| ) |
const |
|
inline |
◆ GetType()
std::size_t Kratos::kDOP::GetType |
( |
| ) |
const |
|
inline |
Get the type of this k-DOP.
◆ Initialize()
void Kratos::kDOP::Initialize |
( |
| ) |
|
|
inline |
Initialize the bounding volume to initial state.
◆ InsertGeometry()
template<bool current_configuration>
void Kratos::kDOP::InsertGeometry |
( |
const GeometryType & |
rGeometry | ) |
|
|
inline |
Add a geometry (from an element/a condition) to the k-DOP.
◆ InsertPoint()
void Kratos::kDOP::InsertPoint |
( |
const double & |
rX, |
|
|
const double & |
rY, |
|
|
const double & |
rZ |
|
) |
| |
|
inline |
Add a point to the DOP /// This is mainly used for debugging.
◆ IsInside()
Check if the point is inside the bounding volume tolerance parameter is to account for proximity
◆ KRATOS_CLASS_POINTER_DEFINITION()
Kratos::kDOP::KRATOS_CLASS_POINTER_DEFINITION |
( |
kDOP |
| ) |
|
◆ MaxValues()
const std::vector<double>& Kratos::kDOP::MaxValues |
( |
| ) |
const |
|
inline |
◆ MinValues()
const std::vector<double>& Kratos::kDOP::MinValues |
( |
| ) |
const |
|
inline |
Get the respective minimum values and maximum values of this bounding volume.
◆ NumberOfDirections()
virtual std::size_t Kratos::kDOP::NumberOfDirections |
( |
| ) |
const |
|
inlinevirtual |
◆ PrintInfo()
void Kratos::kDOP::PrintInfo |
( |
std::ostream & |
rOStream | ) |
const |
|
inline |
◆ SetVolume()
void Kratos::kDOP::SetVolume |
( |
const kDOP & |
rBV1, |
|
|
const kDOP & |
rBV2 |
|
) |
| |
|
inline |
Set the bounding volume by summing up two BVs. It will re-initialize all data of this kDOP.
◆ SetVolumeIntersection()
bool Kratos::kDOP::SetVolumeIntersection |
( |
const kDOP & |
rBV1, |
|
|
const kDOP & |
rBV2, |
|
|
double |
tolerance |
|
) |
| |
|
inline |
Set the bounding volume by intersecting two BVs. It will re-initialize all data of this kDOP.
◆ TestOverlapped()
int Kratos::kDOP::TestOverlapped |
( |
const kDOP & |
rOther, |
|
|
double |
tolerance, |
|
|
bool |
test_tangent = true |
|
) |
| const |
|
inline |
Test if this bounding volume overlap or no-overlaping with another one The meaning of return value:
- 0: the two BVs are not overlapping within the tolerance, which mean this condition is satisfied in at least one direction: (this.max <= other.min - tol) or (this.min >= other.max + tol)
- 1: the two BVs are overlapping, which means in all direction, this condition is satisfied: (this.max >= other.min + tol) or (this.min <= other.max - tol)
- 2: the two BVs are in tangent to each other (only enabled if test_tangent == true)
The documentation for this class was generated from the following files: