Tiberian Technologies Scripts Reference Revision: 9000
Loading...
Searching...
No Matches
PhysicsConstants.h
1#ifndef TT_INCLUDE__PHYSICSCONSTANTS_H
2#define TT_INCLUDE__PHYSICSCONSTANTS_H
3
4
5
6#include "Vector3.h"
7
8
9
10class ChunkSaveClass;
11class ChunkLoadClass;
12
13
14#ifndef TTLE_EXPORTS
15extern float ContactFrictionCoefficient[3][32];
16extern float ContactDragCoefficient[3][32];
17#else
18typedef float ContactFrictionCoefficientType[3][32];
19extern REF_DECL(ContactFrictionCoefficientType,ContactFrictionCoefficient);
20typedef float ContactDragCoefficientType[3][32];
21extern REF_DECL(ContactDragCoefficientType,ContactDragCoefficient);
22#endif
23
24
25class PhysicsConstants
26{
27
28public:
29
30 static float AngularDamping;
31 static float DefaultContactFriction;
32 static float DefaultContactDrag;
33#ifndef W3DVIEWER
34 static REF_DECL(Vector3, GravityAcceleration);
35#endif
36 static float LinearDamping;
37 static float RestingContactVelocity;
38 static float MinFrictionVelocity;
39 static float MinFrictionVelocity2;
40
41 static void Init();
42
43 static void Set_Contact_Friction_Coefficient(int physicsType, int surfaceType, float value)
44 {
45 if ((uint)physicsType < 3 && (uint)surfaceType < 32)
46 ContactFrictionCoefficient[physicsType][surfaceType] = value;
47 }
48
49 static float Get_Contact_Friction_Coefficient(int physicsType, int surfaceType)
50 {
51 if ((uint)physicsType < 3 && (uint)surfaceType < 32)
52 return ContactFrictionCoefficient[physicsType][surfaceType];
53 else
54 return ContactFrictionCoefficient[0][0];
55 }
56
57 static void Set_Contact_Drag_Coefficient(int physicsType, int surfaceType, float value)
58 {
59 if ((uint)physicsType < 3 && (uint)surfaceType < 32)
60 ContactDragCoefficient[physicsType][surfaceType] = value;
61 }
62
63 static float Get_Contact_Drag_Coefficient(int physicsType, int surfaceType)
64 {
65 if ((uint)physicsType < 3 && (uint)surfaceType < 32)
66 return ContactDragCoefficient[physicsType][surfaceType];
67 else
68 return ContactDragCoefficient[0][0];
69 }
70
71 static void Save(ChunkSaveClass&);
72 static void Load(ChunkLoadClass&);
73
74};
75
76
77
78#endif