38 #ifndef FCL_MATH_GEOMETRY_H 39 #define FCL_MATH_GEOMETRY_H 45 #include "fcl/config.h" 46 #include "fcl/common/types.h" 47 #include "fcl/math/triangle.h" 52 void normalize(Vector3<S>& v,
bool* signal);
54 template <
typename Derived>
55 typename Derived::RealScalar triple(
const Eigen::MatrixBase<Derived>& x,
56 const Eigen::MatrixBase<Derived>& y,
57 const Eigen::MatrixBase<Derived>& z);
59 template <
typename Derived>
60 void generateCoordinateSystem(
61 const Eigen::MatrixBase<Derived>& w,
62 Eigen::MatrixBase<Derived>& u,
63 Eigen::MatrixBase<Derived>& v);
65 template <
typename S,
int M,
int N>
66 VectorN<S, M+N> combine(
67 const VectorN<S, M>& v1,
const VectorN<S, N>& v2);
70 void hat(Matrix3<S>& mat,
const Vector3<S>& vec);
75 void eigen(
const Matrix3<S>& m, Vector3<S>& dout, Matrix3<S>& vout);
80 void eigen_old(
const Matrix3<S>& m, Vector3<S>& dout, Matrix3<S>& vout);
83 void axisFromEigen(
const Matrix3<S>& eigenV,
84 const Vector3<S>& eigenS,
88 void axisFromEigen(
const Matrix3<S>& eigenV,
89 const Vector3<S>& eigenS,
93 void generateCoordinateSystem(Matrix3<S>& axis);
96 void generateCoordinateSystem(Transform3<S>& tf);
98 template <
typename DerivedA,
typename DerivedB,
typename DerivedC,
typename DerivedD>
99 void relativeTransform(
100 const Eigen::MatrixBase<DerivedA>& R1,
const Eigen::MatrixBase<DerivedB>& t1,
101 const Eigen::MatrixBase<DerivedA>& R2,
const Eigen::MatrixBase<DerivedB>& t2,
102 Eigen::MatrixBase<DerivedC>& R, Eigen::MatrixBase<DerivedD>& t);
104 template <
typename S,
typename DerivedA,
typename DerivedB>
105 void relativeTransform(
106 const Eigen::Transform<S, 3, Eigen::Isometry>& T1,
107 const Eigen::Transform<S, 3, Eigen::Isometry>& T2,
108 Eigen::MatrixBase<DerivedA>& R, Eigen::MatrixBase<DerivedB>& t);
112 template <
typename S>
113 void getRadiusAndOriginAndRectangleSize(
117 unsigned int* indices,
119 const Matrix3<S>& axis,
126 template <
typename S>
127 void getRadiusAndOriginAndRectangleSize(
131 unsigned int* indices,
138 template <
typename S>
139 void circumCircleComputation(
147 template <
typename S>
152 unsigned int* indices,
154 const Vector3<S>& query);
158 template <
typename S>
159 void getExtentAndCenter(
163 unsigned int* indices,
165 const Matrix3<S>& axis,
171 template <
typename S>
172 void getExtentAndCenter(
176 unsigned int* indices,
184 template <
typename S>
189 unsigned int* indices,
195 #include "fcl/math/geometry-inl.h" Main namespace.
Definition: broadphase_bruteforce-inl.h:45