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_PHYSICSRIGIDBODY_H_
|
---|
7 | #define _FCD_PHYSICSRIGIDBODY_H_
|
---|
8 |
|
---|
9 | #include "FCDocument/FCDEntity.h"
|
---|
10 | #include "FCDocument/FCDEntityInstance.h"
|
---|
11 | #include "FCDocument/FCDPhysicsParameter.h"
|
---|
12 | #include "FCDocument/FCDTransform.h"
|
---|
13 | #include "FCDocument/FCDPhysicsShape.h"
|
---|
14 | #include "FUtils/FUDaeEnum.h"
|
---|
15 |
|
---|
16 | class FCDocument;
|
---|
17 |
|
---|
18 | typedef vector<FCDPhysicsParameterGeneric*> FCDPhysicsParameterList;
|
---|
19 | typedef vector<FCDPhysicsShape*> FCDPhysicsShapeList;
|
---|
20 |
|
---|
21 | class FCOLLADA_EXPORT FCDPhysicsRigidBody : public FCDEntity
|
---|
22 | {
|
---|
23 | private:
|
---|
24 | DeclareObjectType;
|
---|
25 |
|
---|
26 | string sid;
|
---|
27 | bool ownsPhysicsMaterial;
|
---|
28 | FCDPhysicsMaterial* physicsMaterial;
|
---|
29 |
|
---|
30 | FCDPhysicsParameterList parameters;
|
---|
31 | FCDPhysicsShapeList physicsShape;
|
---|
32 |
|
---|
33 | public:
|
---|
34 | FCDPhysicsRigidBody(FCDocument* document);
|
---|
35 | virtual ~FCDPhysicsRigidBody();
|
---|
36 |
|
---|
37 | string GetSid() const { return sid; }
|
---|
38 | // Returns the entity type
|
---|
39 | virtual Type GetType() const { return PHYSICS_RIGID_BODY; }
|
---|
40 |
|
---|
41 | void AddParameter(FCDPhysicsParameterGeneric* parameter);
|
---|
42 | void CopyParameter(FCDPhysicsParameterGeneric* parameter);
|
---|
43 |
|
---|
44 | void SetParameters(FCDPhysicsParameterList& params);
|
---|
45 | FCDPhysicsParameterGeneric* FindParameterByReference(const string& reference);
|
---|
46 |
|
---|
47 | // Direct Accessors
|
---|
48 | FCDPhysicsMaterial* GetPhysicsMaterial() const {return physicsMaterial;}
|
---|
49 | void SetPhysicsMaterial(FCDPhysicsMaterial* _physicsMaterial);
|
---|
50 | FCDPhysicsShapeList& GetPhysicsShapeList() {return physicsShape;}
|
---|
51 | void SetPhysicsShapes(FCDPhysicsShapeList& _physicsShape);
|
---|
52 | void SetMaterialOwnership(bool val) {ownsPhysicsMaterial = val;}
|
---|
53 |
|
---|
54 | void Flatten();
|
---|
55 |
|
---|
56 | // Create a copy of this physicsmodel, with the vertices overwritten
|
---|
57 | FCDPhysicsRigidBody* Clone();
|
---|
58 |
|
---|
59 | // Read in the <physics_model> node of the COLLADA document
|
---|
60 | virtual FUStatus LoadFromXML(xmlNode* node);
|
---|
61 |
|
---|
62 | // Write out the <physics_model> node to the COLLADA xml tree
|
---|
63 | virtual xmlNode* WriteToXML(xmlNode* parentNode) const;
|
---|
64 | };
|
---|
65 |
|
---|
66 | #endif // _FCD_PHYSICSRIGIDBODY_H_
|
---|