org.jmol.viewer
Class TransformManager

java.lang.Object
  extended by org.jmol.viewer.TransformManager
Direct Known Subclasses:
TransformManager10, TransformManager11

abstract class TransformManager
extends java.lang.Object


Nested Class Summary
(package private)  class TransformManager.MotionThread
           
private  class TransformManager.SpinThread
           
(package private)  class TransformManager.VibrationThread
           
 
Field Summary
protected  javax.vecmath.AxisAngle4f aaTest1
           
protected  boolean antialias
           
protected  float aperatureAngle
           
(package private)  javax.vecmath.Vector3f arcBall0
           
(package private)  javax.vecmath.Matrix3f arcBall0Rotation
           
(package private)  javax.vecmath.Vector3f arcBall1
           
(package private)  javax.vecmath.Vector3f arcBallAxis
           
private  javax.vecmath.AxisAngle4f axisangleT
           
protected  float cameraDepth
           
protected  float cameraDepthSetting
           
protected  float cameraDistance
           
protected  float cameraDistanceFromCenter
           
protected  float cameraScaleFactor
           
(package private) static int DEFAULT_NAV_FPS
           
(package private) static int DEFAULT_PERSPECTIVE_MODEL
           
(package private) static int DEFAULT_SPIN_FPS
           
(package private) static int DEFAULT_SPIN_Y
           
protected  int defaultMode
           
(package private) static double degreesPerRadian
           
(package private)  int depthPercentSetting
           
(package private)  javax.vecmath.Point4f depthPlane
           
(package private)  int depthValue
           
protected  javax.vecmath.AxisAngle4f fixedRotationAxis
           
protected  javax.vecmath.Point3f fixedRotationCenter
           
protected  javax.vecmath.Point3f fixedRotationOffset
           
protected  javax.vecmath.Point3f fixedTranslation
           
(package private)  javax.vecmath.Point3f frameOffset
           
(package private)  javax.vecmath.Point3f[] frameOffsets
           
protected  boolean haveNotifiedNaN
           
(package private)  int height
           
private  float internalRotationAngle
           
protected  javax.vecmath.AxisAngle4f internalRotationAxis
           
private  javax.vecmath.Point3f internalRotationCenter
           
(package private)  boolean internalSlab
           
protected  javax.vecmath.Vector3f internalTranslation
           
(package private)  boolean isSpinFixed
           
(package private)  boolean isSpinInternal
           
(package private)  boolean isSpinSelected
           
protected  javax.vecmath.Matrix3f matrixRotate
           
protected  javax.vecmath.Matrix3f matrixStereo
           
protected  javax.vecmath.Matrix4f matrixTemp
           
private  javax.vecmath.Matrix3f matrixTemp3
           
private  javax.vecmath.Matrix4f matrixTemp4
           
protected  javax.vecmath.Matrix3f matrixTest
           
protected  javax.vecmath.Matrix4f matrixTransform
           
protected  javax.vecmath.Matrix4f matrixTransformInv
           
(package private) static int MAXIMUM_ZOOM_PERCENTAGE
           
(package private) static int MAXIMUM_ZOOM_PERSPECTIVE_DEPTH
           
protected  int mode
           
protected static int MODE_NAVIGATION
           
protected static int MODE_PERSPECTIVE_CENTER
           
protected static int MODE_STANDARD
           
protected  float modelCenterOffset
           
protected  float modelRadius
           
protected  float modelRadiusPixels
           
(package private)  TransformManager.MotionThread motion
           
protected  float navFps
           
protected  boolean navigating
           
protected  javax.vecmath.Point3f navigationCenter
           
protected  javax.vecmath.Point3f navigationOffset
           
protected  javax.vecmath.Point3f navigationShiftXY
           
protected  boolean navOn
           
protected  float navX
           
protected  float navY
           
protected  float navZ
           
protected  boolean perspectiveDepth
           
protected  int perspectiveModel
           
protected  javax.vecmath.Point3f perspectiveOffset
           
protected  javax.vecmath.Point3f perspectiveShiftXY
           
protected  javax.vecmath.Point3f point3fScreenTemp
           
private  javax.vecmath.Point3f point3fVibrationTemp
           
protected  javax.vecmath.Point3i point3iScreenTemp
           
private  javax.vecmath.Point3f pointT2
           
private  javax.vecmath.Point3f pointTsp
           
protected  float previousX
           
protected  float previousY
           
protected  float prevZoomSetting
           
protected  javax.vecmath.Point3f ptTest1
           
protected  javax.vecmath.Point3f ptTest2
           
protected  javax.vecmath.Point3f ptTest3
           
protected  float referencePlaneOffset
           
private  boolean rotateMolecule
           
(package private)  javax.vecmath.Vector3f rotationAxis
           
private  javax.vecmath.Point3f rotationCenterDefault
           
private  float rotationRadiusDefault
           
(package private)  float rotationRate
           
protected  boolean scale3D
           
(package private)  float scale3DAngstromsPerInch
           
(package private)  float scaleDefaultPixelsPerAngstrom
           
(package private)  float scalePixelsPerAngstrom
           
(package private)  int screenHeight
           
(package private)  int screenPixelCount
           
(package private)  int screenWidth
           
(package private)  boolean slabEnabled
           
(package private)  int slabPercentSetting
           
(package private)  javax.vecmath.Point4f slabPlane
           
(package private)  int slabValue
           
(package private)  float spinFps
           
protected  boolean spinOn
           
private  TransformManager.SpinThread spinThread
           
(package private)  float spinX
           
(package private)  float spinY
           
(package private)  float spinZ
           
(package private)  int[] stereoColors
           
(package private)  float stereoDegrees
           
(package private)  boolean stereoFrame
           
(package private)  int stereoMode
           
(package private)  float stereoRadians
           
(package private) static double twoPI
           
protected  javax.vecmath.Point3f untransformedPoint
           
private  boolean useZoomLarge
           
private  javax.vecmath.Vector3f vectorT
           
