00001
00002
00003
00004
00005
00006 #ifndef _FCD_PHYSICS_RIGID_BODY_ENTITY_H_
00007 #define _FCD_PHYSICS_RIGID_BODY_ENTITY_H_
00008
00009 #include "FCDocument/FCDEntityInstance.h"
00010
00011 class FCDocument;
00012 class FCDSceneNode;
00013 class FCDPhysicsRigidBody;
00014 class FCDPhysicsMaterial;
00015 class FCDPhysicsModelInstance;
00016 class FCDPhysicsParameterGeneric;
00017
00018 typedef vector<FCDPhysicsParameterGeneric*> FCDPhysicsParameterList;
00019
00020 class FCOLLADA_EXPORT FCDPhysicsRigidBodyInstance : public FCDEntityInstance
00021 {
00022 private:
00023 DeclareObjectType;
00024 FCDPhysicsParameterList parameters;
00025
00026 FCDPhysicsModel* parent;
00027 FCDPhysicsRigidBody* rigidBody;
00028 FCDPhysicsMaterial* physicsMaterial;
00029 bool ownsPhysicsMaterial;
00030 FCDSceneNode* targetNode;
00031
00032 public:
00033 FCDPhysicsRigidBodyInstance(FCDocument* document, FCDEntity* _parent);
00034 virtual ~FCDPhysicsRigidBodyInstance();
00035
00036 void AddParameter(FCDPhysicsParameterGeneric* parameter);
00037
00038 FCDPhysicsRigidBody* FlattenRigidBody();
00039
00040 FCDSceneNode* GetTargetNode() const {return targetNode;}
00041
00042
00043 virtual Type GetType() const { return PHYSICS_RIGID_BODY; }
00044
00045
00046 virtual FUStatus LoadFromXML(xmlNode* instanceNode);
00047
00048
00049 virtual xmlNode* WriteToXML(xmlNode* parentNode) const;
00050 };
00051
00052 #endif // _FCD_PHYSICS_RIGID_BODY_ENTITY_H_