]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/kernel/include/curve.cxx
#3418 creaMaracasVisu Feature New Normal - ManualPaint_model with openmp
[creaMaracasVisu.git] / lib / maracasVisuLib / src / kernel / include / curve.cxx
index 8fadd1399b23fc8abc6ab611b5ad07cf3f0932d9..22ff945529e15e21faf8c31ac59845ae655aaac7 100644 (file)
@@ -1,10 +1,35 @@
+/*# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+#                        pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+#  This software is governed by the CeCILL-B license under French law and
+#  abiding by the rules of distribution of free software. You can  use,
+#  modify and/ or redistribute the software under the terms of the CeCILL-B
+#  license as circulated by CEA, CNRS and INRIA at the following URL
+#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+#  or in the file LICENSE.txt.
+#
+#  As a counterpart to the access to the source code and  rights to copy,
+#  modify and redistribute granted by the license, users are provided only
+#  with a limited warranty  and the software's author,  the holder of the
+#  economic rights,  and the successive licensors  have only  limited
+#  liability.
+#
+#  The fact that you are presently reading this means that you have had
+#  knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
+
 /*=========================================================================
 
  Program:   wxMaracas
  Module:    $RCSfile: curve.cxx,v $
  Language:  C++
- Date:      $Date: 2009/05/14 13:55:07 $
- Version:   $Revision: 1.1 $
+ Date:      $Date: 2012/11/15 14:15:31 $
+ Version:   $Revision: 1.4 $
  
   Copyright: (c) 2002, 2003
   License:
@@ -103,7 +128,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 +209,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 +229,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 +260,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 +285,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 +336,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 );