private  javax.vecmath.Vector3f vectorT2
           
protected  javax.vecmath.Vector3f vectorTemp
           
private  float vibrationAmplitude
           
(package private)  boolean vibrationOn
           
private  float vibrationPeriod
           
 int vibrationPeriodMs
           
private  float vibrationRadians
           
private  float vibrationScale
           
private  TransformManager.VibrationThread vibrationThread
           
(package private)  Viewer viewer
           
protected  float visualRange
           
(package private)  int width
           
(package private)  boolean windowCentered
           
(package private)  float xTranslationFraction
           
(package private)  float yTranslationFraction
           
(package private)  int zDepthValue
           
(package private)  boolean zoomEnabled
           
(package private)  float zoomPercent
           
(package private)  float zoomPercentSetting
           
(package private)  float zoomRatio
           
(package private)  boolean zShadeEnabled
           
(package private)  int zSlabValue
           
 
Constructor Summary
TransformManager()
           
TransformManager(Viewer viewer)
           
TransformManager(Viewer viewer, int width, int height)
           
 
Method Summary
private  void addZoomTranslationNavigationText(java.lang.StringBuffer sb)
           
(package private) abstract  void adjustTemporaryScreenPoint()
          adjusts the temporary point for perspective and offsets
(package private)  int angstromsToPixels(float distance)
           
private  void applyRotation(javax.vecmath.Matrix3f mNew, boolean isInternal, java.util.BitSet bsAtoms)
           
protected abstract  void calcCameraFactors()
          sets all camera and scale factors needed by the specific perspective model instantiated
protected  void calcNavigationPoint()
          all navigation effects go through this method
protected  void calcSlabAndDepthValues()
          sets slab and depth, possibly using visual range considerations for setting the slab-clipping plane.
protected  void calcTransformMatrix()
           
(package private)  boolean canNavigate()
           
 void centerAt(int x, int y, javax.vecmath.Point3f pt)
           
(package private)  boolean checkInternalSlab(javax.vecmath.Point3f pt)
           
(package private)  void clear()
           
private  void clearSpin()
           
private  void clearVibration()
           
(package private)  float defaultScaleToScreen(float radius)
           
(package private)  void depthByPercentagePoints(int percentage)
           
(package private)  void depthToPercent(int percentDepth)
           
(package private)  void finalizeTransformParameters()
           
(package private)  void getAxisAngle(javax.vecmath.AxisAngle4f axisAngle)
           
(package private)  javax.vecmath.Point3f[] getCameraFactors()
          This method returns data needed by the VRML, X3D, and IDTF/U3D exporters It also should serve as a valuable resource for anyone adapting Jmol and wanting to know how the Jmol 11+ camera business works.
private  java.lang.String getCenterText()
           
(package private)  int getFrontPlane()
           
(package private)  javax.vecmath.Matrix3f getMatrixRotate()
           
(package private)  javax.vecmath.Matrix4f getMatrixtransform()
           
(package private)  java.lang.String getMoveToText(float timespan, boolean addComments)
           
(package private)  javax.vecmath.Point3f getNavigationCenter()
           
(package private)  float getNavigationDepthPercent()
           
(package private)  TransformManager getNavigationManager(Viewer viewer, int width, int height)
           
(package private)  javax.vecmath.Point3f getNavigationOffset()
           
(package private)  float getNavigationOffsetPercent(char XorY)
           
protected  java.lang.String getNavigationState()
           
(package private)  java.lang.String getNavigationText(boolean addComments)
           
(package private)  boolean getNavOn()
           
(package private)  void getNewFixedRotationCenter()
           
(package private)  java.util.Hashtable getOrientationInfo()
           
(package private)  java.lang.String getOrientationText(int type)
           
(package private)  boolean getPerspectiveDepth()
           
protected abstract  float getPerspectiveFactor(float z)
          calculate the perspective factor based on z
private  java.lang.String getRotateXyzText()
           
private  java.lang.String getRotateZyzText(boolean iAddComment)
           
(package private)  void getRotation(javax.vecmath.Matrix3f matrixRotation)
           
(package private)  javax.vecmath.Point3f getRotationCenter()
           
(package private)  Quaternion getRotationQuaternion()
           
(package private)  float getRotationRadius()
           
(package private)  java.lang.String getRotationText()
           
(package private)  javax.vecmath.Point4f getSlabDepthPlane(boolean isDepth)
           
(package private)  int getSlabPercentSetting()
           
(package private)  boolean getSpinOn()
           
(package private)  java.lang.String getSpinState(boolean isAll)
           
(package private)  java.lang.String getState(java.lang.StringBuffer sfunc)
           
(package private)  javax.vecmath.Matrix3f getStereoRotationMatrix(boolean stereoFrame)
           
(package private)  java.lang.String getTransformText()
           
(package private)  java.lang.String getTranslationScript()
           
(package private)  float getTranslationXPercent()
           
(package private)  float getTranslationYPercent()
           
(package private)  float getTranslationZPercent()
           
(package private)  javax.vecmath.Matrix4f getUnscaledTransformMatrix()
           
(package private)  float getZoomPercentFloat()
           
(package private)  float getZoomSetting()
           
(package private)  void homePosition(boolean resetSpin)
           
(package private)  boolean isInPosition(javax.vecmath.Vector3f axis, float degrees)
           
(package private)  boolean isNavigating()
           
(package private)  boolean isVibrationOn()
           
(package private)  boolean isWindowCentered()
           
(package private)  void move(javax.vecmath.Vector3f dRot, float dZoom, javax.vecmath.Vector3f dTrans, float dSlab, float floatSecondsTotal, int fps)
           
(package private)  void moveRotationCenter(javax.vecmath.Point3f center, boolean toXY)
           
(package private)  void moveTo(float floatSecondsTotal, javax.vecmath.Point3f center, javax.vecmath.Tuple3f rotAxis, float degrees, javax.vecmath.Matrix3f matrixEnd, float zoom, float xTrans, float yTrans, float newRotationRadius, javax.vecmath.Point3f navCenter, float xNav, float yNav, float navDepth)
           
