16 #ifndef SURGSIM_COLLISION_SEGMENTSEGMENTCCDMOVINGCONTACT_H 17 #define SURGSIM_COLLISION_SEGMENTSEGMENTCCDMOVINGCONTACT_H 29 class SegmentMeshShape;
55 static const int SUB_POINTS_PARALLEL_CASE = 5;
56 static const int SUB_POINTS_COPLANAR_CASE = 10;
74 bool collideMovingSegmentSegment(
75 const std::array<Math::Vector3d, 2>& pt0Positions,
76 const std::array<Math::Vector3d, 2>& pt1Positions,
77 const std::array<Math::Vector3d, 2>& qt0Positions,
78 const std::array<Math::Vector3d, 2>& qt1Positions,
79 double thicknessEpsilon,
80 double timePrecisionEpsilon,
97 bool collideMovingSegmentSegment(
98 const std::array<Math::Vector3d, 2>& pt0Positions,
99 const std::array<Math::Vector3d, 2>& pt1Positions,
100 const std::array<Math::Vector3d, 2>& qt0Positions,
101 const std::array<Math::Vector3d, 2>& qt1Positions,
104 double timePrecisionEpsilon,
121 bool collideSegmentSegmentBaseCase(
122 const std::array<Math::Vector3d, 2>& pT0,
123 const std::array<Math::Vector3d, 2>& pT1,
124 const std::array<Math::Vector3d, 2>& qT0,
125 const std::array<Math::Vector3d, 2>& qT1,
128 double timePrecisionEpsilon,
129 double* t,
double* r,
double* s);
147 bool collideSegmentSegmentParallelCase(
148 const std::array<Math::Vector3d, 2>& pT0,
149 const std::array<Math::Vector3d, 2>& pT1,
150 const std::array<Math::Vector3d, 2>& qT0,
151 const std::array<Math::Vector3d, 2>& qT1,
153 double thicknessP,
double thicknessQ,
154 double timePrecisionEpsilon,
155 double* t,
double* r,
double* s,
int depth = 0);
173 bool collideSegmentSegmentCoplanarCase(
174 const std::array<Math::Vector3d, 2>& pT0,
175 const std::array<Math::Vector3d, 2>& pT1,
176 const std::array<Math::Vector3d, 2>& qT0,
177 const std::array<Math::Vector3d, 2>& qT1,
179 double timePrecisionEpsilon,
180 double thicknessP,
double thicknessQ,
181 double* t,
double* r,
double* s,
194 bool collideSegmentSegmentGeneralCase(
197 double* t,
double* r,
double* s,
223 bool checkForCoplanarContactWithinInterval(
double rCurrent,
double rNext,
double sCurrent,
double sNext,
233 std::shared_ptr<SurgSim::Framework::Logger>
m_logger;
239 #endif // SURGSIM_COLLISION_SEGMENTSEGMENTCCDMOVINGCONTACT_H Definition: CompoundShapeToGraphics.cpp:29
Eigen::Matrix< double, 3, 1 > Vector3d
A 3D vector of doubles.
Definition: Vector.h:57
SegmentSegmentCcdIntervalCheck uses the Interval classes including the LinearMotion and Polynomial fa...
Definition: SegmentSegmentCcdIntervalCheck.h:37