29#ifndef NP_ARTICULATION_JOINT_RC_H
30#define NP_ARTICULATION_JOINT_RC_H
32#include "PxArticulationJointReducedCoordinate.h"
33#include "ScArticulationJointCore.h"
34#include "NpArticulationLink.h"
37#if PX_ENABLE_DEBUG_VISUALIZATION
38 #include "common/PxRenderOutput.h"
40 PX_CATCH_UNDEFINED_ENABLE_DEBUG_VISUALIZATION
46 class NpArticulationLink;
60 void preExportDataReset() { mCore.preExportDataReset(); }
68 virtual bool isSubordinate()
const {
return true; }
118 PX_ASSERT(!isAPIWriteForbidden());
119 mCore.setParentPose(v);
125 PX_ASSERT(!isAPIWriteForbidden());
126 mCore.setChildPose(v);
132 PX_ASSERT(!isAPIWriteForbidden());
133 mCore.setJointType(v);
136 PX_INLINE void scSetFrictionCoefficient(
const PxReal v)
138 PX_ASSERT(!isAPIWriteForbidden());
139 mCore.setFrictionCoefficient(v);
142 PX_INLINE void scSetMaxJointVelocity(
const PxReal v)
144 PX_ASSERT(!isAPIWriteForbidden());
145 mCore.setMaxJointVelocity(v);
151 PX_ASSERT(!isAPIWriteForbidden());
152 mCore.setLimit(axis, pair);
158 PX_ASSERT(!isAPIWriteForbidden());
159 mCore.setDrive(axis, drive);
165 PX_ASSERT(!isAPIWriteForbidden());
166 mCore.setTargetP(axis, targetP);
172 PX_ASSERT(!isAPIWriteForbidden());
173 mCore.setTargetV(axis, targetP);
179 PX_ASSERT(!isAPIWriteForbidden());
180 mCore.setArmature(axis, armature);
186 PX_ASSERT(!isAPIWriteForbidden());
187 mCore.setMotion(axis, motion);
193 PX_ASSERT(!isAPIWriteForbidden());
194 mCore.setJointPosition(axis, jointPos);
200 PX_ASSERT(!isAPIWriteForbidden());
201 mCore.setJointVelocity(axis, jointVel);
216 PX_INLINE NpArticulationLink& getParent() {
return *mParent; }
218 PX_INLINE const NpArticulationLink& getChild()
const {
return *mChild; }
219 PX_INLINE NpArticulationLink& getChild() {
return *mChild; }
221 Sc::ArticulationJointCore mCore;
222 NpArticulationLink* mParent;
223 NpArticulationLink* mChild;
Definition NpArticulationJointReducedCoordinate.h:49
virtual void setDriveVelocity(PxArticulationAxis::Enum axis, const PxReal targetVel, bool autowake=true)
Sets the joint drive velocity target for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:320
virtual void setMotion(PxArticulationAxis::Enum axis, PxArticulationMotion::Enum motion)
Sets the joint motion for a given axis.
Definition NpArticulationJointReducedCoordinate.cpp:160
virtual void setJointType(PxArticulationJointType::Enum jointType)
Sets the joint type (e.g. revolute).
Definition NpArticulationJointReducedCoordinate.cpp:77
virtual PxArticulationLink & getParentArticulationLink() const
Gets the parent articulation link of this joint.
Definition NpArticulationJointReducedCoordinate.h:205
void release()
Releases the PxBase instance, please check documentation of release in derived class.
Definition NpArticulationJointReducedCoordinate.cpp:484
virtual void setFrictionCoefficient(const PxReal coefficient)
Sets the joint friction coefficient, which applies to all joint axes.
Definition NpArticulationJointReducedCoordinate.cpp:188
virtual PxReal getArmature(PxArticulationAxis::Enum axis) const
Gets the joint armature for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:374
virtual PxReal getFrictionCoefficient() const
Gets the joint friction coefficient.
Definition NpArticulationJointReducedCoordinate.cpp:202
virtual PxArticulationJointType::Enum getJointType() const
Gets the joint type.
Definition NpArticulationJointReducedCoordinate.cpp:94
virtual PxReal getDriveVelocity(PxArticulationAxis::Enum axis) const
Returns the joint drive velocity target for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:350
virtual void setLimitParams(PxArticulationAxis::Enum axis, const PxArticulationLimit &pair)
Sets the joint limits for a given axis.
Definition NpArticulationJointReducedCoordinate.cpp:230
virtual void setDriveTarget(PxArticulationAxis::Enum axis, const PxReal target, bool autowake=true)
Sets the joint drive position target for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:295
virtual PxReal getJointPosition(PxArticulationAxis::Enum axis) const
Gets the joint position for the given axis, i.e. joint degree of freedom (DOF).
Definition NpArticulationJointReducedCoordinate.cpp:448
virtual void setDriveParams(PxArticulationAxis::Enum axis, const PxArticulationDrive &drive)
Configures a joint drive for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:259
virtual PxArticulationLink & getChildArticulationLink() const
Gets the child articulation link of this joint.
Definition NpArticulationJointReducedCoordinate.h:206
virtual void setJointVelocity(PxArticulationAxis::Enum axis, const PxReal jointVel)
Sets the joint velocity for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:457
virtual PxArticulationLimit getLimitParams(PxArticulationAxis::Enum axis) const
Returns the joint limits for a given axis.
Definition NpArticulationJointReducedCoordinate.cpp:253
virtual PxReal getDriveTarget(PxArticulationAxis::Enum axis) const
Returns the joint drive position target for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:343
virtual PxTransform getParentPose() const
Gets the joint pose in the parent link actor frame.
Definition NpArticulationJointReducedCoordinate.cpp:380
virtual PxReal getMaxJointVelocity() const
Gets the maximal joint velocity enforced for all axes.
Definition NpArticulationJointReducedCoordinate.cpp:223
virtual PxArticulationMotion::Enum getMotion(PxArticulationAxis::Enum axis) const
Returns the joint motion for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:183
virtual PxTransform getChildPose() const
Gets the joint pose in the child link actor frame.
Definition NpArticulationJointReducedCoordinate.cpp:405
virtual void setArmature(PxArticulationAxis::Enum axis, const PxReal armature)
Sets the joint armature for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:357
virtual void setMaxJointVelocity(const PxReal maxJointV)
Sets the maximal joint velocity enforced for all axes.
Definition NpArticulationJointReducedCoordinate.cpp:209
virtual PxReal getJointVelocity(PxArticulationAxis::Enum axis) const
Gets the joint velocity for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:475
virtual PxArticulationDrive getDriveParams(PxArticulationAxis::Enum axis) const
Gets the joint drive configuration for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:288
virtual void setChildPose(const PxTransform &t)
Sets the joint pose in the child link actor frame.
Definition NpArticulationJointReducedCoordinate.cpp:412
virtual void setJointPosition(PxArticulationAxis::Enum axis, const PxReal jointPos)
Sets the joint position for the given axis.
Definition NpArticulationJointReducedCoordinate.cpp:428
virtual void setParentPose(const PxTransform &t)
Sets the joint pose in the parent link actor frame.
Definition NpArticulationJointReducedCoordinate.cpp:386
Definition NpArticulationLink.h:67
A joint between two links in an articulation.
Definition PxArticulationJointReducedCoordinate.h:49
A component of an articulation that represents a rigid body.
Definition PxArticulationLink.h:54
Binary deserialization context class.
Definition PxSerialFramework.h:174
Output stream class for I/O.
Definition PxIO.h:114
Callback class used to process PxBase objects.
Definition PxSerialFramework.h:81
Binary serialization context class.
Definition PxSerialFramework.h:99
Definition ScArticulationJointCore.h:55
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
#define PX_INLINE
Definition PxPreprocessor.h:320
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
Enum
Definition PxSolverDefs.h:252
Data structure for articulation joint drive configuration.
Definition PxSolverDefs.h:359
Enum
Definition PxSolverDefs.h:281
Data structure to set articulation joint limits.
Definition PxSolverDefs.h:327
Enum
Definition PxSolverDefs.h:268