X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fstd%2Fsrc%2FbbstdCast.h;h=f42024a511a4e36acfcd8d43e458a19ed19d7188;hb=f707cd7054d48f29fa0e6e3b47fb152b0ea324e8;hp=81f6e20c5bc25b79c2d04f1a8b00731bcb0b9cfc;hpb=487dbfe275c2c6fa7454a000503082bfca54396b;p=bbtk.git diff --git a/packages/std/src/bbstdCast.h b/packages/std/src/bbstdCast.h index 81f6e20..f42024a 100644 --- a/packages/std/src/bbstdCast.h +++ b/packages/std/src/bbstdCast.h @@ -1,27 +1,65 @@ +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la SantÈ) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # This software is governed by the CeCILL-B license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL-B + # license as circulated by CEA, CNRS and INRIA at the following URL + # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + # or in the file LICENSE.txt. + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL-B license and that you accept its terms. + # ------------------------------------------------------------------------ */ + + +/*========================================================================= + Program: bbtk + Module: $RCSfile: bbstdCast.h,v $ + Language: C++ + Date: $Date: 2012/11/16 08:51:32 $ + Version: $Revision: 1.8 $ +=========================================================================*/ + + + #ifndef __bbstdCast_h_INCLUDED__ #define __bbstdCast_h_INCLUDED__ #include "bbtkAtomicBlackBox.h" +#include "bbstd_EXPORT.h" namespace bbstd { //================================================================= - // UserBlackBox declaration - template - class Cast : public bbtk::AtomicBlackBox + // BlackBox declaration + template < class T, class U > + class bbstd_EXPORT Cast : public bbtk::AtomicBlackBox { - BBTK_USER_BLACK_BOX_INTERFACE(Cast,bbtk::AtomicBlackBox); - BBTK_DECLARE_INPUT(In,T); - BBTK_DECLARE_OUTPUT(Out,U); + BBTK_TEMPLATE2_BLACK_BOX_INTERFACE(Cast,bbtk::AtomicBlackBox , T , U ); + BBTK_DECLARE_INPUT(In , T ); + BBTK_DECLARE_OUTPUT(Out , U ); BBTK_PROCESS(DoIt); void DoIt() { bbtkDebugMessage("Data",5,"bbstd::Cast In = " - <() + << bbGetInputIn() <<" <"<() <<">"<(bbGetInputIn()) ); + bbSetOutputOut( static_cast< U >(bbGetInputIn()) ); bbtkDebugMessage("Data",5,"bbstd::Cast Out = " - <<(U)bbGetInputIn()<<" <"<() + <<( U )bbGetInputIn()<<" <"<() <<">"<()+"To"+bbtk::HumanTypeName()); + // BlackBox description + BBTK_BEGIN_DESCRIBE_TEMPLATE2_BLACK_BOX(Cast,bbtk::AtomicBlackBox); + BBTK_NAME("Cast"+bbtk::HumanTypeName< T1 >()+"To"+bbtk::HumanTypeName< T2 >()); BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr"); - BBTK_DESCRIPTION("Static cast from "+bbtk::HumanTypeName()+" (" - +bbtk::TypeName()+") to "+bbtk::HumanTypeName() - +" ("+bbtk::TypeName()+")"); + BBTK_DESCRIPTION("Static cast from "+bbtk::HumanTypeName< T1 >()+" (" + +bbtk::TypeName< T1 >()+") to "+bbtk::HumanTypeName< T2 >() + +" ("+bbtk::TypeName< T2 >()+")"); BBTK_DEFAULT_ADAPTOR(); - BBTK_TEMPLATE2_INPUT(Cast,In,"Input",T1); - BBTK_TEMPLATE2_OUTPUT(Cast,Out,"Output",T2); + BBTK_TEMPLATE2_INPUT(Cast,In,"Input", T1 ); + BBTK_TEMPLATE2_OUTPUT(Cast,Out,"Output", T2 ); BBTK_END_DESCRIBE_TEMPLATE2_BLACK_BOX(Cast); //================================================================= + template void Cast< T , U >::bbUserSetDefaultValues() {} + template void Cast< T , U >::bbUserInitializeProcessing() {} + template void Cast< T , U >::bbUserFinalizeProcessing() {} + } // namespace bbstd