$search
A class describing the bounding hierarchy of a mesh model. More...
#include <BVH_model.h>
Public Member Functions | |
int | addSubModel (const std::vector< Vec3f > &ps) |
Add a set of points in the new BVH model. | |
int | addSubModel (const std::vector< Vec3f > &ps, const std::vector< Triangle > &ts) |
Add a set of triangles in the new BVH model. | |
int | addTriangle (const Vec3f &p1, const Vec3f &p2, const Vec3f &p3) |
Add one triangle in the new BVH model. | |
int | addVertex (const Vec3f &p) |
Add one point in the new BVH model. | |
int | beginModel (int num_tris=0, int num_vertices=0) |
Begin a new BVH model. | |
int | beginReplaceModel () |
Replace the geometry information of current frame (i.e. should have the same mesh topology with the previous frame). | |
int | beginUpdateModel () |
Replace the geometry information of current frame (i.e. should have the same mesh topology with the previous frame). The current frame will be saved as the previous frame in prev_vertices. | |
BVHModel () | |
int | endModel () |
End BVH model construction, will build the bounding volume hierarchy. | |
int | endReplaceModel (bool refit=true, bool bottomup=true) |
End BVH model replacement, will also refit or rebuild the bounding volume hierarchy. | |
int | endUpdateModel (bool refit=true, bool bottomup=true) |
End BVH model update, will also refit or rebuild the bounding volume hierarchy. | |
BVHModelType | getModelType () const |
Model type. | |
int | memUsage (int msg) const |
Check the number of memory used. | |
int | replaceSubModel (const std::vector< Vec3f > &ps) |
Replace a set of points in the old BVH model. | |
int | replaceTriangle (const Vec3f &p1, const Vec3f &p2, const Vec3f &p3) |
Replace one triangle in the old BVH model. | |
int | replaceVertex (const Vec3f &p) |
Replace one point in the old BVH model. | |
int | updateSubModel (const std::vector< Vec3f > &ps) |
Update a set of points in the old BVH model. | |
int | updateTriangle (const Vec3f &p1, const Vec3f &p2, const Vec3f &p3) |
Update one triangle in the old BVH model. | |
int | updateVertex (const Vec3f &p) |
Update one point in the old BVH model. | |
~BVHModel () | |
Public Attributes | |
BVHBuildState | build_state |
The state of BVH building process. | |
BVFitter< BV > | bv_fitter |
Fitting rule to fit a BV node to a set of geometry primitives. | |
BVSplitRule< BV > | bv_splitter |
Split rule to split one BV node into two children. | |
BVNode< BV > * | bvs |
Bounding volume hierarchy. | |
int | num_bvs |
Number of BV nodes in bounding volume hierarchy. | |
int | num_tris |
Number of triangles. | |
int | num_vertices |
Number of points. | |
Vec3f * | prev_vertices |
Geometry point data in previous frame. | |
Triangle * | tri_indices |
Geometry triangle index data, will be NULL for point clouds. | |
Vec3f * | vertices |
Geometry point data. | |
Private Member Functions | |
int | buildTree () |
Build the bounding volume hierarchy. | |
int | recursiveBuildTree (int bv_id, int first_primitive, int num_primitives) |
Recursive kernel for hierarchy construction. | |
int | recursiveRefitTree_bottomup (int bv_id) |
Recursive kernel for bottomup refitting. | |
int | refitTree (bool bottomup) |
Refit the bounding volume hierarchy. | |
int | refitTree_bottomup () |
Refit the bounding volume hierarchy in a bottom-up way (fast but less compact). | |
int | refitTree_topdown () |
Refit the bounding volume hierarchy in a top-down way (slow but more compact). | |
Private Attributes | |
int | num_bvs_allocated |
int | num_tris_allocated |
int | num_vertex_updated |
int | num_vertices_allocated |
unsigned int * | primitive_indices |
A class describing the bounding hierarchy of a mesh model.
Definition at line 104 of file BVH_model.h.
collision_checking::BVHModel< BV >::BVHModel | ( | ) | [inline] |
Definition at line 155 of file BVH_model.h.
collision_checking::BVHModel< BV >::~BVHModel | ( | ) | [inline] |
Definition at line 176 of file BVH_model.h.
int collision_checking::BVHModel< BV >::addSubModel | ( | const std::vector< Vec3f > & | ps | ) | [inline] |
Add a set of points in the new BVH model.
Definition at line 177 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::addSubModel | ( | const std::vector< Vec3f > & | ps, | |
const std::vector< Triangle > & | ts | |||
) | [inline] |
Add a set of triangles in the new BVH model.
Definition at line 212 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::addTriangle | ( | const Vec3f & | p1, | |
const Vec3f & | p2, | |||
const Vec3f & | p3 | |||
) | [inline] |
Add one triangle in the new BVH model.
Definition at line 124 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::addVertex | ( | const Vec3f & | p | ) | [inline] |
Add one point in the new BVH model.
Definition at line 94 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::beginModel | ( | int | num_tris = 0 , |
|
int | num_vertices = 0 | |||
) | [inline] |
Begin a new BVH model.
Definition at line 47 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::beginReplaceModel | ( | ) | [inline] |
Replace the geometry information of current frame (i.e. should have the same mesh topology with the previous frame).
Definition at line 345 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::beginUpdateModel | ( | ) | [inline] |
Replace the geometry information of current frame (i.e. should have the same mesh topology with the previous frame). The current frame will be saved as the previous frame in prev_vertices.
Definition at line 443 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::buildTree | ( | ) | [inline, private] |
Build the bounding volume hierarchy.
Definition at line 575 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::endModel | ( | ) | [inline] |
End BVH model construction, will build the bounding volume hierarchy.
Definition at line 274 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::endReplaceModel | ( | bool | refit = true , |
|
bool | bottomup = true | |||
) | [inline] |
End BVH model replacement, will also refit or rebuild the bounding volume hierarchy.
Definition at line 410 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::endUpdateModel | ( | bool | refit = true , |
|
bool | bottomup = true | |||
) | [inline] |
End BVH model update, will also refit or rebuild the bounding volume hierarchy.
Definition at line 518 of file BVH_model.cpp.
BVHModelType collision_checking::BVHModel< BV >::getModelType | ( | ) | const [inline] |
Model type.
Definition at line 145 of file BVH_model.h.
int collision_checking::BVHModel< BV >::memUsage | ( | int | msg | ) | const [inline] |
Check the number of memory used.
Definition at line 555 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::recursiveBuildTree | ( | int | bv_id, | |
int | first_primitive, | |||
int | num_primitives | |||
) | [inline, private] |
Recursive kernel for hierarchy construction.
Definition at line 611 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::recursiveRefitTree_bottomup | ( | int | bv_id | ) | [inline, private] |
Recursive kernel for bottomup refitting.
Definition at line 708 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::refitTree | ( | bool | bottomup | ) | [inline, private] |
Refit the bounding volume hierarchy.
Definition at line 690 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::refitTree_bottomup | ( | ) | [inline, private] |
Refit the bounding volume hierarchy in a bottom-up way (fast but less compact).
Definition at line 699 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::refitTree_topdown | ( | ) | [inline, private] |
Refit the bounding volume hierarchy in a top-down way (slow but more compact).
Definition at line 781 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::replaceSubModel | ( | const std::vector< Vec3f > & | ps | ) | [inline] |
Replace a set of points in the old BVH model.
Definition at line 393 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::replaceTriangle | ( | const Vec3f & | p1, | |
const Vec3f & | p2, | |||
const Vec3f & | p3 | |||
) | [inline] |
Replace one triangle in the old BVH model.
Definition at line 378 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::replaceVertex | ( | const Vec3f & | p | ) | [inline] |
Replace one point in the old BVH model.
Definition at line 363 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::updateSubModel | ( | const std::vector< Vec3f > & | ps | ) | [inline] |
Update a set of points in the old BVH model.
Definition at line 501 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::updateTriangle | ( | const Vec3f & | p1, | |
const Vec3f & | p2, | |||
const Vec3f & | p3 | |||
) | [inline] |
Update one triangle in the old BVH model.
Definition at line 486 of file BVH_model.cpp.
int collision_checking::BVHModel< BV >::updateVertex | ( | const Vec3f & | p | ) | [inline] |
Update one point in the old BVH model.
Definition at line 471 of file BVH_model.cpp.
BVHBuildState collision_checking::BVHModel< BV >::build_state |
The state of BVH building process.
Definition at line 136 of file BVH_model.h.
BVFitter<BV> collision_checking::BVHModel< BV >::bv_fitter |
Fitting rule to fit a BV node to a set of geometry primitives.
Definition at line 142 of file BVH_model.h.
BVSplitRule<BV> collision_checking::BVHModel< BV >::bv_splitter |
Split rule to split one BV node into two children.
Definition at line 139 of file BVH_model.h.
BVNode<BV>* collision_checking::BVHModel< BV >::bvs |
Bounding volume hierarchy.
Definition at line 124 of file BVH_model.h.
int collision_checking::BVHModel< BV >::num_bvs |
Number of BV nodes in bounding volume hierarchy.
Definition at line 133 of file BVH_model.h.
int collision_checking::BVHModel< BV >::num_bvs_allocated [private] |
Definition at line 109 of file BVH_model.h.
int collision_checking::BVHModel< BV >::num_tris |
Number of triangles.
Definition at line 127 of file BVH_model.h.
int collision_checking::BVHModel< BV >::num_tris_allocated [private] |
Definition at line 107 of file BVH_model.h.
int collision_checking::BVHModel< BV >::num_vertex_updated [private] |
Definition at line 110 of file BVH_model.h.
int collision_checking::BVHModel< BV >::num_vertices |
Number of points.
Definition at line 130 of file BVH_model.h.
int collision_checking::BVHModel< BV >::num_vertices_allocated [private] |
Definition at line 108 of file BVH_model.h.
Vec3f* collision_checking::BVHModel< BV >::prev_vertices |
Geometry point data in previous frame.
Definition at line 121 of file BVH_model.h.
unsigned int* collision_checking::BVHModel< BV >::primitive_indices [private] |
Definition at line 111 of file BVH_model.h.
Triangle* collision_checking::BVHModel< BV >::tri_indices |
Geometry triangle index data, will be NULL for point clouds.
Definition at line 118 of file BVH_model.h.
Vec3f* collision_checking::BVHModel< BV >::vertices |
Geometry point data.
Definition at line 115 of file BVH_model.h.