#include <OMKPlusMinusExtension.h>
Inheritance diagram for OMK::Inp::PlusMinusExtension< T >:
Public Member Functions | |
virtual | ~PlusMinusExtension () |
Destructor. | |
template<> | |
PlusMinusExtension (ExtensibleSimulatedObject *owner, const Name &id, bool registerExtension) | |
template<> | |
void | increment () |
Static Public Attributes | |
static Name | OMK_CLASS_ID |
static const bool | REGISTERED_IN_EXTENSION_FACTORY |
The registration in the extension factory. | |
Protected Member Functions | |
PlusMinusExtension (OMK::ExtensibleSimulatedObject *owner, const Name &id, bool registerExtension=true) | |
Constructor. | |
virtual bool | loadExtensionParameters (const ConfigurationParameterDescriptor *node) |
Initialisation. | |
virtual void | action () |
The overwritten method. | |
virtual void | actionRelease () |
The overwritten method. | |
virtual void | postComputeParameters () |
Compute. | |
void | increment () |
The incrementation method. | |
Protected Attributes | |
AttributeT< T > | _increment |
The increment. | |
bool | _doIncrementation |
The inner increment. | |
IAccessorT< T > * | _attributeAccessor |
The attribute to update. | |
Friends | |
class | OMK::ExtensionCreatorT< PlusMinusExtension< T > > |
The creator is a friend. |
This extension can be used as an extension of any ExtensibleSimulatedObject which has a float or a integer attribute.
This is a template extension, it is implemented for the following attributes:
visualisation { Class OgreVis ... Extensions { plus { Class PlusMinusFloatExtension Increment 0.001 // the value which will be added to the attribute current value each time the key will be pressed Attribute Step // The name of the attribute Key P // the default is "ADD" (the \b + of the numeric pad) VisuName visualisation // the default is "visualisation" needed to create the key listener } ... } } *
There is two ways to change the display of the details.
the_sender_object->sendEvent( "visualisation", OMK::Inp::KeyListener::getKeyPressCode( "P" ) ) ;
Definition at line 61 of file OMKPlusMinusExtension.h.
OMK::Inp::PlusMinusExtension< T >::PlusMinusExtension | ( | OMK::ExtensibleSimulatedObject * | owner, | |
const Name & | id, | |||
bool | registerExtension = true | |||
) | [protected] |
Constructor.
It is protected, because it is only called by the friend creator.
Definition at line 135 of file OMKPlusMinusExtension.h.
References OMK::Inp::PlusMinusExtension< T >::_increment, and OMK::ExtensionT< OwnerClass >::_owner.
00136 : GenericKeyExtension< ExtensibleSimulatedObject >( owner, id, registerExtension, "ADD" ), 00137 _increment( id, 0 ), 00138 _doIncrementation( false ), 00139 _attributeAccessor( 0 ) 00140 { 00141 _owner->addAttribute( _increment ) ; 00142 }
OMK::Inp::PlusMinusExtension< T >::~PlusMinusExtension | ( | ) | [virtual] |
OMK::Inp::PlusMinusExtension< OMK::Type::Transform >::PlusMinusExtension | ( | ExtensibleSimulatedObject * | owner, | |
const Name & | id, | |||
bool | registerExtension | |||
) |
Definition at line 155 of file OMKPlusMinusExtension.h.
References OMK::Inp::PlusMinusExtension< T >::_increment, and OMK::ExtensionT< OwnerClass >::_owner.
00156 : GenericKeyExtension< ExtensibleSimulatedObject >( owner, id, registerExtension, "ADD" ), 00157 _increment( id, Wm4::Vector3f::ZERO ), 00158 _doIncrementation( false ), 00159 _attributeAccessor( 0 ) 00160 { 00161 _owner->addAttribute( _increment ) ; 00162 }
virtual bool OMK::Inp::PlusMinusExtension< T >::loadExtensionParameters | ( | const ConfigurationParameterDescriptor * | node | ) | [inline, protected, virtual] |
Initialisation.
Reimplemented from OMK::Inp::GenericKeyExtension< OwnerClass >.
Definition at line 80 of file OMKPlusMinusExtension.h.
References OMK::Inp::PlusMinusExtension< T >::_attributeAccessor, OMK::Inp::PlusMinusExtension< T >::_increment, OMK::ExtensionT< OwnerClass >::_owner, OMK::ParametersAccessor::get(), OMK::Inp::GenericKeyExtension< OwnerClass >::loadExtensionParameters(), OMERROR, and OMK::IAttributeT< PrmType, ModelType, AccessorType >::set().
00081 { 00082 bool ok = OMK::Inp::GenericKeyExtension< ExtensibleSimulatedObject >::loadExtensionParameters( node ) ; 00083 T inc ; 00084 ok = ok && ParametersAccessor::get( node, "Increment", inc, _owner ) ; 00085 _increment.set( inc ) ; 00086 Name attributeName ; 00087 ok = ok && ParametersAccessor::get( node, "Attribute", attributeName, _owner ) ; 00088 if( ok ) 00089 { 00090 _attributeAccessor = _owner->getBaseAttribute< T >( attributeName ) ; 00091 ok = _attributeAccessor != 0 ; 00092 if( !ok ) 00093 { 00094 OMERROR( "Unable to find the associated attribute \"" << attributeName << "\" of type \"" << typeid( T ).name() 00095 << ( _owner->getAttribute( attributeName ) ? 00096 "\", the attribute with this name is not of this type (\"" + std::string( _owner->getAttribute( attributeName )->getTypeId().name() ) + "\")." 00097 : "\"." ) ) ; 00098 } 00099 } 00100 return ok ; 00101 }
virtual void OMK::Inp::PlusMinusExtension< T >::action | ( | ) | [inline, protected, virtual] |
The overwritten method.
Switches the details level.
Reimplemented from OMK::Inp::GenericKeyExtension< OwnerClass >.
Definition at line 110 of file OMKPlusMinusExtension.h.
References OMK::Inp::PlusMinusExtension< T >::_doIncrementation, OMK::Inp::GenericKeyExtension< OwnerClass >::_eventListenerRelease, and OMK::Inp::PlusMinusExtension< T >::increment().
00111 { 00112 if( !_eventListenerRelease ) increment() ; 00113 else _doIncrementation = true ; 00114 }
virtual void OMK::Inp::PlusMinusExtension< T >::actionRelease | ( | ) | [inline, protected, virtual] |
The overwritten method.
Switches the details level.
Reimplemented from OMK::Inp::GenericKeyExtension< OwnerClass >.
Definition at line 117 of file OMKPlusMinusExtension.h.
References OMK::Inp::PlusMinusExtension< T >::_doIncrementation, OMK::Inp::GenericKeyExtension< OwnerClass >::_eventListenerPress, and OMK::Inp::PlusMinusExtension< T >::increment().
00118 { 00119 if( !_eventListenerPress ) increment() ; 00120 else _doIncrementation = false ; 00121 }
virtual void OMK::Inp::PlusMinusExtension< T >::postComputeParameters | ( | ) | [inline, protected, virtual] |
Compute.
Reimplemented from OMK::Extension.
Definition at line 123 of file OMKPlusMinusExtension.h.
References OMK::Inp::PlusMinusExtension< T >::_doIncrementation, and OMK::Inp::PlusMinusExtension< T >::increment().
00124 { 00125 if( _doIncrementation ) increment() ; 00126 }
void OMK::Inp::PlusMinusExtension< T >::increment | ( | ) | [inline, protected] |
The incrementation method.
Definition at line 128 of file OMKPlusMinusExtension.h.
References OMK::Inp::PlusMinusExtension< T >::_attributeAccessor, and OMK::Inp::PlusMinusExtension< T >::_increment.
Referenced by OMK::Inp::PlusMinusExtension< T >::action(), OMK::Inp::PlusMinusExtension< T >::actionRelease(), and OMK::Inp::PlusMinusExtension< T >::postComputeParameters().
00129 { 00130 _attributeAccessor->set( _attributeAccessor->get() + _increment ) ; 00131 }
void OMK::Inp::PlusMinusExtension< OMK::Type::Transform >::increment | ( | ) |
Definition at line 166 of file OMKPlusMinusExtension.h.
References OMK::Inp::PlusMinusExtension< T >::_attributeAccessor, OMK::Inp::PlusMinusExtension< T >::_increment, OMK::IAttributeT< PrmType, ModelType, AccessorType >::get(), and OMK::Type::product().
00167 { 00168 _attributeAccessor->set( product( _attributeAccessor->get(), _increment.get() ) ) ; 00169 }
friend class OMK::ExtensionCreatorT< PlusMinusExtension< T > > [friend] |
Name OMK::Inp::PlusMinusExtension< T >::OMK_CLASS_ID [static] |
Definition at line 68 of file OMKPlusMinusExtension.h.
const bool OMK::Inp::PlusMinusExtension< T >::REGISTERED_IN_EXTENSION_FACTORY [static] |
AttributeT< T > OMK::Inp::PlusMinusExtension< T >::_increment [protected] |
The increment.
Definition at line 103 of file OMKPlusMinusExtension.h.
Referenced by OMK::Inp::PlusMinusExtension< T >::increment(), OMK::Inp::PlusMinusExtension< T >::loadExtensionParameters(), and OMK::Inp::PlusMinusExtension< T >::PlusMinusExtension().
bool OMK::Inp::PlusMinusExtension< T >::_doIncrementation [protected] |
The inner increment.
Definition at line 105 of file OMKPlusMinusExtension.h.
Referenced by OMK::Inp::PlusMinusExtension< T >::action(), OMK::Inp::PlusMinusExtension< T >::actionRelease(), and OMK::Inp::PlusMinusExtension< T >::postComputeParameters().
IAccessorT< T >* OMK::Inp::PlusMinusExtension< T >::_attributeAccessor [protected] |
The attribute to update.
Definition at line 107 of file OMKPlusMinusExtension.h.
Referenced by OMK::Inp::PlusMinusExtension< T >::increment(), and OMK::Inp::PlusMinusExtension< T >::loadExtensionParameters().
Documentation generated on Mon Jun 9 11:46:04 2008 |
Generated with doxygen by Dimitri van Heesch , 1997-2007 |