/*
================
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 );
	}
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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;
}