protected class InteractorDriver.JointInteractor
extends vona.ui.RXSInteractor
Special RXSInteractor
for manipulating Joint
sub-transforms.
Implements the following rules for determining the default control frame and action enables for mobility and goal transforms:
parent (world) frame disables rules: disable rotate z if no rDoF disable rotate xy if neither ex nor ey is a DoF disalbe translate z if z is not a DoF disalbe translate xy if neither x nor y is a DoF child (local) frame disables rules: same as parent frame rules except keep translate z if ex or ey is a DoF view (manipulation) frame disables rules: disable all rotate iff no rDoF, all translate iff no tDoF default frame rule: parent frame if at most one rDoF and one tDoF, else view
These rules expand as follows:
revolute parent frame (default): disable rotate xy and all translate child frame: disable rotate xy and all translate view frame: disable all translate prismatic parent frame (default): disable all rotate and translate xy child frame: disable all rotate and translate xy view frame: disable all rotate cylindrical parent frame (default): disable translate xy, rotate xy child frame: disable translate xy, rotate xy view frame: spherical parent frame: disable all translate child frame: disable all translate view frame (default): disable all translate planar parent frame: disable translate z, rotate xy child frame: disable translate z, rotate xy view frame (default): cartesian2 parent frame: disable all rotate and translate z child frame: disable all rotate and translate z view frame (default): disable all rotate cartesian3 parent frame: disable all rotate child frame: disable all rotate view frame (default): disable all rotate pin_slider parent frame (default): disable translate z, rotate xy child frame: disable translate z, rotate xy view frame: point_slider parent frame: disable translate z child frame: view frame (default): point_plane parent frame: disable translate z child frame: view frame (default): general parent frame: child frame: view frame (default):
Modifier and Type | Field and Description |
---|---|
protected boolean |
isMobilityOrGoal
Whether the target
Joint sub-transform is a mobility or goal
transform. |
(package private) Joint |
joint
the target
Joint or null if not bound |
protected double[] |
limits
working space to copy limits from joint to interpolator
|
(package private) int |
xformID
the target sub-transform id
|
ACCEL_SLIDER, accelChangeActionLabel, accelFactor, accelSliderEnabled, altDown, blockRotateFactor, blockScaleFactor, blockTranslateFactor, canvasSize, clock, controlInLocalFrame, controlInManipulationFrame, ctrlDown, DEF_BLOCK_ROTATE_FACTOR, DEF_BLOCK_SCALE_FACTOR, DEF_BLOCK_TRANSLATE_FACTOR, DEF_INTERPOLATION_THRESHOLD_PIXELS, DEF_INTERPOLATION_TIME, DEF_SCALE_BASE, downPressed, downReleased, eventsDuringInterpolationEnabled, eventsEnabled, firstMouseX, firstMouseY, fitTXEMS, focusListener, interpolationDeadline, interpolationStartTime, interpolationThresholdPixels, interpolationTime, KEY_REPEAT_SCALE_PIXELS_PER_MS, KEY_REPEAT_THRESHOLD_MS, KEY_TIMER_PERIOD_MS, keyListener, keyTimer, lastMouseX, lastMouseY, leftPressed, leftReleased, manipulationToWorld, mouseListener, mouseMotionListener, mouseWheelListener, rightPressed, rightReleased, rotateXYEnabled, rotateZEnabled, rotationCenter, rxsInterpolator, scaleBase, scaleEnabled, shiftDown, t0, t1, translateXYEnabled, translateZEnabled, TYPEMATIC_SLOP_MS, upPressed, upReleased, worldToCanvasScale
Modifier | Constructor and Description |
---|---|
protected |
InteractorDriver.JointInteractor(vona.time.Clock clock)
Makes a new Joint interactor.
|
Modifier and Type | Method and Description |
---|---|
protected boolean |
bind(Joint joint,
int xformID)
Inform this interactor of the particular
Joint
sub-transform that it controls. |
void |
enableScale(boolean enable)
Joint transforms are always rigid.
|
boolean |
isBound()
check if this interactor is currently bound
|
void |
setControlInLocalFrame()
Extends superclass impl to implement sub-action enable rules as
described in class header doc.
|
void |
setControlInManipulationFrame()
Extends superclass impl to implement sub-action enable rules as
described in class header doc.
|
void |
setControlInWorldFrame()
Extends superclass impl to implement sub-action enable rules as
described in class header doc.
|
protected void |
unbind()
Inform this interactor that it is not currently controlling a
Joint sub-transform. |
addListeners, appendManipulationToWorld, appendManipulationToWorld, areEventsDuringInterpolationEnabled, areEventsEnabled, canvasToWorldX, canvasToWorldY, cycleControlFrame, cycleControlFrame, dump, dump, dumpHelp, dumpHelp, dumpHelp, enableAccelSlider, enableAllSubEvents, enableAllSubEvents, enableAllSubEvents, enableEvents, enableEventsDuringInterpolation, enableRotateXY, enableRotateZ, enableTranslateXY, enableTranslateZ, fit, fit, getControlFrame, getControlFrame, getCurrentInterpolationCoordinate, getCurrentRX, getCurrentRX, getCurrentScale, getCurrentTime, getCurrentTransform, getCurrentTXEM, getCurrentTXEM, getCurrentTXEMS, getCurrentTXEMS, getRotationCenter, getRotationCenter, getRotationCenterInWorld, getRotationCenterInWorld, getRotationCenterZInWorld, handleEvent, handleEvent, handleEvent, handleEvent, handleKeyPressed, handleKeyReleased, handleKeyTyped, hasNext, interpolateTo, interpolateTo, interpolateTo, interpolateToAim, interpolateToNext, interpolateToNext, interpolateToTXEM, interpolateToTXEM, interpolateToTXEMS, interpolateToTXEMS, isAccelSliderEnabled, isControlInLocalFrame, isControlInManipulationFrame, isControlInWorldFrame, isInterpolating, isRotateXYEnabled, isRotateZEnabled, isScaleEnabled, isTranslateXYEnabled, isTranslateZEnabled, jumpTo, jumpTo, jumpToAim, jumpToNext, jumpToTXEM, jumpToTXEMS, nextSubAction, prependManipulationToWorld, prependManipulationToWorld, removeListeners, resetEventState, rotateEulerInLocal, rotateEulerInManipulationFrame, rotateEulerInWorld, rotateImpl, rotateXYBlocks, rotateXYPixels, rotateXYPixelsImpl, rotateZBlocks, rotateZPixels, rotateZPixelsImpl, scale, scale, scaleBlocks, scaleBlocks, scalePixels, scalePixels, scalePixelsImpl, selectSubAction, setAccelFactor, setBlockRotateDegrees, setBlockRotateFactor, setBlockRotateRadians, setBlockScaleFactor, setBlockTranslateFactor, setCanvasSize, setInterpolationThresholdPixels, setInterpolationTime, setManipulationToWorld, setManipulationToWorld, setRotationCenter, setRotationCenter, setScaleBase, setWorldToCanvasScale, transformDirty, translateImpl, translateInLocal, translateInManipulationFrame, translateInWorld, translateXYBlocks, translateXYPixels, translateXYPixelsImpl, translateZBlocks, translateZPixels, translateZPixelsImpl
int xformID
protected boolean isMobilityOrGoal
Whether the target Joint
sub-transform is a mobility or goal
transform.
protected double[] limits
protected InteractorDriver.JointInteractor(vona.time.Clock clock)
Makes a new Joint interactor.
Events are initially disabled.
protected boolean bind(Joint joint, int xformID)
Inform this interactor of the particular Joint
sub-transform that it controls.
protected void unbind()
Inform this interactor that it is not currently controlling a
Joint
sub-transform.
public boolean isBound()
public void setControlInWorldFrame()
Extends superclass impl to implement sub-action enable rules as described in class header doc.
setControlInWorldFrame
in class vona.ui.RXSInteractor
public void setControlInLocalFrame()
Extends superclass impl to implement sub-action enable rules as described in class header doc.
setControlInLocalFrame
in class vona.ui.RXSInteractor
public void setControlInManipulationFrame()
Extends superclass impl to implement sub-action enable rules as described in class header doc.
setControlInManipulationFrame
in class vona.ui.RXSInteractor
public void enableScale(boolean enable)
Joint transforms are always rigid.
enableScale
in class vona.ui.RXSInteractor
java.lang.UnsupportedOperationException