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