(package private)  void navigate(float seconds, javax.vecmath.Point3f center)
          scripted entry point for navigation
(package private)  void navigate(float timeSeconds, javax.vecmath.Point3f[][] pathGuide)
          follows a path guided by orientation and offset vectors (as Point3fs)
(package private)  void navigate(float seconds, javax.vecmath.Point3f[] path, float[] theta, int indexStart, int indexEnd)
          scripted navigation
(package private)  void navigate(float seconds, javax.vecmath.Vector3f rotAxis, float degrees)
          scripted entry point for navigation
(package private)  void navigate(int keyCode, int modifiers)
          entry point for keyboard-based navigation
(package private)  void navigateSurface(float timeSeconds, java.lang.String name)
           
(package private)  void navTranslate(float seconds, javax.vecmath.Point3f pt)
          scripted entry point for navigation
(package private)  void navTranslatePercent(float seconds, float x, float y)
          scripted entry point for navigation
(package private)  int percentToPixels(char xyz, float percent)
           
protected  void resetNavigationPoint(boolean doResetSlab)
          something has arisen that requires resetting of the navigation point.
private  void resetXYCenter(int x, int y)
           
(package private)  void rotateAboutPointsInternal(javax.vecmath.Point3f point1, javax.vecmath.Point3f point2, float degreesPerSecond, float endDegrees, boolean isClockwise, boolean isSpin, java.util.BitSet bsAtoms, boolean isGesture, javax.vecmath.Vector3f translation, java.util.List finalPoints)
           
(package private)  void rotateArcBall(float x, float y, float factor)
           
(package private)  void rotateAxisAngle(javax.vecmath.AxisAngle4f axisAngle, java.util.BitSet bsAtoms)
           
protected  void rotateAxisAngle(javax.vecmath.Vector3f rotAxis, float radians)
           
(package private)  void rotateAxisAngleAtCenter(javax.vecmath.Point3f rotCenter, javax.vecmath.Vector3f rotAxis, float degreesPerSecond, float endDegrees, boolean isSpin, java.util.BitSet bsAtoms)
           
(package private)  void rotateAxisAngleRadiansFixed(float angleRadians, java.util.BitSet bsAtoms)
           
(package private)  void rotateAxisAngleRadiansInternal(float radians, java.util.BitSet bsAtoms)
           
(package private)  void rotateFront()
           
(package private)  void rotatePoint(javax.vecmath.Point3f pt, javax.vecmath.Point3f ptRot)
           
(package private)  void rotateX(float angleRadians)
           
(package private)  void rotateXRadians(float angleRadians, java.util.BitSet bsAtoms)
           
(package private)  void rotateXYBy(float xDelta, float yDelta, java.util.BitSet bsAtoms)
           
(package private)  void rotateY(float angleRadians)
           
(package private)  void rotateYRadians(float angleRadians, java.util.BitSet bsAtoms)
           
(package private)  void rotateZ(float angleRadians)
           
(package private)  void rotateZBy(int zDelta, int x, int y)
           
(package private)  void rotateZRadians(float angleRadians)
           
(package private)  void scaleFitToScreen(boolean andCenter)
           
(package private)  void scaleFitToScreen(boolean andCenter, boolean zoomLarge, boolean resetSlab, boolean resetZoom)
           
(package private)  float scaleToPerspective(int z, float sizeAngstroms)
           
(package private)  short scaleToScreen(int z, int milliAngstroms)
           
(package private)  void setAntialias(boolean TF)
           
(package private)  void setCameraDepthPercent(float percent)
          either as a percent -300, or as a float 3.0 note this percent is of zoom=100 size of model
(package private)  void setCenter()
           
(package private)  void setCenterAt(java.lang.String relativeTo, javax.vecmath.Point3f pt)
           
private  void setFixedRotationCenter(javax.vecmath.Point3f center)
           
(package private)  void setFrameOffset(int modelIndex)
           
(package private)  void setFrameOffsets(javax.vecmath.Point3f[] offsets)
           
protected  void setNavFps(int value)
           
(package private)  void setNavigationDepthPercent(float timeSec, float percent)
          sets the position of the navigation offset relative to the model (50% center; 0% rear, 100% front; can be <0 or >100)
(package private)  void setNavigationMode(boolean TF)
           
protected  void setNavigationOffsetRelative(boolean navigatingSurface)
           
(package private)  void setNavigationSlabOffsetPercent(float offset)
           
protected  void setNavOn(boolean navOn)
           
(package private)  void setNavXYZ(float x, float y, float z)
           
(package private)  void setNewRotationCenter(javax.vecmath.Point3f center, boolean doScale)
           
(package private)  void setPerspectiveDepth(boolean perspectiveDepth)
           
(package private)  void setRotateMolecule(boolean TF)
           
(package private)  void setRotation(javax.vecmath.Matrix3f matrixRotation)
           
private  void setRotationCenterAndRadiusXYZ(javax.vecmath.Point3f newCenterOfRotation, boolean andRadius)
           
private  void setRotationCenterAndRadiusXYZ(java.lang.String relativeTo, javax.vecmath.Point3f pt)
           
(package private)  void setRotationPointXY(javax.vecmath.Point3f center)
           
(package private)  float setRotationRadius(float angstroms, boolean doAll)
           
(package private)  void setScaleAngstromsPerInch(float angstromsPerInch)
           
(package private)  void setScreenParameters(int screenWidth, int screenHeight, boolean useZoomLarge, boolean antialias, boolean resetSlab, boolean resetZoom)
           
(package private)  void setSlabDepthInternal(boolean isDepth)
          set internal slab or depth from screen-based slab or depth
(package private)  void setSlabEnabled(boolean slabEnabled)
           
(package private)  void setSpinFps(int value)
           
(package private)  void setSpinOn(boolean spinOn)
           
