]> Creatis software - creaMaracasVisu.git/blobdiff - bbtk/src/bbcreaMaracasVisuManualContourModel_Box.cxx
#3266 creaMaracasVisu Feature New Normal - ManualContour_Box by segments
[creaMaracasVisu.git] / bbtk / src / bbcreaMaracasVisuManualContourModel_Box.cxx
index 1aa1c53867598b4e53585e270f65168a9654a6fb..eee2c1958b6b44cca78c413eb5b588cceb343279 100644 (file)
@@ -263,8 +263,11 @@ void ManualContourModel_Box::Process()
                lstIndexsIn.push_back( lstInX.size() );
        }
 
-       ShiftValues( &lstInX , &lstInY , &lstInZ , &lstIndexsIn );
-
+       
+       if (bbGetInputDoubleContour()==1)
+       {
+               ShiftValues( &lstInX , &lstInY , &lstInZ , &lstIndexsIn );
+       } // DoubleContour
 
        int i,size=lstIndexsIn.size();
        int iGeneral=0;
@@ -277,93 +280,77 @@ void ManualContourModel_Box::Process()
                                                        &lstIndexsOut,bbGetInputOpenClose() );
        } // for
 
-       RedistributionPoints(&lstOutX,&lstOutY,&lstOutZ,&lstIndexsOut);
-
-
-
-    // Second Step Transpose the vectors   
-       lstInX.clear();
-       lstInY.clear();
-       lstInZ.clear();
-       lstIndexsIn.clear();
-       size  = bbGetInputNbPoints();
-       int j,size2 = lstIndexsOut.size();
-       for (i=0;i<size;i++)
+       if (bbGetInputDoubleContour()==0)
        {
-               for (j=0;j<size2;j++)
+               //////////////////// Set Out   DoubleContour = 0
+               bbSetOutputLstContourPointsX(lstOutX);  
+               bbSetOutputLstContourPointsY(lstOutY);  
+               bbSetOutputLstContourPointsZ(lstOutZ);
+               bbSetOutputLstIndexsOut(lstIndexsOut);  
+       } else {
+               RedistributionPoints(&lstOutX,&lstOutY,&lstOutZ,&lstIndexsOut);
+               ///////////// Second Step Transpose the vectors   
+               lstInX.clear();
+               lstInY.clear();
+               lstInZ.clear();
+               lstIndexsIn.clear();
+               size  = bbGetInputNbPoints();
+               int j,size2 = lstIndexsOut.size();
+               for (i=0;i<size;i++)
                {
-                       lstInX.push_back( lstOutX[ j*lstIndexsOut[j] + i ] );
-                       lstInY.push_back( lstOutY[ j*lstIndexsOut[j] + i ] );
-                       lstInZ.push_back( lstOutZ[ j*lstIndexsOut[j] + i ] );
-               } // for j
-               lstIndexsIn.push_back( size2 );
-       } // for i
-       lstOutX.clear();
-       lstOutY.clear();
-       lstOutZ.clear();
-       lstIndexsOut.clear();
-
-
-    // Third step Interponation 2
-       size=lstIndexsIn.size();
-       iGeneral=0;
-       for (i=0;i<size;i++)
-       {
-               ProcessBySegment(       bbGetInputType() , 
-                                                       iGeneral, lstIndexsIn[i] ,
-                                                       &lstInX,&lstInY,&lstInZ,
-                                                       &lstOutX,&lstOutY,&lstOutZ,
-                                                       &lstIndexsOut,false);
-       } // for
-
-
-       RedistributionPoints(&lstOutX,&lstOutY,&lstOutZ,&lstIndexsOut);
-
-
-    // Second Step Transpose the vectors   
-       lstInX.clear();
-       lstInY.clear();
-       lstInZ.clear();
-       lstIndexsIn.clear();
-       size  = bbGetInputNbPoints();
-       size2 = lstIndexsOut.size();
-       for (i=0;i<size;i++)
-       {
-               for (j=0;j<size2;j++)
+                       for (j=0;j<size2;j++)
+                       {
+                               lstInX.push_back( lstOutX[ j*lstIndexsOut[j] + i ] );
+                               lstInY.push_back( lstOutY[ j*lstIndexsOut[j] + i ] );
+                               lstInZ.push_back( lstOutZ[ j*lstIndexsOut[j] + i ] );
+                       } // for j
+                       lstIndexsIn.push_back( size2 );
+               } // for i
+               lstOutX.clear();
+               lstOutY.clear();
+               lstOutZ.clear();
+               lstIndexsOut.clear();
+               ///////////////////// Third step Interponation 2
+               size=lstIndexsIn.size();
+               iGeneral=0;
+               for (i=0;i<size;i++)
                {
-                       lstInX.push_back( lstOutX[ j*lstIndexsOut[j] + i ] );
-                       lstInY.push_back( lstOutY[ j*lstIndexsOut[j] + i ] );
-                       lstInZ.push_back( lstOutZ[ j*lstIndexsOut[j] + i ] );
-               } // for j
-               lstIndexsIn.push_back( size2 );
-       } // for i
-       lstOutX.clear();
-       lstOutY.clear();
-       lstOutZ.clear();
-       lstIndexsOut.clear();
-
-       bbSetOutputLstContourPointsX(lstInX);   
-       bbSetOutputLstContourPointsY(lstInY);   
-       bbSetOutputLstContourPointsZ(lstInZ);
-       bbSetOutputLstIndexsOut(lstIndexsIn);   
-
-
-printf("EED Warnning ..... ManualContourModel_Box::Process    Clean this ...............\n");
-printf("EED Warnning ..... ManualContourModel_Box::Process    Clean this ...............\n");
-printf("EED Warnning ..... ManualContourModel_Box::Process    Clean this ...............\n");
-printf("EED Warnning ..... ManualContourModel_Box::Process    Clean this ...............\n");
-printf("EED Warnning ..... ManualContourModel_Box::Process    Clean this ...............\n");
-printf("EED Warnning ..... ManualContourModel_Box::Process    Clean this ...............\n");
-printf("EED Warnning ..... ManualContourModel_Box::Process    Clean this ...............\n");
-printf("EED Warnning ..... ManualContourModel_Box::Process    Clean this ...............\n");
-printf("EED Warnning ..... ManualContourModel_Box::Process    Clean this ...............\n");
-
-/*
-       bbSetOutputLstContourPointsX(lstOutX);  
-       bbSetOutputLstContourPointsY(lstOutY);  
-       bbSetOutputLstContourPointsZ(lstOutZ);
-       bbSetOutputLstIndexsOut(lstIndexsOut);  
-*/
+                       ProcessBySegment(       bbGetInputType() , 
+                                                               iGeneral, lstIndexsIn[i] ,
+                                                               &lstInX,&lstInY,&lstInZ,
+                                                               &lstOutX,&lstOutY,&lstOutZ,
+                                                               &lstIndexsOut,bbGetInputOpenClose2());
+               } // for
+               RedistributionPoints(&lstOutX,&lstOutY,&lstOutZ,&lstIndexsOut);
+               //////////////////// Forth step Transpose the vectors   
+               lstInX.clear();
+               lstInY.clear();
+               lstInZ.clear();
+               lstIndexsIn.clear();
+               size  = bbGetInputNbPoints();
+               size2 = lstIndexsOut.size();
+               for (i=0;i<size;i++)
+               {
+                       for (j=0;j<size2;j++)
+                       {
+                               lstInX.push_back( lstOutX[ j*lstIndexsOut[j] + i ] );
+                               lstInY.push_back( lstOutY[ j*lstIndexsOut[j] + i ] );
+                               lstInZ.push_back( lstOutZ[ j*lstIndexsOut[j] + i ] );
+                       } // for j
+                       lstIndexsIn.push_back( size2 );
+               } // for i
+               lstOutX.clear();
+               lstOutY.clear();
+               lstOutZ.clear();
+               lstIndexsOut.clear();
+
+               //////////////////// Set Out   DoubleContour = 1
+               bbSetOutputLstContourPointsX(lstInX);   
+               bbSetOutputLstContourPointsY(lstInY);   
+               bbSetOutputLstContourPointsZ(lstInZ);
+               bbSetOutputLstIndexsOut(lstIndexsIn);   
+
+       } // if DoubleContour 
 
 }
 //===== 
@@ -375,7 +362,9 @@ void ManualContourModel_Box::bbUserSetDefaultValues()
 //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
 //    Here we initialize the input 'In' to 0
    bbSetInputType(1);
+   bbSetInputDoubleContour(0);
    bbSetInputOpenClose(false);
+   bbSetInputOpenClose2(false);
    bbSetInputNbPoints(100);
   
 }