+/*# ---------------------------------------------------------------------
+#
+# 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 "AutoControlPoints.h"
//------------------------------------------------------------------------------------------------------------------------------------------
//CLASS: AutoControlPoints -----------------------------------------------------------------------------------------------------------------
_chargecontrolpointsY.push_back(y);
_chargecontrolpointsZ.push_back(z);
}
- _pathsize = _mContourModel->GetPathSize();
+
+// EED 2017-05-30
+// _pathsize = _mContourModel->GetPathSize( );
+ double spc[3];
+ spc[0]=1;
+ spc[1]=1;
+ spc[2]=1;
+ _pathsize = _mContourModel->GetPathSize( spc );
+
+
//printf("\nPATH SIZE = %f",_pathsize);
std::ofstream file1;
{
//TYPE: LE PLUS PRES VOISIN
dist = sqrt( pow( _intervectorX[i].get_vec(j)-_interpointsX[i-1],2 ) + pow( _intervectorY[i].get_vec(j)-_interpointsY[i-1],2 ) );
- //TYPE: LE PLUS PRES DANS LA MÊME DROITE
+ //TYPE: LE PLUS PRES DANS LA M�ME DROITE
//dist = sqrt(pow(_intervectorX[i].get_vec(j)-_intervectorX[i].get_var(),2)+pow(_intervectorY[i].get_vec(j)-_intervectorY[i].get_var(),2));
if( dist < min )
nearp = distA;
_posn = _posA;
- }
- else
- {
+ } else {
nearp = distB;
_posn = _posB;
- }
- }
+ } // if dist
+ } // if interpointsX
}
//-----------------------------------------------------------------------------------------------------------------------------------------
void AutoControlPoints::MoveControlPointInContour(std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ)
_controlpointsX.push_back( (*InX)[_contIncontpos[_posn]] );
_controlpointsY.push_back( (*InY)[_contIncontpos[_posn]] );
_controlpointsZ.push_back( (*InZ)[_contIncontpos[_posn]] );
- }
- else
- {
+ } else {
_controlpointsX.push_back( tempX[i] );
_controlpointsY.push_back( tempY[i] );
_controlpointsZ.push_back( tempZ[i] );
- }
- }
+ } // if i
+ } // for
fixBetweenPoints(5.0);
PossibleIntersections(InX,InY,InZ);
_controlpointsX.push_back( (*InX)[_contIncontpos[posact]] );
_controlpointsY.push_back( (*InY)[_contIncontpos[posact]] );
_controlpointsZ.push_back( (*InZ)[_contIncontpos[posact]] );
- }
- else
- {
+ } else {
_controlpointsX.push_back( tempX[i] );
_controlpointsY.push_back( tempY[i] );
_controlpointsZ.push_back( tempZ[i] );
- }
- }
+ } // if i
+ } // for i
if(direction == 1)
{
posact = posact+1;
ErrorBetweenContours();
promactual1 = vf->promVector(&_errorvector,false);
j--;
- }
- }
+ } // if j
+ }// for i
delete vf;
}
return 99999;
int inicontrolpoints = cpX.size();
double inipercentage = (inicontrolpoints*100)/InX->size();
int h=0;
+
if(inicontrolpoints<10)
{
int points = (int)((inipercentage*3*InX->size())/100);
_controlpointsY.push_back( (*InY)[i] );
_controlpointsZ.push_back( (*InZ)[i] );
h = 0;
- }
- }
- }
+ } // if h
+ } // for i
+ } // if initontrolpoints
+
if(inicontrolpoints>=10)
{
int points = (int)((inipercentage*2*InX->size())/100);
_controlpointsY.push_back( (*InY)[i] );
_controlpointsZ.push_back( (*InZ)[i] );
h = 0;
- }
- }
- }
+ } // if h
+ } // for int i
+ } // if inicontrolpoints
}
/*
fixBetweenPoints(5.0);
//-----------------------------------------------------------------------------------------------------------------------------------------
void AutoControlPoints::CalculeInitialControlPoints(std::vector<double>*InX, std::vector<double>*InY, std::vector<double>*InZ)
{
-
_controlpointsX.clear();
_controlpointsY.clear();
_controlpointsZ.clear();