Program: wxMaracas
Module: $RCSfile: curve.cxx,v $
Language: C++
- Date: $Date: 2009/05/14 13:55:07 $
- Version: $Revision: 1.1 $
+ Date: $Date: 2010/04/20 14:42:45 $
+ Version: $Revision: 1.2 $
Copyright: (c) 2002, 2003
License:
marVector tg( _dimension ), n( _dimension );
double t;
int i;
-
+
calculeSplineArguments( s, i, t );
derivative1( ( double* )tg, i, t );
derivative2( ( double* )n, i, t );
-
+
memcpy( b,
- ( double* )( tg.cross( n ).normalize( ) ),
- _dimension * sizeof( double ) );
+ ( double* )( tg.cross( n ).normalize( ) ),
+ _dimension * sizeof( double ) );
}
// -------------------------------------------------------------------------
memcpy( tmp, cp, _dimension * sizeof( double ) );
_controlPoints.push_back( tmp );
if( sp != NULL && _stateDim > 0 ) {
-
+
double *tmp1 = new double[ _stateDim ];
memcpy( tmp1, sp, _stateDim * sizeof( double ) );
_controlState.push_back( tmp1 );
-
+
} else
_controlState.push_back( NULL );
-
+
if( _controlPoints.size( ) == 1 ) {
_controlT.push_back( 0.0 );
_controlL.push_back( 0.0 );
-
+
} else {
// Here we maintain some extra info about the control points.
_controlT.push_back( 0.0 );
for( int i = 0; i < _controlT.size( ); i++ )
_controlT[ i ] = _controlL[ i ] / len;
-
}// fi
}
int it;
for( it = i; it < _controlT.size( ); it++ ) {
-
v1 = _controlPoints[ it ];
v0 = _controlPoints[ it - 1 ];
len = ( v1 - v0 ).norm2( ) + _controlL[ it - 1 ];
_controlL[ i ] = len;
-
} // rof
for( it = 0; it < _controlT.size( ); it++ )
_controlT[ it ] = _controlL[ it ] / len;
-
}// fi
}