private  void setSpinOn(boolean spinOn, float endDegrees, java.util.List endPositions, java.util.BitSet bsAtoms, boolean isGesture)
           
(package private)  void setSpinXYZ(float x, float y, float z)
           
(package private)  void setStereoDegrees(float stereoDegrees)
           
(package private)  void setStereoMode(int stereoMode)
           
(package private)  void setStereoMode(int[] twoColors)
           
(package private)  void setTranslationFractions()
           
private  void setVibrationOn(boolean vibrationOn)
           
(package private)  void setVibrationPeriod(float period)
          sets the period of vibration -- period > 0: sets the period and turns vibration on -- period < 0: sets the period but does not turn vibration on -- period = 0: sets the period to zero and turns vibration off -- period Float.NaN: uses current setting (frame change)
(package private)  void setVibrationScale(float scale)
           
protected  void setVibrationT(float t)
           
(package private)  void setViewer(Viewer viewer, int width, int height)
           
(package private)  void setVisualRange(float angstroms)
           
(package private)  void setWindowCentered(boolean TF)
           
(package private)  void setZoomEnabled(boolean zoomEnabled)
           
(package private)  void setZShadeEnabled(boolean zShadeEnabled)
           
(package private)  void slabByPercentagePoints(int percentage)
           
(package private)  void slabDepthByPercentagePoints(int percentage)
           
(package private)  void slabInternal(javax.vecmath.Point4f plane, boolean isDepth)
           
(package private)  void slabReset()
           
(package private)  void slabToPercent(int percentSlab)
           
(package private)  void spinXYBy(int xDelta, int yDelta, float speed)
           
 void stopMotion()
           
(package private)  javax.vecmath.Point3i transformPoint(javax.vecmath.Point3f pointAngstroms)
          CAUTION! returns a POINTER TO A TEMPORARY VARIABLE
(package private)  void transformPoint(javax.vecmath.Point3f pointAngstroms, javax.vecmath.Point3f screen)
           
(package private)  void transformPoint(javax.vecmath.Point3f pointAngstroms, javax.vecmath.Point3i pointScreen)
           
(package private)  javax.vecmath.Point3i transformPoint(javax.vecmath.Point3f pointAngstroms, javax.vecmath.Vector3f vibrationVector)
           
(package private)  javax.vecmath.Point3f transformPointNoClip(javax.vecmath.Point3f pointAngstroms)
          CAUTION! returns a POINTER TO A TEMPORARY VARIABLE
(package private)  void transformPointNoClip(javax.vecmath.Point3f pointAngstroms, javax.vecmath.Point3f pointScreen)
           
(package private)  void transformPoints(int count, javax.vecmath.Point3f[] angstroms, javax.vecmath.Point3i[] screens)
           
private  javax.vecmath.Point3i transformScreenPoint(javax.vecmath.Point3f ptXyp)
           
(package private)  void transformVector(javax.vecmath.Vector3f vectorAngstroms, javax.vecmath.Vector3f vectorTransformed)
           
(package private)  void translateToPercent(char type, float percent)
           
(package private)  void translateXYBy(int xDelta, int yDelta)
           
(package private)  void translateZBy(int pixels)
           
private static void truncate0(java.lang.StringBuffer sb, float val)
           
private static void truncate2(java.lang.StringBuffer sb, float val)
           
(package private)  float unscaleToScreen(float z, float screenDistance)
           
(package private)  void unTransformPoint(javax.vecmath.Point3f screenPt, javax.vecmath.Point3f coordPt)
           
protected  void zoomBy(int pixels)
          standard response to user mouse vertical shift-drag
(package private)  void zoomByFactor(float factor, int x, int y)
           
(package private)  void zoomByPercent(float percentZoom)
           
(package private)  void zoomToPercent(float percentZoom)
           
(package private)  int zValueFromPercent(int zPercent)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

viewer

Viewer viewer

twoPI

static final double twoPI
See Also:
Constant Field Values

degreesPerRadian

static final double degreesPerRadian
See Also:
Constant Field Values

DEFAULT_NAV_FPS

static final int DEFAULT_NAV_FPS
See Also:
Constant Field Values

perspectiveModel

protected int perspectiveModel

cameraScaleFactor

protected float cameraScaleFactor

referencePlaneOffset

protected float referencePlaneOffset

aperatureAngle

protected float aperatureAngle

cameraDistanceFromCenter

protected float cameraDistanceFromCenter

modelCenterOffset

protected float modelCenterOffset

modelRadius

protected float modelRadius

modelRadiusPixels

protected float modelRadiusPixels

navigationCenter

protected final javax.vecmath.Point3f navigationCenter

navigationOffset

protected final javax.vecmath.Point3f navigationOffset

navigationShiftXY

protected final javax.vecmath.Point3f navigationShiftXY

matrixTemp

protected final javax.vecmath.Matrix4f matrixTemp

vectorTemp

protected final javax.vecmath.Vector3f vectorTemp

haveNotifiedNaN

protected boolean haveNotifiedNaN

DEFAULT_SPIN_Y

static final int DEFAULT_SPIN_Y
See Also:
Constant Field Values

DEFAULT_SPIN_FPS

static final int DEFAULT_SPIN_FPS
See Also:
Constant Field Values

spinX

float spinX

spinY

float spinY

spinZ

float spinZ

spinFps

float spinFps

navX

protected float navX

navY

protected float navY

navZ

protected float navZ

navFps

protected float navFps

isSpinInternal

boolean isSpinInternal

isSpinFixed

boolean isSpinFixed

isSpinSelected

boolean isSpinSelected

fixedRotationOffset

protected final javax.vecmath.Point3f fixedRotationOffset

fixedRotationCenter

protected final javax.vecmath.Point3f fixedRotationCenter

perspectiveOffset

protected final javax.vecmath.Point3f perspectiveOffset

perspectiveShiftXY

protected final javax.vecmath.Point3f perspectiveShiftXY

rotationCenterDefault

