RSS.h File Reference

Include dependency graph for RSS.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes | |

class | fcl::RSS< S_ > |

A class for rectangle swept sphere bounding volume. More... | |

## Namespaces | |

fcl | |

Main namespace. | |

## Typedefs | |

using | fcl::RSSd = RSS< double > |

using | fcl::RSSf = RSS< float > |

## Functions | |

template<typename S > | |

FCL_EXPORT void | fcl::clipToRange (S &val, S a, S b) |

Clip value between a and b. More... | |

template<typename S , typename DerivedA , typename DerivedB > | |

FCL_EXPORT S | fcl::distance (const Eigen::MatrixBase< DerivedA > &R0, const Eigen::MatrixBase< DerivedB > &T0, const RSS< S > &b1, const RSS< S > &b2, Vector3< S > *P=nullptr, Vector3< S > *Q=nullptr) |

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... | |

template<typename S > | |

FCL_EXPORT bool | fcl::inVoronoi (S a, S b, S Anorm_dot_B, S Anorm_dot_T, S A_dot_B, S A_dot_T, S 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... | |

template<typename S , typename DerivedA , typename DerivedB > | |

FCL_EXPORT bool | fcl::overlap (const Eigen::MatrixBase< DerivedA > &R0, const Eigen::MatrixBase< DerivedB > &T0, const RSS< S > &b1, const RSS< S > &b2) |

Check collision between two RSSs, b1 is in configuration (R0, T0) and b2 is in identity. More... | |

template<typename S > | |

FCL_EXPORT S | fcl::rectDistance (const Matrix3< S > &Rab, const Vector3< S > &Tab, const S a[2], const S b[2], Vector3< S > *P=nullptr, Vector3< S > *Q=nullptr) |

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... | |

template<typename S > | |

FCL_EXPORT S | fcl::rectDistance (const Transform3< S > &tfab, const S a[2], const S b[2], Vector3< S > *P=nullptr, Vector3< S > *Q=nullptr) |

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... | |

template<typename S > | |

FCL_EXPORT void | fcl::segCoords (S &t, S &u, S a, S b, S A_dot_B, S A_dot_T, S 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... | |

template<typename S > | |

FCL_EXPORT RSS< S > | fcl::translate (const RSS< S > &bv, const Vector3< S > &t) |

Translate the RSS bv. More... | |