Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

Visible3DComponent.h

Go to the documentation of this file.
00001 
00040 #ifndef _AMIRE_COMPONENT_VISIBLE_3D_COMPONENT_H
00041 #define _AMIRE_COMPONENT_VISIBLE_3D_COMPONENT_H
00042 
00043 #include <amire/common/Defines.h>
00044 #include <amire/common/Matrix.h>
00045 #include <amire/common/BoundingVolumes.h>
00046 #include <amire/component/Component.h>
00047 #include <amire/component/CallbackHandlers.h>
00048 
00049 namespace amire {
00050   namespace component {
00070     class AMIRE_EXPORT_API Visible3DComponent : public virtual Component, public virtual Position3DPickingHandler, public virtual DirectionPointerPickingHandler {
00071     private:
00072       bool initEmit;
00073 
00074     protected: 
00075       bool visible;
00076 
00077       amire::common::Matrix offset;
00078       amire::common::Matrix inTransformation;
00079       amire::common::Matrix outTransformation;
00080 
00081       int visibleInSlotId;
00082       int transformationInSlotId;
00083       int visibleOutSlotId;
00084       int transformationOutSlotId;
00085 
00086     public:
00087       virtual ~Visible3DComponent();
00088       virtual void configurationPropertyModified();
00089       virtual void reinitializeEngine(MREngine *engine);
00090       virtual void functionalCallback(MREngine *engine);
00091       virtual osg::ref_ptr<const amire::property::Property> emitOutSlotProperty(int outSlotId);
00092       virtual void receiveInSlotProperty(int inSlotId, const osg::ref_ptr<const amire::property::Property> &property) ;
00093       virtual bool pickingCallback(MREngine *engine, const amire::common::Vector &point, long pickingMode, double &distance) const;
00094       virtual bool pickingCallback(MREngine *engine, const amire::common::Vector &point, const amire::common::Vector &direction, long pickingMode, double &distance) const;
00095       virtual void actionPerformed(const osg::ref_ptr<Action> &action);
00096 
00104       virtual osg::ref_ptr<const amire::common::BoundingVolume> getBoundingVolume() const;
00105 
00111       const amire::common::Matrix &getOutTransformation();
00112 
00113     protected:
00114       Visible3DComponent(ComponentManager *componentManager);
00115 
00122       void initConfigurationProperty();
00123 
00129       void updateOutTransformation();
00130     };
00131   }
00132 }
00133 #endif

Generated on Tue May 20 17:23:54 2003 for AMIRE-Framework by doxygen1.3