private final javax.vecmath.Point3f rotationCenterDefault

rotationRadiusDefault

private float rotationRadiusDefault

fixedRotationAxis

protected final javax.vecmath.AxisAngle4f fixedRotationAxis

internalRotationAxis

protected final javax.vecmath.AxisAngle4f internalRotationAxis

internalTranslation

protected javax.vecmath.Vector3f internalTranslation

internalRotationCenter

private final javax.vecmath.Point3f internalRotationCenter

internalRotationAngle

private float internalRotationAngle

matrixRotate

protected final javax.vecmath.Matrix3f matrixRotate

matrixTemp3

private final javax.vecmath.Matrix3f matrixTemp3

matrixTemp4

private final javax.vecmath.Matrix4f matrixTemp4

axisangleT

private final javax.vecmath.AxisAngle4f axisangleT

vectorT

private final javax.vecmath.Vector3f vectorT

vectorT2

private final javax.vecmath.Vector3f vectorT2

pointT2

private final javax.vecmath.Point3f pointT2

MAXIMUM_ZOOM_PERCENTAGE

static final int MAXIMUM_ZOOM_PERCENTAGE
See Also:
Constant Field Values

MAXIMUM_ZOOM_PERSPECTIVE_DEPTH

static final int MAXIMUM_ZOOM_PERSPECTIVE_DEPTH
See Also:
Constant Field Values

rotateMolecule

private boolean rotateMolecule

rotationAxis

javax.vecmath.Vector3f rotationAxis

rotationRate

float rotationRate

arcBall0

final javax.vecmath.Vector3f arcBall0

arcBall1

final javax.vecmath.Vector3f arcBall1

arcBallAxis

final javax.vecmath.Vector3f arcBallAxis

arcBall0Rotation

final javax.vecmath.Matrix3f arcBall0Rotation

fixedTranslation

protected final javax.vecmath.Point3f fixedTranslation

xTranslationFraction

float xTranslationFraction

yTranslationFraction

float yTranslationFraction

prevZoomSetting

protected float prevZoomSetting

previousX

protected float previousX

previousY

protected float previousY

zoomEnabled

boolean zoomEnabled

zoomPercent

float zoomPercent

zoomPercentSetting

float zoomPercentSetting

zoomRatio

float zoomRatio

slabEnabled

boolean slabEnabled

internalSlab

boolean internalSlab

zShadeEnabled

boolean zShadeEnabled

slabPercentSetting

int slabPercentSetting

depthPercentSetting

int depthPercentSetting

slabValue

int slabValue

depthValue

int depthValue

zSlabValue

int zSlabValue

zDepthValue

int zDepthValue

slabPlane

javax.vecmath.Point4f slabPlane

depthPlane

javax.vecmath.Point4f depthPlane

perspectiveDepth

protected boolean perspectiveDepth

scale3D

protected boolean scale3D

cameraDepth

protected float cameraDepth

cameraDepthSetting

protected float cameraDepthSetting

visualRange

protected float visualRange

cameraDistance

protected float cameraDistance

width

int width

height

int height

screenPixelCount

int screenPixelCount

scalePixelsPerAngstrom

float scalePixelsPerAngstrom

scaleDefaultPixelsPerAngstrom

float scaleDefaultPixelsPerAngstrom

scale3DAngstromsPerInch

float scale3DAngstromsPerInch

antialias

protected boolean antialias

useZoomLarge

private boolean useZoomLarge

screenWidth

int screenWidth

screenHeight

int screenHeight

matrixTransform

protected final javax.vecmath.Matrix4f matrixTransform

matrixTransformInv

protected final javax.vecmath.Matrix4f matrixTransformInv

point3fScreenTemp

protected final javax.vecmath.Point3f point3fScreenTemp

point3iScreenTemp

protected final javax.vecmath.Point3i point3iScreenTemp

point3fVibrationTemp

private final javax.vecmath.Point3f point3fVibrationTemp

navigating

protected boolean navigating

MODE_STANDARD

protected static final int MODE_STANDARD
See Also:
Constant Field Values

MODE_NAVIGATION

protected static final int MODE_NAVIGATION
See Also:
Constant Field Values

MODE_PERSPECTIVE_CENTER

protected static final int MODE_PERSPECTIVE_CENTER
See Also:
Constant Field Values

DEFAULT_PERSPECTIVE_MODEL

static final int DEFAULT_PERSPECTIVE_MODEL
See Also:
Constant Field Values

mode

protected int mode

defaultMode

protected int defaultMode

pointTsp

private final javax.vecmath.Point3f pointTsp

untransformedPoint

protected final javax.vecmath.Point3f untransformedPoint

ptTest1

protected final javax.vecmath.Point3f ptTest1

ptTest2

protected final javax.vecmath.Point3f ptTest2

ptTest3

protected final javax.vecmath.Point3f ptTest3

aaTest1

protected final javax.vecmath.AxisAngle4f aaTest1

matrixTest

protected final javax.vecmath.Matrix3f matrixTest

motion

TransformManager.MotionThread motion

spinOn

protected boolean spinOn

navOn

protected boolean navOn

spinThread

private TransformManager.SpinThread spinThread

vibrationOn

boolean vibrationOn

vibrationPeriod

private float vibrationPeriod

vibrationPeriodMs

public int vibrationPeriodMs

vibrationAmplitude

private float vibrationAmplitude

vibrationRadians

private float vibrationRadians

vibrationScale

private float vibrationScale

vibrationThread

private TransformManager.VibrationThread vibrationThread

stereoMode

int stereoMode

stereoColors

int[] stereoColors

stereoDegrees

float stereoDegrees

stereoRadians

float stereoRadians

stereoFrame

boolean stereoFrame

matrixStereo

protected final javax.vecmath.Matrix3f matrixStereo

windowCentered

boolean windowCentered

frameOffsets

javax.vecmath.Point3f[] frameOffsets

frameOffset

final javax.vecmath.Point3f frameOffset
Constructor Detail

