CTimerAdvanced::CTimerAdvanced(int historySize){ assert(historySize != 0); mHistory = TimeVector(historySize, 0.0); mHistorySize = historySize; mUseCount = 0; mAccTime = 0.0; }
// cubic curve defined by 2 positions and 2 velocities CVector3D GetPositionOnCubic(const CVector3D& startPos, const CVector3D& startVel, const CVector3D& endPos, const CVector3D& endVel, float time) { CMatrix3D m(startPos.X, endPos.X, startVel.X, endVel.X, startPos.Y, endPos.Y, startVel.Y, endVel.Y, startPos.Z, endPos.Z, startVel.Z, endVel.Z, 0.0f, 0.0f, 0.0f, 1.0f); m = m * HermiteSpline; // multiply by the mixer CVector3D TimeVector(time*time*time, time*time, time); CVector3D Result; m.Transform(TimeVector, Result); return Result; }