abstract class TransformManager
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
(package private) class |
TransformManager.MotionThread |
private class |
TransformManager.SpinThread |
(package private) class |
TransformManager.VibrationThread |
Modifier and Type | Field and Description |
---|---|
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 |
(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) float |
slabRange |
(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) EnumStereoMode |
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 |
zDepthPercentSetting |
(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 |
zSlabPercentSetting |
(package private) javax.vecmath.Point3f |
zSlabPoint |
(package private) int |
zSlabValue |
Constructor and Description |
---|
TransformManager() |
TransformManager(Viewer viewer) |
TransformManager(Viewer viewer,
int width,
int height) |
Modifier and Type | Method and Description |
---|---|
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,
javax.vecmath.Vector3f translation) |
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.Map<java.lang.String,java.lang.Object> |
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<javax.vecmath.Point3f> 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 |
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) |
void |
setSlabRange(float value) |
(package private) void |
setSpinFps(int value) |
(package private) void |
setSpinOn(boolean spinOn) |
private void |
setSpinOn(boolean spinOn,
float endDegrees,
java.util.List<javax.vecmath.Point3f> 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(EnumStereoMode 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 |
setZslabPoint(javax.vecmath.Point3f pt) |
(package private) void |
slabByPercentagePoints(int percentage) |
(package private) void |
slabDepthByPercentagePoints(int percentage) |
private void |
slabDepthChanged() |
(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) |
(package private) void |
zDepthToPercent(int percentDepth) |
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) void |
zSlabToPercent(int percentSlab) |
(package private) int |
zValueFromPercent(int zPercent) |
Viewer viewer
static final double twoPI
static final double degreesPerRadian
static final int DEFAULT_NAV_FPS
protected int perspectiveModel
protected float cameraScaleFactor
protected float referencePlaneOffset
protected float aperatureAngle
protected float cameraDistanceFromCenter
protected float modelCenterOffset
protected float modelRadius
protected float modelRadiusPixels
protected final javax.vecmath.Point3f navigationCenter
protected final javax.vecmath.Point3f navigationOffset
protected final javax.vecmath.Point3f navigationShiftXY
protected final javax.vecmath.Matrix4f matrixTemp
protected final javax.vecmath.Vector3f vectorTemp
protected boolean haveNotifiedNaN
static final int DEFAULT_SPIN_Y
static final int DEFAULT_SPIN_FPS
float spinX
float spinY
float spinZ
float spinFps
protected float navX
protected float navY
protected float navZ
protected float navFps
boolean isSpinInternal
boolean isSpinFixed
boolean isSpinSelected
protected final javax.vecmath.Point3f fixedRotationOffset
protected final javax.vecmath.Point3f fixedRotationCenter
protected final javax.vecmath.Point3f perspectiveOffset
protected final javax.vecmath.Point3f perspectiveShiftXY
private final javax.vecmath.Point3f rotationCenterDefault
private float rotationRadiusDefault
protected final javax.vecmath.AxisAngle4f fixedRotationAxis
protected final javax.vecmath.AxisAngle4f internalRotationAxis
protected javax.vecmath.Vector3f internalTranslation
private final javax.vecmath.Point3f internalRotationCenter
private float internalRotationAngle
protected final javax.vecmath.Matrix3f matrixRotate
private final javax.vecmath.Matrix3f matrixTemp3
private final javax.vecmath.Matrix4f matrixTemp4
private final javax.vecmath.AxisAngle4f axisangleT
private final javax.vecmath.Vector3f vectorT
private final javax.vecmath.Vector3f vectorT2
private final javax.vecmath.Point3f pointT2
static final int MAXIMUM_ZOOM_PERCENTAGE
static final int MAXIMUM_ZOOM_PERSPECTIVE_DEPTH
javax.vecmath.Vector3f rotationAxis
float rotationRate
final javax.vecmath.Vector3f arcBall0
final javax.vecmath.Vector3f arcBall1
final javax.vecmath.Vector3f arcBallAxis
final javax.vecmath.Matrix3f arcBall0Rotation
protected final javax.vecmath.Point3f fixedTranslation
float xTranslationFraction
float yTranslationFraction
protected float prevZoomSetting
protected float previousX
protected float previousY
boolean zoomEnabled
float zoomPercent
float zoomPercentSetting
float zoomRatio
boolean slabEnabled
boolean internalSlab
boolean zShadeEnabled
int slabPercentSetting
int depthPercentSetting
int zSlabPercentSetting
int zDepthPercentSetting
javax.vecmath.Point3f zSlabPoint
int slabValue
int depthValue
int zSlabValue
int zDepthValue
float slabRange
javax.vecmath.Point4f slabPlane
javax.vecmath.Point4f depthPlane
protected boolean perspectiveDepth
protected boolean scale3D
protected float cameraDepth
protected float cameraDepthSetting
protected float visualRange
protected float cameraDistance
int width
int height
int screenPixelCount
float scalePixelsPerAngstrom
float scaleDefaultPixelsPerAngstrom
float scale3DAngstromsPerInch
protected boolean antialias
private boolean useZoomLarge
int screenWidth
int screenHeight
protected final javax.vecmath.Matrix4f matrixTransform
protected final javax.vecmath.Matrix4f matrixTransformInv
protected final javax.vecmath.Point3f point3fScreenTemp
protected final javax.vecmath.Point3i point3iScreenTemp
private final javax.vecmath.Point3f point3fVibrationTemp
protected boolean navigating
protected static final int MODE_STANDARD
protected static final int MODE_NAVIGATION
protected static final int MODE_PERSPECTIVE_CENTER
static final int DEFAULT_PERSPECTIVE_MODEL
protected int mode
protected int defaultMode
private final javax.vecmath.Point3f pointTsp
protected final javax.vecmath.Point3f untransformedPoint
protected final javax.vecmath.Point3f ptTest1
protected final javax.vecmath.Point3f ptTest2
protected final javax.vecmath.Point3f ptTest3
protected final javax.vecmath.AxisAngle4f aaTest1
protected final javax.vecmath.Matrix3f matrixTest
TransformManager.MotionThread motion
protected boolean spinOn
protected boolean navOn
private TransformManager.SpinThread spinThread
boolean vibrationOn
private float vibrationPeriod
public int vibrationPeriodMs
private float vibrationAmplitude
private float vibrationRadians
private float vibrationScale
private TransformManager.VibrationThread vibrationThread
EnumStereoMode stereoMode
int[] stereoColors
float stereoDegrees
float stereoRadians
boolean stereoFrame
protected final javax.vecmath.Matrix3f matrixStereo
boolean windowCentered
javax.vecmath.Point3f[] frameOffsets
final javax.vecmath.Point3f frameOffset
TransformManager()
TransformManager(Viewer viewer)
TransformManager(Viewer viewer, int width, int height)
protected abstract void calcCameraFactors()
protected abstract float getPerspectiveFactor(float z)
z
- abstract void adjustTemporaryScreenPoint()
void setViewer(Viewer viewer, int width, int height)
TransformManager getNavigationManager(Viewer viewer, int width, int height)
void homePosition(boolean resetSpin)
void clear()
java.lang.String getState(java.lang.StringBuffer sfunc)
java.lang.String getSpinState(boolean isAll)
isAll
- private void setFixedRotationCenter(javax.vecmath.Point3f center)
void setRotationPointXY(javax.vecmath.Point3f center)
void spinXYBy(int xDelta, int yDelta, float speed)
void rotateArcBall(float x, float y, float factor)
void rotateXYBy(float xDelta, float yDelta, java.util.BitSet bsAtoms)
void rotateZBy(int zDelta, int x, int y)
void rotateFront()
void rotateX(float angleRadians)
void rotateY(float angleRadians)
void rotateZ(float angleRadians)
private void applyRotation(javax.vecmath.Matrix3f mNew, boolean isInternal, java.util.BitSet bsAtoms, javax.vecmath.Vector3f translation)
void rotateXRadians(float angleRadians, java.util.BitSet bsAtoms)
void rotateYRadians(float angleRadians, java.util.BitSet bsAtoms)
void rotateZRadians(float angleRadians)
protected void rotateAxisAngle(javax.vecmath.Vector3f rotAxis, float radians)
void rotateAxisAngle(javax.vecmath.AxisAngle4f axisAngle, java.util.BitSet bsAtoms)
void rotateAxisAngleAtCenter(javax.vecmath.Point3f rotCenter, javax.vecmath.Vector3f rotAxis, float degreesPerSecond, float endDegrees, boolean isSpin, java.util.BitSet bsAtoms)
void rotateAxisAngleRadiansFixed(float angleRadians, java.util.BitSet bsAtoms)
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<javax.vecmath.Point3f> finalPoints)
void rotateAxisAngleRadiansInternal(float radians, java.util.BitSet bsAtoms)
void getNewFixedRotationCenter()
void setTranslationFractions()
public void centerAt(int x, int y, javax.vecmath.Point3f pt)
int percentToPixels(char xyz, float percent)
int angstromsToPixels(float distance)
void translateXYBy(int xDelta, int yDelta)
void translateToPercent(char type, float percent)
float getTranslationXPercent()
float getTranslationYPercent()
float getTranslationZPercent()
java.lang.String getTranslationScript()
java.lang.String getOrientationText(int type)
java.util.Map<java.lang.String,java.lang.Object> getOrientationInfo()
void getAxisAngle(javax.vecmath.AxisAngle4f axisAngle)
java.lang.String getTransformText()
javax.vecmath.Matrix3f getMatrixRotate()
void setRotation(javax.vecmath.Matrix3f matrixRotation)
void getRotation(javax.vecmath.Matrix3f matrixRotation)
protected void zoomBy(int pixels)
pixels
- float getZoomPercentFloat()
void zoomToPercent(float percentZoom)
void translateZBy(int pixels)
void zoomByFactor(float factor, int x, int y)
private void resetXYCenter(int x, int y)
void zoomByPercent(float percentZoom)
void setScaleAngstromsPerInch(float angstromsPerInch)
void setZslabPoint(javax.vecmath.Point3f pt)
public void setSlabRange(float value)
void setSlabEnabled(boolean slabEnabled)
void setZShadeEnabled(boolean zShadeEnabled)
void setZoomEnabled(boolean zoomEnabled)
void slabReset()
int getSlabPercentSetting()
void slabByPercentagePoints(int percentage)
private void slabDepthChanged()
void depthByPercentagePoints(int percentage)
void slabDepthByPercentagePoints(int percentage)
void slabToPercent(int percentSlab)
void depthToPercent(int percentDepth)
void zSlabToPercent(int percentSlab)
void zDepthToPercent(int percentDepth)
void slabInternal(javax.vecmath.Point4f plane, boolean isDepth)
void setSlabDepthInternal(boolean isDepth)
isDepth
- javax.vecmath.Point4f getSlabDepthPlane(boolean isDepth)
boolean checkInternalSlab(javax.vecmath.Point3f pt)
javax.vecmath.Point3f[] getCameraFactors()
int getFrontPlane()
void setPerspectiveDepth(boolean perspectiveDepth)
boolean getPerspectiveDepth()
void setCameraDepthPercent(float percent)
percent
- void setVisualRange(float angstroms)
javax.vecmath.Matrix4f getUnscaledTransformMatrix()
void setScreenParameters(int screenWidth, int screenHeight, boolean useZoomLarge, boolean antialias, boolean resetSlab, boolean resetZoom)
void setAntialias(boolean TF)
float defaultScaleToScreen(float radius)
void scaleFitToScreen(boolean andCenter)
void scaleFitToScreen(boolean andCenter, boolean zoomLarge, boolean resetSlab, boolean resetZoom)
short scaleToScreen(int z, int milliAngstroms)
float unscaleToScreen(float z, float screenDistance)
float scaleToPerspective(int z, float sizeAngstroms)
javax.vecmath.Matrix4f getMatrixtransform()
void setNavigationMode(boolean TF)
boolean isNavigating()
void finalizeTransformParameters()
float getZoomSetting()
protected void calcSlabAndDepthValues()
int zValueFromPercent(int zPercent)
protected void calcTransformMatrix()
void rotatePoint(javax.vecmath.Point3f pt, javax.vecmath.Point3f ptRot)
void transformPoints(int count, javax.vecmath.Point3f[] angstroms, javax.vecmath.Point3i[] screens)
void transformPoint(javax.vecmath.Point3f pointAngstroms, javax.vecmath.Point3i pointScreen)
void transformPointNoClip(javax.vecmath.Point3f pointAngstroms, javax.vecmath.Point3f pointScreen)
javax.vecmath.Point3i transformPoint(javax.vecmath.Point3f pointAngstroms)
pointAngstroms
- private javax.vecmath.Point3i transformScreenPoint(javax.vecmath.Point3f ptXyp)
javax.vecmath.Point3f transformPointNoClip(javax.vecmath.Point3f pointAngstroms)
pointAngstroms
- javax.vecmath.Point3i transformPoint(javax.vecmath.Point3f pointAngstroms, javax.vecmath.Vector3f vibrationVector)
pointAngstroms
- vibrationVector
- void transformPoint(javax.vecmath.Point3f pointAngstroms, javax.vecmath.Point3f screen)
void transformVector(javax.vecmath.Vector3f vectorAngstroms, javax.vecmath.Vector3f vectorTransformed)
void unTransformPoint(javax.vecmath.Point3f screenPt, javax.vecmath.Point3f coordPt)
void move(javax.vecmath.Vector3f dRot, float dZoom, javax.vecmath.Vector3f dTrans, float dSlab, float floatSecondsTotal, int fps)
boolean isInPosition(javax.vecmath.Vector3f axis, float degrees)
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)
public void stopMotion()
Quaternion getRotationQuaternion()
java.lang.String getRotationText()
java.lang.String getMoveToText(float timespan, boolean addComments)
private java.lang.String getCenterText()
private java.lang.String getRotateXyzText()
private void addZoomTranslationNavigationText(java.lang.StringBuffer sb)
private java.lang.String getRotateZyzText(boolean iAddComment)
private static void truncate0(java.lang.StringBuffer sb, float val)
private static void truncate2(java.lang.StringBuffer sb, float val)
void setSpinXYZ(float x, float y, float z)
void setSpinFps(int value)
void setNavXYZ(float x, float y, float z)
protected void setNavFps(int value)
value
- private void clearSpin()
boolean getSpinOn()
boolean getNavOn()
void setSpinOn(boolean spinOn)
private void setSpinOn(boolean spinOn, float endDegrees, java.util.List<javax.vecmath.Point3f> endPositions, java.util.BitSet bsAtoms, boolean isGesture)
protected void setNavOn(boolean navOn)
void setVibrationScale(float scale)
protected void setNavigationOffsetRelative(boolean navigatingSurface)
navigatingSurface
- void setVibrationPeriod(float period)
period
- protected void setVibrationT(float t)
boolean isVibrationOn()
private void setVibrationOn(boolean vibrationOn)
private void clearVibration()
void setStereoMode(int[] twoColors)
void setStereoMode(EnumStereoMode stereoMode)
void setStereoDegrees(float stereoDegrees)
javax.vecmath.Matrix3f getStereoRotationMatrix(boolean stereoFrame)
boolean isWindowCentered()
void setWindowCentered(boolean TF)
javax.vecmath.Point3f getRotationCenter()
float getRotationRadius()
float setRotationRadius(float angstroms, boolean doAll)
private void setRotationCenterAndRadiusXYZ(javax.vecmath.Point3f newCenterOfRotation, boolean andRadius)
private void setRotationCenterAndRadiusXYZ(java.lang.String relativeTo, javax.vecmath.Point3f pt)
void setNewRotationCenter(javax.vecmath.Point3f center, boolean doScale)
void moveRotationCenter(javax.vecmath.Point3f center, boolean toXY)
void setCenter()
void setCenterAt(java.lang.String relativeTo, javax.vecmath.Point3f pt)
boolean canNavigate()
void navigate(int keyCode, int modifiers)
keyCode
- 0 indicates key releasedmodifiers
- shift,alt,ctrlvoid navigate(float seconds, javax.vecmath.Point3f center)
seconds
- center
- void navigate(float seconds, javax.vecmath.Vector3f rotAxis, float degrees)
seconds
- rotAxis
- degrees
- void navigate(float seconds, javax.vecmath.Point3f[] path, float[] theta, int indexStart, int indexEnd)
seconds
- number of seconds to allow for total movement, like moveTopath
- sequence of points to turn into a hermetian paththeta
- 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 yetvoid navigate(float timeSeconds, javax.vecmath.Point3f[][] pathGuide)
timeSeconds
- pathGuide
- void navTranslate(float seconds, javax.vecmath.Point3f pt)
seconds
- pt
- void navTranslatePercent(float seconds, float x, float y)
seconds
- x
- y
- protected void calcNavigationPoint()
protected void resetNavigationPoint(boolean doResetSlab)
doResetSlab
- protected java.lang.String getNavigationState()
void setNavigationDepthPercent(float timeSec, float percent)
timeSec
- percent
- javax.vecmath.Point3f getNavigationCenter()
javax.vecmath.Point3f getNavigationOffset()
float getNavigationDepthPercent()
float getNavigationOffsetPercent(char XorY)
XorY
- void setNavigationSlabOffsetPercent(float offset)
java.lang.String getNavigationText(boolean addComments)
addComments
- void setFrameOffset(int modelIndex)
void setFrameOffsets(javax.vecmath.Point3f[] offsets)
void navigateSurface(float timeSeconds, java.lang.String name)
timeSeconds
- name
-