# Class WandViewBehavior.ListenerBase

java.lang.Object
com.sun.j3d.utils.behaviors.sensor.SensorInputAdaptor
com.sun.j3d.utils.behaviors.vp.WandViewBehavior.ListenerBase

All Implemented Interfaces:
  `SensorButtonListener, SensorReadListener`

Direct Known Subclasses:
  `WandViewBehavior.GrabViewListener6D, WandViewBehavior.RotationListener2D, WandViewBehavior.RotationListener6D, WandViewBehavior.ScaleListener2D, WandViewBehavior.ScaleListener6D, WandViewBehavior.TranslationListener2D, WandViewBehavior.TranslationListener6D`

Enclosing class:
  `WandViewBehavior`

public class WandViewBehavior.ListenerBase extends SensorInputAdaptor
A base class for implementing some of this behavior's listeners.

Since:
  Java 3D 1.3

## Field Summary

Fields
Modifier and Type
Field
Description
`protected Transform3D`
`sensorToTracker`
The initial transform from sensor coordinates to tracker base coordinates, set by `initAction`.
`protected Transform3D`
`sensorToVworld`
The initial transform from sensor coordinates to virtual world coordinates, set by `initAction`.
`protected Transform3D`
`trackerToVworld`
The initial transform from tracker base coordinates to virtual world coordinates, set by `initAction`.
`protected Transform3D`
`viewPlatformToVworld`
The initial transform from view platform coordinates to virtual world coordinates, set by `initAction`.

## Constructor Summary

Constructors
Constructor
Description
`ListenerBase()`

## Method Summary

Modifier and Type
Method
Description
`protected void`
`conditionViewScale(Transform3D viewPlatformToVworld)`
Equalizes the scale factors in the view tranform, which must be congruent.
`protected void`
`endAction(Sensor s)`
Ends the action.
`protected double`
`getPhysicalToViewPlatformScale()`
Gets the scale from physical units to view platform units.
`protected double`
`getPhysicalToVirtualScale()`
Gets the physical to virtual scale.
`protected void`
`initAction(Sensor s)`
Initializes the listener action.
`protected boolean`
`isActive()`
Returns true if the listener is currently active; that is, if `initAction` has been called but not yet `endAction`.
`void`
`pressed(SensorEvent e)`
This method is called when a sensor's button is pressed.
`void`
`released(SensorEvent e)`
This method is called when a sensor's button is released.
`protected void`
`transformAboutCenter(Transform3D target, javax.vecmath.Point3d center, Transform3D transform)`
Transforms the target coordinate system about a center point.
`protected void`
`translateTransform(Transform3D transform, javax.vecmath.Vector3d translation)`
Translates a coordinate system.

### Methods inherited from class SensorInputAdaptor

`clicked, dragged, read`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### viewPlatformToVworld

protected Transform3D viewPlatformToVworld
The initial transform from view platform coordinates to virtual world coordinates, set by `initAction`.

### trackerToVworld

protected Transform3D trackerToVworld
The initial transform from tracker base coordinates to virtual world coordinates, set by `initAction`.

### sensorToVworld

protected Transform3D sensorToVworld
The initial transform from sensor coordinates to virtual world coordinates, set by `initAction`.

### sensorToTracker

protected Transform3D sensorToTracker
The initial transform from sensor coordinates to tracker base coordinates, set by `initAction`.

## Constructor Details

### ListenerBase

public ListenerBase()

## Method Details

### initAction

protected void initAction(Sensor s)
Initializes the listener action. Subclasses must call this before starting the action, either from `pressed` or when a 2D valuator exits the deadzone threshold.

Parameters:
  `s` - reference to a 6DOF sensor if used by the listener; may be `null`

### endAction

protected void endAction(Sensor s)
Ends the action. Subclasses must be call this from `released` or when a 2D valuator enters the deadzone threshold.

Parameters:
  `s` - reference to a 6DOF sensor if used by the listener; may be `null`

### isActive

protected boolean isActive()
Returns true if the listener is currently active; that is, if `initAction` has been called but not yet `endAction`.

Returns:
  true if the listener is active, false otherwise

### pressed

public void pressed(SensorEvent e)
Description copied from interface: `SensorButtonListener`
This method is called when a sensor's button is pressed.

Specified by:
  `pressed` in interface `SensorButtonListener`
Overrides:
  `pressed` in class `SensorInputAdaptor`
Parameters:
  `e` - the sensor event

### released

public void released(SensorEvent e)
Description copied from interface: `SensorButtonListener`
This method is called when a sensor's button is released.

Specified by:
  `released` in interface `SensorButtonListener`
Overrides:
  `released` in class `SensorInputAdaptor`
Parameters:
  `e` - the sensor event

### getPhysicalToVirtualScale

protected double getPhysicalToVirtualScale()
Gets the physical to virtual scale.

### getPhysicalToViewPlatformScale

protected double getPhysicalToViewPlatformScale()
Gets the scale from physical units to view platform units.

### translateTransform

protected void translateTransform(Transform3D transform, javax.vecmath.Vector3d translation)
Translates a coordinate system.

Parameters:
  `transform` - the coordinate system to be translated
  `translation` - the vector by which to translate

### transformAboutCenter

protected void transformAboutCenter(Transform3D target, javax.vecmath.Point3d center, Transform3D transform)
Transforms the target coordinate system about a center point. This can be used for rotation and scaling.

Parameters:
  `target` - the coordinate system to transform
  `center` - the center point about which to transform
  `transform` - the transform to apply

### conditionViewScale

protected void conditionViewScale(Transform3D viewPlatformToVworld)
Equalizes the scale factors in the view tranform, which must be congruent. If successful, the `ViewingPlatform TransformGroup` is updated; otherwise, its transform is reset to the home transform. This should be called if multiple incremental scale factors are applied to the view transform.

Parameters:
  `viewPlatformToVworld` - the view transform