source: NonGTP/FCollada/FCDocument/FCDPhysicsRigidConstraint.h @ 964

Revision 964, 2.8 KB checked in by igarcia, 18 years ago (diff)
Line 
1/*
2        Copyright (C) 2005-2006 Feeling Software Inc.
3        MIT License: http://www.opensource.org/licenses/mit-license.php
4*/
5
6#ifndef _FCD_PHYSICS_RIGID_CONSTRAINT_H_
7#define _FCD_PHYSICS_RIGID_CONSTRAINT_H_
8
9#include "FCDocument/FCDEntity.h"
10#include "FCDocument/FCDEntityInstance.h"
11#include "FUtils/FUDaeEnum.h"
12
13class FCDocument;
14class FCDTransform;
15class FCDPhysicsModel;
16class FCDPhysicsRigidBody;
17typedef vector<FCDTransform*> FCDTransformList;
18
19class FCOLLADA_EXPORT FCDPhysicsRigidConstraint : public FCDEntity
20{
21private:
22        DeclareObjectType;
23
24        string sid;
25        bool enabled;
26        bool interpenetrate;
27        FCDPhysicsRigidBody* referenceRigidBody;
28        FCDPhysicsRigidBody* targetRigidBody;
29        FMVector3 limitsLinearMin;
30        FMVector3 limitsLinearMax;
31        FMVector3 limitsSCTMin;
32        FMVector3 limitsSCTMax;
33
34        FCDPhysicsModel* parent;
35
36        float springLinearStiffness;
37        float springLinearDamping;
38        float springLinearTargetValue;
39
40        float springAngularStiffness;
41        float springAngularDamping;
42        float springAngularTargetValue;
43
44        FCDTransformList transformsRef;
45        FCDTransformList transformsTar;
46
47public:
48        FCDPhysicsRigidConstraint(FCDocument* document, FCDPhysicsModel* _parent);
49        virtual ~FCDPhysicsRigidConstraint();
50
51        string GetSid() const { return sid; }
52        // Returns the entity type
53        virtual Type GetType() const { return PHYSICS_RIGID_CONSTRAINT; }
54
55        const bool& GetEnabled() const { return enabled;}
56        const bool& GetInterpenetrate() const { return interpenetrate;}
57
58        FCDPhysicsRigidBody* GetReferenceRigidBody() const { return referenceRigidBody;}
59        FCDPhysicsRigidBody* GetTargetRigidBody() const { return targetRigidBody;}
60
61        const FCDTransformList& GetTransformsRef() const { return transformsRef; }
62        const FCDTransformList& GetTransformsTar() const { return transformsTar; }
63
64        FMVector3 GetLimitsLinearMin() const { return limitsLinearMin;}
65        FMVector3 GetLimitsLinearMax() const { return limitsLinearMax;}
66        FMVector3 GetLimitsSCTMin() const { return limitsSCTMin;}
67        FMVector3 GetLimitsSCTMax() const { return limitsSCTMax;}
68
69        float GetSpringLinearStiffness() const { return springLinearStiffness;}
70        float GetSpringLinearDamping() const { return springLinearDamping;}
71        float GetSpringLinearTargetValue() const { return springLinearTargetValue;}
72        float GetSpringAngularStiffness() const { return springAngularStiffness;}
73        float GetSpringAngularDamping() const { return springAngularDamping;}
74        float GetSpringAngularTargetValue() const { return springAngularTargetValue;}
75
76        // Create a copy of this physicsmodel, with the vertices overwritten
77        FCDPhysicsRigidConstraint* Clone();
78
79        // Read in the <physics_model> node of the COLLADA document
80        virtual FUStatus LoadFromXML(xmlNode* node);
81
82        // Write out the <physics_model> node to the COLLADA xml tree
83        virtual xmlNode* WriteToXML(xmlNode* parentNode) const;
84};
85
86#endif // _FCD_PHYSICS_RIGID_CONSTRAINT_H_
Note: See TracBrowser for help on using the repository browser.