38 #ifndef FCL_TRAVERSAL_SHAPECONSERVATIVEADVANCEMENTTRAVERSALNODE_INL_H 39 #define FCL_TRAVERSAL_SHAPECONSERVATIVEADVANCEMENTTRAVERSALNODE_INL_H 50 template <
typename Shape1,
typename Shape2,
typename NarrowPhaseSolver>
64 template <
typename Shape1,
typename Shape2,
typename NarrowPhaseSolver>
77 this->
nsolver->shapeDistance(*(this->
model1), this->
tf1, *(this->
model2), this->
tf2, &distance, &closest_p1, &closest_p2);
80 const S norm_sq = n.squaredNorm();
85 S bound1 =
motion1->computeMotionBound(mb_visitor1);
86 S bound2 =
motion2->computeMotionBound(mb_visitor2);
91 if(bound <= distance) cur_delta_t = 1;
92 else cur_delta_t = distance /
bound;
99 template <
typename Shape1,
typename Shape2,
typename NarrowPhaseSolver>
102 const Shape1& shape1,
104 const Shape2& shape2,
106 const NarrowPhaseSolver*
nsolver)
108 using S =
typename Shape1::S;
S delta_t
The delta_t each step.
Traversal node for distance between two shapes.
S toc
The time from beginning point.
Eigen::Transform< S, 3, Eigen::Isometry > Transform3
void leafTesting(int, int) const
Leaf test between node b1 and b2, if they are both leafs.
Transform3< Shape1::S > tf2
configuration of second object
Eigen::Matrix< S, 3, 1 > Vector3
FCL_EXPORT void computeBV(const Shape &s, const Transform3< typename BV::S > &tf, BV &bv)
calculate a bounding volume for a shape in a specific configuration
template bool initialize(MeshCollisionTraversalNodeOBB< double > &node, const BVHModel< OBB< double >> &model1, const Transform3< double > &tf1, const BVHModel< OBB< double >> &model2, const Transform3< double > &tf2, const CollisionRequest< double > &request, CollisionResult< double > &result)
template void distance(DistanceTraversalNodeBase< double > *node, BVHFrontList *front_list, int qsize)
const NarrowPhaseSolver * nsolver
ShapeConservativeAdvancementTraversalNode()
const MotionBase< S > * motion1
Motions for the two objects in query.
const MotionBase< S > * motion2
template Interval< double > bound(const Interval< double > &i, double v)
Transform3< Shape1::S > tf1
configuation of first object