public class RootJoint extends Joint
Special Joint
that always connects to the ground Link
.
See additional description in header doc for Linkage
.
Copyright (C) 2008 Marsette A. Vona, III
Joint.ResidualType, Joint.SliderSegmentWidget, Joint.Type
LinkageNode.ApplyingNodeHandler, LinkageNode.NodeHandler, LinkageNode.SubFrame
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
cvsid |
static java.lang.String |
SF_LINK_COM
Subframes representing the position of our child's CoM and subtree CoM
in our parent's link frame.
|
static java.lang.String |
SF_SUBTREE_COM
Subframes representing the position of our child's CoM and subtree CoM
in our parent's link frame.
|
ALL_TXEM_INDICES, AXES_RADIUS_FACTOR, branchLink, BROKEN_TOL, childLink, childLinks, childMobilityCMT, childMobilityCMTDirty, childMobilityCMTQuaternion, childMobilityCMTQuaternionDirty, childMobilityCMTRotMatrix, childMobilityCMTRotMatrixDirty, childSubFrame, childToMobilityRX, CLOSURE_ROUTE_COLOR_SCHEME, CONE_HEIGHT_FACTOR, CONE_RADIUS_FACTOR, CYLINDER_HEIGHT_FACTOR, DEGENERATE_ROUTE_TANGENT_FACTOR, DEGENERATE_ROUTE_TOL, FMT, FMT_S, FMT_WIDTH, FMT3, FMT3_S, FMT4, FMT4_S, FMT6, FMT6_S, G_LIMIT, invariantRX, jacobianDoFStartRow, jacobianDoIStartRow, jacobianLimitStartRow, jacobianStartColumn, JOINT_SUBFRAMES, jointRX, JW_AXES, JW_COLOR_SCHEME, JW_LABEL, JW_MOBILITY_SLIDER, JW_MOBILITY_SURFACE, JW_ROUTE, JW_ROUTE_CONE, JW_SLIDER_SURFACE, lastSupportIndexBeforeBranch, limit, LIMIT_PENALTY_DEGREE, LIMITED_EDGE_PATTERN, LIMITED_EDGE_WIDTH, limitSet, locked, lockRX, LOWER, MOBILITY_ERROR_ROUTE_COLOR, mobilitydEMdQ, mobilitydEMdQDirty, mobilitydQdEM, mobilitydQdEMDirty, mobilitydRdEM, mobilitydRdEMDirty, mobilitydRdQ, mobilitydRdQDirty, mobilityInverted, mobilityQuaternion, mobilityQuaternionDirty, mobilityRotMatrix, mobilityRotMatrixDirty, mobilityRX, mobilityRXClamped, mobilityRXClampedInverse, mobilityRXClampedInverseDirty, mobilityRXInverse, mobilityRXInverseDirty, mobilityToParentRX, NUM_CHAIN_SUBTRANSFORMS, NUM_CONE_SECTORS, NUM_GOAL_SUBTRANSFORMS, NUM_HARD_GOAL_SUBTRANSFORMS, NUM_RESIDUAL_TYPES, NUM_ROUTE_SEGMENTS, NUM_SOFT_GOAL_SUBTRANSFORMS, NUM_SUBTRANSFORMS, NUM_TYPES, parentLink, parentMobilityCMT, parentMobilityCMTDirty, parentMobilityCMTQuaternion, parentMobilityCMTQuaternionDirty, parentMobilityCMTRotMatrix, parentMobilityCMTRotMatrixDirty, parentSubFrame, PG_GRAVITY, PG_POTENTIAL, PG_STIFFNESS, PLANAR_RECTANGLE_ALPHA, positioningTransformsLocked, postureRX, potentialEnabled, RESIDUAL_TYPES, REVOLUTE_SECTOR_ALPHA, rotationDoFLimited, ROUTE_LINE_WIDTH, ROUTE_TANGENT_FACTOR, RX_CHILD_TO_MOBILITY, RX_INVARIANT, RX_LOCK, RX_MOBILITY, RX_MOBILITY_TO_PARENT, RX_POSTURE, RX_TARGET, SECTOR_MARGIN, SECTOR_OFFSET_FACTOR, SECTOR_WIDTH_FACTOR, SEGMENT_LENGTH_FACTOR, SEGMENT_OFFSET_FACTOR, setGoalComponents, setLimitComponents, setRotationGoalComponents, setRotationLimitComponents, setTranslationGoalComponents, setTranslationLimitComponents, SF_CHILD, SF_CHILD_MOBILITY, SF_MOBILITY_FROM, SF_MOBILITY_TO, SF_PARENT, SF_PARENT_MOBILITY, singleMobilityDoF, singleMobilityDoFDirty, SLIDER_EDGE_WIDTH, SLIDER_PRISM_ALPHA, softGoalPriority, softGoalSolveLevel, softGoalWeight, solver, stiffness, stiffnessRest, SUB_RX_NAME, subRX, support, targetRX, tempRX, tempV3, tempV3D, translationDoFLimited, TREE_ROUTE_COLOR_SCHEME, type, TYPES, UNLIMITED_EDGE_PATTERN, UNLIMITED_EDGE_WIDTH, unmodifiableChildLinks, unsetGoalComponents, unsetLimitComponents, UPPER, WIDGET_MARGIN, WIDGET_NUM_SECTORS, WIDGET_RADIUS_FACTOR, WIDGET_WIDTH_FACTOR, WN_C_TO_M_ROUTE, WN_CHILD_MOBILITY_AXES, WN_JOINT_CIRCLE, WN_JOINT_CYLINDER, WN_JOINT_LABEL, WN_JOINT_PRISM, WN_JOINT_PRISM_ENDS, WN_JOINT_RECTANGLE, WN_JOINT_RECTANGLE_Y_EDGES, WN_JOINT_SECTOR, WN_JOINT_SECTOR_ENDS, WN_JOINT_SEGMENT, WN_JOINT_SPHERE, WN_JOINT_SQUARE, WN_M_TO_P_ROUTE, WN_MOBILITY_ROUTE, WN_PARENT_MOBILITY_AXES, WN_ROUTE_CONE_SUFFIX, WP_JOINT, WP_ROUTE
autoNamed, cmt, DEF_WIDGET_LENGTH, depth, entityClass, explicitlyHidden, explicitlyHighlighted, explicitlyMasked, explicitlyVisible, linkage, name, nextAnonymousWidgetNumber, nodeWidgets, numUserWidgets, propertyMap, SF_CANONICAL, TM_JOINT_TYPE_START, TM_NUM_CLOSURE_JOINTS, TM_NUM_CONSTRAINED_CLOSURE_JOINTS, TM_NUM_DANGLING_JOINTS, TM_NUM_JOINT_WIDGETS, TM_NUM_JOINTS, TM_NUM_LINK_WIDGETS, TM_NUM_LINKAGES, TM_NUM_LINKS, TM_NUM_LOCKED_LINKS, TM_NUM_NODES, TM_NUM_SUPPORTING_TREE_JOINTS, TM_NUM_TREE_JOINTS, TM_NUM_UNCONSTRAINED_CLOSURE_JOINTS, TM_NUM_UNLOCKED_TREE_JOINTS, TM_NUM_WIDGETS, TM_SIZE, unmodifiableWidgets, widgetLength, widgetMap, widgets, widgetsDirty, WP_CACHED_SUBFRAME, WP_EXPLICIT_HIDDEN, WP_EXPLICIT_HIGHLIGHT, WP_EXPLICIT_MASK, WP_EXPLICIT_VISIBLE, WP_FRAME, WP_NAME, WP_NODE, WP_USER_SUBFRAME
Modifier | Constructor and Description |
---|---|
protected |
RootJoint(Linkage linkage,
Link link)
Makes a new RootJoint attaching link to the
Linkage.groundLink of linkage. |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
checkType(Joint.Type type)
Check if type is a valid type for this joint in its current
connected configuration.
|
double |
getGravityPotential(vona.math.RX mobilityRX)
Impl of
Joint.getGravityPotential() . |
vona.math.RX |
getSubFrameRX(java.lang.String frame,
vona.math.RX rx,
boolean clamped)
Extends superclass impl to handle
SF_LINK_COM and SF_SUBTREE_COM . |
boolean |
hasGravity()
Check if this Joint has gravity.
|
boolean |
hasStiffness()
RootJoints never have stiffness.
|
Joint |
invert()
RootJoints cannot be inverted.
|
Joint |
makeClosureJoint()
RootJoints are automatically made closure joints as necessary.
|
static java.lang.String |
makeRootJointName(java.lang.String name)
|
Joint |
makeTreeJoint()
Chains to
Link.makeRootLink() on Joint.childLink . |
Link |
merge(boolean reparentUserJointWidgets,
boolean reparentUserLinkWidgets)
RootJoints cannot be merged.
|
boolean |
positioningTransformsMutable()
Positioning transforms are not mutable on RootJoints.
|
void |
remove()
RootJoints are automatically removed when the corresponding
Link is removed. |
Link |
setChildLink(Link link)
setChildLink(Link, boolean) , holds absolute pose. |
Link |
setChildLink(Link link,
boolean holdAbsolutePose)
RootJoints are automatically attached to their associated
Link . |
void |
setChildToMobilityRX(Link child)
|
void |
setChildToMobilityRX(vona.math.RX rx)
For a RootJoint,
Joint.jointRX is always equal to Joint.mobilityRX . |
protected boolean |
setLimits(int component,
int offset,
java.lang.String name,
double min,
double max)
RootJoint limits are immutable.
|
Joint |
setMobilityToGravityRest()
Set the mobility DoF to zero gravitational potential energy stored in
this joint.
|
void |
setMobilityToParentRX(Link parent)
|
void |
setMobilityToParentRX(vona.math.RX rx)
For a RootJoint,
Joint.jointRX is always equal to Joint.mobilityRX . |
java.lang.String |
setName(java.lang.String name)
RootJoints are always auto-named.
|
Link |
setParentLink(Link link)
setParentLink(Link, boolean) , holds absolute pose. |
Link |
setParentLink(Link link,
boolean holdAbsolutePose)
RootJoints are always connected to the
Linkage.groundLink . |
Joint |
setPositioningTransformsLocked(boolean lock)
Positioning transforms cannot be unlocked on RootJoints.
|
Joint |
setPosture(vona.math.RX rx)
RootJoints can have targets but not postures.
|
Joint.Type |
setType(Joint.Type type)
RootJoints are always
Joint.Type.GENERAL . |
protected boolean |
suppressTreeDump()
Whether to suppress this node in
LinkageNode.dumpTree(String,
PrintStream) , default false. |
addAxesWidget, addCircleWidget, addCylinderWidget, addPrismWidgets, addRectangleWidgets, addRouteWidgets, addSectorWidgets, addSegmentWidget, addSphereWidget, addSquareWidget, checkName, clampDoFToLimits, clampToLimits, detachChildLink, detachParentLink, disablePotential, dump, dumpSolverInfo, dumpSolverInfo, dumpState, dumpState, dumpSubFrames, dumpSubJacobian, dumpSubJacobian, dumpSubRXState, dumpSubRXState, dumpSupport, dumpSupport, dumpTree, enablePotential, getAllDoFLimits, getAllRotationLimits, getAllTranslationLimits, getAttachmentName, getBranchLink, getChild, getChildLink, getChildMobilityCMTQuaternionRef, getChildMobilityCMTRef, getChildMobilityCMTRotMatrixRef, getChildName, getChildren, getChildSubFrame, getChildTOMobility, getChildToMobilityRX, getDoF, getDoF, getDoF, getDoF, getDoF, getDoF, getDoFIndices, getDoFIndices, getDoFIndices, getDoFIndicesRef, getDoFLimits, getDoFLimits, getDoFLimits, getDoFNames, getDoFNames, getDoFNames, getDoIIndices, getDoIIndices, getDoIIndices, getDoIIndicesRef, getDoINames, getDoINames, getDoINames, getGoalName, getGoalStatus, getGoalStatus, getGoalStatus, getGoalStatus, getGoalStatusBoolean, getGoalStatusString, getGravityPotential, getHighestPrioritySoftGoal, getIndices, getInvariant, getInvariants, getInvariants, getInvariants, getJacobianDoFStartRow, getJacobianDoIStartRow, getJacobianLimitStartRow, getJacobianStartColumn, getJointRX, getJointRX, getJointRXRef, getLimit, getLimitExcess, getLimitExcess, getLimitExcess, getLimitExcess, getLimitExcess, getLimitExcess, getLimitGoalName, getLimitPenalty, getLimitPenalty, getLimitPenalty, getLimitPenalty, getLimitPenalty, getLimits, getLimits, getLimits, getMobility, getMobility, getMobility, getMobilitydEMdQRef, getMobilityDoF, getMobilitydQdEMRef, getMobilitydRdEMRef, getMobilitydRdQRef, getMobilityQuaternionRef, getMobilityRotMatrixRef, getMobilityRX, getMobilityRXClampedInverseRef, getMobilityRXInverseRef, getMobilityRXTranslation, getMobilityRXTranslation, getMobilityToParent, getMobilityToParentRX, getNames, getNodeWidgetProperty, getNumDoF, getNumDoI, getNumGoalComponentsSet, getNumRotationDoF, getNumRotationGoalComponentsSet, getNumTranslationDoF, getNumTranslationGoalComponentsSet, getPackedInvariantsRef, getParent, getParentLink, getParentMobilityCMTQuaternionRef, getParentMobilityCMTRef, getParentMobilityCMTRotMatrixRef, getParentName, getParentSubFrame, getParentSubFrameOf, getPotential, getPotential, getPotentialGoal, getPotentialGoalName, getResidual, getResidual, getResidual, getRotation, getRotation, getRotation, getRotationDoFIndices, getRotationDoFIndices, getRotationDoFIndices, getRotationDoFIndicesRef, getRotationDoFNames, getRotationDoFNames, getRotationDoFNames, getRotationDoIIndices, getRotationDoIIndices, getRotationDoIIndices, getRotationDoIIndicesRef, getRotationDoINames, getRotationDoINames, getRotationDoINames, getRotationLimit, getSetGoalComponentNames, getSetGoalComponentNames, getSetGoalComponentNames, getSetGoalComponents, getSetRotationGoalComponents, getSetTranslationGoalComponents, getSingleMobilityDoF, getSoftGoalPriority, getSoftGoalSolveLevel, getSoftGoalWeight, getSolver, getStiffness, getStiffnessPotential, getStiffnessPotential, getStiffnessRest, getSubFrameCMT, getSubFrameCMT, getSubFrameCMT, getSubFrameCMT, getSubFrameRX, getSubFrameRX, getSubFrameRX, getSubRX, getSubRX, getSubRXName, getSubRXRef, getSupportSize, getTranslation, getTranslation, getTranslation, getTranslationDoFIndices, getTranslationDoFIndices, getTranslationDoFIndices, getTranslationDoFIndicesRef, getTranslationDoFNames, getTranslationDoFNames, getTranslationDoFNames, getTranslationDoIIndices, getTranslationDoIIndices, getTranslationDoIIndices, getTranslationDoIIndicesRef, getTranslationDoINames, getTranslationDoINames, getTranslationDoINames, getTranslationLimit, getType, getTypeName, getUnsetGoalComponents, handleMobilityChange, handleMobilityChange, hasAnyGoal, hasChildren, hasEitherSoftGoal, hasGoal, hasInvariant, hasLock, hasPosture, hasPotential, hasSubFrame, hasTarget, inDoFLimits, inDoFLimits, isActuator, isBroken, isChainSubtransform, isChildToMobilityIdentity, isClosureJoint, isConnected, isCrossing, isDoF, isDoF, isDoFLimited, isDoI, isDoI, isEffector, isEffector, isGoalSubtransform, isHardGoalSubtransform, isIdentity, isIncrossing, isInternalFrame, isLimited, isLimited, isLimited, isLimitGoal, isLocked, isMobilityIdentity, isMobilityInverted, isMobilitySpaceSubtransform, isMobilityToParentIdentity, isOutcrossing, isPositioningSubtransform, isPotentialEnabled, isPotentialGoal, isRotationDoF, isRotationDoI, isRotationLimited, isSoftGoalSubtransform, isStiffnessSet, isTranslationDoF, isTranslationDoI, isTranslationLimited, isTreeJoint, isTreeLeaf, lockPositioningTransforms, merge, merge, otherPositioningTransform, recomputeInverse, recomputeInverse, recomputeInverse, recomputeInverse, recomputeInverse, recomputeJointRX, resetSolveFields, setAllDoFLimits, setAllRotationLimits, setAllTranslationLimits, setChildLink, setChildLink, setChildLink, setChildLink, setChildToMobility, setChildToMobility, setDoF, setDoF, setDoF, setLock, setLocked, setLockRotation, setLockToMobility, setLockTranslation, setMobility, setMobilityDoF, setMobilityDoF, setMobilityDoF, setMobilityDoF, setMobilityToGoal, setMobilityToInvariant, setMobilityToLock, setMobilityToParent, setMobilityToParent, setMobilityToPosture, setMobilityToStiffnessRest, setMobilityToTarget, setParentLink, setParentLink, setParentLink, setParentLink, setPosture, setPostureRotation, setPostureToMobility, setPostureTranslation, setPotentialEnabled, setRotation, setRotationLimits, setSoftGoal, setSoftGoalDoF, setSoftGoalDoF, setSoftGoalDoF, setSoftGoalDoF, setSoftGoalPriority, setSoftGoalRX, setSoftGoalRXOrDoF, setSoftGoalToMobility, setSoftGoalWeight, setStiffness, setStiffnessRest, setStiffnessRestToMobility, setSubRX, setSubRX, setTarget, setTargetRotation, setTargetToMobility, setTargetTranslation, setTranslation, setTranslationLimits, setTypeImpl, setUnsetGoalDoFtoNaN, toString, toString, transformMobility, transformMobility, unAliasSubFrame, unlockPositioningTransforms, unsetAllDoFLimits, unsetAllRotationLimits, unsetAllTranslationLimits, unsetLock, unsetPosture, unsetRotationLimits, unsetSoftGoal, unsetSoftGoals, unsetStiffness, unsetTarget, unsetTranslationLimits, updateAxesWidget, updateAxesWidget, updateCircleWidget, updateCMTs, updateCylinderWidget, updateCylinderWidget, updateGoalFromMobility, updatePrismWidgets, updatePrismWidgets, updateRectangleWidgets, updateRectangleWidgets, updateRouteWidgets, updateRouteWidgets, updateSectorWidgets, updateSectorWidgets, updateSegmentWidget, updateSliderWidget, updateSliderWidget, updateSphereWidget, updateSphereWidget, updateSquareWidget, updateWidgetsImpl
addWidget, addWidget, addWidget, addWidget, addWidget, addWidget, checkNamePattern, collectTreeMetrics, collectTreeMetrics, compareTo, dump, dumpSubFrames, dumpTree, dumpTree, dumpTreeMetrics, dumpTreeMetrics, enableDBGNormals, enableDBGNormalsRecursively, enableDBGSpheres, enableDBGSpheresRecursively, findImpl, findJoint, findJoint, findJoints, findJoints, findLink, findLink, findLinks, findLinks, findMultipleImpl, findNode, findNode, findNodes, findNodes, getCMT, getCMT, getDepth, getName, getNumUserWidgets, getNumWidgets, getProperty, getSubFrame, getSubFrame, getSubFrameCMT, getSubFrameCMT, getSubFrameCMT, getSubFrameName, getSubFrameRX, getSubFrameRX, getSubFrameRX, getWidget, getWidgetLength, getWidgets, hasDescendant, hasProperty, hasWidgets, isAutoNamed, isExplicitlyHidden, isExplicitlyHighlighted, isExplicitlyMasked, isExplicitlyVisible, isLive, isUserWidget, lock, removeAllWidgets, removeProperty, removeWidget, removeWidget, renameWidget, reparentUserWidgets, reparentUserWidgets, reparentWidget, reparentWidget, reparentWidgetImpl, reparentWidgets, reparentWidgets, setAllTreeJointsToGoal, setAllTreeJointsToHighestPrioritySoftGoal, setAllTreeJointsToPosture, setAllTreeJointsToTarget, setExplicitlyHidden, setExplicitlyHighlighted, setExplicitlyMasked, setExplicitlyVisible, setLockedRecursively, setProperty, setProperty, setWidgetLength, setWidgetLength, setWidgetLengthRecursively, setWidgetLengthRecursively, toString, traverseTree, unlock, updateCMTsRecursively, updateWidgets, updateWidgetsRecursively
private static final java.lang.String cvsid
public static final java.lang.String SF_LINK_COM
Subframes representing the position of our child's CoM and subtree CoM in our parent's link frame.
public static final java.lang.String SF_SUBTREE_COM
Subframes representing the position of our child's CoM and subtree CoM in our parent's link frame.
protected RootJoint(Linkage linkage, Link link)
Makes a new RootJoint attaching link to the Linkage.groundLink
of linkage.
RootJoints are consed automatically as part of Link
construction. Consing the first link in a Linkage
is a special
case: the RootJoint in that case is initially an orphan; the Linkage
constructor then parents it to the current ground link of the
parent linkage, if any, else null.
public java.lang.String setName(java.lang.String name)
RootJoints are always auto-named.
public Link setChildLink(Link link, boolean holdAbsolutePose)
RootJoints are automatically attached to their associated Link
.
setChildLink
in class Joint
java.lang.UnsupportedOperationException
public Link setChildLink(Link link)
setChildLink(Link, boolean)
, holds absolute pose.
setChildLink
in class Joint
public Link setParentLink(Link link, boolean holdAbsolutePose)
RootJoints are always connected to the Linkage.groundLink
.
setParentLink
in class Joint
java.lang.UnsupportedOperationException
public Link setParentLink(Link link)
setParentLink(Link, boolean)
, holds absolute pose.
setParentLink
in class Joint
public Joint makeClosureJoint()
RootJoints are automatically made closure joints as necessary.
makeClosureJoint
in class Joint
java.lang.UnsupportedOperationException
public Joint makeTreeJoint()
Chains to Link.makeRootLink()
on Joint.childLink
.
makeTreeJoint
in class Joint
public Joint invert()
RootJoints cannot be inverted.
public void setChildToMobilityRX(vona.math.RX rx)
For a RootJoint, Joint.jointRX
is always equal to Joint.mobilityRX
.
java.lang.UnsupportedOperationException
public void setChildToMobilityRX(Link child)
public void setMobilityToParentRX(vona.math.RX rx)
For a RootJoint, Joint.jointRX
is always equal to Joint.mobilityRX
.
java.lang.UnsupportedOperationException
public void setMobilityToParentRX(Link parent)
public Joint.Type setType(Joint.Type type)
RootJoints are always Joint.Type.GENERAL
.
public java.lang.String checkType(Joint.Type type)
Check if type is a valid type for this joint in its current connected configuration.
See Link.isConnectableToJointType(java.lang.String, msim.model.Joint.Type)
.
This impl only allows Joint.Type.GENERAL
.
public Joint setPosture(vona.math.RX rx)
RootJoints can have targets but not postures.
java.lang.UnsupportedOperationException
public void remove()
RootJoints are automatically removed when the corresponding Link
is removed.
public Link merge(boolean reparentUserJointWidgets, boolean reparentUserLinkWidgets)
RootJoints cannot be merged.
public boolean hasStiffness()
RootJoints never have stiffness.
hasStiffness
in class Joint
public boolean hasGravity()
Check if this Joint has gravity.
Default impl returns false. See hasGravity()
.
This impl returns true iff Joint.potentialEnabled
, Joint.childLink
is set and has mass, and MSim.isGravitySetAndEnabled()
.
hasGravity
in class Joint
public double getGravityPotential(vona.math.RX mobilityRX)
Impl of Joint.getGravityPotential()
.
Default impl returns 0. See getGravityPotential(vona.math.RX)
.
This impl returns 0 if not connected, if the child link has no mass, or
if not MSim.isGravitySetAndEnabled()
. Else it computes m*g*h
where m is the child link mass, g is the magnitude of the
gravity vector, and h is the height of the child link CoM along the
gravity vector up direction in ground link frame.
getGravityPotential
in class Joint
mobilityRX
- the value to use for the current state of the mobility
of this joint, typically Joint.mobilityRX
public Joint setMobilityToGravityRest()
Set the mobility DoF to zero gravitational potential energy stored in this joint.
RootJoint impl does nothing unless connected, child link has mass, and
MSim.isGravitySetAndEnabled()
. Otherwise a translation vector
t is added to the mobility transform s.t. t is
the shortest vector that results in zero gravity potential.
setMobilityToGravityRest
in class Joint
public vona.math.RX getSubFrameRX(java.lang.String frame, vona.math.RX rx, boolean clamped)
Extends superclass impl to handle SF_LINK_COM
and SF_SUBTREE_COM
.
getSubFrameRX
in class Joint
clamped
- whether to use Joint.mobilityRXClamped
instead of
Joint.mobilityRX
if they differpublic boolean positioningTransformsMutable()
Positioning transforms are not mutable on RootJoints.
positioningTransformsMutable
in class Joint
public Joint setPositioningTransformsLocked(boolean lock)
Positioning transforms cannot be unlocked on RootJoints.
setPositioningTransformsLocked
in class Joint
protected boolean setLimits(int component, int offset, java.lang.String name, double min, double max)
RootJoint limits are immutable.
public static java.lang.String makeRootJointName(java.lang.String name)
protected boolean suppressTreeDump()
Whether to suppress this node in LinkageNode.dumpTree(String,
PrintStream)
, default false.
This impl suppresses unconstrained root closure joints.
suppressTreeDump
in class LinkageNode