Algorithms for collision related with octree. More...
#include <traversal_node_octree.h>
Public Member Functions | |
template<typename BV > | |
void | MeshOcTreeDistance (const BVHModel< BV > *tree1, const OcTree *tree2, const Transform3f &tf1, const Transform3f &tf2, const DistanceRequest &request_, DistanceResult &result_) const |
distance between mesh and octree | |
template<typename BV > | |
void | MeshOcTreeIntersect (const BVHModel< BV > *tree1, const OcTree *tree2, const Transform3f &tf1, const Transform3f &tf2, const CollisionRequest &request_, CollisionResult &result_) const |
collision between mesh and octree | |
void | OcTreeDistance (const OcTree *tree1, const OcTree *tree2, const Transform3f &tf1, const Transform3f &tf2, const DistanceRequest &request_, DistanceResult &result_) const |
distance between two octrees | |
void | OcTreeIntersect (const OcTree *tree1, const OcTree *tree2, const Transform3f &tf1, const Transform3f &tf2, const CollisionRequest &request_, CollisionResult &result_) const |
collision between two octrees | |
template<typename BV > | |
void | OcTreeMeshDistance (const OcTree *tree1, const BVHModel< BV > *tree2, const Transform3f &tf1, const Transform3f &tf2, const DistanceRequest &request_, DistanceResult &result_) const |
distance between octree and mesh | |
template<typename BV > | |
void | OcTreeMeshIntersect (const OcTree *tree1, const BVHModel< BV > *tree2, const Transform3f &tf1, const Transform3f &tf2, const CollisionRequest &request_, CollisionResult &result_) const |
collision between octree and mesh | |
template<typename S > | |
void | OcTreeShapeDistance (const OcTree *tree, const S &s, const Transform3f &tf1, const Transform3f &tf2, const DistanceRequest &request_, DistanceResult &result_) const |
distance between octree and shape | |
template<typename S > | |
void | OcTreeShapeIntersect (const OcTree *tree, const S &s, const Transform3f &tf1, const Transform3f &tf2, const CollisionRequest &request_, CollisionResult &result_) const |
collision between octree and shape | |
OcTreeSolver (const NarrowPhaseSolver *solver_) | |
template<typename S > | |
void | ShapeOcTreeDistance (const S &s, const OcTree *tree, const Transform3f &tf1, const Transform3f &tf2, const DistanceRequest &request_, DistanceResult &result_) const |
distance between shape and octree | |
template<typename S > | |
void | ShapeOcTreeIntersect (const S &s, const OcTree *tree, const Transform3f &tf1, const Transform3f &tf2, const CollisionRequest &request_, CollisionResult &result_) const |
collision between shape and octree | |
Private Member Functions | |
bool | OcTreeDistanceRecurse (const OcTree *tree1, const OcTree::OcTreeNode *root1, const AABB &bv1, const OcTree *tree2, const OcTree::OcTreeNode *root2, const AABB &bv2, const Transform3f &tf1, const Transform3f &tf2) const |
bool | OcTreeIntersectRecurse (const OcTree *tree1, const OcTree::OcTreeNode *root1, const AABB &bv1, const OcTree *tree2, const OcTree::OcTreeNode *root2, const AABB &bv2, const Transform3f &tf1, const Transform3f &tf2) const |
template<typename BV > | |
bool | OcTreeMeshDistanceRecurse (const OcTree *tree1, const OcTree::OcTreeNode *root1, const AABB &bv1, const BVHModel< BV > *tree2, int root2, const Transform3f &tf1, const Transform3f &tf2) const |
template<typename BV > | |
bool | OcTreeMeshIntersectRecurse (const OcTree *tree1, const OcTree::OcTreeNode *root1, const AABB &bv1, const BVHModel< BV > *tree2, int root2, const Transform3f &tf1, const Transform3f &tf2) const |
template<typename S > | |
bool | OcTreeShapeDistanceRecurse (const OcTree *tree1, const OcTree::OcTreeNode *root1, const AABB &bv1, const S &s, const AABB &aabb2, const Transform3f &tf1, const Transform3f &tf2) const |
template<typename S > | |
bool | OcTreeShapeIntersectRecurse (const OcTree *tree1, const OcTree::OcTreeNode *root1, const AABB &bv1, const S &s, const OBB &obb2, const Transform3f &tf1, const Transform3f &tf2) const |
Private Attributes | |
const CollisionRequest * | crequest |
CollisionResult * | cresult |
const DistanceRequest * | drequest |
DistanceResult * | dresult |
const NarrowPhaseSolver * | solver |
Algorithms for collision related with octree.
Definition at line 52 of file traversal_node_octree.h.
fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeSolver | ( | const NarrowPhaseSolver * | solver_ | ) | [inline] |
Definition at line 64 of file traversal_node_octree.h.
void fcl::OcTreeSolver< NarrowPhaseSolver >::MeshOcTreeDistance | ( | const BVHModel< BV > * | tree1, |
const OcTree * | tree2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const DistanceRequest & | request_, | ||
DistanceResult & | result_ | ||
) | const [inline] |
distance between mesh and octree
Definition at line 148 of file traversal_node_octree.h.
void fcl::OcTreeSolver< NarrowPhaseSolver >::MeshOcTreeIntersect | ( | const BVHModel< BV > * | tree1, |
const OcTree * | tree2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const CollisionRequest & | request_, | ||
CollisionResult & | result_ | ||
) | const [inline] |
collision between mesh and octree
Definition at line 132 of file traversal_node_octree.h.
void fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeDistance | ( | const OcTree * | tree1, |
const OcTree * | tree2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const DistanceRequest & | request_, | ||
DistanceResult & | result_ | ||
) | const [inline] |
distance between two octrees
Definition at line 87 of file traversal_node_octree.h.
bool fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeDistanceRecurse | ( | const OcTree * | tree1, |
const OcTree::OcTreeNode * | root1, | ||
const AABB & | bv1, | ||
const OcTree * | tree2, | ||
const OcTree::OcTreeNode * | root2, | ||
const AABB & | bv2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2 | ||
) | const [inline, private] |
Definition at line 698 of file traversal_node_octree.h.
void fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeIntersect | ( | const OcTree * | tree1, |
const OcTree * | tree2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const CollisionRequest & | request_, | ||
CollisionResult & | result_ | ||
) | const [inline] |
collision between two octrees
Definition at line 73 of file traversal_node_octree.h.
bool fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeIntersectRecurse | ( | const OcTree * | tree1, |
const OcTree::OcTreeNode * | root1, | ||
const AABB & | bv1, | ||
const OcTree * | tree2, | ||
const OcTree::OcTreeNode * | root2, | ||
const AABB & | bv2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2 | ||
) | const [inline, private] |
stop when 1) bounding boxes of two objects not overlap; OR 2) at least one of the nodes is free; OR 2) (two uncertain nodes OR one node occupied and one node uncertain) AND cost not required
Definition at line 778 of file traversal_node_octree.h.
void fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshDistance | ( | const OcTree * | tree1, |
const BVHModel< BV > * | tree2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const DistanceRequest & | request_, | ||
DistanceResult & | result_ | ||
) | const [inline] |
distance between octree and mesh
Definition at line 117 of file traversal_node_octree.h.
bool fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshDistanceRecurse | ( | const OcTree * | tree1, |
const OcTree::OcTreeNode * | root1, | ||
const AABB & | bv1, | ||
const BVHModel< BV > * | tree2, | ||
int | root2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2 | ||
) | const [inline, private] |
Definition at line 424 of file traversal_node_octree.h.
void fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshIntersect | ( | const OcTree * | tree1, |
const BVHModel< BV > * | tree2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const CollisionRequest & | request_, | ||
CollisionResult & | result_ | ||
) | const [inline] |
collision between octree and mesh
Definition at line 102 of file traversal_node_octree.h.
bool fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeMeshIntersectRecurse | ( | const OcTree * | tree1, |
const OcTree::OcTreeNode * | root1, | ||
const AABB & | bv1, | ||
const BVHModel< BV > * | tree2, | ||
int | root2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2 | ||
) | const [inline, private] |
stop when 1) bounding boxes of two objects not overlap; OR 2) at least one of the nodes is free; OR 2) (two uncertain nodes OR one node occupied and one node uncertain) AND cost not required
Definition at line 510 of file traversal_node_octree.h.
void fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeDistance | ( | const OcTree * | tree, |
const S & | s, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const DistanceRequest & | request_, | ||
DistanceResult & | result_ | ||
) | const [inline] |
distance between octree and shape
Definition at line 202 of file traversal_node_octree.h.
bool fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeDistanceRecurse | ( | const OcTree * | tree1, |
const OcTree::OcTreeNode * | root1, | ||
const AABB & | bv1, | ||
const S & | s, | ||
const AABB & | aabb2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2 | ||
) | const [inline, private] |
Definition at line 237 of file traversal_node_octree.h.
void fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeIntersect | ( | const OcTree * | tree, |
const S & | s, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const CollisionRequest & | request_, | ||
CollisionResult & | result_ | ||
) | const [inline] |
collision between octree and shape
Definition at line 163 of file traversal_node_octree.h.
bool fcl::OcTreeSolver< NarrowPhaseSolver >::OcTreeShapeIntersectRecurse | ( | const OcTree * | tree1, |
const OcTree::OcTreeNode * | root1, | ||
const AABB & | bv1, | ||
const S & | s, | ||
const OBB & | obb2, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2 | ||
) | const [inline, private] |
stop when 1) bounding boxes of two objects not overlap; OR 2) at least of one the nodes is free; OR 2) (two uncertain nodes or one node occupied and one node uncertain) AND cost not required
Definition at line 285 of file traversal_node_octree.h.
void fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeDistance | ( | const S & | s, |
const OcTree * | tree, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const DistanceRequest & | request_, | ||
DistanceResult & | result_ | ||
) | const [inline] |
distance between shape and octree
Definition at line 219 of file traversal_node_octree.h.
void fcl::OcTreeSolver< NarrowPhaseSolver >::ShapeOcTreeIntersect | ( | const S & | s, |
const OcTree * | tree, | ||
const Transform3f & | tf1, | ||
const Transform3f & | tf2, | ||
const CollisionRequest & | request_, | ||
CollisionResult & | result_ | ||
) | const [inline] |
collision between shape and octree
Definition at line 183 of file traversal_node_octree.h.
const CollisionRequest* fcl::OcTreeSolver< NarrowPhaseSolver >::crequest [mutable, private] |
Definition at line 57 of file traversal_node_octree.h.
CollisionResult* fcl::OcTreeSolver< NarrowPhaseSolver >::cresult [mutable, private] |
Definition at line 60 of file traversal_node_octree.h.
const DistanceRequest* fcl::OcTreeSolver< NarrowPhaseSolver >::drequest [mutable, private] |
Definition at line 58 of file traversal_node_octree.h.
DistanceResult* fcl::OcTreeSolver< NarrowPhaseSolver >::dresult [mutable, private] |
Definition at line 61 of file traversal_node_octree.h.
const NarrowPhaseSolver* fcl::OcTreeSolver< NarrowPhaseSolver >::solver [private] |
Definition at line 55 of file traversal_node_octree.h.