AnimaL |
Tutorial |
Documentation |
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