/* ================ idMoveable::InitInitialSpline ================ */ void idMoveable::InitInitialSpline( int startTime ) { int initialSplineTime; initialSpline = GetSpline(); initialSplineTime = spawnArgs.GetInt( "initialSplineTime", "300" ); if( initialSpline != NULL ) { initialSpline->MakeUniform( initialSplineTime ); initialSpline->ShiftTime( startTime - initialSpline->GetTime( 0 ) ); initialSplineDir = initialSpline->GetCurrentFirstDerivative( startTime ); initialSplineDir *= physicsObj.GetAxis().Transpose(); initialSplineDir.Normalize(); BecomeActive( TH_THINK ); } }
void SplineComp::Write (ostream& out) { VerticesComp::Write(out); SFH_OpenBSpline* spline = GetSpline(); const Coord* x, *y; int count = spline->GetOriginal(x, y); WriteVertices(x, y, count, out); WriteBgFilled(spline->BgFilled(), out); WriteColor(spline->GetFgColor(), out); WriteColor(spline->GetBgColor(), out); WriteBrush(spline->GetBrush(), out); WritePattern(spline->GetPattern(), out); WriteTransformer(spline->GetTransformer(), out); }
void ArrowSplineComp::Read (istream& in) { SplineComp::Read(in); SFH_OpenBSpline* spl = GetSpline(); Coord* x, *y; int count, h, t; float scale; const Coord* cx, * cy; count = spl->GetOriginal(cx, cy); x = (Coord*)cx; y = (Coord*)cy; in >> h >> t >> scale; ArrowOpenBSpline* as = new ArrowOpenBSpline(x, y, count, h, t, scale, spl); SetGraphic(as); delete spl; }