]> Creatis software - bbtk.git/blobdiff - packages/std/src/bbstdGetVectorElement.h
no message
[bbtk.git] / packages / std / src / bbstdGetVectorElement.h
index 53182c517522a9aa2117c9bd18149b8f9c7f4e83..d85ad988e6bd06aaf964d845e0ba2ec4e3e2d1ba 100644 (file)
@@ -2,8 +2,8 @@
   Program:   bbtk
   Module:    $RCSfile: bbstdGetVectorElement.h,v $
   Language:  C++
-  Date:      $Date: 2009/07/23 12:27:36 $
-  Version:   $Revision: 1.6 $
+  Date:      $Date: 2011/07/02 08:00:35 $
+  Version:   $Revision: 1.7 $
 =========================================================================*/
 
 /* ---------------------------------------------------------------------
@@ -45,6 +45,7 @@ namespace bbstd
     BBTK_TEMPLATE_BLACK_BOX_INTERFACE(GetVectorElement,bbtk::AtomicBlackBox,T);
     BBTK_DECLARE_INPUT(In,std::vector<T>);
     BBTK_DECLARE_INPUT(I,int);    
+       BBTK_DECLARE_INPUT(ErrorValue,T);    
     BBTK_DECLARE_OUTPUT(Out,T);
     BBTK_PROCESS(DoIt);
     void DoIt(); 
@@ -61,6 +62,7 @@ namespace bbstd
   typedef std::vector<T> Tvector;
   BBTK_TEMPLATE_INPUT(GetVectorElement, In,"Input",Tvector);
   BBTK_TEMPLATE_INPUT(GetVectorElement, I, "Input",int);  
+  BBTK_TEMPLATE_INPUT(GetVectorElement, ErrorValue, "ErrorValue",T);   
   BBTK_TEMPLATE_OUTPUT(GetVectorElement,Out,"Output",T);
   BBTK_END_DESCRIBE_TEMPLATE_BLACK_BOX(GetVectorElement);
   //=================================================================
@@ -69,8 +71,12 @@ namespace bbstd
   template <class T>
   void GetVectorElement<T>::DoIt()
   {
-   // unsigned int i = bbGetInputI();
-    bbSetOutputOut(bbGetInputIn()[bbGetInputI()]);
+         if (( bbGetInputI() < bbGetInputIn().size() )  &&  ( bbGetInputI() >= 0 ) )
+         {
+                 bbSetOutputOut( bbGetInputIn()[bbGetInputI()] );
+         } else {
+                 bbSetOutputOut( bbGetInputErrorValue() );
+         }             
   }
   //=================================================================