1 | #ifndef NX_PHYSICS_NXSPHERICALJOINT
|
---|
2 | #define NX_PHYSICS_NXSPHERICALJOINT
|
---|
3 | /*----------------------------------------------------------------------------*\
|
---|
4 | |
|
---|
5 | | Public Interface to NovodeX Technology
|
---|
6 | |
|
---|
7 | | www.novodex.com
|
---|
8 | |
|
---|
9 | \*----------------------------------------------------------------------------*/
|
---|
10 | /** \addtogroup physics
|
---|
11 | @{
|
---|
12 | */
|
---|
13 |
|
---|
14 | #include "NxSphericalJointDesc.h"
|
---|
15 |
|
---|
16 | #include "NxJoint.h"
|
---|
17 |
|
---|
18 | /**
|
---|
19 | \brief A sphere joint constrains two points on two bodies to coincide.
|
---|
20 |
|
---|
21 | This point, specified in world space (this guarantees that the points coincide
|
---|
22 | to start with) is the only parameter that has to be specified.
|
---|
23 |
|
---|
24 | \image html sphericalJoint.png
|
---|
25 |
|
---|
26 | <h3>Creation</h3>
|
---|
27 |
|
---|
28 | Example:
|
---|
29 |
|
---|
30 | \include NxSphericalJoint_Create.cpp
|
---|
31 |
|
---|
32 | <h3>Visulizations:</h3>
|
---|
33 | \li #NX_VISUALIZE_JOINT_LOCAL_AXES
|
---|
34 | \li #NX_VISUALIZE_JOINT_WORLD_AXES
|
---|
35 | \li #NX_VISUALIZE_JOINT_LIMITS
|
---|
36 | \li #NX_VISUALIZE_JOINT_ERROR
|
---|
37 | \li #NX_VISUALIZE_JOINT_FORCE
|
---|
38 | \li #NX_VISUALIZE_JOINT_REDUCED
|
---|
39 |
|
---|
40 | @see NxSphericalJointDesc NxScene.createJoint() NxJoint
|
---|
41 | */
|
---|
42 |
|
---|
43 | class NxSphericalJoint: public NxJoint
|
---|
44 | {
|
---|
45 | public:
|
---|
46 |
|
---|
47 | /**
|
---|
48 | \brief Use this for changing a significant number of joint parameters at once.
|
---|
49 |
|
---|
50 | Use the set() methods for changing only a single property at once.
|
---|
51 |
|
---|
52 | \param[in] desc The descriptor used to set the state of the object.
|
---|
53 |
|
---|
54 | <b>Platform:</b>
|
---|
55 | \li PC SW: Yes
|
---|
56 | \li PPU : No
|
---|
57 | \li PS3 : Yes
|
---|
58 | \li XB360: Yes
|
---|
59 |
|
---|
60 | @see NxSphericalJointDesc saveToDesc()
|
---|
61 | */
|
---|
62 | virtual void loadFromDesc(const NxSphericalJointDesc &desc) = 0;
|
---|
63 |
|
---|
64 | /**
|
---|
65 | \brief Writes all of the object's attributes to the desc struct
|
---|
66 |
|
---|
67 | \param[out] desc The descriptor used to retrieve the state of the object.
|
---|
68 |
|
---|
69 | <b>Platform:</b>
|
---|
70 | \li PC SW: Yes
|
---|
71 | \li PPU : No
|
---|
72 | \li PS3 : Yes
|
---|
73 | \li XB360: Yes
|
---|
74 |
|
---|
75 | @see NxSphericalJointDesc loadFromDesc()
|
---|
76 | */
|
---|
77 | virtual void saveToDesc(NxSphericalJointDesc &desc) = 0;
|
---|
78 |
|
---|
79 | /**
|
---|
80 | \brief Sets the flags to enable/disable the spring/motor/limit.
|
---|
81 |
|
---|
82 | This is a combination of the bits defined by ::NxRevoluteJointFlag.
|
---|
83 |
|
---|
84 | \param[in] flags The new value for the joint flags.
|
---|
85 |
|
---|
86 | <b>Platform:</b>
|
---|
87 | \li PC SW: Yes
|
---|
88 | \li PPU : No
|
---|
89 | \li PS3 : Yes
|
---|
90 | \li XB360: Yes
|
---|
91 |
|
---|
92 | @see NxRevoluteJointFlag getFlags()
|
---|
93 | */
|
---|
94 | virtual void setFlags(NxU32 flags) = 0;
|
---|
95 |
|
---|
96 | /**
|
---|
97 | \brief Returns the current flag settings.
|
---|
98 |
|
---|
99 | \return The flags associated with the joint.
|
---|
100 |
|
---|
101 | <b>Platform:</b>
|
---|
102 | \li PC SW: Yes
|
---|
103 | \li PPU : No
|
---|
104 | \li PS3 : Yes
|
---|
105 | \li XB360: Yes
|
---|
106 |
|
---|
107 | @see getFlags() NxRevoluteJointFlag
|
---|
108 | */
|
---|
109 | virtual NxU32 getFlags() = 0;
|
---|
110 |
|
---|
111 | /**
|
---|
112 | \brief Sets the joint projection mode.
|
---|
113 |
|
---|
114 | \param[in] projectionMode The new projection mode for the joint. See #NxJointProjectionMode.
|
---|
115 |
|
---|
116 | <b>Platform:</b>
|
---|
117 | \li PC SW: Yes
|
---|
118 | \li PPU : No
|
---|
119 | \li PS3 : Yes
|
---|
120 | \li XB360: Yes
|
---|
121 |
|
---|
122 | @see getProjectionMode() NxJointProjectionMode
|
---|
123 | */
|
---|
124 | virtual void setProjectionMode(NxJointProjectionMode projectionMode) = 0;
|
---|
125 |
|
---|
126 | /**
|
---|
127 | \brief Returns the current flag settings.
|
---|
128 |
|
---|
129 | \return The joints projection mode. See #NxJointProjectionMode.
|
---|
130 |
|
---|
131 | <b>Platform:</b>
|
---|
132 | \li PC SW: Yes
|
---|
133 | \li PPU : No
|
---|
134 | \li PS3 : Yes
|
---|
135 | \li XB360: Yes
|
---|
136 |
|
---|
137 | @see setProjectionMode() NxJointProjectionMode
|
---|
138 | */
|
---|
139 | virtual NxJointProjectionMode getProjectionMode() = 0;
|
---|
140 | };
|
---|
141 |
|
---|
142 | /** @} */
|
---|
143 | #endif
|
---|
144 |
|
---|
145 |
|
---|
146 | //AGCOPYRIGHTBEGIN
|
---|
147 | ///////////////////////////////////////////////////////////////////////////
|
---|
148 | // Copyright © 2005 AGEIA Technologies.
|
---|
149 | // All rights reserved. www.ageia.com
|
---|
150 | ///////////////////////////////////////////////////////////////////////////
|
---|
151 | //AGCOPYRIGHTEND
|
---|
152 |
|
---|