Documentation


EngineNode.h

Go to the documentation of this file.
00001 //
00002 // C++ Interface: EngineNode
00003 //
00004 // Description:
00005 //
00006 //
00007 // Author: My Name <me@myaddress>, (C) 2004
00008 //
00009 // Copyright: See COPYING file that comes with this distribution
00010 //
00011 //
00012 #ifndef X3DTK_X3DEngineNode_h
00013 #define X3DTK_X3DEngineNode_h
00014 
00015 #include <animal/X3DTK/X4DNode.h>
00016 #include <animal/event/keyEvent.h>
00017 #include <animal/event/mouseEvent.h>
00018 #include <animal/picking.h>
00019 
00020 namespace X3DTK
00021 {
00022 
00023 namespace X3D
00024 {
00025 
00034 typedef std::list<X3DNode*> X3D_X3DNodeList;
00035 
00036 class EngineNode 
00037     : public X4DNode
00038 {
00039 public:
00043     typedef enum { KINEMATICS, DYNAMICS, COLLISION } Behavior;
00044     
00045     EngineNode();
00046 
00047     virtual ~EngineNode();
00048 
00050     virtual void declareOutputs( X3D_X3DNodeList&  );
00051 
00052     virtual void draw()
00053     {}
00054 
00055     virtual void updateBoundingBox()=0;
00056     //virtual void updateBoundingBox(){}
00057 
00058     virtual void init()
00059     {}
00060 
00061     virtual void postInit()
00062     {}
00063     
00064     virtual void close()
00065     {}
00066 
00067     virtual void postClose()
00068     {}
00069 
00070     virtual void keyPressedEvent( animal::KeyEvent* )
00071     {}
00072 
00074     virtual void mouseDoubleClickEvent(animal::MouseEvent* )
00075     {}
00077     virtual void mouseMoveEvent(animal::MouseEvent*)
00078     {}
00080     virtual void mousePressEvent(animal::MouseEvent*)
00081     {}
00083     virtual void mouseReleaseEvent(animal::MouseEvent*)
00084     {}
00086     virtual animal::ConstrainedItem* pickPoint( float* , float* , float )
00087     {
00088         return 0;
00089     }
00090     virtual void reset();
00091     virtual void postReset();
00092     virtual void animate(float dt);
00093     virtual void postAnimate(float dt);
00094     Behavior behavior() const; 
00095     
00096     bool m_animate; 
00097 
00098 protected:
00099     EngineNode* m_parentEngine;
00100     Behavior m_behavior;
00101 };
00102 
00104 typedef std::list<EngineNode*> EngineNodes;
00105 
00106 };
00107 
00108 };
00109 
00110 #endif

Generated on Thu Dec 23 13:52:24 2004 by doxygen 1.3.6