2 Physics Effects Copyright(C) 2010 Sony Computer Entertainment Inc.
\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
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
13 A copy of the BSD License is distributed with
\r
14 Physics Effects under the filename: physics_effects_license.txt
\r
17 #ifndef _SCE_PFX_JOINT_SWING_TWIST_H
\r
18 #define _SCE_PFX_JOINT_SWING_TWIST_H
\r
20 #include "pfx_joint.h"
\r
21 #include "pfx_solver_body.h"
\r
23 namespace PhysicsEffects {
\r
25 struct PfxSwingTwistJointInitParam {
\r
26 PfxVector3 anchorPoint;
\r
27 PfxVector3 twistAxis;
\r
28 PfxFloat twistLowerAngle;
\r
29 PfxFloat twistUpperAngle;
\r
30 PfxFloat swingLowerAngle;
\r
31 PfxFloat swingUpperAngle;
\r
33 PfxSwingTwistJointInitParam()
\r
35 anchorPoint = PfxVector3(0.0f);
\r
36 twistAxis = PfxVector3(1.0f,0.0f,0.0f);
\r
37 twistLowerAngle = -0.26f;
\r
38 twistUpperAngle = 0.26f;
\r
39 swingLowerAngle = 0.0f;
\r
40 swingUpperAngle = 0.7f;
\r
44 PfxInt32 pfxInitializeSwingTwistJoint(
\r
46 const PfxRigidState &stateA,
\r
47 const PfxRigidState &stateB,
\r
48 const PfxSwingTwistJointInitParam ¶m);
\r
50 void pfxSetupSwingTwistJoint(
\r
52 const PfxRigidState &stateA,
\r
53 const PfxRigidState &stateB,
\r
54 PfxSolverBody &solverBodyA,
\r
55 PfxSolverBody &solverBodyB,
\r
58 void pfxWarmStartSwingTwistJoint(
\r
60 PfxSolverBody &solverBodyA,
\r
61 PfxSolverBody &solverBodyB);
\r
63 void pfxSolveSwingTwistJoint(
\r
65 PfxSolverBody &solverBodyA,
\r
66 PfxSolverBody &solverBodyB);
\r
68 } //namespace PhysicsEffects
\r
70 #endif // _SCE_PFX_JOINT_SWING_TWIST_H
\r