Package org.jmol.viewer
Class TransformManager
- java.lang.Object
-
- org.jmol.viewer.TransformManager
-
- Direct Known Subclasses:
TransformManager4D
public class TransformManager extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected javajs.util.A4aaTest1protected booleanantialiasprotected floataperatureAngleprivate javajs.util.A4axisangleTBSbsFrameOffsets(package private) BSbsSelectedAtomsjavajs.util.P3cameraprotected floatcameraDepthprotected floatcameraDepthSettingfloatcameraDistanceprotected floatcameraDistanceFromCenterprotected floatcameraScaleFactorjavajs.util.P3cameraSetting(package private) static floatDEFAULT_CAMERA_DEPTH(package private) static intDEFAULT_NAV_FPS(package private) static booleanDEFAULT_PERSPECTIVE_DEPTH(package private) static intDEFAULT_PERSPECTIVE_MODEL(package private) static intDEFAULT_SPIN_FPS(package private) static intDEFAULT_SPIN_Ystatic intDEFAULT_STEREO_DEGREESstatic floatDEFAULT_VISUAL_RANGEintdefaultModestatic doubledegreesPerRadian(package private) intdepthPercentSetting(package private) javajs.util.P4depthPlaneintdepthValueprotected booleandoTransform4Djavajs.util.A4fixedRotationAxisjavajs.util.P3fixedRotationCenterjavajs.util.P3fixedRotationOffsetjavajs.util.P3fixedTranslation(package private) javajs.util.P3frameOffset(package private) javajs.util.P3[]frameOffsetsprotected javajs.util.P3fScrPtprotected booleanhaveNotifiedNaNintheightprivate floatinternalRotationAnglejavajs.util.A4internalRotationAxis(package private) javajs.util.P3internalRotationCenterbooleaninternalSlabprotected javajs.util.V3internalTranslationprotected javajs.util.P3iiScrPtbooleanisSpinFixedbooleanisSpinInternal(package private) booleanisSpinSelectedjavajs.util.M3matrixRotateprotected javajs.util.M3matrixStereoprotected javajs.util.M4matrixTempprotected javajs.util.M3matrixTemp3private javajs.util.M4matrixTemp4protected javajs.util.M3matrixTestjavajs.util.M4matrixTransformjavajs.util.M4matrixTransformInvstatic intMAXIMUM_ZOOM_PERCENTAGEprivate static intMAXIMUM_ZOOM_PERSPECTIVE_DEPTHintmodestatic intMODE_NAVIGATIONstatic intMODE_PERSPECTIVE_PYMOLstatic intMODE_STANDARDfloatmodelCenterOffsetfloatmodelRadiusfloatmodelRadiusPixelsJmolThreadmovetoThreadprivate JmolNavigatorInterfacenavstatic intNAV_MODE_IGNOREstatic intNAV_MODE_NEWXYstatic intNAV_MODE_NEWXYZstatic intNAV_MODE_NEWZstatic intNAV_MODE_NONEstatic intNAV_MODE_RESETstatic intNAV_MODE_ZOOMEDfloatnavFpsbooleannavigatingjavajs.util.P3navigationCenterfloatnavigationDepthPercentjavajs.util.P3navigationOffsetjavajs.util.P3navigationShiftXYfloatnavigationSlabOffsetintnavModebooleannavOnfloatnavXfloatnavYfloatnavZbooleanperspectiveDepthprotected intperspectiveModelprotected javajs.util.P3perspectiveOffsetprotected javajs.util.P3perspectiveShiftXYprivate javajs.util.P3pointT2floatpreviousXfloatpreviousYprotected floatprevZoomSetting(package private) javajs.util.P3ptOffsetprotected javajs.util.P3ptTest1protected javajs.util.P3ptTest2protected javajs.util.P3ptTest3(package private) Point3fiptVibTempfloatreferencePlaneOffset(package private) javajs.util.V3rotationAxisprivate javajs.util.P3rotationCenterDefaultprivate floatrotationRadiusDefault(package private) floatrotationRateprotected booleanscale3D(package private) floatscale3DAngstromsPerInchfloatscaleDefaultPixelsPerAngstrom(package private) floatscalePixelsPerAngstrom(package private) intscreenHeightintscreenPixelCount(package private) intscreenWidthbooleanslabEnabled(package private) intslabPercentSetting(package private) javajs.util.P4slabPlane(package private) floatslabRangeintslabValuefloatspinFpsprivate booleanspinIsGesturebooleanspinOnJmolThreadspinThreadfloatspinXfloatspinYfloatspinZ(package private) int[]stereoColors(package private) floatstereoDegrees(package private) booleanstereoDoubleDTI(package private) booleanstereoDoubleFull(package private) booleanstereoFrame(package private) STERstereoMode(package private) floatstereoRadiansprotected javajs.util.P3untransformedPointprivate booleanuseZoomLargeprivate javajs.util.V3vectorTprivate javajs.util.V3vectorT2protected javajs.util.V3vectorTempbooleanvibrationOn(package private) floatvibrationPeriodintvibrationPeriodMsprivate floatvibrationScaleprivate javajs.util.P3vibrationTJmolThreadvibrationThreadfloatvisualRangeAngstromsprotected ViewervwrintwidthbooleanwindowCentered(package private) floatxTranslationFraction(package private) floatyTranslationFractionintzDepthPercentSettingintzDepthValuefloatzmPctzoom percent zmPct is the current displayed zoom value, AFTER rendering; may not be the same as zmPctSet, particularly if zoom is not enabled(package private) floatzmPctSetzoom percent setting the current setting of zoom; may not be the same as zmPct, particularly if zoom is not enabledbooleanzoomEnabledfloatzoomFactorprivate booleanzoomHeightprivate floatzoomRatiobooleanzShadeEnabledintzSlabPercentSettingjavajs.util.P3zSlabPointintzSlabValue
-
Constructor Summary
Constructors Constructor Description TransformManager()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddZoomTranslationNavigationText(javajs.util.SB sb)(package private) intangstromsToPixels(float distance)private javajs.util.P3iapplyPerspective(javajs.util.T3 ptXYZ, javajs.util.T3 ptRef)adjusts the temporary point for perspective and offsetsprivate voidapplyRotation(javajs.util.M3 mNew, boolean isInternal, BS bsAtoms, javajs.util.V3 translation, boolean translationOnly, javajs.util.M4 m4)voidcalcCameraFactors()sets all camera and scale factors needed by the specific perspective model instantiatedprivate voidcalcNavCameraFactors(float offset100)protected voidcalcNavigationPoint()All the magic happens here.voidcalcSlabAndDepthValues()sets slab and depth, possibly using visual range considerations for setting the slab-clipping plane.voidcalcTransformMatrix()voidcenterAt(int x, int y, javajs.util.P3 pt)(package private) voidclear()private voidclearSpin()(package private) voidclearThreads()private voidclearVibration()floatdefaultScaleToScreen(float radius)(package private) voiddepthByPercentagePoints(int percentage)voiddepthToPercent(int percentDepth)voidfinalizeTransformParameters()floatgetCameraDepth()javajs.util.P3[]getCameraFactors()This method returns data needed by the VRML, X3D, and IDTF/U3D exporters.private java.lang.StringgetCenterText()java.lang.StringgetMoveToText(float timespan, boolean addComments)private booleangetNav()javajs.util.P3getNavigationOffset()floatgetNavigationOffsetPercent(char XorY)protected java.lang.StringgetNavigationState()protected java.lang.StringgetNavigationText(boolean addComments)floatgetNavPtHeight()(package private) voidgetNewFixedRotationCenter()(package private) java.util.Map<java.lang.String,java.lang.Object>getOrientationInfo()(package private) java.lang.StringgetOrientationText(int type)booleangetPerspectiveDepth()floatgetPerspectiveFactor(float z)calculate the perspective factor based on zprivate java.lang.StringgetRotateXyzText()private java.lang.StringgetRotateZyzText(boolean iAddComment)voidgetRotation(javajs.util.M3 m)javajs.util.QuatgetRotationQ()(package private) java.lang.StringgetRotationText()protected voidgetScreenTemp(javajs.util.T3 ptXYZ)private javajs.util.P4getSlabDepthPlane(boolean isDepth)intgetSlabPercentSetting()(package private) javajs.util.M3getStereoRotationMatrix(boolean stereoFrame)(package private) static TransformManagergetTransformManager(Viewer vwr, int width, int height, boolean is4D)java.lang.StringgetTranslationScript()floatgetTranslationXPercent()floatgetTranslationYPercent()javajs.util.T3getVibrationPoint(Vibration v, javajs.util.T3 pt, float scale)returnfloatgetZoomSetting()voidhomePosition(boolean resetSpin)booleanisInPosition(javajs.util.V3 axis, float degrees)booleanisNavigating()(package private) booleanisVibrationOn()booleanisWindowCentered()(package private) voidmove(JmolScriptEvaluator eval, javajs.util.V3 dRot, float dZoom, javajs.util.V3 dTrans, float dSlab, float floatSecondsTotal, int fps)voidmoveRotationCenter(javajs.util.P3 center, boolean toXY)(package private) voidmoveTo(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)booleanmoveToPyMOL(JmolScriptEvaluator eval, float floatSecondsTotal, float[] pymolView)voidnavigateAxis(javajs.util.V3 rotAxis, float degrees)scripted entry point for navigation(package private) voidnavigateKey(int keyCode, int modifiers)entry point for keyboard-based navigationvoidnavigateList(JmolScriptEvaluator eval, javajs.util.Lst<java.lang.Object[]> list)private voidnavInterrupt()voidnavTranslatePercentOrTo(float seconds, float x, float y)seconds < 0 means "to (x,y)"; >= 0 mean "to (x%, y%)"intpercentToPixels(char xyz, float percent)private voidresetFitToScreen(boolean andCenter)protected voidresetNavigationPoint(boolean doResetSlab)something has arisen that requires resetting of the navigation point.voidresetRotation()private voidresetXYCenter(int x, int y)protected voidrotate3DBall(float xDeg, float yDeg, BS bsAtoms)(package private) booleanrotateAboutPointsInternal(JmolScriptEvaluator eval, javajs.util.T3 point1, javajs.util.T3 point2, float degreesPerSecond, float endDegrees, boolean isClockwise, boolean isSpin, BS bsAtoms, boolean isGesture, javajs.util.V3 translation, javajs.util.Lst<javajs.util.P3> finalPoints, float[] dihedralList, javajs.util.M4 m4)voidrotateAxisAngle(javajs.util.V3 rotAxis, float radians)private voidrotateAxisAngle2(javajs.util.A4 axisAngle, BS bsAtoms)(package private) booleanrotateAxisAngleAtCenter(JmolScriptEvaluator eval, javajs.util.P3 rotCenter, javajs.util.V3 rotAxis, float degreesPerSecond, float endDegrees, boolean isSpin, BS bsAtoms)voidrotateAxisAngleRadiansFixed(float angleRadians, BS bsAtoms)voidrotateAxisAngleRadiansInternal(float radians, BS bsAtoms, javajs.util.M4 m4)voidrotatePoint(javajs.util.T3 pt, javajs.util.T3 ptRot)voidrotateXRadians(float angleRadians, BS bsAtoms)protected voidrotateXYBy(float degX, float degY, BS bsAtoms)voidrotateYRadians(float angleRadians, BS bsAtoms)(package private) voidrotateZBy(int zDelta, int x, int y)voidrotateZRadians(float angleRadians)(package private) voidscaleFitToScreen(boolean andCenter, boolean zoomLarge, boolean resetSlab, boolean resetZoom)floatscaleToPerspective(int z, float sizeAngstroms)floatscaleToScreen(int z, int milliAngstroms)voidsetAll(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) voidsetAntialias(boolean TF)voidsetCamera(float x, float y)voidsetCameraDepthPercent(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) voidsetCenter()voidsetCenterAt(int relativeTo, javajs.util.P3 pt)(package private) voidsetDefaultPerspective()private voidsetFixedRotationCenter(javajs.util.T3 center)(package private) voidsetFrameOffset(int modelIndex)protected voidsetNavFps(int navFps)voidsetNavigatePt(javajs.util.P3 pt)scripted entry point for navigationvoidsetNavigationDepthPercent(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) voidsetNavigationMode(boolean TF)voidsetNavigationOffsetRelative()(package private) voidsetNavigationSlabOffsetPercent(float percent)voidsetNavOn(boolean navOn)voidsetNavXYZ(float x, float y, float z)(package private) voidsetNewRotationCenter(javajs.util.P3 center, boolean doScale)(package private) voidsetPerspectiveDepth(boolean perspectiveDepth)voidsetRotation(javajs.util.M3 m)private voidsetRotationCenterAndRadiusXYZ(javajs.util.T3 newCenterOfRotation, boolean andRadius)(package private) voidsetRotationPointXY(javajs.util.P3 center)floatsetRotationRadius(float angstroms, boolean doAll)(package private) voidsetScaleAngstromsPerInch(float angstromsPerInch)(package private) voidsetScreenParameters(int screenWidth, int screenHeight, boolean useZoomLarge, boolean antialias, boolean resetSlab, boolean resetZoom)private voidsetScreenParameters0(int screenWidth, int screenHeight, boolean useZoomLarge, boolean antialias, boolean resetSlab, boolean resetZoom)(package private) voidsetSelectedTranslation(BS bsAtoms, char xyz, int xy)voidsetSlabDepthInternal(boolean isDepth)set internal slab or depth from screen-based slab or depth(package private) voidsetSlabEnabled(boolean slabEnabled)voidsetSlabRange(float value)private voidsetSpin(JmolScriptEvaluator eval, boolean spinOn, float endDegrees, javajs.util.Lst<javajs.util.P3> endPositions, float[] dihedralList, BS bsAtoms, boolean isGesture)(package private) voidsetSpinFps(int value)voidsetSpinOff()voidsetSpinOn()(package private) voidsetSpinXYZ(float x, float y, float z)(package private) voidsetStereoDegrees(float stereoDegrees)(package private) voidsetStereoMode(STER stereoMode)(package private) voidsetStereoMode2(int[] twoColors)(package private) voidsetTranslationFractions()private voidsetVibrationOn(boolean vibrationOn)voidsetVibrationPeriod(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) voidsetVibrationScale(float scale)voidsetVibrationT(float t)(package private) voidsetWindowCentered(boolean TF)(package private) voidsetZoomEnabled(boolean zoomEnabled)voidsetZoomHeight(boolean zoomHeight, boolean zoomLarge)(package private) voidsetZShadeEnabled(boolean zShadeEnabled)(package private) voidslabByPercentagePoints(int percentage)(package private) voidslabDepthByPercentagePoints(int percentage)private voidslabDepthChanged()voidslabInternal(javajs.util.P4 plane, boolean isDepth)voidslabReset()voidslabToPercent(int percentSlab)(package private) voidspinXYBy(int xDelta, int yDelta, float speed)voidstopMotion()javajs.util.P3itransformPt(javajs.util.T3 ptXYZ)CAUTION! returns a POINTER TO A TEMPORARY VARIABLEjavajs.util.P3itransformPt2D(javajs.util.T3 ptXyp)voidtransformPt3f(javajs.util.T3 ptXYZ, javajs.util.P3 screen)voidtransformPtNoClip(javajs.util.T3 ptXYZ, javajs.util.T3 pointScreen)voidtransformPtScr(javajs.util.T3 ptXYZ, javajs.util.P3i pointScreen)voidtransformPtScrT3(javajs.util.T3 ptXYZ, javajs.util.T3 pointScreen)javajs.util.P3itransformPtVib(javajs.util.P3 ptXYZ, Vibration v)voidtranslateToPercent(char type, float percent)(package private) voidtranslateXYBy(int xDelta, int yDelta)(package private) voidtranslateZBy(int pixels)private static voidtruncate0(javajs.util.SB sb, float val)private static voidtruncate2(javajs.util.SB sb, float val)floatunscaleToScreen(float z, float screenDistance)voidunTransformPoint(javajs.util.T3 screenPt, javajs.util.T3 coordPt)booleanxyzIsSlabbedInternal(javajs.util.T3 ptRef)(package private) voidzDepthToPercent(int percentDepth)protected voidzoomBy(int pixels)standard response to user mouse vertical shift-drag(package private) voidzoomByFactor(float factor, int x, int y)(package private) voidzoomByPercent(float percentZoom)voidzoomToPercent(float percentZoom)(package private) voidzSlabToPercent(int percentSlab)intzValueFromPercent(int zPercent)
-
-
-
Field Detail
-
vwr
protected Viewer vwr
-
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
-
DEFAULT_NAV_FPS
static final int DEFAULT_NAV_FPS
- See Also:
- Constant Field Values
-
DEFAULT_VISUAL_RANGE
public static final float DEFAULT_VISUAL_RANGE
- See Also:
- Constant Field Values
-
DEFAULT_STEREO_DEGREES
public static final int DEFAULT_STEREO_DEGREES
- See Also:
- Constant Field Values
-
MODE_STANDARD
public static final int MODE_STANDARD
- See Also:
- Constant Field Values
-
MODE_NAVIGATION
public static final int MODE_NAVIGATION
- See Also:
- Constant Field Values
-
MODE_PERSPECTIVE_PYMOL
public static final int MODE_PERSPECTIVE_PYMOL
- See Also:
- Constant Field Values
-
DEFAULT_PERSPECTIVE_MODEL
static final int DEFAULT_PERSPECTIVE_MODEL
- See Also:
- Constant Field Values
-
DEFAULT_PERSPECTIVE_DEPTH
static final boolean DEFAULT_PERSPECTIVE_DEPTH
- See Also:
- Constant Field Values
-
DEFAULT_CAMERA_DEPTH
static final float DEFAULT_CAMERA_DEPTH
- See Also:
- Constant Field Values
-
movetoThread
public JmolThread movetoThread
-
vibrationThread
public JmolThread vibrationThread
-
spinThread
public JmolThread spinThread
-
degreesPerRadian
public static final double degreesPerRadian
- See Also:
- Constant Field Values
-
perspectiveModel
protected int perspectiveModel
-
cameraScaleFactor
protected float cameraScaleFactor
-
referencePlaneOffset
public float referencePlaneOffset
-
aperatureAngle
protected float aperatureAngle
-
cameraDistanceFromCenter
protected float cameraDistanceFromCenter
-
modelCenterOffset
public float modelCenterOffset
-
modelRadius
public float modelRadius
-
modelRadiusPixels
public float modelRadiusPixels
-
navigationCenter
public final javajs.util.P3 navigationCenter
-
navigationOffset
public final javajs.util.P3 navigationOffset
-
navigationShiftXY
public final javajs.util.P3 navigationShiftXY
-
navigationDepthPercent
public float navigationDepthPercent
-
matrixTemp
protected final javajs.util.M4 matrixTemp
-
vectorTemp
protected final javajs.util.V3 vectorTemp
-
haveNotifiedNaN
protected boolean haveNotifiedNaN
-
spinX
public float spinX
-
spinY
public float spinY
-
spinZ
public float spinZ
-
spinFps
public float spinFps
-
navX
public float navX
-
navY
public float navY
-
navZ
public float navZ
-
navFps
public float navFps
-
isSpinInternal
public boolean isSpinInternal
-
isSpinFixed
public boolean isSpinFixed
-
isSpinSelected
boolean isSpinSelected
-
doTransform4D
protected boolean doTransform4D
-
fixedRotationOffset
public final javajs.util.P3 fixedRotationOffset
-
fixedRotationCenter
public final javajs.util.P3 fixedRotationCenter
-
perspectiveOffset
protected final javajs.util.P3 perspectiveOffset
-
perspectiveShiftXY
protected final javajs.util.P3 perspectiveShiftXY
-
rotationCenterDefault
private final javajs.util.P3 rotationCenterDefault
-
rotationRadiusDefault
private float rotationRadiusDefault
-
fixedRotationAxis
public final javajs.util.A4 fixedRotationAxis
-
internalRotationAxis
public final javajs.util.A4 internalRotationAxis
-
internalTranslation
protected javajs.util.V3 internalTranslation
-
internalRotationCenter
final javajs.util.P3 internalRotationCenter
-
internalRotationAngle
private float internalRotationAngle
-
matrixRotate
public final javajs.util.M3 matrixRotate
-
matrixTemp3
protected final javajs.util.M3 matrixTemp3
-
matrixTemp4
private final javajs.util.M4 matrixTemp4
-
axisangleT
private final javajs.util.A4 axisangleT
-
vectorT
private final javajs.util.V3 vectorT
-
vectorT2
private final javajs.util.V3 vectorT2
-
pointT2
private final javajs.util.P3 pointT2
-
MAXIMUM_ZOOM_PERCENTAGE
public static final int MAXIMUM_ZOOM_PERCENTAGE
- See Also:
- Constant Field Values
-
MAXIMUM_ZOOM_PERSPECTIVE_DEPTH
private static final int MAXIMUM_ZOOM_PERSPECTIVE_DEPTH
- See Also:
- Constant Field Values
-
rotationAxis
javajs.util.V3 rotationAxis
-
rotationRate
float rotationRate
-
fixedTranslation
public final javajs.util.P3 fixedTranslation
-
camera
public final javajs.util.P3 camera
-
cameraSetting
public final javajs.util.P3 cameraSetting
-
xTranslationFraction
float xTranslationFraction
-
yTranslationFraction
float yTranslationFraction
-
prevZoomSetting
protected float prevZoomSetting
-
previousX
public float previousX
-
previousY
public float previousY
-
zoomEnabled
public boolean zoomEnabled
-
zmPct
public float zmPct
zoom percent zmPct is the current displayed zoom value, AFTER rendering; may not be the same as zmPctSet, particularly if zoom is not enabled
-
zmPctSet
float zmPctSet
zoom percent setting the current setting of zoom; may not be the same as zmPct, particularly if zoom is not enabled
-
zoomRatio
private float zoomRatio
-
slabEnabled
public boolean slabEnabled
-
zShadeEnabled
public boolean zShadeEnabled
-
internalSlab
public boolean internalSlab
-
slabPercentSetting
int slabPercentSetting
-
depthPercentSetting
int depthPercentSetting
-
slabValue
public int slabValue
-
depthValue
public int depthValue
-
zSlabPercentSetting
public int zSlabPercentSetting
-
zDepthPercentSetting
public int zDepthPercentSetting
-
zSlabPoint
public javajs.util.P3 zSlabPoint
-
zSlabValue
public int zSlabValue
-
zDepthValue
public int zDepthValue
-
slabRange
float slabRange
-
slabPlane
javajs.util.P4 slabPlane
-
depthPlane
javajs.util.P4 depthPlane
-
perspectiveDepth
public boolean perspectiveDepth
-
scale3D
protected boolean scale3D
-
cameraDepth
protected float cameraDepth
-
cameraDepthSetting
protected float cameraDepthSetting
-
visualRangeAngstroms
public float visualRangeAngstroms
-
cameraDistance
public float cameraDistance
-
width
public int width
-
height
public int height
-
screenPixelCount
public int screenPixelCount
-
scalePixelsPerAngstrom
float scalePixelsPerAngstrom
-
scaleDefaultPixelsPerAngstrom
public float scaleDefaultPixelsPerAngstrom
-
scale3DAngstromsPerInch
float scale3DAngstromsPerInch
-
antialias
protected boolean antialias
-
useZoomLarge
private boolean useZoomLarge
-
zoomHeight
private boolean zoomHeight
-
screenWidth
int screenWidth
-
screenHeight
int screenHeight
-
matrixTransform
public final javajs.util.M4 matrixTransform
-
matrixTransformInv
public final javajs.util.M4 matrixTransformInv
-
fScrPt
protected final javajs.util.P3 fScrPt
-
iScrPt
protected final javajs.util.P3i iScrPt
-
ptVibTemp
final Point3fi ptVibTemp
-
navigating
public boolean navigating
-
mode
public int mode
-
defaultMode
public int defaultMode
-
untransformedPoint
protected final javajs.util.P3 untransformedPoint
-
ptTest1
protected final javajs.util.P3 ptTest1
-
ptTest2
protected final javajs.util.P3 ptTest2
-
ptTest3
protected final javajs.util.P3 ptTest3
-
aaTest1
protected final javajs.util.A4 aaTest1
-
matrixTest
protected final javajs.util.M3 matrixTest
-
spinOn
public boolean spinOn
-
navOn
public boolean navOn
-
spinIsGesture
private boolean spinIsGesture
-
vibrationOn
public boolean vibrationOn
-
vibrationPeriod
float vibrationPeriod
-
vibrationPeriodMs
public int vibrationPeriodMs
-
vibrationScale
private float vibrationScale
-
vibrationT
private javajs.util.P3 vibrationT
-
stereoMode
STER stereoMode
-
stereoColors
int[] stereoColors
-
stereoDoubleDTI
boolean stereoDoubleDTI
-
stereoDoubleFull
boolean stereoDoubleFull
-
stereoDegrees
float stereoDegrees
-
stereoRadians
float stereoRadians
-
stereoFrame
boolean stereoFrame
-
matrixStereo
protected final javajs.util.M3 matrixStereo
-
windowCentered
public boolean windowCentered
-
frameOffset
final javajs.util.P3 frameOffset
-
frameOffsets
javajs.util.P3[] frameOffsets
-
bsFrameOffsets
public BS bsFrameOffsets
-
bsSelectedAtoms
BS bsSelectedAtoms
-
ptOffset
javajs.util.P3 ptOffset
-
NAV_MODE_IGNORE
public static final int NAV_MODE_IGNORE
- See Also:
- Constant Field Values
-
NAV_MODE_ZOOMED
public static final int NAV_MODE_ZOOMED
- See Also:
- Constant Field Values
-
NAV_MODE_NONE
public static final int NAV_MODE_NONE
- See Also:
- Constant Field Values
-
NAV_MODE_RESET
public static final int NAV_MODE_RESET
- See Also:
- Constant Field Values
-
NAV_MODE_NEWXY
public static final int NAV_MODE_NEWXY
- See Also:
- Constant Field Values
-
NAV_MODE_NEWXYZ
public static final int NAV_MODE_NEWXYZ
- See Also:
- Constant Field Values
-
NAV_MODE_NEWZ
public static final int NAV_MODE_NEWZ
- See Also:
- Constant Field Values
-
navMode
public int navMode
-
zoomFactor
public float zoomFactor
-
navigationSlabOffset
public float navigationSlabOffset
-
nav
private JmolNavigatorInterface nav
-
-
Method Detail
-
getTransformManager
static TransformManager getTransformManager(Viewer vwr, int width, int height, boolean is4D)
-
setDefaultPerspective
void setDefaultPerspective()
-
homePosition
public void homePosition(boolean resetSpin)
-
setRotation
public void setRotation(javajs.util.M3 m)
-
resetRotation
public void resetRotation()
-
clearThreads
void clearThreads()
-
clear
void clear()
-
setFixedRotationCenter
private void setFixedRotationCenter(javajs.util.T3 center)
-
setRotationPointXY
void setRotationPointXY(javajs.util.P3 center)
-
spinXYBy
void spinXYBy(int xDelta, int yDelta, float speed)
-
rotateXYBy
protected void rotateXYBy(float degX, float degY, BS bsAtoms)
-
rotateZBy
void rotateZBy(int zDelta, int x, int y)
-
applyRotation
private void applyRotation(javajs.util.M3 mNew, boolean isInternal, BS bsAtoms, javajs.util.V3 translation, boolean translationOnly, javajs.util.M4 m4)
-
rotate3DBall
protected void rotate3DBall(float xDeg, float yDeg, BS bsAtoms)
-
rotateXRadians
public void rotateXRadians(float angleRadians, BS bsAtoms)
-
rotateYRadians
public void rotateYRadians(float angleRadians, BS bsAtoms)
-
rotateZRadians
public void rotateZRadians(float angleRadians)
-
rotateAxisAngle
public void rotateAxisAngle(javajs.util.V3 rotAxis, float radians)
-
rotateAxisAngle2
private void rotateAxisAngle2(javajs.util.A4 axisAngle, BS bsAtoms)
-
rotateAxisAngleAtCenter
boolean rotateAxisAngleAtCenter(JmolScriptEvaluator eval, javajs.util.P3 rotCenter, javajs.util.V3 rotAxis, float degreesPerSecond, float endDegrees, boolean isSpin, BS bsAtoms)
-
rotateAxisAngleRadiansFixed
public void rotateAxisAngleRadiansFixed(float angleRadians, BS bsAtoms)
-
rotateAboutPointsInternal
boolean rotateAboutPointsInternal(JmolScriptEvaluator eval, javajs.util.T3 point1, javajs.util.T3 point2, float degreesPerSecond, float endDegrees, boolean isClockwise, boolean isSpin, BS bsAtoms, boolean isGesture, javajs.util.V3 translation, javajs.util.Lst<javajs.util.P3> finalPoints, float[] dihedralList, javajs.util.M4 m4)
- Parameters:
eval-point1-point2-degreesPerSecond-endDegrees-isClockwise-isSpin-bsAtoms-isGesture-translation-finalPoints-dihedralList-m4-- Returns:
- true if synchronous so that JavaScript can restart properly
-
rotateAxisAngleRadiansInternal
public void rotateAxisAngleRadiansInternal(float radians, BS bsAtoms, javajs.util.M4 m4)
-
getNewFixedRotationCenter
void getNewFixedRotationCenter()
-
setTranslationFractions
void setTranslationFractions()
-
centerAt
public void centerAt(int x, int y, javajs.util.P3 pt)
-
percentToPixels
public int percentToPixels(char xyz, float percent)
-
angstromsToPixels
int angstromsToPixels(float distance)
-
translateXYBy
void translateXYBy(int xDelta, int yDelta)
-
setCamera
public void setCamera(float x, float y)
-
translateToPercent
public void translateToPercent(char type, float percent)
-
getTranslationXPercent
public float getTranslationXPercent()
-
getTranslationYPercent
public float getTranslationYPercent()
-
getTranslationScript
public java.lang.String getTranslationScript()
-
getOrientationText
java.lang.String getOrientationText(int type)
-
getRotationQ
public javajs.util.Quat getRotationQ()
-
getOrientationInfo
java.util.Map<java.lang.String,java.lang.Object> getOrientationInfo()
-
getRotation
public void getRotation(javajs.util.M3 m)
-
setZoomHeight
public void setZoomHeight(boolean zoomHeight, boolean zoomLarge)
-
zoomBy
protected void zoomBy(int pixels)
standard response to user mouse vertical shift-drag- Parameters:
pixels-
-
zoomByFactor
void zoomByFactor(float factor, int x, int y)
-
zoomToPercent
public void zoomToPercent(float percentZoom)
-
translateZBy
void translateZBy(int pixels)
-
resetXYCenter
private void resetXYCenter(int x, int y)
-
zoomByPercent
void zoomByPercent(float percentZoom)
-
setScaleAngstromsPerInch
void setScaleAngstromsPerInch(float angstromsPerInch)
-
setSlabRange
public void setSlabRange(float value)
-
setSlabEnabled
void setSlabEnabled(boolean slabEnabled)
-
setZShadeEnabled
void setZShadeEnabled(boolean zShadeEnabled)
-
setZoomEnabled
void setZoomEnabled(boolean zoomEnabled)
-
slabReset
public void slabReset()
-
getSlabPercentSetting
public int getSlabPercentSetting()
-
slabDepthChanged
private void slabDepthChanged()
-
slabByPercentagePoints
void slabByPercentagePoints(int percentage)
-
depthByPercentagePoints
void depthByPercentagePoints(int percentage)
-
slabDepthByPercentagePoints
void slabDepthByPercentagePoints(int percentage)
-
slabToPercent
public void slabToPercent(int percentSlab)
-
depthToPercent
public void depthToPercent(int percentDepth)
-
zSlabToPercent
void zSlabToPercent(int percentSlab)
-
zDepthToPercent
void zDepthToPercent(int percentDepth)
-
slabInternal
public void slabInternal(javajs.util.P4 plane, boolean isDepth)
-
setSlabDepthInternal
public void setSlabDepthInternal(boolean isDepth)
set internal slab or depth from screen-based slab or depth- Parameters:
isDepth-
-
getSlabDepthPlane
private javajs.util.P4 getSlabDepthPlane(boolean isDepth)
-
getCameraFactors
public javajs.util.P3[] 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
-
setPerspectiveDepth
void setPerspectiveDepth(boolean perspectiveDepth)
-
getPerspectiveDepth
public boolean getPerspectiveDepth()
-
setCameraDepthPercent
public 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- Parameters:
percent-resetSlab-
-
getCameraDepth
public float getCameraDepth()
-
setScreenParameters0
private void setScreenParameters0(int screenWidth, int screenHeight, boolean useZoomLarge, boolean antialias, boolean resetSlab, boolean resetZoom)
-
setAntialias
void setAntialias(boolean TF)
-
defaultScaleToScreen
public float defaultScaleToScreen(float radius)
-
resetFitToScreen
private void resetFitToScreen(boolean andCenter)
-
scaleFitToScreen
void scaleFitToScreen(boolean andCenter, boolean zoomLarge, boolean resetSlab, boolean resetZoom)
-
scaleToScreen
public float scaleToScreen(int z, int milliAngstroms)
-
unscaleToScreen
public float unscaleToScreen(float z, float screenDistance)
-
scaleToPerspective
public float scaleToPerspective(int z, float sizeAngstroms)
-
setNavigationMode
void setNavigationMode(boolean TF)
-
isNavigating
public boolean isNavigating()
-
finalizeTransformParameters
public void finalizeTransformParameters()
-
getZoomSetting
public float getZoomSetting()
-
calcSlabAndDepthValues
public 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
public int zValueFromPercent(int zPercent)
-
calcTransformMatrix
public void calcTransformMatrix()
-
rotatePoint
public void rotatePoint(javajs.util.T3 pt, javajs.util.T3 ptRot)
-
getScreenTemp
protected void getScreenTemp(javajs.util.T3 ptXYZ)
-
transformPtScr
public void transformPtScr(javajs.util.T3 ptXYZ, javajs.util.P3i pointScreen)
-
transformPtScrT3
public void transformPtScrT3(javajs.util.T3 ptXYZ, javajs.util.T3 pointScreen)
-
transformPt3f
public void transformPt3f(javajs.util.T3 ptXYZ, javajs.util.P3 screen)
-
transformPtNoClip
public void transformPtNoClip(javajs.util.T3 ptXYZ, javajs.util.T3 pointScreen)
-
transformPt
public javajs.util.P3i transformPt(javajs.util.T3 ptXYZ)
CAUTION! returns a POINTER TO A TEMPORARY VARIABLE- Parameters:
ptXYZ-- Returns:
- POINTER TO point3iScreenTemp
-
transformPtVib
public javajs.util.P3i transformPtVib(javajs.util.P3 ptXYZ, Vibration v)- Parameters:
ptXYZ-v-- Returns:
- POINTER TO TEMPORARY VARIABLE (caution!) point3iScreenTemp
-
getVibrationPoint
public javajs.util.T3 getVibrationPoint(Vibration v, javajs.util.T3 pt, float scale)
return- Parameters:
v-pt- temporary value; also returnedscale-- Returns:
- pt
-
transformPt2D
public javajs.util.P3i transformPt2D(javajs.util.T3 ptXyp)
-
applyPerspective
private javajs.util.P3i applyPerspective(javajs.util.T3 ptXYZ, javajs.util.T3 ptRef)adjusts the temporary point for perspective and offsets- Parameters:
ptXYZ-ptRef-- Returns:
- temporary point!!!
-
xyzIsSlabbedInternal
public boolean xyzIsSlabbedInternal(javajs.util.T3 ptRef)
-
move
void move(JmolScriptEvaluator eval, javajs.util.V3 dRot, float dZoom, javajs.util.V3 dTrans, float dSlab, float floatSecondsTotal, int fps)
-
isInPosition
public boolean isInPosition(javajs.util.V3 axis, float degrees)
-
moveToPyMOL
public boolean moveToPyMOL(JmolScriptEvaluator eval, float floatSecondsTotal, float[] pymolView)
-
moveTo
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)
-
setAll
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)
-
stopMotion
public void stopMotion()
-
getRotationText
java.lang.String getRotationText()
-
getMoveToText
public java.lang.String getMoveToText(float timespan, boolean addComments)
-
getCenterText
private java.lang.String getCenterText()
-
getRotateXyzText
private java.lang.String getRotateXyzText()
-
addZoomTranslationNavigationText
private void addZoomTranslationNavigationText(javajs.util.SB sb)
-
getRotateZyzText
private java.lang.String getRotateZyzText(boolean iAddComment)
-
truncate0
private static void truncate0(javajs.util.SB sb, float val)
-
truncate2
private static void truncate2(javajs.util.SB sb, float val)
-
setSpinXYZ
void setSpinXYZ(float x, float y, float z)
-
setSpinFps
void setSpinFps(int value)
-
setNavXYZ
public void setNavXYZ(float x, float y, float z)
-
clearSpin
private void clearSpin()
-
setSpinOn
public void setSpinOn()
-
setSpinOff
public void setSpinOff()
-
setSpin
private void setSpin(JmolScriptEvaluator eval, boolean spinOn, float endDegrees, javajs.util.Lst<javajs.util.P3> endPositions, float[] dihedralList, BS bsAtoms, boolean isGesture)
-
setNavOn
public void setNavOn(boolean navOn)
-
setVibrationScale
void setVibrationScale(float scale)
-
setVibrationPeriod
public 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
public void setVibrationT(float t)
-
isVibrationOn
boolean isVibrationOn()
-
setVibrationOn
private void setVibrationOn(boolean vibrationOn)
-
clearVibration
private void clearVibration()
-
setStereoMode2
void setStereoMode2(int[] twoColors)
-
setStereoMode
void setStereoMode(STER stereoMode)
-
setStereoDegrees
void setStereoDegrees(float stereoDegrees)
-
getStereoRotationMatrix
javajs.util.M3 getStereoRotationMatrix(boolean stereoFrame)
-
isWindowCentered
public boolean isWindowCentered()
-
setWindowCentered
void setWindowCentered(boolean TF)
-
setRotationRadius
public float setRotationRadius(float angstroms, boolean doAll)
-
setRotationCenterAndRadiusXYZ
private void setRotationCenterAndRadiusXYZ(javajs.util.T3 newCenterOfRotation, boolean andRadius)
-
setNewRotationCenter
void setNewRotationCenter(javajs.util.P3 center, boolean doScale)
-
moveRotationCenter
public void moveRotationCenter(javajs.util.P3 center, boolean toXY)
-
setCenter
void setCenter()
-
setCenterAt
public void setCenterAt(int relativeTo, javajs.util.P3 pt)
-
setFrameOffset
void setFrameOffset(int modelIndex)
-
setSelectedTranslation
void setSelectedTranslation(BS bsAtoms, char xyz, int xy)
-
setNavFps
protected void setNavFps(int navFps)
-
calcCameraFactors
public void calcCameraFactors()
sets all camera and scale factors needed by the specific perspective model instantiated
-
calcNavCameraFactors
private void calcNavCameraFactors(float offset100)
-
getPerspectiveFactor
public float getPerspectiveFactor(float z)
calculate the perspective factor based on z- Parameters:
z-- Returns:
- perspectiveFactor
-
unTransformPoint
public void unTransformPoint(javajs.util.T3 screenPt, javajs.util.T3 coordPt)
-
resetNavigationPoint
protected void resetNavigationPoint(boolean doResetSlab)
something has arisen that requires resetting of the navigation point.- Parameters:
doResetSlab-
-
setNavigatePt
public void setNavigatePt(javajs.util.P3 pt)
scripted entry point for navigation- Parameters:
pt-
-
setNavigationSlabOffsetPercent
void setNavigationSlabOffsetPercent(float percent)
-
getNavigationOffset
public javajs.util.P3 getNavigationOffset()
-
getNavPtHeight
public float getNavPtHeight()
-
getNavigationOffsetPercent
public float getNavigationOffsetPercent(char XorY)
-
getNavigationText
protected java.lang.String getNavigationText(boolean addComments)
-
setScreenParameters
void setScreenParameters(int screenWidth, int screenHeight, boolean useZoomLarge, boolean antialias, boolean resetSlab, boolean resetZoom)
-
navInterrupt
private void navInterrupt()
-
getNav
private boolean getNav()
-
navigateList
public void navigateList(JmolScriptEvaluator eval, javajs.util.Lst<java.lang.Object[]> list)
-
navigateAxis
public void navigateAxis(javajs.util.V3 rotAxis, float degrees)scripted entry point for navigation- Parameters:
rotAxis-degrees-
-
setNavigationOffsetRelative
public void setNavigationOffsetRelative()
-
navigateKey
void navigateKey(int keyCode, int modifiers)entry point for keyboard-based navigation- Parameters:
keyCode- 0 indicates key releasedmodifiers- shift,alt,ctrl
-
setNavigationDepthPercent
public 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)- Parameters:
percent-
-
navTranslatePercentOrTo
public void navTranslatePercentOrTo(float seconds, float x, float y)seconds < 0 means "to (x,y)"; >= 0 mean "to (x%, y%)"- Parameters:
seconds-x-y-
-
calcNavigationPoint
protected void calcNavigationPoint()
All the magic happens here. all navigation effects go through this method
-
getNavigationState
protected java.lang.String getNavigationState()
- Returns:
- the script that defines the current navigation state
-
-