org.jmol.viewer
Class TransformManager11

java.lang.Object
  extended by org.jmol.viewer.TransformManager
      extended by org.jmol.viewer.TransformManager11

 class TransformManager11
extends TransformManager


Nested Class Summary
 
Nested classes/interfaces inherited from class org.jmol.viewer.TransformManager
TransformManager.VibrationThread
 
Field Summary
(package private)  boolean isNavigationCentered
           
private  int multiplier
           
private static int NAV_MODE_NEWXY
           
private static int NAV_MODE_NEWXYZ
           
private static int NAV_MODE_NEWZ
           
private static int NAV_MODE_NONE
           
private static int NAV_MODE_RESET
           
private static int NAV_MODE_ZOOMED
           
private  float navigationSlabOffset
           
private  int navMode
           
private  int nHits
           
private  float previousX
           
private  float previousY
           
private  float prevZoomSetting
           
private  float zoomFactor
           
 
Fields inherited from class org.jmol.viewer.TransformManager
aaMoveTo, aaStep, aaStepCenter, aaStepNavCenter, aaTest1, aaTotal, cameraDepth, cameraDepthSetting, cameraDistance, cameraScaleFactor, DEFAULT_STEREO_DEGREES, degreesPerRadian, depthPercentSetting, depthPlane, depthValue, fixedRotationAxis, fixedRotationCenter, fixedRotationOffset, fixedTranslation, haveNotifiedNaN, height, internalRotationAxis, internalSlab, isNavigationMode, isSpinFixed, isSpinInternal, isSpinSelected, matrixEnd, matrixRotate, matrixStart, matrixStep, matrixStereo, matrixTemp, matrixTest, matrixTransform, MAXIMUM_ZOOM_PERCENTAGE, MAXIMUM_ZOOM_PERSPECTIVE_DEPTH, modelCenterOffset, modelRadius, modelRadiusPixels, navigating, navigationCenter, navigationOffset, navigationShiftXY, perspectiveDepth, perspectiveModel, point3fScreenTemp, point3iScreenTemp, pointT, ptMoveToCenter, ptTest1, ptTest2, ptTest3, radiansPerDegree, referencePlaneOffset, rotationAxis, rotationRate, scale3D, scale3DAngstromsPerInch, scaleDefaultPixelsPerAngstrom, scalePixelsPerAngstrom, screenHeight, screenPixelCount, screenWidth, slabEnabled, slabPercentSetting, slabPlane, slabValue, spinFps, spinOn, spinX, spinY, spinZ, stereoColors, stereoDegrees, stereoFrame, stereoMode, stereoRadians, twoPI, vectorTemp, vibrationOn, vibrationPeriodMs, viewer, visualRange, width, windowCentered, xTranslationFraction, yTranslationFraction, zoomEnabled, zoomPercent, zoomPercentSetting, zoomRatio
 
Constructor Summary
TransformManager11()
           
TransformManager11(Viewer viewer)
           
TransformManager11(Viewer viewer, int width, int height)
           
 
Method Summary
protected  void adjustTemporaryScreenPoint()
          adjusts the temporary point for perspective and offsets
private  void alignZX(javax.vecmath.Point3f pt0, javax.vecmath.Point3f pt1, javax.vecmath.Point3f ptVectorWing)
          brings pt0-pt1 vector to [0 0 -1], then rotates about [0 0 1] until ptVectorWing is in xz plane
protected  void calcCameraFactors()
          sets all camera and scale factors needed by the specific perspective model instantiated
protected  void calcNavigationPoint()
          All the magic happens here.
protected  void calcNavigationSlabAndDepth()
           
(package private)  boolean canNavigate()
           
(package private)  javax.vecmath.Point3f getNavigationCenter()
           
(package private)  float getNavigationDepthPercent()
           
(package private)  javax.vecmath.Point3f getNavigationOffset()
           
(package private)  float getNavigationOffsetPercent(char XorY)
           
private  float getNavigationSlabOffsetPercent()
           
protected  java.lang.String getNavigationState()
           
protected  java.lang.String getNavigationText(boolean addComments)
           
protected  float getPerspectiveFactor(float z)
          calculate the perspective factor based on z
(package private)  boolean isNavigationCentered()
           
(package private)  void navigate(float seconds, javax.vecmath.Point3f pt)
          scripted entry point for navigation
(package private)  void navigate(float seconds, javax.vecmath.Point3f[][] pathGuide)
          follows a path guided by orientation and offset vectors (as Point3fs)
private  void navigate(float seconds, javax.vecmath.Point3f[][] pathGuide, javax.vecmath.Point3f[] path, float[] theta, int indexStart, int indexEnd)
           
