00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_IPATH_H__
00020 #define __CS_IPATH_H__
00021
00028 class csVector3;
00029
00030 SCF_VERSION (iPath, 0, 0, 1);
00031
00038 struct iPath : public iBase
00039 {
00045 virtual int Length () = 0;
00046
00048 virtual void CalculateAtTime (float time) = 0;
00049
00051 virtual int GetCurrentIndex () = 0;
00052
00054 virtual void SetPositionVectors (csVector3* v) = 0;
00055
00057 virtual void SetUpVectors (csVector3* v) = 0;
00058
00060 virtual void SetForwardVectors (csVector3* v) = 0;
00061
00063 virtual void SetPositionVector (int idx, const csVector3& v) = 0;
00064
00066 virtual void SetUpVector (int idx, const csVector3& v) = 0;
00067
00069 virtual void SetForwardVector (int idx, const csVector3& v) = 0;
00070
00072 virtual void GetPositionVector (int idx, csVector3& v) = 0;
00073
00075 virtual void GetUpVector (int idx, csVector3& v) = 0;
00076
00078 virtual void GetForwardVector (int idx, csVector3& v) = 0;
00079
00081 virtual float GetTime (int idx) = 0;
00082
00084 virtual void SetTime (int idx, float t) = 0;
00085
00087 virtual void GetInterpolatedPosition (csVector3& pos) = 0;
00088
00090 virtual void GetInterpolatedUp (csVector3& pos) = 0;
00091
00093 virtual void GetInterpolatedForward (csVector3& pos) = 0;
00094 };
00095
00096
00099 #endif // __CS_IPATH_H__