38 #ifndef FCL_CCD_SPLINEMOTION_H
39 #define FCL_CCD_SPLINEMOTION_H
53 class FCL_EXPORT SplineMotion :
public MotionBase<S>
57 SplineMotion(
const Vector3<S>& Td0,
const Vector3<S>& Td1,
const Vector3<S>& Td2,
const Vector3<S>& Td3,
58 const Vector3<S>& Rd0,
const Vector3<S>& Rd1,
const Vector3<S>& Rd2,
const Vector3<S>& Rd3);
61 SplineMotion(
const Matrix3<S>& R1,
const Vector3<S>& T1,
62 const Matrix3<S>& R2,
const Vector3<S>& T2);
64 SplineMotion(
const Transform3<S>& tf1,
65 const Transform3<S>& tf2);
69 bool integrate(S dt)
const override;
72 S computeMotionBound(
const BVMotionBoundVisitor<S>& mb_visitor)
const override;
75 S computeMotionBound(
const TriangleMotionBoundVisitor<S>& mb_visitor)
const override;
78 void getCurrentTransform(Transform3<S>& tf_)
const override;
80 void getTaylorModel(TMatrix3<S>& tm, TVector3<S>& tv)
const override;
83 void computeSplineParameter();
85 S getWeight0(S t)
const;
86 S getWeight1(S t)
const;
87 S getWeight2(S t)
const;
88 S getWeight3(S t)
const;
96 S Rd0Rd0, Rd0Rd1, Rd0Rd2, Rd0Rd3, Rd1Rd1, Rd1Rd2, Rd1Rd3, Rd2Rd2, Rd2Rd3,
Rd3Rd3;
106 S computeDWMax()
const;
108 S getCurrentTime()
const;
110 EIGEN_MAKE_ALIGNED_OPERATOR_NEW