Template Class BVSplitter
Defined in File BV_splitter.h
Inheritance Relationships
Derived Type
public boost::serialization::internal::BVSplitterAccessor< BV >
(Template Struct BVSplitterAccessor)
Class Documentation
-
template<typename BV>
class BVSplitter A class describing the split rule that splits each BV node.
Subclassed by boost::serialization::internal::BVSplitterAccessor< BV >
Public Functions
-
inline BVSplitter(SplitMethodType method)
-
inline virtual ~BVSplitter()
Default deconstructor.
-
inline void set(Vec3s *vertices_, Triangle *tri_indices_, BVHModelType type_)
Set the geometry data needed by the split rule.
-
inline void computeRule(const BV &bv, unsigned int *primitive_indices, unsigned int num_primitives)
Compute the split rule according to a subset of geometry and the corresponding BV node.
-
inline void clear()
Clear the geometry data set before.
- bool COAL_DLLAPI apply (const Vec3s &q) const
- bool COAL_DLLAPI apply (const Vec3s &q) const
- bool COAL_DLLAPI apply (const Vec3s &q) const
- bool COAL_DLLAPI apply (const Vec3s &q) const
Protected Functions
-
inline void computeRule_bvcenter(const BV &bv, unsigned int*, unsigned int)
Split algorithm 1: Split the node from center.
-
inline void computeRule_mean(const BV &bv, unsigned int *primitive_indices, unsigned int num_primitives)
Split algorithm 2: Split the node according to the mean of the data contained.
-
inline void computeRule_median(const BV &bv, unsigned int *primitive_indices, unsigned int num_primitives)
Split algorithm 3: Split the node according to the median of the data contained.
- void COAL_DLLAPI computeRule_bvcenter (const OBB &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_mean (const OBB &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_median (const OBB &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_bvcenter (const RSS &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_mean (const RSS &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_median (const RSS &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_bvcenter (const kIOS &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_mean (const kIOS &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_median (const kIOS &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_bvcenter (const OBBRSS &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_mean (const OBBRSS &bv, unsigned int *primitive_indices, unsigned int num_primitives)
- void COAL_DLLAPI computeRule_median (const OBBRSS &bv, unsigned int *primitive_indices, unsigned int num_primitives)
Protected Attributes
-
int split_axis
The axis based on which the split decision is made. For most BV, the axis is aligned with one of the world coordinate, so only split_axis is needed. For oriented node, we can use a vector to make a better split decision.
-
CoalScalar split_value
The split threshold, different primitives are splitted according whether their projection on the split_axis is larger or smaller than the threshold.
-
BVHModelType type
Whether the geometry is mesh or point cloud.
-
SplitMethodType split_method
The split algorithm used.
-
inline BVSplitter(SplitMethodType method)