public class TransformManager extends Object
Modifier and Type | Field and Description |
---|---|
protected javajs.util.A4 |
aaTest1 |
protected boolean |
antialias |
protected float |
aperatureAngle |
(package private) javajs.util.V3 |
arcBall0 |
(package private) javajs.util.M3 |
arcBall0Rotation |
(package private) javajs.util.V3 |
arcBall1 |
(package private) javajs.util.V3 |
arcBallAxis |
private javajs.util.A4 |
axisangleT |
(package private) BS |
bsSelectedAtoms |
javajs.util.P3 |
camera |
protected float |
cameraDepth |
protected float |
cameraDepthSetting |
protected float |
cameraDistance |
protected float |
cameraDistanceFromCenter |
protected float |
cameraScaleFactor |
javajs.util.P3 |
cameraSetting |
(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 |
int |
defaultMode |
static double |
degreesPerRadian |
(package private) int |
depthPercentSetting |
(package private) javajs.util.P4 |
depthPlane |
int |
depthValue |
javajs.util.A4 |
fixedRotationAxis |
javajs.util.P3 |
fixedRotationCenter |
javajs.util.P3 |
fixedRotationOffset |
javajs.util.P3 |
fixedTranslation |
(package private) javajs.util.P3 |
frameOffset |
(package private) javajs.util.P3[] |
frameOffsets |
protected boolean |
haveNotifiedNaN |
int |
height |
private float |
internalRotationAngle |
javajs.util.A4 |
internalRotationAxis |
(package private) javajs.util.P3 |
internalRotationCenter |
(package private) boolean |
internalSlab |
protected javajs.util.V3 |
internalTranslation |
boolean |
isSpinFixed |
boolean |
isSpinInternal |
(package private) boolean |
isSpinSelected |
protected javajs.util.M3 |
matrixRotate |
protected javajs.util.M3 |
matrixStereo |
protected javajs.util.M4 |
matrixTemp |
private javajs.util.M3 |
matrixTemp3 |
private javajs.util.M4 |
matrixTemp4 |
protected javajs.util.M3 |
matrixTest |
javajs.util.M4 |
matrixTransform |
javajs.util.M4 |
matrixTransformInv |
(package private) static int |
MAXIMUM_ZOOM_PERCENTAGE |
(package private) static int |
MAXIMUM_ZOOM_PERSPECTIVE_DEPTH |
int |
mode |
static int |
MODE_NAVIGATION |
protected static int |
MODE_PERSPECTIVE_PYMOL |
protected static int |
MODE_STANDARD |
float |
modelCenterOffset |
float |
modelRadius |
float |
modelRadiusPixels |
JmolThread |
motion |
private JmolNavigatorInterface |
nav |
static int |
NAV_MODE_IGNORE |
static int |
NAV_MODE_NEWXY |
static int |
NAV_MODE_NEWXYZ |
static int |
NAV_MODE_NEWZ |
static int |
NAV_MODE_NONE |
static int |
NAV_MODE_RESET |
static int |
NAV_MODE_ZOOMED |
float |
navFps |
boolean |
navigating |
javajs.util.P3 |
navigationCenter |
float |
navigationDepth |
javajs.util.P3 |
navigationOffset |
javajs.util.P3 |
navigationShiftXY |
float |
navigationSlabOffset |
int |
navMode |
boolean |
navOn |
float |
navX |
float |
navY |
float |
navZ |
protected boolean |
perspectiveDepth |
protected int |
perspectiveModel |
protected javajs.util.P3 |
perspectiveOffset |
protected javajs.util.P3 |
perspectiveShiftXY |
protected javajs.util.P3 |
point3fScreenTemp |
protected javajs.util.P3i |
point3iScreenTemp |
private javajs.util.P3 |
pointT2 |
private javajs.util.P3 |
pointTsp |
float |
previousX |
float |
previousY |
protected float |
prevZoomSetting |
(package private) javajs.util.P3 |
ptOffset |
protected javajs.util.P3 |
ptTest1 |
protected javajs.util.P3 |
ptTest2 |
protected javajs.util.P3 |
ptTest3 |
private Point3fi |
ptVibTemp |
float |
referencePlaneOffset |
(package private) javajs.util.V3 |
rotationAxis |
private javajs.util.P3 |
rotationCenterDefault |
private float |
rotationRadiusDefault |
(package private) float |
rotationRate |
protected boolean |
scale3D |
(package private) float |
scale3DAngstromsPerInch |
float |
scaleDefaultPixelsPerAngstrom |
(package private) float |
scalePixelsPerAngstrom |
(package private) int |
screenHeight |
int |
screenPixelCount |
(package private) int |
screenWidth |
boolean |
slabEnabled |
(package private) int |
slabPercentSetting |
(package private) javajs.util.P4 |
slabPlane |
(package private) float |
slabRange |
int |
slabValue |
float |
spinFps |
private boolean |
spinIsGesture |
boolean |
spinOn |
private JmolThread |
spinThread |
float |
spinX |
float |
spinY |
float |
spinZ |
(package private) int[] |
stereoColors |
(package private) float |
stereoDegrees |
(package private) boolean |
stereoFrame |
(package private) EnumStereoMode |
stereoMode |
(package private) float |
stereoRadians |
protected javajs.util.P3 |
untransformedPoint |
private boolean |
useZoomLarge |
private javajs.util.V3 |
vectorT |
private javajs.util.V3 |
vectorT2 |
protected javajs.util.V3 |
vectorTemp |
(package private) boolean |
vibrationOn |
(package private) float |
vibrationPeriod |
int |
vibrationPeriodMs |
private float |
vibrationScale |
private javajs.util.P3 |
vibrationT |
private JmolThread |
vibrationThread |
(package private) Viewer |
viewer |
protected float |
visualRange |
int |
width |
boolean |
windowCentered |
(package private) float |
xTranslationFraction |
(package private) float |
yTranslationFraction |
int |
zDepthPercentSetting |
(package private) int |
zDepthValue |
(package private) boolean |
zoomEnabled |
float |
zoomFactor |
private boolean |
zoomHeight |
float |
zoomPercent |
(package private) float |
zoomPercentSetting |
(package private) float |
zoomRatio |
(package private) boolean |
zShadeEnabled |
int |
zSlabPercentSetting |
(package private) javajs.util.P3 |
zSlabPoint |
int |
zSlabValue |
Constructor and Description |
---|
TransformManager(Viewer viewer,
int width,
int height) |
Modifier and Type | Method and Description |
---|---|
private void |
addZoomTranslationNavigationText(javajs.util.SB sb) |
(package private) int |
angstromsToPixels(float distance) |
private void |
applyRotation(javajs.util.M3 mNew,
boolean isInternal,
BS bsAtoms,
javajs.util.V3 translation,
boolean translationOnly) |
void |
calcCameraFactors()
sets all camera and scale factors needed by the specific perspective model
instantiated
|
private void |
calcNavCameraFactors(float offset100) |
protected void |
calcNavigationPoint()
All the magic happens here.
|
void |
calcSlabAndDepthValues()
sets slab and depth, possibly using visual range considerations for setting
the slab-clipping plane.
|
void |
calcTransformMatrix() |
(package private) boolean |
canNavigate() |
void |
centerAt(int x,
int y,
javajs.util.P3 pt) |
(package private) void |
clear() |
private void |
clearSpin() |
private void |
clearVibration() |
float |
defaultScaleToScreen(float radius) |
(package private) void |
depthByPercentagePoints(int percentage) |
(package private) void |
depthToPercent(int percentDepth) |
void |
finalizeTransformParameters() |
(package private) void |
getAxisAngle(javajs.util.A4 axisAngle) |
float |
getCameraDepth() |
(package private) javajs.util.P3[] |
getCameraFactors()
This method returns data needed by the VRML, X3D, and IDTF/U3D exporters.
|
private String |
getCenterText() |
(package private) int |
getFrontPlane() |
javajs.util.M3 |
getMatrixRotate() |
(package private) javajs.util.M4 |
getMatrixtransform() |
(package private) String |
getMoveToText(float timespan,
boolean addComments) |
private boolean |
getNav() |
javajs.util.P3 |
getNavigationCenter() |
float |
getNavigationDepthPercent() |
(package private) javajs.util.P3 |
getNavigationOffset() |
float |
getNavigationOffsetPercent(char XorY) |
protected String |
getNavigationState() |
protected String |
getNavigationText(boolean addComments) |
(package private) boolean |
getNavOn() |
float |
getNavPtHeight() |
(package private) void |
getNewFixedRotationCenter() |
(package private) Map<String,Object> |
getOrientationInfo() |
(package private) String |
getOrientationText(int type) |
(package private) boolean |
getPerspectiveDepth() |
float |
getPerspectiveFactor(float z)
calculate the perspective factor based on z
|
private String |
getRotateXyzText() |
private String |
getRotateZyzText(boolean iAddComment) |
void |
getRotation(javajs.util.M3 matrixRotation) |
(package private) javajs.util.P3 |
getRotationCenter() |
(package private) Quaternion |
getRotationQuaternion() |
(package private) float |
getRotationRadius() |
(package private) String |
getRotationText() |
(package private) javajs.util.P4 |
getSlabDepthPlane(boolean isDepth) |
int |
getSlabPercentSetting() |
(package private) boolean |
getSpinOn() |
(package private) javajs.util.M3 |
getStereoRotationMatrix(boolean stereoFrame) |
protected javajs.util.P3i |
getTempScreenPt(javajs.util.P3 ptXYZ,
javajs.util.P3 ptRef)
adjusts the temporary point for perspective and offsets
|
(package private) String |
getTransformText() |
(package private) String |
getTranslationScript() |
float |
getTranslationXPercent() |
float |
getTranslationYPercent() |
float |
getTranslationZPercent() |
(package private) javajs.util.M4 |
getUnscaledTransformMatrix() |
Point3fi |
getVibrationPoint(Vibration v,
Point3fi pt) |
(package private) float |
getZoomPercentFloat() |
(package private) float |
getZoomSetting() |
(package private) int |
getZShadeStart() |
void |
homePosition(boolean resetSpin) |
(package private) boolean |
isInPosition(javajs.util.V3 axis,
float degrees) |
(package private) boolean |
isNavigating() |
(package private) boolean |
isVibrationOn() |
(package private) boolean |
isWindowCentered() |
(package private) void |
move(JmolScriptEvaluator eval,
javajs.util.V3 dRot,
float dZoom,
javajs.util.V3 dTrans,
float dSlab,
float floatSecondsTotal,
int fps) |
void |
moveRotationCenter(javajs.util.P3 center,
boolean toXY) |
(package private) void |
moveTo(JmolScriptEvaluator eval,
float floatSecondsTotal,
javajs.util.P3 center,
javajs.util.T3 rotAxis,
float degrees,
javajs.util.M3 matrixEnd,
float zoom,
float xTrans,
float yTrans,
float newRotationRadius,
javajs.util.P3 navCenter,
float xNav,
float yNav,
float navDepth,
float cameraDepth,
float cameraX,
float cameraY) |
void |
moveToPyMOL(JmolScriptEvaluator eval,
float floatSecondsTotal,
float[] pymolView) |
void |
navigateAxis(javajs.util.V3 rotAxis,
float degrees)
scripted entry point for navigation
|
(package private) void |
navigateKey(int keyCode,
int modifiers)
entry point for keyboard-based navigation
|
void |
navigateList(JmolScriptEvaluator eval,
javajs.util.List<Object[]> list) |
private void |
navInterrupt() |
void |
navTranslatePercentOrTo(float seconds,
float x,
float y)
seconds < 0 means "to (x,y)"; >= 0 mean "to (x%, y%)"
|
(package private) int |
percentToPixels(char xyz,
float percent) |
private void |
resetFitToScreen(boolean andCenter) |
protected void |
resetNavigationPoint(boolean doResetSlab)
something has arisen that requires resetting of the navigation point.
|
private void |
resetXYCenter(int x,
int y) |
(package private) boolean |
rotateAboutPointsInternal(JmolScriptEvaluator eval,
javajs.util.P3 point1,
javajs.util.P3 point2,
float degreesPerSecond,
float endDegrees,
boolean isClockwise,
boolean isSpin,
BS bsAtoms,
boolean isGesture,
javajs.util.V3 translation,
javajs.util.List<javajs.util.P3> finalPoints,
float[] dihedralList) |
(package private) void |
rotateArcBall(float x,
float y,
float factor) |
void |
rotateAxisAngle(javajs.util.V3 rotAxis,
float radians) |
private void |
rotateAxisAngle2(javajs.util.A4 axisAngle,
BS bsAtoms) |
(package private) boolean |
rotateAxisAngleAtCenter(JmolScriptEvaluator eval,
javajs.util.P3 rotCenter,
javajs.util.V3 rotAxis,
float degreesPerSecond,
float endDegrees,
boolean isSpin,
BS bsAtoms) |
void |
rotateAxisAngleRadiansFixed(float angleRadians,
BS bsAtoms) |
void |
rotateAxisAngleRadiansInternal(float radians,
BS bsAtoms) |
(package private) void |
rotateFront() |
(package private) void |
rotatePoint(javajs.util.P3 pt,
javajs.util.P3 ptRot) |
(package private) void |
rotateX(float angleRadians) |
void |
rotateXRadians(float angleRadians,
BS bsAtoms) |
(package private) void |
rotateXYBy(float xDelta,
float yDelta,
BS bsAtoms) |
(package private) void |
rotateY(float angleRadians) |
void |
rotateYRadians(float angleRadians,
BS bsAtoms) |
(package private) void |
rotateZ(float angleRadians) |
(package private) void |
rotateZBy(int zDelta,
int x,
int y) |
void |
rotateZRadians(float angleRadians) |
(package private) void |
scaleFitToScreen(boolean andCenter,
boolean zoomLarge,
boolean resetSlab,
boolean resetZoom) |
(package private) float |
scaleToPerspective(int z,
float sizeAngstroms) |
(package private) float |
scaleToScreen(int z,
int milliAngstroms) |
void |
setAll(javajs.util.P3 center,
javajs.util.M3 m,
javajs.util.P3 navCenter,
float zoom,
float xTrans,
float yTrans,
float rotationRadius,
float pixelScale,
float navDepth,
float xNav,
float yNav,
float cameraDepth,
float cameraX,
float cameraY) |
(package private) void |
setAntialias(boolean TF) |
void |
setCamera(float x,
float y) |
void |
setCameraDepthPercent(float percent,
boolean resetSlab)
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(String relativeTo,
javajs.util.P3 pt) |
private void |
setFixedRotationCenter(javajs.util.P3 center) |
(package private) void |
setFrameOffset(int modelIndex) |
(package private) void |
setFrameOffsets(javajs.util.P3[] offsets) |
protected void |
setNavFps(int navFps) |
void |
setNavigatePt(javajs.util.P3 pt)
scripted entry point for navigation
|
void |
setNavigationDepthPercent(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) |
void |
setNavigationOffsetRelative() |
(package private) void |
setNavigationSlabOffsetPercent(float percent) |
void |
setNavOn(boolean navOn) |
(package private) void |
setNavXYZ(float x,
float y,
float z) |
(package private) void |
setNewRotationCenter(javajs.util.P3 center,
boolean doScale) |
(package private) void |
setPerspectiveDepth(boolean perspectiveDepth) |
void |
setRotation(javajs.util.M3 matrixRotation) |
private void |
setRotationCenterAndRadiusXYZ(javajs.util.P3 newCenterOfRotation,
boolean andRadius) |
(package private) void |
setRotationPointXY(javajs.util.P3 center) |
float |
setRotationRadius(float angstroms,
boolean doAll) |
private void |
setRotCenterRel(String relativeTo,
javajs.util.P3 pt) |
(package private) void |
setScaleAngstromsPerInch(float angstromsPerInch) |
(package private) void |
setScreenParameters(int screenWidth,
int screenHeight,
boolean useZoomLarge,
boolean antialias,
boolean resetSlab,
boolean resetZoom) |
private void |
setScreenParameters0(int screenWidth,
int screenHeight,
boolean useZoomLarge,
boolean antialias,
boolean resetSlab,
boolean resetZoom) |
(package private) void |
setSelectedTranslation(BS bsAtoms,
char xyz,
int xy) |
(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) |
private void |
setSpin(JmolScriptEvaluator eval,
boolean spinOn,
float endDegrees,
javajs.util.List<javajs.util.P3> endPositions,
float[] dihedralList,
BS bsAtoms,
boolean isGesture) |
(package private) void |
setSpinFps(int value) |
void |
setSpinOff() |
void |
setSpinOn() |
(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 |
setStereoMode2(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) |
void |
setVibrationT(float t) |
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) |
void |
setZoomHeight(boolean zoomHeight,
boolean zoomLarge) |
(package private) void |
setZShadeEnabled(boolean zShadeEnabled) |
(package private) void |
setZslabPoint(javajs.util.P3 pt) |
(package private) void |
slabByPercentagePoints(int percentage) |
(package private) void |
slabDepthByPercentagePoints(int percentage) |
private void |
slabDepthChanged() |
(package private) void |
slabInternal(javajs.util.P4 plane,
boolean isDepth) |
(package private) void |
slabReset() |
void |
slabToPercent(int percentSlab) |
(package private) void |
spinXYBy(int xDelta,
int yDelta,
float speed) |
void |
stopMotion() |
(package private) javajs.util.P3i |
transformPoint(javajs.util.P3 ptXYZ)
CAUTION! returns a POINTER TO A TEMPORARY VARIABLE
|
void |
transformPoint2(javajs.util.P3 ptXYZ,
javajs.util.P3 screen) |
(package private) void |
transformPointNoClip(javajs.util.P3 ptXYZ,
javajs.util.P3 pointScreen) |
(package private) void |
transformPoints(int count,
javajs.util.P3[] angstroms,
javajs.util.P3i[] screens) |
(package private) void |
transformPointScr(javajs.util.P3 ptXYZ,
javajs.util.P3i pointScreen) |
(package private) javajs.util.P3i |
transformPointVib(javajs.util.P3 ptXYZ,
Vibration v) |
private javajs.util.P3i |
transformScreenPoint(javajs.util.P3 ptXyp) |
(package private) void |
transformVector(javajs.util.V3 vectorAngstroms,
javajs.util.V3 vectorTransformed) |
void |
translateToPercent(char type,
float percent) |
(package private) void |
translateXYBy(int xDelta,
int yDelta) |
(package private) void |
translateZBy(int pixels) |
private static void |
truncate0(javajs.util.SB sb,
float val) |
private static void |
truncate2(javajs.util.SB sb,
float val) |
(package private) float |
unscaleToScreen(float z,
float screenDistance) |
void |
unTransformPoint(javajs.util.P3 screenPt,
javajs.util.P3 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 |
zoomByFactor0(float factor,
int x,
int y) |
(package private) void |
zoomByPercent(float percentZoom) |
void |
zoomToPercent(float percentZoom) |
(package private) void |
zSlabToPercent(int percentSlab) |
(package private) int |
zValueFromPercent(int zPercent) |
Viewer viewer
public static final double degreesPerRadian
static final int DEFAULT_NAV_FPS
protected int perspectiveModel
protected float cameraScaleFactor
public float referencePlaneOffset
protected float aperatureAngle
protected float cameraDistanceFromCenter
public float modelCenterOffset
public float modelRadius
public float modelRadiusPixels
public final javajs.util.P3 navigationCenter
public final javajs.util.P3 navigationOffset
public final javajs.util.P3 navigationShiftXY
public float navigationDepth
protected final javajs.util.M4 matrixTemp
protected final javajs.util.V3 vectorTemp
protected boolean haveNotifiedNaN
static final int DEFAULT_SPIN_Y
static final int DEFAULT_SPIN_FPS
public float spinX
public float spinY
public float spinZ
public float spinFps
public float navX
public float navY
public float navZ
public float navFps
public boolean isSpinInternal
public boolean isSpinFixed
boolean isSpinSelected
public final javajs.util.P3 fixedRotationOffset
public final javajs.util.P3 fixedRotationCenter
protected final javajs.util.P3 perspectiveOffset
protected final javajs.util.P3 perspectiveShiftXY
private final javajs.util.P3 rotationCenterDefault
private float rotationRadiusDefault
public final javajs.util.A4 fixedRotationAxis
public final javajs.util.A4 internalRotationAxis
protected javajs.util.V3 internalTranslation
final javajs.util.P3 internalRotationCenter
private float internalRotationAngle
protected final javajs.util.M3 matrixRotate
private final javajs.util.M3 matrixTemp3
private final javajs.util.M4 matrixTemp4
private final javajs.util.A4 axisangleT
private final javajs.util.V3 vectorT
private final javajs.util.V3 vectorT2
private final javajs.util.P3 pointT2
static final int MAXIMUM_ZOOM_PERCENTAGE
static final int MAXIMUM_ZOOM_PERSPECTIVE_DEPTH
javajs.util.V3 rotationAxis
float rotationRate
final javajs.util.V3 arcBall0
final javajs.util.V3 arcBall1
final javajs.util.V3 arcBallAxis
final javajs.util.M3 arcBall0Rotation
public final javajs.util.P3 fixedTranslation
public final javajs.util.P3 camera
public final javajs.util.P3 cameraSetting
float xTranslationFraction
float yTranslationFraction
protected float prevZoomSetting
public float previousX
public float previousY
boolean zoomEnabled
public float zoomPercent
float zoomPercentSetting
float zoomRatio
public boolean slabEnabled
boolean internalSlab
boolean zShadeEnabled
int slabPercentSetting
int depthPercentSetting
public int zSlabPercentSetting
public int zDepthPercentSetting
javajs.util.P3 zSlabPoint
public int slabValue
public int depthValue
public int zSlabValue
int zDepthValue
float slabRange
javajs.util.P4 slabPlane
javajs.util.P4 depthPlane
protected boolean perspectiveDepth
protected boolean scale3D
protected float cameraDepth
protected float cameraDepthSetting
protected float visualRange
protected float cameraDistance
public int width
public int height
public int screenPixelCount
float scalePixelsPerAngstrom
public float scaleDefaultPixelsPerAngstrom
float scale3DAngstromsPerInch
protected boolean antialias
private boolean useZoomLarge
private boolean zoomHeight
int screenWidth
int screenHeight
public final javajs.util.M4 matrixTransform
public final javajs.util.M4 matrixTransformInv
protected final javajs.util.P3 point3fScreenTemp
protected final javajs.util.P3i point3iScreenTemp
private final Point3fi ptVibTemp
public boolean navigating
protected static final int MODE_STANDARD
public static final int MODE_NAVIGATION
protected static final int MODE_PERSPECTIVE_PYMOL
static final int DEFAULT_PERSPECTIVE_MODEL
public int mode
public int defaultMode
private final javajs.util.P3 pointTsp
protected final javajs.util.P3 untransformedPoint
protected final javajs.util.P3 ptTest1
protected final javajs.util.P3 ptTest2
protected final javajs.util.P3 ptTest3
protected final javajs.util.A4 aaTest1
protected final javajs.util.M3 matrixTest
public JmolThread motion
public boolean spinOn
public boolean navOn
private JmolThread spinThread
private boolean spinIsGesture
boolean vibrationOn
float vibrationPeriod
public int vibrationPeriodMs
private float vibrationScale
private javajs.util.P3 vibrationT
private JmolThread vibrationThread
EnumStereoMode stereoMode
int[] stereoColors
float stereoDegrees
float stereoRadians
boolean stereoFrame
protected final javajs.util.M3 matrixStereo
public boolean windowCentered
javajs.util.P3[] frameOffsets
final javajs.util.P3 frameOffset
BS bsSelectedAtoms
javajs.util.P3 ptOffset
public static final int NAV_MODE_IGNORE
public static final int NAV_MODE_ZOOMED
public static final int NAV_MODE_NONE
public static final int NAV_MODE_RESET
public static final int NAV_MODE_NEWXY
public static final int NAV_MODE_NEWXYZ
public static final int NAV_MODE_NEWZ
public int navMode
public float zoomFactor
public float navigationSlabOffset
private JmolNavigatorInterface nav
TransformManager(Viewer viewer, int width, int height)
private void setViewer(Viewer viewer, int width, int height)
public void homePosition(boolean resetSpin)
void clear()
private void setFixedRotationCenter(javajs.util.P3 center)
void setRotationPointXY(javajs.util.P3 center)
void spinXYBy(int xDelta, int yDelta, float speed)
void rotateArcBall(float x, float y, float factor)
void rotateXYBy(float xDelta, float yDelta, BS 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(javajs.util.M3 mNew, boolean isInternal, BS bsAtoms, javajs.util.V3 translation, boolean translationOnly)
public void rotateXRadians(float angleRadians, BS bsAtoms)
public void rotateYRadians(float angleRadians, BS bsAtoms)
public void rotateZRadians(float angleRadians)
public void rotateAxisAngle(javajs.util.V3 rotAxis, float radians)
private void rotateAxisAngle2(javajs.util.A4 axisAngle, BS bsAtoms)
boolean rotateAxisAngleAtCenter(JmolScriptEvaluator eval, javajs.util.P3 rotCenter, javajs.util.V3 rotAxis, float degreesPerSecond, float endDegrees, boolean isSpin, BS bsAtoms)
public void rotateAxisAngleRadiansFixed(float angleRadians, BS bsAtoms)
boolean rotateAboutPointsInternal(JmolScriptEvaluator eval, javajs.util.P3 point1, javajs.util.P3 point2, float degreesPerSecond, float endDegrees, boolean isClockwise, boolean isSpin, BS bsAtoms, boolean isGesture, javajs.util.V3 translation, javajs.util.List<javajs.util.P3> finalPoints, float[] dihedralList)
eval
- point1
- point2
- degreesPerSecond
- endDegrees
- isClockwise
- isSpin
- bsAtoms
- isGesture
- translation
- finalPoints
- dihedralList
- public void rotateAxisAngleRadiansInternal(float radians, BS bsAtoms)
void getNewFixedRotationCenter()
void setTranslationFractions()
public void centerAt(int x, int y, javajs.util.P3 pt)
int percentToPixels(char xyz, float percent)
int angstromsToPixels(float distance)
void translateXYBy(int xDelta, int yDelta)
public void setCamera(float x, float y)
public void translateToPercent(char type, float percent)
public float getTranslationXPercent()
public float getTranslationYPercent()
public float getTranslationZPercent()
String getTranslationScript()
String getOrientationText(int type)
void getAxisAngle(javajs.util.A4 axisAngle)
String getTransformText()
public javajs.util.M3 getMatrixRotate()
public void setRotation(javajs.util.M3 matrixRotation)
public void getRotation(javajs.util.M3 matrixRotation)
protected void zoomBy(int pixels)
pixels
- float getZoomPercentFloat()
public void zoomToPercent(float percentZoom)
void translateZBy(int pixels)
void zoomByFactor0(float factor, int x, int y)
private void resetXYCenter(int x, int y)
void zoomByPercent(float percentZoom)
void setScaleAngstromsPerInch(float angstromsPerInch)
void setZslabPoint(javajs.util.P3 pt)
int getZShadeStart()
public void setSlabRange(float value)
void setSlabEnabled(boolean slabEnabled)
void setZShadeEnabled(boolean zShadeEnabled)
void setZoomEnabled(boolean zoomEnabled)
void slabReset()
public int getSlabPercentSetting()
void slabByPercentagePoints(int percentage)
private void slabDepthChanged()
void depthByPercentagePoints(int percentage)
void slabDepthByPercentagePoints(int percentage)
public void slabToPercent(int percentSlab)
void depthToPercent(int percentDepth)
void zSlabToPercent(int percentSlab)
void zDepthToPercent(int percentDepth)
void slabInternal(javajs.util.P4 plane, boolean isDepth)
void setSlabDepthInternal(boolean isDepth)
isDepth
- javajs.util.P4 getSlabDepthPlane(boolean isDepth)
javajs.util.P3[] getCameraFactors()
int getFrontPlane()
void setPerspectiveDepth(boolean perspectiveDepth)
boolean getPerspectiveDepth()
public void setCameraDepthPercent(float percent, boolean resetSlab)
percent
- resetSlab
- public float getCameraDepth()
void setVisualRange(float angstroms)
javajs.util.M4 getUnscaledTransformMatrix()
private void setScreenParameters0(int screenWidth, int screenHeight, boolean useZoomLarge, boolean antialias, boolean resetSlab, boolean resetZoom)
void setAntialias(boolean TF)
public float defaultScaleToScreen(float radius)
private void resetFitToScreen(boolean andCenter)
void scaleFitToScreen(boolean andCenter, boolean zoomLarge, boolean resetSlab, boolean resetZoom)
float scaleToScreen(int z, int milliAngstroms)
float unscaleToScreen(float z, float screenDistance)
float scaleToPerspective(int z, float sizeAngstroms)
javajs.util.M4 getMatrixtransform()
void setNavigationMode(boolean TF)
boolean isNavigating()
public void finalizeTransformParameters()
float getZoomSetting()
public void calcSlabAndDepthValues()
int zValueFromPercent(int zPercent)
public void calcTransformMatrix()
void rotatePoint(javajs.util.P3 pt, javajs.util.P3 ptRot)
void transformPoints(int count, javajs.util.P3[] angstroms, javajs.util.P3i[] screens)
void transformPointScr(javajs.util.P3 ptXYZ, javajs.util.P3i pointScreen)
void transformPointNoClip(javajs.util.P3 ptXYZ, javajs.util.P3 pointScreen)
javajs.util.P3i transformPoint(javajs.util.P3 ptXYZ)
ptXYZ
- private javajs.util.P3i transformScreenPoint(javajs.util.P3 ptXyp)
javajs.util.P3i transformPointVib(javajs.util.P3 ptXYZ, Vibration v)
ptXYZ
- v
- public void transformPoint2(javajs.util.P3 ptXYZ, javajs.util.P3 screen)
void transformVector(javajs.util.V3 vectorAngstroms, javajs.util.V3 vectorTransformed)
void move(JmolScriptEvaluator eval, javajs.util.V3 dRot, float dZoom, javajs.util.V3 dTrans, float dSlab, float floatSecondsTotal, int fps)
boolean isInPosition(javajs.util.V3 axis, float degrees)
public void moveToPyMOL(JmolScriptEvaluator eval, float floatSecondsTotal, float[] pymolView)
void moveTo(JmolScriptEvaluator eval, float floatSecondsTotal, javajs.util.P3 center, javajs.util.T3 rotAxis, float degrees, javajs.util.M3 matrixEnd, float zoom, float xTrans, float yTrans, float newRotationRadius, javajs.util.P3 navCenter, float xNav, float yNav, float navDepth, float cameraDepth, float cameraX, float cameraY)
public void stopMotion()
Quaternion getRotationQuaternion()
String getRotationText()
String getMoveToText(float timespan, boolean addComments)
private String getCenterText()
private String getRotateXyzText()
private void addZoomTranslationNavigationText(javajs.util.SB sb)
private String getRotateZyzText(boolean iAddComment)
private static void truncate0(javajs.util.SB sb, float val)
private static void truncate2(javajs.util.SB sb, float val)
void setSpinXYZ(float x, float y, float z)
void setSpinFps(int value)
void setNavXYZ(float x, float y, float z)
private void clearSpin()
boolean getSpinOn()
boolean getNavOn()
public void setSpinOn()
public void setSpinOff()
private void setSpin(JmolScriptEvaluator eval, boolean spinOn, float endDegrees, javajs.util.List<javajs.util.P3> endPositions, float[] dihedralList, BS bsAtoms, boolean isGesture)
public void setNavOn(boolean navOn)
void setVibrationScale(float scale)
void setVibrationPeriod(float period)
period
- public void setVibrationT(float t)
boolean isVibrationOn()
private void setVibrationOn(boolean vibrationOn)
private void clearVibration()
void setStereoMode2(int[] twoColors)
void setStereoMode(EnumStereoMode stereoMode)
void setStereoDegrees(float stereoDegrees)
javajs.util.M3 getStereoRotationMatrix(boolean stereoFrame)
boolean isWindowCentered()
void setWindowCentered(boolean TF)
javajs.util.P3 getRotationCenter()
float getRotationRadius()
public float setRotationRadius(float angstroms, boolean doAll)
private void setRotationCenterAndRadiusXYZ(javajs.util.P3 newCenterOfRotation, boolean andRadius)
private void setRotCenterRel(String relativeTo, javajs.util.P3 pt)
void setNewRotationCenter(javajs.util.P3 center, boolean doScale)
public void moveRotationCenter(javajs.util.P3 center, boolean toXY)
void setCenter()
void setCenterAt(String relativeTo, javajs.util.P3 pt)
void setFrameOffset(int modelIndex)
void setFrameOffsets(javajs.util.P3[] offsets)
void setSelectedTranslation(BS bsAtoms, char xyz, int xy)
protected void setNavFps(int navFps)
public void calcCameraFactors()
private void calcNavCameraFactors(float offset100)
public float getPerspectiveFactor(float z)
z
- protected javajs.util.P3i getTempScreenPt(javajs.util.P3 ptXYZ, javajs.util.P3 ptRef)
ptXYZ
- ptRef
- public void unTransformPoint(javajs.util.P3 screenPt, javajs.util.P3 coordPt)
boolean canNavigate()
protected void resetNavigationPoint(boolean doResetSlab)
doResetSlab
- public void setNavigatePt(javajs.util.P3 pt)
pt
- public javajs.util.P3 getNavigationCenter()
public float getNavigationDepthPercent()
void setNavigationSlabOffsetPercent(float percent)
javajs.util.P3 getNavigationOffset()
public float getNavPtHeight()
public float getNavigationOffsetPercent(char XorY)
protected String getNavigationText(boolean addComments)
void setScreenParameters(int screenWidth, int screenHeight, boolean useZoomLarge, boolean antialias, boolean resetSlab, boolean resetZoom)
private void navInterrupt()
private boolean getNav()
public void navigateList(JmolScriptEvaluator eval, javajs.util.List<Object[]> list)
public void navigateAxis(javajs.util.V3 rotAxis, float degrees)
rotAxis
- degrees
- void zoomByFactor(float factor, int x, int y)
public void setNavigationOffsetRelative()
void navigateKey(int keyCode, int modifiers)
keyCode
- 0 indicates key releasedmodifiers
- shift,alt,ctrlpublic void setNavigationDepthPercent(float percent)
percent
- public void navTranslatePercentOrTo(float seconds, float x, float y)
seconds
- x
- y
- protected void calcNavigationPoint()
protected String getNavigationState()
public void setZoomHeight(boolean zoomHeight, boolean zoomLarge)
public void setAll(javajs.util.P3 center, javajs.util.M3 m, javajs.util.P3 navCenter, float zoom, float xTrans, float yTrans, float rotationRadius, float pixelScale, float navDepth, float xNav, float yNav, float cameraDepth, float cameraX, float cameraY)