|
void | coal::clipToRange (CoalScalar &val, CoalScalar a, CoalScalar b) |
| Clip value between a and b. More...
|
|
COAL_DLLAPI CoalScalar | coal::distance (const Matrix3s &R0, const Vec3s &T0, const RSS &b1, const RSS &b2, Vec3s *P=NULL, Vec3s *Q=NULL) |
| distance between two RSS bounding volumes P and Q (optional return values) are the closest points in the rectangles, not the RSS. But the direction P - Q is the correct direction for cloest points Notice that P and Q are both in the local frame of the first RSS (not global frame and not even the local frame of object 1) More...
|
|
bool | coal::inVoronoi (CoalScalar a, CoalScalar b, CoalScalar Anorm_dot_B, CoalScalar Anorm_dot_T, CoalScalar A_dot_B, CoalScalar A_dot_T, CoalScalar B_dot_T) |
| Returns whether the nearest point on rectangle edge Pb + B*u, 0 <= u <= b, to the rectangle edge, Pa + A*t, 0 <= t <= a, is within the half space determined by the point Pa and the direction Anorm. A,B, and Anorm are unit vectors. T is the vector between Pa and Pb. More...
|
|
COAL_DLLAPI bool | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const RSS &b1, const RSS &b2) |
| Check collision between two RSSs, b1 is in configuration (R0, T0) and b2 is in identity. More...
|
|
COAL_DLLAPI bool | coal::overlap (const Matrix3s &R0, const Vec3s &T0, const RSS &b1, const RSS &b2, const CollisionRequest &request, CoalScalar &sqrDistLowerBound) |
| Check collision between two RSSs, b1 is in configuration (R0, T0) and b2 is in identity. More...
|
|
CoalScalar | coal::rectDistance (const Matrix3s &Rab, Vec3s const &Tab, const CoalScalar a[2], const CoalScalar b[2], Vec3s *P=NULL, Vec3s *Q=NULL) |
| Distance between two oriented rectangles; P and Q (optional return values) are the closest points in the rectangles, both are in the local frame of the first rectangle. More...
|
|
void | coal::segCoords (CoalScalar &t, CoalScalar &u, CoalScalar a, CoalScalar b, CoalScalar A_dot_B, CoalScalar A_dot_T, CoalScalar B_dot_T) |
| Finds the parameters t & u corresponding to the two closest points on a pair of line segments. The first segment is defined as Pa + A*t, 0 <= t <= a, where "Pa" is one endpoint of the segment, "A" is a unit vector pointing to the other endpoint, and t is a scalar that produces all the points between the two endpoints. Since "A" is a unit vector, "a" is the segment's length. The second segment is defined as Pb + B*u, 0 <= u <= b. Many of the terms needed by the algorithm are already computed for other purposes,so we just pass these terms into the function instead of complete specifications of each segment. "T" in the dot products is the vector betweeen Pa and Pb. Reference: "On fast computation of distance between line segments." Vladimir J. Lumelsky, in Information Processing Letters, no. 21, pages 55-61, 1985. More...
|
|
RSS | coal::translate (const RSS &bv, const Vec3s &t) |
|