#ifndef SM_SPLINE

#define SM_SPLINE

struct Vector3D;
class  MgcNaturalSpline3;

class Spline
{
public:
            Spline    ();
            ~Spline   (); 

  int       Init      (unsigned uControlPoints, Vector3D* pControlPoints, float* pfTimes);
  int       Shutdown  ();  

  void      Evaluate  (float fTime, Vector3D* pVector3D);
  void      GetFrame  (float fTime, Vector3D* pPosition,
                                    Vector3D* pTangent,
                                    Vector3D* pNormal,
                                    Vector3D* pBinormal);

protected:
  Vector3D*           m_pControlPoints;
  float*              m_pfTimes;
  unsigned            m_uControlPoints;
  float               m_fTimeLength;  
  MgcNaturalSpline3*  m_pSpline;
};



#endif
