]> Creatis software - bbtk.git/blobdiff - packages/std/src/bbstdGetSubVector.h
#2959 BBTK Feature New Normal - new complex box RescaleSlopeIntercept_Interface.bbg
[bbtk.git] / packages / std / src / bbstdGetSubVector.h
index 639aba70d06427f0bee82d2cb47a65b37d8cc122..ec6e861adfb20eedbefecf72675ad21a6ac5bc07 100644 (file)
@@ -78,15 +78,24 @@ namespace bbstd
   template <class T>
   void GetSubVector<T>::DoIt()
   {
-       int i;
+       int i,iStart,iEnd;
+       iStart  =       bbGetInputI();                                  
+       iEnd    =       bbGetInputI() + bbGetInputSize() - 1;  
+       if (iStart<0)                                           { iStart = 0; }
+       if (iEnd<0)                                             { iEnd   = 0; }
+       if (iStart>bbGetInputIn().size() )      { iStart = bbGetInputIn().size(); }
+       if (iEnd>bbGetInputIn().size() )                { iEnd   = bbGetInputIn().size(); }
+
+
+
        std::vector<T> tmpVectResult;
-       if ( (bbGetInputI()<(int)bbGetInputIn().size())  &&  (bbGetInputI()>=0) && (bbGetInputSize()>=1) )
+       if  (bbGetInputSize()>=1) 
        {       
-               for ( i=0 ; i<bbGetInputSize() ; i++)
+               for ( i=iStart ; i<iEnd ; i++)
                {
-                       if ( bbGetInputI()+i<(int)bbGetInputIn().size() ) 
+                       if ( i<(int)bbGetInputIn().size() ) 
                        {
-                               tmpVectResult.push_back( bbGetInputIn()[bbGetInputI()+i] );
+                               tmpVectResult.push_back( bbGetInputIn()[i] );
                        } // if InputI+i
 
                }// for