public class SliderJoint extends JointBase implements CopyableComponent
z
.
The z
value is available as a property which can be read and
also, under appropriate circumstances, set. Setting this value causes an
adjustment in the positions of one or both bodies connected to this joint,
along with adjacent bodies connected to them, with preference given to
bodies that are not attached to ``ground''. If this is done during
simulation, and particularly if one or both of the bodies connected to this
joint are moving dynamically, the results will be unpredictable and will
likely conflict with the simulation.
ModelComponent.NavpanelVisibility
Modifier and Type | Field and Description |
---|---|
static PropertyList |
myProps |
static int |
Z_IDX |
DEFAULT_SHAFT_LENGTH, DEFAULT_SHAFT_RADIUS
debug, useOldDerivativeMethod
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
COPY_REFERENCES, REST_POSITION
TG_ARTICULATED, TG_DRAGGER, TG_PRESERVE_ORIENTATION, TG_SIMULATING
TRANSPARENT, TWO_DIMENSIONAL
Constructor and Description |
---|
SliderJoint()
Creates a
PrismaticJoint which is not attached to any bodies. |
SliderJoint(ConnectableBody bodyA,
ConnectableBody bodyB,
RigidTransform3d TDW)
Creates a
PrismaticJoint connecting two connectable bodies, bodyA and bodyB . |
SliderJoint(ConnectableBody bodyA,
ConnectableBody bodyB,
RigidTransform3d TCW,
RigidTransform3d TDW)
Creates a
PrismaticJoint connecting two connectable bodies,
bodyA and bodyB . |
SliderJoint(ConnectableBody bodyA,
RigidTransform3d TDW)
Creates a
PrismaticJoint connecting a single connectable body,
bodyA , to ground. |
SliderJoint(RigidBody bodyA,
ConnectableBody bodyB,
Point3d originD,
Vector3d zaxis)
Creates a
PrismaticJoint connecting two connectable bodies, bodyA and bodyB . |
SliderJoint(RigidBody bodyA,
RigidTransform3d TCA,
RigidBody bodyB,
RigidTransform3d TDB)
Creates a
PrismaticJoint connecting two rigid bodies, bodyA and bodyB . |
Modifier and Type | Method and Description |
---|---|
PropertyList |
getAllPropertyInfo()
Returns a list giving static information about all properties exported by
this object.
|
double |
getMaxZ()
Queries the upper z range limit for this joint, in degrees.
|
double |
getMinZ()
Queries the lower z range limit for this joint, in degrees.
|
double |
getZ()
Queries this joint's z value.
|
DoubleInterval |
getZRange()
Queries the z range limits for this joint.
|
boolean |
isZLocked()
Queries whether the z coordinate for this joint is locked.
|
void |
render(Renderer renderer,
int flags)
Render this object using the functionality of the supplied
Renderer . |
void |
setMaxZ(double max)
Sets the upper z range limit for this joint.
|
void |
setMinZ(double min)
Sets the lower z range limit for this joint.
|
void |
setZ(double z)
Sets this joint's z value.
|
void |
setZLocked(boolean locked)
Set whether the z coordinate for this joint is locked.
|
void |
setZRange(double min,
double max)
Sets the z range limits for this joint.
|
void |
setZRange(DoubleInterval range)
Sets the z range limits for this joint.
|
void |
updateBounds(Vector3d pmin,
Vector3d pmax)
Update the minimum and maximum points for this object.
|
addCoordinateSolveBlocks, addCoordinateVelJacobian, applyCoordinateForce, coordinatesToTCD, getCoordinate, getCoordinateDeg, getCoordinateIndex, getCoordinateMotionType, getCoordinateName, getCoordinateRange, getCoordinateRangeDeg, getCoordinates, getCoordinateSpeed, getCoordinateValue, getMaxCoordinate, getMaxCoordinateDeg, getMinCoordinate, getMinCoordinateDeg, getPosition, getShaftLength, getShaftRadius, getStoredCoordinates, getStoredTCD, getStoredTCD, isCoordinateLocked, numCoordinates, setCoordinate, setCoordinateDeg, setCoordinateLocked, setCoordinateName, setCoordinateRange, setCoordinateRangeDeg, setCoordinates, setShaftLength, setShaftRadius
addBilateralConstraints, addFrictionConstraints, addMasterBlocks, addTransformableDependencies, addUnilateralConstraints, computeConstraintMatrixA, computeConstraintMatrixB, connectToHierarchy, copy, disconnectFromHierarchy, findAttachedBodies, getActivation, getAxisLength, getBilateralForceInA, getBilateralForceInA, getBilateralForceInB, getBilateralForceInB, getBilateralForceInC, getBilateralForceInC, getBilateralForces, getBilateralInfo, getBilateralSizes, getBodyA, getBodyB, getCompliance, getConstrainedComponents, getConstraint, getConstraintFlags, getConstraintForce, getCopyReferences, getCoupling, getCurrentTCD, getCurrentTCW, getCurrentTCW, getCurrentTDW, getCurrentTDW, getDamping, getDrawFrameC, getDrawFrameD, getFrameAttachmentA, getFrameAttachmentB, getFrictionForces, getFrictionState, getHardReferences, getLinearCompliance, getPenetrationTol, getPenetrationTolMode, getPose, getRenderFrame, getRotaryCompliance, getRotaryLimitTol, getRotaryLimitTolMode, getState, getStateVersion, getTransformDGeometryOnly, getTransformPositionOnly, getUnilateralForceInA, getUnilateralForceInA, getUnilateralForceInB, getUnilateralForceInB, getUnilateralForceInC, getUnilateralForceInC, getUnilateralForces, getUnilateralInfo, getUnilateralSizes, getUnilateralState, hasState, isActive, isConnectedToBodies, isDuplicatable, isEnabled, isNotAttached, maxFrictionConstraintSets, numBilateralConstraints, numConstraints, numEngagedUnilateralConstraints, numUnilateralConstraints, prerender, printConnectedBodies, printConstraintInfo, scaleDistance, scaleMass, setAlwaysAdjustBodyA, setAxisLength, setBilateralForces, setBodies, setBodies, setBodies, setBodies, setCompliance, setCurrentTCW, setCurrentTDW, setDamping, setDrawFrameC, setDrawFrameD, setEnabled, setFrictionForces, setFrictionState, setLinearCompliance, setPenetrationTol, setPenetrationTolMode, setRotaryCompliance, setRotaryLimitTol, setRotaryLimitTolMode, setState, setTransformDGeometryOnly, setTransformPositionOnly, setUnilateralForces, setUnilateralState, transformGeometry, transformGeometry, updateAttachments, updateConstraints, zeroForces
createRenderProps, defaultRenderPropsAreNull, getRenderHints, getRenderProps, getSelection, isSelectable, isVisible, numSelectionQueriesNeeded, setRenderProps, setVisible, updateRenderProps
checkFlag, checkName, checkNameUniqueness, clearFlag, clone, createTempFlag, getChildren, getGrandParent, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getProperty, getSoftReferences, hasChildren, isFixed, isMarked, isScanning, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, postscan, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, scan, setFixed, setFlag, setMarked, setName, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setScanning, setSelected, setWritable, updateReferences, write
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
copy, getCopyReferences, isDuplicatable
connectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, setWritable, updateReferences
getProperty
getChildren, hasChildren
postscan
isWritable, write
transformPriority
advanceState, getAuxVarDerivative, getAuxVarState, numAuxVars, requiresAdvance, setAuxVarState
public static final int Z_IDX
public static PropertyList myProps
public SliderJoint()
PrismaticJoint
which is not attached to any bodies. It
can subsequently be connected using one of the setBodies
methods.public SliderJoint(RigidBody bodyA, RigidTransform3d TCA, RigidBody bodyB, RigidTransform3d TDB)
PrismaticJoint
connecting two rigid bodies, bodyA
and bodyB
. If A and B describe the coordinate frames of
bodyA
and bodyB
, then TCA
and TDB
give
the (fixed) transforms from the joint's C and D frames to A and B,
respectively. Since C and D are specified independently, the joint
transform TCD may not necessarily be initialized to the identity.
Specifying bodyB
as null
will cause bodyA
to
be connected to ground, with TDB
then being the same as TDW
.
bodyA
- rigid body ATCA
- transform from joint frame C to body frame AbodyB
- rigid body B (or null
)TDB
- transform from joint frame D to body frame Bpublic SliderJoint(ConnectableBody bodyA, ConnectableBody bodyB, RigidTransform3d TCW, RigidTransform3d TDW)
PrismaticJoint
connecting two connectable bodies,
bodyA
and bodyB
. The joint frames C and D are located
independently with respect to world coordinates by TCW
and TDW
.
Specifying bodyB
as null
will cause bodyA
to
be connected to ground.
bodyA
- body AbodyB
- body B (or null
)TCW
- initial transform from joint frame C to worldTDW
- initial transform from joint frame D to worldpublic SliderJoint(ConnectableBody bodyA, ConnectableBody bodyB, RigidTransform3d TDW)
PrismaticJoint
connecting two connectable bodies, bodyA
and bodyB
. The joint frames D and C are assumed to be
initially coincident, so that z
will have an initial value of
0. D (and C) is located by TDW
, which gives the transform from D
to world coordinates.bodyA
- body AbodyB
- body BTDW
- initial transform from joint frames D and C to worldpublic SliderJoint(ConnectableBody bodyA, RigidTransform3d TDW)
PrismaticJoint
connecting a single connectable body,
bodyA
, to ground. The joint frames D and C are assumed to be
initially coincident, so that z
will have an initial value of
0. D (and C) is located by TDW
, which gives the transform from D
to world coordinates.bodyA
- body ATDW
- initial transform from joint frames D and C to worldpublic SliderJoint(RigidBody bodyA, ConnectableBody bodyB, Point3d originD, Vector3d zaxis)
PrismaticJoint
connecting two connectable bodies, bodyA
and bodyB
. The joint frames D and C are assumed to be
initially coincident, so that z
will have an initial value of
0. D (and C) is located (with respect to world) so that its origin is at
pd
and its z axis in the direction of zaxis
.
Specifying bodyB
as null
will cause bodyA
to
be connected to ground.
bodyA
- body AbodyB
- body B, or null
if bodyA
is connected
to ground.originD
- origin of frame D (world coordinates)zaxis
- direction of frame D's z axis (world coordinates)public PropertyList getAllPropertyInfo()
HasProperties
getAllPropertyInfo
in interface HasProperties
getAllPropertyInfo
in class JointBase
public double getZ()
setZ(double)
for more details.public void setZ(double z)
z
- new z valuepublic DoubleInterval getZRange()
setZRange(DoubleInterval)
for more details.public double getMinZ()
public double getMaxZ()
public void setZRange(DoubleInterval range)
[-inf, inf]
, which implies no limits. If z travels beyond these limits
during dynamic simulation, unilateral constraints will be activated to
enforce them. Setting the lower limit to -inf
or the upper limit
to inf
removes the lower or upper limit, respectively. Specifying
range
as null
will set the range to (-inf, inf)
.range
- z range limits for this jointpublic void setZRange(double min, double max)
setZRange(DoubleInterval)
.min
- minimum z valuemax
- maximum z valuepublic void setMaxZ(double max)
inf
removes the upper limit.max
- upper z range limitpublic void setMinZ(double min)
-inf
removes the lower limit.min
- lower z range limitpublic boolean isZLocked()
true
if z is lockedpublic void setZLocked(boolean locked)
locked
- if true
, locks zpublic void updateBounds(Vector3d pmin, Vector3d pmax)
IsRenderable
updateBounds
in interface IsRenderable
updateBounds
in class BodyConnector
pmin
- minimum pointpmax
- maximum pointpublic void render(Renderer renderer, int flags)
IsRenderable
Renderer
.render
in interface IsRenderable
render
in class BodyConnector
renderer
- provides the functionality used to perform the rendering.flags
- flags that may be used to control different
aspects of the rendering. Flags are defined in Renderer
and currently include
Renderer.HIGHLIGHT
and
Renderer.SORT_FACES
.