TransformManager

TransformManager()

TransformManager

TransformManager(Viewer viewer)

TransformManager

TransformManager(Viewer viewer,
                 int width,
                 int height)
Method Detail

calcCameraFactors

protected abstract void calcCameraFactors()
sets all camera and scale factors needed by the specific perspective model instantiated


getPerspectiveFactor

protected abstract float getPerspectiveFactor(float z)
calculate the perspective factor based on z

Parameters:
z -
Returns:
perspectiveFactor

adjustTemporaryScreenPoint

abstract void adjustTemporaryScreenPoint()
adjusts the temporary point for perspective and offsets


setViewer

void setViewer(Viewer viewer,
               int width,
               int height)

getNavigationManager

TransformManager getNavigationManager(Viewer viewer,
                                      int width,
                                      int height)

homePosition

void homePosition(boolean resetSpin)

clear

void clear()

getState

java.lang.String getState(java.lang.StringBuffer sfunc)

getSpinState

java.lang.String getSpinState(boolean isAll)

setRotateMolecule

void setRotateMolecule(boolean TF)

setFixedRotationCenter

private void setFixedRotationCenter(javax.vecmath.Point3f center)

setRotationPointXY

void setRotationPointXY(javax.vecmath.Point3f center)

spinXYBy

void spinXYBy(int xDelta,
              int yDelta,
              float speed)

rotateArcBall

void rotateArcBall(float x,
                   float y,
                   float factor)

rotateXYBy

void rotateXYBy(float xDelta,
                float yDelta,
                java.util.BitSet bsAtoms)

rotateZBy

void rotateZBy(int zDelta,
               int x,
               int y)

rotateFront

void rotateFront()

rotateX

void rotateX(float angleRadians)

rotateY

void rotateY(float angleRadians)

rotateZ

void rotateZ(float angleRadians)

applyRotation

private void applyRotation(javax.vecmath.Matrix3f mNew,
                           boolean isInternal,
                           java.util.BitSet bsAtoms)

rotateXRadians

void rotateXRadians(float angleRadians,
                    java.util.BitSet bsAtoms)

rotateYRadians

void rotateYRadians(float angleRadians,
                    java.util.BitSet bsAtoms)

rotateZRadians

void rotateZRadians(float angleRadians)

rotateAxisAngle

protected void rotateAxisAngle(javax.vecmath.Vector3f rotAxis,
                               float radians)

rotateAxisAngle

void rotateAxisAngle(javax.vecmath.AxisAngle4f axisAngle,
                     java.util.BitSet bsAtoms)

rotateAxisAngleAtCenter

void rotateAxisAngleAtCenter(javax.vecmath.Point3f rotCenter,
                             javax.vecmath.Vector3f rotAxis,
                             float degreesPerSecond,
                             float endDegrees,
                             boolean isSpin,
                             java.util.BitSet bsAtoms)

rotateAxisAngleRadiansFixed

void rotateAxisAngleRadiansFixed(float angleRadians,
                                 java.util.BitSet bsAtoms)

rotateAboutPointsInternal

void rotateAboutPointsInternal(javax.vecmath.Point3f point1,
                               javax.vecmath.Point3f point2,
                               float degreesPerSecond,
                               float endDegrees,
                               boolean isClockwise,
                               boolean isSpin,
                               java.util.BitSet bsAtoms,
                               boolean isGesture,
                               javax.vecmath.Vector3f translation,
                               java.util.List finalPoints)

rotateAxisAngleRadiansInternal

void rotateAxisAngleRadiansInternal(float radians,
                                    java.util.BitSet bsAtoms)

getNewFixedRotationCenter

void getNewFixedRotationCenter()

setTranslationFractions

void setTranslationFractions()

centerAt

public void centerAt(int x,
                     int y,
                     javax.vecmath.Point3f pt)

percentToPixels

int percentToPixels(char xyz,
                    float percent)

angstromsToPixels

int angstromsToPixels(float distance)

translateXYBy

void translateXYBy(int xDelta,
                   int yDelta)

translateToPercent

void translateToPercent(char type,
                        float percent)

getTranslationXPercent

float getTranslationXPercent()

getTranslationYPercent

float getTranslationYPercent()

getTranslationZPercent

float getTranslationZPercent()

getTranslationScript

java.lang.String getTranslationScript()

getOrientationText

java.lang.String getOrientationText(int type)

getOrientationInfo

java.util.Hashtable getOrientationInfo()

getAxisAngle

void getAxisAngle(javax.vecmath.AxisAngle4f axisAngle)

getTransformText

java.lang.String getTransformText()

getMatrixRotate

javax.vecmath.Matrix3f getMatrixRotate()

setRotation

void setRotation(javax.vecmath.Matrix3f matrixRotation)

getRotation

void getRotation(javax.vecmath.Matrix3f matrixRotation)

zoomBy

protected void zoomBy(int pixels)
standard response to user mouse vertical shift-drag

Parameters:
pixels -

getZoomPercentFloat

float getZoomPercentFloat()

zoomToPercent

void zoomToPercent(float percentZoom)

translateZBy

void translateZBy(int pixels)

zoomByFactor

void zoomByFactor(float factor,
                  int x,
                  int y)

resetXYCenter

private void resetXYCenter(int x,
                           int y)

zoomByPercent

void zoomByPercent(float percentZoom)

setScaleAngstromsPerInch

void setScaleAngstromsPerInch(float angstromsPerInch)

setSlabEnabled

void setSlabEnabled(boolean slabEnabled)

setZShadeEnabled

void setZShadeEnabled(boolean zShadeEnabled)

setZoomEnabled

void setZoomEnabled(boolean zoomEnabled)

slabReset

void slabReset()

getSlabPercentSetting

int getSlabPercentSetting()

slabByPercentagePoints

void slabByPercentagePoints(int percentage)

depthByPercentagePoints

void depthByPercentagePoints(int percentage)

slabDepthByPercentagePoints

