]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/Contour/Propagation.cxx
3219 creaMaracasVisu Feature New Normal - vtk8itk4wx3-mingw64
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / Contour / Propagation.cxx
index 2ccb89be9cf32d151edda2b76c3acc5d5e8f7522..d0790cb09e5f9465334e699bb8eaf549fdfdf80b 100644 (file)
@@ -1,3 +1,28 @@
+/*# ---------------------------------------------------------------------
+#
+# 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.
+# ------------------------------------------------------------------------ */
+
 #include "Propagation.h"
 
 //------------------------------------------------------------------------------------------------------------------------------------------
@@ -54,7 +79,7 @@ void Vector::copyVector( std::vector<Vector>*vec1, std::vector<Vector>*vec2 )
        if( vec1->size() != 0 )
        {
                vec2->clear();
-               for(i=0; i<vec1->size(); i++)
+               for(i=0; i<(int)(vec1->size()); i++)
                {
                        Vector *temp = new Vector();
                        temp->set_var( (*vec1)[i].get_var() );
@@ -71,7 +96,7 @@ void Vector::copyVector( std::vector<Vector>*vec1, std::vector<Vector>*vec2 )
 void Vector::printVector(std::vector<Vector>*vec1)
 {
        int i,j;
-       for(i=0; i<vec1->size(); i++)
+       for(i=0; i<(int)(vec1->size()); i++)
        {
                printf("\n Pos (%d) => var = %f",i,(*vec1)[i].get_var());
                for(j=0; j<(*vec1)[i].getsize_vec(); j++)
@@ -110,7 +135,7 @@ int Vector::get_plane()
 //------------------------------------------------------------------------------------------------------------------------------------------
 double Vector::get_x(int id)
 {
-       if( (-1<id) && (id<_vecX.size()) )
+       if( (-1<id) && (id<(int)(_vecX.size())  ) )
        {
                return _vecX[id];
        }
@@ -128,7 +153,7 @@ int Vector::getsize_x()
 //------------------------------------------------------------------------------------------------------------------------------------------
 double Vector::get_y(int id)
 {
-       if( (-1<id) && (id<_vecY.size()) )
+       if( (-1<id) && (id<(int)(_vecY.size())) )
        {
                return _vecY[id];
        }
@@ -155,7 +180,7 @@ int Vector::getsize_z()
 //------------------------------------------------------------------------------------------------------------------------------------------
 double Vector::get_z(int id)
 {
-       if( (-1<id) && (id<_vecZ.size()) )
+       if( (-1<id) && (id<(int)(_vecZ.size())) )
        {
                return _vecZ[id];
        }
@@ -762,8 +787,8 @@ int PropContour::VectorDirection(std::vector<double>*InX, std::vector<double>*In
        {
                ax = (*InX)[i]-SumX;
                ay = (*InY)[i]-SumY;
-               bx = (*InX)[i+1]-SumX;
-               by = (*InY)[i+1]-SumY;
+               bx = (*InX)[(i+1)%size]-SumX;
+               by = (*InY)[(i+1)%size]-SumY;
                axb = (ax*by) - (bx*ay);
                if(axb > 0)
                {
@@ -1096,7 +1121,7 @@ void PropContour::SetKeyContours(std::vector<double>*InX, std::vector<double>*In
                                okFind=true;
                                i=sizeKeyContour;
                        }
-                       if ( (_KeyContourZ[i-1] != _KeyContourZ[i]) )
+                       if ( (i<sizeKeyContour) && (_KeyContourZ[i-1] != _KeyContourZ[i]) )
                        {
                                tmpIdKeyContSizes++;
                        }
@@ -1119,7 +1144,7 @@ void PropContour::SetKeyContours(std::vector<double>*InX, std::vector<double>*In
        }
 
        _KeyContourSizes.insert( _KeyContourSizes.begin() + idKeyContourSizes , InX->size() );
-       for(i=0; i<InX->size(); i++)
+       for(i=0; i<(int)(InX->size()); i++)
        {
                _KeyContourX.insert( _KeyContourX.begin() + idKeyContour, (*InX)[i] );
                _KeyContourY.insert( _KeyContourY.begin() + idKeyContour, (*InY)[i] );
@@ -1153,6 +1178,7 @@ vtkImageData* PropContour::CalculeSplinePropagation()
        {
                return method_Spline(&_KeyContourX,&_KeyContourY,&_KeyContourZ,&_KeyContourSizes);
        }
+       return NULL;
 }
 //---------------------------------------------------------------------------------------------------
 void PropContour::GetKeyContours(std::vector<double>*KeyX, std::vector<double>*KeyY, std::vector<double>*KeyZ, std::vector<int>*KeyS)
@@ -1163,11 +1189,11 @@ void PropContour::GetKeyContours(std::vector<double>*KeyX, std::vector<double>*K
        KeyZ->clear();
        KeyS->clear();
 
-       for(i=0; i<_KeyContourSizes.size(); i++)
+       for(i=0; i<(int)(_KeyContourSizes.size()); i++)
        {
                KeyS->push_back( _KeyContourSizes[i] );
        }
-       for(i=0; i<_KeyContourX.size(); i++)
+       for(i=0; i<(int)(_KeyContourX.size()); i++)
        {
                KeyX->push_back( _KeyContourX[i] );
                KeyY->push_back( _KeyContourY[i] );
@@ -1179,7 +1205,7 @@ void PropContour::GetPropagatedContours( std::vector<Vector>*planevec )
 {
        int i,j;
        planevec->clear();
-       for(i=0; i<_planevector.size(); i++)
+       for(i=0; i<(int)(_planevector.size()); i++)
        {
                Vector *temp = new Vector();
                temp->set_plane( _planevector[i].get_plane() );