X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Fkernel%2Finclude%2Fcurve.cxx;h=bfcb43521627dad1744071ef51e42bd77f33dc7f;hb=cecf61997249f6e44a9ce798cb0cf54085473af6;hp=8fadd1399b23fc8abc6ab611b5ad07cf3f0932d9;hpb=a4ee3758aa0477f677fb981e2c4d6e29995e8db8;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/kernel/include/curve.cxx b/lib/maracasVisuLib/src/kernel/include/curve.cxx index 8fadd13..bfcb435 100644 --- a/lib/maracasVisuLib/src/kernel/include/curve.cxx +++ b/lib/maracasVisuLib/src/kernel/include/curve.cxx @@ -3,8 +3,8 @@ 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 16:11:41 $ + Version: $Revision: 1.3 $ Copyright: (c) 2002, 2003 License: @@ -103,7 +103,7 @@ kCurve& kCurve::operator=( const kCurve& r ) } // ------------------------------------------------------------------------- -uint kCurve::getClosestControlPoint( double* p ) +uint32_t kCurve::getClosestControlPoint( double* p ) { int res; // PS -> gslobj_vector vp( p, _dimension ), cp( _dimension ); //PS @@ -184,17 +184,17 @@ void kCurve::getNormal( double* n, double s ) void kCurve::getBinormal( double* b, double s ) { // PS -> //gslobj_vector tg( _dimension ), n( _dimension ); //PS - marVector tg( _dimension ), n( _dimension ); + 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 ) ); } // ------------------------------------------------------------------------- @@ -204,19 +204,19 @@ void kCurve::addControlPoint( double* cp, double* sp ) 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. @@ -235,7 +235,6 @@ void kCurve::addControlPoint( double* cp, double* sp ) _controlT.push_back( 0.0 ); for( int i = 0; i < _controlT.size( ); i++ ) _controlT[ i ] = _controlL[ i ] / len; - }// fi } @@ -261,17 +260,14 @@ void kCurve::setControlPoint( int i, double* cp, double* sp ) 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 } @@ -315,7 +311,7 @@ double kCurve::projectOverControlPoints( double* pr, double* pt ) marVector xpr( pr, 3 ); double sina, sinn, cosa, cosn, tha, thn; double d, e, t, l, tca, tcn, lca, lcn; - uint icp = getClosestControlPoint( pt ); + uint32_t icp = getClosestControlPoint( pt ); getControlPoint( icp, ( double* )xpc, NULL );