A class describing the split rule that splits each BV node. More...
#include <BVH_model.h>

| Public Member Functions | |
| bool | apply (const Vec3s &q) const | 
| Apply the split rule on a given point.  More... | |
| 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 | 
| bool | apply (const Vec3s &q) const | 
| bool | apply (const Vec3s &q) const | 
| bool | apply (const Vec3s &q) const | 
| bool | apply (const Vec3s &q) const | 
| BVSplitter (SplitMethodType method) | |
| void | clear () | 
| Clear the geometry data set before.  More... | |
| 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.  More... | |
| void | set (Vec3s *vertices_, Triangle *tri_indices_, BVHModelType type_) | 
| Set the geometry data needed by the split rule.  More... | |
| virtual | ~BVSplitter () | 
| Default deconstructor.  More... | |
| Protected Member Functions | |
| void | computeRule_bvcenter (const BV &bv, unsigned int *, unsigned int) | 
| Split algorithm 1: Split the node from center.  More... | |
| void | computeRule_bvcenter (const kIOS &bv, unsigned int *, unsigned int) | 
| void COAL_DLLAPI | computeRule_bvcenter (const kIOS &bv, unsigned int *primitive_indices, unsigned int num_primitives) | 
| void | computeRule_bvcenter (const OBB &bv, unsigned int *, unsigned int) | 
| void COAL_DLLAPI | computeRule_bvcenter (const OBB &bv, unsigned int *primitive_indices, unsigned int num_primitives) | 
| void | computeRule_bvcenter (const OBBRSS &bv, unsigned int *, unsigned int) | 
| void COAL_DLLAPI | computeRule_bvcenter (const OBBRSS &bv, unsigned int *primitive_indices, unsigned int num_primitives) | 
| void | computeRule_bvcenter (const RSS &bv, unsigned int *, unsigned int) | 
| void COAL_DLLAPI | computeRule_bvcenter (const RSS &bv, unsigned int *primitive_indices, unsigned int num_primitives) | 
| 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.  More... | |
| void | computeRule_mean (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 | computeRule_mean (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 | computeRule_mean (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 | computeRule_mean (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 | 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.  More... | |
| void | computeRule_median (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 | computeRule_median (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 | computeRule_median (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) | 
| void | computeRule_median (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) | 
| 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.  More... | |
| SplitMethodType | split_method | 
| The split algorithm used.  More... | |
| 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.  More... | |
| Vec3s | split_vector | 
| Triangle * | tri_indices | 
| The triangles handled by the splitter.  More... | |
| BVHModelType | type | 
| Whether the geometry is mesh or point cloud.  More... | |
| Vec3s * | vertices | 
| The mesh vertices or points handled by the splitter.  More... | |
A class describing the split rule that splits each BV node.
Definition at line 61 of file coal/BVH/BVH_model.h.
| 
 | inline | 
Definition at line 60 of file coal/internal/BV_splitter.h.
| 
 | inlinevirtual | 
Default deconstructor.
Definition at line 64 of file coal/internal/BV_splitter.h.
| 
 | inline | 
Apply the split rule on a given point.
Definition at line 93 of file coal/internal/BV_splitter.h.
| bool COAL_DLLAPI coal::BVSplitter< OBB >::apply | ( | const Vec3s & | q | ) | const | 
| bool COAL_DLLAPI coal::BVSplitter< RSS >::apply | ( | const Vec3s & | q | ) | const | 
| bool COAL_DLLAPI coal::BVSplitter< kIOS >::apply | ( | const Vec3s & | q | ) | const | 
| bool COAL_DLLAPI coal::BVSplitter< OBBRSS >::apply | ( | const Vec3s & | q | ) | const | 
| bool coal::BVSplitter< OBB >::apply | ( | const Vec3s & | q | ) | const | 
Definition at line 262 of file BV_splitter.cpp.
| bool coal::BVSplitter< RSS >::apply | ( | const Vec3s & | q | ) | const | 
Definition at line 267 of file BV_splitter.cpp.
| bool coal::BVSplitter< kIOS >::apply | ( | const Vec3s & | q | ) | const | 
Definition at line 272 of file BV_splitter.cpp.
| bool coal::BVSplitter< OBBRSS >::apply | ( | const Vec3s & | q | ) | const | 
Definition at line 277 of file BV_splitter.cpp.
| 
 | inline | 
Clear the geometry data set before.
Definition at line 96 of file coal/internal/BV_splitter.h.
| 
 | inline | 
Compute the split rule according to a subset of geometry and the corresponding BV node.
Definition at line 75 of file coal/internal/BV_splitter.h.
| 
 | inlineprotected | 
Split algorithm 1: Split the node from center.
Definition at line 128 of file coal/internal/BV_splitter.h.
| 
 | protected | 
Definition at line 209 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | protected | 
Definition at line 157 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | protected | 
Definition at line 235 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | protected | 
Definition at line 183 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | inlineprotected | 
Split algorithm 2: Split the node according to the mean of the data contained.
Definition at line 143 of file coal/internal/BV_splitter.h.
| 
 | protected | 
Definition at line 216 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | protected | 
Definition at line 164 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | protected | 
Definition at line 242 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | protected | 
Definition at line 190 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | inlineprotected | 
Split algorithm 3: Split the node according to the median of the data contained.
Definition at line 174 of file coal/internal/BV_splitter.h.
| 
 | protected | 
Definition at line 225 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | protected | 
Definition at line 173 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | protected | 
Definition at line 252 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | protected | 
Definition at line 199 of file BV_splitter.cpp.
| 
 | protected | 
| 
 | inline | 
Set the geometry data needed by the split rule.
Definition at line 67 of file coal/internal/BV_splitter.h.
| 
 | protected | 
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.
Definition at line 107 of file coal/internal/BV_splitter.h.
| 
 | protected | 
The split algorithm used.
Definition at line 125 of file coal/internal/BV_splitter.h.
| 
 | protected | 
The split threshold, different primitives are splitted according whether their projection on the split_axis is larger or smaller than the threshold.
Definition at line 113 of file coal/internal/BV_splitter.h.
| 
 | protected | 
Definition at line 108 of file coal/internal/BV_splitter.h.
| 
 | protected | 
The triangles handled by the splitter.
Definition at line 119 of file coal/internal/BV_splitter.h.
| 
 | protected | 
Whether the geometry is mesh or point cloud.
Definition at line 122 of file coal/internal/BV_splitter.h.
| 
 | protected | 
The mesh vertices or points handled by the splitter.
Definition at line 116 of file coal/internal/BV_splitter.h.