FCDocument/FCDPhysicsModel.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_PHYSICSMODEL_H_
00007 #define _FCD_PHYSICSMODEL_H_
00008 
00009 #include "FCDocument/FCDEntity.h"
00010 #include "FCDocument/FCDEntityInstance.h"
00011 #include "FUtils/FUDaeEnum.h"
00012 
00013 class FCDocument;
00014 class FCDPhysicsRigidBody;
00015 class FCDPhysicsRigidConstraint;
00016 
00017 typedef vector<FCDEntityInstance*> FCDEntityInstanceList;
00018 typedef vector<FCDPhysicsRigidBody*> FCDPhysicsRigidBodyList;
00019 typedef vector<FCDPhysicsRigidConstraint*> FCDPhysicsRigidConstraintList;
00020 
00021 class FCOLLADA_EXPORT FCDPhysicsModel : public FCDEntity
00022 {
00023 private:
00024     DeclareObjectType;
00025     FCDEntityInstanceList instances;
00026     FCDPhysicsRigidBodyList rigidBodies;
00027     FCDPhysicsRigidConstraintList rigidConstraints;
00028 
00029 public:
00030     FCDPhysicsModel(FCDocument* document);
00031     virtual ~FCDPhysicsModel();
00032 
00033     // Returns the entity type
00034     virtual Type GetType() const { return PHYSICS_MODEL; }
00035 
00036     // Direct Accessors
00037     FCDEntityInstanceList& GetInstances() { return instances; }
00038     const FCDEntityInstanceList& GetInstances() const { return instances; }
00039 
00040     FCDPhysicsRigidBody* FindRigidBodyFromSid(const string& sid);
00041     FCDPhysicsRigidConstraint* FindRigidConstraintFromSid(const string& sid);
00042 
00043     // Create a copy of this physicsmodel, with the vertices overwritten
00044     FCDPhysicsModel* Clone(/*FloatList& newPositions, uint32 newPositionsStride, FloatList& newNormals, uint32 newNormalsStride*/);
00045 
00046     // Read in the <physics_model> node of the COLLADA document
00047     virtual FUStatus LoadFromXML(xmlNode* node);
00048 
00049     // Write out the <physics_model> node to the COLLADA xml tree
00050     virtual xmlNode* WriteToXML(xmlNode* parentNode) const;
00051 };
00052 
00053 #endif // _FCD_PHYSICSMODEL_H_

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