public class WandViewBehavior extends ViewPlatformBehavior
SensorEventAgent
directly.
This behavior can be instantiated from the configuration file read by
ConfiguredUniverse
and fully configured using the
ViewPlatformBehaviorProperties
command to set the properties
described below, but neither ConfiguredUniverse
nor
SimpleUniverse
are required by this behavior. Conventional
set
and get
accessors are provided for
configuring this behavior directly; these methods have the same names as
the properties but are prefixed with get
and set
.
Property values are spelled with mixed case strings while the corresponding
constant field names for the conventional accessors are spelled with upper
case strings and underscores.
Sensor6D
is the 6DOF sensor to use. This can also be set
directly with the appropriate constructor. This sensor must generate 6
degree of freedom position and orientation reads relative to the tracker
base in physical units. By default this behavior provides an echo for the
6DOF sensor which indicates its position and orientation in the virtual
world; the echo attributes can be set by the EchoType
,
EchoSize
, EchoColor
, and EchoTransparency
properties. See also the NominalSensorRotation
property, and the
setHotSpot
method of the Sensor
class.
Sensor2D
is an optional 2D valuator to use in conjunction
with the 6DOF sensor. This can be set directly with the appropriate
constructor. The valuator should generate X and Y reads ranging from [-1.0
.. +1.0], with a nominal (deadzone) value of 0.0. The default
configuration expects to find these values along the translation components
of the read matrix, at indices 3 and 7, but these indices can be also be
specified by the MatrixIndices2D
property.
ButtonAction6D
sets an action for a specific button
on a 6DOF sensor. The actions available are:
GrabView
- Directly manipulates the view platform by moving
it in inverse response to the sensor's position and orientation,
producing the effect of attaching the virtual world to the sensor's
movements. If a button is available then this action is bound to button 0
by default.
TranslateForward
- Translates the view platform forward along
the direction the sensor is pointing; the virtual world appears to move
towards the sensor. The default is button 1 if two buttons are available.
Related properties are TranslationSpeed
, AccelerationTime
, ConstantSpeedTime
, and FastSpeedFactor
.
TranslateBackward
- Translates the view platform backwards
along the direction the sensor is pointing; the virtual world appears to
move away from the sensor. The default is button 2 if three buttons are
available.
RotateCCW
- Rotates the view platform counter-clockwise about
a Y axis; the virtual world appears to rotate clockwise. This action is
not assigned by default. Related properties are RotationSpeed
, RotationCoords
, TransformCenterSource
, TransformCenter
, and AccelerationTime
.
RotateCW
- Rotates the view platform clockwise about a Y axis;
the virtual world appears to rotate counter-clockwise. This action is not
assigned by default.
ScaleUp
- Scales the view platform larger so that the virtual
world appears to grow smaller. This action is not assigned by default.
Related properties are ScaleSpeed
,
TransformCenterSource
, TransformCenter
, and
AccelerationTime
.
ScaleDown
- Scales the view platform smaller so that the
virtual world appears to grow larger. This action is not assigned by
default.
ReadAction2D
sets the action bound to 2D valuator
reads; that is, non-zero values generated by the device when no buttons
have been pressed. If the value is (0.0, 0.0) or below the threshold value
set by Threshold2D
, then this behavior does nothing;
otherwise, the following actions can be performed:
Rotation
- Rotates the view platform. This is the default 2D
valuator action set by this behavior. Related properties are
RotationSpeed
, RotationCoords
,
TransformCenterSource
, and TransformCenter
.
Translation
- Translates the view platform. The translation
occurs relative to the X and Z basis vectors of either the 6DOF sensor or
the view platform if one is not available. The maximum speed is equal to
the product of the TranslationSpeed
and
FastSpeedFactor
property values.
Scale
- Scales the view platform smaller with positive Y
values and larger with negative Y values. The effect is to increase the
apparent size of the virtual world when pushing the valuator forwards and
to decrease it when pushing backwards. Related properties are
ScaleSpeed
, TransformCenterSource
, and
TransformCenter
.
ButtonAction2D
sets an action for a specific button
on the 2D valuator. The available actions are the same as for
ReadAction2D
. No actions are bound by default to the 2D
valuator buttons.
The view transform may be reset to its home transform by pressing a number
of buttons simultaneously on the 6DOF sensor. The minimum number of
buttons that must be pressed is set by ResetViewButtonCount6D
. This value must be greater than one; the default
is three. This action may be disabled by setting the property value to
None. The corresponding property for the 2D valuator is ResetViewButtonCount2D
, with a default value of
None. Note, however, that the reset view action will be ineffectual if an
action which always modifies the view transform is bound to reads on the
sensor used to reset the view, since the reset transform will get
overwritten by the read action.
The special value None
can in general be assigned to any
button or read action to prevent any defaults from being bound to it.
ConfiguredUniverse
,
SensorEventAgent
Modifier and Type | Class and Description |
---|---|
class |
WandViewBehavior.EchoReadListener6D
Implements a 6DOF sensor read listener that updates the orientation and
position of the sensor's echo in the virtual world.
|
class |
WandViewBehavior.GrabViewListener6D
Implements a 6DOF sensor button listener to directly manipulate the
view platform transform.
|
class |
WandViewBehavior.ListenerBase
A base class for implementing some of this behavior's listeners.
|
class |
WandViewBehavior.ResetViewListener
Resets the view back to the home transform when a specified number of
buttons are down simultaneously.
|
class |
WandViewBehavior.RotationListener2D
Implements a 2D valuator listener that rotates the view platform.
|
class |
WandViewBehavior.RotationListener6D
Implements a 6DOF sensor button listener that rotates the view platform
about a Y axis.
|
class |
WandViewBehavior.ScaleListener2D
Implements a 2D valuator listener that scales the view platform.
|
class |
WandViewBehavior.ScaleListener6D
Implements a 6DOF sensor button listener that scales the view platform.
|
class |
WandViewBehavior.TranslationListener2D
Implements a 2D valuator listener that translates the view platform.
|
class |
WandViewBehavior.TranslationListener6D
Implements a 6DOF sensor button listener that translates the view
platform along the direction the sensor is pointing.
|
Modifier and Type | Field and Description |
---|---|
static int |
BEAM
Indicates that the echo type is a beam extending from the
origin of the sensor's local coordinate system to its hotspot.
|
static int |
DEGREES
Indicates that rotation speed should be in degrees.
|
static int |
ECHO
Indicates that the 6DOF sensor read action should be bound to
displaying the sensor's echo in the virtual world.
|
static int |
GNOMON
Indicates that the echo type is a gnomon displaying the
directions of the sensor's local coordinate system axes at the location
of the sensor's hotspot.
|
static int |
GRAB_VIEW
Indicates that a 6DOF sensor button action should be bound
to grabbing the view.
|
static int |
HEAD
Indicates that rotation should occur in head coordinates.
|
static int |
HOTSPOT
Indicates that rotation or scale should be about a 6DOF sensor
hotspot.
|
static int |
NONE
Indicates a null configuration choice.
|
static int |
PER_FRAME
Indicates that translation, rotation, or scaling speeds are
per frame.
|
static int |
PER_SECOND
Use to indicate that translation, rotation, or scaling speeds are per
second.
|
static int |
PHYSICAL_METERS
Indicates that translation speed is in physical world units
(meters per second or per frame).
|
static int |
RADIANS
Indicates that rotation speed should be in radians.
|
static int |
ROTATE_CCW
Indicates that a 6DOF sensor button action should be bound
to rotate the view plaform counter-clockwise about a Y axis.
|
static int |
ROTATE_CW
Indicates that a 6DOF sensor button action should be bound
to rotate the view platform clockwise about a Y axis.
|
static int |
ROTATION
Indicates that a 2D sensor button or read action should be bound
to rotation.
|
static int |
SCALE
Indicates that a 2D sensor button or read action should be bound
to scaling.
|
static int |
SCALE_DOWN
Indicates that a 6DOF sensor button action should be bound
to scaling the view platform smaller.
|
static int |
SCALE_UP
Indicates that a 6DOF sensor button action should be bound
to scaling the view platform larger.
|
static int |
SENSOR
Indicates that rotation should occur in sensor coordinates.
|
static int |
TRANSLATE_BACKWARD
Indicates that a 6DOF sensor button action should be bound
to translating the view backward.
|
static int |
TRANSLATE_FORWARD
Indicates that a 6DOF sensor button action should be bound
to translating the view forward.
|
static int |
TRANSLATION
Indicates that a 2D sensor button or read action should be bound
to translation.
|
static int |
VIEW_PLATFORM
Indicates that rotation should occur in view platform
coordinates.
|
static int |
VIRTUAL_UNITS
Indicates that translation speed is in virtual world units.
|
static int |
VWORLD_FIXED
Indicates that rotation or scale should be about a fixed point
in virtual world coordinates.
|
homeTransform, targetTG, vp
ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING
Constructor and Description |
---|
WandViewBehavior()
Parameterless constructor for this behavior.
|
WandViewBehavior(Sensor sensor6D,
Sensor sensor2D,
int echoType,
double echoSize)
Creates a new instance with the specified sensors and echo parameters.
|
WandViewBehavior(Sensor sensor6D,
Sensor sensor2D,
TransformGroup echo)
Creates a new instance with the specified sensors and a 6DOF sensor
echo parented by the specified
TransformGroup . |
WandViewBehavior(Sensor sensor6D,
Sensor sensor2D,
View view,
TransformGroup viewTransform,
Transform3D homeTransform,
TransformGroup echo)
Creates a new instance with the specified sensors and a 6DOF sensor
echo parented by the specified
TransformGroup . |
Modifier and Type | Method and Description |
---|---|
void |
AccelerationTime(Object[] time)
Property which sets the time interval for accelerating to the
translation, rotation, or scale speeds and for transitioning between
the normal and fast translation speeds.
|
void |
ButtonAction2D(Object[] action)
Property which sets a button action for the 2D valuator.
|
void |
ButtonAction6D(Object[] action)
Property which sets a button action for the 6DOF sensor.
|
protected void |
configureEcho()
Creates a 6DOF sensor echo according to configuration parameters.
|
protected void |
configureSensorActions()
Creates the sensor listeners for a 6DOF sensor and/or a 2D valuator
sensor using the predefined button and read listeners and the
configured action bindings.
|
void |
ConstantSpeedTime(Object[] time)
Property which sets the time interval for which the translation occurs
at the normal speed.
|
void |
EchoColor(Object[] color)
Property which sets the color of the 6DOF sensor echo.
|
void |
EchoSize(Object[] echoSize)
Property which sets the size of the 6DOF sensor echo in physical
meters.
|
void |
EchoTransparency(Object[] transparency)
Property which sets the 6DOF sensor echo transparency.
|
void |
EchoType(Object[] type)
Property which sets the 6DOF sensor echo type.
|
void |
FastSpeedFactor(Object[] factor)
Property which sets the fast translation speed factor.
|
double |
getAccelerationTime()
Gets the time interval for accelerating to normal speed and for
transitioning between the normal and fast translation speeds.
|
int |
getButtonAction2D(int button)
Gets the action associated with the specified button on the 2D valuator.
|
int |
getButtonAction6D(int button)
Gets the action associated with the specified button on the 6DOF sensor.
|
double |
getConstantSpeedTime()
Gets the time interval for which the translation occurs at the
normal speed.
|
void |
getEchoColor(Color3f color)
Gets the 6DOF sensor echo color.
|
Shape3D |
getEchoGeometry()
Gets the
Shape3D defining the 6DOF sensor's echo geometry
and appearance. |
double |
getEchoSize()
Gets the size of the 6DOF sensor echo in meters.
|
TransformGroup |
getEchoTransformGroup()
Gets the transform group containing a 6DOF sensor's echo geometry.
|
float |
getEchoTransparency()
Gets the 6DOF sensor echo transparency value.
|
int |
getEchoType()
Gets the echo type.
|
double |
getFastSpeedFactor()
Gets the factor by which the normal translation speed is multiplied
after the constant speed time interval.
|
int |
getMatrixXIndex2D()
Gets the index where the X value of a 2D valuator read matrix can be
found.
|
int |
getMatrixYIndex2D()
Gets the index where the Y value of a 2D valuator read matrix can be
found.
|
void |
getNominalSensorRotation(Transform3D t3d)
Gets the nominal sensor transform.
|
int |
getReadAction2D()
Gets the configured 2D valuator read action.
|
int |
getReadAction6D()
Gets the configured 6DOF sensor read action.
|
int |
getResetViewButtonCount2D()
Gets the number of buttons to be pressed simultaneously on the 2D
valuator in order to reset the view back to the home transform.
|
int |
getResetViewButtonCount6D()
Gets the number of buttons to be pressed simultaneously on the 6DOF
sensor in order to reset the view back to the home transform.
|
int |
getRotationCoords()
Gets the rotation coordinate system.
|
double |
getRotationSpeed()
Gets the rotation speed.
|
int |
getRotationTimeBase()
Gets the time base for rotation speed.
|
int |
getRotationUnits()
Gets the rotation speed units
|
double |
getScaleSpeed()
Gets the scaling speed.
|
int |
getScaleTimeBase()
Gets the time base for scaling speed.
|
Sensor |
getSensor2D()
Returns a reference to the 2D valuator used for manipulating the view
platform.
|
Sensor |
getSensor6D()
Returns a reference to the 6DOF sensor used for manipulating the view
platform.
|
SensorEventAgent |
getSensorEventAgent()
Gets the
SensorEventAgent used by this behavior. |
double |
getThreshold2D()
Gets the 2D valuator threshold.
|
void |
getTransformCenter(Point3d center)
Gets the rotation/scale center in virtual world coordinates.
|
int |
getTransformCenterSource()
Gets the rotation/scale center source.
|
double |
getTranslationSpeed()
Gets the normal speed at which to translate the view platform.
|
int |
getTranslationTimeBase()
Gets the time base for translation speed.
|
int |
getTranslationUnits()
Gets the translation speed units.
|
void |
initialize()
Initializes and configures this behavior.
|
void |
MatrixIndices2D(Object[] indices)
Property which specifies where to find the X and Y values in the matrix
read generated by a 2D valuator.
|
void |
NominalSensorRotation(Object[] matrix)
Property which sets the nominal sensor rotation.
|
void |
processStimulus(Enumeration criteria)
Processes a stimulus meant for this behavior.
|
void |
ReadAction2D(Object[] action)
Property which sets the action to be bound to 2D valuator reads.
|
void |
ReadAction6D(Object[] action)
Property which sets the action to be bound to 6DOF sensor reads.
|
void |
ResetViewButtonCount2D(Object[] count)
Property which sets the number of buttons to be pressed simultaneously
on the 2D valuator in order to reset the view back to the home
transform.
|
void |
ResetViewButtonCount6D(Object[] count)
Property which sets the number of buttons to be pressed simultaneously
on the 6DOF sensor in order to reset the view back to the home
transform.
|
void |
RotationCoords(Object[] coords)
Property which sets the rotation coordinate system.
|
void |
RotationSpeed(Object[] speed)
Property which sets the rotation speed.
|
void |
ScaleSpeed(Object[] speed)
Property which sets the scaling speed.
|
void |
Sensor2D(Object[] sensor)
Property which sets a 2D sensor for manipulating the view platform.
|
void |
Sensor6D(Object[] sensor)
Property which sets a 6DOF sensor for manipulating the view platform.
|
void |
setAccelerationTime(double time)
Sets the time interval for accelerating to the translation, rotation,
or scale speeds and for transitioning between the normal and fast
translation speeds.
|
void |
setButtonAction2D(int button,
int action)
Sets a button action for the 2D valuator.
|
void |
setButtonAction6D(int button,
int action)
Sets a button action for the 6DOF sensor.
|
void |
setConstantSpeedTime(double time)
Sets the time interval for which the translation occurs at the normal
speed.
|
void |
setEchoColor(Color3f color)
Sets the color of the 6DOF sensor echo.
|
void |
setEchoSize(double echoSize)
Sets the size of the 6DOF sensor echo in physical meters.
|
void |
setEchoTransformGroup(TransformGroup echo)
Sets the transform group containing a 6DOF sensor's echo geometry.
|
void |
setEchoTransparency(float transparency)
Sets the 6DOF sensor echo transparency.
|
void |
setEchoType(int type)
Sets the 6DOF sensor echo type.
|
void |
setEnable(boolean enable)
Enables or disables this behavior.
|
void |
setFastSpeedFactor(double factor)
Sets the fast translation speed factor.
|
void |
setMatrixIndices2D(int xIndex,
int yIndex)
Specifies where to find the X and Y values in the matrix read generated
by a 2D valuator.
|
void |
setNominalSensorRotation(Transform3D transform)
Sets the nominal sensor transform.
|
void |
setReadAction2D(int action)
Sets the action to be bound to 2D valuator reads.
|
void |
setReadAction6D(int action)
Sets the action to be bound to 6DOF sensor reads.
|
void |
setResetViewButtonCount2D(int count)
Sets the number of buttons to be pressed simultaneously on the 2D
valuator in order to reset the view back to the home transform.
|
void |
setResetViewButtonCount6D(int count)
Sets the number of buttons to be pressed simultaneously
on the 6DOF sensor in order to reset the view back to the home
transform.
|
void |
setRotationCoords(int coords)
Sets the rotation coordinate system.
|
void |
setRotationSpeed(double speed,
int units,
int timeBase)
Sets the rotation speed.
|
void |
setScaleSpeed(double speed,
int timeBase)
Sets the scaling speed.
|
void |
setThreshold2D(double threshold)
Sets the threshold for 2D valuator reads.
|
void |
setTransformCenter(Point3d center)
Sets the center of rotation and scale if
setTransformCenterSource is called with
VWORLD_FIXED or if a 6DOF sensor is not specified. |
void |
setTransformCenterSource(int source)
Sets the source of the center of rotation and scale.
|
void |
setTranslationSpeed(double speed,
int units,
int timeBase)
Sets the normal translation speed.
|
void |
setViewingPlatform(ViewingPlatform vp)
Sets the
ViewingPlatform for this behavior. |
void |
Threshold2D(Object[] threshold)
Property which sets the threshold for 2D valuator reads.
|
void |
TransformCenter(Object[] center)
Property which sets the center of rotation and scale if the
TransformCenterSource property is VworldFixed
or if a 6DOF sensor is not specified. |
void |
TransformCenterSource(Object[] source)
Property which sets the source of the center of rotation and scale.
|
void |
TranslationSpeed(Object[] speed)
Property which sets the normal translation speed.
|
protected void |
updateEcho(Sensor sensor,
Transform3D sensorToVworld)
Updates the echo position and orientation.
|
getHomeTransform, getViewingPlatform, goHome, setHomeTransform
getEnable, getNumSchedulingIntervals, getSchedulingBoundingLeaf, getSchedulingBounds, getSchedulingInterval, getView, getWakeupCondition, postId, setSchedulingBoundingLeaf, setSchedulingBounds, setSchedulingInterval, updateNodeReferences, wakeupOn
cloneNode, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString
public static final int NONE
public static final int GRAB_VIEW
public static final int TRANSLATE_FORWARD
public static final int TRANSLATE_BACKWARD
public static final int ROTATE_CCW
public static final int ROTATE_CW
public static final int SCALE_UP
public static final int SCALE_DOWN
public static final int TRANSLATION
public static final int SCALE
public static final int ROTATION
public static final int PER_FRAME
public static final int PER_SECOND
public static final int VIRTUAL_UNITS
public static final int PHYSICAL_METERS
public static final int RADIANS
public static final int DEGREES
public static final int VIEW_PLATFORM
public static final int HEAD
public static final int SENSOR
public static final int VWORLD_FIXED
public static final int HOTSPOT
public static final int ECHO
public static final int GNOMON
public static final int BEAM
public WandViewBehavior()
Syntax:
(NewViewPlatformBehavior <name>
org.scijava.java3d.utils.behaviors.vp.WandViewBehavior)
public WandViewBehavior(Sensor sensor6D, Sensor sensor2D, int echoType, double echoSize)
null
.
This constructor should only be used if either
SimpleUniverse
or ConfiguredUniverse
is used
to set up the view side of the scene graph, or if it is otherwise to be
attached to a ViewingPlatform
. If this behavior is not
instantiated from a configuration file then it must then be explicitly
attached to a ViewingPlatform
instance with the
ViewingPlatform.setViewPlatformBehavior
method.
sensor6D
- a six degree of freedom sensor which generates reads
relative to the tracker base in physical units; may be
null
sensor2D
- 2D valuator which generates X and Y reads ranging from
[-1.0 .. +1.0]; may be null
echoType
- either GNOMON
, BEAM
, or
NONE
for the 6DOF sensor echoechoSize
- the width of the 6DOF sensor echo in physical meters;
ignored if echoType is NONE
public WandViewBehavior(Sensor sensor6D, Sensor sensor2D, TransformGroup echo)
TransformGroup
. At least
one sensor must be non-null
.
This constructor should only be used if either
SimpleUniverse
or ConfiguredUniverse
is used
to set up the view side of the scene graph, or if it is otherwise to be
attached to a ViewingPlatform
. If this behavior is not
instantiated from a configuration file then it must then be explicitly
attached to a ViewingPlatform
instance with the
ViewingPlatform.setViewPlatformBehavior
method.
If the echo TransformGroup
is non-null
, it
will be added to a new BranchGroup
and attached to the
ViewingPlatform
, where its transform will be updated in
response to the sensor reads. Capabilities to allow writing its
transform and to read, write, and extend its children will be set. The
echo geometry is assumed to incorporate the position and orientation of
the 6DOF sensor hotspot.
sensor6D
- a six degree of freedom sensor which generates reads
relative to the tracker base in physical units; may be
null
sensor2D
- 2D valuator which generates X and Y reads ranging from
[-1.0 .. +1.0]; may be null
echo
- a TransformGroup
containing the visible echo
which will track the 6DOF sensor's position and orientation, or
null
for no echopublic WandViewBehavior(Sensor sensor6D, Sensor sensor2D, View view, TransformGroup viewTransform, Transform3D homeTransform, TransformGroup echo)
TransformGroup
. At least
one sensor must be non-null
.
This constructor should only be used if SimpleUniverse
or
ConfiguredUniverse
is not used to set up the view
side of the scene graph. The application must set up the view side
itself and supply references to the View
and the
TransformGroup
containing the view platform transform.
ViewingPlatform.setViewPlatformBehavior
must not
be called, and this behavior must be explicitly added to the virtual
universe by the application.
If the echo TransformGroup
is non-null
, it
will only be used to update its associated transform with the position
and orientation of a 6DOF sensor (if supplied). The application is
responsible for adding the echo to the virtual universe. The echo
geometry is assumed to incorporate the position and orientation of the
6DOF sensor hotspot.
sensor6D
- a six degree of freedom sensor which generates reads
relative to the tracker base in physical units; may be
null
sensor2D
- 2D valuator which generates X and Y reads ranging from
[-1.0 .. +1.0]; may be null
view
- a reference to the View
attached to the
ViewPlatform
to be manipulated by this behaviorviewTransform
- a TransformGroup
containing the view
platform transform; appropriate capabilities to update the transform
must be sethomeTransform
- a Transform3D
containing the
view transform to be used when the view is reset; may be
null
for identityecho
- a TransformGroup
containing the visible echo
which will track the 6DOF sensor's position and orientation, or
null
for no echo; appropriate capabilities to update the
transform must be setpublic void initialize()
initialize
in class Behavior
public void processStimulus(Enumeration criteria)
processStimulus
in class Behavior
criteria
- an enumeration of triggered wakeup criteria for this
behaviorpublic void setEnable(boolean enable)
public void setViewingPlatform(ViewingPlatform vp)
ViewingPlatform
for this behavior. If a subclass
overrides this method, it must call
super.setViewingPlatform(vp)
. NOTE: Applications should
not call this method. It is called by the
ViewingPlatform
.setViewingPlatform
in class ViewPlatformBehavior
vp
- the target ViewingPlatform for this behaviorprotected void configureSensorActions()
This is invoked the first time initialize
is called. This
method can be overridden by subclasses to modify the configured
bindings or introduce other configuration parameters.
protected void configureEcho()
initialize
is called to set this
behavior live, but before the echo transform group is added to a
BranchGroup
and made live. This method can be overridden
to support other echo geometry.protected void updateEcho(Sensor sensor, Transform3D sensorToVworld)
sensor
- the sensor to be echoedsensorToVworld
- transform from sensor coordinates to virtual
world coordinatessetEchoType(int)
,
setEchoSize(double)
,
setReadAction6D(int)
,
SensorGnomonEcho
,
SensorBeamEcho
public void Sensor6D(Object[] sensor)
This property is set in the configuration file. The first command form
assumes that a ViewingPlatform
is being used and that the
sensor name can be looked up from a ConfiguredUniverse
reference retrieved from ViewingPlatform.getUniverse
. The
second form is preferred and accepts the Sensor reference directly.
Syntax:
(ViewPlatformBehaviorProperty <name>
Sensor6D <sensorName>)
Alternative Syntax:
(ViewPlatformBehaviorProperty
<name> Sensor6D (Sensor <sensorName>))
sensor
- array of length 1 containing a String
or
a Sensor
public Sensor getSensor6D()
public void Sensor2D(Object[] sensor)
MatrixIndices2D
property, with defaults of 3 and 7
(the X and Y translation components) respectively.
This property is set in the configuration file. The first command form
assumes that a ViewingPlatform
is being used and that the
sensor name can be looked up from a ConfiguredUniverse
reference retrieved from ViewingPlatform.getUniverse
. The
second form is preferred and accepts the Sensor reference directly.
Syntax:
(ViewPlatformBehaviorProperty <name>
Sensor2D <sensorName>)
Alternative Syntax:
(ViewPlatformBehaviorProperty
<name> Sensor2D (Sensor <sensorName>))
sensor
- array of length 1 containing a String
or
a Sensor
public Sensor getSensor2D()
public void ButtonAction6D(Object[] action)
TranslateForward
, TranslateBackward
,
GrabView
, RotateCCW
, RotateCW
,
ScaleUp
, ScaleDown
, or None
. By
default, button 0 is bound to GrabView
, button 1 is bound
to TranslateForward
, and button 2 is bound to
TranslateBackward
. If there are fewer than three buttons
available, then the default button actions with the lower button
indices have precedence. A value of None
indicates that
no default action is to be associated with the specified button.
TranslateForward
moves the view platform forward along the
direction the sensor is pointing. TranslateBackward
does
the same, in the opposite direction. GrabView
directly
manipulates the view by moving it in inverse response to the sensor's
position and orientation. RotateCCW
and
RotateCW
rotate about a Y axis, while ScaleUp
and ScaleDown
scale the view platform larger and smaller.
Specifying a button index that is greater than that available with the
6DOF sensor will result in an ArrayOutOfBoundsException
when the behavior is initialized or attached to a
ViewingPlatform
.
This property is set in the configuration file read by
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
ButtonAction6D <button index>
[GrabView | TranslateForward | TranslateBackward | RotateCCW |
RotateCW | ScaleUp | ScaleDown | None])
action
- array of length 2 containing a Double
and a
String
.setButtonAction6D(int, int)
,
Sensor6D
,
TranslationSpeed
,
AccelerationTime
,
ConstantSpeedTime
,
FastSpeedFactor
,
RotationSpeed
,
RotationCoords
,
ScaleSpeed
,
TransformCenterSource
,
TransformCenter
,
WandViewBehavior.GrabViewListener6D
,
WandViewBehavior.TranslationListener6D
,
WandViewBehavior.RotationListener6D
,
WandViewBehavior.ScaleListener6D
public void setButtonAction6D(int button, int action)
TRANSLATE_FORWARD
, TRANSLATE_BACKWARD
,
GRAB_VIEW
, ROTATE_CCW
,
ROTATE_CW
, SCALE_UP
, SCALE_DOWN
,
or NONE
. By default, button 0 is bound to
GRAB_VIEW
, button 1 is bound to
TRANSLATE_FORWARD
, and button 2 is bound to
TRANSLATE_BACKWARD
. If there are fewer than three buttons
available, then the default button actions with the lower button
indices have precedence. A value of NONE
indicates that
no default action is to be associated with the specified button.
TRANSLATE_FORWARD
moves the view platform forward along
the direction the sensor is pointing. TRANSLATE_BACKWARD
does the same, in the opposite direction. GRAB_VIEW
directly manipulates the view by moving it in inverse response to the
sensor's position and orientation. ROTATE_CCW
and
ROTATE_CW
rotate about a Y axis, while
SCALE_UP
and SCALE_DOWN
scale the view
platform larger and smaller.
Specifying a button index that is greater that that available with the
6DOF sensor will result in an ArrayOutOfBoundsException
when the behavior is initialized or attached to a
ViewingPlatform
.
This method only configures the button listeners pre-defined by
this behavior. For complete control over the button actions, access
the SensorEventAgent
used by this behavior directly.
button
- index of the button to bindaction
- either TRANSLATE_FORWARD
,
TRANSLATE_BACKWARD
, GRAB_VIEW
,
ROTATE_CCW
, ROTATE_CW,
SCALE_UP
,
SCALE_DOWN
, or NONE
setTranslationSpeed(double, int, int)
,
setAccelerationTime(double)
,
setConstantSpeedTime(double)
,
setFastSpeedFactor(double)
,
setRotationSpeed(double, int, int)
,
setRotationCoords(int)
,
setScaleSpeed(double, int)
,
setTransformCenterSource(int)
,
setTransformCenter(org.scijava.vecmath.Point3d)
,
getSensorEventAgent()
,
WandViewBehavior.GrabViewListener6D
,
WandViewBehavior.TranslationListener6D
,
WandViewBehavior.RotationListener6D
,
WandViewBehavior.ScaleListener6D
public int getButtonAction6D(int button)
public void ReadAction2D(Object[] action)
Threshold2D
property.
The X and Y values from the valuator should have a continuous range
from -1.0 to +1.0, although speeds can be scaled to compensate for a
different range. The X and Y values are found in the sensor's read
matrix at the indices specified by MatrixIndices2D
, with
defaults of 3 and 7 respectively.
The default property value of Rotation
rotates the view
platform in the direction the valuator is pushed. The rotation
coordinate system is set by the RotationCoords
property,
with a default of Sensor
. The rotation occurs about a
point in the virtual world set by the
TransformCenterSource
and TransformCenter
properties, with the default set to rotate about the hotspot of a 6DOF
sensor, if one is available, or about the origin of the virtual world
if not. The rotation speed is scaled by the valuator read value up to
the maximum speed set with the RotationSpeed
property; the
default is 180 degrees per second.
A property value of Translation
moves the view platform in
the direction the valuator is pushed. The translation occurs along the
X and Z basis vectors of either a 6DOF sensor or the view platform if a
6DOF sensor is not specified. The translation speed is scaled by the
valuator read value up to a maximum set by the product of the
TranslationSpeed
and FastSpeedFactor
property
values.
If this property value is to Scale
, then the view platform
is scaled smaller or larger when the valuator is pushed forward or
backward. The scaling occurs about a point in the virtual world set by
the TransformCenterSource
and TransformCenter
properties. The scaling speed is set with the ScaleSpeed
property, with a default scale factor of 2.0 per second at the extreme
negative range of -1.0, and a factor of 0.5 per second at the extreme
positive range of +1.0.
A value of None
prevents Rotation
from being
bound to the 2D valuator reads.
This property is set in the configuration file read by
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
ReadAction2D [Rotation | Translation | Scale | None])
action
- array of length 1 containing a String
setReadAction2D(int)
,
RotationCoords
,
RotationSpeed
,
TransformCenterSource
,
TransformCenter
,
TranslationSpeed
,
FastSpeedFactor
,
ScaleSpeed
,
MatrixIndices2D
,
WandViewBehavior.RotationListener2D
,
WandViewBehavior.TranslationListener2D
,
WandViewBehavior.ScaleListener2D
public void setReadAction2D(int action)
setThreshold2D
.
The X and Y values from the valuator should have a continuous range
from -1.0 to +1.0, although speeds can be scaled to compensate for a
different range. The X and Y values are found in the sensor's read
matrix at the indices specified by the setMatrixIndices2D
method, with defaults of 3 and 7 respectively.
The default action of ROTATION
rotates the view platform
in the direction the valuator is pushed. The rotation coordinate
system is set by setRotationCoords
, with a default of
SENSOR
. The rotation occurs about a point in the virtual
world set by setTransformCenterSource
and
setTransformCenter
, with the default set to rotate about
the hotspot of a 6DOF sensor, if one is available, or about the origin
of the virtual world if not. The rotation speed is scaled by the
valuator read value up to the maximum speed set with
setRotationSpeed
; the default is 180 degrees per second.
A value of TRANSLATION
moves the view platform in the
direction the valuator is pushed. The translation occurs along the X
and Z basis vectors of either a 6DOF sensor or the view platform if a
6DOF sensor is not specified. The translation speed is scaled by the
valuator read value up to a maximum set by the product of the
setTranslationSpeed
and setFastSpeedFactor
values.
If the value is to SCALE
, then the view platform is scaled
smaller or larger when the valuator is pushed forward or backward. The
scaling occurs about a point in the virtual world set by
setTransformCenterSource
and
setTransformCenter
. The scaling speed is set with
setScaleSpeed
, with a default scale factor of 2.0 per
second at the extreme negative range of -1.0, and a factor of 0.5 per
second at the extreme positive range of +1.0.
A value of NONE
prevents ROTATION
from being
bound by default to the 2D valuator reads.
This method only configures the read listeners pre-defined by
this behavior. For complete control over the read actions, access
the SensorEventAgent
used by this behavior directly.
action
- either ROTATION
, TRANSLATION
,
SCALE
, or NONE
setRotationCoords(int)
,
setRotationSpeed(double, int, int)
,
setTransformCenterSource(int)
,
setTransformCenter(org.scijava.vecmath.Point3d)
,
setTranslationSpeed(double, int, int)
,
setFastSpeedFactor(double)
,
setScaleSpeed(double, int)
,
setMatrixIndices2D(int, int)
,
getSensorEventAgent()
,
WandViewBehavior.RotationListener2D
,
WandViewBehavior.TranslationListener2D
,
WandViewBehavior.ScaleListener2D
public int getReadAction2D()
public void ButtonAction2D(Object[] action)
Rotation
, Translation
,
Scale
, or None
, with a default of
None
. These actions are the same as those for
ReadAction2D
.
Specifying a button index that is greater that that available with the
2D valuator will result in an ArrayOutOfBoundsException
when the behavior is initialized or attached to a
ViewingPlatform
.
This property is set in the configuration file read by
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
ButtonAction2D <button index>
[Rotation | Translation | Scale | None])
action
- array of length 2 containing a Double
and a
String
.setButtonAction2D(int, int)
,
ReadAction2D
,
RotationCoords
,
RotationSpeed
,
TransformCenterSource
,
TransformCenter
,
TranslationSpeed
,
FastSpeedFactor
,
ScaleSpeed
,
MatrixIndices2D
,
WandViewBehavior.RotationListener2D
,
WandViewBehavior.TranslationListener2D
,
WandViewBehavior.ScaleListener2D
public void setButtonAction2D(int button, int action)
ROTATION
, TRANSLATION
, SCALE
, or
NONE
, with a default of NONE
. These actions
are the same as those for setReadAction2D
.
Specifying a button index that is greater that that available with the
2D valuator will result in an ArrayOutOfBoundsException
when the behavior is initialized or attached to a
ViewingPlatform
.
This method only configures the button listeners pre-defined by
this behavior. For complete control over the button actions, access
the SensorEventAgent
used by this behavior directly.
button
- index of the button to bindaction
- either ROTATION
, TRANSLATION
,
SCALE
, or NONE
setReadAction2D(int)
,
setRotationCoords(int)
,
setRotationSpeed(double, int, int)
,
setTransformCenterSource(int)
,
setTransformCenter(org.scijava.vecmath.Point3d)
,
setTranslationSpeed(double, int, int)
,
setFastSpeedFactor(double)
,
setScaleSpeed(double, int)
,
setMatrixIndices2D(int, int)
,
getSensorEventAgent()
,
WandViewBehavior.RotationListener2D
,
WandViewBehavior.TranslationListener2D
,
WandViewBehavior.ScaleListener2D
public int getButtonAction2D(int button)
public void ReadAction6D(Object[] action)
The default is Echo
, which displays a geometric
representation of the sensor's current position and orientation in the
virtual world. A value of None
indicates that no default
action is to be applied to the sensor's read.
This property is set in the configuration file read by
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
ReadAction6D [Echo | None])
action
- array of length 1 containing a String
setReadAction6D(int)
,
WandViewBehavior.EchoReadListener6D
public void setReadAction6D(int action)
The default is ECHO
, which displays a geometric
representation of the sensor's current position and orientation in the
virtual world. A value of NONE
indicates that no default
action is to be associated with the sensor's read.
This method only configures the read listeners pre-defined by
this behavior. For complete control over the read actions, access
the SensorEventAgent
used by this behavior directly.
action
- either ECHO
or NONE
WandViewBehavior.EchoReadListener6D
,
getSensorEventAgent()
public int getReadAction6D()
public void TranslationSpeed(Object[] speed)
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
TranslationSpeed <speed> [PhysicalMeters | VirtualUnits]
[PerFrame | PerSecond])
speed
- array of length 3; first element is a Double
for the speed, the second is a String
for the units, and
the third is a String
for the time basesetTranslationSpeed(double, int, int)
public void setTranslationSpeed(double speed, int units, int timeBase)
speed
- how fast to translateunits
- either PHYSICAL_METERS
or
VIRTUAL_UNITS
timeBase
- either PER_SECOND
or
PER_FRAME
public double getTranslationSpeed()
public int getTranslationUnits()
public int getTranslationTimeBase()
public void AccelerationTime(Object[] time)
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
AccelerationTime <seconds>)
time
- array of length 1 containing a Double
setAccelerationTime(double)
public void setAccelerationTime(double time)
time
- number of seconds to accelerate to normal or fast speedpublic double getAccelerationTime()
public void ConstantSpeedTime(Object[] time)
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
ConstantSpeedTime <seconds>)
time
- array of length 1 containing a Double
setConstantSpeedTime(double)
public void setConstantSpeedTime(double time)
time
- number of seconds to translate at a constant speedpublic double getConstantSpeedTime()
public void FastSpeedFactor(Object[] factor)
Syntax:
(ViewPlatformBehaviorProperty <name>
FastSpeedFactor <factor>)
factor
- array of length 1 containing a Double
setFastSpeedFactor(double)
public void setFastSpeedFactor(double factor)
factor
- scale by which the normal translation speed is multipliedpublic double getFastSpeedFactor()
public void Threshold2D(Object[] threshold)
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
Threshold2D <threshold>)
threshold
- array of length 1 containing a Double
setThreshold2D(double)
public void setThreshold2D(double threshold)
threshold
- if the absolute values of both the X and Y valuator
reads are less than this value then the values are ignoredpublic double getThreshold2D()
public void MatrixIndices2D(Object[] indices)
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
MatrixIndices2D <X index> <Y index>)
indices
- array of length 2 containing Doubles
setMatrixIndices2D(int, int)
public void setMatrixIndices2D(int xIndex, int yIndex)
xIndex
- index of the X valuator valueyIndex
- index of the Y valuator valuepublic int getMatrixXIndex2D()
public int getMatrixYIndex2D()
public void RotationSpeed(Object[] speed)
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
RotationSpeed <speed> [Degrees | Radians]
[PerFrame | PerSecond])
speed
- array of length 3; first element is a Double
for the speed, the second is a String
for the units, and
the third is a String
for the time basesetRotationSpeed(double, int, int)
public void setRotationSpeed(double speed, int units, int timeBase)
speed
- how fast to rotateunits
- either DEGREES
or RADIANS
timeBase
- either PER_SECOND
or PER_FRAME
public double getRotationSpeed()
public int getRotationUnits()
public int getRotationTimeBase()
public void RotationCoords(Object[] coords)
Sensor
, which means that the rotation axis is parallel to
the XY plane of the current orientation of a specified 6DOF sensor. A
value of ViewPlatform
means the rotation axis is parallel
to the XY plane of the view platform. The latter is also the fallback
if a 6DOF sensor is not specified. If the value is Head
,
then the rotation occurs in head coordinates.
This property is set in the configuration file read by
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
RotationCoords [Sensor | ViewPlatform | Head])
coords
- array of length 1 containing a String
setRotationCoords(int)
public void setRotationCoords(int coords)
SENSOR
, which means that the rotation axis is parallel to
the XY plane of the current orientation of a specified 6DOF sensor. A
value of VIEW_PLATFORM
means the rotation axis is parallel
to the XY plane of the view platform. The latter is also the fallback
if a 6DOF sensor is not specified. If the value is HEAD
,
then rotation occurs in head coordinates.coords
- either SENSOR
, VIEW_PLATFORM
, or
HEAD
public int getRotationCoords()
public void ScaleSpeed(Object[] speed)
The scaling applied with each frame is Math.pow(scaleSpeed,
frameTime)
, where frameTime
is the time in seconds
that the last frame took to render if the time base is
PerSecond
, or 1.0 if the time base is
PerFrame
. If scaling is performed with the 2D valuator,
then the valuator's Y value as specified by
MatrixIndices2D
is an additional scale applied to the
exponent. If scaling is performed by the 6DOF sensor, then the scale
speed can be inverted with a negative exponent by using the appropriate
listener constructor flag.
This property is set in the configuration file read by
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
ScaleSpeed <speed> [PerFrame | PerSecond])
speed
- array of length 2; first element is a Double
for the speed, and the second is a String
for the time
basesetScaleSpeed(double, int)
public void setScaleSpeed(double speed, int timeBase)
The scaling applied with each frame is Math.pow(scaleSpeed,
frameTime)
, where frameTime
is the time in seconds
that the last frame took to render if the time base is
PER_SECOND
, or 1.0 if the time base is
PER_FRAME
. If scaling is performed with the 2D valuator,
then the valuator's Y value as specified by
setMatrixIndices2D
is an additional scale applied to the
exponent. If scaling is performed by the 6DOF sensor, then the scale
speed can be inverted with a negative exponent by using the appropriate
listener constructor flag.
speed
- specifies the scale speedtimeBase
- either PER_SECOND
or PER_FRAME
public double getScaleSpeed()
public int getScaleTimeBase()
public void TransformCenterSource(Object[] source)
Hotspot
, which means the center of rotation
or scale is a 6DOF sensor's current hotspot location. The alternative
is VworldFixed
, which uses the fixed virtual world
coordinates specified by the TransformCenter
property as
the center. The latter is also the fallback if a 6DOF sensor is not
specified. This property is set in the configuration file read by
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
TransformCenterSource [Hotspot | VworldFixed])
source
- array of length 1 containing a String
setTransformCenterSource(int)
public void setTransformCenterSource(int source)
HOTSPOT
, which means the center of rotation or scale is a
6DOF sensor's current hotspot location. The alternative is
VWORLD_FIXED
, which uses the fixed virtual world
coordinates specified by setTransformCenter
as the center.
The latter is also the fallback if a 6DOF sensor is not specified.
The transform center source can be dynamically updated while the behavior is running.
source
- either HOTSPOT
or VWORLD_FIXED
public int getTransformCenterSource()
public void TransformCenter(Object[] center)
TransformCenterSource
property is VworldFixed
or if a 6DOF sensor is not specified. The default is (0.0, 0.0, 0.0)
in virtual world coordinates. This property is set in the
configuration file read by ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
TransformCenter <Point3d>)
center
- array of length 1 containing a Point3d
setTransformCenter(org.scijava.vecmath.Point3d)
public void setTransformCenter(Point3d center)
setTransformCenterSource
is called with
VWORLD_FIXED
or if a 6DOF sensor is not specified. The
default is (0.0, 0.0, 0.0) in virtual world coordinates.
The transform center can be dynamically updated while the behavior is running.
center
- point in virtual world coordinates about which to rotate
and scalepublic void getTransformCenter(Point3d center)
center
- Point3d
to receive a copy of the
rotation/scale centerpublic void NominalSensorRotation(Object[] matrix)
This behavior assumes that when a hand-held wand is pointed directly at a screen in an upright position, then its 6DOF sensor's local coordinate system axes (its basis vectors) are nominally aligned with the image plate basis vectors; specifically, that the sensor's -Z axis points toward the screen, the +Y axis points up, and the +X axis points to the right. The translation and rotation listeners provided by this behavior assume this orientation to determine the transforms to be applied to the view platform; for example, translation applies along the sensor Z axis, while rotation applies about axes defined in the sensor XY plane.
This nominal alignment may not hold true depending upon how the sensor
is mounted and how the specific InputDevice
supporting the
sensor handles its orientation. The NominalSensorRotation
property can be used to correct the alignment by specifying the
rotation needed to transform vectors from the nominal sensor coordinate
system, aligned with the image plate coordinate system as described
above, to the sensor's actual local coordinate system.
NOTE: the nominal sensor transform applies only to the translation directions and rotation axes created by the listeners defined in this behavior; for compatibility with the core Java 3D API, sensor reads and the sensor hotspot location are still expressed in the sensor's local coordinate system.
This property is set in the configuration file read by
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
NominalSensorRotation [<Matrix4d> |
<Matrix3d>])
matrix
- array of length 1 containing a Matrix4d
or
Matrix3d
setNominalSensorRotation(org.scijava.java3d.Transform3D)
public void setNominalSensorRotation(Transform3D transform)
This behavior assumes that when a hand-held wand is pointed directly at a screen in an upright position, then its 6DOF sensor's local coordinate system axes (its basis vectors) are nominally aligned with the image plate basis vectors; specifically, that the sensor's -Z axis points toward the screen, the +Y axis points up, and the +X axis points to the right. The translation and rotation listeners provided by this behavior assume this orientation to determine the transforms to be applied to the view platform, in that translation applies along the sensor Z axis, and rotation applies about axes defined in the sensor XY plane.
This nominal alignment may not hold true depending upon how the sensor
is mounted and how the specific InputDevice
supporting the
sensor handles its orientation. setNominalSensorRotation
can be called to correct the alignment by specifying the rotation
needed to transform vectors from the nominal sensor coordinate system,
aligned with the image plate coordinate system as described above, to
the sensor's actual local coordinate system.
NOTE: the nominal sensor transform applies only to the translation directions and rotation axes created by the listeners defined in this behavior; for compatibility with the core Java 3D API, sensor reads and the sensor hotspot location are still expressed in the sensor's local coordinate system.
transform
- Rotates vectors from the nominal sensor coordinate
system system to the sensor's local coordinate system; only the
rotational components are used. May be set null
for
identity.public void getNominalSensorRotation(Transform3D t3d)
t3d
- Transform3D
to receive a copy of the
nominal sensor transformpublic void ResetViewButtonCount6D(Object[] count)
None
disables this action. This property is set
in the configuration file read by ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
ResetViewButtonCount6D [<count> | None])
count
- array of length 1 containing a Double
or
String
setResetViewButtonCount6D(int)
,
ViewPlatformBehavior.setHomeTransform
public void setResetViewButtonCount6D(int count)
NONE
disables this action.count
- either NONE
or button count > 1ViewPlatformBehavior.setHomeTransform
public int getResetViewButtonCount6D()
NONE
indicates this action is disabled.public void ResetViewButtonCount2D(Object[] count)
None
. A value of None
disables this action.
This property is set in the configuration file read by
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
ResetViewButtonCount2D [<count> | None])
count
- array of length 1 containing a Double
or
String
setResetViewButtonCount2D(int)
,
ViewPlatformBehavior.setHomeTransform
public void setResetViewButtonCount2D(int count)
NONE
. A
value of NONE
disables this action.count
- either NONE
or button count > 1ViewPlatformBehavior.setHomeTransform
public int getResetViewButtonCount2D()
NONE
indicates this action is disabled.public void EchoType(Object[] type)
Gnomon
, which displays an object with points indicating
the direction of each of the sensor's coordinate system axes at the
location of the sensor's hotspot. The alternative is
Beam
, which displays a beam from the sensor's origin to
the location of the sensor's hotspot; the hotspot must not be (0, 0, 0)
or an IllegalArgumentException
will result. The width of
each of these echo types is specified by the EchoSize
property. The EchoType
property is set in the
configuration file read by ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
EchoType [Gnomon | Beam | None])
type
- array of length 1 containing a String
setEchoType(int)
public void setEchoType(int type)
GNOMON
,
which displays an object with points indicating the direction of each
of the sensor's coordinate axes at the location of the sensor's
hotspot. The alternative is BEAM
, which displays a beam
from the sensor's origin to the location of the sensor's hotspot; the
hotspot must not be (0, 0, 0) or an
IllegalArgumentException
will result. The width of each
of these echo types is specified by setEchoSize
.type
- GNOMON
, BEAM
, or
NONE
are recognizedpublic int getEchoType()
public void EchoSize(Object[] echoSize)
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
EchoSize <size>)
echoSize
- array of length 1 containing a Double
setEchoSize(double)
public void setEchoSize(double echoSize)
echoSize
- the size in meterspublic double getEchoSize()
public void EchoColor(Object[] color)
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
EchoColor <red> <green> <blue>)
color
- array of length 3 containing Doubles
setEchoColor(org.scijava.vecmath.Color3f)
public void setEchoColor(Color3f color)
color
- the echo colorpublic void getEchoColor(Color3f color)
color
- the Color3f
into which to copy the echo colorpublic void EchoTransparency(Object[] transparency)
ConfiguredUniverse
.
Syntax:
(ViewPlatformBehaviorProperty <name>
EchoTransparency <transparency>)
transparency
- array of length 1 containing a Double
setEchoTransparency(float)
public void setEchoTransparency(float transparency)
transparency
- the transparency valuepublic float getEchoTransparency()
public void setEchoTransformGroup(TransformGroup echo)
This method must be called before the behavior is made live in order to have an effect.
echo
- the TransformGroup
containing the
echo geometrypublic TransformGroup getEchoTransformGroup()
public Shape3D getEchoGeometry()
Shape3D
defining the 6DOF sensor's echo geometry
and appearance. The returned Shape3D
allows appearance
read and write. If a custom echo was supplied by providing the echo
transform group directly then the return value will be
null
.null
if a custom echo was
suppliedpublic SensorEventAgent getSensorEventAgent()
SensorEventAgent
used by this behavior. Sensor
event generation is delegated to this agent. This can be accessed to
manipulate the sensor button and read action bindings directly.Copyright © 2016–2022 SciJava. All rights reserved.