Open CASCADE Technology 7.8.2.dev
BVH Namespace Reference

Data Structures

struct  Array
 Tool class providing typical operations on the array. It allows for interoperability between STD vector and NCollection vector. More...
 
struct  ArrayType
 Tool class for selecting type of array of vectors (STD or NCollection vector). More...
 
struct  BitComparator
 STL compare tool used in binary search algorithm. More...
 
struct  BitPredicate
 
struct  BoundData
 
struct  BoxMinMax
 Tool class for calculate component-wise vector minimum and maximum (optimized version). More...
 
struct  BoxMinMax< T, 2 >
 
struct  BVH_AxisSelector
 
struct  BVH_AxisSelector< T, 2 >
 
struct  CenterAxis
 Tool class for calculating box center along the given axis. More...
 
struct  CenterAxis< T, 2 >
 
struct  CenterAxis< T, 3 >
 
struct  CenterAxis< T, 4 >
 
struct  MatrixOp
 
struct  MatrixOp< T, 4 >
 
struct  MatrixType
 Tool class for selecting appropriate matrix type (Eigen or NCollection). More...
 
struct  MatrixType< T, 4 >
 
class  RadixSorter
 Tool object for sorting link array using radix sort algorithm. More...
 
struct  SurfaceCalculator
 Tool class for calculating surface area of the box. More...
 
struct  SurfaceCalculator< T, 2 >
 
struct  SurfaceCalculator< T, 3 >
 
struct  SurfaceCalculator< T, 4 >
 
struct  UnitVector
 
struct  UnitVector< T, 2 >
 
struct  UnitVector< T, 3 >
 
struct  UnitVector< T, 4 >
 
class  UpdateBoundTask
 Task for parallel bounds updating. More...
 
struct  VecComp
 Tool class for accessing specific vector component (by index). More...
 
struct  VecComp< T, 2 >
 
struct  VecComp< T, 3 >
 
struct  VecComp< T, 4 >
 
struct  VectorType
 Tool class for selecting appropriate vector type (Eigen or NCollection). More...
 
struct  VectorType< T, 1 >
 
struct  VectorType< T, 2 >
 
struct  VectorType< T, 3 >
 
struct  VectorType< T, 4 >
 

Functions

template<class T , int N>
void EstimateSAH (const BVH_Tree< T, N, BVH_BinaryTree > *theTree, const int theNode, T theProb, T &theSAH)
 Internal function for recursive calculation of surface area heuristic (SAH) of the given tree.
 
template<class T , int N>
Standard_Integer SplitPrimitives (BVH_Set< T, N > *theSet, const BVH_Box< T, N > &theBox, const Standard_Integer theBeg, const Standard_Integer theEnd, const Standard_Integer theBin, const Standard_Integer theAxis, const Standard_Integer theBins)
 
template<class T , int N>
Standard_Integer UpdateBounds (BVH_Set< T, N > *theSet, BVH_Tree< T, N > *theTree, const Standard_Integer theNode=0)
 Calculates bounding boxes (AABBs) for the given BVH tree.
 
template<class T >
Bnd_Box ToBndBox (const T &theMin, const T &theMax)
 
template<class T >
Bnd_Box ToBndBox (const NCollection_Vec2< T > &theMin, const NCollection_Vec2< T > &theMax)
 
template<class T >
Bnd_Box ToBndBox (const NCollection_Vec3< T > &theMin, const NCollection_Vec3< T > &theMax)
 
template<class T >
Bnd_Box ToBndBox (const NCollection_Vec4< T > &theMin, const NCollection_Vec4< T > &theMax)
 

Variables

const double THE_NODE_MIN_SIZE = 1e-5
 Minimum node size to split.
 

Function Documentation

◆ EstimateSAH()

template<class T , int N>
void BVH::EstimateSAH ( const BVH_Tree< T, N, BVH_BinaryTree > * theTree,
const int theNode,
T theProb,
T & theSAH )

Internal function for recursive calculation of surface area heuristic (SAH) of the given tree.

◆ SplitPrimitives()

template<class T , int N>
Standard_Integer BVH::SplitPrimitives ( BVH_Set< T, N > * theSet,
const BVH_Box< T, N > & theBox,
const Standard_Integer theBeg,
const Standard_Integer theEnd,
const Standard_Integer theBin,
const Standard_Integer theAxis,
const Standard_Integer theBins )

◆ ToBndBox() [1/4]

template<class T >
Bnd_Box BVH::ToBndBox ( const NCollection_Vec2< T > & theMin,
const NCollection_Vec2< T > & theMax )

◆ ToBndBox() [2/4]

template<class T >
Bnd_Box BVH::ToBndBox ( const NCollection_Vec3< T > & theMin,
const NCollection_Vec3< T > & theMax )

◆ ToBndBox() [3/4]

template<class T >
Bnd_Box BVH::ToBndBox ( const NCollection_Vec4< T > & theMin,
const NCollection_Vec4< T > & theMax )

◆ ToBndBox() [4/4]

template<class T >
Bnd_Box BVH::ToBndBox ( const T & theMin,
const T & theMax )

◆ UpdateBounds()

template<class T , int N>
Standard_Integer BVH::UpdateBounds ( BVH_Set< T, N > * theSet,
BVH_Tree< T, N > * theTree,
const Standard_Integer theNode = 0 )

Calculates bounding boxes (AABBs) for the given BVH tree.

Variable Documentation

◆ THE_NODE_MIN_SIZE

const double BVH::THE_NODE_MIN_SIZE = 1e-5

Minimum node size to split.