OMKKeyEmitterExtension.h

Go to the documentation of this file.
00001 #ifndef OMK_INP_KEYEMITTEREXTENSION_H
00002 #define OMK_INP_KEYEMITTEREXTENSION_H
00003 
00004 #include "OMKGenericKeyExtension.h"
00005 #include "OMKExtensibleSimulatedObject.h"
00006 #include "OMKTransform.h"
00007 #include "OMKBaseType.h"
00008 #include "OMKColorType.h"
00009 #include "OMKTransformType.h"
00010 #include "OMKParametersAccessor.inl"
00011 #include "OMKEventSignalEmitterUtil.h"
00012 namespace OMK
00013 {
00014   namespace Inp
00015   {
00016 
00058 class OMKINPUTS_API KeyEmitterExtension
00059 : public GenericKeyExtension< ExtensibleSimulatedObject >,
00060   public EventSignalEmitterUtil
00061 {
00062   DECLARE_EXTENSION_FACTORY( KeyEmitterExtension ) ;
00063 protected:
00064   virtual bool loadExtensionParameters( const ConfigurationParameterDescriptor * node ) ;
00067   virtual void action() ;
00068 };
00069 
00070 //=============================================================================
00176 template< typename T, typename ModelType >
00177 class KeyEmitterExtensionT  
00178 : public GenericKeyExtension< ExtensibleSimulatedObject >,
00179   public ValuedEventSignalEmitterUtilT< T, ModelType >
00180 {
00181 public:
00183   friend class OMK::ExtensionCreatorT< KeyEmitterExtensionT< T, ModelType > > ; 
00185   static Name OMK_CLASS_ID ; 
00187   static const bool REGISTERED_IN_EXTENSION_FACTORY ; 
00188 protected: 
00191         KeyEmitterExtensionT( ExtensibleSimulatedObject* owner, const Name& id, bool registerExtension ) 
00192     : GenericKeyExtension< ExtensibleSimulatedObject >( owner, id, registerExtension, "" ),
00193       ValuedEventSignalEmitterUtilT< T, ModelType >()
00194   {
00195   }
00196 
00197 public: 
00198   virtual ~KeyEmitterExtensionT() {}
00199 protected:
00200   virtual bool loadExtensionParameters( const ConfigurationParameterDescriptor * node ) 
00201   {
00202     return GenericKeyExtension< ExtensibleSimulatedObject >::loadExtensionParameters( node ) 
00203         && this->loadParametersUtil( _owner, node );
00204   }
00207   virtual void action() 
00208   {
00209     this->sendUtil( _owner ) ;
00210   }
00211 } ;
00212 
00213 typedef KeyEmitterExtensionT< int, OMK::Type::IntType > KeyIntEmitterExtension ;
00214 typedef KeyEmitterExtensionT< bool, OMK::Type::BoolType > KeyBoolEmitterExtension ;
00215 typedef KeyEmitterExtensionT< Name, Name > KeyNameEmitterExtension ;
00216 typedef KeyEmitterExtensionT< OMK::Type::StringType, OMK::Type::StringType > KeyStringEmitterExtension ;
00217 typedef KeyEmitterExtensionT< float, OMK::Type::FloatType > KeyFloatEmitterExtension ;
00218 typedef KeyEmitterExtensionT< OMK::Type::Transform, OMK::Type::TransformType > KeyTransformEmitterExtension ;
00219 typedef KeyEmitterExtensionT< OMK::Type::Color, OMK::Type::ColorType > KeyColorEmitterExtension ;
00220 typedef KeyEmitterExtensionT< std::pair< OMK::Name, OMK::Name >, 
00221                               OMK::Type::SimpleTypeT< std::pair< OMK::Name, OMK::Name > > > KeyConnectEmitterExtension ;
00222 #if defined _MSC_VER
00223 REGISTER_TEMPLATE_EXTENSION_FACTORY( KeyIntEmitterExtension, "KeyIntEmitterExtension" ) ; 
00224 REGISTER_TEMPLATE_EXTENSION_FACTORY( KeyBoolEmitterExtension, "KeyBoolEmitterExtension" ) ; 
00225 REGISTER_TEMPLATE_EXTENSION_FACTORY( KeyNameEmitterExtension, "KeyNameEmitterExtension" ) ; 
00226 REGISTER_TEMPLATE_EXTENSION_FACTORY( KeyFloatEmitterExtension, "KeyFloatEmitterExtension" ) ; 
00227 REGISTER_TEMPLATE_EXTENSION_FACTORY( KeyStringEmitterExtension, "KeyStringEmitterExtension" ) ; 
00228 REGISTER_TEMPLATE_EXTENSION_FACTORY( KeyTransformEmitterExtension, "KeyTransformEmitterExtension" ) ; 
00229 REGISTER_TEMPLATE_EXTENSION_FACTORY( KeyColorEmitterExtension, "KeyColorEmitterExtension" ) ; 
00230 REGISTER_TEMPLATE_EXTENSION_FACTORY( KeyConnectEmitterExtension, "KeyConnectEmitterExtension" ) ; 
00231 #endif //defined _MSC_VER
00232 
00233   } // namespace Inp
00234 } // namespace OMK
00235 
00236 #endif // OMK_INP_KEYEMITTEREXTENSION_H

logo OpenMask

Documentation generated on Mon Jun 9 11:45:56 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007