nuclear@0: #ifndef _MOTION_H_ nuclear@0: #define _MOTION_H_ nuclear@0: nuclear@0: #include "n3dmath.h" nuclear@0: #include "curves.h" nuclear@0: nuclear@0: class MotionController { nuclear@0: private: nuclear@0: Matrix4x4 MotionXForm; nuclear@0: bool FollowPath; nuclear@0: float ScaleInputTrans, ScaleInputRot, ScaleInputScale; nuclear@0: nuclear@0: float (*XTranslation)(float); nuclear@0: float (*YTranslation)(float); nuclear@0: float (*ZTranslation)(float); nuclear@0: float (*XRotation)(float); nuclear@0: float (*YRotation)(float); nuclear@0: float (*ZRotation)(float); nuclear@0: float (*XScaling)(float); nuclear@0: float (*YScaling)(float); nuclear@0: float (*ZScaling)(float); nuclear@0: nuclear@0: public: nuclear@0: nuclear@0: MotionController(); nuclear@0: nuclear@0: void SetTranslation(float (*xtrans)(float), float (*ytrans)(float), float (*ztrans)(float), float ScaleInput = 1.0f); nuclear@0: void SetRotation(float (*xrot)(float), float (*yrot)(float), float (*zrot)(float), float ScaleInput = 1.0f); nuclear@0: void SetScaling(float (*xscale)(float), float (*yscale)(float), float (*zscale)(float), float ScaleInput = 1.0f); nuclear@0: void SetPath(const Curve &path); nuclear@0: nuclear@0: const Matrix4x4 &GetTransformation(float t); nuclear@0: }; nuclear@0: nuclear@0: nuclear@0: nuclear@0: #endif // _MOTION_H_