RSS-inl.h File Reference

`#include "fcl/math/bv/RSS.h"`

Include dependency graph for RSS-inl.h:

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

Go to the source code of this file.

## Namespaces | |

fcl | |

Main namespace. | |

## Functions | |

template void | fcl::clipToRange (double &val, double a, double b) |

template<typename S > | |

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

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

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

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

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 bool | fcl::inVoronoi (double a, double b, double Anorm_dot_B, double Anorm_dot_T, double A_dot_B, double A_dot_T, double B_dot_T) |

template<typename S > | |

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

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 double | fcl::rectDistance (const Matrix3< double > &Rab, const Vector3< double > &Tab, const double a[2], const double b[2], Vector3< double > *P, Vector3< double > *Q) |

template<typename S > | |

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

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 double | fcl::rectDistance (const Transform3< double > &tfab, const double a[2], const double b[2], Vector3< double > *P, Vector3< double > *Q) |

template<typename S > | |

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

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 void | fcl::segCoords (double &t, double &u, double a, double b, double A_dot_B, double A_dot_T, double B_dot_T) |

template<typename S > | |

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 RSS< double > | fcl::translate (const RSS< double > &bv, const Vector3< double > &t) |

template<typename S > | |

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

Translate the RSS bv. More... | |

## Variables | |

template class FCL_EXPORT | fcl::RSS< double > |