00001 /* 00002 Copyright (C) 2005-2007 Feeling Software Inc. 00003 Portions of the code are: 00004 Copyright (C) 2005-2007 Sony Computer Entertainment America 00005 00006 MIT License: http://www.opensource.org/licenses/mit-license.php 00007 */ 00008 00014 #ifndef _FCD_PHYSICSRIGIDBODY_H_ 00015 #define _FCD_PHYSICSRIGIDBODY_H_ 00016 00017 #ifndef _FCD_ENTITY_H_ 00018 #include "FCDocument/FCDEntity.h" 00019 #endif // _FCD_ENTITY_H_ 00020 00021 class FCDocument; 00022 class FCDPhysicsRigidBodyParameters; 00023 00031 class FCOLLADA_EXPORT FCDPhysicsRigidBody : public FCDEntity 00032 { 00033 private: 00034 DeclareObjectType(FCDEntity); 00035 00036 DeclareParameterRef(FCDPhysicsRigidBodyParameters, parameters, FC("Parameters")); 00037 00038 public: 00042 FCDPhysicsRigidBody(FCDocument* document); 00043 00045 virtual ~FCDPhysicsRigidBody(); 00046 00050 virtual Type GetType() const { return FCDEntity::PHYSICS_RIGID_BODY; } 00051 00054 inline const fm::string& GetSubId() const { return Parent::GetDaeId(); } 00055 00058 inline void SetSubId(const char* sid) { Parent::SetDaeId(sid); } 00059 inline void SetSubId(const fm::string& sid) { Parent::SetDaeId(sid); } 00063 FCDPhysicsRigidBodyParameters* GetParameters() { return parameters; } 00064 const FCDPhysicsRigidBodyParameters* GetParameters() const { return parameters; } 00073 float GetShapeMassFactor() const; 00074 00082 virtual FCDEntity* Clone(FCDEntity* clone = NULL, bool cloneChildren = false) const; 00083 }; 00084 00085 #endif // _FCD_PHYSICSRIGIDBODY_H_