void slabDepthByPercentagePoints(int percentage)

slabToPercent

void slabToPercent(int percentSlab)

depthToPercent

void depthToPercent(int percentDepth)

slabInternal

void slabInternal(javax.vecmath.Point4f plane,
                  boolean isDepth)

setSlabDepthInternal

void setSlabDepthInternal(boolean isDepth)
set internal slab or depth from screen-based slab or depth

Parameters:
isDepth -

getSlabDepthPlane

javax.vecmath.Point4f getSlabDepthPlane(boolean isDepth)

checkInternalSlab

boolean checkInternalSlab(javax.vecmath.Point3f pt)

getCameraFactors

javax.vecmath.Point3f[] getCameraFactors()
This method returns data needed by the VRML, X3D, and IDTF/U3D exporters It also should serve as a valuable resource for anyone adapting Jmol and wanting to know how the Jmol 11+ camera business works.

Returns:
a set of camera data

getFrontPlane

int getFrontPlane()

setPerspectiveDepth

void setPerspectiveDepth(boolean perspectiveDepth)

getPerspectiveDepth

boolean getPerspectiveDepth()

setCameraDepthPercent

void setCameraDepthPercent(float percent)
either as a percent -300, or as a float 3.0 note this percent is of zoom=100 size of model

Parameters:
percent -

setVisualRange

void setVisualRange(float angstroms)

getUnscaledTransformMatrix

javax.vecmath.Matrix4f getUnscaledTransformMatrix()

setScreenParameters

void setScreenParameters(int screenWidth,
                         int screenHeight,
                         boolean useZoomLarge,
                         boolean antialias,
                         boolean resetSlab,
                         boolean resetZoom)

setAntialias

void setAntialias(boolean TF)

defaultScaleToScreen

float defaultScaleToScreen(float radius)

scaleFitToScreen

void scaleFitToScreen(boolean andCenter)

scaleFitToScreen

void scaleFitToScreen(boolean andCenter,
                      boolean zoomLarge,
                      boolean resetSlab,
                      boolean resetZoom)

scaleToScreen

short scaleToScreen(int z,
                    int milliAngstroms)

unscaleToScreen

float unscaleToScreen(float z,
                      float screenDistance)

scaleToPerspective

float scaleToPerspective(int z,
                         float sizeAngstroms)

getMatrixtransform

javax.vecmath.Matrix4f getMatrixtransform()

setNavigationMode

void setNavigationMode(boolean TF)

isNavigating

boolean isNavigating()

finalizeTransformParameters

void finalizeTransformParameters()

getZoomSetting

float getZoomSetting()

calcSlabAndDepthValues

protected void calcSlabAndDepthValues()
sets slab and depth, possibly using visual range considerations for setting the slab-clipping plane. (slab on; slab 0) superceded in navigation mode


zValueFromPercent

int zValueFromPercent(int zPercent)

calcTransformMatrix

protected void calcTransformMatrix()

rotatePoint

void rotatePoint(javax.vecmath.Point3f pt,
                 javax.vecmath.Point3f ptRot)

transformPoints

void transformPoints(int count,
                     javax.vecmath.Point3f[] angstroms,
                     javax.vecmath.Point3i[] screens)

transformPoint

void transformPoint(javax.vecmath.Point3f pointAngstroms,
                    javax.vecmath.Point3i pointScreen)

transformPointNoClip

void transformPointNoClip(javax.vecmath.Point3f pointAngstroms,
                          javax.vecmath.Point3f pointScreen)

transformPoint

javax.vecmath.Point3i transformPoint(javax.vecmath.Point3f pointAngstroms)
CAUTION! returns a POINTER TO A TEMPORARY VARIABLE

Parameters:
pointAngstroms -
Returns:
POINTER TO point3iScreenTemp

transformScreenPoint

private javax.vecmath.Point3i transformScreenPoint(javax.vecmath.Point3f ptXyp)

transformPointNoClip

javax.vecmath.Point3f transformPointNoClip(javax.vecmath.Point3f pointAngstroms)
CAUTION! returns a POINTER TO A TEMPORARY VARIABLE

Parameters:
pointAngstroms -
Returns:
POINTER TO point3iScreenTemp

transformPoint

javax.vecmath.Point3i transformPoint(javax.vecmath.Point3f pointAngstroms,
                                     javax.vecmath.Vector3f vibrationVector)
Parameters:
pointAngstroms -
vibrationVector -
Returns:
POINTER TO TEMPORARY VARIABLE (caution!) point3iScreenTemp

transformPoint

void transformPoint(javax.vecmath.Point3f pointAngstroms,
                    javax.vecmath.Point3f screen)

transformVector

void transformVector(javax.vecmath.Vector3f vectorAngstroms,
                     javax.vecmath.Vector3f vectorTransformed)

unTransformPoint

void unTransformPoint(javax.vecmath.Point3f screenPt,
                      javax.vecmath.Point3f coordPt)

move

void move(javax.vecmath.Vector3f dRot,
          float dZoom,
          javax.vecmath.Vector3f dTrans,
          float dSlab,
          float floatSecondsTotal,
          int fps)

isInPosition

boolean isInPosition(javax.vecmath.Vector3f axis,
                     float degrees)

moveTo

void moveTo(float floatSecondsTotal,
            javax.vecmath.Point3f center,
            javax.vecmath.Tuple3f rotAxis,
            float degrees,
            javax.vecmath.Matrix3f matrixEnd,
            float zoom,
            float xTrans,
            float yTrans,
            float newRotationRadius,
            javax.vecmath.Point3f navCenter,
            float xNav,
            float yNav,
            float navDepth)

stopMotion

public void stopMotion()

getRotationQuaternion

Quaternion getRotationQuaternion()

getRotationText

java.lang.String getRotationText()

getMoveToText

java.lang.String getMoveToText(float timespan,
                               boolean addComments)

getCenterText

private java.lang.String getCenterText()

getRotateXyzText

private java.lang.String getRotateXyzText()

