FCDocument/FCDPhysicsRigidBodyInstance.h

00001 /*
00002     Copyright (C) 2005-2006 Feeling Software Inc.
00003     MIT License: http://www.opensource.org/licenses/mit-license.php
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     // FCDEntity override for RTTI-like
00043     virtual Type GetType() const { return PHYSICS_RIGID_BODY; }
00044 
00045     // Load the geometry instance from the COLLADA document
00046     virtual FUStatus LoadFromXML(xmlNode* instanceNode);
00047 
00048     // Write out the instantiation information to the xml node tree
00049     virtual xmlNode* WriteToXML(xmlNode* parentNode) const;
00050 };
00051 
00052 #endif // _FCD_PHYSICS_RIGID_BODY_ENTITY_H_

Generated on Fri May 12 16:44:39 2006 for FCollada by  doxygen 1.4.6-NO