#pragma once #include "affnmtrx.h" class CubicCurve { public: #if defined(USE_SIGNATURE) friend int Is_Signature_Bad(const volatile CubicCurve *); #endif CubicCurve( // Hermite form const Point3D& p1, const Vector3D& r1, const Point3D& p4, const Vector3D& r4 ); CubicCurve( // Bezier form const Point3D& p1, const Point3D& p2, const Point3D& p3, const Point3D& p4 ); void Evaluate(Scalar t, Point3D *p, Vector3D *v); Logical TestInstance() const; protected: AffineMatrix basisMatrix; };