bool Intersect::intersect_Triangle(const Vec3f& P1, const Vec3f& P2, const Vec3f& P3, const Vec3f& Q1, const Vec3f& Q2, const Vec3f& Q3, const Matrix3f& R, const Vec3f& T, Vec3f* contact_points, unsigned int* num_contact_points, FCL_REAL* penetration_depth, Vec3f* normal) { Vec3f Q1_ = R * Q1 + T; Vec3f Q2_ = R * Q2 + T; Vec3f Q3_ = R * Q3 + T; return intersect_Triangle(P1, P2, P3, Q1_, Q2_, Q3_, contact_points, num_contact_points, penetration_depth, normal); }
bool Intersect::intersect_Triangle(const Vec3f& P1, const Vec3f& P2, const Vec3f& P3, const Vec3f& Q1, const Vec3f& Q2, const Vec3f& Q3, const Transform3f& tf, Vec3f* contact_points, unsigned int* num_contact_points, FCL_REAL* penetration_depth, Vec3f* normal) { Vec3f Q1_ = tf.transform(Q1); Vec3f Q2_ = tf.transform(Q2); Vec3f Q3_ = tf.transform(Q3); return intersect_Triangle(P1, P2, P3, Q1_, Q2_, Q3_, contact_points, num_contact_points, penetration_depth, normal); }
bool Intersect::intersect_Triangle(const Vec3f& P1, const Vec3f& P2, const Vec3f& P3, const Vec3f& Q1, const Vec3f& Q2, const Vec3f& Q3, const Vec3f R[3], const Vec3f& T, Vec3f* contact_points, unsigned int* num_contact_points, BVH_REAL* penetration_depth, Vec3f* normal) { Vec3f Q1_ = Vec3f(R[0].dot(Q1), R[1].dot(Q1), R[2].dot(Q1)) + T; Vec3f Q2_ = Vec3f(R[0].dot(Q2), R[1].dot(Q2), R[2].dot(Q2)) + T; Vec3f Q3_ = Vec3f(R[0].dot(Q3), R[1].dot(Q3), R[2].dot(Q3)) + T; return intersect_Triangle(P1, P2, P3, Q1_, Q2_, Q3_, contact_points, num_contact_points, penetration_depth, normal); }