Tizen 2.1 base
[platform/upstream/libbullet.git] / Extras / PhysicsEffects / include / physics_effects / base_level / solver / pfx_joint_universal.h
1 /*\r
2 Physics Effects Copyright(C) 2010 Sony Computer Entertainment Inc.\r
3 All rights reserved.\r
4 \r
5 Physics Effects is open software; you can redistribute it and/or\r
6 modify it under the terms of the BSD License.\r
7 \r
8 Physics Effects is distributed in the hope that it will be useful,\r
9 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\r
11 See the BSD License for more details.\r
12 \r
13 A copy of the BSD License is distributed with\r
14 Physics Effects under the filename: physics_effects_license.txt\r
15 */\r
16 \r
17 #ifndef _SCE_PFX_JOINT_UNIVERSAL_H\r
18 #define _SCE_PFX_JOINT_UNIVERSAL_H\r
19 \r
20 #include "pfx_joint.h"\r
21 #include "pfx_solver_body.h"\r
22 \r
23 namespace sce {\r
24 namespace PhysicsEffects {\r
25 \r
26 struct PfxUniversalJointInitParam {\r
27         PfxVector3 anchorPoint;\r
28         PfxVector3 axis;\r
29         PfxFloat swing1LowerAngle;\r
30         PfxFloat swing1UpperAngle;\r
31         PfxFloat swing2LowerAngle;\r
32         PfxFloat swing2UpperAngle;\r
33         \r
34         PfxUniversalJointInitParam()\r
35         {\r
36                 anchorPoint = PfxVector3(0.0f);\r
37                 axis = PfxVector3(1.0f,0.0f,0.0f);\r
38                 swing1LowerAngle = -0.7f;\r
39                 swing1UpperAngle =  0.7f;\r
40                 swing2LowerAngle = -0.7f;\r
41                 swing2UpperAngle =  0.7f;\r
42         }\r
43 };\r
44 \r
45 PfxInt32 pfxInitializeUniversalJoint(\r
46         PfxJoint &joint,\r
47         const PfxRigidState &stateA,\r
48         const PfxRigidState &stateB,\r
49         const PfxUniversalJointInitParam &param);\r
50 \r
51 void pfxSetupUniversalJoint(\r
52         PfxJoint &joint,\r
53         const PfxRigidState &stateA,\r
54         const PfxRigidState &stateB,\r
55         PfxSolverBody &solverBodyA,\r
56         PfxSolverBody &solverBodyB,\r
57         PfxFloat timeStep);\r
58 \r
59 // pfxWarmStartUniversalJoint = pfxWarmStartSwingTwistJoint\r
60 \r
61 // pfxSolveUniversalJoint = pfxSolveSwingTwistJoint\r
62 \r
63 } //namespace PhysicsEffects\r
64 } //namespace sce\r
65 #endif // _SCE_PFX_JOINT_UNIVERSAL_H\r