#ifndef __bbstdGetVectorElement_INCLUDED_h__ #define __bbstdGetVectorElement_INCLUDED_h__ #include "bbtkAtomicBlackBox.h" namespace bbstd { //================================================================= // BlackBox declaration template class GetVectorElement : public bbtk::AtomicBlackBox { BBTK_TEMPLATE_BLACK_BOX_INTERFACE(GetVectorElement,bbtk::AtomicBlackBox,T); BBTK_DECLARE_INPUT(In,std::vector); BBTK_DECLARE_INPUT(I,int); BBTK_DECLARE_OUTPUT(Out,T); BBTK_PROCESS(DoIt); void DoIt(); virtual void bbUserConstructor(); }; //================================================================= //================================================================= // BlackBox description BBTK_BEGIN_DESCRIBE_TEMPLATE_BLACK_BOX(GetVectorElement,bbtk::AtomicBlackBox); BBTK_NAME("Get"+bbtk::HumanTypeName >()+"Element"); BBTK_AUTHOR("jpr@creatis.insa-lyon.fr"); // BBTK_DEFAULT_ADAPTOR(); BBTK_DESCRIPTION("Gets the i-th element from the input vector ("+bbtk::TypeName >()); typedef std::vector Tvector; BBTK_TEMPLATE_INPUT(GetVectorElement, In,"Input",Tvector); BBTK_TEMPLATE_INPUT(GetVectorElement, I, "Input",int); BBTK_TEMPLATE_OUTPUT(GetVectorElement,Out,"Output",T); BBTK_END_DESCRIBE_TEMPLATE_BLACK_BOX(GetVectorElement); //================================================================= //================================================================= template void GetVectorElement::DoIt() { // std::string out; // std::ostringstream oss; int i = bbGetInputI(); //oss << bbGetInputIn()[i]; //bbSetOutputOut(out.str()); bbSetOutputOut(bbGetInputIn()[i]); } //================================================================= //================================================================= template void GetVectorElement::bbUserConstructor() { } //================================================================= } // namespace bbstd #endif //__bbstdGetVectorElement_INCLUDED_h__