addZoomTranslationNavigationText

private void addZoomTranslationNavigationText(java.lang.StringBuffer sb)

getRotateZyzText

private java.lang.String getRotateZyzText(boolean iAddComment)

truncate0

private static void truncate0(java.lang.StringBuffer sb,
                              float val)

truncate2

private static void truncate2(java.lang.StringBuffer sb,
                              float val)

setSpinXYZ

void setSpinXYZ(float x,
                float y,
                float z)

setSpinFps

void setSpinFps(int value)

setNavXYZ

void setNavXYZ(float x,
               float y,
               float z)

setNavFps

protected void setNavFps(int value)

clearSpin

private void clearSpin()

getSpinOn

boolean getSpinOn()

getNavOn

boolean getNavOn()

setSpinOn

void setSpinOn(boolean spinOn)

setSpinOn

private void setSpinOn(boolean spinOn,
                       float endDegrees,
                       java.util.List endPositions,
                       java.util.BitSet bsAtoms,
                       boolean isGesture)

setNavOn

protected void setNavOn(boolean navOn)

setVibrationScale

void setVibrationScale(float scale)

setNavigationOffsetRelative

protected void setNavigationOffsetRelative(boolean navigatingSurface)

setVibrationPeriod

void setVibrationPeriod(float period)
sets the period of vibration -- period > 0: sets the period and turns vibration on -- period < 0: sets the period but does not turn vibration on -- period = 0: sets the period to zero and turns vibration off -- period Float.NaN: uses current setting (frame change)

Parameters:
period -

setVibrationT

protected void setVibrationT(float t)

isVibrationOn

boolean isVibrationOn()

setVibrationOn

private void setVibrationOn(boolean vibrationOn)

clearVibration

private void clearVibration()

setStereoMode

void setStereoMode(int[] twoColors)

setStereoMode

void setStereoMode(int stereoMode)

setStereoDegrees

void setStereoDegrees(float stereoDegrees)

getStereoRotationMatrix

javax.vecmath.Matrix3f getStereoRotationMatrix(boolean stereoFrame)

isWindowCentered

boolean isWindowCentered()

setWindowCentered

void setWindowCentered(boolean TF)

getRotationCenter

javax.vecmath.Point3f getRotationCenter()

getRotationRadius

float getRotationRadius()

setRotationRadius

float setRotationRadius(float angstroms,
                        boolean doAll)

setRotationCenterAndRadiusXYZ

private void setRotationCenterAndRadiusXYZ(javax.vecmath.Point3f newCenterOfRotation,
                                           boolean andRadius)

setRotationCenterAndRadiusXYZ

private void setRotationCenterAndRadiusXYZ(java.lang.String relativeTo,
                                           javax.vecmath.Point3f pt)

setNewRotationCenter

void setNewRotationCenter(javax.vecmath.Point3f center,
                          boolean doScale)

moveRotationCenter

void moveRotationCenter(javax.vecmath.Point3f center,
                        boolean toXY)

setCenter

void setCenter()

setCenterAt

void setCenterAt(java.lang.String relativeTo,
                 javax.vecmath.Point3f pt)

canNavigate

boolean canNavigate()

navigate

void navigate(int keyCode,
              int modifiers)
entry point for keyboard-based navigation

Parameters:
keyCode - 0 indicates key released
modifiers - shift,alt,ctrl

navigate

void navigate(float seconds,
              javax.vecmath.Point3f center)
scripted entry point for navigation

Parameters:
seconds -
center -

navigate

void navigate(float seconds,
              javax.vecmath.Vector3f rotAxis,
              float degrees)
scripted entry point for navigation

Parameters:
seconds -
rotAxis -
degrees -

navigate

void navigate(float seconds,
              javax.vecmath.Point3f[] path,
              float[] theta,
              int indexStart,
              int indexEnd)
scripted navigation

Parameters:
seconds - number of seconds to allow for total movement, like moveTo
path - sequence of points to turn into a hermetian path
theta - orientation angle along path (0 aligns with window Y axis) [or Z axis if path is vertical]
indexStart - index of first "station"
indexEnd - index of last "station" not implemented yet

navigate

void navigate(float timeSeconds,
              javax.vecmath.Point3f[][] pathGuide)
follows a path guided by orientation and offset vectors (as Point3fs)

Parameters:
timeSeconds -
pathGuide -

navTranslate

void navTranslate(float seconds,
                  javax.vecmath.Point3f pt)
scripted entry point for navigation

Parameters:
seconds -
pt -

navTranslatePercent

void navTranslatePercent(float seconds,
                         float x,
                         float y)
scripted entry point for navigation

Parameters:
seconds -
x -
y -

calcNavigationPoint

protected void calcNavigationPoint()
all navigation effects go through this method


resetNavigationPoint

protected void resetNavigationPoint(boolean doResetSlab)
something has arisen that requires resetting of the navigation point.

Parameters:
doResetSlab -

getNavigationState

protected java.lang.String getNavigationState()
Returns:
the script that defines the current navigation state

setNavigationDepthPercent

void setNavigationDepthPercent(float timeSec,
                               float percent)
sets the position of the navigation offset relative to the model (50% center; 0% rear, 100% front; can be <0 or >100)

Parameters:
timeSec -
percent -

getNavigationCenter

javax.vecmath.Point3f getNavigationCenter()

getNavigationOffset

javax.vecmath.Point3f getNavigationOffset()

getNavigationDepthPercent

float getNavigationDepthPercent()

getNavigationOffsetPercent

float getNavigationOffsetPercent(char XorY)

setNavigationSlabOffsetPercent

void setNavigationSlabOffsetPercent(float offset)

getNavigationText

java.lang.String getNavigationText(boolean addComments)

setFrameOffset

void setFrameOffset(int modelIndex)

setFrameOffsets

void setFrameOffsets(javax.vecmath.Point3f[] offsets)

navigateSurface

void navigateSurface(float timeSeconds,
                     java.lang.String name)