creaContoursFactory f;
manualContourModel *m;
int i,size=iGeneral+sizeSegment;
-
double x,y,z;
-
m = (manualContourModel*)f.getContourModel( bbGetInputType() );
m->SetNumberOfPointsSpline( bbGetInputNbPoints() );
m->SetCloseContour( open );
std::vector<double> *lstOutZ,
std::vector<int> *lstIndexsOut )
{
- printf("EED Warnning! ManualContourModel_Box::RedistributionPoints Start\n");
-
std::vector<double> lstRstX;
std::vector<double> lstRstY;
std::vector<double> lstRstZ;
-
int iLstIndexOut,sizeLstIndexOut=lstIndexsOut->size();
int ii, iGeneral=0;
int size;
-
for (iLstIndexOut=0; iLstIndexOut<sizeLstIndexOut; iLstIndexOut++)
{
//printf("EED ManualContourModel_Box::RedistributionPoints iLstIndexOut=%d \n", iLstIndexOut);
-
lstRstX.clear();
lstRstY.clear();
lstRstZ.clear();
-
size=(*lstIndexsOut)[iLstIndexOut];
if (size>2)
{
dist = dist+sqrt( dx*dx + dy*dy + dz*dz );
} //for
delta=dist/(size-1);
-
lstRstX.push_back( (*lstOutX)[iGeneral] );
lstRstY.push_back( (*lstOutY)[iGeneral] );
lstRstZ.push_back( (*lstOutZ)[iGeneral] );
dist2=dist2+distSeg;
} // for k
} //for i
-
-
if (lstRstX.size()!=size)
{
printf("EED Warnning! ManualContourModel_Box::RedistributionPoints >> This list is not coherent iLstIndexOut=%d lstRstX.size()=%d size=%d\n",iLstIndexOut, lstRstX.size(), size);
}
-
for (i=iGeneral; i<iGeneral+size;i++)
{
ii=i-iGeneral;
(*lstOutY)[i] = lstRstY[ii];
(*lstOutZ)[i] = lstRstZ[ii];
} // for i
-
} // if size>2
-
iGeneral=iGeneral+size;
-
}// for iLstIndexOut
-
- printf("EED Warnning! ManualContourModel_Box::RedistributionPoints End\n");
-
}
double dist,distMin;
int i,iBack;
double dx,dy,dz;
-
std::vector<double> LstTmpX;
std::vector<double> LstTmpY;
std::vector<double> LstTmpZ;
-
if (sizeLstIndexIn>=2)
{
for (iLstIndexIn=0; iLstIndexIn<sizeLstIndexIn-1; iLstIndexIn++)
{
size = (*lstIndexsIn)[iLstIndexIn];
size2 = (*lstIndexsIn)[iLstIndexIn+1];
-
//find min distance and iBack
distMin = 10000000;
iBack = 0;
distMin = dist;
}
} // for dist
-
-
if (iBack!=0)
{
LstTmpX.clear();
(*lstInZ)[iGeneral+size+i] = LstTmpZ[i];
} // for i
}
-
iGeneral=iGeneral+size;
} // for iLstIndexIn
} // sizeLstIndexIn
// bbSetOutputOut( bbGetInputIn() );
// std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
-
// First Step Spline Interpolation
std::vector<double> lstInX=bbGetInputLstControlPointsX();
std::vector<double> lstInY=bbGetInputLstControlPointsY();
std::vector<double> lstInZ=bbGetInputLstControlPointsZ();
-
if ( (lstInX.size()!=lstInY.size()) || (lstInY.size()!=lstInZ.size()) )
{
printf("Warnning !! .. ManualContourModel_Box: The list X Y Z, no have the same number of elements \n");
return;
}
-
std::vector<int> lstIndexsIn=bbGetInputLstIndexsIn();
std::vector<int> lstIndexsOut;
std::vector<double> lstOutX;
std::vector<double> lstOutY;
std::vector<double> lstOutZ;
-
if (bbGetInputLstIndexsIn().size()==0)
{
lstIndexsIn.push_back( lstInX.size() );
}
-
-
if (bbGetInputDoubleContour()==1)
{
ShiftValues( &lstInX , &lstInY , &lstInZ , &lstIndexsIn );
} // DoubleContour
-
int i,size=lstIndexsIn.size();
int iGeneral=0;
for (i=0;i<size;i++)
lstOutY.clear();
lstOutZ.clear();
lstIndexsOut.clear();
-
//////////////////// Set Out DoubleContour = 1
bbSetOutputLstContourPointsX(lstInX);
bbSetOutputLstContourPointsY(lstInY);