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_PHYSICS_RIGID_CONSTRAINT_INSTANCE_H_ 00015 #define _FCD_PHYSICS_RIGID_CONSTRAINT_INSTANCE_H_ 00016 00017 #ifndef _FCD_ENTITY_INSTANCE_H_ 00018 #include "FCDocument/FCDEntityInstance.h" 00019 #endif // _FCD_ENTITY_INSTANCE_H_ 00020 00021 class FCDocument; 00022 class FCDEntity; 00023 class FCDSceneNode; 00024 class FCDPhysicsModel; 00025 class FCDPhysicsModelInstance; 00026 class FCDPhysicsRigidConstraint; 00027 00036 class FCOLLADA_EXPORT FCDPhysicsRigidConstraintInstance : public FCDEntityInstance 00037 { 00038 private: 00039 DeclareObjectType(FCDEntityInstance); 00040 FCDPhysicsModelInstance* parent; 00041 00042 public: 00052 FCDPhysicsRigidConstraintInstance(FCDocument* document, FCDPhysicsModelInstance* parent, FCDPhysicsRigidConstraint* constraint); 00053 00055 virtual ~FCDPhysicsRigidConstraintInstance(); 00056 00060 virtual Type GetType() const { return PHYSICS_RIGID_CONSTRAINT; } 00061 00065 FCDPhysicsModelInstance* GetParent() { return parent; } 00066 const FCDPhysicsModelInstance* GetParent() const { return parent; } 00070 inline FCDPhysicsRigidConstraint* GetRigidConstraint() { return (FCDPhysicsRigidConstraint*) GetEntity(); } 00071 00077 virtual FCDEntityInstance* Clone(FCDEntityInstance* clone = NULL) const; 00078 00082 FCDPhysicsModelInstance* GetModelParentInstance(){ return parent; } 00083 00087 void SetRigidConstraint(FCDPhysicsRigidConstraint* constraint); 00088 }; 00089 00090 #endif // _FCD_PHYSICS_RIGID_CONSTRAINT_INSTANCE_H_