UNPKG

biojs-vis-pdbviewer

Version:

A BioJS 2.0 component to view protein structures

78 lines (77 loc) 2.99 kB
Clazz.declarePackage ("JM"); Clazz.load (["JU.M3", "$.P3"], "JM.Orientation", ["JU.PT", "JU.Escape"], function () { c$ = Clazz.decorateAsClass (function () { this.saveName = null; this.rotationMatrix = null; this.xTrans = 0; this.yTrans = 0; this.zoom = 0; this.rotationRadius = 0; this.center = null; this.navCenter = null; this.xNav = NaN; this.yNav = NaN; this.navDepth = NaN; this.cameraDepth = NaN; this.cameraX = NaN; this.cameraY = NaN; this.windowCenteredFlag = false; this.navigationMode = false; this.moveToText = null; this.pymolView = null; this.vwr = null; Clazz.instantialize (this, arguments); }, JM, "Orientation"); Clazz.prepareFields (c$, function () { this.rotationMatrix = new JU.M3 (); this.center = new JU.P3 (); this.navCenter = new JU.P3 (); }); Clazz.makeConstructor (c$, function (vwr, asDefault, pymolView) { this.vwr = vwr; if (pymolView != null) { this.pymolView = pymolView; this.moveToText = "moveTo -1.0 PyMOL " + JU.Escape.eAF (pymolView); return; }vwr.finalizeTransformParameters (); if (asDefault) { var rot = vwr.ms.getInfoM ("defaultOrientationMatrix"); if (rot == null) this.rotationMatrix.setScale (1); else this.rotationMatrix.setM3 (rot); } else { vwr.tm.getRotation (this.rotationMatrix); }this.xTrans = vwr.tm.getTranslationXPercent (); this.yTrans = vwr.tm.getTranslationYPercent (); this.zoom = vwr.tm.getZoomSetting (); this.center.setT (vwr.tm.getRotationCenter ()); this.windowCenteredFlag = vwr.tm.isWindowCentered (); this.rotationRadius = vwr.getFloat (570425388); this.navigationMode = vwr.getBoolean (603979887); this.moveToText = vwr.tm.getMoveToText (-1, false); if (this.navigationMode) { this.xNav = vwr.tm.getNavigationOffsetPercent ('X'); this.yNav = vwr.tm.getNavigationOffsetPercent ('Y'); this.navDepth = vwr.tm.getNavigationDepthPercent (); this.navCenter = JU.P3.newP (vwr.tm.getNavigationCenter ()); }if (vwr.tm.camera.z != 0) { this.cameraDepth = vwr.tm.getCameraDepth (); this.cameraX = vwr.tm.camera.x; this.cameraY = vwr.tm.camera.y; }}, "JV.Viewer,~B,~A"); Clazz.defineMethod (c$, "getMoveToText", function (asCommand) { return (asCommand ? " " + this.moveToText + "\n save orientation " + JU.PT.esc (this.saveName.substring (12)) + ";\n" : this.moveToText); }, "~B"); Clazz.defineMethod (c$, "restore", function (timeSeconds, isAll) { if (isAll) { this.vwr.setBooleanProperty ("windowCentered", this.windowCenteredFlag); this.vwr.setBooleanProperty ("navigationMode", this.navigationMode); if (this.pymolView == null) this.vwr.moveTo (this.vwr.eval, timeSeconds, this.center, null, NaN, this.rotationMatrix, this.zoom, this.xTrans, this.yTrans, this.rotationRadius, this.navCenter, this.xNav, this.yNav, this.navDepth, this.cameraDepth, this.cameraX, this.cameraY); else this.vwr.tm.moveToPyMOL (this.vwr.eval, timeSeconds, this.pymolView); } else { this.vwr.tm.setRotation (this.rotationMatrix); }return true; }, "~N,~B"); });