if(SizeContour==(*lstTmpX).size() )
{
int iSize=0;
-printf("\n ManualContourModel_Box::PutPointsInContour y=%f\n", (*lstTmpY)[0] );
for ( i=iGeneral ; i<iGeneralPlusSize ; i++ )
{
-printf("x=%f %f y=%f %f z=%f %f\n", (*lstOutX)[i], (*lstTmpX)[iSize],(*lstOutY)[i], (*lstTmpY)[iSize],(*lstOutZ)[i], (*lstTmpZ)[iSize] );
(*lstOutX)[i] = (*lstTmpX)[iSize] ;
(*lstOutY)[i] = (*lstTmpY)[iSize] ;
(*lstOutZ)[i] = (*lstTmpZ)[iSize] ;
std::vector<double> lstRstZ;
int ii,iGeneral;
int size,iGeneralPlusSize;
+ int iGeneralPlusSizeMoisUn;
+ int iGeneralPlusSizeMoisDeux;
int i,k;
int firstK;
double iiByDelta;
PI = 3.14159265;
TwoPI = 2*PI;
iGeneral = 0;
-
size = (*lstC1X).size();
iGeneralPlusSize = iGeneral+size;
+ iGeneralPlusSizeMoisUn = iGeneralPlusSize-1;
+ iGeneralPlusSizeMoisDeux = iGeneralPlusSize-2;
if (size>2)
{
firstK = 0;
t = ((double)ii) / ((double)(size-1));
tt = t + 0.70710678182*sin(t*TwoPI)*beta + alpha;
- if (tt>=1) { tt=tt-1; }
+ if (tt>1) { tt=tt-1; }
if (tt<0) { tt=tt+1; }
iiByDelta = tt * dist;
-
- for (k=iGeneral; k<iGeneralPlusSize-1;k++) // Search inside
+ for ( k=iGeneral ; k<iGeneralPlusSizeMoisUn ; k++ ) // Search inside
{
dx = (*lstC1X)[k+1]-(*lstC1X)[k];
dy = (*lstC1Y)[k+1]-(*lstC1Y)[k];
if (ii==0) { firstK=k; }
k = iGeneralPlusSize-1;
} else {
- if ( k==iGeneralPlusSize-1-1 )
+ if ( k==iGeneralPlusSizeMoisDeux )
{
dd = 1;
lstRstX.push_back( (*lstC1X)[k] + dd*dx );
} else {
sizeContour3=-1;
}
- if ( (sizeContour1>sizeContour2) && (sizeContour2>sizeContour3) )
+ if ( (sizeContour1>=sizeContour2) && (sizeContour2>sizeContour3) )
{
findAlphaBetaSinDistribution( &lstTmp2X,&lstTmp2Y,&lstTmp2Z ,sizeContour2, &lstTmp1X,&lstTmp1Y,&lstTmp1Z, &alpha,&beta);
Redistribution_SIN( alpha,beta, &lstTmp2X,&lstTmp2Y,&lstTmp2Z ,sizeContour2, &lstTmp2aX,&lstTmp2aY,&lstTmp2aZ );
PutPointsInContour(&lstTmp2aX,&lstTmp2aY,&lstTmp2aZ, iContour+1 ,lstOutX,lstOutY,lstOutZ,lstIndexsOut);
CopyContour2InContour1( &lstTmp2aX,&lstTmp2aY,&lstTmp2aZ , &lstTmp1X,&lstTmp1Y,&lstTmp1Z );
} else {
- if ( (sizeContour1>sizeContour2) && (sizeContour2<sizeContour3) ) // Warning for a minimum local
- {
- lstContourExeption.push_back( iContour-1 );
- } // if minimum local
- if ( (sizeContour1<sizeContour2) && (sizeContour2>sizeContour3) ) // Warning for a maximum local
+ if ( (sizeContour3!=-1) && (sizeContour1<sizeContour2) && (sizeContour2>sizeContour3) ) // Warning for a maximum local
{
lstInconsistentContourY.push_back( lstTmp2Y[0] );
lstInconsistentContourID.push_back( iContour+1 );
{
lstContourExeption.push_back( iContour-1 );
} // if minimum local
- if ( (sizeContour1<sizeContour2) && (sizeContour2>sizeContour3) ) // Warning for a maximum local
+ if ( (sizeContour3!=-1) && (sizeContour1<sizeContour2) && (sizeContour2>sizeContour3) ) // Warning for a maximum local
{
lstInconsistentContourY.push_back( lstTmp2Y[0] );
lstInconsistentContourID.push_back( iContour-1 );