(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
private  void navigateTo(float floatSecondsTotal, javax.vecmath.Vector3f axis, float degrees, javax.vecmath.Point3f center, float depthPercent, float xTrans, float yTrans)
           
(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
private  void newNavigationCenter()
          We do not want the fixed navigation offset to change, but we need a new model-based equivalent position.
protected  void resetNavigationPoint(boolean doResetSlab)
          something has arisen that requires resetting of the navigation point.
private  void setNavigationDepthPercent(float percent)
           
(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 setNavigationSlabOffsetPercent(float percent)
           
(package private)  void setScreenParameters(int screenWidth, int screenHeight, boolean useZoomLarge, boolean antialias, boolean resetSlab, boolean resetZoom)
           
 
Methods inherited from class org.jmol.viewer.TransformManager
calcSlabAndDepthValues, calcTransformMatrix, checkInternalSlab, clear, depthByPercentagePoints, depthToPercent, finalizeTransformParameters, getAxisAngle, getMatrixRotate, getMatrixtransform, getMoveToText, getNavigating, getNavigationManager, getNewFixedRotationCenter, getOrientationInfo, getOrientationText, getPerspectiveDepth, getRotation, getRotationCenter, getRotationRadius, getRotationText, getSlabDepthPlane, getSlabPercentSetting, getSpinOn, getSpinState, getState, getStereoRotationMatrix, getTransformText, getTranslationScript, getTranslationXPercent, getTranslationYPercent, getTranslationZPercent, getUnscaledTransformMatrix, getZoomPercentFloat, getZoomSetting, homePosition, isInPosition, isVibrationOn, isWindowCentered, matrixUnTransform, move, moveTo, moveTo, rotateAboutPointsInternal, rotateAxisAngle, rotateAxisAngle, rotateAxisAngleAtCenter, rotateAxisAngleRadiansFixed, rotateAxisAngleRadiansInternal, rotateFront, rotatePoint, rotateX, rotateXRadians, rotateXYBy, rotateY, rotateYRadians, rotateZ, rotateZBy, rotateZRadians, scaleFitToScreen, scaleFitToScreen, scaleToPerspective, scaleToScreen, setAntialias, setCameraDepthPercent, setCenter, setCenterAt, setNavigationMode, setNewRotationCenter, setPerspectiveDepth, setRotateFixed, setRotateInternal, setRotateMolecule, setRotation, setRotationPointXY, setRotationRadius, setScaleAngstromsPerInch, setSlabDepthInternal, setSlabEnabled, setSpinFps, setSpinOn, setSpinX, setSpinY, setSpinZ, setStereoDegrees, setStereoMode, setStereoMode, setTranslationFractions, setVibrationPeriod, setVibrationScale, setVibrationT, setVisualRange, setWindowCentered, setZoomEnabled, slabByPercentagePoints, slabDepthByPercentagePoints, slabInternal, slabReset, slabToPercent, transformPoint, transformPoint, transformPoint, transformPoint, transformPointNoClip, transformPointNoClip, transformPoints, transformVector, translateToXPercent, translateToYPercent, translateToZPercent, translateXYBy, unTransformPoint, zoomBy, zoomByFactor, zoomByPercent, zoomToPercent, zValueFromPercent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

navigationSlabOffset

private float navigationSlabOffset

zoomFactor

private float zoomFactor

prevZoomSetting

private float prevZoomSetting

previousX

private float previousX

previousY

private float previousY

isNavigationCentered

boolean isNavigationCentered

nHits

private int nHits

multiplier

private int multiplier

NAV_MODE_ZOOMED

private static final int NAV_MODE_ZOOMED
See Also:
Constant Field Values

NAV_MODE_NONE

private static final int NAV_MODE_NONE
See Also:
Constant Field Values

NAV_MODE_RESET

private static final int NAV_MODE_RESET
See Also:
Constant Field Values

NAV_MODE_NEWXY

private static final int NAV_MODE_NEWXY
See Also:
Constant Field Values

NAV_MODE_NEWXYZ

private static final int NAV_MODE_NEWXYZ
See Also:
Constant Field Values

NAV_MODE_NEWZ

private static final int NAV_MODE_NEWZ
See Also:
Constant Field Values

navMode

private int navMode
Constructor Detail

TransformManager11

TransformManager11()

TransformManager11

TransformManager11(Viewer viewer)

TransformManager11

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

calcCameraFactors

protected void calcCameraFactors()
Description copied from class: TransformManager
sets all camera and scale factors needed by the specific perspective model instantiated

Specified by:
calcCameraFactors in class TransformManager

getPerspectiveFactor

protected float getPerspectiveFactor(float z)
Description copied from class: TransformManager
calculate the perspective factor based on z

Specified by:
getPerspectiveFactor in class TransformManager
Returns:
perspectiveFactor

adjustTemporaryScreenPoint

protected void adjustTemporaryScreenPoint()
Description copied from class: TransformManager
adjusts the temporary point for perspective and offsets

Specified by:
adjustTemporaryScreenPoint in class TransformManager

setScreenParameters

void setScreenParameters(int screenWidth,
                         int screenHeight,
                         boolean useZoomLarge,
                         boolean antialias,
                         boolean resetSlab,
                         boolean resetZoom)
Overrides:
setScreenParameters in class TransformManager

calcNavigationPoint

protected void calcNavigationPoint()
All the magic happens here.

Overrides:
calcNavigationPoint in class TransformManager

calcNavigationSlabAndDepth

protected void calcNavigationSlabAndDepth()

newNavigationCenter

private void newNavigationCenter()
We do not want the fixed navigation offset to change, but we need a new model-based equivalent position. The fixed rotation center is at a fixed offset as well. This means that the navigationCenter must be recalculated based on its former offset in the new context. We have two points, N(navigation) and R(rotation). We know where they ARE: fixedNavigationOffset and fixedRotationOffset. From these we must derive navigationCenter.


canNavigate

boolean canNavigate()
Overrides:
canNavigate in class TransformManager

resetNavigationPoint

protected void resetNavigationPoint(boolean doResetSlab)
Description copied from class: TransformManager
something has arisen that requires resetting of the navigation point.

Overrides:
resetNavigationPoint in class TransformManager

navigate

void navigate(int keyCode,
              int modifiers)
Description copied from class: TransformManager
entry point for keyboard-based navigation

Overrides:
navigate in class TransformManager
Parameters:
keyCode - 0 indicates key released
modifiers - shift,alt,ctrl

navigate

void navigate(float seconds,
              javax.vecmath.Point3f pt)
Description copied from class: TransformManager
scripted entry point for navigation

Overrides:
navigate in class TransformManager

navigate

void navigate(float seconds,
              javax.vecmath.Vector3f rotAxis,
              float degrees)
Description copied from class: TransformManager
scripted entry point for navigation

Overrides:
navigate in class TransformManager

setNavigationDepthPercent

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

Overrides:
setNavigationDepthPercent in class TransformManager

navTranslate

void navTranslate(float seconds,
                  javax.vecmath.Point3f pt)
Description copied from class: TransformManager
scripted entry point for navigation

Overrides:
navTranslate in class TransformManager

navTranslatePercent

void navTranslatePercent(float seconds,
                         float x,
                         float y)
Description copied from class: TransformManager
scripted entry point for navigation

Overrides:
navTranslatePercent in class TransformManager

navigateTo

private void navigateTo(float floatSecondsTotal,
                        javax.vecmath.Vector3f axis,
                        float degrees,
                        javax.vecmath.Point3f center,
                        float depthPercent,
                        float xTrans,
                        float yTrans)

navigate

void navigate(float seconds,
              javax.vecmath.Point3f[][] pathGuide)
Description copied from class: TransformManager
follows a path guided by orientation and offset vectors (as Point3fs)

Overrides:
navigate in class TransformManager

navigate

void navigate(float seconds,
              javax.vecmath.Point3f[] path,
              float[] theta,
              int indexStart,
              int indexEnd)
Description copied from class: TransformManager
scripted navigation

Overrides:
navigate in class TransformManager
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

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

alignZX

private void alignZX(javax.vecmath.Point3f pt0,
                     javax.vecmath.Point3f pt1,
                     javax.vecmath.Point3f ptVectorWing)
brings pt0-pt1 vector to [0 0 -1], then rotates about [0 0 1] until ptVectorWing is in xz plane

Parameters:
pt0 -
pt1 -
ptVectorWing -

getNavigationCenter

javax.vecmath.Point3f getNavigationCenter()
Overrides:
getNavigationCenter in class TransformManager

isNavigationCentered

boolean isNavigationCentered()
Overrides:
isNavigationCentered in class TransformManager

setNavigationSlabOffsetPercent

void setNavigationSlabOffsetPercent(float percent)
Overrides:
setNavigationSlabOffsetPercent in class TransformManager

getNavigationSlabOffsetPercent

private float getNavigationSlabOffsetPercent()

getNavigationOffset

javax.vecmath.Point3f getNavigationOffset()
Overrides:
getNavigationOffset in class TransformManager

setNavigationDepthPercent

private void setNavigationDepthPercent(float percent)

getNavigationDepthPercent

float getNavigationDepthPercent()
Overrides:
getNavigationDepthPercent in class TransformManager

getNavigationOffsetPercent

float getNavigationOffsetPercent(char XorY)
Overrides:
getNavigationOffsetPercent in class TransformManager

getNavigationText

protected java.lang.String getNavigationText(boolean addComments)
Overrides:
getNavigationText in class TransformManager

getNavigationState

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