"+e[h].substring(0,4)+" | "),b.push(""+e[h].split("Title>")[1].split("")[0]+" | ");b.push("
"); +if (ptPre >= 0) this.line = this.line.substring(ptPre + 5); +var intTableNo = this.parseIntStr(this.line); +if (intTableNo == 0) { +this.setSpaceGroupName(this.line.substring(2)); +} else { +while (intTableNo < 0 && this.rdLine() != null) intTableNo = this.parseIntStr(this.line); + +this.setSpaceGroupName("" + intTableNo); +}var data = Clazz.newFloatArray (6, 0); +this.fillFloatArray(this.rdLine(), 0, data); +for (var i = 0; i < 6; i++) this.setUnitCellItem(i, data[i]); + +this.i0 = this.asc.ac; +this.nAtoms = this.parseIntStr(this.rdLine()); +for (var i = this.nAtoms; --i >= 0; ) { +var tokens = JU.PT.getTokens(this.rdLine()); +if (!this.getSym && tokens[1].contains("_")) continue; +if (tokens.length == 3) this.addAtomXYZSymName(tokens, 0, "Be", "Be1"); + else this.addAtomXYZSymName(tokens, 3, tokens[0], tokens[0] + tokens[1]); +} +if (Float.isNaN(fAmp)) { +if (ptPre >= 0) this.applySymmetryAndSetTrajectory(); +return; +}this.line = null; +this.readDisplacements(fAmp); +}, "~S,~N"); +Clazz.defineMethod(c$, "setSpaceGroupName", +function(name){ +if (!this.ignoreFileSpaceGroupName) { +name = "bilbao:" + name; +} else if (this.sgName.startsWith(":")) { +var pt = name.indexOf(':'); +if (pt < 0) pt = name.length; +name = name.substring(0, pt); +var s = this.htParams.get("loadScript"); +if (s != null) { +pt = s.indexOf("spacegroup \":"); +if (pt > 0) s.insert(pt + 12, name); +}name += this.sgName; +this.ignoreFileSpaceGroupName = false; +}Clazz.superCall(this, J.adapter.readers.xtal.BilbaoReader, "setSpaceGroupName", [name]); +}, "~S"); +Clazz.defineMethod(c$, "readDisplacements", +function(fAmp){ +for (var i = 0; i < this.nAtoms; i++) { +if (this.line == null) this.rdLine(); +var tokens = JU.PT.split(this.line, "x|x"); +if (this.getSym || !tokens[0].contains("_")) this.asc.atoms[this.i0 + i].vib = JU.V3.new3(this.parseFloatStr(tokens[1]), this.parseFloatStr(tokens[2]), this.parseFloatStr(tokens[3])); +this.line = null; +} +this.applySymmetryAndSetTrajectory(); +for (var i = this.asc.ac; --i >= this.i0; ) { +var a = this.asc.atoms[i]; +if (a.vib != null) { +var v = new JU.Vibration(); +v.setT(a.vib); +a.vib = v; +this.asc.getSymmetry().toCartesian(v, true); +v.scale(1 / fAmp); +}} +this.appendLoadNote((this.asc.ac - this.i0) + " displacements"); +}, "~N"); +Clazz.defineMethod(c$, "setTitle", +function(title){ +if (title != null) { +this.asc.setAtomSetName(title); +this.appendLoadNote(title); +}}, "~S"); +Clazz.defineMethod(c$, "rdLine", +function(){ +while (this.rd() != null && (this.line.trim().length == 0 || this.checkComment())) { +} +return this.line; +}); +Clazz.defineMethod(c$, "readVirtual", +function(){ +if (this.line.contains("K-vector:")) this.kvec = this.line.substring(this.line.indexOf("("), this.line.indexOf(")") + 1); +var s = this.getLinesUntil("\"BCS\""); +var pt = s.indexOf("The amplitude"); +pt = s.indexOf("=", pt); +var amp = s.substring(pt + 2, s.indexOf(" ", pt + 2)); +var fAmp = (this.normDispl ? this.parseFloatStr(amp) : 1); +var irrep = this.getAttr(s, "irrep"); +if (irrep.indexOf(":") >= 0) irrep = irrep.substring(0, irrep.indexOf(":")); +this.line = this.line.substring(this.line.indexOf("value=") + 7); +this.readBilbaoFormat(this.kvec + " " + irrep + " (" + amp + " Ang.)", fAmp); +}); +Clazz.defineMethod(c$, "getAttr", +function(s, key){ +var pt = s.indexOf("value", s.indexOf("\"" + key + "\"")); +s = JU.PT.getQuotedStringAt(s, pt); +s = JU.PT.rep(s, "", ""); +s = JU.PT.rep(s, "", ""); +return s.trim(); +}, "~S,~S"); +Clazz.defineMethod(c$, "getLinesUntil", +function(key){ +var sb = new JU.SB(); +do { +sb.append(this.line); +} while (!this.rd().contains(key)); +return sb.toString(); +}, "~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CastepReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CastepReader.js new file mode 100755 index 000000000000..aecc1ef6369e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CastepReader.js @@ -0,0 +1,520 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.CastepReader", ["JU.DF", "$.Lst", "$.M4", "$.P3", "$.PT", "$.V3", "J.adapter.smarter.Atom", "JU.Escape", "$.Logger", "$.Tensor"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.tokens = null; +this.isPhonon = false; +this.isTS = false; +this.isOutput = false; +this.isCell = false; +this.a = 0; +this.b = 0; +this.c = 0; +this.alpha = 0; +this.beta = 0; +this.gamma = 0; +this.abc = null; +this.ac = 0; +this.atomPts = null; +this.havePhonons = false; +this.lastQPt = null; +this.qpt2 = 0; +this.desiredQpt = null; +this.desiredQ = null; +this.chargeType = "MULL"; +this.isAllQ = false; +this.haveCharges = false; +this.tsType = null; +this.matSupercell = null; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "CastepReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.prepareFields (c$, function(){ +this.abc = new Array(3); +}); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +if (this.filter != null) { +this.chargeType = this.getFilter("CHARGE="); +if (this.chargeType != null && this.chargeType.length > 4) this.chargeType = this.chargeType.substring(0, 4); +this.filter = this.filter.$replace('(', '{').$replace(')', '}'); +this.filter = JU.PT.rep(this.filter, " ", " "); +this.isAllQ = this.checkFilterKey("Q=ALL"); +this.tsType = this.getFilter("TSTYPE="); +if (!this.isAllQ && this.filter.indexOf("{") >= 0) this.setDesiredQpt(this.filter.substring(this.filter.indexOf("{"))); +this.filter = JU.PT.rep(this.filter, "-PT", ""); +}this.continuing = this.readFileData(); +}); +Clazz.defineMethod(c$, "setDesiredQpt", +function(s){ +this.desiredQpt = new JU.V3(); +this.desiredQ = ""; +var num = 1; +var denom = 1; +var ipt = 0; +var xyz = 0; +var useSpace = (s.indexOf(',') < 0); +for (var i = 0; i < s.length; i++) { +var c = s.charAt(i); +switch ((c).charCodeAt(0)) { +case 123: +ipt = i + 1; +num = 1; +denom = 1; +break; +case 47: +num = this.parseFloatStr(s.substring(ipt, i)); +ipt = i + 1; +denom = 0; +break; +case 44: +case 32: +case 125: +if (c == '}') this.desiredQ = s.substring(0, i + 1); + else if ((c == ' ') != useSpace) break; +if (denom == 0) { +denom = this.parseFloatStr(s.substring(ipt, i)); +} else { +num = this.parseFloatStr(s.substring(ipt, i)); +}num /= denom; +switch (xyz++) { +case 0: +this.desiredQpt.x = num; +break; +case 1: +this.desiredQpt.y = num; +break; +case 2: +this.desiredQpt.z = num; +break; +} +denom = 1; +if (c == '}') i = s.length; +ipt = i + 1; +break; +} +} +JU.Logger.info("Looking for q-pt=" + this.desiredQpt); +}, "~S"); +Clazz.defineMethod(c$, "readFileData", +function(){ +while (this.tokenizeCastepCell() > 0) if (this.tokens.length >= 2 && this.tokens[0].equalsIgnoreCase("%BLOCK")) { +JU.Logger.info(this.line); +if (this.tokens[1].equalsIgnoreCase("LATTICE_ABC")) { +this.readLatticeAbc(); +continue; +}if (this.tokens[1].equalsIgnoreCase("LATTICE_CART")) { +this.readLatticeCart(); +continue; +}if (this.tokens[1].equalsIgnoreCase("POSITIONS_FRAC")) { +this.setFractionalCoordinates(true); +this.readPositionsFrac(); +continue; +}if (this.tokens[1].equalsIgnoreCase("POSITIONS_ABS")) { +this.setFractionalCoordinates(false); +this.readPositionsAbs(); +continue; +}} +if (this.isPhonon || this.isOutput || this.isTS) { +if (this.isPhonon) { +this.isTrajectory = (this.desiredVibrationNumber <= 0); +this.asc.allowMultiple = false; +}return true; +}return false; +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (this.isOutput) { +if (this.line.contains("Real Lattice(A)")) { +this.readOutputUnitCell(); +} else if (this.line.contains("Fractional coordinates of atoms")) { +if (this.doGetModel(++this.modelNumber, null)) { +this.readOutputAtoms(); +}} else if (this.doProcessLines && (this.line.contains("Atomic Populations (Mulliken)") || this.line.contains("Hirshfield Charge (e)"))) { +this.readOutputCharges(); +} else if (this.doProcessLines && this.line.contains("Born Effective Charges")) { +this.readOutputBornChargeTensors(); +} else if (this.line.contains("Final energy ")) { +this.readEnergy(3, null); +} else if (this.line.contains("Dispersion corrected final energy*")) { +this.readEnergy(5, null); +} else if (this.line.contains("Total energy corrected")) { +this.readEnergy(8, null); +}return true; +}if (this.line.contains("<-- E")) { +this.readPhononTrajectories(); +return true; +}if (this.line.indexOf("Unit cell vectors") == 1) { +this.readPhononUnitCell(); +return true; +}if (this.line.indexOf("Fractional Co-ordinates") >= 0) { +this.readPhononFractionalCoord(); +return true; +}if (this.line.indexOf("q-pt") >= 0) { +this.readPhononFrequencies(); +return true; +}return true; +}); +Clazz.defineMethod(c$, "readOutputUnitCell", +function(){ +this.applySymmetryAndSetTrajectory(); +this.asc.newAtomSetClear(false); +this.setFractionalCoordinates(true); +this.abc = this.read3Vectors(false); +this.setLatticeVectors(); +}); +Clazz.defineMethod(c$, "readOutputAtoms", +function(){ +this.readLines(2); +while (this.rd().indexOf("xxx") < 0) { +var atom = new J.adapter.smarter.Atom(); +this.tokens = this.getTokens(); +atom.elementSymbol = this.tokens[1]; +atom.atomName = this.tokens[1] + this.tokens[2]; +this.asc.addAtomWithMappedName(atom); +this.setAtomCoordTokens(atom, this.tokens, 3); +} +}); +Clazz.defineMethod(c$, "readEnergy", +function(pt, prefix){ +if (this.isTrajectory) this.applySymmetryAndSetTrajectory(); +this.tokens = this.getTokens(); +try { +var energy = Double.$valueOf(Double.parseDouble(this.tokens[pt])); +this.asc.setAtomSetName(prefix + "Energy = " + energy + " eV"); +this.asc.setAtomSetEnergy("" + energy, energy.floatValue()); +this.asc.setCurrentModelInfo("Energy", energy); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +this.appendLoadNote("CASTEP Energy could not be read: " + this.line); +} else { +throw e; +} +} +}, "~N,~S"); +Clazz.defineMethod(c$, "readPhononTrajectories", +function(){ +if (!this.isTS) this.isTrajectory = (this.desiredVibrationNumber <= 0); +if (this.isTrajectory) this.asc.setTrajectory(); +this.doApplySymmetry = true; +while (this.line != null && this.line.contains("<-- E")) { +var skip = (this.isTS && this.tsType != null && this.prevline.indexOf(this.tsType) < 0); +if (!skip) { +this.asc.newAtomSetClear(false); +if (this.isTS) this.readEnergy(0, JU.PT.getTokens(this.prevline + " -")[0] + " "); +this.discardLinesUntilContains("<-- h"); +this.setSpaceGroupName("P1"); +this.abc = this.read3Vectors(true); +this.setLatticeVectors(); +this.setFractionalCoordinates(false); +this.discardLinesUntilContains("<-- R"); +while (this.line != null && this.line.contains("<-- R")) { +this.tokens = this.getTokens(); +this.setAtomCoordScaled(null, this.tokens, 2, 0.5291772).elementSymbol = this.tokens[0]; +this.rd(); +} +this.applySymmetryAndSetTrajectory(); +}this.discardLinesUntilContains("<-- E"); +} +}); +Clazz.overrideMethod(c$, "finalizeSubclassReader", +function(){ +if (this.isPhonon || this.isOutput || this.isTS) { +this.isTrajectory = false; +} else { +this.doApplySymmetry = true; +this.setLatticeVectors(); +var nAtoms = this.asc.ac; +for (var i = 0; i < nAtoms; i++) this.setAtomCoord(this.asc.atoms[i]); + +}this.finalizeReaderASCR(); +}); +Clazz.defineMethod(c$, "setLatticeVectors", +function(){ +if (this.abc[0] == null) { +this.setUnitCell(this.a, this.b, this.c, this.alpha, this.beta, this.gamma); +return; +}var lv = Clazz.newFloatArray (3, 0); +for (var i = 0; i < 3; i++) { +lv[0] = this.abc[i].x; +lv[1] = this.abc[i].y; +lv[2] = this.abc[i].z; +this.addExplicitLatticeVector(i, lv, 0); +} +}); +Clazz.defineMethod(c$, "readLatticeAbc", +function(){ +if (this.tokenizeCastepCell() == 0) return; +var factor = this.readLengthUnit(this.tokens[0]); +if (this.tokens.length >= 3) { +this.a = this.parseFloatStr(this.tokens[0]) * factor; +this.b = this.parseFloatStr(this.tokens[1]) * factor; +this.c = this.parseFloatStr(this.tokens[2]) * factor; +} else { +JU.Logger.warn("error reading a,b,c in %BLOCK LATTICE_ABC in CASTEP .cell file"); +return; +}if (this.tokenizeCastepCell() == 0) return; +if (this.tokens.length >= 3) { +this.alpha = this.parseFloatStr(this.tokens[0]); +this.beta = this.parseFloatStr(this.tokens[1]); +this.gamma = this.parseFloatStr(this.tokens[2]); +} else { +JU.Logger.warn("error reading alpha,beta,gamma in %BLOCK LATTICE_ABC in CASTEP .cell file"); +}}); +Clazz.defineMethod(c$, "readLatticeCart", +function(){ +if (this.tokenizeCastepCell() == 0) return; +var factor = this.readLengthUnit(this.tokens[0]); +var x; +var y; +var z; +for (var i = 0; i < 3; i++) { +if (this.tokens.length >= 3) { +x = this.parseFloatStr(this.tokens[0]) * factor; +y = this.parseFloatStr(this.tokens[1]) * factor; +z = this.parseFloatStr(this.tokens[2]) * factor; +this.abc[i] = JU.V3.new3(x, y, z); +} else { +JU.Logger.warn("error reading coordinates of lattice vector " + Integer.toString(i + 1) + " in %BLOCK LATTICE_CART in CASTEP .cell file"); +return; +}if (this.tokenizeCastepCell() == 0) return; +} +this.a = this.abc[0].length(); +this.b = this.abc[1].length(); +this.c = this.abc[2].length(); +this.alpha = (this.abc[1].angle(this.abc[2]) * 57.29577951308232); +this.beta = (this.abc[2].angle(this.abc[0]) * 57.29577951308232); +this.gamma = (this.abc[0].angle(this.abc[1]) * 57.29577951308232); +}); +Clazz.defineMethod(c$, "readPositionsFrac", +function(){ +if (this.tokenizeCastepCell() == 0) return; +this.readAtomData(1.0); +}); +Clazz.defineMethod(c$, "readPositionsAbs", +function(){ +if (this.tokenizeCastepCell() == 0) return; +var factor = this.readLengthUnit(this.tokens[0]); +this.readAtomData(factor); +}); +Clazz.defineMethod(c$, "readLengthUnit", +function(units){ +var factor = 1.0; +for (var i = 0; i < J.adapter.readers.xtal.CastepReader.lengthUnitIds.length; i++) if (units.equalsIgnoreCase(J.adapter.readers.xtal.CastepReader.lengthUnitIds[i])) { +factor = J.adapter.readers.xtal.CastepReader.lengthUnitFactors[i]; +this.tokenizeCastepCell(); +break; +} +return factor; +}, "~S"); +Clazz.defineMethod(c$, "readAtomData", +function(factor){ +do { +if (this.tokens.length >= 4) { +var atom = this.asc.addNewAtom(); +var pt = this.tokens[0].indexOf(":"); +if (pt >= 0) { +atom.elementSymbol = this.tokens[0].substring(0, pt); +atom.atomName = this.tokens[0]; +} else { +atom.elementSymbol = this.tokens[0]; +}atom.set(this.parseFloatStr(this.tokens[1]), this.parseFloatStr(this.tokens[2]), this.parseFloatStr(this.tokens[3])); +atom.scale(factor); +} else { +JU.Logger.warn("cannot read line with CASTEP atom data: " + this.line); +}} while (this.tokenizeCastepCell() > 0 && !this.tokens[0].equalsIgnoreCase("%ENDBLOCK")); +}, "~N"); +Clazz.defineMethod(c$, "tokenizeCastepCell", +function(){ +while (this.rd() != null) { +if ((this.line = this.line.trim()).length == 0 || this.line.startsWith("#") || this.line.startsWith("!")) continue; +if (!this.isCell) { +if (this.line.startsWith("%")) { +this.isCell = true; +break; +}if (this.line.startsWith("LST")) { +this.isTS = true; +JU.Logger.info("reading CASTEP .ts file"); +return -1; +}if (this.line.startsWith("BEGIN header")) { +this.isPhonon = true; +JU.Logger.info("reading CASTEP .phonon file"); +return -1; +}if (this.line.contains("CASTEP")) { +this.isOutput = true; +JU.Logger.info("reading CASTEP .castep file"); +return -1; +}}break; +} +return (this.line == null ? 0 : (this.tokens = this.getTokens()).length); +}); +Clazz.defineMethod(c$, "readOutputBornChargeTensors", +function(){ +if (this.rd().indexOf("--------") < 0) return; +var atoms = this.asc.atoms; +this.appendLoadNote("Ellipsoids: Born Charge Tensors"); +while (this.rd().indexOf('=') < 0) this.getTensor(atoms[this.readOutputAtomIndex()], this.line.substring(12)); + +}); +Clazz.defineMethod(c$, "readOutputAtomIndex", +function(){ +this.tokens = this.getTokens(); +return this.asc.getAtomIndex(this.tokens[0] + this.tokens[1]); +}); +Clazz.defineMethod(c$, "getTensor", +function(atom, line0){ +var data = Clazz.newFloatArray (9, 0); +var a = Clazz.newDoubleArray (3, 3, 0); +this.fillFloatArray(line0, 0, data); +JU.Logger.info("tensor " + atom.atomName + "\t" + JU.Escape.eAF(data)); +for (var p = 0, i = 0; i < 3; i++) for (var j = 0; j < 3; j++) a[i][j] = data[p++]; + + +atom.addTensor(( new JU.Tensor()).setFromAsymmetricTensor(a, "charge", atom.atomName + " " + line0), null, false); +if (!this.haveCharges) this.appendLoadNote("Ellipsoids set \"charge\": Born Effective Charges"); +this.haveCharges = true; +}, "J.adapter.smarter.Atom,~S"); +Clazz.defineMethod(c$, "readOutputCharges", +function(){ +if (this.line.toUpperCase().indexOf(this.chargeType) < 0) return; +JU.Logger.info("reading charges: " + this.line); +this.readLines(2); +var haveSpin = (this.line.indexOf("Spin") >= 0); +this.rd(); +var atoms = this.asc.atoms; +var spins = (haveSpin ? Clazz.newFloatArray (atoms.length, 0) : null); +if (spins != null) for (var i = 0; i < spins.length; i++) spins[i] = 0; + +while (this.rd() != null && this.line.indexOf('=') < 0) { +var index = this.readOutputAtomIndex(); +var charge = this.parseFloatStr(this.tokens[haveSpin ? this.tokens.length - 2 : this.tokens.length - 1]); +atoms[index].partialCharge = charge; +if (haveSpin) spins[index] = this.parseFloatStr(this.tokens[this.tokens.length - 1]); +} +if (haveSpin) this.asc.setAtomProperties("spin", spins, -1, false); +}); +Clazz.defineMethod(c$, "readPhononUnitCell", +function(){ +this.abc = this.read3Vectors(this.line.indexOf("bohr") >= 0); +this.setSpaceGroupName("P1"); +this.setLatticeVectors(); +}); +Clazz.defineMethod(c$, "readPhononFractionalCoord", +function(){ +this.setFractionalCoordinates(true); +while (this.rd() != null && this.line.indexOf("END") < 0) { +this.tokens = this.getTokens(); +this.addAtomXYZSymName(this.tokens, 1, this.tokens[4], null).bfactor = this.parseFloatStr(this.tokens[5]); +} +this.ac = this.asc.ac; +this.atomPts = new Array(this.ac); +var atoms = this.asc.atoms; +for (var i = 0; i < this.ac; i++) this.atomPts[i] = JU.P3.newP(atoms[i]); + +}); +Clazz.defineMethod(c$, "readPhononFrequencies", +function(){ +this.tokens = this.getTokens(); +var v = new JU.V3(); +var qvec = JU.V3.new3(this.parseFloatStr(this.tokens[2]), this.parseFloatStr(this.tokens[3]), this.parseFloatStr(this.tokens[4])); +var fcoord = this.getFractionalCoord(qvec); +var qtoks = "{" + this.tokens[2] + " " + this.tokens[3] + " " + this.tokens[4] + "}"; +if (fcoord == null) fcoord = qtoks; + else fcoord = "{" + fcoord + "}"; +var isOK = this.isAllQ; +var isSecond = (this.tokens[1].equals(this.lastQPt)); +this.qpt2 = (isSecond ? this.qpt2 + 1 : 1); +this.lastQPt = this.tokens[1]; +if (!isOK && this.checkFilterKey("Q=")) { +if (this.desiredQpt != null) { +v.sub2(this.desiredQpt, qvec); +if (v.length() < 0.001) fcoord = this.desiredQ; +}isOK = (this.checkFilterKey("Q=" + fcoord + "." + this.qpt2 + ";") || this.checkFilterKey("Q=" + this.lastQPt + "." + this.qpt2 + ";") || !isSecond && this.checkFilterKey("Q=" + fcoord + ";") || !isSecond && this.checkFilterKey("Q=" + this.lastQPt + ";")); +if (!isOK) return; +}var isGammaPoint = (qvec.length() == 0); +var nx = 1; +var ny = 1; +var nz = 1; +if (this.ptSupercell != null && !isOK && !isSecond) { +this.matSupercell = new JU.M4(); +this.matSupercell.m00 = this.ptSupercell.x; +this.matSupercell.m11 = this.ptSupercell.y; +this.matSupercell.m22 = this.ptSupercell.z; +this.matSupercell.m33 = 1; +JU.Logger.info("Using supercell \n" + this.matSupercell); +nx = this.ptSupercell.x; +ny = this.ptSupercell.y; +nz = this.ptSupercell.z; +var dx = (qvec.x == 0 ? 1 : qvec.x) * nx; +var dy = (qvec.y == 0 ? 1 : qvec.y) * ny; +var dz = (qvec.z == 0 ? 1 : qvec.z) * nz; +if ((nx != 1 || ny != 1 || nz != 1) && isGammaPoint || !J.adapter.readers.xtal.CastepReader.isInt(dx) || !J.adapter.readers.xtal.CastepReader.isInt(dy) || !J.adapter.readers.xtal.CastepReader.isInt(dz)) return; +isOK = true; +}if (this.ptSupercell == null || !this.havePhonons) this.appendLoadNote(this.line); +if (!isOK && isSecond) return; +if (!isOK && (this.ptSupercell == null) == !isGammaPoint) return; +if (this.havePhonons && !this.isAllQ) return; +this.havePhonons = true; +var qname = "q=" + this.lastQPt + " " + fcoord; +this.applySymmetryAndSetTrajectory(); +if (isGammaPoint) qvec = null; +var freqs = new JU.Lst(); +while (this.rd() != null && this.line.indexOf("Phonon") < 0) { +this.tokens = this.getTokens(); +freqs.addLast(Float.$valueOf(this.parseFloatStr(this.tokens[1]))); +} +this.rd(); +var frequencyCount = freqs.size(); +var data = Clazz.newFloatArray (8, 0); +var t = new JU.V3(); +this.asc.setCollectionName(qname); +for (var i = 0; i < frequencyCount; i++) { +if (!this.doGetVibration(++this.vibrationNumber)) { +for (var j = 0; j < this.ac; j++) this.rd(); + +continue; +}if (this.desiredVibrationNumber <= 0) { +if (!this.isTrajectory) { +this.cloneLastAtomSet(this.ac, this.atomPts); +this.applySymmetryAndSetTrajectory(); +}}this.symmetry = this.asc.getSymmetry(); +var iatom = this.asc.getLastAtomSetAtomIndex(); +var freq = freqs.get(i).floatValue(); +var atoms = this.asc.atoms; +var aCount = this.asc.ac; +for (var j = 0; j < this.ac; j++) { +this.fillFloatArray(null, 0, data); +for (var k = iatom++; k < aCount; k++) if (atoms[k].atomSite == j) { +t.sub2(atoms[k], atoms[atoms[k].atomSite]); +if (this.matSupercell != null) this.matSupercell.rotTrans(t); +this.setPhononVector(data, atoms[k], t, qvec, v); +this.asc.addVibrationVectorWithSymmetry(k, v.x, v.y, v.z, true); +} +} +if (this.isTrajectory) this.asc.setTrajectory(); +this.asc.setAtomSetFrequency(this.vibrationNumber, null, null, "" + freq, null); +this.asc.setAtomSetName(JU.DF.formatDecimal(freq, 2) + " cm-1 " + qname); +} +}); +Clazz.defineMethod(c$, "getFractionalCoord", +function(qvec){ +return (this.symmetry != null && J.adapter.readers.xtal.CastepReader.isInt(qvec.x * 12) && J.adapter.readers.xtal.CastepReader.isInt(qvec.y * 12) && J.adapter.readers.xtal.CastepReader.isInt(qvec.z * 12) ? this.symmetry.fcoord(qvec) : null); +}, "JU.V3"); +c$.isInt = Clazz.defineMethod(c$, "isInt", +function(f){ +return (Math.abs(f - Math.round(f)) < 0.001); +}, "~N"); +Clazz.defineMethod(c$, "setPhononVector", +function(data, atom, rTrans, qvec, v){ +if (qvec == null) { +v.set(data[2], data[4], data[6]); +} else { +var phase = qvec.dot(rTrans); +var cosph = Math.cos(6.283185307179586 * phase); +var sinph = Math.sin(6.283185307179586 * phase); +v.x = (cosph * data[2] - sinph * data[3]); +v.y = (cosph * data[4] - sinph * data[5]); +v.z = (cosph * data[6] - sinph * data[7]); +}v.scale(Math.sqrt(1 / atom.bfactor)); +}, "~A,J.adapter.smarter.Atom,JU.V3,JU.V3,JU.V3"); +c$.lengthUnitIds = Clazz.newArray(-1, ["bohr", "m", "cm", "nm", "ang", "a0"]); +c$.lengthUnitFactors = Clazz.newFloatArray(-1, [0.5291772, 1E10, 1E8, 1E1, 1.0, 0.5291772]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CgdReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CgdReader.js new file mode 100755 index 000000000000..41f3478a2f83 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CgdReader.js @@ -0,0 +1,163 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader", "JU.V3"], "J.adapter.readers.xtal.CgdReader", ["java.util.Hashtable", "JU.Lst", "$.M3", "$.P3", "$.PT", "J.adapter.smarter.Bond", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.noBondSym = false; +this.tokens = null; +this.htEdges = null; +this.lastName = null; +this.edgeData = null; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "CgdReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.setFractionalCoordinates(true); +this.asc.setNoAutoBond(); +this.asc.vibScale = 1; +this.forceSymmetry(!this.noPack); +this.noBondSym = this.checkFilterKey("NOBONDSYM"); +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +this.line = this.line.trim(); +if (this.line.length == 0 || this.line.startsWith("#")) return true; +if (!Character.isLetter(this.line.charAt(0))) this.line = this.lastName + " " + this.line; +this.tokens = this.getTokens(); +if (this.tokens.length > 0) { +this.lastName = this.tokens[0].toUpperCase(); +var pt = "NAME |CELL |GROUP|ATOM |EDGE |".indexOf(this.lastName); +if (this.tokens.length > 1 && (pt == 0 || this.doProcessLines)) switch (pt) { +case 0: +if (!this.doGetModel(++this.modelNumber, null)) return this.checkLastModel(); +this.applySymmetryAndSetTrajectory(); +this.setFractionalCoordinates(true); +this.asc.newAtomSet(); +this.asc.setAtomSetName(this.line.substring(6).trim()); +this.htEdges = null; +this.edgeData = null; +break; +case 6: +for (var i = 0; i < 6; i++) this.setUnitCellItem(i, (i < 3 ? 10 : 1) * this.parseFloatStr(this.tokens[i + 1])); + +break; +case 12: +this.setSpaceGroupName("bilbao:" + this.group(this.tokens[1])); +break; +case 18: +this.atom(); +break; +case 24: +if (!this.doApplySymmetry) break; +if (this.edgeData == null) this.edgeData = new JU.Lst(); +this.edgeData.addLast(this.line); +break; +} +}return true; +}); +Clazz.defineMethod(c$, "group", +function(name){ +var name0 = null; +if (name.charAt(0) == '"') name = name.substring(1, name.length - 1); +var pt = ";P2=P121;P21=P1211;C2=C121;A2=A121;I2=I121;Pm=P1m1;Pc=P1c1;Pn=P1n1;Pa=P1a1;Cm=C1m1;Am=A1m1;Im=I1m1;Cc=C1c1;An=A1n1;Ia=I1a1;Aa=A1a1;Cn=C1n1;Ic=I1c1;P2/m=P12/m1;P21/m=P121/m1;C2/m=C12/m1;A2/m=A12/m1;I2/m=I12/m1;P2/c=P12/c1;P2/n=P12/n1;P2/a=P12/a1;P21/c=P121/c1;P21/n=P121/n1;P21/a=P121/a1;C2/c=C12/c1;A2/n=A12/n1;I2/a=I12/a1;A2/a=A12/a1;C2/n=C12/n1;I2/c=I12/c1;Pm3=Pm-3;Pn3=Pn-3;Fm3=Fm-3;Fd3=Fd-3;Im3=Im-3;Pa3=Pa-3;Ia3=Ia-3;Pm3m=Pm-3m;Pn3n=Pn-3n;Pm3n=Pm-3n;Pn3m=Pn-3m;Fm3m=Fm-3m;Fm3c=Fm-3c;Fd3m=Fd-3m;Fd3c=Fd-3c;Im3m=Im-3m;Ia3d=Ia-3d;".indexOf(";" + name + "="); +if (pt >= 0) { +name0 = name; +name = ";P2=P121;P21=P1211;C2=C121;A2=A121;I2=I121;Pm=P1m1;Pc=P1c1;Pn=P1n1;Pa=P1a1;Cm=C1m1;Am=A1m1;Im=I1m1;Cc=C1c1;An=A1n1;Ia=I1a1;Aa=A1a1;Cn=C1n1;Ic=I1c1;P2/m=P12/m1;P21/m=P121/m1;C2/m=C12/m1;A2/m=A12/m1;I2/m=I12/m1;P2/c=P12/c1;P2/n=P12/n1;P2/a=P12/a1;P21/c=P121/c1;P21/n=P121/n1;P21/a=P121/a1;C2/c=C12/c1;A2/n=A12/n1;I2/a=I12/a1;A2/a=A12/a1;C2/n=C12/n1;I2/c=I12/c1;Pm3=Pm-3;Pn3=Pn-3;Fm3=Fm-3;Fd3=Fd-3;Im3=Im-3;Pa3=Pa-3;Ia3=Ia-3;Pm3m=Pm-3m;Pn3n=Pn-3n;Pm3n=Pm-3n;Pn3m=Pn-3m;Fm3m=Fm-3m;Fm3c=Fm-3c;Fd3m=Fd-3m;Fd3c=Fd-3c;Im3m=Im-3m;Ia3d=Ia-3d;".substring(";P2=P121;P21=P1211;C2=C121;A2=A121;I2=I121;Pm=P1m1;Pc=P1c1;Pn=P1n1;Pa=P1a1;Cm=C1m1;Am=A1m1;Im=I1m1;Cc=C1c1;An=A1n1;Ia=I1a1;Aa=A1a1;Cn=C1n1;Ic=I1c1;P2/m=P12/m1;P21/m=P121/m1;C2/m=C12/m1;A2/m=A12/m1;I2/m=I12/m1;P2/c=P12/c1;P2/n=P12/n1;P2/a=P12/a1;P21/c=P121/c1;P21/n=P121/n1;P21/a=P121/a1;C2/c=C12/c1;A2/n=A12/n1;I2/a=I12/a1;A2/a=A12/a1;C2/n=C12/n1;I2/c=I12/c1;Pm3=Pm-3;Pn3=Pn-3;Fm3=Fm-3;Fd3=Fd-3;Im3=Im-3;Pa3=Pa-3;Ia3=Ia-3;Pm3m=Pm-3m;Pn3n=Pn-3n;Pm3n=Pm-3n;Pn3m=Pn-3m;Fm3m=Fm-3m;Fm3c=Fm-3c;Fd3m=Fd-3m;Fd3c=Fd-3c;Im3m=Im-3m;Ia3d=Ia-3d;".indexOf("=", pt) + 1, ";P2=P121;P21=P1211;C2=C121;A2=A121;I2=I121;Pm=P1m1;Pc=P1c1;Pn=P1n1;Pa=P1a1;Cm=C1m1;Am=A1m1;Im=I1m1;Cc=C1c1;An=A1n1;Ia=I1a1;Aa=A1a1;Cn=C1n1;Ic=I1c1;P2/m=P12/m1;P21/m=P121/m1;C2/m=C12/m1;A2/m=A12/m1;I2/m=I12/m1;P2/c=P12/c1;P2/n=P12/n1;P2/a=P12/a1;P21/c=P121/c1;P21/n=P121/n1;P21/a=P121/a1;C2/c=C12/c1;A2/n=A12/n1;I2/a=I12/a1;A2/a=A12/a1;C2/n=C12/n1;I2/c=I12/c1;Pm3=Pm-3;Pn3=Pn-3;Fm3=Fm-3;Fd3=Fd-3;Im3=Im-3;Pa3=Pa-3;Ia3=Ia-3;Pm3m=Pm-3m;Pn3n=Pn-3n;Pm3n=Pm-3n;Pn3m=Pn-3m;Fm3m=Fm-3m;Fm3c=Fm-3c;Fd3m=Fd-3m;Fd3c=Fd-3c;Im3m=Im-3m;Ia3d=Ia-3d;".indexOf(";", pt + 1)); +}JU.Logger.info("CgdReader using GROUP " + name + (name0 == null ? "" : " alias of " + name0)); +return name; +}, "~S"); +Clazz.defineMethod(c$, "atom", +function(){ +var name = this.getName(this.tokens[1]); +var edgeCount = this.parseIntStr(this.tokens[2]); +for (var i = 3; i < 6; i++) if (this.tokens[i].indexOf("/") >= 0) this.tokens[i] = "" + JU.PT.parseFloatFraction(this.tokens[i]); + +var a = this.addAtomXYZSymName(this.tokens, 3, null, name); +if (!this.doApplySymmetry) return; +this.asc.atomSymbolicMap.put(name, a); +this.asc.addVibrationVector(a.index, 1, 3, 7); +if (this.htEdges == null) this.htEdges = new java.util.Hashtable(); +this.htEdges.put(a, new Array(edgeCount)); +}); +Clazz.defineMethod(c$, "getName", +function(name){ +return (name.charAt(0) == '"' ? name.substring(1, name.length - 1) : Character.isDigit(name.charAt(0)) ? "C" + name : name); +}, "~S"); +Clazz.overrideMethod(c$, "finalizeSubclassReader", +function(){ +this.finalizeReaderASCR(); +if (this.doApplySymmetry) this.finalizeNet(); +}); +Clazz.defineMethod(c$, "finalizeEdges", +function(){ +var p; +var name; +var a; +var atomEdges; +for (var j = 0; j < this.edgeData.size(); j++) { +this.tokens = JU.PT.getTokens(this.line = this.edgeData.get(j)); +switch (this.tokens.length) { +case 3: +name = this.getName(this.tokens[1]); +a = this.asc.getAtomFromName(name); +atomEdges = this.htEdges.get(a); +p = this.asc.getAtomFromName(this.getName(this.tokens[2])); +break; +case 5: +name = this.getName(this.tokens[1]); +a = this.asc.getAtomFromName(name); +atomEdges = this.htEdges.get(a); +p = this.getCoord(2); +break; +case 7: +atomEdges = this.htEdges.get(this.findAtom(this.getCoord(1))); +p = this.getCoord(4); +break; +default: +JU.Logger.error("EDGE record skipped: " + this.line); +continue; +} +for (var i = 0, n = atomEdges.length; i < n; i++) if (atomEdges[i] == null) { +atomEdges[i] = JU.V3.newV(p); +break; +} +} +}); +Clazz.defineMethod(c$, "getCoord", +function(i){ +return JU.P3.new3(JU.PT.parseFloatFraction(this.tokens[i++]), JU.PT.parseFloatFraction(this.tokens[i++]), JU.PT.parseFloatFraction(this.tokens[i++])); +}, "~N"); +Clazz.defineMethod(c$, "finalizeNet", +function(){ +this.finalizeEdges(); +var m = new JU.M3(); +var pt = new JU.P3(); +for (var i = 0, n = this.asc.ac; i < n; i++) { +var a = this.asc.atoms[i]; +var a0 = this.asc.atoms[a.atomSite]; +if (this.noBondSym && a !== a0) continue; +var edges = this.htEdges.get(a0); +if (edges == null) continue; +var ix = Clazz.floatToInt(a.vib.x) + 7; +var iy = Clazz.floatToInt(a.vib.y) + 7; +var iz = Clazz.floatToInt(a.vib.z) + 7; +m.setRowV(0, J.adapter.readers.xtal.CgdReader.vecs[ix]); +m.setRowV(1, J.adapter.readers.xtal.CgdReader.vecs[iy]); +m.setRowV(2, J.adapter.readers.xtal.CgdReader.vecs[iz]); +for (var j = 0, n1 = edges.length; j < n1; j++) { +pt.sub2(edges[j], a0); +m.rotate(pt); +pt.add(a); +var b = this.findAtom(pt); +if (b != null) this.asc.addBond( new J.adapter.smarter.Bond(a.index, b.index, 1)); + else if (pt.x >= 0 && pt.x <= 1 && pt.y >= 0 && pt.y <= 1 && pt.z >= 0 && pt.z <= 1) JU.Logger.error(" not found: i=" + i + " pt=" + pt + " for a=" + a + "\n a0=" + a0 + " edge[" + j + "]=" + edges[j] + "\n a.vib=" + a.vib + "\n m=" + m); +} +a.vib = null; +} +}); +Clazz.defineMethod(c$, "findAtom", +function(pt){ +for (var i = this.asc.ac; --i >= 0; ) if (this.asc.atoms[i].distanceSquared(pt) < 0.00001) return this.asc.atoms[i]; + +return null; +}, "JU.P3"); +c$.vecs = Clazz.newArray(-1, [JU.V3.new3(0, 0, -1), JU.V3.new3(1, 0, -1), null, JU.V3.new3(0, 1, -1), JU.V3.new3(0, -1, 0), JU.V3.new3(1, -1, 0), JU.V3.new3(-1, 0, 0), null, JU.V3.new3(1, 0, 0), JU.V3.new3(-1, 1, 0), JU.V3.new3(0, 1, 0), JU.V3.new3(0, -1, 1), null, JU.V3.new3(-1, 0, 1), JU.V3.new3(0, 0, 1)]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CmdfReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CmdfReader.js new file mode 100755 index 000000000000..6ec8510a6392 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CmdfReader.js @@ -0,0 +1,121 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.CmdfReader", ["J.adapter.smarter.Atom", "J.api.JmolAdapter"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.buf = null; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "CmdfReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.prepareFields (c$, function(){ +this.buf = Clazz.newByteArray (100, 0); +}); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.setFractionalCoordinates(true); +}); +Clazz.overrideMethod(c$, "processBinaryDocument", +function(){ +this.binaryDoc.setStream(null, false); +this.binaryDoc.seek(28); +var len = this.binaryDoc.readInt(); +System.out.println("file length: " + len + " " + Integer.toHexString(len)); +this.seek("CELL", 32); +var uc = Clazz.newFloatArray (6, 0); +for (var i = 0; i < 6; i++) { +uc[i] = this.binaryDoc.readFloat(); +} +this.setUnitCell(uc[0], uc[1], uc[2], uc[3], uc[4], uc[5]); +this.seek("SYMM", -1); +var sg = J.adapter.readers.xtal.CmdfReader.fixSpaceGroup(this.binaryDoc.readString(20)); +this.setSpaceGroupName(sg); +System.out.println("Space group is " + sg); +this.readAtoms(); +System.out.println("done"); +}); +c$.fixSpaceGroup = Clazz.defineMethod(c$, "fixSpaceGroup", +function(sg){ +var pt = sg.indexOf('\0'); +if (pt == 0) System.out.println("SYMM: empty;NO space group??"); +return (pt < 0 ? sg : sg.substring(0, pt)).trim(); +}, "~S"); +Clazz.defineMethod(c$, "readAtoms", +function(){ +this.seek("AUN7", 32); +var nSites = this.binaryDoc.readInt(); +System.out.println(nSites + " sites"); +for (var i = 0; i < nSites; i++) this.readSite(); + +}); +Clazz.defineMethod(c$, "readSite", +function(){ +var nOccupants = this.binaryDoc.readByte(); +var atoms = new Array(nOccupants); +for (var i = 0; i < nOccupants; i++) { +var a = atoms[i] = new J.adapter.smarter.Atom(); +var ch2 = String.fromCharCode(this.binaryDoc.readByte()); +var ch1 = String.fromCharCode(this.binaryDoc.readByte()); +a.elementSymbol = J.adapter.readers.xtal.CmdfReader.getSymbol("" + ch1 + ch2); +if (J.api.JmolAdapter.getElementNumber(a.elementSymbol) == 0) { +System.out.println("ELEMENT error " + a.elementSymbol + " " + this.fileName); +}a.foccupancy = this.binaryDoc.readFloat(); +this.asc.addAtom(a); +} +this.binaryDoc.readInt(); +var sym0 = atoms[0].elementSymbol; +var name = this.readString(); +var valence = this.binaryDoc.readInt(); +for (var i = 0; i < nOccupants; i++) { +atoms[i].atomName = (i == 0 || sym0.length > name.length ? name : atoms[i].elementSymbol + name.substring(sym0.length)); +} +var unk3s = this.binaryDoc.readShort() & 0xFFFF; +var x = this.binaryDoc.readFloat(); +var y = this.binaryDoc.readFloat(); +var z = this.binaryDoc.readFloat(); +for (var i = 0; i < nOccupants; i++) { +this.setAtomCoordXYZ(atoms[i], x, y, z); +} +var index2 = this.binaryDoc.readInt() / 32; +var unk4b = this.binaryDoc.readByte() & 0xFF; +var siteNumber = this.binaryDoc.readShort(); +var unk5b = this.binaryDoc.readByte() & 0xFF; +var wyn = this.binaryDoc.readInt(); +var wyabc = this.binaryDoc.readByte(); +var wyckoff = "" + wyn + String.fromCharCode(0x60 + wyabc); +System.out.println("SITE " + siteNumber + " occ=" + nOccupants + " " + atoms[0].elementSymbol + " " + atoms[0].atomName + " " + wyckoff + " " + atoms[0] + (nOccupants > 1 ? atoms[1].atomName : "") + " valence=" + valence + " " + index2 + " " + Integer.toHexString(unk3s) + " " + Integer.toHexString(unk4b) + " " + Integer.toHexString(unk5b)); +return; +}); +Clazz.defineMethod(c$, "readString", +function(){ +var n = this.binaryDoc.readByte(); +this.binaryDoc.readByteArray(this.buf, 0, n); +return String.instantialize(this.buf, 0, n); +}); +Clazz.defineMethod(c$, "seek", +function(label, where){ +var bytes = label.getBytes(); +if (where > 0) this.binaryDoc.seek(where); +var p = (where >= 0 ? where : this.binaryDoc.getPosition()); +System.out.println("looking for " + label + " @" + p); +var off = 0; +var n = bytes.length; +var p0 = p; +while (off < n) { +var b = this.binaryDoc.readByte(); +p++; +if (b == bytes[off]) { +off++; +} else if (off > 0) { +this.binaryDoc.seek(p = p0 = p0 + 1); +off = 0; +}} +System.out.println(label + " found at " + (p - n)); +return p; +}, "~S,~N"); +c$.getSymbol = Clazz.defineMethod(c$, "getSymbol", +function(sym){ +if (sym == null) return "Xx"; +var len = sym.length; +if (len < 2) return sym; +var ch1 = sym.charAt(1); +if (ch1 >= 'a' && ch1 <= 'z') return sym.substring(0, 2); +return "" + sym.charAt(0); +}, "~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CrystalReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CrystalReader.js new file mode 100755 index 000000000000..deb01b20b2d5 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/CrystalReader.js @@ -0,0 +1,812 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader", "JU.Lst", "$.P3"], "J.adapter.readers.xtal.CrystalReader", ["java.util.Arrays", "$.Hashtable", "JU.DF", "$.M3", "$.M4", "$.PT", "$.Quat", "$.SB", "$.V3", "JS.SymmetryOperation", "JU.Logger", "$.Tensor"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isVersion3 = false; +this.isPolymer = false; +this.isSlab = false; +this.haveCharges = false; +this.inputOnly = false; +this.isLongMode = false; +this.getLastConventional = false; +this.havePrimitiveMapping = false; +this.isProperties = false; +this.state = 0; +this.ac = 0; +this.atomIndexLast = 0; +this.atomFrag = null; +this.primitiveToIndex = null; +this.nuclearCharges = null; +this.lstCoords = null; +this.energy = null; +this.ptOriginShift = null; +this.directLatticeVectors = null; +this.spaceGroupName = null; +this.checkModelTrigger = false; +this.fullSymmetry = false; +this.htCriticalPoints = null; +this.directLatticeVectorsFirst = false; +this.cpno = -1; +this.symops = null; +this.f14 = null; +this.f16 = null; +this.primitiveVolume = 0; +this.primitiveDensity = 0; +this.firstLine = null; +this.type = null; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "CrystalReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.prepareFields (c$, function(){ +this.ptOriginShift = new JU.P3(); +this.symops = new JU.Lst(); +this.f14 = Clazz.newFloatArray (14, 0); +this.f16 = Clazz.newFloatArray (16, 0); +}); +Clazz.defineMethod(c$, "rd", +function(){ +while (Clazz.superCall(this, J.adapter.readers.xtal.CrystalReader, "rd", []) != null && (this.line.startsWith(" PROCESS") || this.line.startsWith(" INFORMATION") || this.line.startsWith(" WARNING"))) { +} +return this.line; +}); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.doProcessLines = false; +this.inputOnly = this.checkFilterKey("INPUT"); +this.isPrimitive = !this.inputOnly && !this.checkFilterKey("CONV"); +this.addVibrations = new Boolean (this.addVibrations & (!this.inputOnly && this.desiredModelNumber < 0)).valueOf(); +this.getLastConventional = (!this.isPrimitive && this.desiredModelNumber == 0); +this.fullSymmetry = this.checkFilterKey("FULLSYM"); +this.setFractionalCoordinates(this.readHeader()); +this.asc.crystalReaderLatticeOpsOnly = !this.inputOnly; +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (this.firstLine != null) { +this.line = this.firstLine; +this.firstLine = null; +}if (this.line.startsWith(" TYPE OF CALCULATION")) { +this.calculationType = this.line.substring(this.line.indexOf(":") + 1).trim(); +return true; +}if (this.line.indexOf("DIMENSIONALITY OF THE SYSTEM") >= 0) { +this.isMolecular = this.isSlab = this.isPolymer = false; +if (this.line.indexOf("2") >= 0) this.isSlab = true; + else if (this.line.indexOf("1") >= 0) this.isPolymer = true; + else if (this.line.indexOf("0") >= 0) this.isMolecular = true; +return true; +}if (!this.isPolymer && this.line.indexOf("CONSTRUCTION OF A NANOTUBE FROM A SLAB") >= 0) { +this.isPolymer = true; +this.isSlab = false; +return true; +}if (!this.isMolecular && this.line.indexOf("* CLUSTER CALCULATION") >= 0) { +this.isMolecular = true; +this.isSlab = false; +this.isPolymer = false; +return true; +}if (this.line.startsWith(" INPUT COORDINATES")) { +this.state = 1; +if (this.inputOnly) { +this.newAtomSet(); +this.readCoordLines(); +this.continuing = false; +}return true; +}if (this.line.startsWith(" GEOMETRY INPUT FROM EXTERNAL")) { +this.state = 2; +if (this.inputOnly) this.continuing = false; +return true; +}if (this.line.startsWith(" GEOMETRY FOR WAVE FUNCTION")) { +this.state = 3; +return true; +}if (this.line.startsWith(" COORDINATE OPTIMIZATION - POINT")) { +this.state = 4; +return true; +}if (this.line.startsWith(" FINAL OPTIMIZED GEOMETRY")) { +this.getLastConventional = false; +this.state = 5; +return true; +}if (this.addVibrations && this.line.contains(this.isVersion3 ? "EIGENVALUES (EV) OF THE MASS" : "EIGENVALUES (EIGV) OF THE MASS") || this.line.indexOf("LONGITUDINAL OPTICAL (LO)") >= 0) { +this.state = 6; +this.isLongMode = (this.line.indexOf("LONGITUDINAL OPTICAL (LO)") >= 0); +this.readFrequencies(); +return true; +}if (this.line.startsWith(" TRANSFORMATION MATRIX")) { +this.readPrimitiveLatticeVectors(); +return true; +}if (this.line.startsWith(" COORDINATES OF THE EQUIVALENT ATOMS") || this.line.startsWith(" INPUT LIST - ATOM N.")) { +return true; +}if (this.line.indexOf("SYMMOPS - ") >= 0) { +this.readSymmetryOperators(); +return true; +}if (this.line.startsWith(" LATTICE PARAMETER")) { +this.newLattice(this.line.indexOf("- CONVENTIONAL") >= 0); +return true; +}if (this.line.startsWith(" CRYSTALLOGRAPHIC CELL")) { +if (!this.isPrimitive) { +this.newLattice(true); +}return true; +}if (this.line.startsWith(" DIRECT LATTICE VECTOR")) { +this.getDirect(); +return true; +}if (this.line.startsWith(" COORDINATES IN THE CRYSTALLOGRAPHIC CELL")) { +this.checkModelTrigger = !this.isPrimitive; +if (this.checkModelTrigger) { +this.readCoordLines(); +}return true; +}if (this.addVibrations && this.line.startsWith(" FREQUENCIES COMPUTED ON A FRAGMENT")) { +this.readFreqFragments(); +return true; +}if (this.checkModelTrigger) { +if (this.line.indexOf("CARTESIAN COORDINATES") >= 0 || this.line.indexOf("TOTAL ENERGY") >= 0 || this.line.indexOf("REFERENCE GEOMETRY DEFINED") >= 0 || this.line.indexOf("FUNCTIONS") >= 0) { +this.checkModelTrigger = false; +if (!this.addModel()) return true; +}}if (this.line.startsWith(" ATOMS IN THE ASYMMETRIC UNIT")) { +if (this.isMolecular) return (this.doGetModel(++this.modelNumber, null) ? this.readAtoms() : this.checkLastModel()); +this.readCoordLines(); +this.checkModelTrigger = true; +}if (this.isProperties && this.line.startsWith(" ATOM N.AT.")) { +if (this.doGetModel(++this.modelNumber, null)) this.readAtoms(); + else this.checkLastModel(); +}if (!this.doProcessLines) return true; +if (this.line.startsWith(" TOTAL ENERGY(")) { +this.line = JU.PT.rep(this.line, "( ", "("); +var tokens = this.getTokens(); +this.energy = Double.$valueOf(Double.parseDouble(tokens[2])); +this.setEnergy(); +this.rd(); +if (this.line.startsWith(" ********")) this.discardLinesUntilContains("SYMMETRY ALLOWED"); + else if (this.line.startsWith(" TTTTTTTT")) this.discardLinesUntilContains(" *******"); +return true; +}if (this.line.startsWith(" MULLIKEN POPULATION ANALYSIS")) return this.readPartialCharges(); +if (this.line.startsWith(" TOTAL ATOMIC CHARGES")) return this.readTotalAtomicCharges(); +if (this.line.startsWith(" MAX GRADIENT")) return this.readGradient(); +if (this.line.startsWith(" ATOMIC SPINS SET")) return this.readData("spin", 3); +if (this.line.startsWith(" TOTAL ATOMIC SPINS :")) return this.readData("magneticMoment", 1); +if (this.line.startsWith(" BORN CHARGE TENSOR.")) return this.readBornChargeTensors(); +if (!this.isProperties) return true; +if (this.line.startsWith(" DEFINITION OF TRACELESS")) return this.getQuadrupoleTensors(); +if (this.line.startsWith(" MULTIPOLE ANALYSIS BY ATOMS")) { +this.appendLoadNote("Multipole Analysis"); +return true; +}if (this.line.startsWith(" CP N. ")) { +this.cpno = this.parseIntAt(this.line, 6); +return true; +}if (this.line.startsWith(" CP TYPE ")) { +this.processNextCriticalPoint(); +return true; +}return true; +}); +Clazz.defineMethod(c$, "processNextCriticalPoint", +function(){ +if (this.htCriticalPoints == null) { +this.htCriticalPoints = new java.util.Hashtable(); +this.asc.setModelInfoForSet("criticalPoints", this.htCriticalPoints, 0); +}var nblank = 0; +var id = null; +var entry = null; +var f = 0.5291772; +var m = null; +var v = NaN; +var g = NaN; +var rho = NaN; +var evalues = null; +var type = null; +while (this.line != null || this.rd().length > 0 || ++nblank < 2) { +if (this.line.indexOf("CLUSTER") >= 0) { +break; +}if (this.line.length > 0) nblank = 0; +var pt = this.line.indexOf(":"); +if (pt > 0) { +var key = this.line.substring(0, pt).trim(); +var value = this.line.substring(pt + 1); +if (key.equals("CP TYPE")) { +type = J.adapter.readers.xtal.CrystalReader.crtypes[Clazz.doubleToInt("??,-3,-1,+1,+3".indexOf(value.substring(5, 7)) / 3)]; +entry = this.htCriticalPoints.get(type); +if (entry == null) { +this.htCriticalPoints.put(type, entry = new JU.Lst()); +}m = new java.util.Hashtable(); +entry.addLast(m); +var i = entry.size(); +id = "cp_" + i; +m.put("cpno", Integer.$valueOf(this.cpno)); +m.put("id", id); +m.put("type", type); +m.put("index", Integer.$valueOf(i)); +} else if (key.equals("COORD(AU) (X Y Z)")) { +var xyz = JU.P3.new3(f * this.parseFloatStr(value.substring(0, 12)), f * this.parseFloatStr(value.substring(12, 24)), f * this.parseFloatStr(value.substring(24, 36))); +m.put("point", xyz); +JU.Logger.info("CRYSTAL TOPOND critical point " + type + " " + xyz); +} else if (key.equals("PROPERTIES (RHO,GRHO,LAP)")) { +rho = this.parseFloatStr(value.substring(0, 12)); +m.put("rho", Float.$valueOf(rho)); +m.put("lap", Float.$valueOf(this.parseFloatStr(value.substring(24, 36)))); +} else if (key.equals("PROPERTIES (-LAP,GLAP,RHO)")) { +m.put("lap", Float.$valueOf(-this.parseFloatStr(value.substring(0, 12)))); +rho = this.parseFloatStr(value.substring(24, 36)); +m.put("rho", Float.$valueOf(rho)); +} else if (key.equals("KINETIC ENERGY DENSITIES (G,K)")) { +g = this.parseFloatStr(value.substring(0, 12)); +m.put("kineticEnergyG", Float.$valueOf(g)); +} else if (key.equals("VIRIAL DENSITY")) { +v = this.parseFloatStr(value.substring(0, 12)); +m.put("virialDensityV", Float.$valueOf(v)); +m.put("ratioVG", Float.$valueOf(Math.abs(v) / g)); +m.put("energyDensityH", Float.$valueOf(g + v)); +m.put("ratioHRho", Float.$valueOf((g + v) / rho)); +} else if (key.equals("EIGENVALUES (L1 L2 L3)")) { +var e1 = this.parseFloatStr(value.substring(0, 12)); +var e2 = this.parseFloatStr(value.substring(12, 24)); +var e3 = this.parseFloatStr(value.substring(24, 36)); +evalues = Clazz.newFloatArray(-1, [e1, e2, e3]); +m.put("eigenvalues", evalues); +m.put("ellipticity", Float.$valueOf(e1 / e2 - 1)); +m.put("anisotropy", Float.$valueOf(e3 - Math.abs(e1 + e2) / 2)); +} else if (key.equals("EIGENVECTORS")) { +value = value + this.rd().substring(33) + this.rd().substring(33); +var ev = Clazz.newDoubleArray (3, 3, 0); +for (var ei = 0, p = 0; ei < 3; ei++) { +for (var ej = 0; ej < 3; ej++, p += 12) { +ev[ej][ei] = this.parseFloatStr(value.substring(p, p + 12)); +} +} +var evectors = new Array(3); +evectors[0] = JU.P3.new3(ev[0][0], ev[0][1], ev[0][2]); +evectors[1] = JU.P3.new3(ev[1][0], ev[1][1], ev[1][2]); +evectors[2] = JU.P3.new3(ev[2][0], ev[2][1], ev[2][2]); +System.out.println("evpts " + evectors[0] + " " + evectors[1] + " " + evectors[2]); +m.put("eigenvectors", evectors); +var t = new JU.Tensor().setFromEigenVectors(evectors, evalues, "cp", id, null); +m.put("tensor", t); +}}this.line = null; +} +}); +Clazz.defineMethod(c$, "newLattice", +function(isConv){ +this.lstCoords = null; +this.readLatticeParams(!isConv); +this.symops.clear(); +if (!isConv) this.primitiveToCrystal = null; +if (!this.directLatticeVectorsFirst) this.directLatticeVectors = null; +}, "~B"); +Clazz.defineMethod(c$, "addModel", +function(){ +if (this.getLastConventional) { +return true; +}if (!this.doGetModel(++this.modelNumber, null)) { +this.lstCoords = null; +this.checkLastModel(); +if (this.asc.iSet >= 0) this.asc.removeAtomSet(this.asc.iSet); +return false; +}this.processCoordLines(); +return true; +}); +Clazz.defineMethod(c$, "readSymmetryOperators", +function(){ +this.symops.clear(); +this.rd(); +this.f16[15] = 1; +while (this.rd() != null && this.line.length > 0 && this.line.indexOf("END") < 0) { +if (this.line.indexOf("V INV") >= 0) continue; +this.fillFloatArray(this.line, 0, this.f14); +if (Float.isNaN(this.f14[0])) break; +for (var i = 0; i < 12; i++) this.f16[i] = this.f14[J.adapter.readers.xtal.CrystalReader.smap[i]]; + +JU.Logger.info("CrystalReader: " + this.line); +if (this.isSlab || this.isPolymer) continue; +var m4 = JU.M4.newA16(this.f16); +var xyz = JS.SymmetryOperation.getXYZFromMatrix(m4, false, false, false); +if (xyz.indexOf("0y") >= 0 || xyz.indexOf("0z") >= 0) { +JU.Logger.error("CrystalReader: Symmetry operator could not be created for " + xyz); +} else { +this.symops.addLast(xyz); +JU.Logger.info("CrystalReader: state=" + this.state + " Symmop " + this.symops.size() + ": " + xyz); +}} +}); +Clazz.overrideMethod(c$, "finalizeSubclassReader", +function(){ +this.asc.setInfo("symmetryType", (this.isSlab ? "2D - SLAB" : this.isPolymer ? "1D - POLYMER" : this.type)); +this.processCoordLines(); +if (this.energy != null) this.setEnergy(); +this.finalizeReaderASCR(); +this.asc.checkNoEmptyModel(); +if (this.htCriticalPoints != null) { +var note = ""; +var list; +list = this.htCriticalPoints.get("nuclei"); +if (list != null) note += "\n _M.criticalPoints.nuclei.length = " + list.size(); +list = this.htCriticalPoints.get("bonds"); +if (list != null) note += "\n _M.criticalPoints.bonds.length = " + list.size(); +list = this.htCriticalPoints.get("rings"); +if (list != null) note += "\n _M.criticalPoints.rings.length = " + list.size(); +list = this.htCriticalPoints.get("cages"); +if (list != null) note += "\n _M.criticalPoints.cages.length = " + list.size(); +note += "\n Use MACRO TOPOND for TOPOND functions."; +this.addJmolScript("set drawHover"); +this.appendLoadNote(note); +this.setLoadNote(); +}}); +Clazz.defineMethod(c$, "getDirect", +function(){ +this.directLatticeVectors = this.read3Vectors(this.line.indexOf("(BOHR") >= 0); +if (!this.iHaveUnitCell) this.directLatticeVectorsFirst = true; +}); +Clazz.defineMethod(c$, "setUnitCellOrientation", +function(){ +if (this.directLatticeVectors == null) return; +var a = new JU.V3(); +var b = new JU.V3(); +if (this.isPrimitive) { +a = this.directLatticeVectors[0]; +b = this.directLatticeVectors[1]; +} else { +if (this.primitiveToCrystal == null) return; +var mp = new JU.M3(); +mp.setColumnV(0, this.directLatticeVectors[0]); +mp.setColumnV(1, this.directLatticeVectors[1]); +mp.setColumnV(2, this.directLatticeVectors[2]); +mp.mul(this.primitiveToCrystal); +a = new JU.V3(); +b = new JU.V3(); +mp.getColumnV(0, a); +mp.getColumnV(1, b); +}this.matUnitCellOrientation = JU.Quat.getQuaternionFrame( new JU.P3(), a, b).getMatrix(); +JU.Logger.info("oriented unit cell is in model " + this.asc.atomSetCount); +}); +Clazz.defineMethod(c$, "readPrimitiveLatticeVectors", +function(){ +this.primitiveToCrystal = JU.M3.newA9(this.fillFloatArray(null, 0, Clazz.newFloatArray (9, 0))); +}); +Clazz.defineMethod(c$, "readHeader", +function(){ +this.havePrimitiveMapping = true; +this.discardLinesUntilContains("*******************************************************************************"); +this.readLines(2); +this.isVersion3 = (this.line.indexOf("CRYSTAL03") >= 0); +this.discardLinesUntilContains("EEEEEEEEEE"); +this.rd(); +var name; +if (this.line.length == 0) { +this.discardLinesUntilContains("*********"); +name = this.rd().trim(); +} else { +name = this.line.trim(); +this.rd(); +}this.type = this.rd().trim(); +var pt = this.type.indexOf("- PROPERTIES"); +if (pt >= 0) { +this.isProperties = true; +this.type = this.type.substring(0, pt).trim(); +}this.asc.setCollectionName(name + (!this.isProperties && this.desiredModelNumber == 0 ? " (optimized)" : "")); +if (this.type.indexOf("GEOMETRY INPUT FROM EXTERNAL FILE") >= 0) { +this.firstLine = this.line; +this.type = this.rd().trim(); +}this.isPolymer = (this.type.equals("1D - POLYMER") || this.type.equals("POLYMER CALCULATION")); +this.isSlab = (this.type.equals("2D - SLAB") || this.type.equals("SLAB CALCULATION")); +if ((this.isPolymer || this.isSlab) && !this.isPrimitive) { +JU.Logger.error("Cannot use FILTER \"conventional\" with POLYMER or SLAB"); +this.isPrimitive = true; +}this.asc.setInfo("unitCellType", (this.isPrimitive ? "primitive" : "conventional")); +if (this.type.indexOf("MOLECULAR") >= 0) { +this.isMolecular = this.doProcessLines = true; +this.rd(); +this.asc.setInfo("molecularCalculationPointGroup", this.line.substring(this.line.indexOf(" OR ") + 4).trim()); +return false; +}this.discardLinesUntilContains2("SPACE GROUP", "****"); +pt = this.line.indexOf(":"); +if (pt >= 0 && !this.isPrimitive) this.spaceGroupName = this.line.substring(pt + 1).trim(); +this.doApplySymmetry = this.isProperties; +return !this.isProperties; +}); +Clazz.defineMethod(c$, "readLatticeParams", +function(isPrimitive){ +var f = (this.line.indexOf("(BOHR") >= 0 ? 0.5291772 : 1); +if (isPrimitive) this.newAtomSet(); +this.primitiveVolume = 0; +this.primitiveDensity = 0; +if (this.isPolymer && !isPrimitive && this.line.indexOf("BOHR =") < 0) { +this.setUnitCell(this.parseFloatStr(this.line.substring(this.line.indexOf("CELL") + 4)) * f, -1, -1, 90, 90, 90); +} else { +while (this.rd().indexOf("GAMMA") < 0) if (this.line.indexOf("VOLUME=") >= 0) { +this.primitiveVolume = this.parseFloatStr(this.line.substring(43)); +this.primitiveDensity = this.parseFloatStr(this.line.substring(66)); +} +var tokens = JU.PT.getTokens(this.rd()); +var a = this.parseFloatStr(tokens[0]); +var b = this.parseFloatStr(tokens[1]); +if (!this.isSlab && !this.isPolymer && tokens.length == 7) { +this.primitiveVolume = this.parseFloatStr(tokens[6]); +if (Math.abs(this.primitiveVolume - a * b) < 0.1) { +this.isSlab = true; +}}if (this.isSlab) { +if (isPrimitive) this.setUnitCell(a * f, b * f, -1, this.parseFloatStr(tokens[3]), this.parseFloatStr(tokens[4]), this.parseFloatStr(tokens[5])); + else this.setUnitCell(a * f, b * f, -1, 90, 90, this.parseFloatStr(tokens[2])); +} else if (this.isPolymer) { +this.setUnitCell(a, -1, -1, this.parseFloatStr(tokens[3]), this.parseFloatStr(tokens[4]), this.parseFloatStr(tokens[5])); +} else { +this.setUnitCell(a * f, b * f, this.parseFloatStr(tokens[2]) * f, this.parseFloatStr(tokens[3]), this.parseFloatStr(tokens[4]), this.parseFloatStr(tokens[5])); +}}}, "~B"); +Clazz.defineMethod(c$, "getAtomIndexFromPrimitiveIndex", +function(iPrim){ +return (this.primitiveToIndex == null ? iPrim : this.primitiveToIndex[iPrim]); +}, "~N"); +Clazz.defineMethod(c$, "readAtoms", +function(){ +if (this.isMolecular) this.newAtomSet(); +this.lstCoords = null; +while (this.rd() != null && this.line.indexOf("*") < 0) { +if (this.line.indexOf("X(ANGSTROM") >= 0) { +this.setFractionalCoordinates(false); +this.isMolecular = true; +}} +var i = this.atomIndexLast; +var doNormalizePrimitive = false; +this.atomIndexLast = this.asc.ac; +var isFractional = this.iHaveFractionalCoordinates; +if (!isFractional) { +this.setUnitCellOrientation(); +if (this.matUnitCellOrientation != null) this.getSymmetry().initializeOrientation(this.matUnitCellOrientation); +}while (this.rd() != null && this.line.length > 0 && this.line.indexOf(this.isPrimitive ? "*" : "=") < 0) { +var atom = this.asc.addNewAtom(); +var tokens = this.getTokens(); +var pt = (this.isProperties ? 1 : 2); +atom.elementSymbol = J.adapter.smarter.AtomSetCollectionReader.getElementSymbol(this.getAtomicNumber(tokens[pt++])); +atom.atomName = J.adapter.readers.xtal.CrystalReader.fixAtomName(tokens[pt++]); +if (this.isProperties) pt++; +var x = this.parseFloatStr(tokens[pt++]); +var y = this.parseFloatStr(tokens[pt++]); +var z = this.parseFloatStr(tokens[pt]); +if (this.haveCharges) atom.partialCharge = this.asc.atoms[i++].partialCharge; +if (isFractional && !this.isProperties) { +if (x < 0 && (this.isPolymer || this.isSlab || doNormalizePrimitive)) x += 1; +if (y < 0 && (this.isSlab || doNormalizePrimitive)) y += 1; +if (z < 0 && doNormalizePrimitive) z += 1; +}this.setAtomCoordXYZ(atom, x, y, z); +} +this.ac = this.asc.ac - this.atomIndexLast; +return true; +}); +c$.fixAtomName = Clazz.defineMethod(c$, "fixAtomName", +function(s){ +return (s.length > 1 && JU.PT.isLetter(s.charAt(1)) ? s.substring(0, 1) + Character.toLowerCase(s.charAt(1)) + s.substring(2) : s); +}, "~S"); +Clazz.defineMethod(c$, "getAtomicNumber", +function(token){ +return this.parseIntStr(token) % 100; +}, "~S"); +Clazz.defineMethod(c$, "readCoordLines", +function(){ +var atom = (this.inputOnly ? " ATOM" : " ATOM"); +if (this.line.indexOf(atom) < 0) this.discardLinesUntilContains(atom); +this.lstCoords = new JU.Lst(); +while (this.rd() != null && this.line.length > 0) if (this.line.indexOf("****") < 0) this.lstCoords.addLast(this.line); + +}); +Clazz.defineMethod(c$, "processCoordLines", +function(){ +if (this.lstCoords == null) return; +this.ac = this.lstCoords.size(); +var irreducible = null; +for (var i = 0; i < this.ac; i++) { +var atom = this.asc.addNewAtom(); +var tokens = JU.PT.getTokens(this.lstCoords.get(i)); +atom.atomSerial = this.parseIntStr(tokens[0]); +var atomicNumber; +var offset; +switch (tokens.length) { +case 8: +case 7: +atomicNumber = this.getAtomicNumber(tokens[2]); +offset = 4; +if (i == 0) irreducible = Clazz.newFloatArray (this.ac, 0); +if (tokens[1].equals("T")) irreducible[i] = 1; +break; +default: +atomicNumber = this.getAtomicNumber(tokens[1]); +offset = 2; +break; +} +var x = this.parseFloatStr(tokens[offset++]) + this.ptOriginShift.x; +var y = this.parseFloatStr(tokens[offset++]) + this.ptOriginShift.y; +var z = this.parseFloatStr(tokens[offset]) + this.ptOriginShift.z; +this.setAtomCoordXYZ(atom, x, y, z); +atom.elementSymbol = J.adapter.smarter.AtomSetCollectionReader.getElementSymbol(atomicNumber); +} +this.lstCoords = null; +if (irreducible != null) { +this.asc.setAtomProperties("irreducible", irreducible, -1, false); +}if (this.primitiveVolume > 0) { +this.asc.setAtomSetModelProperty("volumePrimitive", JU.DF.formatDecimal(this.primitiveVolume, 3)); +this.asc.setModelInfoForSet("primitiveVolume", Float.$valueOf(this.primitiveVolume), this.asc.iSet); +}if (this.primitiveDensity > 0) { +this.asc.setAtomSetModelProperty("densityPrimitive", JU.DF.formatDecimal(this.primitiveDensity, 3)); +this.asc.setModelInfoForSet("primitiveDensity", Float.$valueOf(this.primitiveDensity), this.asc.iSet); +}}); +Clazz.overrideMethod(c$, "applySymmetryAndSetTrajectory", +function(){ +this.setUnitCellOrientation(); +var m4p2c; +var m4c2p; +if (this.primitiveToCrystal != null) { +this.asc.setModelInfoForSet("primitiveToCrystal", this.primitiveToCrystal, this.asc.iSet); +m4p2c = new JU.M4(); +m4p2c.setRotationScale(this.primitiveToCrystal); +m4p2c.m33 = 1; +this.asc.setModelInfoForSet("mat4PrimitiveToCrystal", m4p2c, this.asc.iSet); +m4c2p = JU.M4.newM4(m4p2c); +m4c2p.invert(); +this.asc.setModelInfoForSet("mat4CrystalToPrimitive", m4c2p, this.asc.iSet); +if (this.symops.size() > 0) { +this.asc.setModelInfoForSet("fileSymmetryOperations", this.symops.clone(), this.asc.iSet); +}}this.iHaveSymmetryOperators = false; +this.applySymTrajASCR(); +}); +Clazz.defineMethod(c$, "newAtomSet", +function(){ +if (this.ac > 0 && this.asc.ac > 0) { +this.applySymmetryAndSetTrajectory(); +this.asc.newAtomSet(); +}if (this.spaceGroupName != null) { +this.setSpaceGroupName(this.spaceGroupName); +}this.ac = 0; +}); +Clazz.defineMethod(c$, "setEnergy", +function(){ +this.asc.setAtomSetEnergy("" + this.energy, this.energy.floatValue()); +this.asc.setCurrentModelInfo("Energy", this.energy); +this.asc.setInfo("Energy", this.energy); +this.asc.setAtomSetName("Energy = " + this.energy + " Hartree"); +}); +Clazz.defineMethod(c$, "readPartialCharges", +function(){ +if (this.haveCharges || this.asc.ac == 0) return true; +this.haveCharges = true; +this.readLines(3); +var atoms = this.asc.atoms; +var i0 = this.asc.getLastAtomSetAtomIndex(); +var iPrim = 0; +while (this.rd() != null && this.line.length > 3) if (this.line.charAt(3) != ' ') { +var iConv = this.getAtomIndexFromPrimitiveIndex(iPrim); +if (iConv >= 0) atoms[i0 + iConv].partialCharge = this.parseFloatRange(this.line, 9, 11) - this.parseFloatRange(this.line, 12, 18); +iPrim++; +} +return true; +}); +Clazz.defineMethod(c$, "readTotalAtomicCharges", +function(){ +var data = new JU.SB(); +while (this.rd() != null && this.line.indexOf("T") < 0) data.append(this.line); + +var tokens = JU.PT.getTokens(data.toString()); +var charges = Clazz.newFloatArray (tokens.length, 0); +if (this.nuclearCharges == null || this.nuclearCharges.length != charges.length) this.nuclearCharges = charges; +if (this.asc.ac == 0) return true; +var atoms = this.asc.atoms; +var i0 = this.asc.getLastAtomSetAtomIndex(); +for (var i = 0; i < charges.length; i++) { +var iConv = this.getAtomIndexFromPrimitiveIndex(i); +if (iConv >= 0) { +charges[i] = this.parseFloatStr(tokens[i]); +atoms[i0 + iConv].partialCharge = this.nuclearCharges[i] - charges[i]; +}} +return true; +}); +Clazz.defineMethod(c$, "readFreqFragments", +function(){ +var numAtomsFrag = this.parseIntRange(this.line, 39, 44); +if (numAtomsFrag < 0) return; +this.atomFrag = Clazz.newIntArray (numAtomsFrag, 0); +var Sfrag = ""; +while (this.rd() != null && this.line.indexOf("(") >= 0) Sfrag += this.line; + +Sfrag = JU.PT.rep(Sfrag, "(", " "); +Sfrag = JU.PT.rep(Sfrag, ")", " "); +var tokens = JU.PT.getTokens(Sfrag); +for (var i = 0, pos = 0; i < numAtomsFrag; i++, pos += 3) this.atomFrag[i] = this.getAtomIndexFromPrimitiveIndex(this.parseIntStr(tokens[pos]) - 1); + +java.util.Arrays.sort(this.atomFrag); +}); +Clazz.defineMethod(c$, "readFrequencies", +function(){ +this.getLastConventional = false; +this.addModel(); +this.energy = null; +this.discardLinesUntilContains("MODES"); +var haveIntensities = (this.line.indexOf("INTENS") >= 0); +this.rd(); +var vData = new JU.Lst(); +var freqAtomCount = (this.atomFrag == null ? this.ac : 0); +while (this.rd() != null && this.line.length > 0) { +var i0 = this.parseIntRange(this.line, 1, 5); +var i1 = this.parseIntRange(this.line, 6, 10); +var irrep = (this.isLongMode ? this.line.substring(48, 51) : this.line.substring(49, 52)).trim(); +var intens = (!haveIntensities ? "not available" : (this.isLongMode ? this.line.substring(53, 61) : this.line.substring(59, 69).$replace(')', ' ')).trim()); +var irActivity = (this.isLongMode ? "A" : this.line.substring(55, 58).trim()); +var ramanActivity = (this.isLongMode ? "I" : this.line.substring(71, 73).trim()); +var data = Clazz.newArray(-1, [irrep, intens, irActivity, ramanActivity]); +for (var i = i0; i <= i1; i++) vData.addLast(data); + +} +var test = (this.isLongMode ? "LO MODES FOR IRREP" : this.isVersion3 ? "THE CORRESPONDING MODES" : "NORMAL MODES NORMALIZED TO CLASSICAL AMPLITUDES"); +this.rd(); +var ramanData = null; +if (this.line.indexOf("
") >= 0) ramanData = this.readRaman(null); +if (!this.line.contains(test)) this.discardLinesUntilContains(test); +this.rd(); +var modelAtomCount = -1; +while (this.rd() != null && this.line.startsWith(" FREQ(CM**-1)")) { +var tokens = JU.PT.getTokens(this.line.substring(15)); +var frequencies = Clazz.newFloatArray (tokens.length, 0); +var frequencyCount = frequencies.length; +for (var i = 0; i < frequencyCount; i++) { +frequencies[i] = this.parseFloatStr(tokens[i]); +if (this.debugging) JU.Logger.debug((this.vibrationNumber + i) + " frequency=" + frequencies[i]); +} +var ignore = Clazz.newBooleanArray(frequencyCount, false); +var iAtom0 = 0; +var nData = vData.size(); +var isFirst = true; +for (var i = 0; i < frequencyCount; i++) { +tokens = vData.get(this.vibrationNumber % nData); +ignore[i] = (!this.doGetVibration(++this.vibrationNumber) || tokens == null); +if (ignore[i]) continue; +this.applySymmetryAndSetTrajectory(); +if (isFirst) { +modelAtomCount = this.asc.getLastAtomSetAtomCount(); +}this.cloneLastAtomSet(this.ac, null); +if (isFirst) { +iAtom0 = this.asc.getLastAtomSetAtomIndex(); +isFirst = false; +}this.setFreqValue(frequencies[i], tokens); +} +this.rd(); +this.fillFrequencyData(iAtom0, freqAtomCount, modelAtomCount, ignore, false, 14, 10, this.atomFrag, 0, null); +this.rd(); +} +if (ramanData != null) this.readRaman(ramanData); +}); +Clazz.defineMethod(c$, "setFreqValue", +function(freq, data){ +var activity = "IR: " + data[2] + ", Ram.: " + data[3]; +this.asc.setAtomSetFrequency(this.vibrationNumber, null, activity, "" + freq, null); +this.asc.setAtomSetModelProperty("IRintensity", data[1] + " km/Mole"); +this.asc.setAtomSetModelProperty("vibrationalSymmetry", data[0]); +this.asc.setAtomSetModelProperty("IRactivity", data[2]); +this.asc.setAtomSetModelProperty("Ramanactivity", data[3]); +this.asc.setAtomSetName((this.isLongMode ? "LO " : "") + data[0] + " " + JU.DF.formatDecimal(freq, 2) + " cm-1 (" + JU.DF.formatDecimal(Float.parseFloat(data[1]), 0) + " km/Mole), " + activity); +}, "~N,~A"); +Clazz.defineMethod(c$, "readRaman", +function(ramanData){ +if (ramanData == null) { +ramanData = new JU.Lst(); +this.rd(); +while (this.rd() != null && !this.line.contains(" ")) ramanData.addLast(this.line); + +return ramanData; +}var info; +var i = 0; +var n = ramanData.size(); +for (; i < n; i++) { +this.line = ramanData.get(i); +if (this.line.contains("---")) break; +} +for (++i; i < n; i++) { +this.line = ramanData.get(i); +if (this.line.length == 0) break; +var mode1 = this.parseIntRange(this.line, 1, 5); +var mode2 = this.parseIntRange(this.line, 6, 10); +var i_tot = this.parseFloatRange(this.line, 30, 40); +var i_par = this.parseFloatRange(this.line, 40, 50); +var i_perp = this.parseFloatRange(this.line, 50, 60); +for (var i0 = 0, mode = mode1; mode <= mode2; mode++) { +var imodel = this.getModelForMode(i0, mode); +if (imodel < 0) continue; +i0 = imodel + 1; +info = this.asc.getAtomSetAuxiliaryInfoValue(imodel, "ramanInfo"); +if (info == null) this.asc.setModelInfoForSet("ramanInfo", info = new java.util.Hashtable(), imodel); +info.put("isotropicIntensities", Clazz.newFloatArray(-1, [i_tot, i_par, i_perp])); +} +} +for (; i < n; i++) { +this.line = ramanData.get(i); +if (this.line.contains("---")) break; +} +for (++i; i < n; i++) { +this.line = ramanData.get(i); +if (this.line.length == 0) break; +var mode1 = this.parseIntRange(this.line, 1, 5); +var mode2 = this.parseIntRange(this.line, 6, 10); +var i_xx = this.parseFloatRange(this.line, 30, 38); +var i_xy = this.parseFloatRange(this.line, 38, 46); +var i_xz = this.parseFloatRange(this.line, 46, 54); +var i_yy = this.parseFloatRange(this.line, 54, 62); +var i_yz = this.parseFloatRange(this.line, 62, 70); +var i_zz = this.parseFloatRange(this.line, 70, 78); +for (var i0 = 0, mode = mode1; mode <= mode2; mode++) { +var imodel = this.getModelForMode(i0, mode); +if (imodel < 0) continue; +i0 = imodel + 1; +var a = Clazz.newArray(-1, [ Clazz.newDoubleArray(-1, [i_xx, i_xy, i_xz]), Clazz.newDoubleArray(-1, [i_xy, i_yy, i_yz]), Clazz.newDoubleArray(-1, [i_xz, i_yz, i_zz])]); +this.asc.atoms[this.asc.getAtomSetAtomIndex(imodel)].addTensor( new JU.Tensor().setFromAsymmetricTensor(a, "raman", "mode" + mode), "raman", false); +} +} +this.appendLoadNote("Ellipsoids set \"raman\": Raman tensors"); +return null; +}, "JU.Lst"); +Clazz.defineMethod(c$, "getModelForMode", +function(i0, mode){ +var n = this.asc.atomSetCount; +for (var i = i0; i < n; i++) { +var imode = this.asc.getAtomSetAuxiliaryInfoValue(i, "vibrationalMode"); +var m = (imode == null ? 0 : imode.intValue()); +if (m == mode) return i; +} +return -1; +}, "~N,~N"); +Clazz.defineMethod(c$, "readGradient", +function(){ +var key = null; +while (this.line != null) { +var tokens = this.getTokens(); +if (this.line.indexOf("MAX GRAD") >= 0) key = "maxGradient"; + else if (this.line.indexOf("RMS GRAD") >= 0) key = "rmsGradient"; + else if (this.line.indexOf("MAX DISP") >= 0) key = "maxDisplacement"; + else if (this.line.indexOf("RMS DISP") >= 0) key = "rmsDisplacement"; + else break; +if (this.asc.ac > 0) this.asc.setAtomSetModelProperty(key, tokens[2]); +this.rd(); +} +return true; +}); +Clazz.defineMethod(c$, "readData", +function(name, nfields){ +this.processCoordLines(); +var f = Clazz.newFloatArray (this.ac, 0); +for (var i = 0; i < this.ac; i++) f[i] = 0; + +var data = ""; +while (this.rd() != null && (this.line.length < 4 || JU.PT.isDigit(this.line.charAt(3)))) data += this.line; + +data = JU.PT.rep(data, "-", " -"); +var tokens = JU.PT.getTokens(data); +for (var i = 0, pt = nfields - 1; i < this.ac; i++, pt += nfields) { +var iConv = this.getAtomIndexFromPrimitiveIndex(i); +if (iConv >= 0) f[iConv] = this.parseFloatStr(tokens[pt]); +} +this.asc.setAtomProperties(name, f, -1, false); +return true; +}, "~S,~N"); +Clazz.defineMethod(c$, "getQuadrupoleTensors", +function(){ +this.readLines(6); +var atoms = this.asc.atoms; +var vectors = new Array(3); +if (this.directLatticeVectors == null) vectors = Clazz.newArray(-1, [JU.V3.new3(1, 0, 0), JU.V3.new3(0, 1, 0), JU.V3.new3(0, 0, 1)]); + else for (var i = 0; i < 3; i++) { +vectors[i] = JU.V3.newV(this.directLatticeVectors[i]); +vectors[i].normalize(); +} +while (this.rd() != null && this.line.startsWith(" *** ATOM")) { +var tokens = this.getTokens(); +var index = this.parseIntStr(tokens[3]) - 1; +tokens = JU.PT.getTokens(this.readLines(3)); +atoms[index].addTensor( new JU.Tensor().setFromEigenVectors(vectors, Clazz.newFloatArray(-1, [this.parseFloatStr(tokens[1]), this.parseFloatStr(tokens[3]), this.parseFloatStr(tokens[5])]), "quadrupole", atoms[index].atomName, null), null, false); +this.rd(); +} +this.appendLoadNote("Ellipsoids set \"quadrupole\": Quadrupole tensors"); +return true; +}); +Clazz.defineMethod(c$, "readBornChargeTensors", +function(){ +this.processCoordLines(); +this.rd(); +var atoms = this.asc.atoms; +while (this.rd().startsWith(" ATOM")) { +var index = this.parseIntAt(this.line, 5) - 1; +var atom = atoms[index]; +this.readLines(2); +atom.addTensor( new JU.Tensor().setFromAsymmetricTensor(this.fill3x3(null, -3), "charge", atom.elementSymbol + (index + 1)), null, false); +this.rd(); +} +this.appendLoadNote("Ellipsoids set \"charge\": Born charge tensors"); +return false; +}); +c$.crtypes = Clazz.newArray(-1, ["??", "nuclei", "bonds", "rings", "cages"]); +c$.smap = Clazz.newIntArray(-1, [2, 3, 4, 11, 5, 6, 7, 12, 8, 9, 10, 13]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/DmolReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/DmolReader.js new file mode 100755 index 000000000000..81be3a55e7a6 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/DmolReader.js @@ -0,0 +1,103 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.DmolReader", ["JU.DF", "$.PT", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.unitCellData = null; +this.totE = null; +this.geomOpt = false; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "DmolReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (this.line.contains("** GEOMETRY OPTIMIZATION IN DELOCALIZED COORDINATES **")) { +this.geomOpt = true; +} else if (this.line.contains("INCOOR, atomic coordinates")) { +this.geomOpt = false; +} else if (!this.geomOpt ? this.line.contains("$cell vectors") : this.line.contains("Lattice:")) { +this.readCellParam(); +} else if (!this.geomOpt ? this.line.contains("$coordinates") : this.line.contains("Input Coordinates")) { +this.readCoord(); +} else if (this.line.contains(" Total Energy")) { +this.readEnergy(); +} else if (this.line.contains("Frequencies (cm-1)")) { +this.readFreq(); +}return true; +}); +Clazz.defineMethod(c$, "readCellParam", +function(){ +this.unitCellData = Clazz.newFloatArray (9, 0); +for (var n = 0, i = 0; n < 3; n++) { +var tokens = JU.PT.getTokens(this.rd()); +this.unitCellData[i++] = this.parseFloatStr(!this.geomOpt ? tokens[0] : tokens[4]) * 0.5291772; +this.unitCellData[i++] = this.parseFloatStr(!this.geomOpt ? tokens[1] : tokens[5]) * 0.5291772; +this.unitCellData[i++] = this.parseFloatStr(!this.geomOpt ? tokens[2] : tokens[6]) * 0.5291772; +} +}); +Clazz.defineMethod(c$, "newAtomSet", +function(){ +this.applySymmetryAndSetTrajectory(); +this.asc.newAtomSet(); +if (this.totE != null) this.setEnergy(); +this.doApplySymmetry = true; +if (this.unitCellData != null) { +this.addExplicitLatticeVector(0, this.unitCellData, 0); +this.addExplicitLatticeVector(1, this.unitCellData, 3); +this.addExplicitLatticeVector(2, this.unitCellData, 6); +this.setSpaceGroupName("P1"); +}this.setFractionalCoordinates(false); +}); +Clazz.defineMethod(c$, "readCoord", +function(){ +this.newAtomSet(); +if (this.geomOpt) this.readLines(2); +while (this.rd() != null && !this.geomOpt ? !this.line.contains("$end") : !this.line.contains("-----")) { +var tokens = this.getTokens(); +var atom = this.asc.addNewAtom(); +atom.atomName = !this.geomOpt ? tokens[0] : tokens[1]; +var factor = (!this.geomOpt ? 0.5291772 : 1.00); +var x = this.parseFloatStr(!this.geomOpt ? tokens[1] : tokens[2]) * factor; +var y = this.parseFloatStr(!this.geomOpt ? tokens[2] : tokens[3]) * factor; +var z = this.parseFloatStr(!this.geomOpt ? tokens[3] : tokens[4]) * factor; +atom.set(x, y, z); +this.setAtomCoord(atom); +} +}); +Clazz.defineMethod(c$, "readEnergy", +function(){ +this.rd(); +if (this.line.contains("Ef")) this.totE = Double.$valueOf(Double.parseDouble(JU.PT.getTokens(this.line.substring(this.line.indexOf("Ef") + 1, this.line.indexOf("Ha")))[1])); +}); +Clazz.defineMethod(c$, "setEnergy", +function(){ +this.asc.setAtomSetEnergy("" + this.totE, this.totE.floatValue()); +this.asc.setInfo("Energy", this.totE); +this.asc.setAtomSetName("E = " + this.totE + " Hartree"); +}); +Clazz.defineMethod(c$, "readFreq", +function(){ +var lastAtomCount = 0; +var ac = this.asc.getLastAtomSetAtomCount(); +while (this.rd() != null && this.line.charAt(1) == ' ') { +var tokens = this.getTokens(); +var frequencyCount = Clazz.doubleToInt(tokens.length / 2); +var frequencies = Clazz.newFloatArray (frequencyCount, 0); +for (var i = 1, n = 0; i < tokens.length; i += 2, n++) { +frequencies[n] = this.parseFloatStr(tokens[i]); +if (this.debugging) JU.Logger.debug((this.vibrationNumber + n) + " frequency=" + frequencies[n]); +} +var ignore = Clazz.newBooleanArray(frequencyCount, false); +var iAtom0 = 0; +for (var i = 0; i < frequencyCount; i++) { +ignore[i] = (!this.doGetVibration(++this.vibrationNumber)); +if (ignore[i]) continue; +this.applySymmetryAndSetTrajectory(); +lastAtomCount = this.cloneLastAtomSet(ac, null); +if (i == 0) iAtom0 = this.asc.getLastAtomSetAtomIndex(); +this.asc.setAtomSetFrequency(this.vibrationNumber, null, null, String.valueOf(frequencies[i]), null); +this.asc.setAtomSetName(JU.DF.formatDecimal(frequencies[i], 2) + " cm-1"); +} +this.rd(); +this.fillFrequencyData(iAtom0, ac, lastAtomCount, ignore, false, 5, 13, null, 0, null); +this.readLines(2); +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/EspressoReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/EspressoReader.js new file mode 100755 index 000000000000..ff0cfae55eda --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/EspressoReader.js @@ -0,0 +1,102 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.EspressoReader", ["JU.PT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.cellParams = null; +this.totEnergy = null; +this.endFlag = false; +this.aPar = 0; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "EspressoReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.setSpaceGroupName("P1"); +this.doApplySymmetry = true; +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (this.line.contains("lattice parameter (a_0)") || this.line.contains("lattice parameter (alat)")) { +this.readAparam(); +} else if (this.line.contains("crystal axes:")) { +this.readCellParam(false); +} else if (this.line.contains("CELL_PARAMETERS (")) { +this.readCellParam(true); +} else if (this.line.contains("Cartesian axes")) { +this.discardLinesUntilContains("positions ("); +if (this.doGetModel(++this.modelNumber, null)) this.readAtoms(); +} else if (this.line.contains("POSITIONS (")) { +if (this.doGetModel(++this.modelNumber, null)) this.readAtoms(); +} else if (this.line.contains("! total energy")) { +this.readEnergy(); +} else if (this.line.contains("A final scf")) { +this.endFlag = true; +}return true; +}); +Clazz.defineMethod(c$, "readAparam", +function(){ +this.aPar = this.parseFloatStr(this.getTokens()[4]) * 0.5291772; +}); +Clazz.defineMethod(c$, "readCellParam", +function(andAPar){ +var i0 = (andAPar ? 0 : 3); +if (this.line.contains("bohr")) this.aPar = 0.5291772; +if (andAPar && this.line.contains("=")) this.aPar = this.parseFloatStr(this.line.substring(this.line.indexOf("=") + 1)) * 0.5291772; +this.cellParams = Clazz.newFloatArray (9, 0); +for (var n = 0, i = 0; n < 3; n++) { +var tokens = JU.PT.getTokens(this.rd()); +this.cellParams[i++] = this.parseFloatStr(tokens[i0]) * this.aPar; +this.cellParams[i++] = this.parseFloatStr(tokens[i0 + 1]) * this.aPar; +this.cellParams[i++] = this.parseFloatStr(tokens[i0 + 2]) * this.aPar; +} +}, "~B"); +Clazz.defineMethod(c$, "newAtomSet", +function(){ +this.asc.newAtomSet(); +if (this.totEnergy != null) this.setEnergy(); +}); +Clazz.defineMethod(c$, "setCellParams", +function(){ +if (this.cellParams != null) { +this.addExplicitLatticeVector(0, this.cellParams, 0); +this.addExplicitLatticeVector(1, this.cellParams, 3); +this.addExplicitLatticeVector(2, this.cellParams, 6); +this.setSpaceGroupName("P1"); +}}); +Clazz.defineMethod(c$, "readAtoms", +function(){ +this.newAtomSet(); +var isAlat = (this.line.contains("alat") || this.line.contains("a_0")); +var firstStr = (this.line.contains("site n.")); +var isFractional = this.line.contains("crystal"); +var isBohr = this.line.contains("bohr"); +var isAngstrom = this.line.contains("angstrom"); +if (isAlat || isFractional || isAngstrom) this.setCellParams(); +this.setFractionalCoordinates(isFractional); +while (this.rd() != null && this.line.length > 45) { +var tokens = this.getTokens(); +var atom = this.asc.addNewAtom(); +atom.atomName = tokens[(isBohr || tokens.length == 4 || !firstStr ? 0 : 1)]; +var i1 = (isBohr || tokens.length == 4 || !firstStr ? 1 : tokens.length - 4); +var x = this.parseFloatStr(tokens[i1++]); +var y = this.parseFloatStr(tokens[i1++]); +var z = this.parseFloatStr(tokens[i1++]); +atom.set(x, y, z); +if (isBohr) { +atom.scale(0.5291772); +} else if (isAlat) { +atom.scale(this.aPar); +}this.setAtomCoord(atom); +} +this.applySymmetryAndSetTrajectory(); +if (this.endFlag) this.discardLinesUntilContains("Harris-Foulkes estimate"); +}); +Clazz.defineMethod(c$, "readEnergy", +function(){ +this.totEnergy = Double.$valueOf(Double.parseDouble(JU.PT.getTokens(this.line.substring(this.line.indexOf("=") + 1))[0])); +}); +Clazz.defineMethod(c$, "setEnergy", +function(){ +this.asc.setAtomSetEnergy("" + this.totEnergy, this.totEnergy.floatValue()); +this.asc.setInfo("Energy", this.totEnergy); +this.asc.setAtomSetName("E = " + this.totEnergy + " Ry"); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/GulpReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/GulpReader.js new file mode 100755 index 000000000000..9c565bdb199f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/GulpReader.js @@ -0,0 +1,247 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.GulpReader", ["java.util.Hashtable", "JU.PT", "$.V3"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isSlab = false; +this.isPolymer = false; +this.$isPrimitive = false; +this.sep = "-------"; +this.coordinatesArePrimitive = false; +this.atomCharges = null; +this.bTest = false; +this.a = 0; +this.b = 0; +this.c = 0; +this.alpha = 0; +this.beta = 0; +this.gamma = 0; +this.primitiveData = null; +this.totEnergy = null; +this.energyUnits = null; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "GulpReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.$isPrimitive = !this.checkFilterKey("CONV"); +this.coordinatesArePrimitive = true; +this.setFractionalCoordinates(this.readDimensionality()); +}); +Clazz.overrideMethod(c$, "finalizeSubclassReader", +function(){ +if (this.atomCharges == null) return; +var atoms = this.asc.atoms; +var f; +for (var i = this.asc.ac; --i >= 0; ) if ((f = this.atomCharges.get(atoms[i].atomName)) != null || (f = this.atomCharges.get(atoms[i].getElementSymbol())) != null) atoms[i].partialCharge = f.floatValue(); + +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (this.line.contains("Space group ")) { +this.readSpaceGroup(); +return true; +}if (this.isSlab ? this.line.contains("Surface cell parameters") : this.isPolymer ? this.line.contains("Polymer cell parameter") : (this.bTest = this.line.contains("Cartesian lattice vectors")) || this.line.contains("Cell parameters (Angstroms/Degrees)") || this.line.contains("Primitive cell parameters")) { +this.readCellParameters(this.bTest); +return true; +}if (this.line.contains("Monopole - monopole (total)")) { +this.readEnergy(); +return true; +}if (this.line.contains("Fractional coordinates of asymmetric unit :") || (this.bTest = this.line.contains("Final asymmetric unit coordinates")) || (this.bTest = this.line.contains("Final fractional coordinates ")) || this.line.contains("Mixed fractional/Cartesian coordinates") || this.line.contains("Cartesian coordinates of cluster ") || this.line.contains("Final cartesian coordinates of atoms :") && this.isMolecular) { +if (this.doGetModel(++this.modelNumber, null)) this.readAtomicPos(!this.bTest); +return true; +}if (this.line.contains("Species output for all configurations")) { +this.readPartialCharges(); +return true; +}if (!this.doProcessLines) return true; +if (this.line.contains("Final cell parameters and derivatives")) { +this.readFinalCell(); +return true; +}return true; +}); +Clazz.defineMethod(c$, "readDimensionality", +function(){ +this.discardLinesUntilContains("Dimensionality"); +var tokens = this.getTokens(); +switch (this.parseIntStr(tokens[2])) { +case 0: +this.isMolecular = true; +this.$isPrimitive = false; +return false; +case 1: +this.isPolymer = true; +this.$isPrimitive = false; +break; +case 2: +this.isSlab = true; +this.$isPrimitive = false; +break; +} +return true; +}); +Clazz.defineMethod(c$, "readSpaceGroup", +function(){ +this.sgName = this.line.substring(this.line.indexOf(":") + 1).trim(); +}); +c$.parameterIndex = Clazz.defineMethod(c$, "parameterIndex", +function(key){ +for (var i = J.adapter.readers.xtal.GulpReader.tags.length; --i >= 0; ) if (J.adapter.readers.xtal.GulpReader.tags[i].equals(key)) return i; + +return -1; +}, "~S"); +Clazz.defineMethod(c$, "setParameter", +function(key, value){ +switch (J.adapter.readers.xtal.GulpReader.parameterIndex(key)) { +case 0: +this.a = value; +break; +case 1: +this.b = value; +break; +case 2: +this.c = value; +break; +case 3: +this.alpha = value; +break; +case 4: +this.beta = value; +break; +case 5: +this.gamma = value; +break; +} +}, "~S,~N"); +Clazz.defineMethod(c$, "newAtomSet", +function(doSetUnitCell){ +this.asc.newAtomSet(); +if (doSetUnitCell) { +this.setModelParameters(this.coordinatesArePrimitive); +if (this.totEnergy != null) this.setEnergy(); +}}, "~B"); +Clazz.defineMethod(c$, "setModelParameters", +function(isPrimitive){ +if (this.sgName != null) this.setSpaceGroupName(isPrimitive ? "P1" : this.sgName); +if (isPrimitive && this.primitiveData != null) { +this.addExplicitLatticeVector(0, this.primitiveData, 0); +this.addExplicitLatticeVector(1, this.primitiveData, 3); +this.addExplicitLatticeVector(2, this.primitiveData, 6); +} else if (this.a != 0) { +if (this.isSlab) { +this.c = -1; +this.beta = this.gamma = 90; +} else if (this.isPolymer) { +this.b = this.c = -1; +this.alpha = this.beta = this.gamma = 90; +}this.setUnitCell(this.a, this.b, this.c, this.alpha, this.beta, this.gamma); +}}, "~B"); +Clazz.defineMethod(c$, "readCellParameters", +function(isLatticeVectors){ +if (isLatticeVectors) { +this.rd(); +this.primitiveData = this.fillFloatArray(null, 0, Clazz.newFloatArray (9, 0)); +this.a = 0; +return; +}var i0 = (this.line.indexOf("Full cell") < 0 ? 0 : 4); +this.coordinatesArePrimitive = (i0 == 0); +this.rd(); +while (this.rd() != null && this.line.contains("=")) { +var tokens = JU.PT.getTokens(this.line.$replace('=', ' ')); +for (var i = i0; i < i0 + 4; i += 2) if (tokens.length > i + 1) this.setParameter(tokens[i], this.parseFloatStr(tokens[i + 1])); + +} +}, "~B"); +Clazz.defineMethod(c$, "readFinalCell", +function(){ +this.discardLinesUntilContains(this.sep); +var tokens; +while (this.rd() != null && (tokens = this.getTokens()).length >= 2) this.setParameter(tokens[0], this.parseFloatStr(tokens[1])); + +if (this.primitiveData != null) { +this.scalePrimitiveData(0, this.a); +this.scalePrimitiveData(3, this.b); +this.scalePrimitiveData(6, this.c); +if (!this.coordinatesArePrimitive) while (this.rd() != null && this.line.indexOf("Final") < 0) if (this.line.indexOf("Non-primitive lattice parameters") > 0) { +this.rd(); +for (var i = 0; i < 2; i++) { +tokens = JU.PT.getTokens(this.rd().$replace('=', ' ')); +this.setParameter(tokens[0], this.parseFloatStr(tokens[1])); +this.setParameter(tokens[2], this.parseFloatStr(tokens[3])); +this.setParameter(tokens[4], this.parseFloatStr(tokens[5])); +} +break; +} +}this.setModelParameters(this.coordinatesArePrimitive); +this.applySymmetryAndSetTrajectory(); +if (this.totEnergy != null) this.setEnergy(); +}); +Clazz.defineMethod(c$, "scalePrimitiveData", +function(i, value){ +var v = JU.V3.new3(this.primitiveData[i], this.primitiveData[i + 1], this.primitiveData[i + 2]); +v.normalize(); +v.scale(value); +this.primitiveData[i++] = v.x; +this.primitiveData[i++] = v.y; +this.primitiveData[i++] = v.z; +}, "~N,~N"); +Clazz.overrideMethod(c$, "applySymmetryAndSetTrajectory", +function(){ +if (this.coordinatesArePrimitive && this.iHaveUnitCell && this.doCheckUnitCell && this.primitiveData != null && !this.$isPrimitive) { +this.setModelParameters(false); +var symFull = this.symmetry; +this.setModelParameters(true); +var atoms = this.asc.atoms; +var i0 = this.asc.getLastAtomSetAtomIndex(); +var i1 = this.asc.ac; +for (var i = i0; i < i1; i++) { +var atom = atoms[i]; +this.symmetry.toCartesian(atom, true); +symFull.toFractional(atom, true); +this.fixFloatPt(atom, 100000.0); +} +this.setModelParameters(false); +}this.applySymTrajASCR(); +}); +Clazz.defineMethod(c$, "readAtomicPos", +function(finalizeSymmetry){ +this.newAtomSet(finalizeSymmetry); +this.discardLinesUntilContains(this.sep); +this.discardLinesUntilContains(this.sep); +while (this.rd() != null) { +if (this.line.indexOf(this.sep) >= 0 && this.rd().indexOf("Region") < 0) break; +if (this.line.indexOf("Region") >= 0) { +this.rd(); +continue; +}this.line = this.line.$replace('*', ' '); +var tokens = this.getTokens(); +if (tokens[2].equals("c")) this.addAtomXYZSymName(tokens, 3, null, tokens[1]); +} +if (finalizeSymmetry) this.applySymmetryAndSetTrajectory(); +}, "~B"); +Clazz.defineMethod(c$, "readPartialCharges", +function(){ +this.atomCharges = new java.util.Hashtable(); +this.discardLinesUntilContains(this.sep); +this.discardLinesUntilContains(this.sep); +var tokens; +while ((tokens = JU.PT.getTokens(this.rd())).length > 5) { +var species = tokens[0]; +var charge = this.atomCharges.get(species); +var f = (charge == null ? 0 : charge.floatValue()); +this.atomCharges.put(species, Float.$valueOf((f + this.parseFloatStr(tokens[4])))); +} +}); +Clazz.defineMethod(c$, "readEnergy", +function(){ +if (this.line.indexOf("=") < 0) this.discardLinesUntilContains("="); +var tokens = JU.PT.getTokens(this.line.substring(this.line.indexOf("="))); +this.totEnergy = Double.$valueOf(Double.parseDouble(tokens[1])); +this.energyUnits = tokens[2]; +this.discardLinesUntilContains(this.sep); +}); +Clazz.defineMethod(c$, "setEnergy", +function(){ +this.asc.setAtomSetEnergy("" + this.totEnergy, this.totEnergy.floatValue()); +this.asc.setInfo("Energy", this.totEnergy); +this.asc.setAtomSetName("E = " + this.totEnergy + " " + this.energyUnits); +this.totEnergy = null; +}); +c$.tags = Clazz.newArray(-1, ["a", "b", "c", "alpha", "beta", "gamma"]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/JanaReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/JanaReader.js new file mode 100755 index 000000000000..ba33c09fa562 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/JanaReader.js @@ -0,0 +1,562 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.JanaReader", ["java.util.Hashtable", "JU.A4", "$.BS", "$.Lst", "$.Matrix", "$.P3", "$.PT", "$.Quat", "$.Rdr", "$.V3", "J.adapter.smarter.Atom", "J.api.Interface", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.lattvecs = null; +this.thisSub = 0; +this.modAxes = null; +this.haveM40Data = false; +this.qicount = 0; +this.molName = null; +this.molAtoms = null; +this.molTtypes = null; +this.modelMolecule = null; +this.molHasTLS = false; +this.matR = null; +this.rho = null; +this.firstPosition = false; +this.vR = null; +this.v0Cart = null; +this.isLegendre = false; +this.floats = null; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "JanaReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.prepareFields (c$, function(){ +this.floats = Clazz.newFloatArray (6, 0); +}); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.modAxes = this.getFilter("MODAXES="); +this.setFractionalCoordinates(true); +this.asc.newAtomSet(); +this.asc.setCurrentModelInfo("autoBondUsingOccupation", Boolean.TRUE); +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (this.line.length < 3) return true; +JU.Logger.info(this.line); +this.parseTokenStr(this.line); +switch ("tit cell ndim qi lat sym spg end wma".indexOf(this.line.substring(0, 3))) { +case 0: +this.asc.setAtomSetName(this.line.substring(5).trim()); +break; +case 5: +this.cell(); +this.setSymmetryOperator("x,y,z"); +break; +case 10: +this.ndim(); +break; +case 20: +if (this.lattvecs == null) this.lattvecs = new JU.Lst(); +if (!this.ms.addLatticeVector(this.lattvecs, this.line.substring(8))) this.appendLoadNote(this.line + " not supported"); +break; +case 30: +this.setSpaceGroupName(this.getTokens()[1]); +break; +case 25: +this.symmetry(); +break; +case 15: +this.qi(); +break; +case 35: +while (this.rd() != null) { +if (this.line.startsWith("command") || this.parseIntStr(this.line) >= 0) { +this.readM40Data(true); +break; +}} +this.continuing = false; +break; +case 40: +var n = 3 + this.modDim; +var m; +if (this.thisSub++ == 0) { +m = JU.Matrix.identity(n, n); +this.ms.addSubsystem("" + this.thisSub++, m); +}m = new JU.Matrix(null, n, n); +var a = m.getArray(); +var data = Clazz.newFloatArray (n * n, 0); +this.fillFloatArray(null, 0, data); +for (var i = 0, pt = 0; i < n; i++) for (var j = 0; j < n; j++, pt++) a[i][j] = data[pt]; + + +this.ms.addSubsystem("" + this.thisSub, m); +} +return true; +}); +Clazz.overrideMethod(c$, "doPreSymmetry", +function(){ +if (this.ms != null) this.ms.setModulation(false, null); +if (this.vibsFractional) this.asc.getXSymmetry().scaleFractionalVibs(); +}); +Clazz.overrideMethod(c$, "finalizeSubclassReader", +function(){ +if (!this.haveM40Data) this.readM40Data(false); +if (this.lattvecs != null && this.lattvecs.size() > 0) this.asc.getSymmetry().addLatticeVectors(this.lattvecs); +this.applySymmetryAndSetTrajectory(); +this.finalizeReaderASCR(); +}); +Clazz.overrideMethod(c$, "finalizeSubclassSymmetry", +function(haveSymmetry){ +this.adjustM40Occupancies(); +if (this.ms != null && haveSymmetry) { +this.ms.setModulation(true, this.asc.getXSymmetry().getBaseSymmetry()); +this.ms.finalizeModulation(); +}}, "~B"); +Clazz.defineMethod(c$, "cell", +function(){ +for (var ipt = 0; ipt < 6; ipt++) this.setUnitCellItem(ipt, this.parseFloat()); + +}); +Clazz.defineMethod(c$, "ndim", +function(){ +this.ms = J.api.Interface.getOption("adapter.readers.cif.MSRdr", this.vwr, "file"); +this.modDim = this.ms.initialize(this, (this.parseIntStr(this.getTokens()[1]) - 3)); +}); +Clazz.defineMethod(c$, "qi", +function(){ +var pt = Clazz.newDoubleArray (this.modDim, 0); +pt[this.qicount] = 1; +var a = Clazz.newDoubleArray(-1, [this.parseFloat(), this.parseFloat(), this.parseFloat()]); +this.parseTokenStr(this.rd()); +for (var i = 0; i < 3; i++) a[i] += this.parseFloat(); + +this.ms.addModulation(null, "W_" + (++this.qicount), a, -1); +this.ms.addModulation(null, "F_" + this.qicount + "_coefs_", pt, -1); +}); +Clazz.defineMethod(c$, "symmetry", +function(){ +this.setSymmetryOperator(JU.PT.rep(this.line.substring(9).trim(), " ", ",")); +}); +Clazz.defineMethod(c$, "readM40Data", +function(haveReader){ +if (haveReader) { +this.parseM40Floats(); +} else { +var m40File = this.filePath; +var ipt = m40File.lastIndexOf("."); +if (ipt < 0) return; +m40File = m40File.substring(0, ipt + 2) + "40"; +var id = m40File.substring(0, ipt); +this.reader.close(); +this.reader = JU.Rdr.getBR(this.vwr.getLigandModel(id, m40File, "_file", "----")); +if (this.out != null) this.out.append("******************************* M40 DATA *******************************\n"); +this.readM40Floats(); +}this.haveM40Data = true; +if (this.line.startsWith("command")) this.readM40WaveVectors(); +var nFree = 0; +var nGroups = 0; +var isAxial = false; +var newSub = (this.thisSub == 0 ? null : new JU.BS()); +var iSub = (this.thisSub == 0 ? 1 : this.thisSub); +for (var i = 0, n = 0, pt = 0; i < iSub; i++, pt += 10) { +nFree = this.getInt(pt, pt + 5); +nGroups = this.getInt(pt + 5, pt + 10); +isAxial = (this.getInt(pt + 15, pt + 20) == 1); +if (nGroups != 0 && i > 0) { +throw new Exception("Jmol cannot read rigid body M40 files for composites"); +}if (newSub != null) newSub.set(n = n + nFree); +} +iSub = (newSub == null ? 0 : 1); +var nAtoms = -1; +var refAtomName = null; +this.rho = null; +if (nGroups > 0) { +JU.Logger.info("JanaReader found " + nFree + " free atoms and " + nGroups + " groups"); +this.molName = null; +this.molAtoms = new JU.Lst(); +this.molTtypes = new JU.Lst(); +}while (this.skipToNextAtom() != null) { +nAtoms++; +var atom = new J.adapter.smarter.Atom(); +JU.Logger.info(this.line); +var name = this.line.substring(0, 9).trim(); +atom.atomName = name; +var isRefAtom = name.equals(refAtomName); +atom.foccupancy = this.floats[2]; +var isJanaMolecule = Float.isNaN(atom.foccupancy); +if (isJanaMolecule) { +var pointGroup = this.getStr(12, 18); +if (pointGroup.length > 0 && !pointGroup.equals("1")) { +throw new Exception("Jmol cannot process M40 files with molecule positions based on point-group symmetry."); +}refAtomName = null; +if (Float.isNaN(this.floats[4])) refAtomName = this.getStr(28, 37); + else this.rho = JU.P3.new3(this.floats[3], this.floats[4], this.floats[5]); +this.molName = name; +this.molAtoms.clear(); +this.molTtypes.clear(); +this.molHasTLS = false; +this.firstPosition = true; +this.modelMolecule = new JU.Lst(); +continue; +}var isExcluded = false; +var posName = (name.startsWith("pos#") ? name : null); +if (posName == null) { +if (!this.filterAtom(atom, 0)) { +if (!isRefAtom) continue; +isExcluded = true; +}this.setAtomCoordXYZ(atom, this.floats[3], this.floats[4], this.floats[5]); +if (isRefAtom) { +this.rho = JU.P3.newP(atom); +if (isExcluded) continue; +}this.asc.addAtom(atom); +if (iSub > 0) { +if (newSub.get(nAtoms)) iSub++; +atom.altLoc = ("" + iSub).charAt(0); +}this.readAtomRecord(atom, null, null, false); +if (this.molAtoms != null) this.molAtoms.addLast(atom); +} else { +if (this.molAtoms.size() == 0) continue; +this.processPosition(posName, atom, isAxial); +}} +}, "~B"); +Clazz.defineMethod(c$, "getInt", +function(col1, col2){ +var n = this.line.length; +return (n > col1 ? this.parseIntStr(this.getStr(col1, col2)) : 0); +}, "~N,~N"); +Clazz.defineMethod(c$, "getStr", +function(col1, col2){ +var n = this.line.length; +return (n > col1 ? this.line.substring(col1, Math.min(n, col2)).trim() : ""); +}, "~N,~N"); +Clazz.defineMethod(c$, "getFlag", +function(i){ +return (this.getInt(i, i + 1) > 0); +}, "~N"); +Clazz.defineMethod(c$, "skipToNextAtom", +function(){ +while (this.readM40Floats() != null && (this.line.length == 0 || this.line.charAt(0) == ' ' || this.line.charAt(0) == '-')) { +} +return this.line; +}); +Clazz.defineMethod(c$, "readM40WaveVectors", +function(){ +while (!this.readM40Floats().contains("end")) if (this.line.startsWith("wave")) { +var tokens = this.getTokens(); +var pt = Clazz.newDoubleArray (this.modDim, 0); +for (var i = 0; i < this.modDim; i++) pt[i] = this.parseFloatStr(tokens[i + 2]); + +this.ms.addModulation(null, "F_" + this.parseIntStr(tokens[1]) + "_coefs_", pt, -1); +} +this.readM40Floats(); +}); +Clazz.defineMethod(c$, "processPosition", +function(posName, pos, isAxial){ +pos.atomName = this.molName + "_" + posName; +var isImproper = (this.getInt(9, 11) == -1); +var systType = this.getInt(13, 14); +var rm = (systType == 0 ? null : new JU.P3()); +var rp = (systType == 0 ? null : new JU.P3()); +if (systType != 0) { +throw new Exception("Jmol can only read rigid body groups with basic crystallographic settings."); +}var rotData = this.readAtomRecord(pos, rm, rp, true); +var name = pos.atomName; +var n = this.molAtoms.size(); +JU.Logger.info(name + " Molecular group " + this.molName + " has " + n + " atoms"); +var ext = "_" + posName.substring(4); +var vTrans = JU.V3.new3(pos.anisoBorU[3], pos.anisoBorU[4], pos.anisoBorU[5]); +var phi = JU.Quat.newAA(JU.A4.newVA(JU.V3.new3(0, 0, 1), (pos.anisoBorU[0] / 180 * 3.141592653589793))); +var chi = JU.Quat.newAA(JU.A4.newVA(isAxial ? JU.V3.new3(0, 1, 0) : JU.V3.new3(1, 0, 0), (pos.anisoBorU[1] / 180 * 3.141592653589793))); +var psi = JU.Quat.newAA(JU.A4.newVA(isAxial ? JU.V3.new3(1, 0, 0) : JU.V3.new3(0, 0, 1), (pos.anisoBorU[2] / 180 * 3.141592653589793))); +this.matR = phi.mulQ(chi).mulQ(psi).getMatrix(); +if (isImproper) this.matR.scale(-1); +var script = ""; +for (var i = 0; i < n; i++) { +var a = this.molAtoms.get(i); +var newName = a.atomName; +script += ", " + newName; +if (this.firstPosition) { +newName += ext; +this.modelMolecule.addLast(JU.P3.newP(a)); +} else { +a = this.asc.newCloneAtom(a); +newName = newName.substring(0, newName.lastIndexOf("_")) + ext; +}a.atomName = newName; +var v0 = JU.V3.newVsub(this.modelMolecule.get(i), this.rho); +this.getSymmetry().toCartesian(this.v0Cart = JU.V3.newV(v0), true); +this.vR = JU.V3.newV(v0); +this.cartesianProduct(this.vR, null); +a.setT(this.rho); +a.add(vTrans); +a.add(this.vR); +this.copyModulations(";" + pos.atomName, ";" + newName); +if (rotData != null) this.setRigidBodyRotations(";" + newName, rotData); +} +this.firstPosition = false; +script = "@" + this.molName + ext + script.substring(1); +this.addJmolScript(script); +this.appendLoadNote(script); +}, "~S,J.adapter.smarter.Atom,~B"); +Clazz.defineMethod(c$, "cartesianProduct", +function(vA, vB){ +this.symmetry.toCartesian(vA, true); +if (vB == null) this.matR.rotate2(vA, vA); + else vA.cross(vA, vB); +this.symmetry.toFractional(vA, true); +}, "JU.T3,JU.T3"); +Clazz.defineMethod(c$, "readAtomRecord", +function(atom, rm, rp, isPos){ +var label = ";" + atom.atomName; +var tType = (isPos ? -1 : this.getInt(13, 14)); +if (!isPos && this.molTtypes != null) this.molTtypes.addLast(Integer.$valueOf(tType)); +var haveSpecialOcc = this.getFlag(60); +var haveSpecialDisp = this.getFlag(61); +var haveSpecialUij = this.getFlag(62); +var nOcc = this.getInt(65, 68); +var nDisp = this.getInt(68, 71); +var nUij = this.getInt(71, 74); +if (rm != null) { +this.readM40Floats(); +rm.set(this.floats[0], this.floats[1], this.floats[2]); +rp.set(this.floats[3], this.floats[4], this.floats[5]); +}if (tType > 2) this.readM40Floats(); +this.readM40Floats(); +switch (tType) { +case 6: +case 5: +case 4: +case 3: +this.readLines(tType - 1); +this.appendLoadNote("Skipping temperature factors with order > 2"); +case 2: +case -1: +for (var j = 0; j < 6; j++) this.asc.setU(atom, j, this.floats[j]); + +break; +case 1: +if (this.floats[0] != 0) this.asc.setU(atom, 7, this.floats[0]); +break; +case 0: +this.molHasTLS = true; +this.appendLoadNote("Jmol cannot process molecular TLS parameters"); +break; +} +if (this.modDim == 0) return null; +if (isPos && this.molHasTLS) this.readLines(4); +var pt; +var o_0 = (nOcc > 0 && !haveSpecialOcc ? this.parseFloatStr(this.rd()) : 1); +if (o_0 != 1) this.ms.addModulation(null, "J_O#0" + label, Clazz.newDoubleArray(-1, [atom.foccupancy, o_0, 0]), -1); +atom.foccupancy *= o_0; +var wv = 0; +var a1; +var a2; +this.isLegendre = false; +for (var j = 0; j < nOcc; j++) { +if (haveSpecialOcc) { +var data = this.readM40FloatLines(2, 1); +a2 = data[0][0]; +a1 = data[1][0]; +} else { +wv = j + 1; +this.readM40Floats(); +a1 = this.floats[0]; +a2 = this.floats[1]; +}pt = Clazz.newDoubleArray(-1, [a1, a2, 0]); +if (a1 != 0 || a2 != 0) this.ms.addModulation(null, "O_" + wv + "#0" + label, pt, -1); +} +for (var j = 0; j < nDisp; j++) { +if (haveSpecialDisp) { +this.readM40Floats(); +var c = this.floats[3]; +var w = this.floats[4]; +for (var k = 0; k < 3; k++) if (this.floats[k] != 0) this.ms.addModulation(null, "D_S#" + J.adapter.readers.xtal.JanaReader.XYZ[k] + label, Clazz.newDoubleArray(-1, [c, w, this.floats[k]]), -1); + +} else { +this.addSinCos(j, "D_", label, isPos); +}} +var rotData = (isPos && nDisp > 0 ? this.readM40FloatLines(nDisp, 6) : null); +if (!isPos) { +if (this.isLegendre) nUij *= 2; +for (var j = 0; j < nUij; j++) { +if (tType == 1) { +this.addSinCos(j, "U_", label, false); +} else { +if (haveSpecialUij) { +JU.Logger.error("JanaReader -- not interpreting SpecialUij flag: " + this.line); +} else if (this.isLegendre) { +var data = this.readM40FloatLines(1, 6); +var order = j + 1; +var coeff = 0; +for (var k = 0, p = 0; k < 6; k++, p += 3) { +if ((coeff = data[0][k]) != 0) this.ms.addModulation(null, "U_L" + order + "#" + "U11U22U33U12U13U23UISO".substring(p, p + 3) + label, Clazz.newDoubleArray(-1, [coeff, order, 0]), -1); +} +} else { +var data = this.readM40FloatLines(2, 6); +for (var k = 0, p = 0; k < 6; k++, p += 3) { +var csin = data[1][k]; +var ccos = data[0][k]; +this.ms.addModulation(null, "U_" + (j + 1) + "#" + "U11U22U33U12U13U23UISO".substring(p, p + 3) + label, Clazz.newDoubleArray(-1, [csin, ccos, 0]), -1); +} +}}} +}return rotData; +}, "J.adapter.smarter.Atom,JU.P3,JU.P3,~B"); +Clazz.defineMethod(c$, "addSinCos", +function(j, key, label, isPos){ +this.readM40Floats(); +if (this.isLegendre) { +for (var i = 0; i < 2; i++) { +var order = (j * 2 + i + 1); +for (var k = 0; k < 3; ++k) { +var coeff = this.floats[3 * i + k]; +if (coeff == 0) { +continue; +}var axis = J.adapter.readers.xtal.JanaReader.XYZ[k % 3]; +if (this.modAxes != null && this.modAxes.indexOf(axis.toUpperCase()) < 0) continue; +var id = key + "L#" + axis + order + label; +this.ms.addModulation(null, id, Clazz.newDoubleArray(-1, [coeff, order, 0]), -1); +} +} +return; +}this.ensureFourier(j); +for (var k = 0; k < 3; ++k) { +var csin = this.floats[k]; +var ccos = this.floats[k + 3]; +if (csin == 0 && ccos == 0) { +if (!isPos) continue; +csin = 1e-10; +}var axis = J.adapter.readers.xtal.JanaReader.XYZ[k % 3]; +if (this.modAxes != null && this.modAxes.indexOf(axis.toUpperCase()) < 0) continue; +var id = key + (j + 1) + "#" + axis + label; +this.ms.addModulation(null, id, Clazz.newDoubleArray(-1, [csin, ccos, 0]), -1); +} +}, "~N,~S,~S,~B"); +Clazz.defineMethod(c$, "ensureFourier", +function(j){ +var pt; +if (j > 0 && this.ms.getMod("F_" + (++j) + "_coefs_") == null && (pt = this.ms.getMod("F_1_coefs_")) != null) { +var p = Clazz.newDoubleArray (this.modDim, 0); +for (var i = this.modDim; --i >= 0; ) p[i] = pt[i] * j; + +this.ms.addModulation(null, "F_" + j + "_coefs_", p, -1); +}}, "~N"); +Clazz.defineMethod(c$, "readM40Floats", +function(){ +if ((this.line = this.rd()) == null || this.line.indexOf("-------") >= 0) return (this.line = null); +if (this.debugging) JU.Logger.debug(this.line); +this.parseM40Floats(); +return this.line; +}); +Clazz.defineMethod(c$, "parseM40Floats", +function(){ +var ptLast = this.line.length - 9; +for (var i = 0, pt = 0; i < 6; i++, pt += 9) { +this.floats[i] = (pt <= ptLast ? this.parseFloatStr(this.line.substring(pt, pt + 9)) : NaN); +} +}); +Clazz.defineMethod(c$, "readM40FloatLines", +function(nLines, nFloats){ +var data = Clazz.newFloatArray (nLines, nFloats, 0); +for (var i = 0; i < nLines; i++) { +this.readM40Floats(); +if (this.line.indexOf("Legendre") == 19) this.isLegendre = true; +for (var j = 0; j < nFloats; j++) data[i][j] = this.floats[j]; + +} +return data; +}, "~N,~N"); +Clazz.defineMethod(c$, "adjustM40Occupancies", +function(){ +var htSiteMult = new java.util.Hashtable(); +var atoms = this.asc.atoms; +var symmetry = this.asc.getSymmetry(); +for (var i = this.asc.ac; --i >= 0; ) { +var a = atoms[i]; +var ii = htSiteMult.get(a.atomName); +if (ii == null) htSiteMult.put(a.atomName, ii = Integer.$valueOf(symmetry.getSiteMultiplicity(a))); +a.foccupancy *= ii.intValue(); +} +}); +Clazz.defineMethod(c$, "copyModulations", +function(label, newLabel){ +var mapTemp = new java.util.Hashtable(); +for (var e, $e = this.ms.getModulationMap().entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var key = e.getKey(); +if (!key.contains(label)) continue; +key = JU.PT.rep(key, label, newLabel); +var val = e.getValue(); +switch ((key.charAt(0)).charCodeAt(0)) { +case 79: +this.setRigidBodyPhase(key, val = Clazz.newDoubleArray(-1, [val[0], val[1], 0])); +break; +case 68: +break; +case 85: +continue; +} +mapTemp.put(key, val); +} +for (var e, $e = mapTemp.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) this.ms.addModulation(null, e.getKey(), e.getValue(), -1); + +}, "~S,~S"); +Clazz.defineMethod(c$, "setRigidBodyPhase", +function(key, v){ +var isCenter = false; +switch ((this.ms.getModType(key)).charCodeAt(0)) { +case 111: +case 102: +case 117: +break; +case 99: +case 115: +isCenter = true; +break; +} +var nqDotD = 0; +var n = -1; +var qcoefs = this.ms.getQCoefs(key); +for (var i = this.modDim; --i >= 0; ) { +if (qcoefs[i] != 0) { +n = qcoefs[i]; +var q = this.ms.getMod("W_" + (i + 1)); +nqDotD = n * (q[0] * this.vR.x + q[1] * this.vR.y + q[2] * this.vR.z); +break; +}} +if (isCenter) { +v[0] += nqDotD; +} else { +var sA = v[0]; +var cA = v[1]; +var sX = Math.sin(2 * 3.141592653589793 * nqDotD); +var cX = Math.cos(2 * 3.141592653589793 * nqDotD); +v[0] = sA * cX + cA * sX; +v[1] = -sA * sX + cA * cX; +}return v; +}, "~S,~A"); +Clazz.defineMethod(c$, "setRigidBodyRotations", +function(label, params){ +var n = params.length; +for (var i = 0; i < n; i++) { +this.ensureFourier(i); +var key = "D_" + (i + 1); +var data = params[i]; +var vsin = JU.V3.new3(data[0], data[1], data[2]); +var vcos = JU.V3.new3(data[3], data[4], data[5]); +this.cartesianProduct(vcos, this.v0Cart); +this.cartesianProduct(vsin, this.v0Cart); +var keyx = key + "#x" + label; +var keyy = key + "#y" + label; +var keyz = key + "#z" + label; +var vx = this.combineModulation(keyx, vsin.x, vcos.x); +var vy = this.combineModulation(keyy, vsin.y, vcos.y); +var vz = this.combineModulation(keyz, vsin.z, vcos.z); +vsin.set(vx[0], vy[0], vz[0]); +vcos.set(vx[1], vy[1], vz[1]); +this.cartesianProduct(vsin, null); +this.cartesianProduct(vcos, null); +this.setMolecularModulation(keyx, vsin.x, vcos.x); +this.setMolecularModulation(keyy, vsin.y, vcos.y); +this.setMolecularModulation(keyz, vsin.z, vcos.z); +} +}, "~S,~A"); +Clazz.defineMethod(c$, "combineModulation", +function(key, csin, ccos){ +var v = this.ms.getMod(key); +return Clazz.newDoubleArray(-1, [v[0] + csin, v[1] + ccos, 0]); +}, "~S,~N,~N"); +Clazz.defineMethod(c$, "setMolecularModulation", +function(key, csin, ccos){ +this.ms.addModulation(null, key, this.setRigidBodyPhase(key, Clazz.newDoubleArray(-1, [csin, ccos, 0])), -1); +}, "~S,~N,~N"); +c$.XYZ = Clazz.newArray(-1, ["x", "y", "z"]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/MagresReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/MagresReader.js new file mode 100755 index 000000000000..ad44ea811a89 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/MagresReader.js @@ -0,0 +1,178 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader", "java.util.Hashtable", "JU.Lst", "$.SB"], "J.adapter.readers.xtal.MagresReader", ["JU.PT", "J.adapter.smarter.Atom", "JU.Escape", "$.Logger", "$.Tensor"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.currentBlock = -1; +this.cellParams = null; +this.magresUnits = null; +this.interactionTensors = null; +this.header = null; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "MagresReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.prepareFields (c$, function(){ +this.magresUnits = new java.util.Hashtable(); +this.interactionTensors = new JU.Lst(); +this.header = new JU.SB(); +}); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.setFractionalCoordinates(false); +this.ignoreFileSpaceGroupName = true; +}); +Clazz.overrideMethod(c$, "finalizeSubclassReader", +function(){ +this.asc.setInfo("fileHeader", this.header.toString()); +this.finalizeReaderASCR(); +if (this.interactionTensors.size() > 0) this.asc.setCurrentModelInfo("interactionTensors", this.interactionTensors); +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (!this.trimLine()) return true; +switch (this.checkBlock()) { +case 0: +this.header.append(this.line).append("\n"); +this.appendLoadNote(this.line); +break; +case 1: +if (this.cellParams == null && this.line.startsWith("lattice")) return this.readCellParams(); +if (this.line.startsWith("symmetry")) return this.readSymmetry(); +if (this.line.startsWith("units")) return this.setUnits(false); +if (this.line.startsWith("atom")) return this.readAtom(); +break; +case 2: +if (this.line.startsWith("units")) return this.setUnits(true); +return this.readTensor(); +} +return true; +}); +Clazz.defineMethod(c$, "trimLine", +function(){ +var pt = this.line.indexOf("#"); +if (pt >= 0) this.line = this.line.substring(0, pt); +this.line = this.line.trim(); +return (this.line.length > 0); +}); +Clazz.defineMethod(c$, "checkBlock", +function(){ +if (!(this.line.startsWith("<") && this.line.endsWith(">")) && !(this.line.startsWith("[") && this.line.endsWith("]"))) return this.currentBlock; +this.line = JU.PT.rep(this.line, "<", "["); +this.line = JU.PT.rep(this.line, ">", "]"); +switch (Clazz.doubleToInt(("...............[calculation]..[/calculation].[atoms]........[/atoms].......[magres].......[/magres]......").indexOf(this.line + ".") / 15)) { +case 0: +JU.Logger.info("block indicator ignored: " + this.line); +break; +case 1: +if (this.currentBlock == -1) this.currentBlock = 0; +break; +case 2: +if (this.currentBlock == 0) this.currentBlock = -1; +break; +case 3: +if (this.currentBlock == -1) { +this.currentBlock = 1; +this.asc.newAtomSet(); +this.magresUnits = new java.util.Hashtable(); +}break; +case 4: +if (this.currentBlock == 1) this.currentBlock = -1; +break; +case 5: +if (this.currentBlock == -1) { +this.currentBlock = 2; +this.magresUnits = new java.util.Hashtable(); +this.asc.setCurrentModelInfo("magresUnits", this.magresUnits); +}break; +case 6: +if (this.currentBlock == 2) this.currentBlock = -1; +break; +} +return -2; +}); +Clazz.defineMethod(c$, "setUnits", +function(isMagresBlock){ +var tokens = this.getTokens(); +var id = tokens[1]; +if (isMagresBlock) this.appendLoadNote("Ellipsoid set " + JU.PT.esc(id) + ": " + (id.startsWith("ms") ? "Magnetic Shielding" : id.startsWith("efg") ? "Electric Field Gradient" : id.startsWith("isc") ? "J-Coupling" : "?")); +this.magresUnits.put(id, tokens[2]); +return true; +}, "~B"); +Clazz.defineMethod(c$, "readSymmetry", +function(){ +this.setSymmetryOperator(this.getTokens()[1]); +return true; +}); +Clazz.defineMethod(c$, "readCellParams", +function(){ +var tokens = this.getTokens(); +this.cellParams = Clazz.newFloatArray (9, 0); +for (var i = 0; i < 9; i++) this.cellParams[i] = this.parseFloatStr(tokens[i + 1]); + +this.addExplicitLatticeVector(0, this.cellParams, 0); +this.addExplicitLatticeVector(1, this.cellParams, 3); +this.addExplicitLatticeVector(2, this.cellParams, 6); +this.setSpaceGroupName("P1"); +return true; +}); +Clazz.defineMethod(c$, "readAtom", +function(){ +var units = this.magresUnits.get("atom"); +if (units == null) return true; +var f = (units.startsWith("A") ? 1 : 0.5291772); +var tokens = this.getTokens(); +var atom = new J.adapter.smarter.Atom(); +var pt = 1; +atom.elementSymbol = tokens[pt++]; +atom.atomName = J.adapter.readers.xtal.MagresReader.getAtomName(tokens[pt++], tokens[pt++]); +this.asc.addAtomWithMappedName(atom); +var x = this.parseFloatStr(tokens[pt++]) * f; +var y = this.parseFloatStr(tokens[pt++]) * f; +var z = this.parseFloatStr(tokens[pt++]) * f; +atom.set(x, y, z); +this.setAtomCoord(atom); +return true; +}); +c$.getAtomName = Clazz.defineMethod(c$, "getAtomName", +function(name, index){ +return name + "_" + index; +}, "~S,~S"); +Clazz.defineMethod(c$, "readTensor", +function(){ +var tokens = this.getTokens(); +var type = tokens[0]; +var units = this.magresUnits.get(type); +if (units == null) { +JU.Logger.warn(type + " ignored; no units defined; line: " + this.line); +return true; +}var isIsc = type.startsWith("isc"); +if (tokens.length == 10) { +this.magresUnits.remove(type); +var data = Clazz.newFloatArray (9, 0); +for (var i = 0; i < 9; ) data[i] = this.parseFloatStr(tokens[++i]); + +JU.Logger.info("Magres reader creating magres_" + type + ": " + JU.Escape.eAF(data)); +this.asc.setCurrentModelInfo("magres_" + type, data); +}var atomName1 = J.adapter.readers.xtal.MagresReader.getAtomName(tokens[1], tokens[2]); +var pt = 3; +var atomName2 = (isIsc ? J.adapter.readers.xtal.MagresReader.getAtomName(tokens[pt++], tokens[pt++]) : null); +if (atomName1.equals(atomName2)) { +JU.Logger.warn(type + " ignored; atom1 == atom2 for " + atomName1 + " line: " + this.line); +return true; +}var id = atomName1; +if (atomName2 != null) id += "//" + atomName2; +var a = Clazz.newDoubleArray (3, 3, 0); +for (var i = 0; i < 3; i++) for (var j = 0; j < 3; j++) a[i][j] = Double.$valueOf(tokens[pt++]).doubleValue(); + + +var a1 = this.asc.getAtomFromName(atomName1); +if (a1 == null) return true; +var a2 = null; +var t = new JU.Tensor().setFromAsymmetricTensor(a, type, id); +if (atomName2 == null) { +a1.addTensor(t, null, false); +} else { +a2 = this.asc.getAtomFromName(atomName2); +if (a2 == null) return true; +this.interactionTensors.addLast(t); +}t.setAtomIndexes(a1.index, (a2 == null ? -1 : a2.index)); +return true; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/OptimadeReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/OptimadeReader.js new file mode 100755 index 000000000000..ba32584c7d70 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/OptimadeReader.js @@ -0,0 +1,181 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.OptimadeReader", ["java.util.HashMap", "JU.SB", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.modelNo = 0; +this.iHaveDesiredModel = false; +this.permutation = 0; +this.isPolymer = false; +this.isSlab = false; +this.noSlab = false; +this.xyz = null; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "OptimadeReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.prepareFields (c$, function(){ +this.xyz = Clazz.newFloatArray (3, 0); +}); +Clazz.defineMethod(c$, "initializeReader", +function(){ +Clazz.superCall(this, J.adapter.readers.xtal.OptimadeReader, "initializeReader", []); +this.noSlab = this.checkFilterKey("NOSLAB"); +try { +var strJSON = this.htParams.get("fileData"); +if (strJSON == null) { +var sb = new JU.SB(); +while (this.rd() != null) sb.append(this.line); + +strJSON = sb.toString(); +this.line = null; +}var aData = null; +if (strJSON.startsWith("[")) { +var data = this.vwr.parseJSONArray(strJSON); +for (var i = 0; i < data.size(); i++) { +if (Clazz.instanceOf(data.get(i),"java.util.Map")) { +aData = (data.get(i)).get("data"); +if (aData != null) { +break; +}}} +} else { +aData = this.vwr.parseJSONMap(strJSON).get("data"); +}if (aData != null) { +for (var i = 0; !this.iHaveDesiredModel && i < aData.size(); i++) { +var data = aData.get(i); +if ("structures".equals(data.get("type"))) { +this.readModel(data.get("attributes")); +}} +}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +} else { +throw e; +} +} +this.continuing = false; +}); +Clazz.defineMethod(c$, "readModel", +function(map){ +if (!this.doGetModel(this.modelNumber = ++this.modelNo, null)) return; +this.iHaveDesiredModel = this.isLastModel(this.modelNumber); +this.applySymmetryAndSetTrajectory(); +this.asc.newAtomSet(); +this.setFractionalCoordinates(false); +var dimensionType = Clazz.newFloatArray (3, 0); +if (J.adapter.readers.xtal.OptimadeReader.toFloatArray(map.get("dimension_types"), dimensionType)) { +this.checkDimensionType(dimensionType); +}if (!this.isMolecular) { +this.setSpaceGroupName("P1"); +this.asc.setInfo("symmetryType", (this.isSlab ? "2D - SLAB" : this.isPolymer ? "1D - POLYMER" : "3D")); +}this.asc.setAtomSetName(map.get("chemical_formula_descriptive")); +this.doConvertToFractional = (!this.isMolecular && this.readLattice(map.get("lattice_vectors"))); +this.readAtoms(map.get("species"), map.get("species_at_sites"), map.get("cartesian_site_positions")); +}, "java.util.Map"); +Clazz.defineMethod(c$, "checkDimensionType", +function(dt){ +this.isPolymer = this.isSlab = this.isMolecular = false; +if (this.noSlab) return; +this.permutation = 0; +switch (Clazz.floatToInt(dt[2] + dt[1] * 2 + dt[0] * 4)) { +default: +case 0: +this.isMolecular = true; +break; +case 1: +this.isPolymer = true; +this.permutation = 1; +break; +case 2: +this.isPolymer = true; +this.permutation = 2; +break; +case 3: +this.isSlab = true; +this.permutation = 2; +break; +case 5: +this.isSlab = true; +this.permutation = 1; +break; +case 4: +this.isPolymer = true; +break; +case 6: +this.isSlab = true; +break; +case 7: +break; +} +}, "~A"); +Clazz.defineMethod(c$, "readLattice", +function(lattice){ +if (lattice == null) return false; +var abc = Clazz.newFloatArray (3, 0); +for (var i = 0; i < 3; i++) { +if (!J.adapter.readers.xtal.OptimadeReader.toFloatArray(lattice.get(i), this.xyz)) { +return false; +}this.unitCellParams[0] = NaN; +if (this.isSlab || this.isPolymer) { +abc[i] = Math.sqrt(this.xyz[0] * this.xyz[0] + this.xyz[1] * this.xyz[1] + this.xyz[2] * this.xyz[2]); +if (abc[i] >= 500) { +this.xyz[0] /= abc[i]; +this.xyz[1] /= abc[i]; +this.xyz[2] /= abc[i]; +}}if (this.isSlab || this.isPolymer) this.unitCellParams[0] = 0; +if (i == 2) { +if (this.isSlab || this.isPolymer) { +this.unitCellParams[0] = abc[this.permutation]; +if (this.isSlab) this.unitCellParams[1] = abc[(this.permutation + 1) % 3]; +}}this.addExplicitLatticeVector((i + this.permutation) % 3, this.xyz, 0); +} +this.doApplySymmetry = true; +return true; +}, "java.util.List"); +Clazz.defineMethod(c$, "readAtoms", +function(species, sites, coords){ +var natoms = sites.size(); +var speciesByName = null; +if (species == null) { +JU.Logger.error("OptimadeReader - no 'species' key"); +} else { +speciesByName = new java.util.HashMap(); +for (var i = species.size(); --i >= 0; ) { +var s = species.get(i); +speciesByName.put(s.get("name"), s); +} +}for (var i = 0; i < natoms; i++) { +var sname = sites.get(i); +J.adapter.readers.xtal.OptimadeReader.toFloatArray(coords.get(i), this.xyz); +if (species == null) { +this.addAtom(this.xyz, sites.get(i), sname); +} else { +var sp = speciesByName.get(sname); +var syms = sp.get("chemical_symbols"); +var nOcc = syms.size(); +if (nOcc > 1) { +var conc = Clazz.newFloatArray (nOcc, 0); +if (J.adapter.readers.xtal.OptimadeReader.toFloatArray(sp.get("concentration"), conc)) { +for (var j = 0; j < conc.length; j++) { +var a = this.addAtom(this.xyz, syms.get(j), sname); +a.foccupancy = conc[j]; +} +continue; +}}this.addAtom(this.xyz, syms.get(0), sname); +}} +}, "java.util.List,java.util.List,java.util.List"); +Clazz.defineMethod(c$, "addAtom", +function(xyz, sym, name){ +var atom = this.asc.addNewAtom(); +if (sym != null) atom.elementSymbol = sym; +if (name != null) atom.atomName = name; +this.setAtomCoordXYZ(atom, xyz[0], xyz[1], xyz[2]); +return atom; +}, "~A,~S,~S"); +c$.toFloatArray = Clazz.defineMethod(c$, "toFloatArray", +function(list, a){ +if (list == null) return false; +for (var i = a.length; --i >= 0; ) { +var d = list.get(i); +if (d == null) return false; +a[i] = list.get(i).floatValue(); +} +return true; +}, "java.util.List,~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/PWmatReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/PWmatReader.js new file mode 100755 index 000000000000..04924dc04704 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/PWmatReader.js @@ -0,0 +1,214 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.PWmatReader", ["java.util.Hashtable", "JU.Lst", "$.PT", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.nAtoms = 0; +this.haveLattice = false; +this.havePositions = false; +this.haveMagnetic = false; +this.global3 = ";STRESS_MASK;STRESS_EXTERNAL;PTENSOR_EXTERNAL;"; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "PWmatReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.adapter.readers.xtal.PWmatReader, []); +}); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.doApplySymmetry = true; +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (this.nAtoms == 0) { +this.readComments(); +this.setSpaceGroupName("P1"); +this.nAtoms = JU.PT.parseInt(this.line); +this.setFractionalCoordinates(true); +return true; +}this.removeComments(); +var lc = this.line.toLowerCase().trim(); +if (lc.length == 0) return true; +if (!this.haveLattice) { +if (lc.startsWith("lattice")) { +this.readUnitCell(); +this.haveLattice = true; +}return true; +}if (!this.havePositions) { +if (lc.startsWith("position")) { +this.readCoordinates(); +this.havePositions = true; +}return true; +}if (!this.readDataBlock(lc)) { +this.continuing = false; +}return true; +}); +Clazz.defineMethod(c$, "readComments", +function(){ +}); +Clazz.defineMethod(c$, "readUnitCell", +function(){ +var unitCellData = Clazz.newFloatArray (3, 0); +this.addExplicitLatticeVector(0, this.fillFloatArray(this.getLine(), 0, unitCellData), 0); +this.addExplicitLatticeVector(1, this.fillFloatArray(this.getLine(), 0, unitCellData), 0); +this.addExplicitLatticeVector(2, this.fillFloatArray(this.getLine(), 0, unitCellData), 0); +}); +Clazz.defineMethod(c$, "readCoordinates", +function(){ +var constraints = new JU.Lst(); +var haveConstraints = true; +var i = 0; +while (i++ < this.nAtoms && this.getLine() != null) { +var tokens = this.getTokens(); +var z = Integer.parseInt(tokens[0]); +this.addAtomXYZSymName(tokens, 1, J.adapter.smarter.AtomSetCollectionReader.getElementSymbol(z), null).elementNumber = z; +haveConstraints = (tokens.length >= 7) && haveConstraints; +if (haveConstraints) constraints.addLast( Clazz.newFloatArray(-1, [Float.parseFloat(tokens[4]), Float.parseFloat(tokens[5]), Float.parseFloat(tokens[6])])); +} +var cx = Clazz.newFloatArray (this.nAtoms, 0); +var cy = Clazz.newFloatArray (this.nAtoms, 0); +var cz = Clazz.newFloatArray (this.nAtoms, 0); +var c = Clazz.newFloatArray(-1, [1, 1, 1]); +for (i = this.nAtoms; --i >= 0; ) { +if (haveConstraints) c = constraints.get(i); +cx[i] = c[0]; +cy[i] = c[1]; +cz[i] = c[2]; +} +this.setVectors("constraints", cx, cy, cz, this.nAtoms); +}); +Clazz.defineMethod(c$, "readDataBlock", +function(name){ +name = this.trimPWPropertyNameTo(name, " ([,"); +this.getLine(); +if (this.line == null) return false; +var tokens = this.getTokens(); +switch (tokens.length) { +case 1: +case 2: +case 3: +this.readItems(name, tokens.length - 1, null); +return true; +case 4: +this.readVectors(name, 1, true); +return true; +default: +JU.Logger.error("PWmatReader block " + name.toUpperCase() + " ignored"); +return false; +} +}, "~S"); +Clazz.defineMethod(c$, "trimPWPropertyNameTo", +function(name, chars){ +for (var i = chars.length; --i >= 0; ) { +var pt = name.indexOf(chars.charAt(i)); +if (pt > 0) name = name.substring(0, pt); +} +return name; +}, "~S,~S"); +Clazz.defineMethod(c$, "readItems", +function(name, offset, values){ +if (name.equalsIgnoreCase("magnetic")) this.haveMagnetic = true; +var isGlobal = JU.PT.isOneOf(name.toUpperCase(), this.global3); +if (isGlobal) { +var lines = new Array(3); +lines[0] = this.line; +lines[1] = this.getLine(); +lines[2] = this.getLine(); +var info = this.asc.getAtomSetAuxiliaryInfo(0); +var data = info.get("globalPWmatData"); +if (data == null) info.put("globalPWmatData", data = new java.util.Hashtable()); +data.put(name, lines); +} else { +name = "pwm_" + name; +if (values == null) { +values = Clazz.newFloatArray (this.nAtoms, 0); +} else { +this.getLine(); +}var n = 0; +for (var i = 0; ; ) { +var tokens = this.getTokens(); +if ((values[i] = Float.parseFloat(tokens[offset])) != 0) n++; +if (++i == this.nAtoms) break; +this.getLine(); +} +this.setProperties(name, values, n); +}}, "~S,~N,~A"); +Clazz.defineMethod(c$, "setProperties", +function(name, values, n){ +this.asc.setAtomProperties(name, values, this.asc.iSet, false); +JU.Logger.info("PWmatReader: " + name.toUpperCase() + " processed for " + n + " atoms"); +this.appendLoadNote("PWmatReader read property_" + name); +}, "~S,~A,~N"); +Clazz.defineMethod(c$, "readVectors", +function(name, offset, haveLine){ +if (!haveLine) this.getLine(); +var valuesX = Clazz.newFloatArray (this.nAtoms, 0); +var valuesY = Clazz.newFloatArray (this.nAtoms, 0); +var valuesZ = Clazz.newFloatArray (this.nAtoms, 0); +var n = 0; +for (var i = 0; ; ) { +var tokens = this.getTokens(); +if ((((valuesX[i] = Float.parseFloat(tokens[offset])) == 0 ? 0 : 1) | ((valuesY[i] = Float.parseFloat(tokens[offset + 1])) == 0 ? 0 : 1) | ((valuesZ[i] = Float.parseFloat(tokens[offset + 2])) == 0 ? 0 : 1)) != 0) n++; +if (++i == this.nAtoms) break; +this.getLine(); +} +this.setVectors(name, valuesX, valuesY, valuesZ, n); +}, "~S,~N,~B"); +Clazz.defineMethod(c$, "getLine", +function(){ +this.rd(); +return this.removeComments(); +}); +Clazz.defineMethod(c$, "removeComments", +function(){ +if (this.line != null) { +var pt = this.line.indexOf("#"); +if (pt >= 0) { +this.line = this.line.substring(0, pt).trim(); +}}return this.line; +}); +Clazz.defineMethod(c$, "setVectors", +function(name, valuesX, valuesY, valuesZ, n){ +name = "pwm_" + name; +this.asc.setAtomProperties(name + "_x", valuesX, this.asc.iSet, false); +this.asc.setAtomProperties(name + "_y", valuesY, this.asc.iSet, false); +this.asc.setAtomProperties(name + "_z", valuesZ, this.asc.iSet, false); +JU.Logger.info("PWmatReader: " + name.toUpperCase() + " processed for " + n + " atoms"); +this.appendLoadNote("PWmatReader read property_" + name + "_x"); +this.appendLoadNote("PWmatReader read property_" + name + "_y"); +this.appendLoadNote("PWmatReader read property_" + name + "_z"); +if (name.equals("pwm_magnetic_xyz")) { +for (var i = 0; i < this.nAtoms; i++) { +this.asc.addVibrationVector(i, valuesX[i], valuesY[i], valuesZ[i]); +} +this.addJmolScript("vectors 0.2;set vectorscentered"); +}}, "~S,~A,~A,~A,~N"); +Clazz.defineMethod(c$, "applySymmetryAndSetTrajectory", +function(){ +Clazz.superCall(this, J.adapter.readers.xtal.PWmatReader, "applySymmetryAndSetTrajectory", []); +if (this.nAtoms != this.asc.ac) { +this.nAtoms = this.asc.ac; +var p = this.asc.getAtomSetAuxiliaryInfoValue(this.asc.iSet, "atomProperties"); +if (p != null) { +var atoms = this.asc.atoms; +var n = (this.asc.bsAtoms == null ? this.nAtoms : this.asc.bsAtoms.cardinality()); +var map = (n == this.nAtoms ? null : Clazz.newIntArray (this.nAtoms, 0)); +if (map != null) { +for (var j = 0, k = 0; j < this.nAtoms; j++) { +if (this.asc.bsAtoms.get(j)) map[j] = k++; +} +}for (var e, $e = p.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var key = e.getKey(); +if (key.startsWith("pwm_")) { +var af = e.getValue(); +var af2 = Clazz.newFloatArray (n, 0); +for (var j = 0; j < this.nAtoms; j++) { +af2[map == null ? j : map[j]] = af[atoms[j].atomSite]; +} +e.setValue(af2); +}} +}}}); +Clazz.overrideMethod(c$, "finalizeSubclassReader", +function(){ +if (!this.haveMagnetic && this.asc.ac > 0) { +this.setProperties("pwm_magnetic", Clazz.newFloatArray (this.asc.ac, 0), this.nAtoms); +}}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/ShelxReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/ShelxReader.js new file mode 100755 index 000000000000..509eead87b4d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/ShelxReader.js @@ -0,0 +1,226 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.ShelxReader", ["JU.AU", "$.PT", "J.adapter.smarter.Atom", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.sfacElementSymbols = null; +this.isCmdf = false; +this.tokens = null; +this.altloc = '\0'; +this.isCentroSymmetric = false; +this.haveXYZ = false; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "ShelxReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.setFractionalCoordinates(true); +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +var lineLength; +while ((lineLength = (this.line = this.line.trim()).length) > 0 && this.line.charAt(lineLength - 1) == '=') this.line = this.line.substring(0, lineLength - 1) + this.rd(); + +this.tokens = this.getTokens(); +if (this.tokens.length == 0) return true; +var command = this.tokens[0].toUpperCase(); +if (command.equals("TITL")) { +if (!this.doGetModel(++this.modelNumber, null)) return this.checkLastModel(); +this.sfacElementSymbols = null; +this.applySymmetryAndSetTrajectory(); +this.setFractionalCoordinates(true); +this.asc.newAtomSet(); +this.asc.setAtomSetName(this.line.substring(4).trim()); +return true; +}if (command.equals("NOTE")) { +this.isCmdf = true; +return true; +}if (!this.doProcessLines || lineLength < 3) return true; +if (";ZERR;DISP;UNIT;LAUE;REM;MORE;TIME;HKLF;OMIT;SHEL;BASF;TWIN;EXTI;SWAT;HOPE;MERG;SPEC;RESI;MOVE;ANIS;AFIX;HFIX;FRAG;FEND;EXYZ;EXTI;EADP;EQIV;CONN;BIND;FREE;DFIX;DANG;BUMP;SAME;SADI;CHIV;FLAT;DELU;SIMU;DEFS;ISOR;NCSY;SUMP;L.S.;CGLS;BLOC;DAMP;STIR;WGHT;FVAR;BOND;CONF;MPLA;RTAB;HTAB;LIST;ACTA;SIZE;TEMP;WPDB;FMAP;GRID;PLAN;MOLE;".indexOf(";" + command + ";") >= 0) return true; +for (var i = J.adapter.readers.xtal.ShelxReader.supportedRecordTypes.length; --i >= 0; ) if (command.equals(J.adapter.readers.xtal.ShelxReader.supportedRecordTypes[i])) { +this.processSupportedRecord(i); +return true; +} +if (!this.isCmdf) this.assumeAtomRecord(); +return true; +}); +Clazz.defineMethod(c$, "processSupportedRecord", +function(recordIndex){ +switch (recordIndex) { +case 0: +case 9: +break; +case 1: +this.cell(); +break; +case 2: +this.setSpaceGroupName(JU.PT.parseTrimmedAt(this.line, 4)); +break; +case 3: +this.parseSfacRecord(); +break; +case 4: +this.parseLattRecord(); +break; +case 5: +this.parseSymmRecord(); +break; +case 6: +this.isCmdf = true; +break; +case 7: +this.isCmdf = true; +this.processCmdfAtoms(); +break; +case 8: +this.processPartRecord(); +break; +} +}, "~N"); +Clazz.defineMethod(c$, "processPartRecord", +function(){ +var part = this.parseIntStr(this.tokens[1]); +this.altloc = String.fromCharCode(part == 0 ? 0 : 48 + part); +}); +Clazz.defineMethod(c$, "parseLattRecord", +function(){ +var latt = this.parseIntStr(this.tokens[1]); +this.isCentroSymmetric = (latt > 0); +if (latt == 1 || latt == -1) return; +this.asc.getXSymmetry().setLatticeParameter(latt); +}); +Clazz.defineMethod(c$, "parseSymmRecord", +function(){ +if (!this.haveXYZ) { +this.setSymmetryOperator("x,y,z"); +this.haveXYZ = true; +}this.setSymmetryOperator(this.line.substring(4).trim()); +}); +Clazz.defineMethod(c$, "cell", +function(){ +var ioff = this.tokens.length - 6; +if (ioff == 2) this.asc.setInfo("wavelength", Float.$valueOf(this.parseFloatStr(this.tokens[1]))); +for (var ipt = 0; ipt < 6; ipt++) this.setUnitCellItem(ipt, this.parseFloatStr(this.tokens[ipt + ioff])); + +}); +Clazz.defineMethod(c$, "parseSfacRecord", +function(){ +var allElementSymbols = true; +for (var i = this.tokens.length; allElementSymbols && --i >= 1; ) { +var token = this.tokens[i]; +allElementSymbols = J.adapter.readers.xtal.ShelxReader.isValidElementSymbolNoCaseSecondChar(token); +} +var sfacTokens = JU.PT.getTokens(this.line.substring(4)); +if (allElementSymbols) this.parseSfacElementSymbols(sfacTokens); + else this.parseSfacCoefficients(sfacTokens); +}); +Clazz.defineMethod(c$, "parseSfacElementSymbols", +function(sfacTokens){ +if (this.sfacElementSymbols == null) { +this.sfacElementSymbols = sfacTokens; +} else { +var oldCount = this.sfacElementSymbols.length; +var tokenCount = sfacTokens.length; +this.sfacElementSymbols = JU.AU.arrayCopyS(this.sfacElementSymbols, oldCount + tokenCount); +for (var i = tokenCount; --i >= 0; ) this.sfacElementSymbols[oldCount + i] = sfacTokens[i]; + +}}, "~A"); +Clazz.defineMethod(c$, "parseSfacCoefficients", +function(sfacTokens){ +var a1 = this.parseFloatStr(sfacTokens[1]); +var a2 = this.parseFloatStr(sfacTokens[3]); +var a3 = this.parseFloatStr(sfacTokens[5]); +var a4 = this.parseFloatStr(sfacTokens[7]); +var c = this.parseFloatStr(sfacTokens[9]); +var z = Math.round(a1 + a2 + a3 + a4 + c); +var elementSymbol = J.adapter.smarter.AtomSetCollectionReader.getElementSymbol(z); +var oldCount = 0; +if (this.sfacElementSymbols == null) { +this.sfacElementSymbols = new Array(1); +} else { +oldCount = this.sfacElementSymbols.length; +this.sfacElementSymbols = JU.AU.arrayCopyS(this.sfacElementSymbols, oldCount + 1); +this.sfacElementSymbols[oldCount] = elementSymbol; +}this.sfacElementSymbols[oldCount] = elementSymbol; +}, "~A"); +Clazz.defineMethod(c$, "assumeAtomRecord", +function(){ +var x = NaN; +var y = NaN; +var z = NaN; +var occ = 1; +var elementIndex = -1; +var atomName = null; +try { +atomName = this.tokens[0]; +elementIndex = this.parseIntStr(this.tokens[1]) - 1; +x = this.parseFloatStr(this.tokens[2]) % 10; +y = this.parseFloatStr(this.tokens[3]) % 10; +z = this.parseFloatStr(this.tokens[4]) % 10; +occ = this.parseFloatStr(this.tokens[5]) % 10; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +if (Float.isNaN(x) || Float.isNaN(y) || Float.isNaN(z)) { +JU.Logger.error("skipping line " + this.line); +return; +}var atom = this.asc.addNewAtom(); +atom.atomName = atomName; +atom.foccupancy = occ; +var isQPeak = atomName.startsWith("Q"); +if (isQPeak) { +atom.elementSymbol = "Xx"; +} else if (this.sfacElementSymbols != null && elementIndex >= 0 && elementIndex < this.sfacElementSymbols.length) { +atom.elementSymbol = this.sfacElementSymbols[elementIndex]; +}this.setAtomCoordXYZ(atom, x, y, z); +atom.altLoc = this.altloc; +if (this.tokens.length == 12) { +var data = Clazz.newFloatArray (8, 0); +data[0] = this.parseFloatStr(this.tokens[6]); +data[1] = this.parseFloatStr(this.tokens[7]); +data[2] = this.parseFloatStr(this.tokens[8]); +data[3] = this.parseFloatStr(this.tokens[11]); +data[4] = this.parseFloatStr(this.tokens[10]); +data[5] = this.parseFloatStr(this.tokens[9]); +for (var i = 0; i < 6; i++) if (Float.isNaN(data[i])) { +JU.Logger.error("Bad anisotropic Uij data: " + this.line); +return; +} +this.asc.setAnisoBorU(atom, data, 8); +}}); +Clazz.defineMethod(c$, "processCmdfAtoms", +function(){ +while (this.rd() != null && this.line.length > 10) { +this.tokens = this.getTokens(); +this.addAtomXYZSymName(this.tokens, 2, this.getSymbol(this.tokens[0]), this.tokens[1]); +} +}); +Clazz.defineMethod(c$, "getSymbol", +function(sym){ +if (sym == null) return "Xx"; +var len = sym.length; +if (len < 2) return sym; +var ch1 = sym.charAt(1); +if (ch1 >= 'a' && ch1 <= 'z') return sym.substring(0, 2); +return "" + sym.charAt(0); +}, "~S"); +c$.isValidElementSymbolNoCaseSecondChar = Clazz.defineMethod(c$, "isValidElementSymbolNoCaseSecondChar", +function(str){ +if (str == null) return false; +var length = str.length; +if (length == 0) return false; +var chFirst = str.charAt(0); +if (length == 1) return J.adapter.smarter.Atom.isValidSym1(chFirst); +if (length > 2) return false; +var chSecond = str.charAt(1); +return J.adapter.smarter.Atom.isValidSymNoCase(chFirst, chSecond); +}, "~S"); +Clazz.overrideMethod(c$, "applySymmetryAndSetTrajectory", +function(){ +if (this.isCentroSymmetric && !this.ignoreFileSymmetryOperators) { +this.asc.getXSymmetry().getSymmetry().addInversion(); +this.isCentroSymmetric = false; +}this.applySymTrajASCR(); +}); +c$.supportedRecordTypes = Clazz.newArray(-1, ["TITL", "CELL", "SPGR", "SFAC", "LATT", "SYMM", "NOTE", "ATOM", "PART", "END"]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/SiestaReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/SiestaReader.js new file mode 100755 index 000000000000..d8a14229508c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/SiestaReader.js @@ -0,0 +1,206 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.SiestaReader", ["java.util.Hashtable", "JU.PT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.noAtoms = 0; +this.acfUnits = "bohr"; +this.tokens = null; +this.STATE_UNKNOWN = 0; +this.STATE_INPUT = 1; +this.STATE_OUTPUT = 2; +this.state = 0; +this.acfFactor = 0; +this.htSpecies = null; +this.unitCellVectors = null; +this.unitCellParamsS = null; +this.latticeConstant = 1; +this.latticeUnits = null; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "SiestaReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.doApplySymmetry = true; +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (this.line.length == 0 || this.line.charAt(0) == '#' || this.line.indexOf(' ') < 0 && this.line.indexOf('\t') < 0) return true; +switch (this.state) { +case 0: +if (this.line.indexOf("Dump of input data file") >= 0) { +this.state = 1; +return true; +}this.tokens = this.getTokens(); +if (this.fixToken(0).equals("numberofspecies")) { +this.state = 1; +return false; +}return true; +case 1: +if (this.line.indexOf("End of input data file") >= 0) { +this.state = 2; +return true; +}this.tokens = this.getTokens(); +if (this.tokens[0].equals("%block")) { +this.readBlock(this.fixToken(1)); +} else { +this.readValue(this.fixToken(0)); +}return true; +} +if (this.line.contains("outcoor: Atomic coordinates")) { +if (this.doGetModel(++this.modelNumber, null)) this.readAtomsCartGeomThenCell(); +return true; +}return true; +}); +Clazz.defineMethod(c$, "readValue", +function(key){ +if (key.equals("latticeconstant")) { +this.setCell("latticeconstant"); +} else if (key.equals("atomiccoordinatesformat")) { +this.readAtomicCoordinatesFormat(); +}}, "~S"); +Clazz.defineMethod(c$, "readBlock", +function(key){ +if (key.equals("latticevectors") || key.equals("latticeparameters")) return this.setCell(key); +if (key.equals("chemicalspecieslabel")) return this.readSpecies(); +if (key.equals("atomiccoordinatesandatomicspecies")) { +if (!this.doGetModel(++this.modelNumber, null)) { +this.skipModel(); +return false; +}return this.readAtoms(); +}this.discardLinesUntilContains("%endblock"); +return true; +}, "~S"); +Clazz.defineMethod(c$, "readSpecies", +function(){ +this.htSpecies = new java.util.Hashtable(); +while (this.rdSiesta().indexOf("%") < 0) { +this.tokens = this.getTokens(); +this.htSpecies.put(this.tokens[0], this.tokens); +} +return false; +}); +Clazz.defineMethod(c$, "fixToken", +function(i){ +return JU.PT.replaceAllCharacters(this.tokens[i], "_.-", "").toLowerCase(); +}, "~N"); +Clazz.defineMethod(c$, "rdSiesta", +function(){ +var s = this.rd(); +var pt = s.indexOf("#"); +return (pt < 0 ? s : s.substring(pt)).trim(); +}); +Clazz.defineMethod(c$, "getACFValue", +function(v){ +if (this.acfFactor == 0) { +var isScaledCartesian = (this.acfUnits === "scaledcartesian"); +if (isScaledCartesian) this.acfUnits = this.latticeUnits; +this.acfUnits = JU.PT.rep(this.acfUnits, "notscaledcartesian", ""); +switch ((this.acfUnits.charAt(0)).charCodeAt(0)) { +default: +case 98: +this.setFractionalCoordinates(isScaledCartesian); +this.acfFactor = (1.8897268777743552); +break; +case 109: +this.setFractionalCoordinates(isScaledCartesian); +this.acfFactor = (1.0E-10); +break; +case 110: +this.setFractionalCoordinates(isScaledCartesian); +this.acfFactor = (0.1); +break; +case 97: +this.setFractionalCoordinates(isScaledCartesian); +this.acfFactor = 1; +break; +case 102: +case 115: +this.setFractionalCoordinates(true); +this.acfFactor = 1; +break; +} +if (isScaledCartesian) { +this.acfFactor /= this.latticeConstant; +this.setFractionalCoordinates(true); +}}return (this.acfFactor * v); +}, "~N"); +Clazz.defineMethod(c$, "readAtomicCoordinatesFormat", +function(){ +this.acfUnits = this.tokens[1].toLowerCase().intern(); +}); +Clazz.defineMethod(c$, "skipModel", +function(){ +this.discardLinesUntilContains("%endblock AtomicCoordinatesAndAtomicSpecies"); +}); +Clazz.defineMethod(c$, "setCell", +function(key){ +if (key.equals("latticevectors")) { +this.unitCellVectors = Clazz.newFloatArray (9, 0); +this.fillFloatArray(null, 0, this.unitCellVectors); +} else if (key.equals("latticeconstant")) { +var tokens = this.getTokens(); +this.latticeConstant = this.parseFloatStr(tokens[1]); +this.latticeUnits = tokens[2].toLowerCase(); +} else if (key.equals("latticeparameters")) { +this.unitCellParamsS = Clazz.newFloatArray (6, 0); +this.fillFloatArray(this.line.substring(this.line.indexOf("ters") + 4), 0, this.unitCellParamsS); +}return true; +}, "~S"); +Clazz.defineMethod(c$, "readAtoms", +function(){ +this.newAtomSet(); +if (this.unitCellVectors != null) { +this.addExplicitLatticeVector(0, this.unitCellVectors, 0); +this.addExplicitLatticeVector(1, this.unitCellVectors, 3); +this.addExplicitLatticeVector(2, this.unitCellVectors, 6); +} else if (this.unitCellParamsS != null) { +this.setUnitCell(this.unitCellParamsS[0] * this.latticeConstant, this.unitCellParamsS[1] * this.latticeConstant, this.unitCellParamsS[2] * this.latticeConstant, this.unitCellParamsS[3], this.unitCellParamsS[4], this.unitCellParamsS[5]); +}while (this.rdSiesta() != null && this.line.indexOf("%endblock Atomic") < 0) { +var tokens = this.getTokens(); +var species = (this.htSpecies == null ? Clazz.newArray(-1, [null, null, tokens[4]]) : this.htSpecies.get(tokens[3])); +var name = species[2]; +var sym = (species[1] == null ? name : J.adapter.smarter.AtomSetCollectionReader.getElementSymbol(this.parseIntStr(species[1]))); +this.addAtomXYZSymName(tokens, 0, sym, name); +} +this.noAtoms = this.asc.ac; +return true; +}); +Clazz.defineMethod(c$, "setAtomCoordXYZ", +function(atom, x, y, z){ +Clazz.superCall(this, J.adapter.readers.xtal.SiestaReader, "setAtomCoordXYZ", [atom, this.getACFValue(x), this.getACFValue(y), this.getACFValue(z)]); +}, "J.adapter.smarter.Atom,~N,~N,~N"); +Clazz.defineMethod(c$, "newAtomSet", +function(){ +this.applySymmetryAndSetTrajectory(); +this.asc.newAtomSet(); +this.setSpaceGroupName("P1"); +this.setFractionalCoordinates(false); +}); +Clazz.defineMethod(c$, "readAtomsCartGeomThenCell", +function(){ +this.readLines(1); +this.newAtomSet(); +var atom0 = this.asc.ac; +for (var i = 0; i < this.noAtoms; i++) { +var tokens = this.getTokens(); +var atom = this.asc.addNewAtom(); +atom.atomName = tokens[4]; +var x = this.parseFloatStr(tokens[0]); +var y = this.parseFloatStr(tokens[1]); +var z = this.parseFloatStr(tokens[2]); +atom.set(x, y, z); +this.rdSiesta(); +} +this.discardLinesUntilContains("outcell: Unit cell vectors"); +this.setCell("vectors"); +var atoms = this.asc.atoms; +var ac = this.asc.ac; +for (var i = atom0; i < ac; i++) this.setAtomCoord(atoms[i]); + +this.discardLinesUntilContains("siesta: E_KS(eV) = "); +var tokens = this.getTokens(); +var energy = Double.$valueOf(Double.parseDouble(tokens[3])); +this.asc.setAtomSetEnergy("" + energy, energy.floatValue()); +this.asc.setCurrentModelInfo("Energy", energy); +this.asc.setInfo("Energy", energy); +this.asc.setAtomSetName("Energy = " + energy + " eV"); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/VaspChgcarReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/VaspChgcarReader.js new file mode 100755 index 000000000000..0ea0663f05f0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/VaspChgcarReader.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.readers.xtal.VaspPoscarReader"], "J.adapter.readers.xtal.VaspChgcarReader", null, function(){ +var c$ = Clazz.declareType(J.adapter.readers.xtal, "VaspChgcarReader", J.adapter.readers.xtal.VaspPoscarReader); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/VaspOutcarReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/VaspOutcarReader.js new file mode 100755 index 000000000000..a19499a171e4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/VaspOutcarReader.js @@ -0,0 +1,188 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader", "JU.Lst"], "J.adapter.readers.xtal.VaspOutcarReader", ["JU.DF", "$.PT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.atomNames = null; +this.ac = 0; +this.inputOnly = false; +this.mDsimulation = false; +this.vaspVersion = 0; +this.elementNames = null; +this.gibbsEnergy = null; +this.gibbsEntropy = null; +this.electronEne = null; +this.kinEne = null; +this.totEne = null; +this.temp = 0; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "VaspOutcarReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.prepareFields (c$, function(){ +this.elementNames = new JU.Lst(); +}); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.isPrimitive = true; +this.setSpaceGroupName("P1"); +this.setFractionalCoordinates(true); +this.inputOnly = this.checkFilterKey("INPUT"); +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (this.vaspVersion == 0 && this.line.contains(" vasp.")) { +this.readVersion(); +if (this.vaspVersion > 0) this.appendLoadNote("VASP version " + this.vaspVersion + " " + this.line); +} else if (this.line.toUpperCase().startsWith(" POTCAR:")) { +this.readElementNames(); +} else if (this.line.contains("ions per type")) { +this.readAtomCountAndSetNames(); +} else if (this.line.contains("molecular dynamics for ions")) { +this.mDsimulation = true; +} else if (this.line.contains("direct lattice vectors")) { +this.readUnitCellVectors(); +} else if (this.ac > 0 && this.line.contains("position of ions in fractional coordinates")) { +this.readInitialCoordinates(); +if (this.inputOnly) this.continuing = false; +} else if (this.line.contains("POSITION")) { +this.readPOSITION(); +return true; +} else if (this.line.startsWith(" FREE ENERGIE") && !this.mDsimulation) { +this.readEnergy(); +} else if (this.line.contains("ENERGIE OF THE ELECTRON-ION-THERMOSTAT") && this.mDsimulation) { +this.readMdyn(); +} else if (this.line.startsWith(" Eigenvectors and eigenvalues of the dynamical matrix")) { +this.readFrequency(); +}return true; +}); +Clazz.defineMethod(c$, "readVersion", +function(){ +var tokens = JU.PT.split(this.line, "."); +this.vaspVersion = JU.PT.parseInt(tokens[1]); +}); +Clazz.overrideMethod(c$, "finalizeSubclassReader", +function(){ +this.setSymmetry(); +}); +Clazz.defineMethod(c$, "readElementNames", +function(){ +this.line = JU.PT.rep(this.line, " _ ", "_"); +var tokens = this.getTokens(); +var pt = tokens[1].indexOf(":"); +var name = (pt >= 0 ? tokens[1].substring(0, pt) : tokens[2]); +this.elementNames.addLast(name); +}); +Clazz.defineMethod(c$, "readAtomCountAndSetNames", +function(){ +var numofElement = Clazz.newIntArray (100, 0); +var tokens = JU.PT.getTokens(this.line.substring(this.line.indexOf("=") + 1)); +this.ac = 0; +for (var i = 0; i < tokens.length; i++) this.ac += (numofElement[i] = this.parseIntStr(tokens[i])); + +this.atomNames = new Array(this.ac); +var nElements = this.elementNames.size(); +for (var pt = 0, i = 0; i < nElements; i++) for (var j = 0; j < numofElement[i] && pt < this.ac; j++) this.atomNames[pt++] = this.elementNames.get(i); + + +}); +Clazz.defineMethod(c$, "readUnitCellVectors", +function(){ +if (this.asc.ac > 0) { +this.setSymmetry(); +this.asc.newAtomSet(); +this.setAtomSetInfo(); +}var f = Clazz.newFloatArray (3, 0); +for (var i = 0; i < 3; i++) this.addExplicitLatticeVector(i, this.fillFloatArray(this.fixMinus(this.rd()), 0, f), 0); + +}); +Clazz.defineMethod(c$, "fixMinus", +function(line){ +return JU.PT.rep(line, "-", " -"); +}, "~S"); +Clazz.defineMethod(c$, "setSymmetry", +function(){ +this.applySymmetryAndSetTrajectory(); +this.setSpaceGroupName("P1"); +this.setFractionalCoordinates(false); +}); +Clazz.defineMethod(c$, "readInitialCoordinates", +function(){ +var counter = 0; +while (this.rd() != null && this.line.length > 10) { +this.addAtomXYZSymName(JU.PT.getTokens(this.fixMinus(this.line)), 0, null, this.atomNames[counter++]); +} +this.asc.setAtomSetName("Initial Coordinates"); +}); +Clazz.defineMethod(c$, "readPOSITION", +function(){ +var counter = 0; +this.readLines(1); +while (this.rd() != null && this.line.indexOf("----------") < 0) this.addAtomXYZSymName(this.getTokens(), 0, null, this.atomNames[counter++]); + +}); +Clazz.defineMethod(c$, "readEnergy", +function(){ +this.rd(); +var tokens = JU.PT.getTokens(this.rd()); +this.gibbsEnergy = Double.$valueOf(Double.parseDouble(tokens[4])); +this.rd(); +tokens = JU.PT.getTokens(this.rd()); +var enthalpy = Double.parseDouble(tokens[3]); +this.gibbsEntropy = Double.$valueOf(enthalpy - this.gibbsEnergy.doubleValue()); +}); +Clazz.defineMethod(c$, "setAtomSetInfo", +function(){ +if (this.gibbsEnergy == null) return; +this.asc.setAtomSetEnergy("" + this.gibbsEnergy, this.gibbsEnergy.floatValue()); +this.asc.setCurrentModelInfo("Energy", this.gibbsEnergy); +this.asc.setCurrentModelInfo("Entropy", this.gibbsEntropy); +this.asc.setInfo("Energy", this.gibbsEnergy); +this.asc.setInfo("Entropy", this.gibbsEntropy); +this.asc.setAtomSetName("G = " + this.gibbsEnergy + " eV, T*S = " + this.gibbsEntropy + " eV"); +}); +Clazz.defineMethod(c$, "readMdyn", +function(){ +var tokens = this.getTokens(); +this.rd(); +tokens = JU.PT.getTokens(this.rd()); +this.electronEne = Double.$valueOf(Double.parseDouble(tokens[4])); +tokens = JU.PT.getTokens(this.rd()); +this.kinEne = Double.$valueOf(Double.parseDouble(tokens[4])); +this.temp = this.parseFloatStr(tokens[6]); +this.readLines(3); +tokens = JU.PT.getTokens(this.rd()); +this.totEne = Double.$valueOf(Double.parseDouble(tokens[4])); +this.setAtomSetInfoMd(); +}); +Clazz.defineMethod(c$, "setAtomSetInfoMd", +function(){ +this.asc.setAtomSetName("Temp. = " + JU.DF.formatDecimal((this.temp), 2) + " K, Energy = " + this.totEne + " eV"); +this.asc.setCurrentModelInfo("Energy", this.totEne); +this.asc.setInfo("Energy", this.totEne); +this.asc.setCurrentModelInfo("EleEnergy", this.kinEne); +this.asc.setInfo("EleEnergy", this.electronEne); +this.asc.setCurrentModelInfo("Kinetic", this.electronEne); +this.asc.setInfo("Kinetic", this.kinEne); +this.asc.setCurrentModelInfo("Temperature", JU.DF.formatDecimal((this.temp), 2)); +this.asc.setInfo("Temperature", JU.DF.formatDecimal((this.temp), 2)); +}); +Clazz.defineMethod(c$, "readFrequency", +function(){ +var pt = this.asc.iSet; +this.asc.baseSymmetryAtomCount = this.ac; +if (this.vaspVersion >= 5) { +this.readLines(3); +} else { +this.discardLinesUntilContains("Eigenvectors after division by SQRT(mass)"); +this.readLines(5); +}var ignore = Clazz.newBooleanArray(1, false); +while (this.rd() != null && (this.line.contains("f = ") || this.line.contains("f/i= "))) { +this.applySymmetryAndSetTrajectory(); +var iAtom0 = this.asc.ac; +this.cloneLastAtomSet(this.ac, null); +if (!ignore[0]) { +this.asc.iSet = ++pt; +this.asc.setAtomSetFrequency(this.vibrationNumber, null, null, this.line.substring(this.line.indexOf("2PiTHz") + 6, this.line.indexOf("c") - 1).trim(), null); +}this.rd(); +this.fillFrequencyData(iAtom0, this.ac, this.ac, ignore, true, 35, 12, null, 0, null); +this.rd(); +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/VaspPoscarReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/VaspPoscarReader.js new file mode 100755 index 000000000000..4959c0e2672b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/VaspPoscarReader.js @@ -0,0 +1,140 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.VaspPoscarReader", ["JU.Lst", "$.M3", "$.PT", "$.SB", "J.api.JmolAdapter", "JU.Logger", "$.Parser"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.atomLabels = null; +this.haveAtomLabels = true; +this.atomsLabeledInline = false; +this.scaleFac = 0; +this.ac = 0; +this.title = null; +this.quiet = false; +this.defaultLabels = null; +this.unitCellData = null; +this.elementLabel = null; +this.radiusPt = -2147483648; +this.elementPt = -2147483648; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "VaspPoscarReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.isPrimitive = true; +this.readStructure(null); +this.continuing = false; +}); +Clazz.defineMethod(c$, "readStructure", +function(titleMsg){ +this.title = this.rd().trim(); +var pt = this.title.indexOf("--params"); +if ((pt = this.title.indexOf("& ", pt + 1)) >= 0) { +this.latticeType = this.title.substring(pt + 2, pt + 3); +JU.Logger.info("AFLOW lattice:" + this.latticeType + " title=" + this.title); +}this.readUnitCellVectors(); +this.readMolecularFormula(); +this.readCoordinates(); +this.asc.setAtomSetName(this.title + (titleMsg == null ? "" : "[" + titleMsg + "]")); +}, "~S"); +Clazz.overrideMethod(c$, "finalizeSubclassReader", +function(){ +if (!this.iHaveFractionalCoordinates) this.fractionalizeCoordinates(true); +if (!this.haveAtomLabels && !this.atomsLabeledInline) this.appendLoadNote("VASP POSCAR reader using pseudo atoms Al B C Db..."); +this.finalizeReaderASCR(); +}); +Clazz.defineMethod(c$, "readUnitCellVectors", +function(){ +this.setSpaceGroupName("P1"); +this.setFractionalCoordinates(true); +this.scaleFac = this.parseFloatStr(this.rdline().trim()); +var isVolume = (this.scaleFac < 0); +if (isVolume) this.scaleFac = Math.pow(-this.scaleFac, 0.3333333333333333); +this.unitCellData = Clazz.newFloatArray (9, 0); +var s = this.rdline() + " " + this.rdline() + " " + this.rdline(); +JU.Parser.parseStringInfestedFloatArray(s, null, this.unitCellData); +if (isVolume) { +var m = JU.M3.newA9(this.unitCellData); +this.scaleFac /= m.determinant3(); +}if (this.scaleFac != 1) for (var i = 0; i < this.unitCellData.length; i++) this.unitCellData[i] *= this.scaleFac; + +}); +Clazz.defineMethod(c$, "readMolecularFormula", +function(){ +if (this.elementLabel == null) this.elementLabel = JU.PT.getTokens(this.discardLinesUntilNonBlank()); +var elementCounts; +if (JU.PT.parseInt(this.elementLabel[0]) == -2147483648) { +this.atomsLabeledInline = false; +elementCounts = JU.PT.getTokens(this.rdline()); +while (this.line != null && (elementCounts.length == 0 || this.parseIntStr(elementCounts[0]) == -2147483648)) elementCounts = JU.PT.getTokens(this.rdline()); + +} else { +elementCounts = this.elementLabel; +this.elementLabel = JU.PT.split(this.title, " "); +if (this.elementLabel.length != elementCounts.length || this.elementLabel[0].length > 2) { +this.elementLabel = JU.PT.split("Al B C Db Eu F Ga Hf I K Li Mn N O P Ru S Te U V W Xe Yb Zn", " "); +this.haveAtomLabels = false; +}}var labels = this.elementLabel; +var mf = new JU.SB(); +this.atomLabels = new JU.Lst(); +this.ac = 0; +for (var i = 0; i < elementCounts.length; i++) { +var n = Integer.parseInt(elementCounts[i]); +this.ac += n; +var label = labels[i]; +mf.append(" ").append(label).appendI(n); +for (var j = n; --j >= 0; ) this.atomLabels.addLast(label); + +} +var s = mf.toString(); +if (!this.quiet) this.appendLoadNote(this.ac + " atoms identified for" + s); +this.asc.newAtomSet(); +this.asc.setAtomSetName(s); +}); +Clazz.defineMethod(c$, "readCoordinates", +function(){ +var isSelective = this.discardLinesUntilNonBlank().toLowerCase().contains("selective"); +if (isSelective) this.rd(); +var isCartesian = (this.line.toLowerCase().contains("cartesian")); +if (isCartesian) { +this.setFractionalCoordinates(false); +}this.addExplicitLatticeVector(0, this.unitCellData, 0); +this.addExplicitLatticeVector(1, this.unitCellData, 3); +this.addExplicitLatticeVector(2, this.unitCellData, 6); +for (var i = 0; i < this.ac; i++) { +var radius = NaN; +var tokens = JU.PT.getTokens(this.rdline()); +if (this.radiusPt == -2147483648) { +for (var j = tokens.length; --j > 2; ) { +var t = tokens[j]; +if (t.equals("radius")) { +this.radiusPt = j + 1; +} else if (!t.equals("T") && !t.equals("F") && this.getElement(t) != null) { +this.elementPt = j; +this.atomsLabeledInline = true; +}} +}if (this.radiusPt >= 0) radius = this.parseFloatStr(tokens[this.radiusPt]); +var label = (this.atomsLabeledInline ? tokens[this.elementPt] : this.atomLabels.get(i)); +if (isCartesian) for (var j = 0; j < 3; j++) tokens[j] = "" + this.parseFloatStr(tokens[j]) * this.scaleFac; + +var atom = this.addAtomXYZSymName(tokens, 0, null, label); +if (!Float.isNaN(radius)) atom.radius = radius * this.scaleFac; +if (this.asc.bsAtoms != null) this.asc.bsAtoms.set(atom.index); +} +}); +Clazz.defineMethod(c$, "getElement", +function(token){ +var s = null; +switch (token.length) { +default: +s = (token.length > 2 ? token.substring(0, 2) : null); +if (s != null && J.api.JmolAdapter.getElementNumber(s) >= 0) return s; +case 1: +if (J.api.JmolAdapter.getElementNumber(s = token.substring(0)) >= 0) return s; +case 0: +return null; +} +}, "~S"); +Clazz.defineMethod(c$, "rdline", +function(){ +this.rd(); +if (this.line != null && this.line.startsWith("[")) this.line = this.line.substring(this.line.indexOf("]") + 1).trim(); +return this.line; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/Wien2kReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/Wien2kReader.js new file mode 100755 index 000000000000..b0d2dd59772d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/Wien2kReader.js @@ -0,0 +1,115 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.Wien2kReader", ["JU.PT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isrhombohedral = false; +this.latticeCode = '\0'; +this.doSymmetry = true; +this.cxyz = " x y z"; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "Wien2kReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.doSymmetry = !this.sgName.equals("none"); +this.setFractionalCoordinates(true); +this.asc.setCollectionName(this.rd()); +this.readUnitCell(); +this.readAtoms(); +this.readSymmetry(); +this.readEmbeddedScript(); +this.continuing = false; +}); +Clazz.defineMethod(c$, "readUnitCell", +function(){ +this.rd(); +this.isrhombohedral = ((this.latticeCode = this.line.charAt(0)) == 'R'); +if (this.line.startsWith("CYZ")) this.latticeCode = 'A'; + else if (this.line.startsWith("CXZ")) this.latticeCode = 'B'; + else if (this.line.startsWith("B")) this.latticeCode = 'I'; +if (this.latticeCode != 'R' && this.latticeCode != 'H') this.asc.getXSymmetry().setLatticeParameter(this.latticeCode.charCodeAt(0)); +if (this.line.length > 32) { +var name = this.line.substring(32).trim(); +if (name.indexOf(" ") >= 0) name = name.substring(name.indexOf(" ") + 1); +if (name.indexOf("_") >= 0) name = name.substring(name.indexOf("_") + 1); +this.setSpaceGroupName(name); +}var factor = (this.rd().toLowerCase().indexOf("ang") >= 0 ? 1 : 0.5291772); +this.rd(); +var a = this.parseFloatRange(this.line, 0, 10) * factor; +var b = this.parseFloatRange(this.line, 10, 20) * factor; +var c = this.parseFloatRange(this.line, 20, 30) * factor; +var l = this.line.length; +var alpha = (l >= 40 ? this.parseFloatRange(this.line, 30, 40) : 0); +var beta = (l >= 50 ? this.parseFloatRange(this.line, 40, 50) : 0); +var gamma = (l >= 60 ? this.parseFloatRange(this.line, 50, 60) : 0); +if (this.isrhombohedral) { +var ar = Math.sqrt(a * a / 3 + c * c / 9); +alpha = beta = gamma = (Math.acos((2 * c * c - 3 * a * a) / (2 * c * c + 6 * a * a)) * 180 / 3.141592653589793); +a = b = c = ar; +}if (Float.isNaN(alpha) || alpha == 0) alpha = 90; +if (Float.isNaN(beta) || beta == 0) beta = 90; +if (Float.isNaN(gamma) || gamma == 0) gamma = 90; +this.setUnitCell(a, b, c, alpha, beta, gamma); +}); +Clazz.defineMethod(c$, "readAtoms", +function(){ +this.rd(); +while (this.line != null && (this.line.indexOf("ATOM") == 0 || !this.doSymmetry && this.line.indexOf(":") == 8)) { +var thisAtom = this.asc.ac; +this.addAtom(); +if (this.rd().indexOf("MULT=") == 10) for (var i = this.parseIntRange(this.line, 15, 18); --i >= 0; ) { +this.rd(); +if (!this.doSymmetry) this.addAtom(); +} +var atomName = this.line.substring(0, 10); +var sym = atomName.substring(0, 2).trim(); +if (sym.length == 2 && JU.PT.isDigit(sym.charAt(1))) sym = sym.substring(0, 1); +atomName = JU.PT.rep(atomName, " ", ""); +var n = 0; +for (var i = this.asc.ac; --i >= thisAtom; ) { +var atom = this.asc.atoms[i]; +atom.elementSymbol = sym; +atom.atomName = atomName + "_" + (n++); +} +while (this.rd() != null && this.line.indexOf("ATOM") < 0 && this.line.indexOf("SYMMETRY") < 0) { +} +} +}); +Clazz.defineMethod(c$, "addAtom", +function(){ +var a = this.parseFloatRange(this.line, 12, 22); +var b = this.parseFloatRange(this.line, 25, 35); +var c = this.parseFloatRange(this.line, 38, 48); +var atom = this.asc.addNewAtom(); +this.setAtomCoordXYZ(atom, a, b, c); +}); +Clazz.defineMethod(c$, "readSymmetry", +function(){ +if (this.line.indexOf("SYMMETRY") < 0) return; +var n = this.parseIntRange(this.line, 0, 4); +for (var i = n; --i >= 0; ) { +var xyz = this.getJones() + "," + this.getJones() + "," + this.getJones(); +if (this.doSymmetry) this.setSymmetryOperator(xyz); +this.rd(); +} +}); +Clazz.defineMethod(c$, "getJones", +function(){ +this.rd(); +var xyz = ""; +var trans = this.parseFloatStr(this.line.substring(6)); +for (var i = 0; i < 6; i++) { +if (this.line.charAt(i) == '-') xyz += "-"; +if (this.line.charAt(++i) == '1') { +xyz += " x y z".charAt(i); +if (trans > 0) xyz += "+"; +if (trans != 0) xyz += trans; +}} +return xyz; +}); +Clazz.defineMethod(c$, "readEmbeddedScript", +function(){ +while (this.line != null) { +this.checkCurrentLineForScript(); +this.rd(); +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/XcrysdenReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/XcrysdenReader.js new file mode 100755 index 000000000000..3296b50e836a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/readers/xtal/XcrysdenReader.js @@ -0,0 +1,72 @@ +Clazz.declarePackage("J.adapter.readers.xtal"); +Clazz.load(["J.adapter.smarter.AtomSetCollectionReader"], "J.adapter.readers.xtal.XcrysdenReader", ["JU.PT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.nAtoms = 0; +this.animation = false; +this.unitCellData = null; +this.animationStep = 0; +Clazz.instantialize(this, arguments);}, J.adapter.readers.xtal, "XcrysdenReader", J.adapter.smarter.AtomSetCollectionReader); +Clazz.prepareFields (c$, function(){ +this.unitCellData = Clazz.newFloatArray (9, 0); +}); +Clazz.overrideMethod(c$, "initializeReader", +function(){ +this.setFractionalCoordinates(false); +this.doApplySymmetry = true; +}); +Clazz.overrideMethod(c$, "checkLine", +function(){ +if (this.line.startsWith("ATOMS")) { +this.doApplySymmetry = false; +return this.readCoordinates(); +}if (this.line.contains("ANIMSTEP")) { +this.animation = true; +} else if (this.line.contains("PRIMVEC")) { +this.readUnitCell(); +} else if (this.line.contains("PRIMCOORD")) { +return this.readCoordinates(); +}return true; +}); +Clazz.defineMethod(c$, "readUnitCell", +function(){ +this.setSymmetry(); +this.fillFloatArray(null, 0, this.unitCellData); +this.setUnitCell(); +}); +Clazz.defineMethod(c$, "setUnitCell", +function(){ +this.addExplicitLatticeVector(0, this.unitCellData, 0); +this.addExplicitLatticeVector(1, this.unitCellData, 3); +this.addExplicitLatticeVector(2, this.unitCellData, 6); +}); +Clazz.defineMethod(c$, "setSymmetry", +function(){ +this.applySymmetryAndSetTrajectory(); +this.asc.newAtomSet(); +this.setSpaceGroupName("P1"); +this.setFractionalCoordinates(false); +}); +Clazz.defineMethod(c$, "readCoordinates", +function(){ +if (this.doApplySymmetry) { +var atomStr = JU.PT.getTokens(this.rd()); +this.nAtoms = Integer.parseInt(atomStr[0]); +} else { +this.nAtoms = 2147483647; +}this.setFractionalCoordinates(false); +var counter = 0; +while (counter < this.nAtoms && this.rd() != null) { +var tokens = this.getTokens(); +var an = JU.PT.parseInt(tokens[0]); +if (an < 0) { +break; +}this.line = null; +this.addAtomXYZSymName(tokens, 1, null, J.adapter.smarter.AtomSetCollectionReader.getElementSymbol(an)); +counter++; +} +this.asc.setAtomSetName(this.animation ? "Structure " + (++this.animationStep) : "Initial coordinates"); +if (this.line != null) this.setSymmetry(); +return (this.line == null); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Atom.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Atom.js new file mode 100755 index 000000000000..254dc949ce39 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Atom.js @@ -0,0 +1,113 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.load(["JU.P3"], "J.adapter.smarter.Atom", ["JU.AU", "$.Lst", "$.V3"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.atomSetIndex = 0; +this.index = 0; +this.bsSymmetry = null; +this.atomSite = 0; +this.elementSymbol = null; +this.elementNumber = -1; +this.atomName = null; +this.formalCharge = -2147483648; +this.partialCharge = NaN; +this.vib = null; +this.bfactor = NaN; +this.foccupancy = 1; +this.radius = NaN; +this.isHetero = false; +this.atomSerial = -2147483648; +this.chainID = 0; +this.bondingRadius = NaN; +this.altLoc = '\0'; +this.group3 = null; +this.sequenceNumber = -2147483648; +this.insertionCode = '\0'; +this.anisoBorU = null; +this.tensors = null; +this.isNegDisorder = false; +this.typeSymbol = null; +Clazz.instantialize(this, arguments);}, J.adapter.smarter, "Atom", JU.P3, Cloneable); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.adapter.smarter.Atom, []); +this.set(NaN, NaN, NaN); +}); +Clazz.defineMethod(c$, "addTensor", +function(tensor, type, reset){ +if (tensor == null) return null; +if (reset || this.tensors == null) this.tensors = new JU.Lst(); +this.tensors.addLast(tensor); +if (type != null) tensor.setType(type); +return tensor; +}, "JU.Tensor,~S,~B"); +Clazz.defineMethod(c$, "getClone", +function(){ +var a; +try { +a = this.clone(); +} catch (e) { +if (Clazz.exceptionOf(e,"CloneNotSupportedException")){ +return null; +} else { +throw e; +} +} +if (this.vib != null) { +if (Clazz.instanceOf(this.vib,"JU.Vibration")) { +a.vib = (this.vib).clone(); +} else { +a.vib = JU.V3.newV(a.vib); +}}if (this.anisoBorU != null) a.anisoBorU = JU.AU.arrayCopyF(this.anisoBorU, -1); +if (this.tensors != null) { +a.tensors = new JU.Lst(); +for (var i = this.tensors.size(); --i >= 0; ) a.tensors.addLast((this.tensors.get(i)).copyTensor()); + +}return a; +}); +Clazz.defineMethod(c$, "getElementSymbol", +function(){ +if (this.elementSymbol == null && this.atomName != null) { +var len = this.atomName.length; +var ichFirst = 0; +var chFirst = String.fromCharCode(0); +while (ichFirst < len && !J.adapter.smarter.Atom.isValidSymChar1(chFirst = this.atomName.charAt(ichFirst))) ++ichFirst; + +switch (len - ichFirst) { +case 0: +break; +default: +var chSecond = this.atomName.charAt(ichFirst + 1); +if (J.adapter.smarter.Atom.isValidSymNoCase(chFirst, chSecond)) { +this.elementSymbol = "" + chFirst + chSecond; +break; +}case 1: +if (J.adapter.smarter.Atom.isValidSym1(chFirst)) this.elementSymbol = "" + chFirst; +break; +} +}return this.elementSymbol; +}); +c$.isValidSym1 = Clazz.defineMethod(c$, "isValidSym1", +function(ch){ +return (ch >= 'A' && ch <= 'Z' && J.adapter.smarter.Atom.elementCharMasks[ch.charCodeAt(0) - 65] < 0); +}, "~S"); +c$.isValidSym2 = Clazz.defineMethod(c$, "isValidSym2", +function(ch1, ch2){ +return (ch1 >= 'A' && ch1 <= 'Z' && ch2 >= 'a' && ch2 <= 'z' && ((J.adapter.smarter.Atom.elementCharMasks[ch1.charCodeAt(0) - 65] >> (ch2.charCodeAt(0) - 97)) & 1) != 0); +}, "~S,~S"); +c$.isValidSymNoCase = Clazz.defineMethod(c$, "isValidSymNoCase", +function(ch1, ch2){ +return J.adapter.smarter.Atom.isValidSym2(ch1, ch2 < 'a' ? String.fromCharCode(ch2.charCodeAt(0) + 32) : ch2); +}, "~S,~S"); +c$.isValidSymChar1 = Clazz.defineMethod(c$, "isValidSymChar1", +function(ch){ +return (ch >= 'A' && ch <= 'Z' && J.adapter.smarter.Atom.elementCharMasks[ch.charCodeAt(0) - 65] != 0); +}, "~S"); +Clazz.defineMethod(c$, "copyTo", +function(pt, asc){ +var a = asc.newCloneAtom(this); +a.setT(pt); +return a; +}, "JU.P3,J.adapter.smarter.AtomSetCollection"); +c$.elementCharMasks = Clazz.newIntArray(-1, [1972292, -2147351151, -2146019271, -2130706430, 1441792, -2147348464, 25, -2147205008, -2147344384, 0, -2147352576, 1179905, 548936, -2147434213, -2147221504, -2145759221, 0, 1056947, -2147339946, -2147477097, -2147483648, -2147483648, -2147483648, 8388624, -2147483646, 139264]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomIterator.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomIterator.js new file mode 100755 index 000000000000..d0629eba17fe --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomIterator.js @@ -0,0 +1,126 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.load(["J.api.JmolAdapterAtomIterator"], "J.adapter.smarter.AtomIterator", ["J.api.JmolAdapter"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.iatom = 0; +this.atom = null; +this.ac = 0; +this.atoms = null; +this.bsAtoms = null; +Clazz.instantialize(this, arguments);}, J.adapter.smarter, "AtomIterator", null, J.api.JmolAdapterAtomIterator); +Clazz.makeConstructor(c$, +function(asc){ +this.ac = asc.ac; +this.atoms = asc.atoms; +this.bsAtoms = asc.bsAtoms; +this.iatom = 0; +}, "J.adapter.smarter.AtomSetCollection"); +Clazz.overrideMethod(c$, "hasNext", +function(){ +if (this.iatom == this.ac) return false; +while ((this.atom = this.atoms[this.iatom++]) == null || (this.bsAtoms != null && !this.bsAtoms.get(this.atom.index))) if (this.iatom == this.ac) return false; + +this.atoms[this.iatom - 1] = null; +return true; +}); +Clazz.overrideMethod(c$, "getAtomSetIndex", +function(){ +return this.atom.atomSetIndex; +}); +Clazz.overrideMethod(c$, "getSymmetry", +function(){ +return this.atom.bsSymmetry; +}); +Clazz.overrideMethod(c$, "getAtomSite", +function(){ +return this.atom.atomSite + 1; +}); +Clazz.overrideMethod(c$, "getUniqueID", +function(){ +return Integer.$valueOf(this.atom.index); +}); +Clazz.overrideMethod(c$, "getElementNumber", +function(){ +return (this.atom.elementNumber > 0 ? this.atom.elementNumber : J.api.JmolAdapter.getElementNumber(this.atom.getElementSymbol())); +}); +Clazz.overrideMethod(c$, "getAtomName", +function(){ +return this.atom.atomName; +}); +Clazz.overrideMethod(c$, "getFormalCharge", +function(){ +return (this.atom.formalCharge == -2147483648 ? 0 : this.atom.formalCharge); +}); +Clazz.overrideMethod(c$, "getPartialCharge", +function(){ +return this.atom.partialCharge; +}); +Clazz.overrideMethod(c$, "getTensors", +function(){ +return this.atom.tensors; +}); +Clazz.overrideMethod(c$, "getRadius", +function(){ +return this.atom.radius; +}); +Clazz.overrideMethod(c$, "getBondRadius", +function(){ +return this.atom.bondingRadius; +}); +Clazz.overrideMethod(c$, "getVib", +function(){ +return (this.atom.vib == null || Float.isNaN(this.atom.vib.z) ? null : this.atom.vib); +}); +Clazz.overrideMethod(c$, "getSeqID", +function(){ +return (this.atom.vib == null || !Float.isNaN(this.atom.vib.y) || this.atom.vib.z != 1094713365 ? 0 : Clazz.floatToInt(this.atom.vib.x)); +}); +Clazz.overrideMethod(c$, "getBfactor", +function(){ +return this.atom.bfactor; +}); +Clazz.overrideMethod(c$, "getOccupancy", +function(){ +return this.atom.foccupancy * 100; +}); +Clazz.overrideMethod(c$, "getIsHetero", +function(){ +return this.atom.isHetero; +}); +Clazz.overrideMethod(c$, "getSerial", +function(){ +return this.atom.atomSerial; +}); +Clazz.overrideMethod(c$, "getChainID", +function(){ +return this.atom.chainID; +}); +Clazz.overrideMethod(c$, "getAltLoc", +function(){ +return J.api.JmolAdapter.canonizeAlternateLocationID(this.atom.altLoc); +}); +Clazz.overrideMethod(c$, "getGroup3", +function(){ +return this.atom.group3; +}); +Clazz.overrideMethod(c$, "getSequenceNumber", +function(){ +return this.atom.sequenceNumber; +}); +Clazz.overrideMethod(c$, "getInsertionCode", +function(){ +return J.api.JmolAdapter.canonizeInsertionCode(this.atom.insertionCode); +}); +Clazz.overrideMethod(c$, "getXYZ", +function(){ +return this.atom; +}); +Clazz.overrideMethod(c$, "getElement", +function(){ +return this.getElementNumber() & 0x7F; +}); +Clazz.overrideMethod(c$, "getIsotope", +function(){ +return this.getElementNumber() >> 7; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomSetCollection.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomSetCollection.js new file mode 100755 index 000000000000..ac1829901019 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomSetCollection.js @@ -0,0 +1,880 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.load(["java.util.Hashtable"], "J.adapter.smarter.AtomSetCollection", ["java.util.Collections", "$.Properties", "JU.AU", "$.BS", "$.Lst", "$.P3", "$.V3", "J.adapter.smarter.Atom", "$.Bond", "$.SmarterJmolAdapter", "J.api.Interface", "JU.BSUtil", "$.Logger", "JV.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.reader = null; +this.bsAtoms = null; +this.fileTypeName = null; +this.collectionName = null; +this.atomSetInfo = null; +this.atoms = null; +this.ac = 0; +this.bonds = null; +this.bondCount = 0; +this.structures = null; +this.structureCount = 0; +this.atomSetCount = 0; +this.iSet = -1; +this.atomSetNumbers = null; +this.atomSetAtomIndexes = null; +this.atomSetAtomCounts = null; +this.atomSetBondCounts = null; +this.atomSetAuxiliaryInfo = null; +this.errorMessage = null; +this.coordinatesAreFractional = false; +this.isTrajectory = false; +this.trajectoryStepCount = 0; +this.trajectorySteps = null; +this.vibrationSteps = null; +this.trajectoryNames = null; +this.doFixPeriodic = false; +this.allowMultiple = false; +this.readerList = null; +this.atomMapAnyCase = false; +this.fixedSite = 0; +this.bsStructuredModels = null; +this.haveAnisou = false; +this.baseSymmetryAtomCount = 0; +this.crystalReaderLatticeOpsOnly = false; +this.xtalSymmetry = null; +this.bondIndex0 = 0; +this.atomSymbolicMap = null; +this.haveUnitCell = false; +this.vibScale = 0; +this.firstAtomToBond = -1; +Clazz.instantialize(this, arguments);}, J.adapter.smarter, "AtomSetCollection", null); +Clazz.prepareFields (c$, function(){ +this.atomSetInfo = new java.util.Hashtable(); +this.atoms = new Array(256); +this.bonds = new Array(256); +this.structures = new Array(16); +this.atomSetNumbers = Clazz.newIntArray (16, 0); +this.atomSetAtomIndexes = Clazz.newIntArray (16, 0); +this.atomSetAtomCounts = Clazz.newIntArray (16, 0); +this.atomSetBondCounts = Clazz.newIntArray (16, 0); +this.atomSetAuxiliaryInfo = new Array(16); +this.atomSymbolicMap = new java.util.Hashtable(); +}); +Clazz.makeConstructor(c$, +function(fileTypeName, reader, array, list){ +this.fileTypeName = fileTypeName; +this.reader = reader; +this.allowMultiple = (reader == null || reader.desiredVibrationNumber < 0); +var p = new java.util.Properties(); +p.put("PATH_KEY", ".PATH"); +p.put("PATH_SEPARATOR", J.adapter.smarter.SmarterJmolAdapter.PATH_SEPARATOR); +this.setInfo("properties", p); +if (reader != null) { +var ii = reader.htParams.get("appendToModelIndex"); +if (ii != null) this.setInfo("appendToModelIndex", ii); +ii = reader.htParams.get("fixedSite"); +if (ii != null) this.fixedSite = ii.intValue(); +}if (array != null) { +var n = 0; +this.readerList = new JU.Lst(); +for (var i = 0; i < array.length; i++) if (array[i] != null && (array[i].ac > 0 || array[i].reader != null && array[i].reader.mustFinalizeModelSet)) this.appendAtomSetCollection(n++, array[i]); + +if (n > 1) this.setInfo("isMultiFile", Boolean.TRUE); +} else if (list != null) { +this.setInfo("isMultiFile", Boolean.TRUE); +this.appendAtomSetCollectionList(list); +}}, "~S,J.adapter.smarter.AtomSetCollectionReader,~A,JU.Lst"); +Clazz.defineMethod(c$, "setCollectionName", +function(collectionName){ +if (collectionName != null && (collectionName = collectionName.trim()).length > 0) this.collectionName = collectionName; +}, "~S"); +Clazz.defineMethod(c$, "clearGlobalBoolean", +function(globalIndex){ +this.atomSetInfo.remove(JV.JC.getBoolName(globalIndex)); +}, "~N"); +Clazz.defineMethod(c$, "setGlobalBoolean", +function(globalIndex){ +this.setInfo(JV.JC.getBoolName(globalIndex), Boolean.TRUE); +}, "~N"); +Clazz.defineMethod(c$, "getGlobalBoolean", +function(globalIndex){ +return (this.atomSetInfo.get(JV.JC.getBoolName(globalIndex)) === Boolean.TRUE); +}, "~N"); +Clazz.defineMethod(c$, "appendAtomSetCollectionList", +function(list){ +var n = list.size(); +if (n == 0) { +this.errorMessage = "No file found!"; +return; +}for (var i = 0; i < n; i++) { +var o = list.get(i); +if (Clazz.instanceOf(o,"JU.Lst")) this.appendAtomSetCollectionList(o); + else this.appendAtomSetCollection(i, o); +} +}, "JU.Lst"); +Clazz.defineMethod(c$, "setTrajectory", +function(){ +if (!this.isTrajectory) this.trajectorySteps = new JU.Lst(); +this.isTrajectory = true; +var n = (this.bsAtoms == null ? this.ac : this.bsAtoms.cardinality()); +if (n <= 1) return; +var trajectoryStep = new Array(n); +var haveVibrations = (n > 0 && this.atoms[0].vib != null && !Float.isNaN(this.atoms[0].vib.z)); +var vibrationStep = (haveVibrations ? new Array(n) : null); +var prevSteps = (this.trajectoryStepCount == 0 ? null : this.trajectorySteps.get(this.trajectoryStepCount - 1)); +for (var i = 0, ii = 0; i < this.ac; i++) { +if (this.bsAtoms != null && !this.bsAtoms.get(i)) continue; +var pt = JU.P3.newP(this.atoms[i]); +if (this.doFixPeriodic && prevSteps != null) pt = J.adapter.smarter.AtomSetCollection.fixPeriodic(pt, prevSteps[i]); +trajectoryStep[ii] = pt; +if (haveVibrations) vibrationStep[ii] = this.atoms[i].vib; +ii++; +} +if (haveVibrations) { +if (this.vibrationSteps == null) { +this.vibrationSteps = new JU.Lst(); +for (var i = 0; i < this.trajectoryStepCount; i++) this.vibrationSteps.addLast(null); + +}this.vibrationSteps.addLast(vibrationStep); +}this.trajectorySteps.addLast(trajectoryStep); +this.trajectoryStepCount++; +}); +Clazz.defineMethod(c$, "appendAtomSetCollection", +function(collectionIndex, collection){ +if (collection.reader != null && collection.reader.mustFinalizeModelSet) this.readerList.addLast(collection.reader); +var existingAtomsCount = this.ac; +this.setInfo("loadState", collection.atomSetInfo.get("loadState")); +if (collection.bsAtoms != null) { +this.getBSAtoms(0); +for (var i = collection.bsAtoms.nextSetBit(0); i >= 0; i = collection.bsAtoms.nextSetBit(i + 1)) this.bsAtoms.set(existingAtomsCount + i); + +}var clonedAtoms = 0; +var atomSetCount0 = this.atomSetCount; +for (var atomSetNum = 0; atomSetNum < collection.atomSetCount; atomSetNum++) { +this.newAtomSet(); +var info = this.atomSetAuxiliaryInfo[this.iSet] = collection.atomSetAuxiliaryInfo[atomSetNum]; +var atomInfo = info.get("PDB_CONECT_firstAtom_count_max"); +if (atomInfo != null) atomInfo[0] += existingAtomsCount; +this.setCurrentModelInfo("title", collection.collectionName); +this.setAtomSetName(collection.getAtomSetName(atomSetNum)); +for (var atomNum = 0; atomNum < collection.atomSetAtomCounts[atomSetNum]; atomNum++) { +if (this.bsAtoms != null) this.bsAtoms.set(this.ac); +this.newCloneAtom(collection.atoms[clonedAtoms]); +clonedAtoms++; +} +this.atomSetNumbers[this.iSet] = (collectionIndex < 0 ? this.iSet + 1 : ((collectionIndex + 1) * 1000000) + collection.atomSetNumbers[atomSetNum]); +} +for (var bondNum = 0; bondNum < collection.bondCount; bondNum++) { +var bond = collection.bonds[bondNum]; +this.addNewBondWithOrder(bond.atomIndex1 + existingAtomsCount, bond.atomIndex2 + existingAtomsCount, bond.order); +} +for (var i = JV.JC.globalBooleans.length; --i >= 0; ) if (collection.getGlobalBoolean(i)) this.setGlobalBoolean(i); + +for (var i = 0; i < collection.structureCount; i++) { +var s = collection.structures[i]; +this.addStructure(s); +s.modelStartEnd[0] += atomSetCount0; +s.modelStartEnd[1] += atomSetCount0; +} +}, "~N,J.adapter.smarter.AtomSetCollection"); +Clazz.defineMethod(c$, "setNoAutoBond", +function(){ +this.setInfo("noAutoBond", Boolean.TRUE); +}); +Clazz.defineMethod(c$, "freeze", +function(reverseModels){ +if (this.atomSetCount == 1 && this.collectionName == null) this.collectionName = this.getAtomSetAuxiliaryInfoValue(0, "name"); +if (reverseModels) this.reverseAtomSets(); +if (this.trajectoryStepCount > 1) this.finalizeTrajectory(); +this.getList(true); +this.getList(false); +for (var i = 0; i < this.atomSetCount; i++) { +this.setModelInfoForSet("initialAtomCount", Integer.$valueOf(this.atomSetAtomCounts[i]), i); +this.setModelInfoForSet("initialBondCount", Integer.$valueOf(this.atomSetBondCounts[i]), i); +} +}, "~B"); +Clazz.defineMethod(c$, "reverseAtomSets", +function(){ +this.reverseArray(this.atomSetAtomIndexes); +this.reverseArray(this.atomSetNumbers); +this.reverseArray(this.atomSetAtomCounts); +this.reverseArray(this.atomSetBondCounts); +J.adapter.smarter.AtomSetCollection.reverseList(this.trajectorySteps); +J.adapter.smarter.AtomSetCollection.reverseList(this.trajectoryNames); +J.adapter.smarter.AtomSetCollection.reverseList(this.vibrationSteps); +this.reverseObject(this.atomSetAuxiliaryInfo); +for (var i = 0; i < this.ac; i++) this.atoms[i].atomSetIndex = this.atomSetCount - 1 - this.atoms[i].atomSetIndex; + +for (var i = 0; i < this.structureCount; i++) { +var m = this.structures[i].modelStartEnd[0]; +if (m >= 0) { +this.structures[i].modelStartEnd[0] = this.atomSetCount - 1 - this.structures[i].modelStartEnd[1]; +this.structures[i].modelStartEnd[1] = this.atomSetCount - 1 - m; +}} +for (var i = 0; i < this.bondCount; i++) this.bonds[i].atomSetIndex = this.atomSetCount - 1 - this.atoms[this.bonds[i].atomIndex1].atomSetIndex; + +this.reverseSets(this.bonds, this.bondCount); +var lists = JU.AU.createArrayOfArrayList(this.atomSetCount); +for (var i = 0; i < this.atomSetCount; i++) lists[i] = new JU.Lst(); + +for (var i = 0; i < this.ac; i++) lists[this.atoms[i].atomSetIndex].addLast(this.atoms[i]); + +var newIndex = Clazz.newIntArray (this.ac, 0); +var n = this.ac; +for (var i = this.atomSetCount; --i >= 0; ) for (var j = lists[i].size(); --j >= 0; ) { +var a = this.atoms[--n] = lists[i].get(j); +newIndex[a.index] = n; +a.index = n; +} + +for (var i = 0; i < this.bondCount; i++) { +this.bonds[i].atomIndex1 = newIndex[this.bonds[i].atomIndex1]; +this.bonds[i].atomIndex2 = newIndex[this.bonds[i].atomIndex2]; +} +for (var i = 0; i < this.atomSetCount; i++) { +var conect = this.getAtomSetAuxiliaryInfoValue(i, "PDB_CONECT_firstAtom_count_max"); +if (conect == null) continue; +conect[0] = newIndex[conect[0]]; +conect[1] = this.atomSetAtomCounts[i]; +} +}); +Clazz.defineMethod(c$, "reverseSets", +function(o, n){ +var lists = JU.AU.createArrayOfArrayList(this.atomSetCount); +for (var i = 0; i < this.atomSetCount; i++) lists[i] = new JU.Lst(); + +for (var i = 0; i < n; i++) { +var index = o[i].atomSetIndex; +if (index < 0) return; +lists[o[i].atomSetIndex].addLast(o[i]); +} +for (var i = this.atomSetCount; --i >= 0; ) for (var j = lists[i].size(); --j >= 0; ) o[--n] = lists[i].get(j); + + +}, "~A,~N"); +Clazz.defineMethod(c$, "reverseObject", +function(o){ +var n = this.atomSetCount; +for (var i = Clazz.doubleToInt(n / 2); --i >= 0; ) JU.AU.swap(o, i, n - 1 - i); + +}, "~A"); +c$.reverseList = Clazz.defineMethod(c$, "reverseList", +function(list){ +if (list == null) return; +java.util.Collections.reverse(list); +}, "JU.Lst"); +Clazz.defineMethod(c$, "reverseArray", +function(a){ +var n = this.atomSetCount; +for (var i = Clazz.doubleToInt(n / 2); --i >= 0; ) JU.AU.swapInt(a, i, n - 1 - i); + +}, "~A"); +Clazz.defineMethod(c$, "getList", +function(isAltLoc){ +var i; +for (i = this.ac; --i >= 0; ) if (this.atoms[i] != null && (isAltLoc ? this.atoms[i].altLoc : this.atoms[i].insertionCode) != '\0') break; + +if (i < 0) return; +var lists = new Array(this.atomSetCount); +for (i = 0; i < this.atomSetCount; i++) lists[i] = ""; + +var pt; +for (i = 0; i < this.ac; i++) { +if (this.atoms[i] == null) continue; +var id = (isAltLoc ? this.atoms[i].altLoc : this.atoms[i].insertionCode); +if (id != '\0' && lists[pt = this.atoms[i].atomSetIndex].indexOf(id) < 0) lists[pt] += id; +} +var type = (isAltLoc ? "altLocs" : "insertionCodes"); +for (i = 0; i < this.atomSetCount; i++) if (lists[i].length > 0) this.setModelInfoForSet(type, lists[i], i); + +}, "~B"); +Clazz.defineMethod(c$, "finish", +function(){ +if (this.reader != null) this.reader.finalizeModelSet(); + else if (this.readerList != null) for (var i = 0; i < this.readerList.size(); i++) this.readerList.get(i).finalizeModelSet(); + +this.atoms = null; +this.atomSetAtomCounts = Clazz.newIntArray (16, 0); +this.atomSetAuxiliaryInfo = new Array(16); +this.atomSetInfo = new java.util.Hashtable(); +this.atomSetCount = 0; +this.atomSetNumbers = Clazz.newIntArray (16, 0); +this.atomSymbolicMap = new java.util.Hashtable(); +this.bonds = null; +this.iSet = -1; +this.readerList = null; +this.xtalSymmetry = null; +this.structures = new Array(16); +this.structureCount = 0; +this.trajectorySteps = null; +this.vibrationSteps = null; +}); +Clazz.defineMethod(c$, "discardPreviousAtoms", +function(){ +for (var i = this.ac; --i >= 0; ) this.atoms[i] = null; + +this.ac = 0; +this.clearMap(); +this.atomSetCount = 0; +this.iSet = -1; +for (var i = this.atomSetAuxiliaryInfo.length; --i >= 0; ) { +this.atomSetAtomCounts[i] = 0; +this.atomSetBondCounts[i] = 0; +this.atomSetAuxiliaryInfo[i] = null; +} +}); +Clazz.defineMethod(c$, "removeCurrentAtomSet", +function(){ +if (this.iSet < 0) return; +var ai = this.atomSetAtomIndexes[this.iSet]; +if (this.bsAtoms != null) this.bsAtoms.clearBits(ai, this.ac); +this.ac = ai; +this.atomSetAtomCounts[this.iSet] = 0; +this.iSet--; +this.atomSetCount--; +this.reader.doCheckUnitCell = false; +}); +Clazz.defineMethod(c$, "getHydrogenAtomCount", +function(){ +var n = 0; +for (var i = 0; i < this.ac; i++) if (this.atoms[i].elementNumber == 1 || this.atoms[i].elementSymbol.equals("H")) n++; + +return n; +}); +Clazz.defineMethod(c$, "newCloneAtom", +function(atom){ +var clone = atom.getClone(); +this.addAtom(clone); +return clone; +}, "J.adapter.smarter.Atom"); +Clazz.defineMethod(c$, "cloneFirstAtomSet", +function(atomCount){ +if (!this.allowMultiple) return 0; +this.newAtomSet(); +if (atomCount == 0) atomCount = this.atomSetAtomCounts[0]; +for (var i = 0; i < atomCount; ++i) this.newCloneAtom(this.atoms[i]); + +return this.ac; +}, "~N"); +Clazz.defineMethod(c$, "cloneAtomSetWithBonds", +function(isLast){ +var nBonds = this.atomSetBondCounts[isLast ? this.iSet : 0]; +var atomIncrement = (isLast ? this.cloneLastAtomSet() : this.cloneFirstAtomSet(0)); +if (atomIncrement > 0) for (var i = 0; i < nBonds; i++) { +var bond = this.bonds[this.bondCount - nBonds]; +this.addNewBondWithOrder(bond.atomIndex1 + atomIncrement, bond.atomIndex2 + atomIncrement, bond.order); +} +}, "~B"); +Clazz.defineMethod(c$, "cloneLastAtomSet", +function(){ +return this.cloneLastAtomSetFromPoints(0, null); +}); +Clazz.defineMethod(c$, "cloneLastAtomSetFromPoints", +function(ac, pts){ +if (!this.allowMultiple) return 0; +var count = (ac > 0 ? ac : this.getLastAtomSetAtomCount()); +var atomIndex = this.getLastAtomSetAtomIndex(); +this.newAtomSet(); +for (var i = 0; i < count; ++i) { +var atom = this.newCloneAtom(this.atoms[atomIndex++]); +if (pts != null) atom.setT(pts[i]); +} +return count; +}, "~N,~A"); +Clazz.defineMethod(c$, "getLastAtomSetAtomCount", +function(){ +return this.atomSetAtomCounts[this.iSet]; +}); +Clazz.defineMethod(c$, "getLastAtomSetAtomIndex", +function(){ +return this.ac - this.atomSetAtomCounts[this.iSet]; +}); +Clazz.defineMethod(c$, "addNewAtom", +function(){ +return this.addAtom( new J.adapter.smarter.Atom()); +}); +Clazz.defineMethod(c$, "addAtom", +function(atom){ +if (this.ac == this.atoms.length) { +if (this.ac > 200000) this.atoms = JU.AU.ensureLength(this.atoms, this.ac + 50000); + else this.atoms = JU.AU.doubleLength(this.atoms); +}if (this.atomSetCount == 0) this.newAtomSet(); +atom.index = this.ac; +this.atoms[this.ac++] = atom; +atom.atomSetIndex = this.iSet; +atom.atomSite = (this.fixedSite > 0 ? this.fixedSite - 1 : this.atomSetAtomCounts[this.iSet]++); +return atom; +}, "J.adapter.smarter.Atom"); +Clazz.defineMethod(c$, "addAtomWithMappedName", +function(atom){ +var atomName = this.addAtom(atom).atomName; +if (atomName != null) this.atomSymbolicMap.put(atomName, atom); +}, "J.adapter.smarter.Atom"); +Clazz.defineMethod(c$, "addAtomWithMappedSerialNumber", +function(atom){ +var atomSerial = this.addAtom(atom).atomSerial; +if (atomSerial != -2147483648) this.atomSymbolicMap.put("" + atomSerial, atom); +}, "J.adapter.smarter.Atom"); +Clazz.defineMethod(c$, "getAtomFromName", +function(atomName){ +return this.atomSymbolicMap.get(atomName); +}, "~S"); +Clazz.defineMethod(c$, "setAtomMapAnyCase", +function(){ +this.atomMapAnyCase = true; +var newMap = new java.util.Hashtable(); +newMap.putAll(this.atomSymbolicMap); +for (var e, $e = this.atomSymbolicMap.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var name = e.getKey(); +var uc = name.toUpperCase(); +if (!uc.equals(name)) newMap.put(uc, e.getValue()); +} +this.atomSymbolicMap = newMap; +}); +Clazz.defineMethod(c$, "getAtomIndex", +function(name){ +var a = this.atomSymbolicMap.get(name); +if (a == null && this.atomMapAnyCase) a = this.atomSymbolicMap.get(name.toUpperCase()); +return (a == null ? -1 : a.index); +}, "~S"); +Clazz.defineMethod(c$, "addNewBondWithOrder", +function(atomIndex1, atomIndex2, order){ +var b = null; +if (atomIndex1 >= 0 && atomIndex1 < this.ac && atomIndex2 >= 0 && atomIndex2 < this.ac && atomIndex1 != atomIndex2) { +b = new J.adapter.smarter.Bond(atomIndex1, atomIndex2, order); +this.addBond(b); +}return b; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "addNewBondFromNames", +function(atomName1, atomName2, order){ +return this.addNewBondWithOrderA(this.getAtomFromName(atomName1), this.getAtomFromName(atomName2), order); +}, "~S,~S,~N"); +Clazz.defineMethod(c$, "addNewBondWithOrderA", +function(atom1, atom2, order){ +return (atom1 != null && atom2 != null ? this.addNewBondWithOrder(atom1.index, atom2.index, order) : null); +}, "J.adapter.smarter.Atom,J.adapter.smarter.Atom,~N"); +Clazz.defineMethod(c$, "addBond", +function(bond){ +if (this.trajectoryStepCount > 0) return; +if (bond.atomIndex1 < 0 || bond.atomIndex2 < 0 || bond.order < 0 || bond.atomIndex1 == bond.atomIndex2 || this.atoms[bond.atomIndex1].atomSetIndex != this.atoms[bond.atomIndex2].atomSetIndex) { +if (JU.Logger.debugging) { +JU.Logger.debug(">>>>>>BAD BOND:" + bond.atomIndex1 + "-" + bond.atomIndex2 + " order=" + bond.order); +}return; +}this.addBondNoCheck(bond); +}, "J.adapter.smarter.Bond"); +Clazz.defineMethod(c$, "addBondNoCheck", +function(bond){ +if (this.bondCount == this.bonds.length) this.bonds = JU.AU.arrayCopyObject(this.bonds, this.bondCount + 1024); +this.bonds[this.bondCount++] = bond; +this.atomSetBondCounts[this.iSet]++; +}, "J.adapter.smarter.Bond"); +Clazz.defineMethod(c$, "finalizeStructures", +function(){ +if (this.structureCount == 0) return; +this.bsStructuredModels = new JU.BS(); +var map = new java.util.Hashtable(); +for (var i = 0; i < this.structureCount; i++) { +var s = this.structures[i]; +if (s.modelStartEnd[0] == -1) { +s.modelStartEnd[0] = 0; +s.modelStartEnd[1] = this.atomSetCount - 1; +}this.bsStructuredModels.setBits(s.modelStartEnd[0], s.modelStartEnd[1] + 1); +if (s.strandCount == 0) continue; +var key = s.structureID + " " + s.modelStartEnd[0]; +var v = map.get(key); +var count = (v == null ? 0 : v.intValue()) + 1; +map.put(key, Integer.$valueOf(count)); +} +for (var i = 0; i < this.structureCount; i++) { +var s = this.structures[i]; +if (s.strandCount == 1) s.strandCount = map.get(s.structureID + " " + s.modelStartEnd[0]).intValue(); +} +}); +Clazz.defineMethod(c$, "addStructure", +function(structure){ +if (this.structureCount == this.structures.length) this.structures = JU.AU.arrayCopyObject(this.structures, this.structureCount + 32); +this.structures[this.structureCount++] = structure; +}, "J.adapter.smarter.Structure"); +Clazz.defineMethod(c$, "addVibrationVectorWithSymmetry", +function(iatom, vx, vy, vz, withSymmetry){ +if (!withSymmetry) { +this.addVibrationVector(iatom, vx, vy, vz); +return; +}var atomSite = this.atoms[iatom].atomSite; +var atomSetIndex = this.atoms[iatom].atomSetIndex; +for (var i = iatom; i < this.ac && this.atoms[i].atomSetIndex == atomSetIndex; i++) { +if (this.atoms[i].atomSite == atomSite) this.addVibrationVector(i, vx, vy, vz); +} +}, "~N,~N,~N,~N,~B"); +Clazz.defineMethod(c$, "addVibrationVector", +function(iatom, x, y, z){ +if (!this.allowMultiple) iatom = iatom % this.ac; +return (this.atoms[iatom].vib = JU.V3.new3(x, y, z)); +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "setCoordinatesAreFractional", +function(tf){ +this.coordinatesAreFractional = tf; +this.setCurrentModelInfo("coordinatesAreFractional", Boolean.$valueOf(tf)); +if (tf) this.setGlobalBoolean(0); +}, "~B"); +Clazz.defineMethod(c$, "setAnisoBorU", +function(atom, data, type){ +this.haveAnisou = true; +atom.anisoBorU = data; +data[6] = type; +}, "J.adapter.smarter.Atom,~A,~N"); +Clazz.defineMethod(c$, "setU", +function(atom, i, val){ +var data = atom.anisoBorU; +if (data == null) this.setAnisoBorU(atom, data = Clazz.newFloatArray (8, 0), 8); +data[i] = val; +}, "J.adapter.smarter.Atom,~N,~N"); +Clazz.defineMethod(c$, "getXSymmetry", +function(){ +if (this.xtalSymmetry == null) this.xtalSymmetry = (J.api.Interface.getOption("adapter.smarter.XtalSymmetry", this.reader.vwr, "file")).set(this.reader); +return this.xtalSymmetry; +}); +Clazz.defineMethod(c$, "getSymmetry", +function(){ +return this.getXSymmetry().getSymmetry(); +}); +Clazz.defineMethod(c$, "setSymmetry", +function(symmetry){ +return (symmetry == null ? null : this.getXSymmetry().setSymmetry(symmetry)); +}, "J.adapter.smarter.XtalSymmetry.FileSymmetry"); +Clazz.defineMethod(c$, "newFileSymmetry", +function(){ +return this.getXSymmetry().newFileSymmetry(); +}); +Clazz.defineMethod(c$, "setTensors", +function(){ +if (this.haveAnisou) this.getXSymmetry().setTensors(); +}); +Clazz.defineMethod(c$, "setInfo", +function(key, value){ +if (value == null) this.atomSetInfo.remove(key); + else this.atomSetInfo.put(key, value); +}, "~S,~O"); +Clazz.defineMethod(c$, "setAtomSetCollectionPartialCharges", +function(auxKey){ +if (!this.atomSetInfo.containsKey(auxKey)) return false; +var atomData = this.atomSetInfo.get(auxKey); +var n = atomData.size(); +for (var i = this.ac; --i >= 0; ) this.atoms[i].partialCharge = atomData.get(i % n).floatValue(); + +JU.Logger.info("Setting partial charges type " + auxKey); +return true; +}, "~S"); +Clazz.defineMethod(c$, "mapPartialCharge", +function(atomName, charge){ +this.getAtomFromName(atomName).partialCharge = charge; +}, "~S,~N"); +c$.fixPeriodic = Clazz.defineMethod(c$, "fixPeriodic", +function(pt, pt0){ +pt.x = J.adapter.smarter.AtomSetCollection.fixPoint(pt.x, pt0.x); +pt.y = J.adapter.smarter.AtomSetCollection.fixPoint(pt.y, pt0.y); +pt.z = J.adapter.smarter.AtomSetCollection.fixPoint(pt.z, pt0.z); +return pt; +}, "JU.P3,JU.P3"); +c$.fixPoint = Clazz.defineMethod(c$, "fixPoint", +function(x, x0){ +while (x - x0 > 0.9) { +x -= 1; +} +while (x - x0 < -0.9) { +x += 1; +} +return x; +}, "~N,~N"); +Clazz.defineMethod(c$, "finalizeTrajectoryAs", +function(trajectorySteps, vibrationSteps){ +this.trajectorySteps = trajectorySteps; +this.vibrationSteps = vibrationSteps; +this.trajectoryStepCount = trajectorySteps.size(); +this.finalizeTrajectory(); +}, "JU.Lst,JU.Lst"); +Clazz.defineMethod(c$, "finalizeTrajectory", +function(){ +if (this.trajectoryStepCount == 0) return; +var trajectory = this.trajectorySteps.get(0); +var vibrations = (this.vibrationSteps == null ? null : this.vibrationSteps.get(0)); +var n = (this.bsAtoms == null ? this.ac : this.bsAtoms.cardinality()); +if (this.vibrationSteps != null && vibrations != null && vibrations.length < n || trajectory.length < n) { +this.errorMessage = "File cannot be loaded as a trajectory"; +return; +}var v = new JU.V3(); +for (var i = 0, ii = 0; i < this.ac; i++) { +if (this.bsAtoms != null && !this.bsAtoms.get(i)) continue; +if (this.vibrationSteps != null) this.atoms[i].vib = (vibrations == null ? v : vibrations[ii]); +if (trajectory[ii] != null) this.atoms[i].setT(trajectory[ii]); +ii++; +} +this.setInfo("trajectorySteps", this.trajectorySteps); +if (this.vibrationSteps != null) this.setInfo("vibrationSteps", this.vibrationSteps); +if (this.ac == 0) this.ac = trajectory.length; +}); +Clazz.defineMethod(c$, "newAtomSet", +function(){ +this.newAtomSetClear(true); +}); +Clazz.defineMethod(c$, "newAtomSetClear", +function(doClearMap){ +if (!this.allowMultiple && this.iSet >= 0) this.reader.discardPreviousAtoms(); +this.bondIndex0 = this.bondCount; +if (this.isTrajectory) this.reader.discardPreviousAtoms(); +this.iSet = this.atomSetCount++; +if (this.atomSetCount > this.atomSetNumbers.length) { +this.atomSetAtomIndexes = JU.AU.doubleLengthI(this.atomSetAtomIndexes); +this.atomSetAtomCounts = JU.AU.doubleLengthI(this.atomSetAtomCounts); +this.atomSetBondCounts = JU.AU.doubleLengthI(this.atomSetBondCounts); +this.atomSetAuxiliaryInfo = JU.AU.doubleLength(this.atomSetAuxiliaryInfo); +}this.atomSetAtomIndexes[this.iSet] = this.ac; +if (this.atomSetCount + this.trajectoryStepCount > this.atomSetNumbers.length) { +this.atomSetNumbers = JU.AU.doubleLengthI(this.atomSetNumbers); +}if (this.isTrajectory) { +this.atomSetNumbers[this.iSet + this.trajectoryStepCount] = this.atomSetCount + this.trajectoryStepCount; +} else { +this.atomSetNumbers[this.iSet] = this.atomSetCount; +}if (doClearMap) { +this.clearMap(); +}this.setCurrentModelInfo("title", this.collectionName); +}, "~B"); +Clazz.defineMethod(c$, "clearMap", +function(){ +this.atomSymbolicMap.clear(); +this.atomMapAnyCase = false; +}); +Clazz.defineMethod(c$, "getAtomSetAtomIndex", +function(i){ +return this.atomSetAtomIndexes[i]; +}, "~N"); +Clazz.defineMethod(c$, "getAtomSetAtomCount", +function(i){ +return this.atomSetAtomCounts[i]; +}, "~N"); +Clazz.defineMethod(c$, "getAtomSetBondCount", +function(i){ +return this.atomSetBondCounts[i]; +}, "~N"); +Clazz.defineMethod(c$, "setAtomSetName", +function(atomSetName){ +if (atomSetName == null) return; +if (this.isTrajectory) { +this.setTrajectoryName(atomSetName); +return; +}var name0 = (this.iSet < 0 ? null : this.getAtomSetName(this.iSet)); +this.setModelInfoForSet("name", atomSetName, this.iSet); +if (this.reader != null && atomSetName.length > 0 && !atomSetName.equals(name0)) this.reader.appendLoadNote(atomSetName); +if (!this.allowMultiple) this.setCollectionName(atomSetName); +}, "~S"); +Clazz.defineMethod(c$, "setTrajectoryName", +function(name){ +if (this.trajectoryStepCount == 0) return; +if (this.trajectoryNames == null) { +this.trajectoryNames = new JU.Lst(); +}for (var i = this.trajectoryNames.size(); i < this.trajectoryStepCount; i++) this.trajectoryNames.addLast(null); + +this.trajectoryNames.set(this.trajectoryStepCount - 1, name); +}, "~S"); +Clazz.defineMethod(c$, "setCurrentAtomSetNumber", +function(atomSetNumber){ +this.setAtomSetNumber(this.iSet + (this.isTrajectory ? this.trajectoryStepCount : 0), atomSetNumber); +}, "~N"); +Clazz.defineMethod(c$, "setAtomSetNumber", +function(index, atomSetNumber){ +this.atomSetNumbers[index] = atomSetNumber; +}, "~N,~N"); +Clazz.defineMethod(c$, "setAtomSetModelProperty", +function(key, value){ +this.setAtomSetModelPropertyForSet(key, value, this.iSet); +}, "~S,~S"); +Clazz.defineMethod(c$, "setAtomSetModelPropertyForSet", +function(key, value, atomSetIndex){ +var p = this.getAtomSetAuxiliaryInfoValue(atomSetIndex, "modelProperties"); +if (p == null) this.setModelInfoForSet("modelProperties", p = new java.util.Properties(), atomSetIndex); +p.put(key, value); +if (key.startsWith(".")) p.put(key.substring(1), value); +}, "~S,~S,~N"); +Clazz.defineMethod(c$, "setAtomProperties", +function(key, data, atomSetIndex, isGroup){ +if ((typeof(data)=='string') && !(data).endsWith("\n")) data = data + "\n"; +if (atomSetIndex < 0) atomSetIndex = this.iSet; +var p = this.getAtomSetAuxiliaryInfoValue(atomSetIndex, "atomProperties"); +if (p == null) this.setModelInfoForSet("atomProperties", p = new java.util.Hashtable(), atomSetIndex); +p.put(key, data); +}, "~S,~O,~N,~B"); +Clazz.defineMethod(c$, "setAtomSetPartialCharges", +function(auxKey){ +if (!this.atomSetAuxiliaryInfo[this.iSet].containsKey(auxKey)) { +return false; +}var atomData = this.getAtomSetAuxiliaryInfoValue(this.iSet, auxKey); +for (var i = atomData.size(); --i >= 0; ) { +this.atoms[i].partialCharge = atomData.get(i).floatValue(); +} +return true; +}, "~S"); +Clazz.defineMethod(c$, "getAtomSetAuxiliaryInfoValue", +function(index, key){ +return this.atomSetAuxiliaryInfo[index >= 0 ? index : this.iSet].get(key); +}, "~N,~S"); +Clazz.defineMethod(c$, "setCurrentModelInfo", +function(key, value){ +this.setModelInfoForSet(key, value, this.iSet); +}, "~S,~O"); +Clazz.defineMethod(c$, "setModelInfoForSet", +function(key, value, atomSetIndex){ +if (atomSetIndex < 0) return; +if (this.atomSetAuxiliaryInfo[atomSetIndex] == null) this.atomSetAuxiliaryInfo[atomSetIndex] = new java.util.Hashtable(); +if (value == null) this.atomSetAuxiliaryInfo[atomSetIndex].remove(key); + else this.atomSetAuxiliaryInfo[atomSetIndex].put(key, value); +}, "~S,~O,~N"); +Clazz.defineMethod(c$, "getAtomSetNumber", +function(atomSetIndex){ +return this.atomSetNumbers[atomSetIndex >= this.atomSetCount ? 0 : atomSetIndex]; +}, "~N"); +Clazz.defineMethod(c$, "getAtomSetName", +function(atomSetIndex){ +if (this.trajectoryNames != null && atomSetIndex < this.trajectoryNames.size()) return this.trajectoryNames.get(atomSetIndex); +if (atomSetIndex >= this.atomSetCount) atomSetIndex = this.atomSetCount - 1; +return this.getAtomSetAuxiliaryInfoValue(atomSetIndex, "name"); +}, "~N"); +Clazz.defineMethod(c$, "getAtomSetAuxiliaryInfo", +function(atomSetIndex){ +var i = (atomSetIndex >= this.atomSetCount ? this.atomSetCount - 1 : atomSetIndex); +return (i < 0 ? null : this.atomSetAuxiliaryInfo[i]); +}, "~N"); +Clazz.defineMethod(c$, "setAtomSetEnergy", +function(energyString, value){ +if (this.iSet < 0) return; +JU.Logger.info("Energy for model " + (this.iSet + 1) + " = " + energyString); +this.setCurrentModelInfo("EnergyString", energyString); +this.setCurrentModelInfo("Energy", Float.$valueOf(value)); +this.setAtomSetModelProperty("Energy", "" + value); +}, "~S,~N"); +Clazz.defineMethod(c$, "setAtomSetFrequency", +function(mode, pathKey, label, freq, units){ +this.setAtomSetModelProperty("FreqValue", freq); +freq += " " + (units == null ? "cm^-1" : units); +var name = (label == null ? "" : label + " ") + freq; +this.setAtomSetName(name); +this.setAtomSetModelProperty("Frequency", freq); +this.setAtomSetModelProperty("Mode", "" + mode); +this.setModelInfoForSet("vibrationalMode", Integer.$valueOf(mode), this.iSet); +if (label != null) this.setAtomSetModelProperty("FrequencyLabel", label); +this.setAtomSetModelProperty(".PATH", (pathKey == null ? "" : pathKey + J.adapter.smarter.SmarterJmolAdapter.PATH_SEPARATOR + "Frequencies") + "Frequencies"); +return name; +}, "~N,~S,~S,~S,~S"); +Clazz.defineMethod(c$, "getBondList", +function(){ +var info = new Array(this.bondCount); +for (var i = 0; i < this.bondCount; i++) { +info[i] = Clazz.newArray(-1, [this.atoms[this.bonds[i].atomIndex1].atomName, this.atoms[this.bonds[i].atomIndex2].atomName, "" + this.bonds[i].order]); +} +return info; +}); +Clazz.defineMethod(c$, "centralize", +function(){ +var pt = new JU.P3(); +for (var i = 0; i < this.atomSetCount; i++) { +var n = this.atomSetAtomCounts[i]; +var atom0 = this.atomSetAtomIndexes[i]; +pt.set(0, 0, 0); +for (var j = atom0 + n; --j >= atom0; ) pt.add(this.atoms[j]); + +pt.scale(1 / n); +for (var j = atom0 + n; --j >= atom0; ) this.atoms[j].sub(pt); + +} +}); +Clazz.defineMethod(c$, "mergeTrajectories", +function(a){ +if (!this.isTrajectory || !a.isTrajectory || this.vibrationSteps != null) return; +for (var i = 0; i < a.trajectoryStepCount; i++) this.trajectorySteps.add(this.trajectoryStepCount++, a.trajectorySteps.get(i)); + +this.setInfo("trajectorySteps", this.trajectorySteps); +this.setInfo("ignoreUnitCell", a.atomSetInfo.get("ignoreUnitCell")); +}, "J.adapter.smarter.AtomSetCollection"); +Clazz.defineMethod(c$, "removeAtomSet", +function(imodel){ +if (this.bsAtoms == null) this.bsAtoms = JU.BSUtil.newBitSet2(0, this.ac); +var i0 = this.atomSetAtomIndexes[imodel]; +var nAtoms = this.atomSetAtomCounts[imodel]; +var i1 = i0 + nAtoms; +this.bsAtoms.clearBits(i0, i1); +for (var i = i1; i < this.ac; i++) this.atoms[i].atomSetIndex--; + +for (var i = imodel + 1; i < this.atomSetCount; i++) { +this.atomSetAuxiliaryInfo[i - 1] = this.atomSetAuxiliaryInfo[i]; +this.atomSetAtomIndexes[i - 1] = this.atomSetAtomIndexes[i]; +this.atomSetBondCounts[i - 1] = this.atomSetBondCounts[i]; +this.atomSetAtomCounts[i - 1] = this.atomSetAtomCounts[i]; +this.atomSetNumbers[i - 1] = this.atomSetNumbers[i]; +} +for (var i = 0; i < this.bondCount; i++) this.bonds[i].atomSetIndex = this.atoms[this.bonds[i].atomIndex1].atomSetIndex; + +this.atomSetAuxiliaryInfo[--this.atomSetCount] = null; +var n = 0; +for (var i = 0; i < this.structureCount; i++) { +var s = this.structures[i]; +if (s.modelStartEnd[0] == imodel && s.modelStartEnd[1] == imodel) { +this.structures[i] = null; +n++; +}} +if (n > 0) { +var ss = new Array(this.structureCount - n); +for (var i = 0, pt = 0; i < this.structureCount; i++) if (this.structures[i] != null) ss[pt++] = this.structures[i]; + +this.structures = ss; +}}, "~N"); +Clazz.defineMethod(c$, "removeLastUnselectedAtoms", +function(){ +var n = this.ac; +var nremoved = 0; +var i0 = this.getLastAtomSetAtomIndex(); +var nnow = 0; +for (var i = i0; i < n; i++) { +if (!this.bsAtoms.get(i)) { +nremoved++; +this.ac--; +this.atoms[i] = null; +continue; +}if (nremoved > 0) { +this.atoms[this.atoms[i].index = i - nremoved] = this.atoms[i]; +this.atoms[i] = null; +}nnow++; +} +this.atomSetAtomCounts[this.iSet] = nnow; +if (nnow == 0) { +this.iSet--; +this.atomSetCount--; +} else { +this.bsAtoms.setBits(i0, i0 + nnow); +}}); +Clazz.defineMethod(c$, "checkNoEmptyModel", +function(){ +while (this.atomSetCount > 0 && this.atomSetAtomCounts[this.atomSetCount - 1] == 0) this.atomSetCount--; + +}); +Clazz.defineMethod(c$, "getBSAtoms", +function(n){ +if (this.bsAtoms == null) { +this.bsAtoms = new JU.BS(); +if (n != 0) this.bsAtoms.setBits(0, (n < 0 ? this.ac : n)); +}return this.bsAtoms; +}, "~N"); +Clazz.defineMethod(c$, "setBSAtomsForSet", +function(iSet){ +if (this.bsAtoms != null) { +if (iSet < 0) iSet = this.iSet; +var pt = this.atomSetAtomIndexes[iSet]; +if (this.bsAtoms.nextSetBit(pt) < 0) { +var n = this.atomSetAtomCounts[iSet]; +this.bsAtoms.setBits(pt, pt + n); +}}}, "~N"); +Clazz.defineMethod(c$, "fix2Stereo", +function(){ +this.getBSAtoms(-1); +for (var i = this.bondCount; --i >= 0; ) { +var b = this.bonds[i]; +if (this.atoms[b.atomIndex2].elementSymbol.equals("H") && b.order != 1025 && b.order != 1041 && this.atoms[b.atomIndex1].elementSymbol.equals("C")) { +this.bsAtoms.clear(b.atomIndex2); +} else if (this.atoms[b.atomIndex1].elementSymbol.equals("H") && this.atoms[b.atomIndex2].elementSymbol.equals("C")) { +this.bsAtoms.clear(b.atomIndex1); +}} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomSetCollectionReader.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomSetCollectionReader.js new file mode 100755 index 000000000000..19771a96f821 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomSetCollectionReader.js @@ -0,0 +1,1325 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.load(["javajs.api.GenericLineReader", "JU.SB", "JV.Viewer"], "J.adapter.smarter.AtomSetCollectionReader", ["JU.BS", "$.Lst", "$.M3", "$.P3", "$.PT", "$.Quat", "$.V3", "J.adapter.smarter.Atom", "$.AtomSetCollection", "J.api.Interface", "$.JmolAdapter", "JU.BSUtil", "$.Logger", "$.SimpleUnitCell", "JV.FileManager", "$.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isBinary = false; +this.debugging = false; +this.requiresBSFilter = false; +this.primitiveToCrystal = null; +this.asc = null; +this.reader = null; +this.binaryDoc = null; +this.readerName = null; +this.htParams = null; +this.trajectorySteps = null; +this.domains = null; +this.validation = null; +this.dssr = null; +this.isConcatenated = false; +this.addedData = null; +this.addedDataKey = null; +this.thisBiomolecule = null; +this.lstNCS = null; +this.floatifyJavaDouble = true; +this.line = null; +this.prevline = null; +this.next = null; +this.ptLine = 0; +this.checkNearAtoms = true; +this.latticeType = null; +this.latticeCells = null; +this.fillRange = null; +this.doProcessLines = false; +this.iHaveUnitCell = false; +this.iHaveSymmetryOperators = false; +this.continuing = true; +this.vwr = null; +this.doApplySymmetry = false; +this.ignoreFileSymmetryOperators = false; +this.isTrajectory = false; +this.applySymmetryToBonds = false; +this.doCheckUnitCell = false; +this.getHeader = false; +this.isSequential = false; +this.optimize2D = false; +this.noHydrogens = false; +this.noMinimize = false; +this.is2D = false; +this.isMolecular = false; +this.templateAtomCount = 0; +this.modelNumber = 0; +this.vibrationNumber = 0; +this.desiredVibrationNumber = -2147483648; +this.bsModels = null; +this.useFileModelNumbers = false; +this.havePartialChargeFilter = false; +this.calculationType = "?"; +this.sgName = null; +this.ignoreFileUnitCell = false; +this.ignoreFileSpaceGroupName = false; +this.unitCellParams = null; +this.desiredModelNumber = -2147483648; +this.symmetry = null; +this.out = null; +this.iHaveFractionalCoordinates = false; +this.doPackUnitCell = false; +this.ptSupercell = null; +this.mustFinalizeModelSet = false; +this.forcePacked = false; +this.packingRange = null; +this.cellSlop = 1.0E-4; +this.rotateHexCell = false; +this.isPrimitive = false; +this.modDim = 0; +this.lowPrecision = false; +this.highprecision0 = false; +this.loadNote = null; +this.doConvertToFractional = false; +this.fileCoordinatesAreFractional = false; +this.merging = false; +this.symmetryRange = 0; +this.firstLastStep = null; +this.lastModelNumber = 2147483647; +this.desiredSpaceGroupIndex = -1; +this.latticeScaling = NaN; +this.unitCellOffset = null; +this.unitCellOffsetFractional = false; +this.moreUnitCellInfo = null; +this.paramsLattice = null; +this.paramsCentroid = false; +this.paramsPacked = false; +this.fileScaling = null; +this.fileOffset = null; +this.fileOffsetFractional = null; +this.filePath = null; +this.fileName = null; +this.baseAtomIndex = 0; +this.baseBondIndex = 0; +this.stateScriptVersionInt = 2147483647; +this.isFinalized = false; +this.noPack = false; +this.isSUPERCELL = false; +this.precision = 0; +this.haveModel = false; +this.previousSpaceGroup = null; +this.previousUnitCell = null; +this.nMatrixElements = 0; +this.ucItems = null; +this.matUnitCellOrientation = null; +this.bsFilter = null; +this.filter = null; +this.filterCased = null; +this.haveAtomFilter = false; +this.filterAltLoc = false; +this.filterGroup3 = false; +this.filterChain = false; +this.filterAtomName = false; +this.filterAtomType = false; +this.filterAtomTypeStr = null; +this.filterAtomNameTerminator = ";"; +this.filterElement = false; +this.filterHetero = false; +this.filterAllHetero = false; +this.filterEveryNth = false; +this.filterSymop = null; +this.filterN = 0; +this.nFiltered = 0; +this.doSetOrientation = false; +this.doCentralize = false; +this.addVibrations = false; +this.useAltNames = false; +this.ignoreStructure = false; +this.isDSSP1 = false; +this.allowPDBFilter = false; +this.doReadMolecularOrbitals = false; +this.reverseModels = false; +this.nameRequired = null; +this.doCentroidUnitCell = false; +this.centroidPacked = false; +this.strSupercell = null; +this.allow_a_len_1 = false; +this.slabXY = false; +this.polymerX = false; +this.fixUnitCell = false; +this.filteredPrecision = false; +this.filter1 = null; +this.filter2 = null; +this.filter1Cased = null; +this.filter2Cased = null; +this.matRot = null; +this.ms = null; +this.vibsFractional = false; +this.previousScript = null; +this.siteScript = null; +Clazz.instantialize(this, arguments);}, J.adapter.smarter, "AtomSetCollectionReader", null, javajs.api.GenericLineReader); +Clazz.prepareFields (c$, function(){ +this.next = Clazz.newIntArray (1, 0); +this.highprecision0 = JV.Viewer.isHighPrecision; +this.loadNote = new JU.SB(); +}); +Clazz.defineMethod(c$, "getPackingRangeValue", +function(def){ +return (this.packingRange != null ? this.packingRange.floatValue() : def != 0 ? def : 0.02); +}, "~N"); +Clazz.defineMethod(c$, "setup", +function(fullPath, htParams, readerOrDocument){ +this.setupASCR(fullPath, htParams, readerOrDocument); +}, "~S,java.util.Map,~O"); +Clazz.defineMethod(c$, "setupASCR", +function(fullPath, htParams, readerOrDocument){ +if (fullPath == null) return; +this.debugging = JU.Logger.debugging; +this.htParams = htParams; +this.filePath = JV.FileManager.stripTypePrefix("" + htParams.get("fullPathName")); +var i = this.filePath.lastIndexOf('/'); +this.fileName = this.filePath.substring(i + 1); +if (Clazz.instanceOf(readerOrDocument,"java.io.BufferedReader")) this.reader = readerOrDocument; + else if (Clazz.instanceOf(readerOrDocument,"javajs.api.GenericBinaryDocument")) this.binaryDoc = readerOrDocument; +}, "~S,java.util.Map,~O"); +Clazz.defineMethod(c$, "readData", +function(){ +this.initialize(); +this.asc = new J.adapter.smarter.AtomSetCollection(this.readerName, this, null, null); +try { +this.initializeReader(); +if (this.binaryDoc == null) { +if (this.line == null && this.continuing) this.rd(); +while (this.line != null && this.continuing) if (this.checkLine()) this.rd(); + +} else { +this.binaryDoc.setOutputChannel(this.out); +this.processBinaryDocument(); +}this.finalizeSubclassReader(); +if (!this.isFinalized) this.finalizeReaderASCR(); +} catch (e) { +JU.Logger.info("Reader error: " + e); +e.printStackTrace(); +this.setError(e); +} +if (this.reader != null) this.reader.close(); +if (this.binaryDoc != null) this.binaryDoc.close(); +return this.finish(); +}); +Clazz.defineMethod(c$, "fixBaseIndices", +function(){ +try { +var ii = this.htParams.get("baseModelIndex"); +if (ii == null) return; +var baseModelIndex = ii.intValue(); +this.baseAtomIndex += this.asc.ac; +this.baseBondIndex += this.asc.bondCount; +baseModelIndex += this.asc.atomSetCount; +this.htParams.put("baseAtomIndex", Integer.$valueOf(this.baseAtomIndex)); +this.htParams.put("baseBondIndex", Integer.$valueOf(this.baseBondIndex)); +this.htParams.put("baseModelIndex", Integer.$valueOf(baseModelIndex)); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +}); +Clazz.defineMethod(c$, "readDataObject", +function(node){ +this.initialize(); +this.asc = new J.adapter.smarter.AtomSetCollection(this.readerName, this, null, null); +this.initializeReader(); +this.processDOM(node); +return this.finish(); +}, "~O"); +Clazz.defineMethod(c$, "processDOM", +function(DOMNode){ +}, "~O"); +Clazz.defineMethod(c$, "processBinaryDocument", +function(){ +}); +Clazz.defineMethod(c$, "initializeReader", +function(){ +}); +Clazz.defineMethod(c$, "checkLine", +function(){ +return true; +}); +Clazz.defineMethod(c$, "checkLastModel", +function(){ +if (this.isLastModel(this.modelNumber) && this.doProcessLines) return (this.continuing = this.doProcessLines = false); +this.doProcessLines = false; +return true; +}); +Clazz.defineMethod(c$, "isLastModel", +function(modelNumber){ +return (this.desiredModelNumber > 0 || modelNumber >= this.lastModelNumber); +}, "~N"); +Clazz.defineMethod(c$, "appendLoadNote", +function(info){ +if (info == null) { +this.loadNote = new JU.SB(); +return; +}this.loadNote.append(info).append("\n"); +JU.Logger.info(info); +}, "~S"); +Clazz.defineMethod(c$, "initializeTrajectoryFile", +function(){ +this.asc.addAtom( new J.adapter.smarter.Atom()); +this.trajectorySteps = this.htParams.get("trajectorySteps"); +if (this.trajectorySteps == null) this.htParams.put("trajectorySteps", this.trajectorySteps = new JU.Lst()); +}); +Clazz.defineMethod(c$, "finalizeSubclassReader", +function(){ +}); +Clazz.defineMethod(c$, "finalizeReaderASCR", +function(){ +this.isFinalized = true; +if (this.asc.atomSetCount > 0) { +if (this.asc.atomSetCount == 1) { +this.asc.setCurrentModelInfo("dbName", this.htParams.get("dbName")); +this.asc.setCurrentModelInfo("auxFiles", this.htParams.get("auxFiles")); +}this.applySymmetryAndSetTrajectory(); +this.asc.finalizeStructures(); +if (this.doCentralize) this.asc.centralize(); +if (this.fillRange != null) this.asc.setInfo("boundbox", this.fillRange); +var info = this.asc.getAtomSetAuxiliaryInfo(0); +if (info != null) { +if (this.domains != null) { +this.asc.setGlobalBoolean(5); +var s = (this.domains).getMapKeys(2, true); +var pt = s.indexOf("{ ", 2); +if (pt >= 0) s = s.substring(pt + 2); +pt = s.indexOf("_metadata"); +if (pt < 0) pt = s.indexOf("metadata"); +if (pt >= 0) s = s.substring(0, pt); +s = JU.PT.rep(JU.PT.replaceAllCharacters(s, "{}", "").trim(), "\n", "\n ") + "\n\nUse SHOW DOMAINS for details."; +this.appendLoadNote("\nDomains loaded:\n " + s); +for (var i = this.asc.atomSetCount; --i >= 0; ) { +info = this.asc.getAtomSetAuxiliaryInfo(i); +info.put("domains", this.domains); +} +}if (this.validation != null) { +for (var i = this.asc.atomSetCount; --i >= 0; ) { +info = this.asc.getAtomSetAuxiliaryInfo(i); +info.put("validation", this.validation); +} +}if (this.dssr != null) { +info.put("dssrJSON", Boolean.TRUE); +for (var i = this.asc.atomSetCount; --i >= 0; ) { +info = this.asc.getAtomSetAuxiliaryInfo(i); +info.put("dssr", this.dssr); +} +}}}if (!this.floatifyJavaDouble) this.asc.setInfo("highPrecision", Boolean.TRUE); +this.setLoadNote(); +}); +Clazz.defineMethod(c$, "setLoadNote", +function(){ +var s = this.loadNote.toString(); +if (this.loadNote.length() > 0) this.asc.setInfo("modelLoadNote", s); +return s; +}); +Clazz.defineMethod(c$, "setIsPDB", +function(){ +this.asc.setGlobalBoolean(4); +if (this.htParams.get("pdbNoHydrogens") != null) this.asc.setInfo("pdbNoHydrogens", this.htParams.get("pdbNoHydrogens")); +if (this.checkFilterKey("ADDHYDROGENS")) this.asc.setInfo("pdbAddHydrogens", Boolean.TRUE); +}); +Clazz.defineMethod(c$, "setModelPDB", +function(isPDB){ +if (isPDB) this.asc.setGlobalBoolean(4); + else this.asc.clearGlobalBoolean(4); +this.asc.setCurrentModelInfo(JV.JC.getBoolName(4), isPDB ? Boolean.TRUE : null); +}, "~B"); +Clazz.defineMethod(c$, "finish", +function(){ +if (false != this.highprecision0) this.vwr.setBooleanPropertyTok("doubleprecision", 603979831, this.highprecision0); +var s = this.htParams.get("loadState"); +this.asc.setInfo("loadState", s == null ? "" : s); +s = this.htParams.get("smilesString"); +if (s != null) this.asc.setInfo("smilesString", s); +if (!this.htParams.containsKey("templateAtomCount")) this.htParams.put("templateAtomCount", Integer.$valueOf(this.asc.ac)); +if (this.bsFilter != null) { +this.htParams.put("filteredAtomCount", Integer.$valueOf(JU.BSUtil.cardinalityOf(this.bsFilter))); +this.htParams.put("bsFilter", this.bsFilter); +}if (!this.calculationType.equals("?")) this.asc.setInfo("calculationType", this.calculationType); +var name = this.asc.fileTypeName; +var fileType = name; +if (fileType.indexOf("(") >= 0) fileType = fileType.substring(0, fileType.indexOf("(")); +for (var i = this.asc.atomSetCount; --i >= 0; ) { +this.asc.setModelInfoForSet("fileName", this.filePath, i); +this.asc.setModelInfoForSet("fileType", fileType, i); +} +this.asc.freeze(this.reverseModels); +if (this.asc.errorMessage != null) return this.asc.errorMessage + "\nfor file " + this.filePath + "\ntype " + name; +if (!this.merging && (this.asc.bsAtoms == null ? this.asc.ac == 0 : this.asc.bsAtoms.nextSetBit(0) < 0) && fileType.indexOf("DataOnly") < 0 && this.asc.atomSetInfo.get("dataOnly") == null) return "No atoms found\nfor file " + this.filePath + "\ntype " + name; +this.fixBaseIndices(); +return this.asc; +}); +Clazz.defineMethod(c$, "setError", +function(e){ +var s = e.getMessage(); +if (this.line == null) this.asc.errorMessage = "Error reading file at end of file \n" + s; + else this.asc.errorMessage = "Error reading file at line " + this.ptLine + ":\n" + this.line + "\n" + s; +e.printStackTrace(); +}, "Throwable"); +Clazz.defineMethod(c$, "initialize", +function(){ +if (this.htParams.containsKey("baseAtomIndex")) this.baseAtomIndex = (this.htParams.get("baseAtomIndex")).intValue(); +if (this.htParams.containsKey("baseBondIndex")) this.baseBondIndex = (this.htParams.get("baseBondIndex")).intValue(); +this.initializeSymmetry(); +this.vwr = this.htParams.remove("vwr"); +if (this.htParams.containsKey("stateScriptVersionInt")) this.stateScriptVersionInt = (this.htParams.get("stateScriptVersionInt")).intValue(); +this.packingRange = this.htParams.get("packingRange"); +var isHighPrecision = (this.htParams.get("highPrecision") != null); +if (this.packingRange == null && isHighPrecision) { +this.floatifyJavaDouble = false; +this.packingRange = Float.$valueOf(1.0E-4); +}this.merging = this.htParams.containsKey("merging"); +this.getHeader = this.htParams.containsKey("getHeader"); +this.isSequential = this.htParams.containsKey("isSequential"); +this.readerName = this.htParams.get("readerName"); +if (this.htParams.containsKey("outputChannel")) this.out = this.htParams.get("outputChannel"); +if (this.htParams.containsKey("vibrationNumber")) this.desiredVibrationNumber = (this.htParams.get("vibrationNumber")).intValue(); + else if (this.htParams.containsKey("modelNumber")) this.desiredModelNumber = (this.htParams.get("modelNumber")).intValue(); +this.applySymmetryToBonds = this.htParams.containsKey("applySymmetryToBonds"); +this.bsFilter = (this.requiresBSFilter ? this.htParams.get("bsFilter") : null); +this.setFilter(null); +this.fillRange = this.htParams.get("fillRange"); +this.paramsLattice = this.htParams.get("lattice"); +var o = this.htParams.get("supercell"); +this.noPack = this.checkFilterKey("NOPACK"); +if (this.strSupercell != null && !this.noPack) { +this.forcePacked = true; +}if (Clazz.instanceOf(o,"JU.P3")) { +var s = this.ptSupercell = o; +if (s.length() != 1) { +this.strSupercell = (Clazz.floatToInt(s.x)) + "a," + (Clazz.floatToInt(s.y)) + "b," + (Clazz.floatToInt(s.z)) + "c"; +this.isSUPERCELL = true; +}} else if ((typeof(o)=='string')) { +this.strSupercell = o; +this.isSUPERCELL = true; +}var ptFile = (this.htParams.containsKey("ptFile") ? (this.htParams.get("ptFile")).intValue() : -1); +this.isTrajectory = this.htParams.containsKey("isTrajectory"); +if (ptFile > 0 && this.htParams.containsKey("firstLastSteps")) { +var val = (this.htParams.get("firstLastSteps")).get(ptFile - 1); +if (Clazz.instanceOf(val,"JU.BS")) { +this.bsModels = val; +} else { +this.firstLastStep = val; +}} else if (this.htParams.containsKey("firstLastStep")) { +this.firstLastStep = this.htParams.get("firstLastStep"); +} else if (this.htParams.containsKey("bsModels")) { +this.bsModels = this.htParams.get("bsModels"); +}this.useFileModelNumbers = this.htParams.containsKey("useFileModelNumbers") || this.checkFilterKey("USEFILEMODELNUMBERS"); +if (this.htParams.containsKey("templateAtomCount")) this.templateAtomCount = (this.htParams.get("templateAtomCount")).intValue(); +if (this.bsModels != null || this.firstLastStep != null) this.desiredModelNumber = -2147483648; +if (this.bsModels == null && this.firstLastStep != null) { +if (this.firstLastStep[0] < 0) this.firstLastStep[0] = 0; +if (this.firstLastStep[2] == 0 || this.firstLastStep[1] < this.firstLastStep[0]) this.firstLastStep[1] = -1; +if (this.firstLastStep[2] < 1) this.firstLastStep[2] = 1; +this.bsModels = JU.BSUtil.newAndSetBit(this.firstLastStep[0]); +if (this.firstLastStep[1] > this.firstLastStep[0]) { +for (var i = this.firstLastStep[0]; i <= this.firstLastStep[1]; i += this.firstLastStep[2]) this.bsModels.set(i); + +}}if (this.bsModels != null && (this.firstLastStep == null || this.firstLastStep[1] != -1)) this.lastModelNumber = this.bsModels.length(); +this.symmetryRange = (this.htParams.containsKey("symmetryRange") ? (this.htParams.get("symmetryRange")).floatValue() : 0); +this.paramsCentroid = this.htParams.containsKey("centroid"); +this.paramsPacked = this.htParams.containsKey("packed"); +this.initializeSymmetryOptions(); +if (this.htParams.containsKey("spaceGroupIndex")) { +this.desiredSpaceGroupIndex = (this.htParams.get("spaceGroupIndex")).intValue(); +if (this.desiredSpaceGroupIndex == -2) this.sgName = this.htParams.get("spaceGroupName"); +this.ignoreFileSpaceGroupName = (this.desiredSpaceGroupIndex == -2 || this.desiredSpaceGroupIndex >= 0); +this.ignoreFileSymmetryOperators = (this.desiredSpaceGroupIndex != -1); +}if (this.htParams.containsKey("unitCellOffset")) { +this.fileScaling = JU.P3.new3(1, 1, 1); +this.fileOffset = this.htParams.get("unitCellOffset"); +this.fileOffsetFractional = JU.P3.newP(this.fileOffset); +this.unitCellOffsetFractional = this.htParams.containsKey("unitCellOffsetFractional"); +}if (this.htParams.containsKey("unitcell")) { +var fParams = this.htParams.get("unitcell"); +if (this.merging) this.setFractionalCoordinates(true); +if (fParams.length == 9) { +this.addExplicitLatticeVector(0, fParams, 0); +this.addExplicitLatticeVector(1, fParams, 3); +this.addExplicitLatticeVector(2, fParams, 6); +} else { +this.setUnitCell(fParams[0], fParams[1], fParams[2], fParams[3], fParams[4], fParams[5]); +}this.ignoreFileUnitCell = this.iHaveUnitCell; +if (this.merging && !this.iHaveUnitCell) this.setFractionalCoordinates(false); +}this.domains = this.htParams.get("domains"); +this.validation = this.htParams.get("validation"); +this.dssr = this.htParams.get("dssr"); +this.isConcatenated = this.htParams.containsKey("concatenate"); +}); +Clazz.defineMethod(c$, "parsePrecision", +function(s){ +if (!this.filteredPrecision) { +var pt = s.indexOf('.') + 1; +if (pt >= 0) { +var n = s.indexOf('('); +if (n < 0) { +this.precision = Math.max(this.precision, s.length - pt); +} else { +if (this.precision == 0) this.precision = n; +this.precision = Math.min(this.precision, n - 1 - pt); +}}}return this.parseFloatStr(s); +}, "~S"); +Clazz.defineMethod(c$, "setLowPrecision", +function(){ +this.lowPrecision = true; +this.cellSlop = 1.0E-4; +if (this.packingRange == null) this.packingRange = Double.$valueOf(1.0E-4); +}); +Clazz.defineMethod(c$, "setPrecision", +function(){ +var isHigh; +if (this.lowPrecision) { +isHigh = false; +this.precision = 4; +} else { +if (this.precision > 1000) { +this.precision -= 1000; +} else { +this.precision = Math.min(12, Math.max(4, this.precision)); +}isHigh = (this.precision >= 7); +if (isHigh) { +this.vwr.setBooleanProperty("doubleprecision", true); +if (JV.Viewer.isHighPrecision) { +this.cellSlop = 1.0E-12; +if (!this.paramsPacked) this.packingRange = Double.$valueOf(this.cellSlop); +this.asc.setInfo("highPrecision", Boolean.TRUE); +} else { +isHigh = false; +this.precision = 6; +this.appendLoadNote("Structure read has high precision but this version of Jmol uses float precision.\nUse JmolD.jar or JavaScript for full precision."); +}}}if (!isHigh) { +if (this.precision < 10) { +this.cellSlop = Math.pow(10, -this.precision); +}}this.symmetry.setPrecision(this.cellSlop); +this.unitCellParams[26] = this.cellSlop; +if (this.fileCoordinatesAreFractional) { +for (var i = this.asc.ac, n = this.asc.getLastAtomSetAtomIndex(); --i >= n; ) { +this.symmetry.twelfthify(this.asc.atoms[i]); +} +}this.appendLoadNote("Precision set to " + this.precision + "; packing set to " + (this.packingRange == null ? 0.02 : this.packingRange.floatValue())); +}); +Clazz.defineMethod(c$, "initializeSymmetryOptions", +function(){ +this.latticeCells = Clazz.newIntArray (4, 0); +this.doApplySymmetry = false; +var pt = this.paramsLattice; +if (pt == null || pt.length() == 0) { +if (!this.forcePacked && this.strSupercell == null) return; +pt = JU.P3.new3(1, 1, 1); +}this.latticeCells[0] = Clazz.floatToInt(pt.x); +this.latticeCells[1] = Clazz.floatToInt(pt.y); +this.latticeCells[2] = Clazz.floatToInt(pt.z); +if (Clazz.instanceOf(pt,"JU.T4")) this.latticeCells[3] = Clazz.floatToInt((pt).w); +this.doCentroidUnitCell = this.paramsCentroid; +if (this.doCentroidUnitCell && (this.latticeCells[2] == -1 || this.latticeCells[2] == 0)) this.latticeCells[2] = 1; +var isPacked = this.forcePacked || this.paramsPacked; +this.centroidPacked = this.doCentroidUnitCell && isPacked; +this.doPackUnitCell = !this.doCentroidUnitCell && (isPacked || this.latticeCells[2] < 0); +this.doApplySymmetry = (this.latticeCells[0] > 0 && this.latticeCells[1] > 0); +if (!this.doApplySymmetry) this.latticeCells = Clazz.newIntArray (3, 0); +}); +Clazz.defineMethod(c$, "doGetModel", +function(modelNumber, title){ +if (title != null && this.nameRequired != null && this.nameRequired.length > 0 && title.toUpperCase().indexOf(this.nameRequired) < 0) return false; +var isOK = (this.bsModels == null ? this.desiredModelNumber < 1 || modelNumber == this.desiredModelNumber : modelNumber > this.lastModelNumber ? false : modelNumber > 0 && this.bsModels.get(modelNumber - 1) || this.haveModel && this.firstLastStep != null && this.firstLastStep[1] < 0 && (this.firstLastStep[2] < 2 || (modelNumber - 1 - this.firstLastStep[0]) % this.firstLastStep[2] == 0)); +if (isOK && this.desiredModelNumber == 0) this.discardPreviousAtoms(); +this.haveModel = new Boolean (this.haveModel | isOK).valueOf(); +if (isOK) this.doProcessLines = true; +return isOK; +}, "~N,~S"); +Clazz.defineMethod(c$, "discardPreviousAtoms", +function(){ +this.asc.discardPreviousAtoms(); +}); +Clazz.defineMethod(c$, "initializeSymmetry", +function(){ +this.previousSpaceGroup = this.sgName; +this.previousUnitCell = this.unitCellParams; +this.iHaveUnitCell = this.ignoreFileUnitCell; +if (!this.ignoreFileUnitCell) { +this.unitCellParams = Clazz.newFloatArray (27, 0); +for (var i = 27; --i >= 0; ) this.unitCellParams[i] = NaN; + +this.unitCellParams[25] = this.latticeScaling; +this.unitCellParams[26] = this.cellSlop; +this.symmetry = null; +}if (!this.ignoreFileSpaceGroupName) this.sgName = "unspecified!"; +this.doCheckUnitCell = false; +}); +Clazz.defineMethod(c$, "newAtomSet", +function(name){ +if (this.asc.iSet >= 0) { +this.asc.newAtomSet(); +this.asc.setCollectionName(" "); +} else { +this.asc.setCollectionName(name); +}this.asc.setModelInfoForSet("name", name, Math.max(0, this.asc.iSet)); +this.asc.setAtomSetName(name); +}, "~S"); +Clazz.defineMethod(c$, "cloneLastAtomSet", +function(ac, pts){ +var lastAtomCount = this.asc.getLastAtomSetAtomCount(); +this.asc.cloneLastAtomSetFromPoints(ac, pts); +if (this.asc.haveUnitCell) { +this.iHaveUnitCell = true; +this.doCheckUnitCell = true; +this.sgName = this.previousSpaceGroup; +this.unitCellParams = this.previousUnitCell; +}return lastAtomCount; +}, "~N,~A"); +Clazz.defineMethod(c$, "setSpaceGroupName", +function(name){ +if (this.ignoreFileSpaceGroupName || name == null) return; +var s = name.trim(); +if (s.length == 0 || s.equals("HM:") || s.equals(this.sgName)) return; +if (!s.equals("P1")) JU.Logger.info("Setting space group name to " + s); +this.sgName = s; +}, "~S"); +Clazz.defineMethod(c$, "setSymmetryOperator", +function(xyz){ +if (this.ignoreFileSymmetryOperators) return -1; +var isym = this.asc.getXSymmetry().addSpaceGroupOperation(xyz, true); +if (isym < 0) JU.Logger.warn("Skippings symmetry operation " + xyz); +this.iHaveSymmetryOperators = true; +return isym; +}, "~S"); +Clazz.defineMethod(c$, "initializeCartesianToFractional", +function(){ +for (var i = 0; i < 16; i++) if (!Float.isNaN(this.unitCellParams[6 + i])) return; + +for (var i = 0; i < 16; i++) this.unitCellParams[6 + i] = ((i % 5 == 0 ? 1 : 0)); + +this.nMatrixElements = 0; +}); +Clazz.defineMethod(c$, "clearUnitCell", +function(){ +if (this.ignoreFileUnitCell) return; +for (var i = 6; i < 22; i++) this.unitCellParams[i] = NaN; + +this.checkUnitCell(6); +}); +Clazz.defineMethod(c$, "setUnitCellItem", +function(i, x){ +if (this.ignoreFileUnitCell) return; +if (i == 0 && x == 1 && !this.allow_a_len_1 || i == 3 && x == 0) { +if (this.ucItems == null) this.ucItems = Clazz.newFloatArray (6, 0); +this.ucItems[i] = x; +return; +}if (this.ucItems != null && i < 6) this.ucItems[i] = x; +if (!Float.isNaN(x) && i >= 6 && Float.isNaN(this.unitCellParams[6])) this.initializeCartesianToFractional(); +this.unitCellParams[i] = x; +if (this.debugging) { +JU.Logger.debug("setunitcellitem " + i + " " + x); +}if (i < 6 || Float.isNaN(x)) this.iHaveUnitCell = this.checkUnitCell(6); + else if (++this.nMatrixElements == 12) this.iHaveUnitCell = this.checkUnitCell(22); +}, "~N,~N"); +Clazz.defineMethod(c$, "setUnitCell", +function(a, b, c, alpha, beta, gamma){ +if (this.ignoreFileUnitCell) return; +this.clearUnitCell(); +this.unitCellParams[0] = a; +this.unitCellParams[1] = b; +this.unitCellParams[2] = c; +if (alpha != 0) this.unitCellParams[3] = alpha; +if (beta != 0) this.unitCellParams[4] = beta; +if (gamma != 0) this.unitCellParams[5] = gamma; +this.iHaveUnitCell = this.checkUnitCell(6); +}, "~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "addExplicitLatticeVector", +function(i, xyz, i0){ +if (this.ignoreFileUnitCell) return; +if (i == 0) for (var j = 0; j < 6; j++) this.unitCellParams[j] = 0; + +i = 6 + i * 3; +this.unitCellParams[i++] = xyz[i0++]; +this.unitCellParams[i++] = xyz[i0++]; +this.unitCellParams[i] = xyz[i0]; +if (Float.isNaN(this.unitCellParams[0])) { +for (i = 0; i < 6; i++) this.unitCellParams[i] = -1; + +}this.iHaveUnitCell = this.checkUnitCell(15); +if (this.iHaveUnitCell) { +if (this.slabXY || this.polymerX) this.unitCellParams[2] = -1; +if (this.polymerX) this.unitCellParams[1] = -1; +}}, "~N,~A,~N"); +Clazz.defineMethod(c$, "checkUnitCell", +function(n){ +for (var i = 0; i < n; i++) if (Float.isNaN(this.unitCellParams[i])) return false; + +this.fixFloatA(this.unitCellParams); +if (n == 22 && this.unitCellParams[0] == 1) { +if (this.unitCellParams[1] == 1 && this.unitCellParams[2] == 1 && this.unitCellParams[6] == 1 && this.unitCellParams[11] == 1 && this.unitCellParams[16] == 1) { +return false; +}}if (n == 6 && Float.isNaN(this.unitCellParams[6])) { +if (this.slabXY && this.unitCellParams[2] > 0) { +JU.SimpleUnitCell.addVectors(this.unitCellParams); +this.unitCellParams[2] = -1; +} else if (this.polymerX && this.unitCellParams[1] > 0) { +JU.SimpleUnitCell.addVectors(this.unitCellParams); +this.unitCellParams[1] = this.unitCellParams[2] = -1; +}}if (this.doApplySymmetry) { +this.getSymmetry(); +this.doConvertToFractional = !this.fileCoordinatesAreFractional; +}return true; +}, "~N"); +Clazz.defineMethod(c$, "getSymmetry", +function(){ +if (!this.iHaveUnitCell) return null; +if (this.symmetry == null) { +(this.symmetry = this.asc.newFileSymmetry()).setUnitCellFromParams(this.unitCellParams, false, this.cellSlop); +this.checkUnitCellOffset(); +}if (this.symmetry == null) this.iHaveUnitCell = false; + else this.symmetry.setSpaceGroupName(this.sgName); +return this.symmetry; +}); +Clazz.defineMethod(c$, "checkUnitCellOffset", +function(){ +if (this.fileOffsetFractional == null || this.symmetry == null) return; +this.fileOffset.setT(this.fileOffsetFractional); +if (this.unitCellOffsetFractional != this.fileCoordinatesAreFractional) { +if (this.unitCellOffsetFractional) this.symmetry.toCartesian(this.fileOffset, false); + else this.symmetry.toFractional(this.fileOffset, false); +}}); +Clazz.defineMethod(c$, "fractionalizeCoordinates", +function(toFrac){ +if (this.getSymmetry() == null) return; +var a = this.asc.atoms; +if (toFrac) for (var i = this.asc.ac; --i >= 0; ) this.symmetry.toFractional(a[i], false); + + else for (var i = this.asc.ac; --i >= 0; ) this.symmetry.toCartesian(a[i], false); + +this.setFractionalCoordinates(toFrac); +}, "~B"); +Clazz.defineMethod(c$, "setFractionalCoordinates", +function(TF){ +this.iHaveFractionalCoordinates = this.fileCoordinatesAreFractional = TF; +this.checkUnitCellOffset(); +}, "~B"); +Clazz.defineMethod(c$, "setFilterAtomTypeStr", +function(s){ +this.filterAtomTypeStr = s; +this.filterAtomNameTerminator = "\0"; +}, "~S"); +Clazz.defineMethod(c$, "setFilter", +function(filter0){ +if (filter0 == null) { +filter0 = this.htParams.get("filter"); +} else { +this.bsFilter = null; +this.filterCased = null; +}if (this.filterCased == null) this.filterCased = (filter0 == null ? null : filter0 + ";"); +if (filter0 != null) filter0 = filter0.toUpperCase(); +this.filter = filter0; +this.doSetOrientation = !this.checkFilterKey("NOORIENT"); +this.doCentralize = (!this.checkFilterKey("NOCENTER") && this.checkFilterKey("CENTER")); +this.addVibrations = !this.checkFilterKey("NOVIB"); +this.ignoreStructure = this.checkFilterKey("DSSP"); +this.isDSSP1 = this.checkFilterKey("DSSP1"); +this.doReadMolecularOrbitals = !this.checkFilterKey("NOMO"); +this.useAltNames = this.checkFilterKey("ALTNAME"); +this.reverseModels = this.checkFilterKey("REVERSEMODELS"); +this.allow_a_len_1 = this.checkFilterKey("TOPOS"); +this.slabXY = this.checkFilterKey("SLABXY"); +this.polymerX = !this.slabXY && this.checkFilterKey("POLYMERX"); +this.noHydrogens = this.checkFilterKey("NOH"); +this.noMinimize = this.checkFilterKey("NOMIN"); +this.optimize2D = this.checkFilterKey("2D") && !this.noHydrogens && !this.noMinimize; +if (this.filter == null) return; +this.fixUnitCell = this.checkFilterKey("FIXUNITCELL"); +if (this.checkFilterKey("LOWPRECISION")) { +this.setLowPrecision(); +}if (this.checkFilterKey("HETATM")) { +this.filterHetero = true; +this.filter = JU.PT.rep(this.filter, "HETATM", "HETATM-Y"); +this.filterCased = JU.PT.rep(this.filterCased, "HETATM", "HETATM-Y"); +}if (this.checkFilterKey("ATOM")) { +this.filterHetero = true; +this.filter = JU.PT.rep(this.filter, "ATOM", "HETATM-N"); +this.filterCased = JU.PT.rep(this.filterCased, "ATOM", "HETATM-N"); +}if (this.checkFilterKey("CELL=")) this.strSupercell = this.filter.substring(this.filter.indexOf("CELL=") + 5).toLowerCase(); +this.nameRequired = JU.PT.getQuotedAttribute(this.filter, "NAME"); +if (this.nameRequired != null) { +if (this.nameRequired.startsWith("'")) this.nameRequired = JU.PT.split(this.nameRequired, "'")[1]; + else if (this.nameRequired.startsWith("\"")) this.nameRequired = JU.PT.split(this.nameRequired, "\"")[1]; +this.filter = JU.PT.rep(this.filter, this.nameRequired, ""); +filter0 = this.filter = JU.PT.rep(this.filter, "NAME=", ""); +}this.filterAtomName = this.checkFilterKey("*.") || this.checkFilterKey("!."); +if (this.filter.startsWith("_") || this.filter.startsWith("!_") || this.filter.indexOf(";_") >= 0) this.filterElement = this.checkFilterKey("_"); +this.filterGroup3 = this.checkFilterKey("["); +this.filterChain = this.checkFilterKey(":"); +this.filterAltLoc = this.checkFilterKey("%"); +this.filterEveryNth = this.checkFilterKey("/="); +this.filterAllHetero = this.checkFilterKey("ALLHET"); +if (this.filterEveryNth) this.filterN = this.parseIntAt(this.filter, this.filter.indexOf("/=") + 2); + else if (this.filter.startsWith("=") || this.filter.indexOf(";=") >= 0) this.filterAtomType = this.checkFilterKey("="); +if (this.filterN == -2147483648) this.filterEveryNth = false; +this.haveAtomFilter = this.filterAtomName || this.filterAtomType || this.filterElement || this.filterGroup3 || this.filterChain || this.filterAltLoc || this.filterHetero || this.filterEveryNth || this.checkFilterKey("/="); +if (this.bsFilter == null) { +this.bsFilter = new JU.BS(); +this.htParams.put("bsFilter", this.bsFilter); +this.filter = (";" + this.filter + ";").$replace(',', ';'); +var p = this.getFilter("PRECISION="); +if (p != null) { +var prec = JU.PT.parseInt(p); +if (prec > 0 && prec <= 16) { +this.precision = 1000 + prec; +this.filteredPrecision = true; +}}var s = this.getFilter("LATTICESCALING="); +if (s != null && this.unitCellParams.length > 25) this.unitCellParams[25] = this.latticeScaling = this.parseFloatStr(s); +s = this.getFilter("SYMOP="); +if (s != null) this.filterSymop = " " + s + " "; +JU.Logger.info("filtering with " + this.filter); +if (this.haveAtomFilter) { +var ipt; +this.filter1Cased = this.filterCased; +this.filter2Cased = ""; +if ((ipt = this.filter.indexOf("|")) >= 0) { +this.filter1Cased = this.filter.substring(0, ipt).trim() + ";"; +this.filter2Cased = ";" + this.filter.substring(ipt).trim(); +}this.filter1 = this.filter1Cased.toUpperCase(); +this.filter2 = (this.filter2Cased.length == 0 ? null : this.filter2Cased.toUpperCase()); +}}}, "~S"); +Clazz.defineMethod(c$, "getFilterWithCase", +function(key){ +var pt = (this.filterCased == null ? -1 : this.filterCased.toUpperCase().indexOf(key.toUpperCase())); +return (pt < 0 ? null : this.filterCased.substring(pt + key.length, this.filterCased.indexOf(";", pt))); +}, "~S"); +Clazz.defineMethod(c$, "getFilter", +function(key){ +var pt = (this.filter == null ? -1 : this.filter.indexOf(key)); +return (pt < 0 ? null : this.filter.substring(pt + key.length, this.filter.indexOf(";", pt))); +}, "~S"); +Clazz.defineMethod(c$, "checkFilterKey", +function(key){ +return (this.filter != null && this.filter.indexOf(key) >= 0); +}, "~S"); +Clazz.defineMethod(c$, "checkAndRemoveFilterKey", +function(key){ +if (!this.checkFilterKey(key)) return false; +this.filter = JU.PT.rep(this.filter, key, ""); +if (this.filter.length < 3) this.filter = null; +return true; +}, "~S"); +Clazz.defineMethod(c$, "filterAtom", +function(atom, iAtom){ +if (!this.haveAtomFilter) return true; +var isOK = this.checkFilter(atom, this.filter1, this.filter1Cased); +if (this.filter2 != null) isOK = new Boolean (isOK | this.checkFilter(atom, this.filter2, this.filter2Cased)).valueOf(); +if (isOK && this.filterEveryNth && (!atom.isHetero || !this.filterAllHetero)) isOK = (((this.nFiltered++) % this.filterN) == 0); +this.bsFilter.setBitTo(iAtom >= 0 ? iAtom : this.asc.ac, isOK); +return isOK; +}, "J.adapter.smarter.Atom,~N"); +Clazz.defineMethod(c$, "checkFilter", +function(atom, f, fCased){ +if (atom.isHetero && this.filterAllHetero) return true; +return (!this.filterGroup3 || atom.group3 == null || !this.filterReject(f, "[", atom.group3.toUpperCase() + "]")) && (!this.filterAtomName || this.allowAtomName(atom.atomName, f)) && (this.filterAtomTypeStr == null || atom.atomName == null || atom.atomName.toUpperCase().indexOf("\0" + this.filterAtomTypeStr) >= 0) && (!this.filterElement || atom.elementSymbol == null || !this.filterReject(f, "_", atom.elementSymbol.toUpperCase() + ";")) && (!this.filterChain || atom.chainID == 0 || !this.filterReject(fCased, ":", "" + this.vwr.getChainIDStr(atom.chainID))) && (!this.filterAltLoc || atom.altLoc == '\0' || !this.filterReject(f, "%", "" + atom.altLoc)) && (!this.filterHetero || !this.allowPDBFilter || !this.filterReject(f, "HETATM", atom.isHetero ? "-Y" : "-N")); +}, "J.adapter.smarter.Atom,~S,~S"); +Clazz.defineMethod(c$, "rejectAtomName", +function(name){ +return this.filterAtomName && !this.allowAtomName(name, this.filter); +}, "~S"); +Clazz.defineMethod(c$, "allowAtomName", +function(atomName, f){ +return (atomName == null || !this.filterReject(f, ".", atomName.toUpperCase() + this.filterAtomNameTerminator)); +}, "~S,~S"); +Clazz.defineMethod(c$, "filterReject", +function(f, code, atomCode){ +return (f.indexOf(code) >= 0 && (f.indexOf("!" + code) >= 0) == (f.indexOf(code + atomCode) >= 0)); +}, "~S,~S,~S"); +Clazz.defineMethod(c$, "set2D", +function(){ +this.asc.setInfo("is2D", Boolean.TRUE); +this.asc.getBSAtoms(-1); +if (this.noHydrogens) { +this.asc.setInfo("noHydrogen", Boolean.TRUE); +this.optimize2D = false; +}if (this.optimize2D) { +this.asc.fix2Stereo(); +this.asc.setInfo("doMinimize", Boolean.TRUE); +this.appendLoadNote("This model is 2D. Its 3D structure was generated."); +} else { +this.appendLoadNote("This model is 2D. Its 3D structure has not been generated; use LOAD \"\" FILTER \"2D\" to optimize 3D."); +this.addJmolScript("select thismodel;wireframe only"); +}}); +Clazz.defineMethod(c$, "doGetVibration", +function(vibrationNumber){ +return this.addVibrations && (this.desiredVibrationNumber <= 0 || vibrationNumber == this.desiredVibrationNumber); +}, "~N"); +Clazz.defineMethod(c$, "setTransform", +function(x1, y1, z1, x2, y2, z2, x3, y3, z3){ +if (this.matRot != null || !this.doSetOrientation) return; +this.matRot = new JU.M3(); +var v = JU.V3.new3(x1, y1, z1); +v.normalize(); +this.matRot.setColumnV(0, v); +v.set(x2, y2, z2); +v.normalize(); +this.matRot.setColumnV(1, v); +v.set(x3, y3, z3); +v.normalize(); +this.matRot.setColumnV(2, v); +this.asc.setInfo("defaultOrientationMatrix", JU.M3.newM3(this.matRot)); +var q = JU.Quat.newM(this.matRot); +this.asc.setInfo("defaultOrientationQuaternion", q); +JU.Logger.info("defaultOrientationMatrix = " + this.matRot); +}, "~N,~N,~N,~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "setAtomCoordXYZ", +function(atom, x, y, z){ +atom.set(x, y, z); +this.setAtomCoord(atom); +}, "J.adapter.smarter.Atom,~N,~N,~N"); +Clazz.defineMethod(c$, "setAtomCoordScaled", +function(atom, tokens, i, f){ +if (atom == null) atom = this.asc.addNewAtom(); +this.setAtomCoordXYZ(atom, this.parsePrecision(tokens[i]) * f, this.parsePrecision(tokens[i + 1]) * f, this.parsePrecision(tokens[i + 2]) * f); +return atom; +}, "J.adapter.smarter.Atom,~A,~N,~N"); +Clazz.defineMethod(c$, "setAtomCoordTokens", +function(atom, tokens, i){ +this.setAtomCoordXYZ(atom, this.parsePrecision(tokens[i]), this.parsePrecision(tokens[i + 1]), this.parsePrecision(tokens[i + 2])); +}, "J.adapter.smarter.Atom,~A,~N"); +Clazz.defineMethod(c$, "addAtomXYZSymName", +function(tokens, i, sym, name){ +var atom = this.asc.addNewAtom(); +if (sym != null) atom.elementSymbol = sym; +if (name != null) atom.atomName = name; +this.setAtomCoordTokens(atom, tokens, i); +return atom; +}, "~A,~N,~S,~S"); +Clazz.defineMethod(c$, "setAtomCoord", +function(atom){ +var mustFractionalize = (this.doConvertToFractional && !this.fileCoordinatesAreFractional && this.getSymmetry() != null); +if (this.fileScaling != null) { +atom.x = atom.x * this.fileScaling.x + this.fileOffset.x; +atom.y = atom.y * this.fileScaling.y + this.fileOffset.y; +atom.z = atom.z * this.fileScaling.z + this.fileOffset.z; +}if (mustFractionalize) { +if (!this.symmetry.haveUnitCell()) this.symmetry.setUnitCellFromParams(this.unitCellParams, false, NaN); +this.symmetry.toFractional(atom, false); +this.iHaveFractionalCoordinates = true; +}if (this.floatifyJavaDouble && this.fileCoordinatesAreFractional) this.fixFloatPt(atom, 100000.0); +this.doCheckUnitCell = true; +}, "J.adapter.smarter.Atom"); +Clazz.defineMethod(c$, "addSites", +function(htSites){ +this.asc.setCurrentModelInfo("pdbSites", htSites); +var sites = ""; +for (var entry, $entry = htSites.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +var name = entry.getKey(); +var htSite = entry.getValue(); +var ch; +for (var i = name.length; --i >= 0; ) if (!JU.PT.isLetterOrDigit(ch = name.charAt(i)) && ch != '\'') name = name.substring(0, i) + "_" + name.substring(i + 1); + +var groups = htSite.get("groups"); +if (groups.length == 0) continue; +this.addSiteScript("@site_" + name + " " + groups); +this.addSiteScript("site_" + name + " = [\"" + JU.PT.rep(groups, ",", "\",\"") + "\"]"); +sites += ",\"site_" + name + "\""; +} +if (sites.length > 0) this.addSiteScript("site_list = [" + sites.substring(1) + "]"); +}, "java.util.Map"); +Clazz.defineMethod(c$, "applySymmetryAndSetTrajectory", +function(){ +this.applySymTrajASCR(); +}); +Clazz.defineMethod(c$, "applySymTrajASCR", +function(){ +if (this.forcePacked) this.initializeSymmetryOptions(); +var doApply = (this.iHaveUnitCell && this.doCheckUnitCell); +var sym = null; +if (doApply) { +sym = this.getSymmetry(); +this.setPrecision(); +sym = this.asc.getXSymmetry().applySymmetryFromReader(sym); +} else { +this.asc.setTensors(); +}if (this.isTrajectory) this.asc.setTrajectory(); +if (this.moreUnitCellInfo != null) { +this.asc.setCurrentModelInfo("moreUnitCellInfo", this.moreUnitCellInfo); +this.moreUnitCellInfo = null; +}this.finalizeSubclassSymmetry(sym != null); +if (this.merging && sym != null && this.iHaveFractionalCoordinates && this.iHaveUnitCell && this.iHaveSymmetryOperators) { +this.fractionalizeCoordinates(false); +this.addJmolScript("modelkit spacegroup P1"); +}this.initializeSymmetry(); +return sym; +}); +Clazz.defineMethod(c$, "finalizeSubclassSymmetry", +function(haveSymmetry){ +}, "~B"); +Clazz.defineMethod(c$, "doPreSymmetry", +function(){ +}); +Clazz.defineMethod(c$, "finalizeMOData", +function(moData){ +this.asc.setCurrentModelInfo("moData", moData); +if (moData == null) return; +var orbitals = moData.get("mos"); +if (orbitals != null) JU.Logger.info(orbitals.size() + " molecular orbitals read in model " + this.asc.atomSetCount); +}, "java.util.Map"); +c$.getElementSymbol = Clazz.defineMethod(c$, "getElementSymbol", +function(elementNumber){ +return J.api.JmolAdapter.getElementSymbol(elementNumber); +}, "~N"); +Clazz.defineMethod(c$, "fillDataBlock", +function(data, minLineLen){ +var nLines = data.length; +for (var i = 0; i < nLines; i++) { +data[i] = JU.PT.getTokens(this.discardLinesUntilNonBlank()); +if (data[i].length < minLineLen) --i; +} +}, "~A,~N"); +Clazz.defineMethod(c$, "fill3x3", +function(tokens, pt){ +var a = Clazz.newDoubleArray (3, 3, 0); +var needTokens = (tokens == null); +var pt0 = pt; +for (var i = 0; i < 3; i++) { +if (needTokens || pt >= tokens.length) { +while ((tokens = JU.PT.getTokens(this.rd())).length < 3) { +} +pt = (pt0 < 0 ? tokens.length + pt0 : pt0); +}for (var j = 0; j < 3; j++) a[i][j] = Double.$valueOf(tokens[pt++]).doubleValue(); + +} +return a; +}, "~A,~N"); +Clazz.defineMethod(c$, "fillFloatArray", +function(s, width, data){ +var tokens = new Array(0); +var pt = 0; +for (var i = 0; i < data.length; i++) { +while (tokens != null && pt >= tokens.length) { +if (s == null) s = this.rd(); +if (width == 0) { +tokens = JU.PT.getTokens(s); +} else { +tokens = new Array(Clazz.doubleToInt(s.length / width)); +for (var j = 0; j < tokens.length; j++) tokens[j] = s.substring(j * width, (j + 1) * width); + +}s = null; +pt = 0; +} +if (tokens == null) break; +data[i] = this.parseFloatStr(tokens[pt++]); +} +return data; +}, "~S,~N,~A"); +Clazz.defineMethod(c$, "fillFrequencyData", +function(iAtom0, ac, modelAtomCount, ignore, isWide, col0, colWidth, atomIndexes, minLineLen, data){ +var withSymmetry = (ac != 0 && modelAtomCount != ac && data == null); +if (ac == 0 && atomIndexes != null) ac = atomIndexes.length; +var nLines = (isWide ? ac : ac * 3); +var nFreq = ignore.length; +if (data == null) { +data = new Array(nLines); +this.fillDataBlockFixed(data, col0, colWidth, minLineLen); +} else if (!isWide) { +var ptNonblank = minLineLen; +this.fillDataBlockFixed(data, col0, colWidth, -ptNonblank); +if (data[0] == null) return; +iAtom0 += this.parseIntAt(this.line, ptNonblank - 5) - 1; +}for (var i = 0, atomPt = 0; i < nLines; i++, atomPt++) { +var values = data[i]; +var valuesY = (isWide ? null : data[++i]); +var valuesZ = (isWide ? null : data[++i]); +var dataPt = values.length - (isWide ? nFreq * 3 : nFreq) - 1; +for (var j = 0, jj = 0; jj < nFreq; jj++) { +++dataPt; +var x = values[dataPt]; +if (x.charAt(0) == ')') x = x.substring(1); +var vx = this.parseFloatStr(x); +var vy = this.parseFloatStr(isWide ? values[++dataPt] : valuesY[dataPt]); +var vz = this.parseFloatStr(isWide ? values[++dataPt] : valuesZ[dataPt]); +if (ignore[jj]) continue; +var iAtom = (atomIndexes == null ? atomPt : atomIndexes[atomPt]); +if (iAtom < 0) continue; +iAtom += iAtom0 + modelAtomCount * j++; +if (this.debugging) JU.Logger.debug("atom " + iAtom + " vib" + j + ": " + vx + " " + vy + " " + vz); +this.asc.addVibrationVectorWithSymmetry(iAtom, vx, vy, vz, withSymmetry); +} +} +}, "~N,~N,~N,~A,~B,~N,~N,~A,~N,~A"); +Clazz.defineMethod(c$, "fillDataBlockFixed", +function(data, col0, colWidth, minLineLen){ +if (colWidth == 0) { +this.fillDataBlock(data, minLineLen); +return; +}var nLines = data.length; +for (var i = 0; i < nLines; i++) { +this.discardLinesUntilNonBlank(); +if (minLineLen < 0 && this.line.charAt(-minLineLen) == ' ') { +data[0] = null; +return; +}var nFields = Clazz.doubleToInt((this.line.length - col0 + 1) / colWidth); +data[i] = new Array(nFields); +for (var j = 0, start = col0; j < nFields; j++, start += colWidth) data[i][j] = this.line.substring(start, Math.min(this.line.length, start + colWidth)); + +} +}, "~A,~N,~N,~N"); +Clazz.defineMethod(c$, "readLines", +function(nLines){ +for (var i = nLines; --i >= 0; ) this.rd(); + +return this.line; +}, "~N"); +Clazz.defineMethod(c$, "discardLinesUntilStartsWith", +function(startsWith){ +while (this.rd() != null && !this.line.startsWith(startsWith)) { +} +return this.line; +}, "~S"); +Clazz.defineMethod(c$, "discardLinesUntilContains", +function(containsMatch){ +while (this.rd() != null && this.line.indexOf(containsMatch) < 0) { +} +return this.line; +}, "~S"); +Clazz.defineMethod(c$, "discardLinesUntilContains2", +function(s1, s2){ +while (this.rd() != null && this.line.indexOf(s1) < 0 && this.line.indexOf(s2) < 0) { +} +return this.line; +}, "~S,~S"); +Clazz.defineMethod(c$, "discardLinesUntilBlank", +function(){ +while (this.rd() != null && this.line.trim().length != 0) { +} +return this.line; +}); +Clazz.defineMethod(c$, "discardLinesUntilNonBlank", +function(){ +while (this.rd() != null && this.line.trim().length == 0) { +} +return this.line; +}); +Clazz.defineMethod(c$, "checkLineForScript", +function(line){ +this.line = line; +this.checkCurrentLineForScript(); +}, "~S"); +Clazz.defineMethod(c$, "checkCurrentLineForScript", +function(){ +if (this.line.endsWith("#noautobond")) { +this.line = this.line.substring(0, this.line.lastIndexOf('#')).trim(); +this.asc.setNoAutoBond(); +}var pt = this.line.indexOf("jmolscript:"); +if (pt >= 0) { +var script = this.line.substring(pt + 11, this.line.length); +if (script.indexOf("#") >= 0) { +script = script.substring(0, script.indexOf("#")); +}this.addJmolScript(script); +this.line = this.line.substring(0, pt).trim(); +}}); +Clazz.defineMethod(c$, "addJmolScript", +function(script){ +JU.Logger.info("#jmolScript: " + script); +if (this.previousScript == null) this.previousScript = ""; + else if (!this.previousScript.endsWith(";")) this.previousScript += ";"; +this.previousScript += script; +this.asc.setInfo("jmolscript", this.previousScript); +}, "~S"); +Clazz.defineMethod(c$, "addSiteScript", +function(script){ +if (this.siteScript == null) this.siteScript = ""; + else if (!this.siteScript.endsWith(";")) this.siteScript += ";"; +this.siteScript += script; +this.asc.setInfo("sitescript", this.siteScript); +}, "~S"); +Clazz.defineMethod(c$, "rd", +function(){ +return this.RL(); +}); +Clazz.defineMethod(c$, "RL", +function(){ +this.prevline = this.line; +this.line = this.reader.readLine(); +if (this.out != null && this.line != null) this.out.append(this.line).append("\n"); +this.ptLine++; +if (this.debugging && this.line != null) JU.Logger.info(this.line); +return this.line; +}); +c$.getStrings = Clazz.defineMethod(c$, "getStrings", +function(sinfo, nFields, width){ +var fields = new Array(nFields); +for (var i = 0, pt = 0; i < nFields; i++, pt += width) fields[i] = sinfo.substring(pt, pt + width); + +return fields; +}, "~S,~N,~N"); +Clazz.defineMethod(c$, "getTokens", +function(){ +return JU.PT.getTokens(this.line); +}); +c$.getTokensFloat = Clazz.defineMethod(c$, "getTokensFloat", +function(s, f, n){ +if (f == null) f = Clazz.newFloatArray (n, 0); +JU.PT.parseFloatArrayDataN(JU.PT.getTokens(s), f, n); +return f; +}, "~S,~A,~N"); +Clazz.defineMethod(c$, "parseFloat", +function(){ +return JU.PT.parseFloatNext(this.line, this.next); +}); +Clazz.defineMethod(c$, "parseFloatStr", +function(s){ +this.next[0] = 0; +return JU.PT.parseFloatNext(s, this.next); +}, "~S"); +Clazz.defineMethod(c$, "parseFloatRange", +function(s, iStart, iEnd){ +this.next[0] = iStart; +return JU.PT.parseFloatRange(s, iEnd, this.next); +}, "~S,~N,~N"); +Clazz.defineMethod(c$, "parseInt", +function(){ +return JU.PT.parseIntNext(this.line, this.next); +}); +Clazz.defineMethod(c$, "parseIntStr", +function(s){ +this.next[0] = 0; +return JU.PT.parseIntNext(s, this.next); +}, "~S"); +Clazz.defineMethod(c$, "parseIntAt", +function(s, iStart){ +this.next[0] = iStart; +return JU.PT.parseIntNext(s, this.next); +}, "~S,~N"); +Clazz.defineMethod(c$, "parseIntRange", +function(s, iStart, iEnd){ +this.next[0] = iStart; +return JU.PT.parseIntRange(s, iEnd, this.next); +}, "~S,~N,~N"); +Clazz.defineMethod(c$, "parseToken", +function(){ +return JU.PT.parseTokenNext(this.line, this.next); +}); +Clazz.defineMethod(c$, "parseTokenStr", +function(s){ +this.next[0] = 0; +return JU.PT.parseTokenNext(s, this.next); +}, "~S"); +Clazz.defineMethod(c$, "parseTokenNext", +function(s){ +return JU.PT.parseTokenNext(s, this.next); +}, "~S"); +Clazz.defineMethod(c$, "parseTokenRange", +function(s, iStart, iEnd){ +this.next[0] = iStart; +return JU.PT.parseTokenRange(s, iEnd, this.next); +}, "~S,~N,~N"); +c$.getFortranFormatLengths = Clazz.defineMethod(c$, "getFortranFormatLengths", +function(s){ +var vdata = new JU.Lst(); +var n = 0; +var c = 0; +var factor = 1; +var inN = false; +var inCount = true; +s += ","; +for (var i = 0; i < s.length; i++) { +var ch = s.charAt(i); +switch ((ch).charCodeAt(0)) { +case 46: +inN = false; +continue; +case 44: +for (var j = 0; j < c; j++) vdata.addLast(Integer.$valueOf(n * factor)); + +inN = false; +inCount = true; +c = 0; +continue; +case 88: +n = c; +c = 1; +factor = -1; +continue; +} +var isDigit = JU.PT.isDigit(ch); +if (isDigit) { +if (inN) n = n * 10 + ch.charCodeAt(0) - 48; + else if (inCount) c = c * 10 + ch.charCodeAt(0) - 48; +} else if (JU.PT.isLetter(ch)) { +n = 0; +inN = true; +inCount = false; +factor = 1; +} else { +inN = false; +}} +return vdata; +}, "~S"); +Clazz.defineMethod(c$, "read3Vectors", +function(isBohr){ +var vectors = new Array(3); +var f = Clazz.newFloatArray (3, 0); +for (var i = 0; i < 3; i++) { +if (i > 0 || Float.isNaN(this.parseFloatStr(this.line))) { +this.rd(); +if (i == 0 && this.line != null) { +i = -1; +continue; +}}this.fillFloatArray(this.line, 0, f); +vectors[i] = new JU.V3(); +vectors[i].setA(f); +if (isBohr) vectors[i].scale(0.5291772); +} +return vectors; +}, "~B"); +Clazz.defineMethod(c$, "setElementAndIsotope", +function(atom, str){ +var isotope = this.parseIntStr(str); +if (isotope == -2147483648) { +atom.elementSymbol = str; +} else { +str = str.substring(("" + isotope).length); +atom.elementNumber = (str.length == 0 ? isotope : ((isotope << 7) + J.api.JmolAdapter.getElementNumber(str))); +}}, "J.adapter.smarter.Atom,~S"); +Clazz.defineMethod(c$, "finalizeModelSet", +function(){ +}); +Clazz.defineMethod(c$, "setChainID", +function(atom, label){ +atom.chainID = this.vwr.getChainID(label, true); +}, "J.adapter.smarter.Atom,~S"); +Clazz.overrideMethod(c$, "readNextLine", +function(){ +if (this.rd() != null && this.line.indexOf("#jmolscript:") >= 0) this.checkCurrentLineForScript(); +return this.line; +}); +Clazz.defineMethod(c$, "appendUunitCellInfo", +function(info){ +if (this.moreUnitCellInfo == null) this.moreUnitCellInfo = new JU.Lst(); +this.moreUnitCellInfo.addLast(info); +this.appendLoadNote(info); +}, "~S"); +Clazz.defineMethod(c$, "getInterface", +function(className){ +var o = J.api.Interface.getInterface(className, this.vwr, "file"); +if (o == null) throw new NullPointerException("Interface"); +return o; +}, "~S"); +Clazz.defineMethod(c$, "forceSymmetry", +function(andPack){ +if (andPack) this.doPackUnitCell = andPack; +if (!this.doApplySymmetry) { +this.doApplySymmetry = true; +this.latticeCells[0] = this.latticeCells[1] = this.latticeCells[2] = 1; +}}, "~B"); +Clazz.defineMethod(c$, "fixFloatA", +function(pts){ +if (this.floatifyJavaDouble) for (var i = pts.length; --i >= 0; ) if (!Float.isNaN(pts[i])) pts[i] = JU.PT.fixFloat(pts[i], 100000.0); + +}, "~A"); +Clazz.defineMethod(c$, "fixDoubleA", +function(pts){ +if (this.floatifyJavaDouble) for (var i = pts.length; --i >= 0; ) if (!Double.isNaN(pts[i])) pts[i] = JU.PT.fixDouble(pts[i], 100000.0); + +}, "~A"); +Clazz.defineMethod(c$, "fixFloatPt", +function(pt, prec){ +if (this.floatifyJavaDouble) JU.PT.fixPtFloats(pt, prec); +}, "JU.P3,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomSetObject.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomSetObject.js new file mode 100755 index 000000000000..9db13d486e6e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/AtomSetObject.js @@ -0,0 +1,7 @@ +Clazz.declarePackage("J.adapter.smarter"); +(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.atomSetIndex = 0; +Clazz.instantialize(this, arguments);}, J.adapter.smarter, "AtomSetObject", null); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Bond.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Bond.js new file mode 100755 index 000000000000..5a34304cb2b7 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Bond.js @@ -0,0 +1,24 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.load(["J.adapter.smarter.AtomSetObject"], "J.adapter.smarter.Bond", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.atomIndex1 = 0; +this.atomIndex2 = 0; +this.order = 0; +this.radius = -1; +this.colix = -1; +this.uniqueID = -1; +this.distance = 0; +Clazz.instantialize(this, arguments);}, J.adapter.smarter, "Bond", J.adapter.smarter.AtomSetObject); +Clazz.makeConstructor(c$, +function(atomIndex1, atomIndex2, order){ +Clazz.superConstructor (this, J.adapter.smarter.Bond, []); +this.atomIndex1 = atomIndex1; +this.atomIndex2 = atomIndex2; +this.order = order; +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "toString", +function(){ +return "[Bond " + this.atomIndex1 + " " + this.atomIndex2 + " " + this.order + "]"; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/BondIterator.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/BondIterator.js new file mode 100755 index 000000000000..9bd28bd28e76 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/BondIterator.js @@ -0,0 +1,46 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.load(["J.api.JmolAdapterBondIterator"], "J.adapter.smarter.BondIterator", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.bsAtoms = null; +this.bonds = null; +this.ibond = 0; +this.bond = null; +this.bondCount = 0; +Clazz.instantialize(this, arguments);}, J.adapter.smarter, "BondIterator", J.api.JmolAdapterBondIterator); +Clazz.makeConstructor(c$, +function(asc){ +Clazz.superConstructor (this, J.adapter.smarter.BondIterator, []); +this.bsAtoms = asc.bsAtoms; +this.bonds = asc.bonds; +this.bondCount = asc.bondCount; +this.ibond = 0; +}, "J.adapter.smarter.AtomSetCollection"); +Clazz.overrideMethod(c$, "hasNext", +function(){ +if (this.ibond == this.bondCount) return false; +while ((this.bond = this.bonds[this.ibond++]) == null || (this.bsAtoms != null && (!this.bsAtoms.get(this.bond.atomIndex1) || !this.bsAtoms.get(this.bond.atomIndex2)))) if (this.ibond == this.bondCount) return false; + +return true; +}); +Clazz.overrideMethod(c$, "getAtomUniqueID1", +function(){ +return Integer.$valueOf(this.bond.atomIndex1); +}); +Clazz.overrideMethod(c$, "getAtomUniqueID2", +function(){ +return Integer.$valueOf(this.bond.atomIndex2); +}); +Clazz.overrideMethod(c$, "getEncodedOrder", +function(){ +return this.bond.order; +}); +Clazz.overrideMethod(c$, "getRadius", +function(){ +return this.bond.radius; +}); +Clazz.overrideMethod(c$, "getColix", +function(){ +return this.bond.colix; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/MSInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/MSInterface.js new file mode 100755 index 000000000000..19af8c9701da --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/MSInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.declareInterface(J.adapter.smarter, "MSInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Resolver.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Resolver.js new file mode 100755 index 000000000000..cc9d71328548 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Resolver.js @@ -0,0 +1,487 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.load(null, "J.adapter.smarter.Resolver", ["java.io.BufferedInputStream", "java.util.StringTokenizer", "JU.LimitedLineReader", "$.PT", "$.Rdr", "J.adapter.smarter.AtomSetCollectionReader", "$.SmarterJmolAdapter", "J.api.Interface", "JU.Logger", "JV.JC"], function(){ +var c$ = Clazz.declareType(J.adapter.smarter, "Resolver", null); +c$.getReaderClassBase = Clazz.defineMethod(c$, "getReaderClassBase", +function(type){ +var name = type + "Reader"; +if (type.startsWith("Xml")) return "J.adapter.readers." + "xml." + name; +var key = ";" + type + ";"; +for (var i = 1; i < J.adapter.smarter.Resolver.readerSets.length; i += 2) if (J.adapter.smarter.Resolver.readerSets[i].indexOf(key) >= 0) return "J.adapter.readers." + J.adapter.smarter.Resolver.readerSets[i - 1] + name; + +return "J.adapter.readers." + "???." + name; +}, "~S"); +c$.getFileType = Clazz.defineMethod(c$, "getFileType", +function(br){ +try { +return J.adapter.smarter.Resolver.determineAtomSetCollectionReader(br, null); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return null; +} else { +throw e; +} +} +}, "java.io.BufferedReader"); +c$.getAtomCollectionReader = Clazz.defineMethod(c$, "getAtomCollectionReader", +function(fullName, type, readerOrDocument, htParams, ptFile){ +var readerName; +fullName = J.adapter.smarter.Resolver.fixDOSName(fullName); +var errMsg = null; +if (type == null && htParams != null) { +type = J.adapter.smarter.Resolver.getFileTypefromFilter(htParams.get("filter")); +}if (type != null) { +readerName = J.adapter.smarter.Resolver.getReaderFromType(type); +if (readerName == null) readerName = J.adapter.smarter.Resolver.getReaderFromType("Xml" + type); +if (readerName == null) errMsg = "unrecognized file format type " + type + " file=" + fullName; + else JU.Logger.info("The Resolver assumes " + readerName + " file=" + fullName); +} else { +readerName = J.adapter.smarter.Resolver.determineAtomSetCollectionReader(readerOrDocument, htParams); +if (readerName.charAt(0) == '\n') { +type = (htParams == null ? null : htParams.get("defaultType")); +if (type != null) { +type = J.adapter.smarter.Resolver.getReaderFromType(type); +if (type != null) readerName = type; +}}if (readerName.charAt(0) == '\n') errMsg = "unrecognized file format for file\n" + fullName + "\n" + J.adapter.smarter.Resolver.split(readerName, 50); + else if (readerName.equals("spt")) errMsg = "NOTE: file recognized as a script file: " + fullName + "\n"; + else if (!fullName.equals("ligand")) JU.Logger.info("The Resolver thinks " + readerName); +}if (errMsg != null) { +J.adapter.smarter.SmarterJmolAdapter.close(readerOrDocument); +return errMsg; +}htParams.put("ptFile", Integer.$valueOf(ptFile)); +if (ptFile <= 0) htParams.put("readerName", readerName); +return J.adapter.smarter.Resolver.getReader(readerName, htParams); +}, "~S,~S,~O,java.util.Map,~N"); +c$.getReader = Clazz.defineMethod(c$, "getReader", +function(readerName, htParams){ +var rdr = null; +var className = null; +var err = null; +className = J.adapter.smarter.Resolver.getReaderClassBase(readerName); +if ((rdr = J.api.Interface.getInterface(className, null, "reader")) == null) { +err = JV.JC.READER_NOT_FOUND + className; +JU.Logger.error(err); +return err; +}return rdr; +}, "~S,java.util.Map"); +c$.getReaderFromType = Clazz.defineMethod(c$, "getReaderFromType", +function(type){ +if (type.endsWith("(XML)")) { +type = "Xml" + type.substring(0, type.length - 5); +}type = ";" + type.toLowerCase() + ";"; +if (";zmatrix;cfi;c;vfi;v;mnd;jag;gms;g;gau;mp;nw;orc;pqs;qc;".indexOf(type) >= 0) return "Input"; +var set; +var pt; +for (var i = J.adapter.smarter.Resolver.readerSets.length; --i >= 0; ) { +if ((pt = (set = J.adapter.smarter.Resolver.readerSets[i--]).toLowerCase().indexOf(type)) >= 0) return set.substring(pt + 1, set.indexOf(";", pt + 2)); +} +return null; +}, "~S"); +c$.split = Clazz.defineMethod(c$, "split", +function(a, n){ +var s = ""; +var l = a.length; +for (var i = 0, j = 0; i < l; i = j) s += a.substring(i, (j = Math.min(i + n, l))) + "\n"; + +return s; +}, "~S,~N"); +c$.DOMResolve = Clazz.defineMethod(c$, "DOMResolve", +function(htParams){ +var rdrName = J.adapter.smarter.Resolver.getXmlType(htParams.get("nameSpaceInfo")); +if (JU.Logger.debugging) { +JU.Logger.debug("The Resolver thinks " + rdrName); +}htParams.put("readerName", rdrName); +return J.adapter.smarter.Resolver.getReader("XmlReader", htParams); +}, "java.util.Map"); +c$.determineAtomSetCollectionReader = Clazz.defineMethod(c$, "determineAtomSetCollectionReader", +function(readerOrDocument, htParams){ +var readerName; +if (Clazz.instanceOf(readerOrDocument,"javajs.api.GenericBinaryDocument")) { +var doc = readerOrDocument; +readerName = J.adapter.smarter.Resolver.getBinaryType(doc.getInputStream()); +return (readerName == null ? "binary file type not recognized" : readerName); +}if (Clazz.instanceOf(readerOrDocument,"java.io.InputStream")) { +readerName = J.adapter.smarter.Resolver.getBinaryType(readerOrDocument); +if (readerName != null) return readerName; +readerOrDocument = JU.Rdr.getBufferedReader( new java.io.BufferedInputStream(readerOrDocument), null); +}var rdr = readerOrDocument; +var llr = new JU.LimitedLineReader(rdr, 16384); +var leader = llr.getHeader(64).trim(); +if (leader.length == 0) throw new java.io.EOFException("File contains no data."); +if (leader.indexOf("PNG") == 1 && leader.indexOf("PNGJ") >= 0) return "pngj"; +if (leader.indexOf("PNG") == 1 || leader.indexOf("JPG") == 1 || leader.indexOf("JFIF") == 6) return "spt"; +if (leader.indexOf("\"num_pairs\"") >= 0) return "dssr"; +if (leader.indexOf("output.31\n") >= 0) return "GenNBO|output.31"; +if ((readerName = J.adapter.smarter.Resolver.checkFileStart(leader)) != null) { +return (readerName.equals("Xml") ? J.adapter.smarter.Resolver.getXmlType(llr.getHeader(0)) : readerName); +}var msg; +var isJSONMap = (leader.charAt(0) == '{'); +var lines = new Array(16); +var nLines = 0; +for (var i = 0; i < lines.length; ++i) { +lines[i] = llr.readLineWithNewline(); +if (lines[i].length > 0) nLines++; +} +if ((readerName = J.adapter.smarter.Resolver.checkSpecial1(nLines, lines, leader)) != null) return readerName; +if ((readerName = J.adapter.smarter.Resolver.checkLineStarts(lines)) != null) return readerName; +if ((readerName = J.adapter.smarter.Resolver.checkHeaderContains(llr.getHeader(0))) != null) { +return readerName; +}if ((readerName = J.adapter.smarter.Resolver.checkSpecial2(lines)) != null) return readerName; +if (isJSONMap) { +var json = rdr.readLine(); +if ((readerName = J.adapter.smarter.Resolver.checkJSONContains(json)) != null) { +if (htParams != null) htParams.put("fileData", json); +return readerName; +}msg = (htParams == null ? null : json.substring(0, Math.min(100, json.length))); +} else { +msg = (htParams == null ? null : "\n" + lines[0] + "\n" + lines[1] + "\n" + lines[2] + "\n"); +}return msg; +}, "~O,java.util.Map"); +c$.getBinaryType = Clazz.defineMethod(c$, "getBinaryType", +function(inputStream){ +var magic4 = null; +return (JU.Rdr.isPickleS(inputStream) ? "PyMOL" : (JU.Rdr.getMagic(inputStream, 1)[0] & 0xFF) == 0xDE ? "MMTF" : (JU.Rdr.getMagic(inputStream, 10)[9] & 0xFF) == 0xB6 ? "BCIF" : J.adapter.smarter.Resolver.bytesMatch((magic4 = JU.Rdr.getMagic(inputStream, 4)), J.adapter.smarter.Resolver.cdxMagic) ? "CDX" : J.adapter.smarter.Resolver.bytesMatch(magic4, J.adapter.smarter.Resolver.cmdfMagic) ? "Cmdf" : null); +}, "java.io.InputStream"); +c$.bytesMatch = Clazz.defineMethod(c$, "bytesMatch", +function(a, b){ +if (b.length > a.length) return false; +for (var i = b.length; --i >= 0; ) { +if (a[i] != b[i]) return false; +} +return true; +}, "~A,~A"); +c$.checkFileStart = Clazz.defineMethod(c$, "checkFileStart", +function(leader){ +for (var i = 0; i < J.adapter.smarter.Resolver.fileStartsWithRecords.length; ++i) { +var recordTags = J.adapter.smarter.Resolver.fileStartsWithRecords[i]; +for (var j = 1; j < recordTags.length; ++j) { +var recordTag = recordTags[j]; +if (leader.startsWith(recordTag)) return recordTags[0]; +} +} +return null; +}, "~S"); +c$.checkSpecial1 = Clazz.defineMethod(c$, "checkSpecial1", +function(nLines, lines, leader){ +if (nLines == 1 && lines[0].length > 0 && JU.PT.isDigit(lines[0].charAt(0))) return "Jme"; +if (J.adapter.smarter.Resolver.checkMopacGraphf(lines)) return "MopacGraphf"; +if (J.adapter.smarter.Resolver.checkOdyssey(lines)) return "Odyssey"; +switch (J.adapter.smarter.Resolver.checkMol(lines)) { +case 1: +case 3: +case 2000: +case 3000: +return "Mol"; +} +switch (J.adapter.smarter.Resolver.checkXyz(lines)) { +case 1: +return "Xyz"; +case 2: +return "Bilbao"; +case 3: +return "PWmat"; +} +if (J.adapter.smarter.Resolver.checkAlchemy(lines[0])) return "Alchemy"; +if (J.adapter.smarter.Resolver.checkFoldingXyz(lines)) return "FoldingXyz"; +if (J.adapter.smarter.Resolver.checkXSF(lines)) return "Xcrysden"; +if (J.adapter.smarter.Resolver.checkCube(lines)) return "Cube"; +if (J.adapter.smarter.Resolver.checkWien2k(lines)) return "Wien2k"; +if (J.adapter.smarter.Resolver.checkAims(lines)) return "Aims"; +if (J.adapter.smarter.Resolver.checkGenNBO(lines, leader)) return "GenNBO"; +return null; +}, "~N,~A,~S"); +c$.checkXSF = Clazz.defineMethod(c$, "checkXSF", +function(lines){ +var i = 0; +while (lines[i].length == 0) { +i++; +} +return (lines[i].startsWith("ANIMSTEPS ") || lines[i].equals("ATOMS\n") && JU.PT.parseInt(lines[i + 1]) > 0); +}, "~A"); +c$.checkAims = Clazz.defineMethod(c$, "checkAims", +function(lines){ +for (var i = 0; i < lines.length; i++) { +if (lines[i].startsWith("mol 1")) return false; +var tokens = JU.PT.getTokens(lines[i]); +if (tokens.length == 0) continue; +if (tokens[0].startsWith("atom") && tokens.length > 4 && Float.isNaN(JU.PT.parseFloat(tokens[4])) || tokens[0].startsWith("multipole") && tokens.length >= 6 || tokens[0].startsWith("lattice_vector") && tokens.length >= 4) return true; +} +return false; +}, "~A"); +c$.checkAlchemy = Clazz.defineMethod(c$, "checkAlchemy", +function(line){ +var pt; +if ((pt = line.indexOf("ATOMS")) > 0 && line.indexOf("BONDS") > pt) { +var n = JU.PT.parseInt(line.substring(0, pt).trim()); +return (n > 0); +}return false; +}, "~S"); +c$.isInt = Clazz.defineMethod(c$, "isInt", +function(s){ +J.adapter.smarter.Resolver.n[0] = 0; +s = s.trim(); +return s.length > 0 && JU.PT.parseIntNext(s, J.adapter.smarter.Resolver.n) != -2147483648 && J.adapter.smarter.Resolver.n[0] == s.length; +}, "~S"); +c$.isFloat = Clazz.defineMethod(c$, "isFloat", +function(s){ +return !Float.isNaN(JU.PT.parseFloat(s)); +}, "~S"); +c$.checkCube = Clazz.defineMethod(c$, "checkCube", +function(lines){ +for (var j = 2; j <= 5; j++) { +var tokens2 = new java.util.StringTokenizer(lines[j]); +var n = tokens2.countTokens(); +if (!(n == 4 || j == 2 && n == 5) || !J.adapter.smarter.Resolver.isInt(tokens2.nextToken())) return false; +for (var i = 3; --i >= 0; ) if (!J.adapter.smarter.Resolver.isFloat(tokens2.nextToken())) return false; + +if (n == 5 && !J.adapter.smarter.Resolver.isInt(tokens2.nextToken())) return false; +} +return true; +}, "~A"); +c$.checkFoldingXyz = Clazz.defineMethod(c$, "checkFoldingXyz", +function(lines){ +var tokens = new java.util.StringTokenizer(lines[0].trim(), " \t"); +if (tokens.countTokens() < 2 || !J.adapter.smarter.Resolver.isInt(tokens.nextToken().trim())) return false; +var secondLine = lines[1].trim(); +if (secondLine.length == 0) secondLine = lines[2].trim(); +tokens = new java.util.StringTokenizer(secondLine, " \t"); +return (tokens.countTokens() > 0 && J.adapter.smarter.Resolver.isInt(tokens.nextToken().trim())); +}, "~A"); +c$.checkGenNBO = Clazz.defineMethod(c$, "checkGenNBO", +function(lines, leader){ +return (leader.indexOf("$GENNBO") >= 0 || lines[1].startsWith(" Basis set information needed for plotting orbitals") || lines[1].indexOf("s in the AO basis:") >= 0 || lines[1].indexOf("***** NBO ") >= 0 || lines[2].indexOf(" N A T U R A L A T O M I C O R B I T A L") >= 0); +}, "~A,~S"); +c$.checkMol = Clazz.defineMethod(c$, "checkMol", +function(lines){ +var line4trimmed = ("X" + lines[3]).trim().toUpperCase(); +if (line4trimmed.length < 7 || line4trimmed.indexOf(".") >= 0 || lines[0].startsWith("data_")) return 0; +if (line4trimmed.endsWith("V2000")) return 2000; +if (line4trimmed.endsWith("V3000")) return 3000; +var n1 = JU.PT.parseInt(lines[3].substring(0, 3).trim()); +var n2 = JU.PT.parseInt(lines[3].substring(3, 6).trim()); +return (n1 > 0 && n2 >= 0 && lines[0].indexOf("@ ") != 0 && lines[1].indexOf("@ ") != 0 && lines[2].indexOf("@ ") != 0 ? 3 : 0); +}, "~A"); +c$.checkMopacGraphf = Clazz.defineMethod(c$, "checkMopacGraphf", +function(lines){ +return (lines[0].indexOf("MOPAC-Graphical data") > 2); +}, "~A"); +c$.checkOdyssey = Clazz.defineMethod(c$, "checkOdyssey", +function(lines){ +var i; +for (i = 0; i < lines.length; i++) if (!lines[i].startsWith("C ") && lines[i].length != 0) break; + +if (i >= lines.length || lines[i].charAt(0) != ' ' || (i = i + 2) + 1 >= lines.length) return false; +var l = lines[i]; +if (l.length < 3) return false; +var spin = JU.PT.parseInt(l.substring(2).trim()); +var charge = JU.PT.parseInt(l.substring(0, 2).trim()); +if ((l = lines[i + 1]).length < 2) return false; +var atom1 = JU.PT.parseInt(l.substring(0, 2).trim()); +if (spin < 0 || spin > 5 || atom1 <= 0 || charge == -2147483648 || charge > 5) return false; +var atomline = J.adapter.smarter.AtomSetCollectionReader.getTokensFloat(l, null, 5); +return !Float.isNaN(atomline[1]) && !Float.isNaN(atomline[2]) && !Float.isNaN(atomline[3]) && Float.isNaN(atomline[4]); +}, "~A"); +c$.checkWien2k = Clazz.defineMethod(c$, "checkWien2k", +function(lines){ +return (lines[2].startsWith("MODE OF CALC=") || lines[2].startsWith(" RELA") || lines[2].startsWith(" NREL")); +}, "~A"); +c$.checkXyz = Clazz.defineMethod(c$, "checkXyz", +function(lines){ +var checkPWM = false; +var i = JU.PT.parseInt(lines[0]); +if (i >= 0 && lines[0].trim().equals("" + i)) { +if (J.adapter.smarter.Resolver.isInt(lines[2])) return 2; +checkPWM = true; +}if (lines[0].indexOf("Bilbao Crys") >= 0) return 2; +var s; +if ((checkPWM || lines.length > 5 && i > 0) && ((s = lines[1].trim().toUpperCase()).startsWith("LATTICE VECTOR") || s.equals("LATTICE"))) return 3; +return (checkPWM ? 1 : 0); +}, "~A"); +c$.checkLineStarts = Clazz.defineMethod(c$, "checkLineStarts", +function(lines){ +for (var i = 0; i < J.adapter.smarter.Resolver.lineStartsWithRecords.length; ++i) { +var recordTags = J.adapter.smarter.Resolver.lineStartsWithRecords[i]; +for (var j = 1; j < recordTags.length; ++j) { +var recordTag = recordTags[j]; +for (var k = 0; k < lines.length; k++) { +if (lines[k].startsWith(recordTag)) return recordTags[0]; +} +} +} +return null; +}, "~A"); +c$.checkHeaderContains = Clazz.defineMethod(c$, "checkHeaderContains", +function(header){ +for (var i = 0; i < J.adapter.smarter.Resolver.headerContainsRecords.length; ++i) { +var fileType = J.adapter.smarter.Resolver.checkHeaderRecords(header, J.adapter.smarter.Resolver.headerContainsRecords[i]); +if (fileType != null) return fileType; +} +return null; +}, "~S"); +c$.checkJSONContains = Clazz.defineMethod(c$, "checkJSONContains", +function(header){ +for (var i = 0; i < J.adapter.smarter.Resolver.jsonContainsRecords.length; ++i) { +var fileType = J.adapter.smarter.Resolver.checkHeaderRecords(header, J.adapter.smarter.Resolver.jsonContainsRecords[i]); +if (fileType != null) return fileType; +} +return null; +}, "~S"); +c$.checkHeaderRecords = Clazz.defineMethod(c$, "checkHeaderRecords", +function(header, recordTags){ +for (var j = 1; j < recordTags.length; ++j) { +var recordTag = recordTags[j]; +if (header.indexOf(recordTag) < 0) continue; +var type = recordTags[0]; +if (!type.equals("Xml")) return type; +if (header.indexOf("/AFLOWDATA/") >= 0 || header.indexOf("-- Structure PRE --") >= 0) return "AFLOW"; +return (header.indexOf("= 0) ? J.adapter.smarter.Resolver.getXmlType(header) : null); +} +return null; +}, "~S,~A"); +c$.getXmlType = Clazz.defineMethod(c$, "getXmlType", +function(header){ +if (header.indexOf("http://www.molpro.net/") >= 0) { +return "XmlMolpro"; +}if (header.indexOf("odyssey") >= 0) { +return "XmlOdyssey"; +}if (header.indexOf("C3XML") >= 0) { +return "XmlChem3d"; +}if (header.indexOf("CDXML") >= 0) { +return "XmlCdx"; +}if (header.indexOf("arguslab") >= 0) { +return "XmlArgus"; +}if (header.indexOf("jvxl") >= 0 || header.indexOf("http://www.xml-cml.org/schema") >= 0 || header.indexOf("cml:") >= 0 || header.indexOf(" ") >= 0) { +return "XmlCml"; +}if (header.indexOf("XSD") >= 0) { +return "XmlXsd"; +}if (header.indexOf(">vasp") >= 0) { +return "XmlVasp"; +}if (header.indexOf(" ") >= 0) { +return "XmlQE"; +}return "XmlCml(unidentified)"; +}, "~S"); +c$.checkSpecial2 = Clazz.defineMethod(c$, "checkSpecial2", +function(lines){ +if (J.adapter.smarter.Resolver.checkGromacs(lines)) return "Gromacs"; +if (J.adapter.smarter.Resolver.checkCrystal(lines)) return "Crystal"; +if (J.adapter.smarter.Resolver.checkFAH(lines)) return "FAH"; +var s = J.adapter.smarter.Resolver.checkCastepVaspSiesta(lines); +if (s != null) return s; +return null; +}, "~A"); +c$.checkFAH = Clazz.defineMethod(c$, "checkFAH", +function(lines){ +var s = lines[0].trim() + lines[2].trim(); +return s.equals("{\"atoms\": ["); +}, "~A"); +c$.checkCrystal = Clazz.defineMethod(c$, "checkCrystal", +function(lines){ +var s = lines[1].trim(); +if (s.equals("SLAB") || s.equals("MOLECULE") || s.equals("CRYSTAL") || s.equals("POLYMER") || (s = lines[3]).equals("SLAB") || s.equals("MOLECULE") || s.equals("POLYMER")) return true; +for (var i = 0; i < lines.length; i++) { +if (lines[i].trim().equals("OPTGEOM") || lines[i].trim().equals("FREQCALC") || lines[i].contains("DOVESI") || lines[i].contains("TORINO") || lines[i].contains("http://www.crystal.unito.it") || lines[i].contains("Pcrystal") || lines[i].contains("MPPcrystal") || lines[i].contains("crystal executable")) return true; +} +return false; +}, "~A"); +c$.checkGromacs = Clazz.defineMethod(c$, "checkGromacs", +function(lines){ +if (JU.PT.parseInt(lines[1]) == -2147483648) return false; +var len = -1; +for (var i = 2; i < 16 && len != 0; i++) if ((len = lines[i].length) != 69 && len != 45 && len != 0) return false; + +return true; +}, "~A"); +c$.checkCastepVaspSiesta = Clazz.defineMethod(c$, "checkCastepVaspSiesta", +function(lines){ +for (var i = 0; i < lines.length; i++) { +var line = lines[i].toUpperCase(); +if (line.indexOf("FREQUENCIES IN CM-1") == 1 || line.contains("CASTEP") || line.startsWith("%BLOCK LATTICE_ABC") || line.startsWith("%BLOCK LATTICE_CART") || line.startsWith("%BLOCK POSITIONS_FRAC") || line.startsWith("%BLOCK POSITIONS_ABS") || line.contains("<-- E")) return "Castep"; +if (line.contains("%BLOCK")) return "Siesta"; +if (i >= 6 && i < 10 && (line.startsWith("DIRECT") || line.startsWith("CARTESIAN"))) return "VaspPoscar"; +} +return null; +}, "~A"); +c$.getFileTypefromFilter = Clazz.defineMethod(c$, "getFileTypefromFilter", +function(filter){ +var pt = (filter == null ? -1 : filter.toLowerCase().indexOf("filetype")); +return (pt < 0 ? null : filter.substring(pt + 8, (filter + ";").indexOf(";", pt)).$replace('=', ' ').trim()); +}, "~S"); +c$.fixDOSName = Clazz.defineMethod(c$, "fixDOSName", +function(fileName){ +return (fileName.indexOf(":\\") >= 0 ? fileName.$replace('\\', '/') : fileName); +}, "~S"); +c$.readerSets = Clazz.newArray(-1, ["cif.", ";Cif;Cif2;MMCif;MMTF;MagCif;BCIF;", "molxyz.", ";Mol3D;Mol;Xyz;", "more.", ";AFLOW;BinaryDcd;CDX;Gromacs;Jcampdx;MdCrd;MdTop;Mol2;TlsDataOnly;", "quantum.", ";Adf;Csf;Dgrid;GamessUK;GamessUS;Gaussian;GaussianFchk;GaussianWfn;Jaguar;Molden;MopacGraphf;GenNBO;NWChem;Psi;Qchem;QCJSON;WebMO;Orca;MO;Ams;", "pdb.", ";Pdb;Pqr;P2n;JmolData;", "pymol.", ";PyMOL;", "simple.", ";Alchemy;Ampac;Cube;FoldingXyz;GhemicalMM;HyperChem;Jme;JSON;Mopac;MopacArchive;Tinker;Input;FAH;", "spartan.", ";Spartan;SpartanSmol;Odyssey;", "xtal.", ";Abinit;Aims;Bilbao;Castep;Cgd;Crystal;Dmol;Espresso;Gulp;Jana;Magres;Shelx;Siesta;VaspOutcar;VaspPoscar;Wien2k;Xcrysden;PWmat;Optimade;Cmdf;", "xml.", ";XmlCdx;XmlArgus;XmlCml;XmlChem3d;XmlMolpro;XmlOdyssey;XmlXsd;XmlVasp;XmlQE;"]); +c$.cdxMagic = Clazz.newByteArray(-1, ['V', 'j', 'C', 'D']); +c$.cmdfMagic = Clazz.newByteArray(-1, ['C', 'M', 'D', 'F']); +c$.sptRecords = Clazz.newArray(-1, ["spt", "# Jmol state", "# Jmol script", "JmolManifest"]); +c$.m3dStartRecords = Clazz.newArray(-1, ["Alchemy", "STRUCTURE 1.00 1"]); +c$.cubeFileStartRecords = Clazz.newArray(-1, ["Cube", "JVXL", "#JVXL"]); +c$.mol2Records = Clazz.newArray(-1, ["Mol2", "mol2", "@ "]); +c$.webmoFileStartRecords = Clazz.newArray(-1, ["WebMO", "[HEADER]"]); +c$.moldenFileStartRecords = Clazz.newArray(-1, ["Molden", "[Molden", "MOLDEN", "[MOLDEN"]); +c$.dcdFileStartRecords = Clazz.newArray(-1, ["BinaryDcd", "T\0\0\0CORD", "\0\0\0TCORD"]); +c$.tlsDataOnlyFileStartRecords = Clazz.newArray(-1, ["TlsDataOnly", "REFMAC\n\nTL", "REFMAC\r\n\r\n", "REFMAC\r\rTL"]); +c$.inputFileStartRecords = Clazz.newArray(-1, ["Input", "#ZMATRIX", "%mem=", "AM1", "$rungauss"]); +c$.magresFileStartRecords = Clazz.newArray(-1, ["Magres", "#$magres", "# magres"]); +c$.pymolStartRecords = Clazz.newArray(-1, ["PyMOL", "}q"]); +c$.janaStartRecords = Clazz.newArray(-1, ["Jana", "Version Jana"]); +c$.jsonStartRecords = Clazz.newArray(-1, ["JSON", "{\"mol\":"]); +c$.jcampdxStartRecords = Clazz.newArray(-1, ["Jcampdx", "##TITLE"]); +c$.jmoldataStartRecords = Clazz.newArray(-1, ["JmolData", "REMARK 6 Jmol"]); +c$.pqrStartRecords = Clazz.newArray(-1, ["Pqr", "REMARK 1 PQR", "REMARK The B-factors"]); +c$.p2nStartRecords = Clazz.newArray(-1, ["P2n", "REMARK 1 P2N"]); +c$.cif2StartRecords = Clazz.newArray(-1, ["Cif2", "#\\#CIF_2", "\u00EF\u00BB\u00BF#\\#CIF_2"]); +c$.xmlStartRecords = Clazz.newArray(-1, ["Xml", "Bilbao Crystallographic Server<"]); +c$.xmlContainsRecords = Clazz.newArray(-1, ["Xml", "", " 0 && size <= 3 && f.startsWith("{")) { +var type = (f.contains("version\":\"DSSR") ? "dssr" : f.contains("/outliers/") ? "validation" : "domains"); +var x = vwr.parseJSONMap(f); +if (x != null) htParams.put(type, (type.equals("dssr") ? x : JS.SV.getVariableMap(x))); +continue; +}if (name.indexOf("|") >= 0) name = JU.PT.rep(name, "_", "/"); +if (i == 1) { +if (name.indexOf("/rna3dhub/") >= 0) { +s += "\n_rna3d \n;" + f + "\n;\n"; +continue; +}if (name.indexOf("/dssr/") >= 0) { +s += "\n_dssr \n;" + f + "\n;\n"; +continue; +}}s += f; +if (!s.endsWith("\n")) s += "\n"; +} +size = 1; +reader = JU.Rdr.getBR(s); +}var readers = (getReadersOnly ? new Array(size) : null); +var atomsets = (getReadersOnly ? null : new Array(size)); +var r = null; +for (var i = 0; i < size; i++) { +try { +htParams.put("vwr", vwr); +if (reader == null) reader = filesReader.getBufferedReaderOrBinaryDocument(i, false); +if (!(Clazz.instanceOf(reader,"java.io.BufferedReader") || Clazz.instanceOf(reader,"javajs.api.GenericBinaryDocument"))) return reader; +var fullPathName = names[i]; +htParams.put("fullPathName", fullPathName); +var ret = J.adapter.smarter.Resolver.getAtomCollectionReader(names[i], (types == null ? null : types[i]), reader, htParams, i); +if (!(Clazz.instanceOf(ret,"J.adapter.smarter.AtomSetCollectionReader"))) return ret; +r = ret; +r.setup(null, null, null); +if (r.isBinary) { +r.setup(names[i], htParams, filesReader.getBufferedReaderOrBinaryDocument(i, true)); +} else { +r.setup(names[i], htParams, reader); +}reader = null; +if (getReadersOnly) { +readers[i] = r; +} else { +ret = r.readData(); +if (!(Clazz.instanceOf(ret,"J.adapter.smarter.AtomSetCollection"))) return ret; +atomsets[i] = ret; +if (atomsets[i].errorMessage != null) return atomsets[i].errorMessage; +}} catch (e) { +JU.Logger.error("" + e); +e.printStackTrace(); +return "" + e; +} +} +if (getReadersOnly) return readers; +return this.getAtomSetCollectionFromSet(readers, atomsets, htParams); +}, "J.api.JmolFilesReaderInterface,~A,~A,java.util.Map,~B"); +Clazz.overrideMethod(c$, "getAtomSetCollectionFromSet", +function(readerSet, atomsets, htParams){ +var readers = readerSet; +var asc = (atomsets == null ? new Array(readers.length) : atomsets); +if (atomsets == null) { +for (var i = 0; i < readers.length; i++) { +if (readers[i] != null) try { +var ret = readers[i].readData(); +if (!(Clazz.instanceOf(ret,"J.adapter.smarter.AtomSetCollection"))) return ret; +asc[i] = ret; +if (asc[i].errorMessage != null) return asc[i].errorMessage; +} catch (e) { +JU.Logger.error("" + e); +return "" + e; +} +} +}var result; +if (htParams.containsKey("trajectorySteps")) { +result = asc[0]; +try { +if (asc.length > 1) asc[0].setInfo("ignoreUnitCell", asc[1].atomSetInfo.get("ignoreUnitCell")); +result.finalizeTrajectoryAs(htParams.get("trajectorySteps"), htParams.get("vibrationSteps")); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +if (result.errorMessage == null) result.errorMessage = "" + e; +} else { +throw e; +} +} +} else if (asc[0].isTrajectory) { +result = asc[0]; +for (var i = 1; i < asc.length; i++) asc[0].mergeTrajectories(asc[i]); + +} else { +result = (asc.length == 1 ? asc[0] : new J.adapter.smarter.AtomSetCollection("Array", null, asc, null)); +}return (result.errorMessage == null ? result : result.errorMessage); +}, "~O,~O,java.util.Map"); +Clazz.overrideMethod(c$, "getAtomSetCollectionFromDOM", +function(DOMNode, htParams){ +throw new UnsupportedOperationException(); +}, "~O,java.util.Map"); +Clazz.overrideMethod(c$, "finish", +function(asc){ +(asc).finish(); +}, "~O"); +Clazz.overrideMethod(c$, "getAtomSetCollectionName", +function(asc){ +return (asc).collectionName; +}, "~O"); +Clazz.overrideMethod(c$, "getAtomSetCollectionAuxiliaryInfo", +function(asc){ +return (asc).atomSetInfo; +}, "~O"); +Clazz.overrideMethod(c$, "getAtomSetCount", +function(asc){ +return (asc).atomSetCount; +}, "~O"); +Clazz.overrideMethod(c$, "getAtomSetNumber", +function(asc, atomSetIndex){ +return (asc).getAtomSetNumber(atomSetIndex); +}, "~O,~N"); +Clazz.overrideMethod(c$, "getAtomSetName", +function(asc, atomSetIndex){ +return (asc).getAtomSetName(atomSetIndex); +}, "~O,~N"); +Clazz.overrideMethod(c$, "getAtomSetAuxiliaryInfo", +function(asc, atomSetIndex){ +return (asc).getAtomSetAuxiliaryInfo(atomSetIndex); +}, "~O,~N"); +Clazz.overrideMethod(c$, "getHydrogenAtomCount", +function(asc){ +return (asc).getHydrogenAtomCount(); +}, "~O"); +Clazz.overrideMethod(c$, "getBondList", +function(asc){ +return (asc).getBondList(); +}, "~O"); +Clazz.overrideMethod(c$, "getAtomCount", +function(asc, atomSetIndex){ +var a = asc; +if (atomSetIndex < 0) return (a.bsAtoms == null ? a.ac : a.bsAtoms.cardinality()); +if (a.bsAtoms == null) return a.getAtomSetAtomCount(atomSetIndex); +var b = JU.BSUtil.copy(a.bsAtoms); +var i0 = a.getAtomSetAtomIndex(atomSetIndex); +b.and(JU.BSUtil.newBitSet2(i0, i0 + a.getAtomSetAtomCount(atomSetIndex))); +return b.cardinality(); +}, "~O,~N"); +Clazz.overrideMethod(c$, "coordinatesAreFractional", +function(asc){ +return (asc).coordinatesAreFractional; +}, "~O"); +Clazz.overrideMethod(c$, "getAtomIterator", +function(asc){ +return new J.adapter.smarter.AtomIterator(asc); +}, "~O"); +Clazz.overrideMethod(c$, "getBondIterator", +function(asc){ +return ((asc).bondCount == 0 ? null : new J.adapter.smarter.BondIterator(asc)); +}, "~O"); +Clazz.overrideMethod(c$, "getStructureIterator", +function(asc){ +return (asc).structureCount == 0 ? null : new J.adapter.smarter.StructureIterator(asc); +}, "~O"); +c$.close = Clazz.defineMethod(c$, "close", +function(bufferedReader){ +if (Clazz.instanceOf(bufferedReader,"java.io.BufferedReader")) (bufferedReader).close(); + else (bufferedReader).close(); +}, "~O"); +c$.PATH_SEPARATOR = System.getProperty("path.separator", "/"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Structure.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Structure.js new file mode 100755 index 000000000000..35228b9fc847 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/Structure.js @@ -0,0 +1,74 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.load(null, "J.adapter.smarter.Structure", ["J.c.STR"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.structureType = null; +this.substructureType = null; +this.structureID = null; +this.strandID = null; +this.strandCount = 0; +this.startSequenceNumber = 0; +this.startChainID = 0; +this.startInsertionCode = '\0'; +this.endSequenceNumber = 0; +this.endChainID = 0; +this.endInsertionCode = '\0'; +this.atomStartEnd = null; +this.modelStartEnd = null; +this.bsAll = null; +Clazz.instantialize(this, arguments);}, J.adapter.smarter, "Structure", null, Cloneable); +Clazz.prepareFields (c$, function(){ +this.atomStartEnd = Clazz.newIntArray (2, 0); +this.modelStartEnd = Clazz.newIntArray(-1, [-1, -1]); +}); +Clazz.makeConstructor(c$, +function(modelIndex, structureType, substructureType, structureID, strandID, strandCount, bsAll){ +if (bsAll != null) { +this.modelStartEnd = Clazz.newIntArray(-1, [0, modelIndex]); +this.bsAll = bsAll; +return; +}this.structureType = structureType; +this.substructureType = substructureType; +if (structureID == null) return; +this.modelStartEnd[0] = this.modelStartEnd[1] = modelIndex; +this.structureID = structureID; +this.strandCount = strandCount; +this.strandID = strandID; +}, "~N,J.c.STR,J.c.STR,~S,~S,~N,~A"); +c$.getHelixType = Clazz.defineMethod(c$, "getHelixType", +function(type){ +switch (type) { +case 1: +return J.c.STR.HELIXALPHA; +case 3: +return J.c.STR.HELIXPI; +case 5: +return J.c.STR.HELIX310; +} +return J.c.STR.HELIX; +}, "~N"); +Clazz.defineMethod(c$, "set", +function(startChainID, startSequenceNumber, startInsertionCode, endChainID, endSequenceNumber, endInsertionCode, istart, iend){ +this.startChainID = startChainID; +this.startSequenceNumber = startSequenceNumber; +this.startInsertionCode = startInsertionCode; +this.endChainID = endChainID; +this.endSequenceNumber = endSequenceNumber; +this.endInsertionCode = endInsertionCode; +this.atomStartEnd[0] = istart; +this.atomStartEnd[1] = iend; +}, "~N,~N,~S,~N,~N,~S,~N,~N"); +Clazz.defineMethod(c$, "clone", +function(){ +var s = null; +try { +s = Clazz.superCall(this, J.adapter.smarter.Structure, "clone", []); +} catch (e) { +if (Clazz.exceptionOf(e,"CloneNotSupportedException")){ +} else { +throw e; +} +} +return s; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/StructureIterator.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/StructureIterator.js new file mode 100755 index 000000000000..f14bf0331cd7 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/StructureIterator.js @@ -0,0 +1,85 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.load(["J.api.JmolAdapterStructureIterator"], "J.adapter.smarter.StructureIterator", ["J.api.JmolAdapter"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.structureCount = 0; +this.structures = null; +this.structure = null; +this.istructure = 0; +this.bsModelsDefined = null; +Clazz.instantialize(this, arguments);}, J.adapter.smarter, "StructureIterator", J.api.JmolAdapterStructureIterator); +Clazz.makeConstructor(c$, +function(asc){ +Clazz.superConstructor (this, J.adapter.smarter.StructureIterator, []); +this.structureCount = asc.structureCount; +this.structures = asc.structures; +this.istructure = 0; +this.bsModelsDefined = asc.bsStructuredModels; +}, "J.adapter.smarter.AtomSetCollection"); +Clazz.overrideMethod(c$, "hasNext", +function(){ +if (this.istructure == this.structureCount) return false; +this.structure = this.structures[this.istructure++]; +return true; +}); +Clazz.overrideMethod(c$, "getStructureType", +function(){ +return this.structure.structureType; +}); +Clazz.overrideMethod(c$, "getSubstructureType", +function(){ +return this.structure.substructureType; +}); +Clazz.overrideMethod(c$, "getStructureID", +function(){ +return this.structure.structureID; +}); +Clazz.overrideMethod(c$, "getStrandID", +function(){ +return this.structure.strandID; +}); +Clazz.overrideMethod(c$, "getStartChainID", +function(){ +return this.structure.startChainID; +}); +Clazz.overrideMethod(c$, "getStartSequenceNumber", +function(){ +return this.structure.startSequenceNumber; +}); +Clazz.overrideMethod(c$, "getStartInsertionCode", +function(){ +return J.api.JmolAdapter.canonizeInsertionCode(this.structure.startInsertionCode); +}); +Clazz.overrideMethod(c$, "getEndChainID", +function(){ +return this.structure.endChainID; +}); +Clazz.overrideMethod(c$, "getEndSequenceNumber", +function(){ +return this.structure.endSequenceNumber; +}); +Clazz.overrideMethod(c$, "getEndInsertionCode", +function(){ +return this.structure.endInsertionCode; +}); +Clazz.overrideMethod(c$, "getStrandCount", +function(){ +return this.structure.strandCount; +}); +Clazz.overrideMethod(c$, "getStructuredModels", +function(){ +return this.bsModelsDefined; +}); +Clazz.overrideMethod(c$, "getAtomIndices", +function(){ +return this.structure.atomStartEnd; +}); +Clazz.overrideMethod(c$, "getModelIndices", +function(){ +return this.structure.modelStartEnd; +}); +Clazz.overrideMethod(c$, "getBSAll", +function(){ +return this.structure.bsAll; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/XtalSymmetry.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/XtalSymmetry.js new file mode 100755 index 000000000000..ce3990a49d03 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/smarter/XtalSymmetry.js @@ -0,0 +1,1162 @@ +Clazz.declarePackage("J.adapter.smarter"); +Clazz.load(["JS.Symmetry", "JU.P3", "$.SB"], "J.adapter.smarter.XtalSymmetry", ["java.util.Hashtable", "JU.BS", "$.Lst", "$.M3", "$.M4", "$.P3i", "$.PT", "$.V3", "J.adapter.smarter.Atom", "JS.SpaceGroup", "$.SymmetryOperation", "$.UnitCell", "JU.BSUtil", "$.Logger", "$.SimpleUnitCell"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.acr = null; +this.applySymmetryToBonds = false; +this.asc = null; +this.baseSymmetry = null; +this.bondCount0 = 0; +this.bondsFound = null; +this.centroidPacked = false; +this.checkAll = false; +this.checkNearAtoms = false; +this.crystalReaderLatticeOpsOnly = false; +this.disorderMap = null; +this.disorderMapMax = 0; +this.doCentroidUnitCell = false; +this.doNormalize = true; +this.doPackUnitCell = false; +this.filterSymop = null; +this.firstAtom = 0; +this.latticeCells = null; +this.latticeOp = 0; +this.mident = null; +this.minXYZ = null; +this.maxXYZ = null; +this.minXYZ0 = null; +this.maxXYZ0 = null; +this.mTemp = null; +this.ndims = 3; +this.noSymmetryCount = 0; +this.nVib = 0; +this.packingRange = 0; +this.ptOffset = null; +this.ptTemp = null; +this.rminx = 0; +this.rminy = 0; +this.rminz = 0; +this.rmaxx = 0; +this.rmaxy = 0; +this.rmaxz = 0; +this.symmetry = null; +this.symmetryRange = 0; +this.trajectoryUnitCells = null; +this.unitCellParams = null; +this.unitCellTranslations = null; +Clazz.instantialize(this, arguments);}, J.adapter.smarter, "XtalSymmetry", null); +Clazz.prepareFields (c$, function(){ +this.bondsFound = new JU.SB(); +this.ptOffset = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.defineMethod(c$, "addRotatedTensor", +function(a, t, iSym, reset, symmetry){ +if (this.ptTemp == null) { +this.ptTemp = new JU.P3(); +this.mTemp = new JU.M3(); +}return a.addTensor((this.acr.getInterface("JU.Tensor")).setFromEigenVectors(symmetry.rotateAxes(iSym, t.eigenVectors, this.ptTemp, this.mTemp), t.eigenValues, t.isIsotropic ? "iso" : t.type, t.id, t), null, reset); +}, "J.adapter.smarter.Atom,JU.Tensor,~N,~B,J.adapter.smarter.XtalSymmetry.FileSymmetry"); +Clazz.defineMethod(c$, "applySymmetryBio", +function(thisBiomolecule, applySymmetryToBonds, filter){ +var biomts = thisBiomolecule.get("biomts"); +var len = biomts.size(); +if (this.mident == null) { +this.mident = new JU.M4(); +this.mident.setIdentity(); +}this.acr.lstNCS = null; +this.setLatticeCells(); +var lc = (this.latticeCells != null && this.latticeCells[0] != 0 ? Clazz.newIntArray (3, 0) : null); +if (lc != null) for (var i = 0; i < 3; i++) lc[i] = this.latticeCells[i]; + +this.latticeCells = null; +var bmChains = this.acr.getFilterWithCase("BMCHAINS"); +var fixBMChains = (bmChains == null ? -1 : bmChains.length < 2 ? 0 : JU.PT.parseInt(bmChains.substring(1))); +if (fixBMChains == -2147483648) { +fixBMChains = -(bmChains.charAt(1)).charCodeAt(0); +}var particleMode = (filter.indexOf("BYCHAIN") >= 0 ? 1 : filter.indexOf("BYSYMOP") >= 0 ? 2 : 0); +this.doNormalize = false; +var biomtchains = thisBiomolecule.get("chains"); +(this.symmetry = new J.adapter.smarter.XtalSymmetry.FileSymmetry()).setSpaceGroup(this.doNormalize); +this.addSpaceGroupOperation("x,y,z", false); +var name = thisBiomolecule.get("name"); +this.setAtomSetSpaceGroupName(this.acr.sgName = name); +this.applySymmetryToBonds = applySymmetryToBonds; +this.bondCount0 = this.asc.bondCount; +this.firstAtom = this.asc.getLastAtomSetAtomIndex(); +var atomMax = this.asc.ac; +var ht = new java.util.Hashtable(); +var nChain = 0; +var atoms = this.asc.atoms; +var addBonds = (this.bondCount0 > this.asc.bondIndex0 && applySymmetryToBonds); +switch (particleMode) { +case 1: +for (var i = atomMax; --i >= this.firstAtom; ) { +var id = Integer.$valueOf(atoms[i].chainID); +var bs = ht.get(id); +if (bs == null) { +nChain++; +ht.put(id, bs = new JU.BS()); +}bs.set(i); +} +this.asc.bsAtoms = new JU.BS(); +for (var i = 0; i < nChain; i++) { +this.asc.bsAtoms.set(atomMax + i); +var a = new J.adapter.smarter.Atom(); +a.set(0, 0, 0); +a.radius = 16; +this.asc.addAtom(a); +} +var ichain = 0; +for (var e, $e = ht.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var a = atoms[atomMax + ichain++]; +var bs = e.getValue(); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) a.add(atoms[i]); + +a.scale(1 / bs.cardinality()); +a.atomName = "Pt" + ichain; +a.chainID = e.getKey().intValue(); +} +this.firstAtom = atomMax; +atomMax += nChain; +addBonds = false; +break; +case 2: +this.asc.bsAtoms = new JU.BS(); +this.asc.bsAtoms.set(atomMax); +var a = atoms[atomMax] = new J.adapter.smarter.Atom(); +a.set(0, 0, 0); +for (var i = atomMax; --i >= this.firstAtom; ) a.add(atoms[i]); + +a.scale(1 / (atomMax - this.firstAtom)); +a.atomName = "Pt"; +a.radius = 16; +this.asc.addAtom(a); +this.firstAtom = atomMax++; +addBonds = false; +break; +} +var assemblyIdAtoms = thisBiomolecule.get("asemblyIdAtoms"); +if (filter.indexOf("#<") >= 0) { +len = Math.min(len, JU.PT.parseInt(filter.substring(filter.indexOf("#<") + 2)) - 1); +filter = JU.PT.rep(filter, "#<", "_<"); +}var maxChain = 0; +for (var iAtom = this.firstAtom; iAtom < atomMax; iAtom++) { +atoms[iAtom].bsSymmetry = new JU.BS(); +var chainID = atoms[iAtom].chainID; +if (chainID > maxChain) maxChain = chainID; +} +var bsAtoms = this.asc.bsAtoms; +var atomMap = (addBonds ? Clazz.newIntArray (this.asc.ac, 0) : null); +for (var imt = (biomtchains == null ? 1 : 0); imt < len; imt++) { +if (filter.indexOf("!#") >= 0) { +if (filter.indexOf("!#" + (imt + 1) + ";") >= 0) continue; +} else if (filter.indexOf("#") >= 0 && filter.indexOf("#" + (imt + 1) + ";") < 0) { +continue; +}var mat = biomts.get(imt); +var notIdentity = !mat.equals(this.mident); +var chains = (biomtchains == null ? null : biomtchains.get(imt)); +if (chains != null && assemblyIdAtoms != null) { +bsAtoms = new JU.BS(); +for (var e, $e = assemblyIdAtoms.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) if (chains.indexOf(":" + e.getKey() + ";") >= 0) bsAtoms.or(e.getValue()); + +if (this.asc.bsAtoms != null) bsAtoms.and(this.asc.bsAtoms); +chains = null; +}var lastID = -1; +var id; +var skipping = false; +for (var iAtom = this.firstAtom; iAtom < atomMax; iAtom++) { +if (bsAtoms != null) { +skipping = !bsAtoms.get(iAtom); +} else if (chains != null && (id = atoms[iAtom].chainID) != lastID) { +skipping = (chains.indexOf(":" + this.acr.vwr.getChainIDStr(lastID = id) + ";") < 0); +}if (skipping) continue; +try { +var atomSite = atoms[iAtom].atomSite; +var atom1; +if (addBonds) atomMap[atomSite] = this.asc.ac; +atom1 = this.asc.newCloneAtom(atoms[iAtom]); +atom1.bondingRadius = imt; +this.asc.atomSymbolicMap.put("" + atom1.atomSerial, atom1); +if (this.asc.bsAtoms != null) this.asc.bsAtoms.set(atom1.index); +atom1.atomSite = atomSite; +if (notIdentity) mat.rotTrans(atom1); +atom1.bsSymmetry = JU.BSUtil.newAndSetBit(imt); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +this.asc.errorMessage = "appendAtomCollection error: " + e; +} else { +throw e; +} +} +} +if (notIdentity) this.symmetry.addBioMoleculeOperation(mat, false); +if (addBonds) { +for (var bondNum = this.asc.bondIndex0; bondNum < this.bondCount0; bondNum++) { +var bond = this.asc.bonds[bondNum]; +var iAtom1 = atomMap[atoms[bond.atomIndex1].atomSite]; +var iAtom2 = atomMap[atoms[bond.atomIndex2].atomSite]; +this.asc.addNewBondWithOrder(iAtom1, iAtom2, bond.order); +} +}} +if (biomtchains != null) { +if (this.asc.bsAtoms == null) this.asc.bsAtoms = JU.BSUtil.newBitSet2(0, this.asc.ac); +this.asc.bsAtoms.clearBits(this.firstAtom, atomMax); +if (particleMode == 0) { +if (fixBMChains != -1) { +var assignABC = (fixBMChains != 0); +var bsChains = (assignABC ? new JU.BS() : null); +atoms = this.asc.atoms; +var firstNew = 0; +if (assignABC) { +firstNew = (fixBMChains < 0 ? Math.max(-fixBMChains, maxChain + 1) : Math.max(maxChain + fixBMChains, 65)); +bsChains.setBits(0, firstNew - 1); +bsChains.setBits(91, 97); +bsChains.setBits(123, 200); +}var bsAll = (this.asc.structureCount == 1 ? this.asc.structures[0].bsAll : null); +var chainMap = new java.util.Hashtable(); +var knownMap = new java.util.Hashtable(); +var knownAtomMap = (bsAll == null ? null : new java.util.Hashtable()); +var lastKnownAtom = null; +for (var i = atomMax, n = this.asc.ac; i < n; i++) { +var ic = atoms[i].chainID; +var isym = atoms[i].bsSymmetry.nextSetBit(0); +var ch0 = this.acr.vwr.getChainIDStr(ic); +var ch = (isym == 0 ? ch0 : ch0 + isym); +var known = chainMap.get(ch); +if (known == null) { +if (assignABC && isym != 0) { +var pt = (firstNew < 200 ? bsChains.nextClearBit(firstNew) : 200); +if (pt < 200) { +bsChains.set(pt); +known = Integer.$valueOf(this.acr.vwr.getChainID("" + String.fromCharCode(pt), true)); +firstNew = pt; +} else { +}}if (known == null) known = Integer.$valueOf(this.acr.vwr.getChainID(ch, true)); +if (ch !== ch0) { +knownMap.put(known, Integer.$valueOf(ic)); +if (bsAll != null) { +if (lastKnownAtom != null) lastKnownAtom[1] = i; +knownAtomMap.put(known, lastKnownAtom = Clazz.newIntArray(-1, [i, n])); +}}chainMap.put(ch, known); +}atoms[i].chainID = known.intValue(); +} +if (this.asc.structureCount > 0) { +var strucs = this.asc.structures; +var nStruc = this.asc.structureCount; +for (var e, $e = knownMap.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var known = e.getKey(); +var ch1 = known.intValue(); +var ch0 = e.getValue().intValue(); +for (var i = 0; i < nStruc; i++) { +var s = strucs[i]; +if (s.bsAll != null) { +} else if (s.startChainID == s.endChainID) { +if (s.startChainID == ch0) { +var s1 = s.clone(); +s1.startChainID = s1.endChainID = ch1; +this.asc.addStructure(s1); +}} else { +System.err.println("XtalSymmetry not processing biomt chain structure " + this.acr.vwr.getChainIDStr(ch0) + " to " + this.acr.vwr.getChainIDStr(ch1)); +}} +} +}}var vConnect = this.asc.getAtomSetAuxiliaryInfoValue(-1, "PDB_CONECT_bonds"); +if (!addBonds && vConnect != null) { +for (var i = vConnect.size(); --i >= 0; ) { +var bond = vConnect.get(i); +var a = this.asc.getAtomFromName("" + bond[0]); +var b = this.asc.getAtomFromName("" + bond[1]); +if (a != null && b != null && a.bondingRadius != b.bondingRadius && (bsAtoms == null || bsAtoms.get(a.index) && bsAtoms.get(b.index)) && a.distanceSquared(b) > 25.0) { +vConnect.removeItemAt(i); +System.out.println("long interchain bond removed for @" + a.atomSerial + "-@" + b.atomSerial); +}} +}}for (var i = atomMax, n = this.asc.ac; i < n; i++) { +this.asc.atoms[i].bondingRadius = NaN; +} +}this.noSymmetryCount = atomMax - this.firstAtom; +this.finalizeSymmetry(this.symmetry); +this.setCurrentModelInfo(len, null, null); +this.reset(); +}, "java.util.Map,~B,~S"); +Clazz.defineMethod(c$, "getBaseSymmetry", +function(){ +return (this.baseSymmetry == null ? this.symmetry : this.baseSymmetry); +}); +Clazz.defineMethod(c$, "getOverallSpan", +function(){ +return (this.maxXYZ0 == null ? JU.V3.new3(this.maxXYZ.x - this.minXYZ.x, this.maxXYZ.y - this.minXYZ.y, this.maxXYZ.z - this.minXYZ.z) : JU.V3.newVsub(this.maxXYZ0, this.minXYZ0)); +}); +Clazz.defineMethod(c$, "getSymmetry", +function(){ +return (this.symmetry == null ? (this.symmetry = new J.adapter.smarter.XtalSymmetry.FileSymmetry()) : this.symmetry); +}); +Clazz.defineMethod(c$, "isWithinCell", +function(ndims, pt, minX, maxX, minY, maxY, minZ, maxZ, slop){ +return (pt.x > minX - slop && pt.x < maxX + slop && (ndims < 2 || pt.y > minY - slop && pt.y < maxY + slop) && (ndims < 3 || pt.z > minZ - slop && pt.z < maxZ + slop)); +}, "~N,JU.P3,~N,~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "scaleFractionalVibs", +function(){ +var params = this.acr.unitCellParams; +var ptScale = JU.P3.new3(1 / params[0], 1 / params[1], 1 / params[2]); +var i0 = this.asc.getAtomSetAtomIndex(this.asc.iSet); +for (var i = this.asc.ac; --i >= i0; ) { +var v = this.asc.atoms[i].vib; +if (v != null) { +v.scaleT(ptScale); +}} +}); +Clazz.defineMethod(c$, "set", +function(reader){ +this.acr = reader; +this.asc = reader.asc; +this.getSymmetry(); +return this; +}, "J.adapter.smarter.AtomSetCollectionReader"); +Clazz.defineMethod(c$, "setLatticeParameter", +function(latt){ +this.symmetry.setSpaceGroup(this.doNormalize); +this.symmetry.setLattice(latt); +}, "~N"); +Clazz.defineMethod(c$, "setSpinVectors", +function(){ +if (this.nVib > 0 || this.asc.iSet < 0 || !this.acr.vibsFractional) return this.nVib; +var i0 = this.asc.getAtomSetAtomIndex(this.asc.iSet); +var sym = this.getBaseSymmetry(); +for (var i = this.asc.ac; --i >= i0; ) { +var v = this.asc.atoms[i].vib; +if (v != null) { +if (v.modDim > 0) { +(v).setMoment(); +} else { +v = v.clone(); +sym.toCartesian(v, true); +this.asc.atoms[i].vib = v; +}this.nVib++; +}} +return this.nVib; +}); +Clazz.defineMethod(c$, "addSpaceGroupOperation", +function(xyz, andSetLattice){ +this.symmetry.setSpaceGroup(this.doNormalize); +if (andSetLattice && this.symmetry.getSpaceGroupOperationCount() == 1) this.setLatticeCells(); +return this.symmetry.addSpaceGroupOperation(xyz, 0); +}, "~S,~B"); +Clazz.defineMethod(c$, "applySymmetryFromReader", +function(readerSymmetry){ +this.asc.setCoordinatesAreFractional(this.acr.iHaveFractionalCoordinates); +this.setAtomSetSpaceGroupName(this.acr.sgName); +this.symmetryRange = this.acr.symmetryRange; +this.asc.setInfo("symmetryRange", Float.$valueOf(this.symmetryRange)); +if (this.acr.doConvertToFractional || this.acr.fileCoordinatesAreFractional) { +this.setLatticeCells(); +var doApplySymmetry = true; +if (this.acr.ignoreFileSpaceGroupName || !this.acr.iHaveSymmetryOperators) { +if (this.acr.unitCellParams[0] == 0 && this.acr.unitCellParams[2] == 0) { +JU.SimpleUnitCell.fillParams(null, null, null, this.acr.unitCellParams); +}if (!this.acr.merging || readerSymmetry == null) readerSymmetry = new J.adapter.smarter.XtalSymmetry.FileSymmetry(); +doApplySymmetry = readerSymmetry.createSpaceGroup(this.acr.desiredSpaceGroupIndex, (this.acr.sgName.indexOf("!") >= 0 ? "P1" : this.acr.sgName), this.acr.unitCellParams, this.acr.modDim); +} else { +this.acr.doPreSymmetry(); +readerSymmetry = null; +}this.packingRange = this.acr.getPackingRangeValue(0); +if (doApplySymmetry) { +if (readerSymmetry != null) this.getSymmetry().setSpaceGroupTo(readerSymmetry.getSpaceGroup()); +this.applySymmetryLattice(); +if (readerSymmetry != null && this.filterSymop == null) this.setAtomSetSpaceGroupName(readerSymmetry.getSpaceGroupName()); +} else { +this.setUnitCellSafely(); +}}if (this.acr.iHaveFractionalCoordinates && this.acr.merging && readerSymmetry != null) { +var atoms = this.asc.atoms; +for (var i = this.asc.getLastAtomSetAtomIndex(), n = this.asc.ac; i < n; i++) readerSymmetry.toCartesian(atoms[i], true); + +this.asc.setCoordinatesAreFractional(false); +this.acr.addVibrations = false; +}return this.symmetry; +}, "J.adapter.smarter.XtalSymmetry.FileSymmetry"); +Clazz.defineMethod(c$, "setSymmetry", +function(symmetry){ +return (this.symmetry = symmetry); +}, "J.adapter.smarter.XtalSymmetry.FileSymmetry"); +Clazz.defineMethod(c$, "setTensors", +function(){ +var n = this.asc.ac; +for (var i = this.asc.getLastAtomSetAtomIndex(); i < n; i++) { +var a = this.asc.atoms[i]; +if (a.anisoBorU == null) continue; +a.addTensor(this.symmetry.getTensor(this.acr.vwr, a.anisoBorU), null, false); +if (Float.isNaN(a.bfactor)) a.bfactor = a.anisoBorU[7] * 100; +a.anisoBorU = null; +} +}); +Clazz.defineMethod(c$, "adjustRangeMinMax", +function(oabc){ +var pa = new JU.P3(); +var pb = new JU.P3(); +var pc = new JU.P3(); +if (this.acr.forcePacked) { +pa.setT(oabc[1]); +pb.setT(oabc[2]); +pc.setT(oabc[3]); +pa.scale(this.packingRange); +pb.scale(this.packingRange); +pc.scale(this.packingRange); +}oabc[0].scaleAdd2(this.minXYZ.x, oabc[1], oabc[0]); +oabc[0].scaleAdd2(this.minXYZ.y, oabc[2], oabc[0]); +oabc[0].scaleAdd2(this.minXYZ.z, oabc[3], oabc[0]); +oabc[0].sub(pa); +oabc[0].sub(pb); +oabc[0].sub(pc); +var pt = JU.P3.newP(oabc[0]); +this.symmetry.toFractional(pt, true); +this.setSymmetryMinMax(pt); +oabc[1].scale(this.maxXYZ.x - this.minXYZ.x); +oabc[2].scale(this.maxXYZ.y - this.minXYZ.y); +oabc[3].scale(this.maxXYZ.z - this.minXYZ.z); +oabc[1].scaleAdd2(2, pa, oabc[1]); +oabc[2].scaleAdd2(2, pb, oabc[2]); +oabc[3].scaleAdd2(2, pc, oabc[3]); +for (var i = 0; i < 3; i++) { +for (var j = i + 1; j < 4; j++) { +pt.add2(oabc[i], oabc[j]); +if (i != 0) pt.add(oabc[0]); +this.symmetry.toFractional(pt, false); +this.setSymmetryMinMax(pt); +} +} +this.symmetry.toCartesian(pt, false); +pt.add(oabc[1]); +this.symmetry.toFractional(pt, false); +this.setSymmetryMinMax(pt); +this.minXYZ = JU.P3i.new3(Clazz.doubleToInt(Math.min(0, Math.floor(this.rminx + 0.001))), Clazz.doubleToInt(Math.min(0, Math.floor(this.rminy + 0.001))), Clazz.doubleToInt(Math.min(0, Math.floor(this.rminz + 0.001)))); +this.maxXYZ = JU.P3i.new3(Clazz.doubleToInt(Math.max(1, Math.ceil(this.rmaxx - 0.001))), Clazz.doubleToInt(Math.max(1, Math.ceil(this.rmaxy - 0.001))), Clazz.doubleToInt(Math.max(1, Math.ceil(this.rmaxz - 0.001)))); +}, "~A"); +Clazz.defineMethod(c$, "applyAllSymmetry", +function(ms, bsAtoms){ +if (this.asc.ac == 0 || bsAtoms != null && bsAtoms.isEmpty()) return; +var n = this.noSymmetryCount = this.asc.baseSymmetryAtomCount > 0 ? this.asc.baseSymmetryAtomCount : bsAtoms == null ? this.asc.getLastAtomSetAtomCount() : this.asc.ac - bsAtoms.nextSetBit(this.asc.getLastAtomSetAtomIndex()); +this.asc.setTensors(); +this.applySymmetryToBonds = this.acr.applySymmetryToBonds; +this.doPackUnitCell = this.acr.doPackUnitCell && !this.applySymmetryToBonds; +this.bondCount0 = this.asc.bondCount; +this.ndims = JU.SimpleUnitCell.getDimensionFromParams(this.acr.unitCellParams); +this.finalizeSymmetry(this.symmetry); +var operationCount = this.symmetry.getSpaceGroupOperationCount(); +var excludedOps = (this.acr.thisBiomolecule == null ? null : new JU.BS()); +this.checkNearAtoms = this.acr.checkNearAtoms || excludedOps != null; +JU.SimpleUnitCell.setMinMaxLatticeParameters(this.ndims, this.minXYZ, this.maxXYZ, 0); +this.latticeOp = this.symmetry.getLatticeOp(); +this.crystalReaderLatticeOpsOnly = (this.asc.crystalReaderLatticeOpsOnly && this.latticeOp >= 0); +if (this.doCentroidUnitCell) this.asc.setInfo("centroidMinMax", Clazz.newIntArray(-1, [this.minXYZ.x, this.minXYZ.y, this.minXYZ.z, this.maxXYZ.x, this.maxXYZ.y, this.maxXYZ.z, (this.centroidPacked ? 1 : 0)])); +if (this.doCentroidUnitCell || this.acr.doPackUnitCell || this.symmetryRange != 0 && this.maxXYZ.x - this.minXYZ.x == 1 && this.maxXYZ.y - this.minXYZ.y == 1 && this.maxXYZ.z - this.minXYZ.z == 1) { +this.minXYZ0 = JU.P3.new3(this.minXYZ.x, this.minXYZ.y, this.minXYZ.z); +this.maxXYZ0 = JU.P3.new3(this.maxXYZ.x, this.maxXYZ.y, this.maxXYZ.z); +if (ms != null) { +ms.setMinMax0(this.minXYZ0, this.maxXYZ0); +this.minXYZ.set(Clazz.floatToInt(this.minXYZ0.x), Clazz.floatToInt(this.minXYZ0.y), Clazz.floatToInt(this.minXYZ0.z)); +this.maxXYZ.set(Clazz.floatToInt(this.maxXYZ0.x), Clazz.floatToInt(this.maxXYZ0.y), Clazz.floatToInt(this.maxXYZ0.z)); +}switch (this.ndims) { +case 3: +this.minXYZ.z--; +this.maxXYZ.z++; +case 2: +this.minXYZ.y--; +this.maxXYZ.y++; +case 1: +this.minXYZ.x--; +this.maxXYZ.x++; +} +}var nCells = (this.maxXYZ.x - this.minXYZ.x) * (this.maxXYZ.y - this.minXYZ.y) * (this.maxXYZ.z - this.minXYZ.z); +var nsym = n * (this.crystalReaderLatticeOpsOnly ? 4 : operationCount); +var cartesianCount = (this.checkNearAtoms || this.acr.thisBiomolecule != null ? nsym * nCells : this.symmetryRange > 0 ? nsym : 1); +var cartesians = new Array(cartesianCount); +var atoms = this.asc.atoms; +for (var i = 0; i < n; i++) atoms[this.firstAtom + i].bsSymmetry = JU.BS.newN(operationCount * (nCells + 1)); + +var pt = 0; +this.unitCellTranslations = new Array(nCells); +var iCell = 0; +var cell555Count = 0; +var absRange = Math.abs(this.symmetryRange); +var checkCartesianRange = (this.symmetryRange != 0); +var checkRangeNoSymmetry = (this.symmetryRange < 0); +var checkRange111 = (this.symmetryRange > 0); +if (checkCartesianRange) { +this.rminx = this.rminy = this.rminz = 3.4028235E38; +this.rmaxx = this.rmaxy = this.rmaxz = -3.4028235E38; +}var sym = this.symmetry; +var lastSymmetry = sym; +this.checkAll = (this.crystalReaderLatticeOpsOnly || this.asc.atomSetCount == 1 && this.checkNearAtoms && this.latticeOp >= 0); +var lstNCS = this.acr.lstNCS; +if (lstNCS != null && lstNCS.get(0).m33 == 0) { +var nOp = sym.getSpaceGroupOperationCount(); +var nn = lstNCS.size(); +for (var i = nn; --i >= 0; ) { +var m = lstNCS.get(i); +m.m33 = 1; +sym.toFractionalM(m); +} +for (var i = 1; i < nOp; i++) { +var m1 = sym.getSpaceGroupOperation(i); +for (var j = 0; j < nn; j++) { +var m = JU.M4.newM4(lstNCS.get(j)); +m.mul2(m1, m); +if (this.doNormalize && this.noSymmetryCount > 0) JS.SymmetryOperation.normalizeOperationToCentroid(3, m, atoms, this.firstAtom, this.noSymmetryCount); +lstNCS.addLast(m); +} +} +}var pttemp = null; +var op = sym.getSpaceGroupOperation(0); +if (this.doPackUnitCell) { +pttemp = new JU.P3(); +this.ptOffset.set(0, 0, 0); +}var atomMap = (this.bondCount0 > this.asc.bondIndex0 && this.applySymmetryToBonds ? Clazz.newIntArray (n, 0) : null); +var unitCells = Clazz.newIntArray (nCells, 0); +for (var tx = this.minXYZ.x; tx < this.maxXYZ.x; tx++) { +for (var ty = this.minXYZ.y; ty < this.maxXYZ.y; ty++) { +for (var tz = this.minXYZ.z; tz < this.maxXYZ.z; tz++) { +this.unitCellTranslations[iCell] = JU.V3.new3(tx, ty, tz); +unitCells[iCell++] = 555 + tx * 100 + ty * 10 + tz; +if (tx != 0 || ty != 0 || tz != 0 || cartesians.length == 0) continue; +for (pt = 0; pt < n; pt++) { +var atom = atoms[this.firstAtom + pt]; +if (ms != null) { +sym = ms.getAtomSymmetry(atom, this.symmetry); +if (sym !== lastSymmetry) { +if (sym.getSpaceGroupOperationCount() == 0) this.finalizeSymmetry(lastSymmetry = sym); +op = sym.getSpaceGroupOperation(0); +}}var c = JU.P3.newP(atom); +op.rotTrans(c); +sym.toCartesian(c, false); +if (this.doPackUnitCell) { +sym.toUnitCellRnd(c, this.ptOffset); +pttemp.setT(c); +sym.toFractional(pttemp, false); +this.acr.fixFloatPt(pttemp, 100000.0); +if (bsAtoms == null) atom.setT(pttemp); + else if (atom.distance(pttemp) < 1.0E-4) bsAtoms.set(atom.index); + else { +bsAtoms.clear(atom.index); +continue; +}}if (bsAtoms != null) atom.bsSymmetry.clearAll(); +atom.bsSymmetry.set(iCell * operationCount); +atom.bsSymmetry.set(0); +if (checkCartesianRange) this.setSymmetryMinMax(c); +if (pt < cartesianCount) cartesians[pt] = c; +} +if (checkRangeNoSymmetry) { +this.rminx -= absRange; +this.rminy -= absRange; +this.rminz -= absRange; +this.rmaxx += absRange; +this.rmaxy += absRange; +this.rmaxz += absRange; +}cell555Count = pt = this.symmetryAddAtoms(0, 0, 0, 0, pt, iCell * operationCount, cartesians, ms, excludedOps, atomMap); +} +} +} +if (checkRange111) { +this.rminx -= absRange; +this.rminy -= absRange; +this.rminz -= absRange; +this.rmaxx += absRange; +this.rmaxy += absRange; +this.rmaxz += absRange; +}iCell = 0; +for (var tx = this.minXYZ.x; tx < this.maxXYZ.x; tx++) { +for (var ty = this.minXYZ.y; ty < this.maxXYZ.y; ty++) { +for (var tz = this.minXYZ.z; tz < this.maxXYZ.z; tz++) { +iCell++; +if (tx != 0 || ty != 0 || tz != 0) pt = this.symmetryAddAtoms(tx, ty, tz, cell555Count, pt, iCell * operationCount, cartesians, ms, excludedOps, atomMap); +} +} +} +if (iCell * n == this.asc.ac - this.firstAtom) this.duplicateAtomProperties(iCell); +this.setCurrentModelInfo(n, sym, unitCells); +this.unitCellParams = null; +this.reset(); +}, "J.adapter.smarter.MSInterface,JU.BS"); +Clazz.defineMethod(c$, "applyRangeSymmetry", +function(bsAtoms){ +var range = this.acr.fillRange; +bsAtoms = this.updateBSAtoms(); +this.acr.forcePacked = true; +this.doPackUnitCell = false; +var minXYZ2 = JU.P3i.new3(this.minXYZ.x, this.minXYZ.y, this.minXYZ.z); +var maxXYZ2 = JU.P3i.new3(this.maxXYZ.x, this.maxXYZ.y, this.maxXYZ.z); +var oabc = new Array(4); +for (var i = 0; i < 4; i++) oabc[i] = JU.P3.newP(range[i]); + +this.setUnitCellSafely(); +this.adjustRangeMinMax(oabc); +var superSymmetry = new J.adapter.smarter.XtalSymmetry.FileSymmetry(); +superSymmetry.getUnitCell(this.acr.fillRange, false, null); +this.applyAllSymmetry(this.acr.ms, bsAtoms); +var pt0 = new JU.P3(); +var atoms = this.asc.atoms; +for (var i = this.asc.ac; --i >= this.firstAtom; ) { +pt0.setT(atoms[i]); +this.symmetry.toCartesian(pt0, false); +superSymmetry.toFractional(pt0, false); +if (this.acr.noPack ? !this.removePacking(this.ndims, pt0, minXYZ2.x, maxXYZ2.x, minXYZ2.y, maxXYZ2.y, minXYZ2.z, maxXYZ2.z, this.packingRange) : !this.isWithinCell(this.ndims, pt0, minXYZ2.x, maxXYZ2.x, minXYZ2.y, maxXYZ2.y, minXYZ2.z, maxXYZ2.z, this.packingRange)) bsAtoms.clear(i); +} +}, "JU.BS"); +Clazz.defineMethod(c$, "applySuperSymmetry", +function(supercell, bsAtoms, iAtomFirst, oabc, pt0, vabc, slop){ +this.asc.setGlobalBoolean(7); +var doPack0 = this.doPackUnitCell; +this.doPackUnitCell = doPack0; +this.applyAllSymmetry(this.acr.ms, null); +this.doPackUnitCell = doPack0; +var atoms = this.asc.atoms; +var atomCount = this.asc.ac; +for (var i = iAtomFirst; i < atomCount; i++) { +this.symmetry.toCartesian(atoms[i], true); +bsAtoms.set(i); +} +this.asc.setCurrentModelInfo("unitcell_conventional", this.symmetry.getV0abc("a,b,c", null)); +var va = vabc[0]; +var vb = vabc[1]; +var vc = vabc[2]; +this.symmetry = new J.adapter.smarter.XtalSymmetry.FileSymmetry(); +this.setUnitCell( Clazz.newFloatArray(-1, [0, 0, 0, 0, 0, 0, va.x, va.y, va.z, vb.x, vb.y, vb.z, vc.x, vc.y, vc.z, 0, 0, 0, 0, 0, 0, NaN, NaN, NaN, NaN, NaN, slop]), null, null); +var name = oabc == null || supercell == null ? "P1" : "cell=" + supercell; +this.setAtomSetSpaceGroupName(name); +this.symmetry.setSpaceGroupName(name); +this.symmetry.setSpaceGroup(this.doNormalize); +this.symmetry.addSpaceGroupOperation("x,y,z", 0); +if (pt0 != null && pt0.length() == 0) pt0 = null; +if (pt0 != null) this.symmetry.toFractional(pt0, true); +for (var i = iAtomFirst; i < atomCount; i++) { +this.symmetry.toFractional(atoms[i], true); +if (pt0 != null) atoms[i].sub(pt0); +} +this.asc.haveAnisou = false; +this.asc.setCurrentModelInfo("matUnitCellOrientation", null); +}, "~S,JU.BS,~N,~A,JU.P3,~A,~N"); +Clazz.defineMethod(c$, "applySymmetryLattice", +function(){ +if (!this.asc.coordinatesAreFractional || this.symmetry.getSpaceGroup() == null) return; +var maxX = this.latticeCells[0]; +var maxY = this.latticeCells[1]; +var maxZ = Math.abs(this.latticeCells[2]); +var kcode = this.latticeCells[3]; +this.firstAtom = this.asc.getLastAtomSetAtomIndex(); +var bsAtoms = this.asc.bsAtoms; +if (bsAtoms != null) { +this.updateBSAtoms(); +this.firstAtom = bsAtoms.nextSetBit(this.firstAtom); +}this.rminx = this.rminy = this.rminz = 3.4028235E38; +this.rmaxx = this.rmaxy = this.rmaxz = -3.4028235E38; +if (this.acr.latticeType == null) this.acr.latticeType = "" + this.symmetry.getLatticeType(); +if (this.acr.isPrimitive) { +this.asc.setCurrentModelInfo("isprimitive", Boolean.TRUE); +if (!"P".equals(this.acr.latticeType) || this.acr.primitiveToCrystal != null) { +this.asc.setCurrentModelInfo("unitcell_conventional", this.symmetry.getConventionalUnitCell(this.acr.latticeType, this.acr.primitiveToCrystal)); +}}this.setUnitCellSafely(); +this.asc.setCurrentModelInfo("f2c", this.symmetry.getUnitCellF2C()); +var s = this.symmetry.getSpaceGroupTitle(); +if (s.indexOf("--") < 0) this.asc.setCurrentModelInfo("f2cTitle", s); +this.asc.setCurrentModelInfo("f2cParams", this.symmetry.getUnitCellParams()); +if (this.acr.latticeType != null) { +this.asc.setCurrentModelInfo("latticeType", this.acr.latticeType); +if ((typeof(this.acr.fillRange)=='string')) { +var range = this.setLatticeRange(this.acr.latticeType, this.acr.fillRange); +if (range == null) { +this.acr.appendLoadNote(this.acr.fillRange + " symmetry could not be implemented"); +this.acr.fillRange = null; +} else { +this.acr.fillRange = range; +}}}this.baseSymmetry = this.symmetry; +if (this.acr.fillRange != null) { +this.setMinMax(this.ndims, kcode, maxX, maxY, maxZ); +this.applyRangeSymmetry(bsAtoms); +return; +}var oabc = null; +var slop = 1e-6; +this.nVib = 0; +var supercell = this.acr.strSupercell; +var isSuper = (supercell != null && supercell.indexOf(",") >= 0); +var matSuper = null; +var pt0 = null; +var vabc = new Array(3); +if (isSuper) { +matSuper = new JU.M4(); +if (this.mident == null) this.mident = new JU.M4(); +this.setUnitCellSafely(); +oabc = this.symmetry.getV0abc(supercell, matSuper); +matSuper.transpose33(); +if (oabc != null && !matSuper.equals(this.mident)) { +this.setMinMax(this.ndims, kcode, maxX, maxY, maxZ); +pt0 = JU.P3.newP(oabc[0]); +vabc[0] = JU.V3.newV(oabc[1]); +vabc[1] = JU.V3.newV(oabc[2]); +vabc[2] = JU.V3.newV(oabc[3]); +this.adjustRangeMinMax(oabc); +}}var iAtomFirst = this.asc.getLastAtomSetAtomIndex(); +if (bsAtoms != null) iAtomFirst = bsAtoms.nextSetBit(iAtomFirst); +if (this.rminx == 3.4028235E38) { +supercell = null; +oabc = null; +} else { +bsAtoms = this.updateBSAtoms(); +slop = this.symmetry.getPrecision(); +this.applySuperSymmetry(supercell, bsAtoms, iAtomFirst, oabc, pt0, vabc, slop); +}this.setMinMax(this.ndims, kcode, maxX, maxY, maxZ); +if (oabc == null) { +this.applyAllSymmetry(this.acr.ms, bsAtoms); +if (!this.acr.noPack && (!this.applySymmetryToBonds || !this.acr.doPackUnitCell)) { +return; +}this.setMinMax(this.ndims, kcode, maxX, maxY, maxZ); +}if (this.acr.forcePacked || this.acr.doPackUnitCell || this.acr.noPack) { +this.trimToUnitCell(iAtomFirst); +}this.updateSupercellAtomSites(matSuper, bsAtoms, slop); +}); +Clazz.defineMethod(c$, "duplicateAtomProperties", +function(nTimes){ +var p = this.asc.getAtomSetAuxiliaryInfoValue(-1, "atomProperties"); +if (p != null) for (var entry, $entry = p.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +var key = entry.getKey(); +var val = entry.getValue(); +if ((typeof(val)=='string')) { +var data = val; +var s = new JU.SB(); +for (var i = nTimes; --i >= 0; ) s.append(data); + +p.put(key, s.toString()); +} else { +var f = val; +var fnew = Clazz.newFloatArray (f.length * nTimes, 0); +for (var i = nTimes; --i >= 0; ) System.arraycopy(f, 0, fnew, i * f.length, f.length); + +}} +}, "~N"); +Clazz.defineMethod(c$, "finalizeSymmetry", +function(symmetry){ +var name = this.asc.getAtomSetAuxiliaryInfoValue(-1, "spaceGroup"); +symmetry.setFinalOperations(this.ndims, name, this.asc.atoms, this.firstAtom, this.noSymmetryCount, this.doNormalize, this.filterSymop); +if (this.filterSymop != null || name == null || name.equals("unspecified!")) { +this.setAtomSetSpaceGroupName(symmetry.getSpaceGroupName()); +}if (this.unitCellParams != null || Float.isNaN(this.acr.unitCellParams[0])) return; +if (symmetry.fixUnitCell(this.acr.unitCellParams)) { +this.acr.appendLoadNote("Unit cell parameters were adjusted to match space group!"); +}this.setUnitCellSafely(); +}, "J.adapter.smarter.XtalSymmetry.FileSymmetry"); +Clazz.defineMethod(c$, "removePacking", +function(ndims, pt, minX, maxX, minY, maxY, minZ, maxZ, slop){ +return (pt.x > minX - slop && pt.x < maxX - slop && (ndims < 2 || pt.y > minY - slop && pt.y < maxY - slop) && (ndims < 3 || pt.z > minZ - slop && pt.z < maxZ - slop)); +}, "~N,JU.P3,~N,~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "reset", +function(){ +this.asc.coordinatesAreFractional = false; +this.asc.setCurrentModelInfo("hasSymmetry", Boolean.TRUE); +this.asc.setGlobalBoolean(1); +}); +Clazz.defineMethod(c$, "setAtomSetSpaceGroupName", +function(spaceGroupName){ +this.symmetry.setSpaceGroupName(spaceGroupName); +this.asc.setCurrentModelInfo("spaceGroup", spaceGroupName + ""); +}, "~S"); +Clazz.defineMethod(c$, "setCurrentModelInfo", +function(n, sym, unitCells){ +if (sym == null) { +this.asc.setCurrentModelInfo("presymmetryAtomCount", Integer.$valueOf(this.noSymmetryCount)); +this.asc.setCurrentModelInfo("biosymmetryCount", Integer.$valueOf(n)); +this.asc.setCurrentModelInfo("biosymmetry", this.symmetry); +} else { +this.asc.setCurrentModelInfo("presymmetryAtomCount", Integer.$valueOf(n)); +this.asc.setCurrentModelInfo("latticeDesignation", sym.getLatticeDesignation()); +this.asc.setCurrentModelInfo("ML_unitCellRange", unitCells); +if (this.acr.isSUPERCELL) this.asc.setCurrentModelInfo("supercell", this.acr.strSupercell); +}this.asc.setCurrentModelInfo("presymmetryAtomIndex", Integer.$valueOf(this.firstAtom)); +var operationCount = this.symmetry.getSpaceGroupOperationCount(); +if (operationCount > 0) { +var symmetryList = new Array(operationCount); +for (var i = 0; i < operationCount; i++) symmetryList[i] = "" + this.symmetry.getSpaceGroupXyz(i, this.doNormalize); + +this.asc.setCurrentModelInfo("symmetryOperations", symmetryList); +this.asc.setCurrentModelInfo("symmetryOps", this.symmetry.getSymmetryOperations()); +}this.asc.setCurrentModelInfo("symmetryCount", Integer.$valueOf(operationCount)); +this.asc.setCurrentModelInfo("latticeType", this.acr.latticeType == null ? "P" : this.acr.latticeType); +this.asc.setCurrentModelInfo("intlTableNo", this.symmetry.getIntTableNumber()); +this.asc.setCurrentModelInfo("intlTableIndex", this.symmetry.getSpaceGroupInfoObj("itaIndex", null, false, false)); +this.asc.setCurrentModelInfo("intlTableTransform", this.symmetry.getSpaceGroupInfoObj("itaTransform", null, false, false)); +this.asc.setCurrentModelInfo("intlTableJmolID", this.symmetry.getIntTableNumberFull()); +this.asc.setCurrentModelInfo("spaceGroupIndex", Integer.$valueOf(this.symmetry.getSpaceGroupIndex())); +this.asc.setCurrentModelInfo("spaceGroupTitle", this.symmetry.getSpaceGroupTitle()); +if (this.acr.sgName == null || this.acr.sgName.indexOf("?") >= 0 || this.acr.sgName.indexOf("!") >= 0) this.setAtomSetSpaceGroupName(this.acr.sgName = this.symmetry.getSpaceGroupName()); +}, "~N,J.adapter.smarter.XtalSymmetry.FileSymmetry,~A"); +Clazz.defineMethod(c$, "setCurrentModelUCInfo", +function(unitCellParams, unitCellOffset, matUnitCellOrientation){ +if (unitCellParams != null) this.asc.setCurrentModelInfo("unitCellParams", unitCellParams); +if (unitCellOffset != null) this.asc.setCurrentModelInfo("unitCellOffset", unitCellOffset); +if (matUnitCellOrientation != null) this.asc.setCurrentModelInfo("matUnitCellOrientation", matUnitCellOrientation); +}, "~A,JU.P3,JU.M3"); +Clazz.defineMethod(c$, "setLatticeCells", +function(){ +this.latticeCells = this.acr.latticeCells; +var isLatticeRange = (this.latticeCells[0] <= 555 && this.latticeCells[1] >= 555 && (this.latticeCells[2] == 0 || this.latticeCells[2] == 1 || this.latticeCells[2] == -1)); +this.doNormalize = this.latticeCells[0] != 0 && (!isLatticeRange || this.latticeCells[2] == 1); +this.applySymmetryToBonds = this.acr.applySymmetryToBonds; +this.doPackUnitCell = this.acr.doPackUnitCell && !this.applySymmetryToBonds; +this.doCentroidUnitCell = this.acr.doCentroidUnitCell; +this.centroidPacked = this.acr.centroidPacked; +this.filterSymop = this.acr.filterSymop; +}); +Clazz.defineMethod(c$, "setLatticeRange", +function(latticetype, rangeType){ +var range = null; +var isRhombohedral = "R".equals(latticetype); +if (rangeType.equals("conventional")) { +range = this.symmetry.getConventionalUnitCell(latticetype, this.acr.primitiveToCrystal); +} else if (rangeType.equals("primitive")) { +range = this.symmetry.getUnitCellVectors(); +this.symmetry.toFromPrimitive(true, latticetype.charAt(0), range, this.acr.primitiveToCrystal); +} else if (isRhombohedral && rangeType.equals("rhombohedral")) { +if (this.symmetry.getUnitCellInfoType(7) == 1) { +rangeType = "2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c"; +} else { +rangeType = null; +}} else if (isRhombohedral && rangeType.equals("trigonal")) { +if (this.symmetry.getUnitCellInfoType(8) == 1) { +rangeType = "a-b,b-c,a+b+c"; +} else { +rangeType = null; +}} else if (rangeType.indexOf(",") < 0 || rangeType.indexOf("a") < 0 || rangeType.indexOf("b") < 0 || rangeType.indexOf("c") < 0) { +rangeType = null; +} else { +rangeType = null; +}if (rangeType != null && range == null && (range = this.symmetry.getV0abc(rangeType, null)) == null) { +rangeType = null; +}if (rangeType == null) return null; +this.acr.addJmolScript("unitcell " + JU.PT.esc(rangeType)); +return range; +}, "~S,~S"); +Clazz.defineMethod(c$, "setMinMax", +function(dim, kcode, maxX, maxY, maxZ){ +this.minXYZ = new JU.P3i(); +this.maxXYZ = JU.P3i.new3(maxX, maxY, maxZ); +JU.SimpleUnitCell.setMinMaxLatticeParameters(dim, this.minXYZ, this.maxXYZ, kcode); +}, "~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "setSymmetryMinMax", +function(c){ +if (this.rminx > c.x) this.rminx = c.x; +if (this.rminy > c.y) this.rminy = c.y; +if (this.rminz > c.z) this.rminz = c.z; +if (this.rmaxx < c.x) this.rmaxx = c.x; +if (this.rmaxy < c.y) this.rmaxy = c.y; +if (this.rmaxz < c.z) this.rmaxz = c.z; +}, "JU.P3"); +Clazz.defineMethod(c$, "setUnitCell", +function(info, matUnitCellOrientation, unitCellOffset){ +this.unitCellParams = Clazz.newFloatArray (info.length, 0); +for (var i = 0; i < info.length; i++) this.unitCellParams[i] = info[i]; + +this.asc.haveUnitCell = true; +if (this.asc.isTrajectory) { +if (this.trajectoryUnitCells == null) { +this.trajectoryUnitCells = new JU.Lst(); +this.asc.setInfo("unitCells", this.trajectoryUnitCells); +}this.trajectoryUnitCells.addLast(this.unitCellParams); +}this.asc.setGlobalBoolean(2); +this.getSymmetry().setUnitCellFromParams(this.unitCellParams, false, this.unitCellParams[26]); +if (unitCellOffset != null) this.symmetry.setOffsetPt(unitCellOffset); +if (matUnitCellOrientation != null) this.symmetry.initializeOrientation(matUnitCellOrientation); +this.setCurrentModelUCInfo(this.unitCellParams, unitCellOffset, matUnitCellOrientation); +}, "~A,JU.M3,JU.P3"); +Clazz.defineMethod(c$, "setUnitCellSafely", +function(){ +if (this.unitCellParams == null) this.setUnitCell(this.acr.unitCellParams, this.acr.matUnitCellOrientation, this.acr.unitCellOffset); +}); +Clazz.defineMethod(c$, "symmetryAddAtoms", +function(transX, transY, transZ, baseCount, pt, iCellOpPt, cartesians, ms, excludedOps, atomMap){ +var isBaseCell = (baseCount == 0); +var addBonds = (atomMap != null); +if (this.doPackUnitCell) this.ptOffset.set(transX, transY, transZ); +var range2 = this.symmetryRange * this.symmetryRange; +var checkRangeNoSymmetry = (this.symmetryRange < 0); +var checkRange111 = (this.symmetryRange > 0); +var checkSymmetryMinMax = (isBaseCell && checkRange111); +checkRange111 = new Boolean (checkRange111 & !isBaseCell).valueOf(); +var nOp = this.symmetry.getSpaceGroupOperationCount(); +var lstNCS = this.acr.lstNCS; +var nNCS = (lstNCS == null ? 0 : lstNCS.size()); +var nOperations = nOp + nNCS; +nNCS = Clazz.doubleToInt(nNCS / nOp); +var checkNearAtoms = (this.checkNearAtoms && (nOperations > 1 || this.doPackUnitCell)); +var checkSymmetryRange = (checkRangeNoSymmetry || checkRange111); +var checkDistances = (checkNearAtoms || checkSymmetryRange); +var checkOps = (excludedOps != null); +var addCartesian = (checkNearAtoms || checkSymmetryMinMax); +var bsAtoms = (this.acr.isMolecular ? null : this.asc.bsAtoms); +var sym = this.symmetry; +if (checkRangeNoSymmetry) baseCount = this.noSymmetryCount; +var atomMax = this.firstAtom + this.noSymmetryCount; +var bondAtomMin = (this.asc.firstAtomToBond < 0 ? atomMax : this.asc.firstAtomToBond); +var pttemp = new JU.P3(); +var code = null; +var minCartDist2 = (checkOps ? 0.01 : 1.0E-4); +var subSystemId = '\u0000'; +var j00 = (bsAtoms == null ? this.firstAtom : bsAtoms.nextSetBit(this.firstAtom)); +out : for (var iSym = 0; iSym < nOperations; iSym++) { +if (isBaseCell && iSym == 0 || this.crystalReaderLatticeOpsOnly && iSym > 0 && (iSym % this.latticeOp) != 0 || excludedOps != null && excludedOps.get(iSym)) continue; +var pt0 = this.firstAtom + (checkNearAtoms ? pt : checkRange111 ? baseCount : 0); +var spinOp = (iSym >= nOp ? 0 : this.asc.vibScale == 0 ? sym.getSpinOp(iSym) : this.asc.vibScale); +var i0 = Math.max(this.firstAtom, (bsAtoms == null ? 0 : bsAtoms.nextSetBit(0))); +var checkDistance = checkDistances; +var spt = (iSym >= nOp ? Clazz.doubleToInt((iSym - nOp) / nNCS) : iSym); +var cpt = spt + iCellOpPt; +for (var i = i0; i < atomMax; i++) { +var a = this.asc.atoms[i]; +if (bsAtoms != null && !bsAtoms.get(i)) continue; +if (ms == null) { +sym.newSpaceGroupPoint(a, iSym, (iSym >= nOp ? lstNCS.get(iSym - nOp) : null), transX, transY, transZ, pttemp); +} else { +sym = ms.getAtomSymmetry(a, this.symmetry); +sym.newSpaceGroupPoint(a, iSym, null, transX, transY, transZ, pttemp); +code = sym.getSpaceGroupOperationCode(iSym); +if (code != null) { +subSystemId = code.charAt(0); +sym = ms.getSymmetryFromCode(code); +if (sym.getSpaceGroupOperationCount() == 0) this.finalizeSymmetry(sym); +}}this.acr.fixFloatPt(pttemp, 100000.0); +var c = JU.P3.newP(pttemp); +sym.toCartesian(c, false); +if (this.doPackUnitCell) { +sym.toUnitCellRnd(c, this.ptOffset); +pttemp.setT(c); +sym.toFractional(pttemp, false); +this.acr.fixFloatPt(pttemp, 100000.0); +if (!this.isWithinCell(this.ndims, pttemp, this.minXYZ0.x, this.maxXYZ0.x, this.minXYZ0.y, this.maxXYZ0.y, this.minXYZ0.z, this.maxXYZ0.z, this.packingRange)) { +continue; +}}if (checkSymmetryMinMax) this.setSymmetryMinMax(c); +var special = null; +if (checkDistance) { +if (checkSymmetryRange && (c.x < this.rminx || c.y < this.rminy || c.z < this.rminz || c.x > this.rmaxx || c.y > this.rmaxy || c.z > this.rmaxz)) continue; +var minDist2 = 3.4028235E38; +var j0 = (this.checkAll ? this.asc.ac : pt0); +var name = a.atomName; +var id = (code == null ? a.altLoc : subSystemId); +for (var j = j00; j < j0; j++) { +if (bsAtoms != null && !bsAtoms.get(j)) continue; +var pc = cartesians[j - this.firstAtom]; +if (pc == null) continue; +var d2 = c.distanceSquared(pc); +if (checkNearAtoms && d2 < minCartDist2) { +if (checkOps) { +excludedOps.set(iSym); +continue out; +}special = this.asc.atoms[j]; +if ((special.atomName == null || special.atomName.equals(name)) && special.altLoc == id) break; +special = null; +}if (checkRange111 && j < baseCount && d2 < minDist2) minDist2 = d2; +} +if (checkRange111 && minDist2 > range2) continue; +}if (checkOps) { +checkDistance = false; +}var atomSite = a.atomSite; +if (special != null) { +if (addBonds) atomMap[atomSite] = special.index; +special.bsSymmetry.set(cpt); +special.bsSymmetry.set(spt); +} else { +if (addBonds) atomMap[atomSite] = this.asc.ac; +var atom1 = a.copyTo(pttemp, this.asc); +if (this.asc.bsAtoms != null) this.asc.bsAtoms.set(atom1.index); +if (spinOp != 0 && atom1.vib != null) { +sym.getSpaceGroupOperation(iSym).rotate(atom1.vib); +atom1.vib.scale(spinOp); +}if (atom1.isNegDisorder) { +if (this.disorderMap == null) this.disorderMap = new java.util.Hashtable(); +var key = Integer.$valueOf(iSym * 1000 + atom1.altLoc.charCodeAt(0)); +var ch = this.disorderMap.get(key); +if (ch == null) { +if (this.disorderMapMax == 0 || this.disorderMapMax == 90) this.disorderMapMax = ('@').charCodeAt(0); +this.disorderMap.put(key, ch = new Character(String.fromCharCode(++this.disorderMapMax))); +}atom1.altLoc = ch.charValue(); +}atom1.atomSite = atomSite; +if (code != null) atom1.altLoc = subSystemId; +atom1.bsSymmetry = JU.BSUtil.newAndSetBit(cpt); +atom1.bsSymmetry.set(spt); +if (addCartesian) cartesians[pt++] = c; +var tensors = a.tensors; +if (tensors != null) { +atom1.tensors = null; +for (var j = tensors.size(); --j >= 0; ) { +var t = tensors.get(j); +if (t == null) continue; +if (nOp == 1) atom1.addTensor(t.copyTensor(), null, false); + else this.addRotatedTensor(atom1, t, iSym, false, sym); +} +}}} +if (addBonds) { +var bonds = this.asc.bonds; +var atoms = this.asc.atoms; +var key; +for (var bondNum = this.asc.bondIndex0; bondNum < this.bondCount0; bondNum++) { +var bond = bonds[bondNum]; +var atom1 = atoms[bond.atomIndex1]; +var atom2 = atoms[bond.atomIndex2]; +if (atom1 == null || atom2 == null || atom2.atomSetIndex < atom1.atomSetIndex) continue; +var ia1 = atomMap[atom1.atomSite]; +var ia2 = atomMap[atom2.atomSite]; +if (ia1 > ia2) { +var i = ia1; +ia1 = ia2; +ia2 = i; +}if (ia1 != ia2 && (ia1 >= bondAtomMin || ia2 >= bondAtomMin) && this.bondsFound.indexOf(key = "-" + ia1 + "," + ia2) < 0) { +this.bondsFound.append(key); +this.asc.addNewBondWithOrder(ia1, ia2, bond.order); +}} +}} +return pt; +}, "~N,~N,~N,~N,~N,~N,~A,J.adapter.smarter.MSInterface,JU.BS,~A"); +Clazz.defineMethod(c$, "trimToUnitCell", +function(iAtomFirst){ +var atoms = this.asc.atoms; +var bs = this.updateBSAtoms(); +if (this.acr.noPack) { +for (var i = bs.nextSetBit(iAtomFirst); i >= 0; i = bs.nextSetBit(i + 1)) { +if (!this.removePacking(this.ndims, atoms[i], this.minXYZ.x, this.maxXYZ.x, this.minXYZ.y, this.maxXYZ.y, this.minXYZ.z, this.maxXYZ.z, this.packingRange)) bs.clear(i); +} +} else { +for (var i = bs.nextSetBit(iAtomFirst); i >= 0; i = bs.nextSetBit(i + 1)) { +if (!this.isWithinCell(this.ndims, atoms[i], this.minXYZ.x, this.maxXYZ.x, this.minXYZ.y, this.maxXYZ.y, this.minXYZ.z, this.maxXYZ.z, this.packingRange)) bs.clear(i); +} +}}, "~N"); +Clazz.defineMethod(c$, "updateBSAtoms", +function(){ +var bs = this.asc.bsAtoms; +if (bs == null) bs = this.asc.bsAtoms = JU.BSUtil.newBitSet2(0, this.asc.ac); +if (bs.nextSetBit(this.firstAtom) < 0) bs.setBits(this.firstAtom, this.asc.ac); +return bs; +}); +Clazz.defineMethod(c$, "updateSupercellAtomSites", +function(matSuper, bsAtoms, slop){ +var n = bsAtoms.cardinality(); +var baseAtoms = new Array(n); +var nbase = 0; +var slop2 = slop * slop; +for (var i = bsAtoms.nextSetBit(0); i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var a = this.asc.atoms[i]; +var p = new J.adapter.smarter.Atom(); +p.setT(a); +if (matSuper != null) { +matSuper.rotTrans(p); +JU.SimpleUnitCell.unitizeDimRnd(3, p, slop); +}p.atomSerial = a.atomSite; +p.atomSite = a.atomSite; +this.symmetry.unitize(p); +var found = false; +for (var ib = 0; ib < nbase; ib++) { +var b = baseAtoms[ib]; +if (p.atomSerial == b.atomSerial && p.distanceSquared(b) < slop2) { +found = true; +a.atomSite = b.atomSite; +break; +}} +if (!found) { +a.atomSite = p.atomSite = nbase; +baseAtoms[nbase++] = p; +}} +}, "JU.M4,JU.BS,~N"); +Clazz.defineMethod(c$, "newFileSymmetry", +function(){ +return new J.adapter.smarter.XtalSymmetry.FileSymmetry(); +}); +/*if3*/;(function(){ +var c$ = Clazz.declareType(J.adapter.smarter.XtalSymmetry, "FileSymmetry", JS.Symmetry); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.adapter.smarter.XtalSymmetry.FileSymmetry, []); +}); +Clazz.defineMethod(c$, "addLatticeVectors", +function(lattvecs){ +return this.spaceGroup.addLatticeVectors(lattvecs); +}, "JU.Lst"); +Clazz.defineMethod(c$, "addSubSystemOp", +function(code, rs, vs, sigma){ +this.spaceGroup.isSSG = true; +var s = JS.SymmetryOperation.getXYZFromRsVs(rs, vs, false); +var i = this.spaceGroup.addSymmetry(s, -1, true); +this.spaceGroup.operations[i].setSigma(code, sigma); +return s; +}, "~S,JU.Matrix,JU.Matrix,JU.Matrix"); +Clazz.defineMethod(c$, "checkDistance", +function(f1, f2, distance, dx, iRange, jRange, kRange, ptOffset){ +return this.unitCell.checkDistance(f1, f2, distance, dx, iRange, jRange, kRange, ptOffset); +}, "JU.P3,JU.P3,~N,~N,~N,~N,~N,JU.P3"); +Clazz.defineMethod(c$, "createSpaceGroup", +function(desiredSpaceGroupIndex, name, data, modDim){ +this.spaceGroup = JS.SpaceGroup.createSpaceGroup(desiredSpaceGroupIndex, name, data, modDim); +if (this.spaceGroup != null && JU.Logger.debugging) JU.Logger.debug("using generated space group " + this.spaceGroup.dumpInfo()); +return this.spaceGroup != null; +}, "~N,~S,~O,~N"); +Clazz.defineMethod(c$, "fcoord", +function(p){ +return JS.SymmetryOperation.fcoord(p, " "); +}, "JU.T3"); +Clazz.defineMethod(c$, "getMatrixFromString", +function(xyz, rotTransMatrix){ +JS.SymmetryOperation.getMatrixFromString(null, xyz, rotTransMatrix, false, true, false); +}, "~S,~A"); +Clazz.defineMethod(c$, "getSpaceGroupOperationCode", +function(iOp){ +return this.spaceGroup.operations[iOp].subsystemCode; +}, "~N"); +Clazz.defineMethod(c$, "getTensor", +function(vwr, parBorU){ +if (parBorU == null) return null; +if (this.unitCell == null) this.unitCell = JS.UnitCell.fromParams( Clazz.newFloatArray(-1, [1, 1, 1, 90, 90, 90]), true, 1.0E-4); +return this.unitCell.getTensor(vwr, parBorU); +}, "JV.Viewer,~A"); +Clazz.defineMethod(c$, "getSpaceGroupTitle", +function(){ +var s = this.getSpaceGroupName(); +return (s.startsWith("cell=") ? s : this.spaceGroup != null ? this.spaceGroup.asString() : this.unitCell != null && this.unitCell.name.length > 0 ? "cell=" + this.unitCell.name : ""); +}); +Clazz.defineMethod(c$, "setPrecision", +function(prec){ +this.unitCell.setPrecision(prec); +}, "~N"); +Clazz.defineMethod(c$, "toFractionalM", +function(m){ +if (!this.$isBio) this.unitCell.toFractionalM(m); +}, "JU.M4"); +Clazz.defineMethod(c$, "toUnitCellRnd", +function(pt, offset){ +this.unitCell.toUnitCellRnd(pt, offset); +}, "JU.T3,JU.T3"); +Clazz.defineMethod(c$, "twelfthify", +function(pt){ +this.unitCell.twelfthify(pt); +}, "JU.P3"); +Clazz.defineMethod(c$, "getConventionalUnitCell", +function(latticeType, primitiveToCrystal){ +return (this.unitCell == null || latticeType == null ? null : this.unitCell.getConventionalUnitCell(latticeType, primitiveToCrystal)); +}, "~S,JU.M3"); +Clazz.defineMethod(c$, "getSpaceGroupIndex", +function(){ +return this.spaceGroup.getIndex(); +}); +Clazz.defineMethod(c$, "getUnitCellF2C", +function(){ +return this.unitCell.getF2C(); +}); +Clazz.defineMethod(c$, "addInversion", +function(){ +var ops = this.spaceGroup.operations; +var inv = new JU.M4(); +inv.m00 = inv.m11 = inv.m22 = -1; +inv.m33 = 1; +var n = this.getSpaceGroupOperationCount(); +var m = new JU.M4(); +for (var i = 0; i < n; i++) { +m.mul2(inv, ops[i]); +var s = JS.SymmetryOperation.getXYZFromMatrix(m, true, true, false); +this.addSpaceGroupOperation(s, 0); +} +}); +/*eoif3*/})(); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/CDXMLWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/CDXMLWriter.js new file mode 100755 index 000000000000..b5ae7197019d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/CDXMLWriter.js @@ -0,0 +1,504 @@ +Clazz.declarePackage("J.adapter.writers"); +Clazz.load(["J.adapter.writers.CMLWriter", "java.util.Stack", "JU.SB"], "J.adapter.writers.CDXMLWriter", ["java.util.Hashtable", "JU.PT", "$.Rdr", "J.adapter.smarter.SmarterJmolAdapter"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.doc = null; +this.objects = null; +this.sb = null; +this.sbpt = 0; +this.id = 0; +Clazz.instantialize(this, arguments);}, J.adapter.writers, "CDXMLWriter", J.adapter.writers.CMLWriter); +Clazz.prepareFields (c$, function(){ +this.objects = new java.util.Stack(); +this.sb = new JU.SB(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.adapter.writers.CDXMLWriter, []); +}); +Clazz.overrideMethod(c$, "set", +function(viewer, out, data){ +throw new NullPointerException("CDXMLWriter is not implemented for writing"); +}, "JV.Viewer,JU.OC,~A"); +Clazz.overrideMethod(c$, "write", +function(bs){ +throw new NullPointerException("CDXMLWriter is not implemented for writing"); +}, "JU.BS"); +c$.fromCDX = Clazz.defineMethod(c$, "fromCDX", +function(binaryDoc){ +return new J.adapter.writers.CDXMLWriter().cdxToCdxml(binaryDoc); +}, "javajs.api.GenericBinaryDocument"); +c$.fromASC = Clazz.defineMethod(c$, "fromASC", +function(asc){ +return new J.adapter.writers.CDXMLWriter().ascToCdxml(asc); +}, "J.adapter.smarter.AtomSetCollection"); +Clazz.defineMethod(c$, "ascToCdxml", +function(asc){ +var a = new J.adapter.smarter.SmarterJmolAdapter(); +var atomIterator = a.getAtomIterator(asc); +var bondIterator = a.getBondIterator(asc); +J.adapter.writers.CMLWriter.openDocument(this.sb); +J.adapter.writers.CDXMLWriter.appendHeader(this.sb); +J.adapter.writers.CMLWriter.openTag(this.sb, "page"); +this.id = 0; +this.openID(this.sb, "fragment"); +J.adapter.writers.CMLWriter.terminateTag(this.sb); +var indexToID = new java.util.Hashtable(); +while (atomIterator.hasNext()) { +this.openID(this.sb, "n"); +indexToID.put(atomIterator.getUniqueID(), Integer.$valueOf(this.id)); +var xyz = atomIterator.getXYZ(); +var ele = atomIterator.getElement(); +var iso = atomIterator.getIsotope(); +var charge = atomIterator.getFormalCharge(); +J.adapter.writers.CMLWriter.addAttribute(this.sb, "p", J.adapter.writers.CDXMLWriter.cdxCoord(xyz.x, 200) + " " + J.adapter.writers.CDXMLWriter.cdxCoord(-xyz.y, 400)); +if (ele != 6) J.adapter.writers.CMLWriter.addAttribute(this.sb, "Element", "" + ele); +if (iso != 0) J.adapter.writers.CMLWriter.addAttribute(this.sb, "Isotope", "" + iso); +if (charge != 0) J.adapter.writers.CMLWriter.addAttribute(this.sb, "Charge", "" + charge); +J.adapter.writers.CMLWriter.terminateEmptyTag(this.sb); +} +while (bondIterator.hasNext()) { +this.openID(this.sb, "b"); +var id1 = bondIterator.getAtomUniqueID1(); +var id2 = bondIterator.getAtomUniqueID2(); +var order = "1"; +var display = null; +var display2 = null; +var bo = bondIterator.getEncodedOrder(); +switch (bo) { +case 515: +order = "1.5"; +display2 = "Dash"; +break; +case 514: +order = "2"; +break; +default: +if ((bo & 0x07) != 0) order = "" + (bo & 0x07); +break; +} +switch (bo) { +case 1025: +order = "1"; +display = "WedgeBegin"; +break; +case 1041: +order = "1"; +display = "WedgedHashBegin"; +break; +case 1057: +order = "1"; +display = "Wavy"; +break; +} +J.adapter.writers.CMLWriter.addAttribute(this.sb, "B", indexToID.get(id1).toString()); +J.adapter.writers.CMLWriter.addAttribute(this.sb, "E", indexToID.get(id2).toString()); +if (!order.equals("1")) J.adapter.writers.CMLWriter.addAttribute(this.sb, "Order", order); +if (display != null) J.adapter.writers.CMLWriter.addAttribute(this.sb, "Display", display); +if (display2 != null) J.adapter.writers.CMLWriter.addAttribute(this.sb, "Display2", display2); +J.adapter.writers.CMLWriter.terminateEmptyTag(this.sb); +} +J.adapter.writers.CMLWriter.closeTag(this.sb, "fragment"); +J.adapter.writers.CMLWriter.closeTag(this.sb, "page"); +J.adapter.writers.CMLWriter.closeTag(this.sb, "CDXML"); +return this.sb.toString(); +}, "J.adapter.smarter.AtomSetCollection"); +c$.cdxCoord = Clazz.defineMethod(c$, "cdxCoord", +function(x, off){ +return "" + (off + Math.round(x / 1.45 * 14.4 * 100) / 100); +}, "~N,~N"); +Clazz.defineMethod(c$, "openID", +function(sb, name){ +J.adapter.writers.CMLWriter.startOpenTag(sb, name); +J.adapter.writers.CMLWriter.addAttribute(sb, "id", "" + ++this.id); +}, "JU.SB,~S"); +Clazz.defineMethod(c$, "cdxToCdxml", +function(doc){ +this.doc = doc; +try { +J.adapter.writers.CMLWriter.openDocument(this.sb); +J.adapter.writers.CDXMLWriter.appendHeader(this.sb); +doc.setStreamData(null, false); +doc.seek(22); +this.processObject(doc.readShort()); +this.sb.append("\n"); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println(this.sb + "\n" + this.objects); +e.printStackTrace(); +return null; +} else { +throw e; +} +} +return this.sb.toString(); +}, "javajs.api.GenericBinaryDocument"); +c$.appendHeader = Clazz.defineMethod(c$, "appendHeader", +function(sb){ +sb.append("\n"); +J.adapter.writers.CMLWriter.startOpenTag(sb, "CDXML"); +J.adapter.writers.CMLWriter.addAttributes(sb, J.adapter.writers.CDXMLWriter.cdxAttributes); +J.adapter.writers.CMLWriter.terminateTag(sb); +}, "JU.SB"); +Clazz.defineMethod(c$, "processObject", +function(type){ +var id = this.doc.readInt(); +type = type & 0xFFFF; +var terminated = false; +var name = null; +switch (type) { +case 32768: +case 32770: +default: +id = -2147483648; +terminated = true; +break; +case 32769: +name = "page"; +id = -2147483648; +break; +case 32771: +name = "fragment"; +break; +case 32772: +name = "n"; +break; +case 32773: +name = "b"; +break; +case 32774: +name = "t"; +id = -2147483648; +break; +} +this.sbpt = this.sb.length(); +this.objects.push(name); +if (name != null) { +J.adapter.writers.CMLWriter.startOpenTag(this.sb, name); +if (id != -2147483648) { +J.adapter.writers.CMLWriter.addAttribute(this.sb, "id", "" + id); +}}var prop; +while ((prop = this.doc.readShort()) != 0) { +if ((prop & 0x8000) != 0) { +if (!terminated) { +J.adapter.writers.CMLWriter.terminateTag(this.sb); +terminated = true; +}this.processObject(prop); +continue; +}var len = this.readLength(); +switch (type) { +case 32772: +this.writeNodeProperties(prop, len); +break; +case 32774: +if (!terminated) { +J.adapter.writers.CMLWriter.terminateTag(this.sb); +terminated = true; +}this.writeTextProperty(prop, len); +break; +case 32773: +this.writeBondProperties(prop, len); +break; +default: +this.skip(len); +break; +} +} +if (name != null) { +if (!terminated) { +J.adapter.writers.CMLWriter.terminateEmptyTag(this.sb); +} else { +J.adapter.writers.CMLWriter.closeTag(this.sb, name); +}}}, "~N"); +Clazz.defineMethod(c$, "writeNodeProperties", +function(prop, len){ +switch (prop) { +case 512: +var y = J.adapter.writers.CDXMLWriter.toPoint(this.readInt(len >> 1)); +var x = J.adapter.writers.CDXMLWriter.toPoint(this.readInt(len >> 1)); +J.adapter.writers.CMLWriter.addAttribute(this.sb, "p", x + " " + y); +break; +case 1024: +var nodeType = J.adapter.writers.CDXMLWriter.getNodeType(this.readInt(len)); +J.adapter.writers.CMLWriter.addAttribute(this.sb, "NodeType", nodeType); +break; +case 1026: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "Element", "" + this.readInt(len)); +break; +case 1056: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "Isotope", "" + this.readInt(len)); +break; +case 1057: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "Charge", "" + this.readInt(len)); +break; +case 16: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "Warning", this.readString(len)); +break; +case 1073: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "BondOrdering", this.readArray()); +break; +case 1285: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "ConnectionOrder", this.readArray()); +break; +case 1074: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "Attachments", this.readArray()); +break; +case 1075: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "GenericNickname", this.readString(len)); +break; +default: +this.skip(len); +} +}, "~N,~N"); +Clazz.defineMethod(c$, "writeBondProperties", +function(prop, len){ +switch (prop) { +case 1536: +var order = J.adapter.writers.CDXMLWriter.getBondOrder(this.readInt(len)); +if (order == null) { +this.removeObject(); +return; +}J.adapter.writers.CMLWriter.addAttribute(this.sb, "Order", order); +break; +case 1537: +var d = J.adapter.writers.CDXMLWriter.getBondDisplay(this.readInt(len)); +if (d == null) { +this.removeObject(); +return; +}J.adapter.writers.CMLWriter.addAttribute(this.sb, "Display", d); +break; +case 1538: +var d2 = J.adapter.writers.CDXMLWriter.getBondDisplay(this.readInt(len)); +if (d2 != null) J.adapter.writers.CMLWriter.addAttribute(this.sb, "Display2", d2); +break; +case 1540: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "B", "" + this.readInt(len)); +break; +case 1541: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "E", "" + this.readInt(len)); +break; +case 1544: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "BeginAttach", "" + this.readInt(len)); +break; +case 1545: +J.adapter.writers.CMLWriter.addAttribute(this.sb, "EndAttach", "" + this.readInt(len)); +break; +default: +this.skip(len); +} +}, "~N,~N"); +Clazz.defineMethod(c$, "writeTextProperty", +function(prop, len){ +switch (prop) { +case 1792: +var text = this.readString(len); +System.out.println("CDXMLW text=" + text); +J.adapter.writers.CMLWriter.openTag(this.sb, "s"); +this.sb.setLength(this.sb.length() - 1); +this.sb.append(J.adapter.writers.CDXMLWriter.wrapCData(text)); +J.adapter.writers.CMLWriter.closeTag(this.sb, "s"); +break; +default: +this.skip(len); +} +}, "~N,~N"); +c$.wrapCData = Clazz.defineMethod(c$, "wrapCData", +function(s){ +return (s.indexOf("&") < 0 && s.indexOf("<") < 0 ? s : "", "]]]]>") + "]]>"); +}, "~S"); +c$.getNodeType = Clazz.defineMethod(c$, "getNodeType", +function(n){ +var name = null; +switch (n) { +case 0: +return "Unspecified"; +case 1: +return "Element"; +case 4: +return "Nickname"; +case 5: +return "Fragment"; +case 7: +return "GenericNickname"; +case 10: +return "MultiAttachment"; +case 11: +return "VariableAttachment"; +case 12: +return "ExternalConnectionPoint"; +case 2: +name = "ElementList"; +break; +case 3: +name = "ElementListNickname"; +break; +case 6: +name = "Formula"; +break; +case 8: +name = "AnonymousAlternativeGroup"; +break; +case 9: +name = "NamedAnonymousGroup"; +break; +case 13: +name = "LinkNode"; +break; +} +System.err.println("CDXMLWriter Node type " + name + " not identified"); +return "_"; +}, "~N"); +c$.getBondDisplay = Clazz.defineMethod(c$, "getBondDisplay", +function(i){ +switch (i) { +case 0: +return "Solid"; +case 1: +return "Dash"; +case 2: +return "Hash"; +case 3: +return "WedgedHashBegin"; +case 4: +return "WedgedHashEnd"; +case 5: +return "Bold"; +case 6: +return "WedgeBegin"; +case 7: +return "WedgeEnd"; +case 8: +return "Wavy"; +case 9: +return "HollowWedgeBegin"; +case 10: +return "HollowWedgeEnd"; +case 11: +return "WavyWedgeBegin"; +case 12: +return "WavyWedgeEnd"; +case 13: +return "Dot"; +case 14: +return "DashDot"; +} +return null; +}, "~N"); +c$.getBondOrder = Clazz.defineMethod(c$, "getBondOrder", +function(i){ +switch (i) { +case 1: +return "1"; +case 2: +return "2"; +case 4: +return "3"; +case 8: +return "4"; +case 16: +return "5"; +case 32: +return "6"; +case 64: +return "0.5"; +case 128: +return "1.5"; +case 256: +return "2.5"; +case 512: +return "3.5"; +case 1024: +return "4.5"; +case 2048: +return "5.5"; +case 4096: +return "dative"; +case 8192: +return "ionic"; +case 16384: +return "hydrogen"; +case 32768: +return "threecenter"; +} +return null; +}, "~N"); +Clazz.defineMethod(c$, "removeObject", +function(){ +this.sb.setLength(this.sbpt); +}); +Clazz.defineMethod(c$, "skip", +function(len){ +this.doc.seek(this.doc.getPosition() + len); +}, "~N"); +Clazz.defineMethod(c$, "readInt", +function(len){ +switch (len) { +case 1: +return (256 + this.doc.readByte()) % 256; +case 2: +return this.doc.readShort(); +case 4: +return this.doc.readInt(); +case 8: +return this.doc.readLong(); +} +System.err.println("CDXMLWriter.readInt len " + len); +return 0; +}, "~N"); +Clazz.defineMethod(c$, "readString", +function(len){ +var nStyles = this.doc.readShort(); +len -= 2; +switch (nStyles) { +case 0: +break; +default: +this.skip(nStyles * 10); +len -= nStyles * 10; +break; +} +return this.doc.readString(len); +}, "~N"); +Clazz.defineMethod(c$, "readArray", +function(){ +var s = ""; +for (var i = this.doc.readShort(); --i >= 0; ) { +s += " " + this.doc.readInt(); +} +return s.trim(); +}); +Clazz.defineMethod(c$, "readLength", +function(){ +var len = this.doc.readShort(); +if (len == -1) { +len = this.doc.readInt(); +}return len; +}); +c$.toPoint = Clazz.defineMethod(c$, "toPoint", +function(i){ +return Math.round(i / 655.36) / 100.0; +}, "~N"); +c$.main = Clazz.defineMethod(c$, "main", +function(args){ +}, "~A"); +c$.fromString = Clazz.defineMethod(c$, "fromString", +function(vwr, type, mol){ +var htParams = new java.util.Hashtable(); +htParams.put("filter", "filetype=" + type); +var o; +try { +o = vwr.getModelAdapter().getAtomSetCollectionFromReader("", JU.Rdr.getBR(mol), htParams); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +return null; +} else { +throw e; +} +} +if ((typeof(o)=='string')) { +return null; +}return J.adapter.writers.CDXMLWriter.fromASC(o); +}, "JV.Viewer,~S,~S"); +c$.cdxAttributes = Clazz.newArray(-1, ["HashSpacing", "2.50", "MarginWidth", "1.60", "LineWidth", "0.60", "BoldWidth", "2", "BondLength", "14.40", "BondSpacing", "18"]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/CIFWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/CIFWriter.js new file mode 100755 index 000000000000..668de09b7d1f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/CIFWriter.js @@ -0,0 +1,219 @@ +Clazz.declarePackage("J.adapter.writers"); +Clazz.load(["J.adapter.writers.XtlWriter", "J.api.JmolWriter", "JU.P3"], "J.adapter.writers.CIFWriter", ["JU.BS", "$.PT", "$.SB", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.oc = null; +this.isP1 = false; +Clazz.instantialize(this, arguments);}, J.adapter.writers, "CIFWriter", J.adapter.writers.XtlWriter, J.api.JmolWriter); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.adapter.writers.CIFWriter, []); +}); +Clazz.overrideMethod(c$, "set", +function(viewer, oc, data){ +this.vwr = viewer; +this.oc = (oc == null ? this.vwr.getOutputChannel(null, null) : oc); +this.isP1 = (data != null && data.length > 0 && "P1".equals(data[0])); +}, "JV.Viewer,JU.OC,~A"); +Clazz.overrideMethod(c$, "write", +function(bs){ +if (bs == null) bs = this.vwr.bsA(); +try { +var mi = this.vwr.ms.at[bs.nextSetBit(0)].mi; +var uc = this.vwr.getCurrentUnitCell(); +this.haveUnitCell = (uc != null); +if (!this.haveUnitCell) uc = this.vwr.getSymTemp().setUnitCellFromParams(null, false, 0.00001); +this.slop = uc.getPrecision(); +this.isHighPrecision = (this.slop == 1.0E-12); +this.precision = Clazz.doubleToInt(-Math.log10(this.slop)); +var offset = uc.getFractionalOffset(); +var fractionalOffset = offset != null && (offset.x != Clazz.floatToInt(offset.x) || offset.y != Clazz.floatToInt(offset.y) || offset.z != Clazz.floatToInt(offset.z)); +var fset; +var haveCustom = (fractionalOffset || (fset = uc.getUnitCellMultiplier()) != null && (fset.z == 1 ? !fset.equals(J.adapter.writers.CIFWriter.fset0) : fset.z != 0)); +var ucm = uc.getUnitCellMultiplied(); +this.isP1 = (this.isP1 || ucm !== uc || fractionalOffset || uc.getSpaceGroupOperationCount() < 2); +uc = ucm; +var modelAU = (!this.haveUnitCell ? bs : this.isP1 ? uc.removeDuplicates(this.vwr.ms, bs, false) : this.vwr.ms.am[mi].bsAsymmetricUnit); +var bsOut; +if (modelAU == null) { +bsOut = bs; +} else { +bsOut = new JU.BS(); +bsOut.or(modelAU); +bsOut.and(bs); +}this.vwr.setErrorMessage(null, " (" + bsOut.cardinality() + " atoms)"); +if (bsOut.isEmpty()) return ""; +var sb = new JU.SB(); +sb.append("## CIF file created by Jmol " + JV.Viewer.getJmolVersion()); +if (haveCustom) { +sb.append(JU.PT.rep("\n" + uc.getUnitCellInfo(false), "\n", "\n##Jmol_orig ")); +}sb.append("\ndata_global"); +var params = uc.getUnitCellAsArray(false); +this.appendKey(sb, "_cell_length_a").append(this.cleanT(params[0])); +this.appendKey(sb, "_cell_length_b").append(this.cleanT(params[1])); +this.appendKey(sb, "_cell_length_c").append(this.cleanT(params[2])); +this.appendKey(sb, "_cell_angle_alpha").append(this.cleanT(params[3])); +this.appendKey(sb, "_cell_angle_beta").append(this.cleanT(params[4])); +this.appendKey(sb, "_cell_angle_gamma").append(this.cleanT(params[5])); +sb.append("\n"); +var n; +var hallName; +var hmName; +var ita; +if (this.isP1) { +ita = "1"; +hallName = "P 1"; +hmName = "P1"; +n = 0; +} else { +uc.getSpaceGroupInfo(this.vwr.ms, null, mi, true, null); +ita = uc.getSpaceGroupNameType("ITA"); +hallName = uc.getSpaceGroupNameType("Hall"); +hmName = uc.getSpaceGroupNameType("HM"); +n = uc.getSpaceGroupOperationCount(); +}this.appendKey(sb, "_space_group_IT_number").append(ita == null ? "?" : ita.toString()); +this.appendKey(sb, "_space_group_name_Hall").append(hallName == null || hallName.equals("?") ? "?" : "'" + hallName + "'"); +this.appendKey(sb, "_space_group_name_H-M_alt").append(hmName == null ? "?" : "'" + hmName + "'"); +sb.append("\n\nloop_\n_space_group_symop_id\n_space_group_symop_operation_xyz"); +if (n == 0) { +sb.append("\n1 x,y,z"); +} else { +for (var i = 0; i < n; i++) { +sb.append("\n").appendI(i + 1).append("\t").append(uc.getSpaceGroupXyz(i, false).replaceAll(" ", "")); +} +}var atoms = this.vwr.ms.at; +var elements = ""; +var haveOccupancy = false; +var occ = (this.haveUnitCell ? this.vwr.ms.occupancies : null); +if (occ != null) { +for (var i = bsOut.nextSetBit(0); i >= 0; i = bsOut.nextSetBit(i + 1)) { +if (occ[i] != 1) { +haveOccupancy = true; +break; +}} +}var haveAltLoc = false; +for (var i = bsOut.nextSetBit(0); i >= 0; i = bsOut.nextSetBit(i + 1)) { +if (atoms[i].altloc != '\0') { +haveAltLoc = true; +break; +}} +var sbLength = sb.length(); +sb.append("\n\nloop_\n_atom_site_label\n_atom_site_type_symbol\n_atom_site_fract_x\n_atom_site_fract_y\n_atom_site_fract_z"); +if (haveAltLoc) { +sb.append("\n_atom_site_disorder_group"); +}if (haveOccupancy) { +sb.append("\n_atom_site_occupancy"); +} else if (!this.haveUnitCell) { +sb.append("\n_atom_site_Cartn_x\n_atom_site_Cartn_y\n_atom_site_Cartn_z"); +}sb.append("\n"); +var jmol_atom = new JU.SB(); +jmol_atom.append("\n\nloop_\n_jmol_atom_index\n_jmol_atom_name\n_jmol_atom_site_label\n"); +var nAtoms = 0; +var p = new JU.P3(); +var elemNums = Clazz.newIntArray (130, 0); +for (var i = bsOut.nextSetBit(0); i >= 0; i = bsOut.nextSetBit(i + 1)) { +var a = atoms[i]; +p.setT(a); +if (this.haveUnitCell) { +uc.toFractional(p, !this.isP1); +}nAtoms++; +var name = a.getAtomName(); +var sym = a.getElementSymbol(); +var elemno = a.getElementNumber(); +var key = sym + "\n"; +if (elements.indexOf(key) < 0) elements += key; +var label = sym + ++elemNums[elemno]; +sb.append(JU.PT.formatS(label, 5, 0, true, false)).append(" ").append(JU.PT.formatS(sym, 3, 0, true, false)).append(this.clean(p.x)).append(this.clean(p.y)).append(this.clean(p.z)); +if (haveAltLoc) { +sb.append(" ").appendC(a.altloc == '\0' ? '.' : a.altloc); +}if (haveOccupancy) sb.append(" ").append(this.clean(occ[i] / 100)); + else if (!this.haveUnitCell) sb.append(this.clean(a.x)).append(this.clean(a.y)).append(this.clean(a.z)); +sb.append("\n"); +jmol_atom.append(JU.PT.formatS("" + a.getIndex(), 3, 0, false, false)).append(" "); +this.writeChecked(jmol_atom, name); +jmol_atom.append(" ").append(JU.PT.formatS(label, 5, 0, false, false)).append("\n"); +} +if (nAtoms > 0) { +sb.append("\nloop_\n_atom_type_symbol\n").append(elements).append("\n"); +sb.appendSB(jmol_atom); +} else { +sb.setLength(sbLength); +}sb.append("\n_jmol_atom_count " + nAtoms); +sb.append("\n_jmol_precision " + this.precision + "\n"); +this.oc.append(sb.toString()); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +if (!JV.Viewer.isJS) e.printStackTrace(); +} else { +throw e; +} +} +return this.toString(); +}, "JU.BS"); +Clazz.defineMethod(c$, "writeChecked", +function(output, val){ +if (val == null || val.length == 0) { +output.append(". "); +return false; +}var escape = val.charAt(0) == '_'; +var escapeCharStart = "'"; +var escapeCharEnd = "' "; +var hasWhitespace = false; +var hasSingle = false; +var hasDouble = false; +for (var i = 0; i < val.length; i++) { +var c = val.charAt(i); +switch ((c).charCodeAt(0)) { +case 9: +case 32: +hasWhitespace = true; +break; +case 10: +this.writeMultiline(output, val); +return true; +case 34: +if (hasSingle) { +this.writeMultiline(output, val); +return true; +}hasDouble = true; +escape = true; +escapeCharStart = "'"; +escapeCharEnd = "' "; +break; +case 39: +if (hasDouble) { +this.writeMultiline(output, val); +return true; +}escape = true; +hasSingle = true; +escapeCharStart = "\""; +escapeCharEnd = "\" "; +break; +} +} +var fst = val.charAt(0); +if (!escape && (fst == '#' || fst == '$' || fst == ';' || fst == '[' || fst == ']' || hasWhitespace)) { +escapeCharStart = "'"; +escapeCharEnd = "' "; +escape = true; +}if (escape) { +output.append(escapeCharStart).append(val).append(escapeCharEnd); +} else { +output.append(val).append(" "); +}return false; +}, "JU.SB,~S"); +Clazz.defineMethod(c$, "writeMultiline", +function(output, val){ +output.append("\n;").append(val).append("\n;\n"); +}, "JU.SB,~S"); +Clazz.defineMethod(c$, "appendKey", +function(sb, key){ +return sb.append("\n").append(JU.PT.formatS(key, 27, 0, true, false)); +}, "JU.SB,~S"); +Clazz.defineMethod(c$, "toString", +function(){ +return (this.oc == null ? "" : this.oc.toString()); +}); +c$.fset0 = JU.P3.new3(555, 555, 1); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/CMLWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/CMLWriter.js new file mode 100755 index 000000000000..4f0b1a5c6fbf --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/CMLWriter.js @@ -0,0 +1,101 @@ +Clazz.declarePackage("J.adapter.writers"); +Clazz.load(["J.api.JmolWriter"], "J.adapter.writers.CMLWriter", ["JU.BS", "$.PT", "$.SB", "JU.Edge"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.oc = null; +this.atomsMax = 0; +this.addBonds = false; +this.doTransform = false; +this.allTrajectories = false; +Clazz.instantialize(this, arguments);}, J.adapter.writers, "CMLWriter", null, J.api.JmolWriter); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "set", +function(viewer, out, data){ +this.vwr = viewer; +this.oc = (this.oc == null ? this.vwr.getOutputChannel(null, null) : this.oc); +this.atomsMax = (data[0]).intValue(); +this.addBonds = (data[1]).booleanValue(); +this.doTransform = (data[2]).booleanValue(); +this.allTrajectories = (data[3]).booleanValue(); +}, "JV.Viewer,JU.OC,~A"); +Clazz.overrideMethod(c$, "write", +function(bs){ +var sb = new JU.SB(); +var nAtoms = bs.cardinality(); +if (nAtoms == 0) return ""; +J.adapter.writers.CMLWriter.openTag(sb, "molecule"); +J.adapter.writers.CMLWriter.openTag(sb, "atomArray"); +var bsAtoms = new JU.BS(); +var atoms = this.vwr.ms.at; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +if (--this.atomsMax < 0) break; +var atom = atoms[i]; +var name = atom.getAtomName(); +JU.PT.rep(name, "\"", "''"); +bsAtoms.set(atom.i); +J.adapter.writers.CMLWriter.appendEmptyTag(sb, "atom", Clazz.newArray(-1, ["id", "a" + (atom.i + 1), "title", atom.getAtomName(), "elementType", atom.getElementSymbol(), "x3", "" + atom.x, "y3", "" + atom.y, "z3", "" + atom.z])); +} +J.adapter.writers.CMLWriter.closeTag(sb, "atomArray"); +if (this.addBonds) { +J.adapter.writers.CMLWriter.openTag(sb, "bondArray"); +var bondCount = this.vwr.ms.bondCount; +var bonds = this.vwr.ms.bo; +for (var i = 0; i < bondCount; i++) { +var bond = bonds[i]; +var a1 = bond.atom1; +var a2 = bond.atom2; +if (!bsAtoms.get(a1.i) || !bsAtoms.get(a2.i)) continue; +var order = JU.Edge.getCmlBondOrder(bond.order); +if (order == null) continue; +J.adapter.writers.CMLWriter.appendEmptyTag(sb, "bond", Clazz.newArray(-1, ["atomRefs2", "a" + (bond.atom1.i + 1) + " a" + (bond.atom2.i + 1), "order", order])); +} +J.adapter.writers.CMLWriter.closeTag(sb, "bondArray"); +}J.adapter.writers.CMLWriter.closeTag(sb, "molecule"); +this.oc.append(sb.toString()); +return this.toString(); +}, "JU.BS"); +c$.openDocument = Clazz.defineMethod(c$, "openDocument", +function(sb){ +sb.append("\n"); +}, "JU.SB"); +c$.openTag = Clazz.defineMethod(c$, "openTag", +function(sb, name){ +sb.append("<").append(name).append(">\n"); +}, "JU.SB,~S"); +c$.startOpenTag = Clazz.defineMethod(c$, "startOpenTag", +function(sb, name){ +sb.append("<").append(name); +}, "JU.SB,~S"); +c$.terminateTag = Clazz.defineMethod(c$, "terminateTag", +function(sb){ +sb.append(">\n"); +}, "JU.SB"); +c$.terminateEmptyTag = Clazz.defineMethod(c$, "terminateEmptyTag", +function(sb){ +sb.append("/>\n"); +}, "JU.SB"); +c$.appendEmptyTag = Clazz.defineMethod(c$, "appendEmptyTag", +function(sb, name, attributes){ +J.adapter.writers.CMLWriter.startOpenTag(sb, name); +J.adapter.writers.CMLWriter.addAttributes(sb, attributes); +J.adapter.writers.CMLWriter.terminateEmptyTag(sb); +}, "JU.SB,~S,~A"); +c$.addAttributes = Clazz.defineMethod(c$, "addAttributes", +function(sb, attributes){ +for (var i = 0; i < attributes.length; i++) { +J.adapter.writers.CMLWriter.addAttribute(sb, attributes[i], attributes[++i]); +} +}, "JU.SB,~A"); +c$.addAttribute = Clazz.defineMethod(c$, "addAttribute", +function(sb, key, val){ +sb.append(" ").append(key).append("=").append(JU.PT.esc(val)); +}, "JU.SB,~S,~S"); +c$.closeTag = Clazz.defineMethod(c$, "closeTag", +function(sb, name){ +sb.append("").append(name).append(">\n"); +}, "JU.SB,~S"); +Clazz.overrideMethod(c$, "toString", +function(){ +return (this.oc == null ? "" : this.oc.toString()); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/MOLWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/MOLWriter.js new file mode 100755 index 000000000000..baabf99ec14c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/MOLWriter.js @@ -0,0 +1,252 @@ +Clazz.declarePackage("J.adapter.writers"); +Clazz.load(null, "J.adapter.writers.MOLWriter", ["java.util.Arrays", "$.Hashtable", "JU.Lst", "$.Measure", "$.P3", "$.PT", "$.SB", "$.V3", "JS.T", "JU.Elements", "$.Escape", "JV.PropertyManager", "$.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.ptTemp = null; +this.vNorm = null; +this.vTemp = null; +this.connections = null; +Clazz.instantialize(this, arguments);}, J.adapter.writers, "MOLWriter", null); +/*LV!1824 unnec constructor*/Clazz.defineMethod(c$, "setViewer", +function(vwr){ +this.vwr = vwr; +return this; +}, "JV.Viewer"); +Clazz.defineMethod(c$, "addMolFile", +function(title, iModel, mol, bsAtoms, bsBonds, asV3000, asJSON, noAromatic, q, is2d){ +var nAtoms = bsAtoms.cardinality(); +var nBonds = bsBonds.cardinality(); +if (!asV3000 && !asJSON && (nAtoms > 999 || nBonds > 999)) return false; +if (!asJSON) { +if (title.length > 80) title = title.substring(0, 77) + "..."; +mol.append(title).append("\n"); +var version = JV.Viewer.getJmolVersion(); +mol.append(JV.PropertyManager.getSDFDateLine("__Jmol-" + version, is2d)); +mol.append("Jmol version ").append(version).append(" EXTRACT: ").append(JU.Escape.eBS(bsAtoms)).append("\n"); +}var asSDF = (iModel >= 0); +var molData = (asSDF ? this.vwr.ms.getInfo(iModel, "molData") : null); +var _keyList = (asSDF ? this.vwr.ms.getInfo(iModel, "molDataKeys") : null); +var ms = this.vwr.ms; +var atomMap = Clazz.newIntArray (ms.ac, 0); +var pTemp = new JU.P3(); +if (asV3000) { +mol.append(" 0 0 0 0 0 0 999 V3000"); +} else if (asJSON) { +mol.append("{\"mol\":{\"createdBy\":\"Jmol " + JV.Viewer.getJmolVersion() + "\",\"a\":["); +} else { +JU.PT.rightJustify(mol, " ", "" + nAtoms); +JU.PT.rightJustify(mol, " ", "" + nBonds); +mol.append(" 0 0 0 0 999 V2000"); +}if (!asJSON) mol.append("\n"); +if (asV3000) { +mol.append("M V30 BEGIN CTAB\nM V30 COUNTS ").appendI(nAtoms).append(" ").appendI(nBonds).append(" 0 0 0\n").append("M V30 BEGIN ATOM\n"); +}var o = (molData == null ? null : molData.get("atom_value_name")); +if (Clazz.instanceOf(o,"JS.SV")) o = (o).asString(); +var valueType = (o == null ? 0 : JS.T.getTokFromName("" + o)); +var atomValues = (valueType == 0 && !asSDF ? null : new JU.SB()); +for (var i = bsAtoms.nextSetBit(0), n = 0; i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +this.getAtomRecordMOL(iModel, ms, mol, atomMap[i] = ++n, ms.at[i], q, pTemp, asV3000, asJSON, atomValues, valueType, asSDF); +} +if (asV3000) { +mol.append("M V30 END ATOM\nM V30 BEGIN BOND\n"); +} else if (asJSON) { +mol.append("],\"b\":["); +}for (var i = bsBonds.nextSetBit(0), n = 0; i >= 0; i = bsBonds.nextSetBit(i + 1)) { +this.getBondRecordMOL(mol, ++n, ms.bo[i], atomMap, asV3000, asJSON, noAromatic, is2d); +} +if (asV3000) { +mol.append("M V30 END BOND\nM V30 END CTAB\n"); +}if (asJSON) mol.append("]}}"); + else { +if (atomValues != null && atomValues.length() > 0) mol.append(atomValues.toString()); +mol.append("M END\n"); +}if (asSDF) { +try { +var pc = ms.getPartialCharges(); +if (molData == null) molData = new java.util.Hashtable(); +var sb = new JU.SB(); +if (pc != null) { +sb.appendI(nAtoms).appendC('\n'); +for (var i = bsAtoms.nextSetBit(0), n = 0; i >= 0; i = bsAtoms.nextSetBit(i + 1)) sb.appendI(++n).append(" ").appendF(pc[i]).appendC('\n'); + +molData.put("jmol_partial_charges", sb.toString()); +}sb.setLength(0); +sb.appendI(nAtoms).appendC('\n'); +for (var i = bsAtoms.nextSetBit(0), n = 0; i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var name = ms.at[i].getAtomName().trim(); +if (name.length == 0) name = "."; +sb.appendI(++n).append(" ").append(name.$replace(' ', '_')).appendC('\n'); +} +molData.put("jmol_atom_names", sb.toString()); +if (_keyList == null) _keyList = new JU.Lst(); +for (var key, $key = molData.keySet().iterator (); $key.hasNext()&& ((key = $key.next ()) || true);) if (!_keyList.contains(key)) _keyList.addLast(key); + +for (var i = 0, n = _keyList.size(); i < n; i++) { +var key = _keyList.get(i); +if (key.startsWith(">")) continue; +o = molData.get(key); +if (Clazz.instanceOf(o,"JS.SV")) o = (o).asString(); +mol.append("> <" + key.toUpperCase() + ">\n"); +this.output80CharWrap(mol, o.toString(), 80); +mol.append("\n\n"); +} +} catch (e) { +} +mol.append("$$$$\n"); +}return true; +}, "~S,~N,JU.SB,JU.BS,JU.BS,~B,~B,~B,JU.Quat,~B"); +Clazz.defineMethod(c$, "getAtomRecordMOL", +function(iModel, ms, mol, n, a, q, pTemp, asV3000, asJSON, atomValues, tokValue, asSDF){ +ms.getPointTransf(iModel, a, q, pTemp); +var elemNo = a.getElementNumber(); +var sym = (a.isDeleted() ? "Xx" : JU.Elements.elementSymbolFromNumber(elemNo)); +var isotope = a.getIsotopeNumber(); +var charge = a.getFormalCharge(); +var o = Clazz.newArray(-1, [pTemp]); +if (asV3000) { +mol.append("M V30 ").appendI(n).append(" ").append(sym).append(JU.PT.sprintf(" %12.5p %12.5p %12.5p 0", "p", o)); +if (charge != 0) mol.append(" CHG=").appendI(charge); +if (isotope != 0) mol.append(" MASS=").appendI(isotope); +mol.append("\n"); +} else if (asJSON) { +if (n != 1) mol.append(","); +mol.append("{"); +if (a.getElementNumber() != 6) mol.append("\"l\":\"").append(a.getElementSymbol()).append("\","); +if (charge != 0) mol.append("\"c\":").appendI(charge).append(","); +if (isotope != 0) mol.append("\"m\":").appendI(isotope).append(","); +mol.append("\"x\":").appendF(a.x).append(",\"y\":").appendF(a.y).append(",\"z\":").appendF(a.z).append("}"); +} else { +mol.append(JU.PT.sprintf("%10.4p%10.4p%10.4p", "p", o)); +mol.append(" ").append(sym); +if (sym.length == 1) mol.append(" "); +JU.PT.rightJustify(mol, " ", "" + (isotope > 0 ? isotope - JU.Elements.getNaturalIsotope(a.getElementNumber()) : 0)); +if (asSDF && isotope > 0) { +atomValues.append("M ISO 1"); +JU.PT.rightJustify(atomValues, " ", "" + n); +JU.PT.rightJustify(atomValues, " ", "" + isotope); +atomValues.append("\n"); +}JU.PT.rightJustify(mol, " ", "" + (charge == 0 ? 0 : 4 - charge)); +mol.append(" ").append(this.getAtomParity(a)); +mol.append(" 0 0 0\n"); +var label = (tokValue == 0 || asV3000 ? null : this.getAtomPropertyAsString(a, tokValue)); +if (label != null && (label = label.trim()).length > 0) { +var sn = " " + n + " "; +atomValues.append("V ").append(sn.substring(sn.length - 4)); +this.output80CharWrap(atomValues, label, 73); +}}}, "~N,JM.ModelSet,JU.SB,~N,JM.Atom,JU.Quat,JU.P3,~B,~B,JU.SB,~N,~B"); +Clazz.defineMethod(c$, "getAtomParity", +function(a){ +if (a.getCovalentBondCount() == 4) { +if (this.connections == null) { +this.connections = Clazz.newIntArray (4, 0); +this.vTemp = new JU.V3(); +this.vNorm = new JU.V3(); +}var bonds = a.bonds; +var nH = 0; +for (var pt = 0, i = bonds.length; --i >= 0; ) { +if (bonds[i].isCovalent()) { +var b = bonds[i].getOtherAtom(a); +if (b.getAtomicAndIsotopeNumber() == 1) nH++; +this.connections[pt++] = b.i; +}} +if (nH < 3) { +java.util.Arrays.sort(this.connections); +var atoms = this.vwr.ms.at; +JU.Measure.getNormalThroughPoints(atoms[this.connections[0]], atoms[this.connections[1]], atoms[this.connections[2]], this.vNorm, this.vTemp); +this.vTemp.sub2(atoms[this.connections[3]], atoms[this.connections[0]]); +return (this.vTemp.dot(this.vNorm) > 0 ? "1" : "2"); +}}return "0"; +}, "JM.Atom"); +Clazz.defineMethod(c$, "getAtomPropertyAsString", +function(a, tok){ +switch (tok & 1136656384) { +case 1094713344: +var i = a.atomPropertyInt(tok); +return (tok == 1765808134 ? JU.PT.trim(JU.Escape.escapeColor(i), "[x]").toUpperCase() : "" + i); +case 1086324736: +return a.atomPropertyString(this.vwr, tok); +case 1111490560: +var f = a.atomPropertyFloat(this.vwr, tok, null); +return (Float.isNaN(f) ? null : "" + f); +default: +if (this.ptTemp == null) this.ptTemp = new JU.P3(); +a.atomPropertyTuple(this.vwr, tok, this.ptTemp); +return (this.ptTemp == null ? null : this.ptTemp.toString()); +} +}, "JM.Atom,~N"); +Clazz.defineMethod(c$, "getBondRecordMOL", +function(mol, n, b, atomMap, asV3000, asJSON, noAromatic, is2d){ +var a1 = atomMap[b.atom1.i]; +var a2 = atomMap[b.atom2.i]; +var order = b.getValence(); +var cfg = ""; +if (order > 3) order = 1; +if (is2d) { +if (asJSON) { +} else { +switch (b.order) { +case 1057: +cfg = (asV3000 ? " CFG=3" : " 4"); +break; +case 1025: +cfg = (asV3000 ? " CFG=1" : " 1"); +break; +case 1041: +cfg = (asV3000 ? " CFG=2" : " 3"); +break; +default: +cfg = " 0"; +break; +} +}}switch (b.order & 131071) { +case 515: +order = (asJSON ? -3 : 4); +break; +case 66: +order = (asJSON ? -3 : 5); +break; +case 513: +order = (asJSON || noAromatic ? 1 : 6); +break; +case 514: +order = (asJSON || noAromatic ? 2 : 7); +break; +case 33: +order = (asJSON ? -1 : 8); +break; +} +if (asV3000) { +mol.append("M V30 ").appendI(n).append(" ").appendI(order).append(" ").appendI(a1).append(" ").appendI(a2).append(cfg).appendC('\n'); +} else if (asJSON) { +if (n != 1) mol.append(","); +mol.append("{\"b\":").appendI(a1 - 1).append(",\"e\":").appendI(a2 - 1); +if (order != 1) { +mol.append(",\"o\":"); +if (order < 0) { +mol.appendF(-order / 2); +} else { +mol.appendI(order); +}}mol.append("}"); +} else { +JU.PT.rightJustify(mol, " ", "" + a1); +JU.PT.rightJustify(mol, " ", "" + a2); +mol.append(" ").appendI(order).append(cfg).append("\n"); +}}, "JU.SB,~N,JM.Bond,~A,~B,~B,~B,~B"); +Clazz.defineMethod(c$, "output80CharWrap", +function(mol, data, maxN){ +if (maxN < 80) data = JU.PT.rep(data, "\n", "|"); +var lines = JU.PT.split(JU.PT.trim(JU.PT.rep(data, "\n\n", "\n"), "\n"), "\n"); +for (var i = 0; i < lines.length; i++) this.outputLines(mol, lines[i], maxN); + +}, "JU.SB,~S,~N"); +Clazz.defineMethod(c$, "outputLines", +function(mol, data, maxN){ +var done = false; +for (var i = 0, n = data.length; i < n && !done; i += 80) { +mol.append(data.substring(i, Math.min(i + maxN, n))); +if (!(done = (maxN != 80)) && i + 80 < n) mol.append("+"); +mol.append("\n"); +} +}, "JU.SB,~S,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/PDBWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/PDBWriter.js new file mode 100755 index 000000000000..5f840dba05ce --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/PDBWriter.js @@ -0,0 +1,177 @@ +Clazz.declarePackage("J.adapter.writers"); +Clazz.load(["J.api.JmolWriter"], "J.adapter.writers.PDBWriter", ["java.util.Arrays", "$.Date", "$.Hashtable", "JU.Lst", "$.P3", "$.PT", "JM.LabelToken", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.oc = null; +this.isPQR = false; +this.doTransform = false; +this.allTrajectories = false; +Clazz.instantialize(this, arguments);}, J.adapter.writers, "PDBWriter", null, J.api.JmolWriter); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "set", +function(viewer, oc, data){ +this.vwr = viewer; +this.oc = (oc == null ? this.vwr.getOutputChannel(null, null) : oc); +this.isPQR = (data[0]).booleanValue(); +this.doTransform = (data[1]).booleanValue(); +this.allTrajectories = (data[2]).booleanValue(); +}, "JV.Viewer,JU.OC,~A"); +Clazz.overrideMethod(c$, "write", +function(bs){ +var type = this.oc.getType(); +this.isPQR = new Boolean (this.isPQR | (type != null && type.indexOf("PQR") >= 0)).valueOf(); +this.doTransform = new Boolean (this.doTransform | (type != null && type.indexOf("-coord true") >= 0)).valueOf(); +var atoms = this.vwr.ms.at; +var models = this.vwr.ms.am; +var occTemp = "%6.2Q%6.2b "; +if (this.isPQR) { +occTemp = "%8.4P%7.4V "; +var charge = 0; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) charge += atoms[i].getPartialCharge(); + +this.oc.append("REMARK 1 PQR file generated by Jmol " + JV.Viewer.getJmolVersion()).append("\nREMARK 1 " + "created " + ( new java.util.Date())).append("\nREMARK 1 Forcefield Used: unknown\nREMARK 1").append("\nREMARK 5").append("\nREMARK 6 Total charge on this protein: " + charge + " e\nREMARK 6\n"); +}var iModel = atoms[bs.nextSetBit(0)].mi; +var iModelLast = -1; +var lastAtomIndex = bs.length() - 1; +var lastModelIndex = atoms[lastAtomIndex].mi; +var isMultipleModels = (iModel != lastModelIndex); +var bsModels = this.vwr.ms.getModelBS(bs, true); +var nModels = bsModels.cardinality(); +var lines = new JU.Lst(); +var isMultipleBondPDB = models[iModel].isPdbWithMultipleBonds; +var uniqueAtomNumbers = false; +if (nModels > 1) { +var conectArray = null; +for (var nFiles = 0, i = bsModels.nextSetBit(0); i >= 0; i = bsModels.nextSetBit(i + 1)) { +var a = this.vwr.ms.getModelAuxiliaryInfo(i).get("PDB_CONECT_bonds"); +if (a !== conectArray || !this.vwr.ms.am[i].isBioModel) { +conectArray = a; +if (nFiles++ > 0) { +uniqueAtomNumbers = true; +break; +}}} +}var tokens; +var ptTemp = new JU.P3(); +var o = Clazz.newArray(-1, [ptTemp]); +var q = (this.doTransform ? this.vwr.tm.getRotationQ() : null); +var map = new java.util.Hashtable(); +var isBiomodel = false; +var firstAtomIndexNew = (uniqueAtomNumbers ? Clazz.newIntArray (nModels, 0) : null); +var modelPt = 0; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +var a = atoms[i]; +isBiomodel = models[a.mi].isBioModel; +if (isMultipleModels && a.mi != iModelLast) { +if (iModelLast != -1) { +modelPt = this.fixPDBFormat(lines, map, this.oc, firstAtomIndexNew, modelPt); +this.oc.append("ENDMDL\n"); +}lines = new JU.Lst(); +iModel = iModelLast = a.mi; +this.oc.append("MODEL " + (iModelLast + 1) + "\n"); +}var sa = a.getAtomName(); +var leftJustify = (a.getElementSymbol().length == 2 || sa.length >= 4 || JU.PT.isDigit(sa.charAt(0))); +var isHetero = a.isHetero(); +if (!isBiomodel) tokens = (leftJustify ? JM.LabelToken.compile(this.vwr, "HETATM%5.-5i %-4.4a%1AUNK %1c 1%1E _XYZ_" + occTemp, '\0', null) : JM.LabelToken.compile(this.vwr, "HETATM%5.-5i %-3.3a%1AUNK %1c 1%1E _XYZ_" + occTemp, '\0', null)); + else if (isHetero) tokens = (leftJustify ? JM.LabelToken.compile(this.vwr, "HETATM%5.-5i %-4.4a%1A%3.3n %1c%4.-4R%1E _XYZ_" + occTemp, '\0', null) : JM.LabelToken.compile(this.vwr, "HETATM%5.-5i %-3.3a%1A%3.3n %1c%4.-4R%1E _XYZ_" + occTemp, '\0', null)); + else tokens = (leftJustify ? JM.LabelToken.compile(this.vwr, "ATOM %5.-5i %-4.4a%1A%3.3n %1c%4.-4R%1E _XYZ_" + occTemp, '\0', null) : JM.LabelToken.compile(this.vwr, "ATOM %5.-5i %-3.3a%1A%3.3n %1c%4.-4R%1E _XYZ_" + occTemp, '\0', null)); +var XX = a.getElementSymbolIso(false).toUpperCase(); +XX = this.pdbKey(a.group.getBioPolymerIndexInModel()) + this.pdbKey(a.group.groupIndex) + JM.LabelToken.formatLabelAtomArray(this.vwr, a, tokens, '\0', null, ptTemp) + (XX.length == 1 ? " " + XX : XX.substring(0, 2)) + " "; +this.vwr.ms.getPointTransf(-1, a, q, ptTemp); +var xyz = JU.PT.sprintf("%8.3p%8.3p%8.3p", "p", o); +if (xyz.length > 24) xyz = JU.PT.sprintf("%8.2p%8.2p%8.2p", "p", o); +XX = JU.PT.rep(XX, "_XYZ_", xyz); +lines.addLast(XX); +} +this.fixPDBFormat(lines, map, this.oc, firstAtomIndexNew, modelPt); +if (isMultipleModels) this.oc.append("ENDMDL\n"); +modelPt = -1; +iModelLast = -1; +var conectKey = "" + (isMultipleModels ? modelPt : 0); +isBiomodel = false; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +var a = atoms[i]; +if (a.mi != iModelLast) { +var m = models[a.mi]; +iModelLast = a.mi; +isBiomodel = m.isBioModel; +modelPt++; +}var isHetero = (!isBiomodel || a.isHetero()); +var isCysS = !isHetero && (a.getElementNumber() == 16); +if (isHetero || isMultipleBondPDB || isCysS) { +var bonds = a.bonds; +if (bonds == null) continue; +for (var j = 0; j < bonds.length; j++) { +var b = bonds[j]; +var iThis = a.getAtomNumber(); +var a2 = b.getOtherAtom(a); +if (!bs.get(a2.i)) continue; +var n = b.getCovalentOrder(); +if (n == 1 && (isMultipleBondPDB && !isHetero && !isCysS || isCysS && a2.getElementNumber() != 16)) continue; +var iOther = a2.getAtomNumber(); +switch (n) { +case 2: +case 3: +if (iOther < iThis) continue; +case 1: +var inew = map.get(conectKey + "." + Integer.$valueOf(iThis)); +var inew2 = map.get(conectKey + "." + Integer.$valueOf(iOther)); +if (inew == null || inew2 == null) break; +this.oc.append("CONECT").append(JU.PT.formatStringS("%5s", "s", "" + inew)); +var s = JU.PT.formatStringS("%5s", "s", "" + inew2); +for (var k = 0; k < n; k++) this.oc.append(s); + +this.oc.append("\n"); +break; +} +} +}} +return this.toString(); +}, "JU.BS"); +Clazz.defineMethod(c$, "pdbKey", +function(np){ +var xp = (np < 0 ? "~999" : " " + np); +return xp.substring(xp.length - 4); +}, "~N"); +Clazz.defineMethod(c$, "fixPDBFormat", +function(lines, map, out, firstAtomIndexNew, modelPt){ +lines.addLast("~999~999XXXXXX99999999999999999999~99~"); +var alines = new Array(lines.size()); +lines.toArray(alines); +java.util.Arrays.sort(alines); +lines.clear(); +for (var i = 0, n = alines.length; i < n; i++) { +lines.addLast(alines[i]); +} +var lastPoly = null; +var lastLine = null; +var n = lines.size(); +var newAtomNumber = 0; +var iBase = (firstAtomIndexNew == null ? 0 : firstAtomIndexNew[modelPt]); +for (var i = 0; i < n; i++) { +var s = lines.get(i); +var poly = s.substring(0, 4); +s = s.substring(8); +var isTerm = false; +var isLast = (s.indexOf("~99~") >= 0); +if (!poly.equals(lastPoly) || isLast) { +if (lastPoly != null && !lastPoly.equals("~999")) { +isTerm = true; +s = "TER " + lastLine.substring(6, 11) + " " + lastLine.substring(17, 27); +lines.add(i, poly + "~~~~" + s); +n++; +}lastPoly = poly; +}if (isLast && !isTerm) break; +lastLine = s; +newAtomNumber = i + 1 + iBase; +if (map != null && !isTerm) map.put("" + modelPt + "." + Integer.$valueOf(JU.PT.parseInt(s.substring(6, 11))), Integer.$valueOf(newAtomNumber)); +var si = " " + newAtomNumber; +out.append(s.substring(0, 6)).append(si.substring(si.length - 5)).append(s.substring(11)).append("\n"); +} +if (firstAtomIndexNew != null && ++modelPt < firstAtomIndexNew.length) firstAtomIndexNew[modelPt] = newAtomNumber; +return modelPt; +}, "JU.Lst,java.util.Map,JU.OC,~A,~N"); +Clazz.overrideMethod(c$, "toString", +function(){ +return (this.oc == null ? "" : this.oc.toString()); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/PWMATWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/PWMATWriter.js new file mode 100755 index 000000000000..7a83092e2fba --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/PWMATWriter.js @@ -0,0 +1,186 @@ +Clazz.declarePackage("J.adapter.writers"); +Clazz.load(["J.adapter.writers.XtlWriter", "J.api.JmolWriter"], "J.adapter.writers.PWMATWriter", ["JU.P3", "$.PT", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.oc = null; +this.uc = null; +this.names = null; +this.bs = null; +this.isSlab = false; +this.writeGlobals = false; +Clazz.instantialize(this, arguments);}, J.adapter.writers, "PWMATWriter", J.adapter.writers.XtlWriter, J.api.JmolWriter); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.adapter.writers.PWMATWriter, []); +this.isHighPrecision = true; +}); +Clazz.overrideMethod(c$, "set", +function(viewer, oc, data){ +this.vwr = viewer; +this.isSlab = (data != null && data[0] != null && data[0].equals("slab")); +this.oc = (oc == null ? this.vwr.getOutputChannel(null, null) : oc); +}, "JV.Viewer,JU.OC,~A"); +Clazz.overrideMethod(c$, "write", +function(bs){ +if (bs == null) bs = this.vwr.bsA(); +try { +this.uc = this.vwr.ms.getUnitCellForAtom(bs.nextSetBit(0)); +this.bs = (this.isSlab ? bs : this.uc.removeDuplicates(this.vwr.ms, bs, false)); +this.names = this.vwr.getDataObj("property_pwm_*", null, -1); +this.writeHeader(); +this.writeLattice(); +this.writePositions(); +this.writeDataBlocks(); +if (this.writeGlobals) this.writeGlobalBlocks(); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.err.println("Error writing PWmat file " + e); +} else { +throw e; +} +} +return this.toString(); +}, "JU.BS"); +Clazz.defineMethod(c$, "writeHeader", +function(){ +this.oc.append(JU.PT.formatStringI("%12i\n", "i", this.bs.cardinality())); +}); +Clazz.defineMethod(c$, "writeLattice", +function(){ +this.oc.append("Lattice vector\n"); +if (this.uc == null) { +this.uc = this.vwr.getSymTemp(); +var bb = this.vwr.getBoundBoxCornerVector(); +var len = Math.round(bb.length() * 2); +this.uc.setUnitCellFromParams( Clazz.newFloatArray(-1, [len, len, len, 90, 90, 90]), false, 1.0E-12); +}var abc = this.uc.getUnitCellVectors(); +var f = "%18.10p%18.10p%18.10p\n"; +this.oc.append(JU.PT.sprintf(f, "p", Clazz.newArray(-1, [abc[1]]))); +this.oc.append(JU.PT.sprintf(f, "p", Clazz.newArray(-1, [abc[2]]))); +this.oc.append(JU.PT.sprintf(f, "p", Clazz.newArray(-1, [abc[3]]))); +JU.Logger.info("PWMATWriter: LATTICE VECTORS"); +}); +Clazz.defineMethod(c$, "writePositions", +function(){ +var cx = this.getData("CONSTRAINTS_X"); +var cy = (cx == null ? null : this.getData("CONSTRAINTS_Y")); +var cz = (cy == null ? null : this.getData("CONSTRAINTS_Z")); +this.oc.append("Position, move_x, move_y, move_z\n"); +var f = "%4i%40s" + (cz == null ? " 1 1 1" : "%4i%4i%4i") + "\n"; +var a = this.vwr.ms.at; +var p = new JU.P3(); +for (var ic = 0, i = this.bs.nextSetBit(0); i >= 0; i = this.bs.nextSetBit(i + 1), ic++) { +p.setT(a[i]); +this.uc.toFractional(p, false); +var coord = this.clean(p.x) + this.clean(p.y) + this.clean(p.z); +if (cz == null) { +this.oc.append(JU.PT.sprintf(f, "is", Clazz.newArray(-1, [Integer.$valueOf(a[i].getElementNumber()), coord]))); +} else { +var ix = Clazz.floatToInt(cx[ic]); +var iy = Clazz.floatToInt(cy[ic]); +var iz = Clazz.floatToInt(cz[ic]); +this.oc.append(JU.PT.sprintf(f, "isiii", Clazz.newArray(-1, [Integer.$valueOf(a[i].getElementNumber()), coord, Integer.$valueOf(ix), Integer.$valueOf(iy), Integer.$valueOf(iz)]))); +}} +JU.Logger.info("PWMATWriter: POSITIONS"); +}); +Clazz.defineMethod(c$, "getData", +function(name){ +name = "property_pwm_" + name.toLowerCase(); +for (var i = this.names.size(); --i >= 0; ) { +var n = this.names.get(i); +if (name.equalsIgnoreCase(n)) { +this.names.removeItemAt(i); +return this.vwr.getDataObj(n, this.bs, 1); +}} +return null; +}, "~S"); +Clazz.defineMethod(c$, "getVectors", +function(name){ +var vectors = Clazz.newArray(-1, [this.getData(name + "_x"), this.getData(name + "_y"), this.getData(name + "_z")]); +return (vectors[0] == null || vectors[1] == null || vectors[2] == null ? null : vectors); +}, "~S"); +Clazz.defineMethod(c$, "writeDataBlocks", +function(){ +this.writeVectors("FORCE"); +this.writeVectors("VELOCITY"); +this.writeMagnetic(); +this.writeMoreData(); +}); +Clazz.defineMethod(c$, "writeVectors", +function(name){ +var xyz = this.getVectors(name); +if (xyz == null) return; +var a = this.vwr.ms.at; +var p = new JU.P3(); +this.oc.append(name.toUpperCase()).append("\n"); +var f = "%4i%18.12p%18.12p%18.12p\n"; +for (var ic = 0, i = this.bs.nextSetBit(0); i >= 0; i = this.bs.nextSetBit(i + 1), ic++) { +p.set(xyz[0][ic], xyz[1][ic], xyz[2][ic]); +this.oc.append(JU.PT.sprintf(f, "ip", Clazz.newArray(-1, [Integer.$valueOf(a[i].getElementNumber()), p]))); +} +JU.Logger.info("PWMATWriter: " + name); +}, "~S"); +Clazz.defineMethod(c$, "writeMagnetic", +function(){ +var m = this.writeItems("MAGNETIC"); +if (m == null) return; +this.writeItem2(m, "CONSTRAINT_MAG"); +}); +Clazz.defineMethod(c$, "writeItem2", +function(m, name){ +var v = this.getData(name); +if (v == null) return; +var a = this.vwr.ms.at; +this.oc.append(name.toUpperCase()).append("\n"); +var f = "%4i%18.12f%18.12f\n"; +for (var ic = 0, i = this.bs.nextSetBit(0); i >= 0; i = this.bs.nextSetBit(i + 1), ic++) { +this.oc.append(JU.PT.sprintf(f, "iff", Clazz.newArray(-1, [Integer.$valueOf(a[i].getElementNumber()), Float.$valueOf(m[ic]), Float.$valueOf(v[ic])]))); +} +}, "~A,~S"); +Clazz.defineMethod(c$, "writeItems", +function(name){ +var m = this.getData(name); +if (m == null) return null; +var a = this.vwr.ms.at; +name = name.toUpperCase(); +this.oc.append(name).append("\n"); +var f = "%4i%18.12f\n"; +for (var ic = 0, i = this.bs.nextSetBit(0); i >= 0; i = this.bs.nextSetBit(i + 1), ic++) { +this.oc.append(JU.PT.sprintf(f, "if", Clazz.newArray(-1, [Integer.$valueOf(a[i].getElementNumber()), Float.$valueOf(m[ic])]))); +} +JU.Logger.info("PWMATWriter: " + name); +return m; +}, "~S"); +Clazz.defineMethod(c$, "writeMoreData", +function(){ +var n = this.names.size(); +var i0 = 0; +while (this.names.size() > i0 && --n >= 0) { +var name = this.names.get(i0).substring(13); +System.out.println(name); +if (name.endsWith("_y") || name.endsWith("_z")) { +i0++; +continue; +}if (name.endsWith("_x")) { +this.writeVectors(name.substring(0, name.length - 2)); +i0 = 0; +} else { +this.writeItems(name); +}} +}); +Clazz.defineMethod(c$, "writeGlobalBlocks", +function(){ +var globals = this.vwr.getModelForAtomIndex(this.bs.nextSetBit(0)).auxiliaryInfo.get("globalPWmatData"); +if (globals != null) for (var e, $e = globals.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +this.oc.append(e.getKey()).append("\n"); +var lines = e.getValue(); +for (var i = 0; i < lines.length; i++) this.oc.append(lines[i]).append("\n"); + +} +}); +Clazz.overrideMethod(c$, "toString", +function(){ +return (this.oc == null ? "" : this.oc.toString()); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/QCJSONWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/QCJSONWriter.js new file mode 100755 index 000000000000..99472ce8fa5b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/QCJSONWriter.js @@ -0,0 +1,468 @@ +Clazz.declarePackage("J.adapter.writers"); +Clazz.load(["JU.SB", "J.api.JmolWriter", "JU.JSONWriter", "java.util.Hashtable"], "J.adapter.writers.QCJSONWriter", ["java.util.Date", "JU.DF", "$.P3", "$.PT", "org.qcschema.QCSchemaUnits"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.moBases = null; +this.htBasisMap = null; +this.filterMOs = false; +this.vwr = null; +this.basisID = 0; +this.shells = null; +this.dfCoefMaps = null; +if (!Clazz.isClassDefined("J.adapter.writers.QCJSONWriter.SparseArray")) { +J.adapter.writers.QCJSONWriter.$QCJSONWriter$SparseArray$ (); +} +Clazz.instantialize(this, arguments);}, J.adapter.writers, "QCJSONWriter", JU.JSONWriter, J.api.JmolWriter); +Clazz.prepareFields (c$, function(){ +this.moBases = new java.util.Hashtable(); +this.htBasisMap = new java.util.Hashtable(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.adapter.writers.QCJSONWriter, []); +}); +Clazz.overrideMethod(c$, "set", +function(viewer, oc, data){ +this.vwr = viewer; +this.oc = (oc == null ? this.vwr.getOutputChannel(null, null) : oc); +this.setWriteNullAsString(false); +this.setStream(oc); +}, "JV.Viewer,JU.OC,~A"); +Clazz.overrideMethod(c$, "write", +function(bs){ +this.writeJSON(); +return this.toString(); +}, "JU.BS"); +Clazz.defineMethod(c$, "toString", +function(){ +return (this.oc == null ? "{}" : this.oc.toString()); +}); +Clazz.defineMethod(c$, "writeJSON", +function(){ +this.openSchema(); +this.writeMagic(); +this.oc.append(",\n"); +this.writeSchemaMetadata(); +this.writeJobs(); +this.closeSchema(); +}); +Clazz.defineMethod(c$, "writeSchemaMetadata", +function(){ +this.mapOpen(); +this.mapAddKeyValue("__jmol_created", new java.util.Date(), ",\n"); +this.mapAddKeyValue("__jmol_source", this.vwr.getP("_modelFile"), ""); +this.mapClose(); +}); +Clazz.defineMethod(c$, "openSchema", +function(){ +this.arrayOpen(false); +}); +Clazz.defineMethod(c$, "writeMagic", +function(){ +this.writeString(org.qcschema.QCSchemaUnits.version); +}); +Clazz.defineMethod(c$, "closeSchema", +function(){ +this.oc.append("\n"); +this.arrayClose(false); +this.closeStream(); +}); +Clazz.defineMethod(c$, "writeJobs", +function(){ +this.writeJob(1); +}); +Clazz.defineMethod(c$, "writeJob", +function(iJob){ +this.append(",\n"); +this.mapOpen(); +{ +this.mapAddKeyValue("__jmol_block", "Job " + iJob, ",\n"); +this.writeJobMetadata(); +this.writeModels(); +this.writeMOBases(); +}this.mapClose(); +}, "~N"); +Clazz.defineMethod(c$, "writeJobMetadata", +function(){ +this.mapAddKey("metadata"); +this.mapOpen(); +{ +this.mapAddMapAllExcept("__jmol_info", this.vwr.getModelSetAuxiliaryInfo(), ";group3Counts;properties;group3Lists;models;unitCellParams;"); +}this.mapClose(); +}); +Clazz.defineMethod(c$, "writeModels", +function(){ +var nModels = this.vwr.ms.mc; +this.oc.append(",\n"); +this.mapAddKey("steps"); +this.arrayOpen(true); +{ +this.oc.append("\n"); +for (var i = 0; i < nModels; ) { +if (i > 0) this.append(",\n"); +i = this.writeModel(i); +} +}this.arrayClose(true); +}); +Clazz.defineMethod(c$, "writeModel", +function(modelIndex){ +var nextModel = modelIndex + 1; +this.append(""); +this.mapOpen(); +{ +this.mapAddKeyValue("__jmol_block", "Model " + (modelIndex + 1), ",\n"); +this.writeTopology(modelIndex); +if (this.isVibration(modelIndex)) { +this.oc.append(",\n"); +nextModel = this.writeVibrations(modelIndex); +}if (this.haveMOData(modelIndex)) { +this.oc.append(",\n"); +this.writeMOData(modelIndex); +}this.oc.append(",\n"); +this.writeModelMetadata(modelIndex); +}this.mapClose(); +this.oc.append("\n"); +return nextModel; +}, "~N"); +Clazz.defineMethod(c$, "writeTopology", +function(modelIndex){ +this.mapAddKey("topology"); +this.mapOpen(); +{ +this.writeAtoms(modelIndex); +this.writeBonds(modelIndex); +}this.mapClose(); +}, "~N"); +Clazz.defineMethod(c$, "getProperty", +function(modelIndex, key){ +var props = (modelIndex >= this.vwr.ms.am.length ? null : this.vwr.ms.am[modelIndex].auxiliaryInfo.get("modelProperties")); +return (props == null ? null : props.get(key)); +}, "~N,~S"); +Clazz.defineMethod(c$, "isVibration", +function(modelIndex){ +return (this.vwr.ms.getLastVibrationVector(modelIndex, 0) >= 0); +}, "~N"); +Clazz.defineMethod(c$, "writeModelMetadata", +function(modelIndex){ +this.mapAddKey("metadata"); +this.mapOpen(); +{ +this.mapAddMapAllExcept("__jmol_info", this.vwr.ms.am[modelIndex].auxiliaryInfo, ";.PATH;PATH;fileName;moData;unitCellParams;"); +}this.mapClose(); +}, "~N"); +Clazz.defineMethod(c$, "writeAtoms", +function(modelIndex){ +var symbols = Clazz.innerTypeInstance(J.adapter.writers.QCJSONWriter.SparseArray, this, null, "_RLE_"); +var numbers = Clazz.innerTypeInstance(J.adapter.writers.QCJSONWriter.SparseArray, this, null, "_RLE_"); +var charges = Clazz.innerTypeInstance(J.adapter.writers.QCJSONWriter.SparseArray, this, null, "_RLE_"); +var names = Clazz.innerTypeInstance(J.adapter.writers.QCJSONWriter.SparseArray, this, null, "_RLE_"); +var types = Clazz.innerTypeInstance(J.adapter.writers.QCJSONWriter.SparseArray, this, null, "_RLE_"); +this.mapAddKey("atoms"); +this.mapOpen(); +{ +var unitCell = this.vwr.ms.getUnitCell(modelIndex); +var isFractional = (unitCell != null && !unitCell.isBio()); +if (isFractional) { +var params = unitCell.getUnitCellAsArray(false); +this.writePrefix_Units("unit_cell", "angstroms"); +this.mapAddKeyValue("unit_cell", params, ",\n"); +}this.writePrefix_Units("coords", isFractional ? "fractional" : "angstroms"); +this.mapAddKey("coords"); +this.arrayOpen(true); +{ +this.oc.append("\n"); +var bs = this.vwr.getModelUndeletedAtomsBitSet(modelIndex); +var last = bs.length() - 1; +var pt = new JU.P3(); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +var a = this.vwr.ms.at[i]; +this.append(""); +pt.setT(a); +if (isFractional) unitCell.toFractional(pt, false); +this.oc.append(this.formatNumber(pt.x)).append(",\t").append(this.formatNumber(pt.y)).append(",\t").append(this.formatNumber(pt.z)).append(i < last ? ",\n" : "\n"); +symbols.add(JU.PT.esc(a.getElementSymbol())); +numbers.add("" + a.getElementNumber()); +charges.add("" + a.getPartialCharge()); +var name = a.getAtomName(); +names.add(name); +var type = a.getAtomType(); +types.add(type.equals(name) ? null : type); +} +}this.arrayClose(true); +this.oc.append(",\n"); +if (charges.isNumericAndNonZero()) { +this.mapAddKeyValueRaw("charge", charges, ",\n"); +}if (types.hasValues()) { +this.mapAddKeyValueRaw("types", types, ",\n"); +}this.mapAddKeyValueRaw("symbol", symbols, ",\n"); +this.mapAddKeyValueRaw("atom_number", numbers, "\n"); +}this.mapClose(); +}, "~N"); +Clazz.defineMethod(c$, "formatNumber", +function(x){ +return (x < 0 ? "" : " ") + JU.DF.formatDecimal(x, -6); +}, "~N"); +Clazz.defineMethod(c$, "writePrefix_Units", +function(prefix, units){ +this.mapAddKeyValueRaw(prefix + "_units", org.qcschema.QCSchemaUnits.getUnitsJSON(units, false), ",\n"); +}, "~S,~S"); +Clazz.defineMethod(c$, "writeBonds", +function(modelIndex){ +}, "~N"); +Clazz.defineMethod(c$, "writeVibrations", +function(modelIndex){ +this.mapAddKey("vibrations"); +this.arrayOpen(true); +{ +this.oc.append("\n"); +var sep = null; +var ivib = 0; +modelIndex--; +while (this.isVibration(++modelIndex)) { +if (sep != null) this.oc.append(sep); +sep = ",\n"; +this.append(""); +this.mapOpen(); +{ +this.mapAddKeyValue("__jmol_block", "Vibration " + (++ivib), ",\n"); +var value = this.getProperty(modelIndex, "FreqValue"); +var freq = this.getProperty(modelIndex, "Frequency"); +var intensity = this.getProperty(modelIndex, "IRIntensity"); +var tokens; +if (value == null) { +System.out.println("model " + modelIndex + " has no _M.properties.FreqValue"); +}if (freq == null) { +System.out.println("model " + modelIndex + " has no _M.properties.Frequency"); +} else { +tokens = JU.PT.split(freq, " "); +if (tokens.length == 1) { +System.out.println("model " + modelIndex + " has no frequency units"); +}this.writeMapKeyValueUnits("frequency", value, tokens[1]); +}if (intensity != null) { +tokens = JU.PT.split(intensity, " "); +this.writeMapKeyValueUnits("ir_intensity", tokens[0], tokens[1]); +}var label = this.getProperty(modelIndex, "FrequencyLabel"); +if (label != null) this.mapAddKeyValue("label", label, ",\n"); +this.mapAddKey("vectors"); +this.arrayOpen(true); +{ +this.oc.append("\n"); +var bs = this.vwr.getModelUndeletedAtomsBitSet(modelIndex); +var last = bs.length() - 1; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +var a = this.vwr.ms.at[i]; +var v = a.getVibrationVector(); +this.append(""); +this.oc.append(this.formatNumber(v.x)).append(",\t").append(this.formatNumber(v.y)).append(",\t").append(this.formatNumber(v.z)).append(i < last ? ",\n" : "\n"); +} +}this.arrayClose(true); +}this.append(""); +this.mapClose(); +} +}this.oc.append("\n"); +this.arrayClose(true); +return modelIndex; +}, "~N"); +Clazz.defineMethod(c$, "writeMapKeyValueUnits", +function(key, value, units){ +this.mapAddKeyValueRaw(key, "{\"value\":" + value + ",\"units\":" + org.qcschema.QCSchemaUnits.getUnitsJSON(units, false) + "}", ",\n"); +}, "~S,~O,~S"); +Clazz.defineMethod(c$, "haveMOData", +function(modelIndex){ +return (this.getAuxiliaryData(modelIndex, "moData") != null); +}, "~N"); +Clazz.defineMethod(c$, "getAuxiliaryData", +function(modelIndex, key){ +return this.vwr.ms.am[modelIndex].auxiliaryInfo.get(key); +}, "~N,~S"); +Clazz.defineMethod(c$, "writeMOData", +function(modelIndex){ +var moData = this.getAuxiliaryData(modelIndex, "moData"); +var moDataJSON = new java.util.Hashtable(); +moDataJSON.put("orbitals", moData.get("mos")); +var units = moData.get("EnergyUnits"); +if (units == null) units = "?"; +moDataJSON.put("orbitals_energy_units", org.qcschema.QCSchemaUnits.getUnitsJSON(units, true)); +moDataJSON.put("__jmol_normalized", Boolean.$valueOf(moData.get("isNormalized") === Boolean.TRUE)); +var type = moData.get("calculationType"); +moDataJSON.put("__jmol_calculation_type", type == null ? "?" : type); +this.setDFCoord(moData); +moDataJSON.put("basis_id", this.addBasis(moData)); +this.filterMOs = true; +this.setModifyKeys(J.adapter.writers.QCJSONWriter.fixIntegration()); +this.mapAddKeyValue("molecular_orbitals", moDataJSON, "\n"); +this.setModifyKeys(null); +this.filterMOs = false; +this.append(""); +}, "~N"); +c$.fixIntegration = Clazz.defineMethod(c$, "fixIntegration", +function(){ +if (J.adapter.writers.QCJSONWriter.integrationKeyMap == null) { +J.adapter.writers.QCJSONWriter.integrationKeyMap = new java.util.Hashtable(); +J.adapter.writers.QCJSONWriter.integrationKeyMap.put("integration", "__jmol_integration"); +}return J.adapter.writers.QCJSONWriter.integrationKeyMap; +}); +Clazz.overrideMethod(c$, "getAndCheckValue", +function(map, key){ +if (this.filterMOs) { +if (key.equals("dfCoefMaps")) return null; +if (key.equals("symmetry")) return (map.get(key)).$replace('_', ' ').trim(); +if (key.equals("coefficients") && this.dfCoefMaps != null) { +return this.fixCoefficients(map.get(key)); +}}return map.get(key); +}, "java.util.Map,~S"); +Clazz.defineMethod(c$, "fixCoefficients", +function(coeffs){ +var c = Clazz.newDoubleArray (coeffs.length, 0); +for (var i = 0, n = this.shells.size(); i < n; i++) { +var shell = this.shells.get(i); +var type = shell[1]; +var map = this.dfCoefMaps[type]; +for (var j = 0, coefPtr = 0; j < map.length; j++, coefPtr++) c[coefPtr + j] = coeffs[coefPtr + map[j]]; + +} +return c; +}, "~A"); +Clazz.defineMethod(c$, "setDFCoord", +function(moData){ +this.dfCoefMaps = moData.get("dfCoefMaps"); +if (this.dfCoefMaps != null) { +var haveMap = false; +for (var i = 0; !haveMap && i < this.dfCoefMaps.length; i++) { +var m = this.dfCoefMaps[i]; +for (var j = 0; j < m.length; j++) if (m[j] != 0) { +haveMap = true; +break; +} +} +if (!haveMap) this.dfCoefMaps = null; +}}, "java.util.Map"); +Clazz.defineMethod(c$, "addBasis", +function(moData){ +var hash = 1; +var gaussians = moData.get("gaussians"); +if (gaussians != null) { +hash ^= gaussians.hashCode(); +}this.shells = moData.get("shells"); +if (this.shells != null) { +hash ^= this.shells.hashCode(); +}var slaters = moData.get("slaters"); +if (slaters != null) { +hash ^= slaters.hashCode(); +}var strHash = "" + hash; +var key = this.htBasisMap.get(strHash); +if (key == null) { +this.htBasisMap.put(strHash, key = "MOBASIS_" + ++this.basisID); +var map = new java.util.Hashtable(); +if (gaussians != null) map.put("gaussians", gaussians); +if (this.shells != null) { +map.put("shells", this.shells); +}if (slaters != null) map.put("slaters", slaters); +this.moBases.put(key, map); +}return key; +}, "java.util.Map"); +Clazz.defineMethod(c$, "writeMOBases", +function(){ +if (this.moBases.isEmpty()) return; +this.oc.append(",\n"); +this.mapAddKey("mo_bases"); +this.mapOpen(); +{ +var sep = null; +for (var key, $key = this.moBases.keySet().iterator (); $key.hasNext()&& ((key = $key.next ()) || true);) { +if (key.startsWith("!")) continue; +this.append(sep); +this.mapAddKeyValue(key, this.moBases.get(key), "\n"); +sep = ",\n"; +} +}this.mapClose(); +this.moBases.clear(); +}); +Clazz.defineMethod(c$, "writeObject", +function(o){ +if (Clazz.instanceOf(o,"J.quantum.SlaterData")) { +this.oc.append(o.toString()); +} else { +Clazz.superCall(this, J.adapter.writers.QCJSONWriter, "writeObject", [o]); +}}, "~O"); +c$.$QCJSONWriter$SparseArray$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +this.repeatCount = 0; +this.elementCount = 0; +this.$lastElement = null; +this.sep = ""; +this.type = null; +this.isRLE = false; +Clazz.instantialize(this, arguments);}, J.adapter.writers.QCJSONWriter, "SparseArray", JU.SB); +Clazz.makeConstructor(c$, +function(type){ +Clazz.superConstructor (this, J.adapter.writers.QCJSONWriter.SparseArray, []); +this.type = type; +this.isRLE = (type.equals("_RLE_")); +}, "~S"); +Clazz.defineMethod(c$, "add", +function(element){ +if (element == null) element = "null"; +if (!this.isRLE) { +this.append(this.sep); +this.append(element); +this.sep = ","; +return; +}if (this.repeatCount > 0 && !element.equals(this.$lastElement)) { +this.append(this.sep); +this.appendI(this.repeatCount); +this.sep = ","; +this.append(this.sep); +this.append(this.$lastElement); +this.repeatCount = 0; +}this.$lastElement = element; +this.repeatCount++; +this.elementCount++; +}, "~S"); +Clazz.defineMethod(c$, "lastElement", +function(){ +return this.$lastElement; +}); +Clazz.defineMethod(c$, "isEmpty", +function(){ +return (this.elementCount == 0); +}); +Clazz.defineMethod(c$, "allNaN", +function(){ +return (this.allSame() && JU.PT.parseFloat(this.$lastElement) == NaN); +}); +Clazz.defineMethod(c$, "allNull", +function(){ +return (this.allSame() && this.$lastElement.equals("null")); +}); +Clazz.defineMethod(c$, "allEmptyString", +function(){ +return (this.allSame() && this.$lastElement.equals("")); +}); +Clazz.defineMethod(c$, "allSame", +function(){ +return (!this.isEmpty() && this.elementCount == this.repeatCount); +}); +Clazz.defineMethod(c$, "allZero", +function(){ +return (this.allSame() && JU.PT.parseFloat(this.$lastElement) != NaN); +}); +Clazz.defineMethod(c$, "hasValues", +function(){ +return (!this.allSame() || !this.allNull() && !this.allEmptyString()); +}); +Clazz.defineMethod(c$, "isNumericAndNonZero", +function(){ +return (this.allSame() && !this.allNaN() && !this.allZero()); +}); +Clazz.defineMethod(c$, "toString", +function(){ +var s = Clazz.superCall(this, J.adapter.writers.QCJSONWriter.SparseArray, "toString", []); +return (s.length == 0 ? "[]" : "[\"" + this.type + "\"," + s + (this.repeatCount > 0 ? this.sep + this.repeatCount + "," + this.$lastElement : "") + "]"); +}); +/*eoif4*/})(); +}; +c$.integrationKeyMap = null; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/XSFWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/XSFWriter.js new file mode 100755 index 000000000000..a2786dad656c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/XSFWriter.js @@ -0,0 +1,69 @@ +Clazz.declarePackage("J.adapter.writers"); +Clazz.load(["J.api.JmolWriter"], "J.adapter.writers.XSFWriter", ["JU.PT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.oc = null; +this.uc = null; +this.len = 0; +Clazz.instantialize(this, arguments);}, J.adapter.writers, "XSFWriter", null, J.api.JmolWriter); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "set", +function(viewer, oc, data){ +this.vwr = viewer; +this.oc = (oc == null ? this.vwr.getOutputChannel(null, null) : oc); +}, "JV.Viewer,JU.OC,~A"); +Clazz.overrideMethod(c$, "write", +function(bs){ +if (bs == null) bs = this.vwr.bsA(); +this.len = bs.length(); +if (this.len == 0) return ""; +try { +var a = this.vwr.ms.at; +var i0 = bs.nextSetBit(0); +this.uc = this.vwr.ms.getUnitCellForAtom(i0); +var model1 = a[i0].getModelIndex(); +var model2 = a[this.len - 1].getModelIndex(); +var isAnim = (model2 != model1); +if (isAnim) { +var nModels = this.vwr.ms.getModelBS(bs, false).cardinality(); +this.oc.append("ANIMSTEPS " + nModels + "\n"); +}if (this.uc != null) this.oc.append("CRYSTAL\n"); +var f = "%4i%18.12p%18.12p%18.12p\n"; +var prefix = (this.uc == null ? "ATOMS" : "PRIMCOORD"); +for (var lastmi = -1, imodel = 0, i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +var atom = a[i]; +var mi = atom.getModelIndex(); +if (mi != lastmi) { +var sn = (isAnim ? " " + (++imodel) : ""); +var header = prefix + sn + "\n"; +this.uc = this.vwr.ms.getUnitCellForAtom(i); +if (this.uc == null) { +this.oc.append(header); +} else { +this.writeLattice(sn); +this.oc.append(header); +var bsm = this.vwr.restrictToModel(bs, mi); +this.oc.append(JU.PT.formatStringI("%6i 1\n", "i", bsm.cardinality())); +}lastmi = mi; +}this.oc.append(JU.PT.sprintf(f, "ip", Clazz.newArray(-1, [Integer.$valueOf(atom.getElementNumber()), atom]))); +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +return this.toString(); +}, "JU.BS"); +Clazz.defineMethod(c$, "writeLattice", +function(sn){ +var abc = this.uc.getUnitCellVectors(); +var f = "%18.10p%18.10p%18.10p\n"; +var s = JU.PT.sprintf(f, "p", Clazz.newArray(-1, [abc[1]])) + JU.PT.sprintf(f, "p", Clazz.newArray(-1, [abc[2]])) + JU.PT.sprintf(f, "p", Clazz.newArray(-1, [abc[3]])); +this.oc.append("PRIMVEC" + sn + "\n").append(s).append("CONVVEC" + sn + "\n").append(s); +}, "~S"); +Clazz.overrideMethod(c$, "toString", +function(){ +return (this.oc == null ? "" : this.oc.toString()); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/XtlWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/XtlWriter.js new file mode 100755 index 000000000000..e226b45e2082 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/adapter/writers/XtlWriter.js @@ -0,0 +1,53 @@ +Clazz.declarePackage("J.adapter.writers"); +Clazz.load(null, "J.adapter.writers.XtlWriter", ["JU.PT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.haveUnitCell = true; +this.isHighPrecision = true; +this.slop = 0; +this.precision = 0; +Clazz.instantialize(this, arguments);}, J.adapter.writers, "XtlWriter", null); +Clazz.defineMethod(c$, "clean", +function(d){ +if (!this.isHighPrecision) return this.cleanF(d); +var t; +return (!this.haveUnitCell || (t = J.adapter.writers.XtlWriter.twelfthsOf(d)) < 0 ? JU.PT.formatF(d, 18, 12, false, false) : (d < 0 ? " -" : " ") + J.adapter.writers.XtlWriter.twelfths[t]); +}, "~N"); +c$.twelfthsOf = Clazz.defineMethod(c$, "twelfthsOf", +function(f){ +if (f == 0) return 0; +f = Math.abs(f * 12); +var i = Math.round(f); +return (i <= 12 && Math.abs(f - i) < J.adapter.writers.XtlWriter.SLOPD * 12 ? i : -1); +}, "~N"); +Clazz.defineMethod(c$, "cleanF", +function(f){ +var t; +if (this.slop != 0) return this.cleanSlop(f); +return (!this.haveUnitCell || (t = J.adapter.writers.XtlWriter.twelfthsOfF(f)) < 0 ? JU.PT.formatF(f, 12, 7, false, false) : (f < 0 ? " -" : " ") + J.adapter.writers.XtlWriter.twelfthsF[t]); +}, "~N"); +Clazz.defineMethod(c$, "cleanSlop", +function(f){ +return JU.PT.formatF(f, this.precision + 6, this.precision, false, false); +}, "~N"); +c$.twelfthsOfF = Clazz.defineMethod(c$, "twelfthsOfF", +function(f){ +if (f == 0) return 0; +f = Math.abs(f * 12); +var i = Math.round(f); +return (i <= 12 && Math.abs(f - i) < J.adapter.writers.XtlWriter.SLOPF * 12 ? i : -1); +}, "~N"); +Clazz.defineMethod(c$, "cleanT", +function(d){ +var s = this.clean(d); +if (this.isHighPrecision) return s; +var i = s.length; +while (--i >= 2 && s.charAt(i) == '0' && s.charAt(i - 1) != '.') { +} +return s.substring(0, i + 1); +}, "~N"); +c$.SLOPD = 0.000000000010; +c$.SLOPF = 0.0000010; +c$.twelfths = Clazz.newArray(-1, ["0.000000000000", "0.083333333333", "0.166666666667", "0.250000000000", "0.333333333333", "0.416666666667", "0.500000000000", "0.583333333333", "0.666666666667", "0.750000000000", "0.833333333333", "0.916666666667", "1.000000000000"]); +c$.twelfthsF = Clazz.newArray(-1, ["0.0000000", "0.0833333", "0.1666667", "0.2500000", "0.3333333", "0.4166667", "0.5000000", "0.5833333", "0.6666667", "0.7500000", "0.8333333", "0.9166667", "1.0000000"]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/AtomIndexIterator.js b/config/plugins/visualizations/jmol/static/j2s/J/api/AtomIndexIterator.js new file mode 100755 index 000000000000..ef9ba3f961e3 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/AtomIndexIterator.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "AtomIndexIterator"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/EventManager.js b/config/plugins/visualizations/jmol/static/j2s/J/api/EventManager.js new file mode 100755 index 000000000000..af6fe18aa780 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/EventManager.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "EventManager"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/FontManager.js b/config/plugins/visualizations/jmol/static/j2s/J/api/FontManager.js new file mode 100755 index 000000000000..4dfb6dca0524 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/FontManager.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "FontManager"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/GenericFileInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericFileInterface.js new file mode 100755 index 000000000000..cd49d0b119cb --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericFileInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "GenericFileInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/GenericGraphics.js b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericGraphics.js new file mode 100755 index 000000000000..95f2e81446f6 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericGraphics.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "GenericGraphics"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/GenericImageDialog.js b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericImageDialog.js new file mode 100755 index 000000000000..88fe29beafe2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericImageDialog.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "GenericImageDialog"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/GenericMenuInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericMenuInterface.js new file mode 100755 index 000000000000..75e3e50e7869 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericMenuInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "GenericMenuInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/GenericMouseInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericMouseInterface.js new file mode 100755 index 000000000000..de3dd80f6730 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericMouseInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "GenericMouseInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/GenericPlatform.js b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericPlatform.js new file mode 100755 index 000000000000..a6a14d17cae5 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/GenericPlatform.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.api"); +Clazz.load(["J.api.FontManager"], "J.api.GenericPlatform", null, function(){ +var c$ = Clazz.declareInterface(J.api, "GenericPlatform", J.api.FontManager); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/Interface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/Interface.js new file mode 100755 index 000000000000..817ca2cf62af --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/Interface.js @@ -0,0 +1,31 @@ +Clazz.declarePackage("J.api"); +Clazz.load(null, "J.api.Interface", ["JU.Logger"], function(){ +var c$ = Clazz.declareType(J.api, "Interface", null); +c$.getInterface = Clazz.defineMethod(c$, "getInterface", +function(name, vwr, state){ +try { +var x = Clazz._4Name(name); +return (x == null ? null : x.newInstance()); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Interface.java Error creating instance for " + name + ": \n" + e); +return null; +} else { +throw e; +} +} +}, "~S,JV.Viewer,~S"); +c$.getOption = Clazz.defineMethod(c$, "getOption", +function(className, vwr, state){ +return J.api.Interface.getInterface("J." + className, vwr, state); +}, "~S,JV.Viewer,~S"); +c$.getUtil = Clazz.defineMethod(c$, "getUtil", +function(name, vwr, state){ +return J.api.Interface.getInterface("JU." + name, vwr, state); +}, "~S,JV.Viewer,~S"); +c$.getSymmetry = Clazz.defineMethod(c$, "getSymmetry", +function(vwr, state){ +return J.api.Interface.getInterface("JS.Symmetry", vwr, state); +}, "JV.Viewer,~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JSVInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JSVInterface.js new file mode 100755 index 000000000000..e8286be15ee9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JSVInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JSVInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAbstractButton.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAbstractButton.js new file mode 100755 index 000000000000..230c6172f485 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAbstractButton.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolAbstractButton"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapter.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapter.js new file mode 100755 index 000000000000..5a970dfed349 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapter.js @@ -0,0 +1,52 @@ +Clazz.declarePackage("J.api"); +Clazz.load(null, "J.api.JmolAdapter", ["JU.PT", "J.api.JmolViewer", "JU.Elements"], function(){ +var c$ = Clazz.declareType(J.api, "JmolAdapter", null); +c$.getElementSymbol = Clazz.defineMethod(c$, "getElementSymbol", +function(elementNumber){ +return JU.Elements.elementSymbolFromNumber(elementNumber); +}, "~N"); +c$.getElementNumber = Clazz.defineMethod(c$, "getElementNumber", +function(elementSymbol){ +return JU.Elements.elementNumberFromSymbol(elementSymbol, false); +}, "~S"); +c$.getNaturalIsotope = Clazz.defineMethod(c$, "getNaturalIsotope", +function(elementNumber){ +return JU.Elements.getNaturalIsotope(elementNumber); +}, "~N"); +c$.getBondingRadius = Clazz.defineMethod(c$, "getBondingRadius", +function(atomicNumberWithIsotope, charge){ +return JU.Elements.getBondingRadius(atomicNumberWithIsotope, charge); +}, "~N,~N"); +Clazz.defineMethod(c$, "getAtomSetCollectionFromReaderType", +function(name, type, bufferedReader, htParams){ +var a = this.getAtomSetCollectionReader(name, type, bufferedReader, (J.api.JmolViewer.allocateViewer(null, this)).setLoadParameters(htParams, false)); +if ((typeof(a)=='string')) return a; +return this.getAtomSetCollection(a); +}, "~S,~S,~O,java.util.Map"); +Clazz.defineMethod(c$, "openBufferedReader", +function(name, bufferedReader){ +return this.getAtomSetCollectionFromReaderType(name, null, bufferedReader, null); +}, "~S,java.io.BufferedReader"); +Clazz.defineMethod(c$, "openBufferedReader", +function(name, bufferedReader, htParams){ +return this.getAtomSetCollectionFromReaderType(name, null, bufferedReader, htParams); +}, "~S,java.io.BufferedReader,java.util.Map"); +Clazz.defineMethod(c$, "openBufferedReader", +function(name, type, bufferedReader){ +return this.getAtomSetCollectionFromReaderType(name, type, bufferedReader, null); +}, "~S,~S,java.io.BufferedReader"); +c$.canonizeAlphaDigit = Clazz.defineMethod(c$, "canonizeAlphaDigit", +function(ch){ +return (JU.PT.isLetterOrDigit(ch) ? ch : '\0'); +}, "~S"); +c$.canonizeInsertionCode = Clazz.defineMethod(c$, "canonizeInsertionCode", +function(insertionCode){ +return J.api.JmolAdapter.canonizeAlphaDigit(insertionCode); +}, "~S"); +c$.canonizeAlternateLocationID = Clazz.defineMethod(c$, "canonizeAlternateLocationID", +function(altLoc){ +return J.api.JmolAdapter.canonizeAlphaDigit(altLoc); +}, "~S"); +c$.cellParamNames = Clazz.newArray(-1, ["_cell_length_a", "_cell_length_b", "_cell_length_c", "_cell_angle_alpha", "_cell_angle_beta", "_cell_angle_gamma"]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapterAtomIterator.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapterAtomIterator.js new file mode 100755 index 000000000000..ca7497ebb788 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapterAtomIterator.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolAdapterAtomIterator"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapterBondIterator.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapterBondIterator.js new file mode 100755 index 000000000000..f163aa233164 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapterBondIterator.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.api"); +(function(){ +var c$ = Clazz.declareType(J.api, "JmolAdapterBondIterator", null); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapterStructureIterator.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapterStructureIterator.js new file mode 100755 index 000000000000..e2a51ddf1d2b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAdapterStructureIterator.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.api"); +(function(){ +var c$ = Clazz.declareType(J.api, "JmolAdapterStructureIterator", null); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAnnotationParser.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAnnotationParser.js new file mode 100755 index 000000000000..859ec05f9f33 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAnnotationParser.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolAnnotationParser"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAppAPI.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAppAPI.js new file mode 100755 index 000000000000..531ed31a4ba2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAppAPI.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolAppAPI"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAppConsoleInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAppConsoleInterface.js new file mode 100755 index 000000000000..a140be61ad14 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAppConsoleInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolAppConsoleInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAppletInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAppletInterface.js new file mode 100755 index 000000000000..310e80e9d81c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAppletInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolAppletInterface", J.api.JmolSyncInterface); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAudioPlayer.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAudioPlayer.js new file mode 100755 index 000000000000..aa8890609073 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolAudioPlayer.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolAudioPlayer"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolCallbackListener.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolCallbackListener.js new file mode 100755 index 000000000000..09aa371b28a0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolCallbackListener.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolCallbackListener"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolDataManager.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolDataManager.js new file mode 100755 index 000000000000..93676efd0f10 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolDataManager.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.api"); +(function(){ +var c$ = Clazz.declareInterface(J.api, "JmolDataManager"); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolDialogInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolDialogInterface.js new file mode 100755 index 000000000000..8b594896fff6 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolDialogInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolDialogInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolDropEditor.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolDropEditor.js new file mode 100755 index 000000000000..db026c0b1ccb --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolDropEditor.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolDropEditor"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolEnvCalc.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolEnvCalc.js new file mode 100755 index 000000000000..c9a29b476841 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolEnvCalc.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolEnvCalc"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolFilesReaderInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolFilesReaderInterface.js new file mode 100755 index 000000000000..b77bcf1274e1 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolFilesReaderInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolFilesReaderInterface", Runnable); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolGestureServerInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolGestureServerInterface.js new file mode 100755 index 000000000000..3e371645b3e9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolGestureServerInterface.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.api"); +(function(){ +var c$ = Clazz.declareInterface(J.api, "JmolGestureServerInterface"); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolGraphicsInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolGraphicsInterface.js new file mode 100755 index 000000000000..3817ed490dd0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolGraphicsInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolGraphicsInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolInChI.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolInChI.js new file mode 100755 index 000000000000..fc5cb21b044c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolInChI.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolInChI"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolJDXMOLParser.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolJDXMOLParser.js new file mode 100755 index 000000000000..0ba5cd63a79c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolJDXMOLParser.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolJDXMOLParser"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolJDXMOLReader.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolJDXMOLReader.js new file mode 100755 index 000000000000..eb4c74d501ad --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolJDXMOLReader.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolJDXMOLReader"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolJSpecView.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolJSpecView.js new file mode 100755 index 000000000000..e47dd118d426 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolJSpecView.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolJSpecView"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolMeasurementClient.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolMeasurementClient.js new file mode 100755 index 000000000000..d11b522d2ad0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolMeasurementClient.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolMeasurementClient"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolModulationSet.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolModulationSet.js new file mode 100755 index 000000000000..0de82eedbeb8 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolModulationSet.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolModulationSet"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolMovieCreatorInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolMovieCreatorInterface.js new file mode 100755 index 000000000000..53b9a701cd50 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolMovieCreatorInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolMovieCreatorInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolNMRInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolNMRInterface.js new file mode 100755 index 000000000000..104a57d771cd --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolNMRInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolNMRInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolNavigatorInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolNavigatorInterface.js new file mode 100755 index 000000000000..602976d69778 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolNavigatorInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolNavigatorInterface", Runnable); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolParallelProcessor.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolParallelProcessor.js new file mode 100755 index 000000000000..d1db103b4484 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolParallelProcessor.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolParallelProcessor"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolPdfCreatorInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolPdfCreatorInterface.js new file mode 100755 index 000000000000..9ec369aab9a7 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolPdfCreatorInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolPdfCreatorInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolPropertyManager.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolPropertyManager.js new file mode 100755 index 000000000000..8b1d42cb1474 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolPropertyManager.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolPropertyManager"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolRendererInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolRendererInterface.js new file mode 100755 index 000000000000..b1ffac29bb53 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolRendererInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolRendererInterface", J.api.JmolGraphicsInterface); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolRepaintManager.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolRepaintManager.js new file mode 100755 index 000000000000..a26d4e09d2c0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolRepaintManager.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolRepaintManager"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolSceneGenerator.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolSceneGenerator.js new file mode 100755 index 000000000000..6f283fb39dc6 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolSceneGenerator.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolSceneGenerator"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptEditorInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptEditorInterface.js new file mode 100755 index 000000000000..5d407c5ec45b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptEditorInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolScriptEditorInterface", J.api.JmolDropEditor); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptEvaluator.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptEvaluator.js new file mode 100755 index 000000000000..84deaf578701 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptEvaluator.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolScriptEvaluator"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptFunction.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptFunction.js new file mode 100755 index 000000000000..e9723ee3ee32 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptFunction.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolScriptFunction"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptManager.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptManager.js new file mode 100755 index 000000000000..a4e92f6d3021 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolScriptManager.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.api"); +(function(){ +var c$ = Clazz.declareInterface(J.api, "JmolScriptManager"); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolSelectionListener.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolSelectionListener.js new file mode 100755 index 000000000000..195a4d790eb0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolSelectionListener.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolSelectionListener"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolStatusListener.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolStatusListener.js new file mode 100755 index 000000000000..f5ee7da8122f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolStatusListener.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolStatusListener", J.api.JmolCallbackListener); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolSyncInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolSyncInterface.js new file mode 100755 index 000000000000..73cc277436e4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolSyncInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolSyncInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolTouchSimulatorInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolTouchSimulatorInterface.js new file mode 100755 index 000000000000..42042893360f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolTouchSimulatorInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolTouchSimulatorInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolViewer.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolViewer.js new file mode 100755 index 000000000000..145f858dcf70 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolViewer.js @@ -0,0 +1,63 @@ +Clazz.declarePackage("J.api"); +Clazz.load(null, "J.api.JmolViewer", ["java.util.Hashtable", "JV.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.menuStructure = null; +this.apiPlatform = null; +Clazz.instantialize(this, arguments);}, J.api, "JmolViewer", null); +c$.allocateViewer = Clazz.defineMethod(c$, "allocateViewer", +function(display, modelAdapter, fullName, documentBase, codeBase, commandOptions, statusListener, implementedPlatform){ +var info = new java.util.Hashtable(); +if (display != null) info.put("display", display); +if (modelAdapter != null) info.put("adapter", modelAdapter); +if (statusListener != null) info.put("statuslistener", statusListener); +if (implementedPlatform != null) info.put("platform", implementedPlatform); +if (commandOptions != null) info.put("options", commandOptions); +if (fullName != null) info.put("fullname", fullName); +if (documentBase != null) info.put("documentbase", documentBase); +if (codeBase != null) info.put("codebase", codeBase); +info.put("isApp", Boolean.TRUE); +return new JV.Viewer(info); +}, "~O,J.api.JmolAdapter,~S,java.net.URL,java.net.URL,~S,J.api.JmolStatusListener,J.api.GenericPlatform"); +c$.allocateViewer = Clazz.defineMethod(c$, "allocateViewer", +function(container, jmolAdapter){ +return J.api.JmolViewer.allocateViewer(container, jmolAdapter, null, null, null, null, null, null); +}, "~O,J.api.JmolAdapter"); +c$.allocateViewer = Clazz.defineMethod(c$, "allocateViewer", +function(display, modelAdapter, fullName, documentBase, codeBase, commandOptions, statusListener){ +return J.api.JmolViewer.allocateViewer(display, modelAdapter, fullName, documentBase, codeBase, commandOptions, statusListener, null); +}, "~O,J.api.JmolAdapter,~S,java.net.URL,java.net.URL,~S,J.api.JmolStatusListener"); +Clazz.defineMethod(c$, "setConsole", +function(console){ +this.getProperty("DATA_API", "getAppConsole", console); +}, "J.api.JmolAppConsoleInterface"); +c$.getJmolVersion = Clazz.defineMethod(c$, "getJmolVersion", +function(){ +return JV.Viewer.getJmolVersion(); +}); +c$.getJmolVersionNoDate = Clazz.defineMethod(c$, "getJmolVersionNoDate", +function(){ +return JV.JC.version; +}); +Clazz.defineMethod(c$, "openReader", +function(fullPathName, reader){ +return this.openReader(fullPathName == null ? "String" : fullPathName, null, reader); +}, "~S,~O"); +Clazz.defineMethod(c$, "openFileAsync", +function(fileName){ +this.openFileAsyncSpecial(fileName, 0); +}, "~S"); +Clazz.defineMethod(c$, "renderScreenImage", +function(g, currentSize, rectClip){ +this.apiPlatform.renderScreenImage(g, currentSize); +}, "~O,~O,~O"); +Clazz.defineMethod(c$, "runScriptCautiously", +function(script){ +return null; +}, "~S"); +Clazz.defineMethod(c$, "dispose", +function(){ +}); +{ +}{ +}}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolWriter.js new file mode 100755 index 000000000000..a19de06a9217 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolWriter.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolWriter"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/JmolZipUtilities.js b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolZipUtilities.js new file mode 100755 index 000000000000..6b704b75152a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/JmolZipUtilities.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "JmolZipUtilities"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/PlatformViewer.js b/config/plugins/visualizations/jmol/static/j2s/J/api/PlatformViewer.js new file mode 100755 index 000000000000..a663e7b92bff --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/PlatformViewer.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "PlatformViewer"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/PymolAtomReader.js b/config/plugins/visualizations/jmol/static/j2s/J/api/PymolAtomReader.js new file mode 100755 index 000000000000..cdb3e92a8f11 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/PymolAtomReader.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "PymolAtomReader"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/SC.js b/config/plugins/visualizations/jmol/static/j2s/J/api/SC.js new file mode 100755 index 000000000000..363219457876 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/SC.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "SC"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/SmilesMatcherInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/SmilesMatcherInterface.js new file mode 100755 index 000000000000..a75863465eaa --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/SmilesMatcherInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "SmilesMatcherInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/SymmetryInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/SymmetryInterface.js new file mode 100755 index 000000000000..03b418a0bf07 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/SymmetryInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "SymmetryInterface"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/Translator.js b/config/plugins/visualizations/jmol/static/j2s/J/api/Translator.js new file mode 100755 index 000000000000..abcb60cb0919 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/Translator.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api"); +Clazz.declareInterface(J.api, "Translator"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/js/GenericConsoleTextArea.js b/config/plugins/visualizations/jmol/static/j2s/J/api/js/GenericConsoleTextArea.js new file mode 100755 index 000000000000..937133757c09 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/js/GenericConsoleTextArea.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api.js"); +Clazz.declareInterface(J.api.js, "GenericConsoleTextArea"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/js/JSConsole.js b/config/plugins/visualizations/jmol/static/j2s/J/api/js/JSConsole.js new file mode 100755 index 000000000000..72297327044c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/js/JSConsole.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api.js"); +Clazz.declareInterface(J.api.js, "JSConsole"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/js/JSmolAppletObject.js b/config/plugins/visualizations/jmol/static/j2s/J/api/js/JSmolAppletObject.js new file mode 100755 index 000000000000..e523fac88813 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/js/JSmolAppletObject.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api.js"); +Clazz.declareInterface(J.api.js, "JSmolAppletObject", javajs.api.js.JSAppletObject); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/api/js/JmolToJSmolInterface.js b/config/plugins/visualizations/jmol/static/j2s/J/api/js/JmolToJSmolInterface.js new file mode 100755 index 000000000000..4845cab94f20 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/api/js/JmolToJSmolInterface.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.api.js"); +Clazz.declareInterface(J.api.js, "JmolToJSmolInterface", javajs.api.js.J2SObjectInterface); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/appletjs/Jmol.js b/config/plugins/visualizations/jmol/static/j2s/J/appletjs/Jmol.js new file mode 100755 index 000000000000..564a8673c816 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/appletjs/Jmol.js @@ -0,0 +1,18 @@ +Clazz.declarePackage("J.appletjs"); +Clazz.load(["JU.GenericApplet"], "J.appletjs.Jmol", ["java.util.Hashtable"], function(){ +var c$ = Clazz.declareType(J.appletjs, "Jmol", JU.GenericApplet); +Clazz.makeConstructor(c$, +function(vwrOptions){ +Clazz.superConstructor (this, J.appletjs.Jmol, []); +this.htParams = new java.util.Hashtable(); +if (vwrOptions == null) vwrOptions = new java.util.Hashtable(); +this.vwrOptions = vwrOptions; +for (var entry, $entry = vwrOptions.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) this.htParams.put(entry.getKey().toLowerCase(), entry.getValue()); + +this.documentBase = "" + vwrOptions.get("documentBase"); +this.codeBase = "" + vwrOptions.get("codePath"); +JU.GenericApplet.isJS = true; +this.init(this); +}, "java.util.Map"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/atomdata/AtomData.js b/config/plugins/visualizations/jmol/static/j2s/J/atomdata/AtomData.js new file mode 100755 index 000000000000..dcb03a9aa89c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/atomdata/AtomData.js @@ -0,0 +1,39 @@ +Clazz.declarePackage("J.atomdata"); +Clazz.load(null, "J.atomdata.AtomData", ["JU.P3", "JU.BSUtil"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.programInfo = null; +this.fileName = null; +this.modelName = null; +this.modelIndex = 0; +this.bsSelected = null; +this.bsIgnored = null; +this.bsMolecules = null; +this.radiusData = null; +this.firstAtomIndex = 0; +this.firstModelIndex = 0; +this.lastModelIndex = 0; +this.hAtomRadius = 0; +this.atomIndex = null; +this.atoms = null; +this.xyz = null; +this.atomRadius = null; +this.atomicNumber = null; +this.atomMolecule = null; +this.hAtoms = null; +this.ac = 0; +this.hydrogenAtomCount = 0; +this.adpMode = 0; +Clazz.instantialize(this, arguments);}, J.atomdata, "AtomData", null); +/*LV!1824 unnec constructor*/Clazz.defineMethod(c$, "transformXYZ", +function(mat, bs){ +var p = new Array(this.xyz.length); +if (bs == null) bs = JU.BSUtil.newBitSet2(0, this.xyz.length); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +if (this.xyz[i] == null) continue; +p[i] = JU.P3.newP(this.xyz[i]); +mat.rotTrans(p[i]); +} +this.xyz = p; +}, "JU.M4,JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/atomdata/AtomDataServer.js b/config/plugins/visualizations/jmol/static/j2s/J/atomdata/AtomDataServer.js new file mode 100755 index 000000000000..de7c53b088bd --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/atomdata/AtomDataServer.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.atomdata"); +Clazz.declareInterface(J.atomdata, "AtomDataServer"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/atomdata/RadiusData.js b/config/plugins/visualizations/jmol/static/j2s/J/atomdata/RadiusData.js new file mode 100755 index 000000000000..d3bc8e1936ed --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/atomdata/RadiusData.js @@ -0,0 +1,54 @@ +Clazz.declarePackage("J.atomdata"); +Clazz.load(["java.lang.Enum", "J.c.VDW"], "J.atomdata.RadiusData", ["JU.SB"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.info = null; +this.factorType = null; +this.vdwType = null; +this.value = NaN; +this.valueExtended = 0; +this.values = null; +Clazz.instantialize(this, arguments);}, J.atomdata, "RadiusData", null); +Clazz.prepareFields (c$, function(){ +this.factorType = J.atomdata.RadiusData.EnumType.ABSOLUTE; +this.vdwType = J.c.VDW.AUTO; +}); +Clazz.makeConstructor(c$, +function(values, value, factorType, vdwType){ +if (values != null) { +this.values = values; +this.value = 2147483647; +return; +}if (factorType == null) return; +this.factorType = factorType; +this.value = value; +if (vdwType != null) this.vdwType = vdwType; +}, "~A,~N,J.atomdata.RadiusData.EnumType,J.c.VDW"); +Clazz.overrideMethod(c$, "toString", +function(){ +if (Float.isNaN(this.value)) return ""; +var sb = new JU.SB(); +switch (this.factorType) { +case J.atomdata.RadiusData.EnumType.ABSOLUTE: +sb.appendF(this.value); +break; +case J.atomdata.RadiusData.EnumType.OFFSET: +sb.append(this.value > 0 ? "+" : "").appendF(this.value); +break; +case J.atomdata.RadiusData.EnumType.FACTOR: +sb.appendI(Clazz.floatToInt(this.value * 100)).append("%"); +if (this.vdwType !== J.c.VDW.AUTO) sb.append(this.vdwType.getVdwLabel()); +break; +case J.atomdata.RadiusData.EnumType.SCREEN: +sb.appendI(Clazz.floatToInt(this.value)); +} +return sb.toString(); +}); +/*if2*/;(function(){ +var c$ = Clazz.declareType(J.atomdata.RadiusData, "EnumType", Enum); +Clazz.defineEnumConstant(c$, "ABSOLUTE", 0, []); +Clazz.defineEnumConstant(c$, "OFFSET", 1, []); +Clazz.defineEnumConstant(c$, "FACTOR", 2, []); +Clazz.defineEnumConstant(c$, "SCREEN", 3, []); +/*eoif2*/})(); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs/Event.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs/Event.js new file mode 100755 index 000000000000..f8278e33d01e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs/Event.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.awtjs"); +(function(){ +var c$ = Clazz.declareType(J.awtjs, "Event", null); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs/Platform.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs/Platform.js new file mode 100755 index 000000000000..3a25595fa49d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs/Platform.js @@ -0,0 +1,28 @@ +Clazz.declarePackage("J.awtjs"); +Clazz.load(["J.awtjs2d.Platform"], "J.awtjs.Platform", null, function(){ +var c$ = Clazz.declareType(J.awtjs, "Platform", J.awtjs2d.Platform); +Clazz.overrideMethod(c$, "drawImage", +function(g, img, x, y, width, height, isDTI){ +}, "~O,~O,~N,~N,~N,~N,~B"); +Clazz.overrideMethod(c$, "getTextPixels", +function(text, font3d, gObj, image, width, height, ascent){ +return null; +}, "~S,JU.Font,~O,~O,~N,~N,~N"); +Clazz.overrideMethod(c$, "getGraphics", +function(image){ +return null; +}, "~O"); +Clazz.overrideMethod(c$, "getStaticGraphics", +function(image, backgroundTransparent){ +return null; +}, "~O,~B"); +Clazz.overrideMethod(c$, "newBufferedImage", +function(image, w, h){ +return null; +}, "~O,~N,~N"); +Clazz.overrideMethod(c$, "newOffScreenImage", +function(w, h){ +return null; +}, "~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs/README.txt b/config/plugins/visualizations/jmol/static/j2s/J/awtjs/README.txt new file mode 100755 index 000000000000..7104fe73ab52 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs/README.txt @@ -0,0 +1,9 @@ +awtjs and awtjs.swing are minimal AWT/Swing-like +implementations used by Jmol and JSpecView to +provide consoles without any reference to AWT +or Swing. It is a relatively simple implementation +without many features. It does do the job for Jmol +and JSpecView, and it is very tight, but I don't +recommend it. + +Bob Hanson \ No newline at end of file diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Display.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Display.js new file mode 100755 index 000000000000..d7e35794716f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Display.js @@ -0,0 +1,67 @@ +Clazz.declarePackage("J.awtjs2d"); +(function(){ +var c$ = Clazz.declareType(J.awtjs2d, "Display", null); +c$.getFullScreenDimensions = Clazz.defineMethod(c$, "getFullScreenDimensions", +function(canvas, widthHeight){ +{ +widthHeight[0] = canvas.width; +widthHeight[1] = canvas.height; +}}, "~O,~A"); +c$.hasFocus = Clazz.defineMethod(c$, "hasFocus", +function(canvas){ +{ +}return true; +}, "~O"); +c$.requestFocusInWindow = Clazz.defineMethod(c$, "requestFocusInWindow", +function(canvas){ +{ +}}, "~O"); +c$.renderScreenImage = Clazz.defineMethod(c$, "renderScreenImage", +function(vwr, g, size){ +{ +}}, "J.api.PlatformViewer,~O,~O"); +c$.prompt = Clazz.defineMethod(c$, "prompt", +function(label, data, list, asButtons){ +{ +var s = (data == null ? alert(label) : prompt(label, data)); +if (s != null)return s; +}return "null"; +}, "~S,~S,~A,~B"); +c$.convertPointFromScreen = Clazz.defineMethod(c$, "convertPointFromScreen", +function(canvas, ptTemp){ +{ +}}, "~O,JU.P3"); +c$.drawImage = Clazz.defineMethod(c$, "drawImage", +function(context, canvas, x, y, width, height, isDTI){ +{ +var buf8 = canvas.buf8; +var buf32 = canvas.buf32; +var n = canvas.width * canvas.height; +var di = 1; +if (isDTI) { +var diw = width % 2; +width = Math.floor(width/2); +di = Math.floor(canvas.width/width); +} +var dw = (canvas.width - width || x) * 4; +for (var i = 0, p = 0, j = x * 4; i < n;) { +buf8[j++] = (buf32[i] >> 16) & 0xFF; +buf8[j++] = (buf32[i] >> 8) & 0xFF; +buf8[j++] = buf32[i] & 0xFF; +buf8[j++] = 0xFF; +i += di; +if (++p%width==0) { +if (diw) { +i += 1; +buf8[j] = 0; +buf8[j+1] = 0; +buf8[j+2] = 0; +buf8[j+3] = 0; +} +j += dw; +} +} +context.putImageData(canvas.imgdata,0,0); +}}, "~O,~O,~N,~N,~N,~N,~B"); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Image.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Image.js new file mode 100755 index 000000000000..3578a86fbf4f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Image.js @@ -0,0 +1,53 @@ +Clazz.declarePackage("J.awtjs2d"); +Clazz.load(null, "J.awtjs2d.Image", ["J.awtjs2d.Platform"], function(){ +var c$ = Clazz.declareType(J.awtjs2d, "Image", null); +c$.getWidth = Clazz.defineMethod(c$, "getWidth", +function(canvas){ +{ +return (canvas.imageWidth ? canvas.imageWidth : canvas.width); +}}, "~O"); +c$.getHeight = Clazz.defineMethod(c$, "getHeight", +function(canvas){ +{ +return (canvas.imageHeight ? canvas.imageHeight : canvas.height); +}}, "~O"); +c$.grabPixels = Clazz.defineMethod(c$, "grabPixels", +function(context, width, height){ +var data = null; +{ +data = context.getImageData(0, 0, width, height).data; +}return J.awtjs2d.Image.toIntARGB(data); +}, "~O,~N,~N"); +c$.toIntARGB = Clazz.defineMethod(c$, "toIntARGB", +function(imgData){ +var n = Clazz.doubleToInt(imgData.length / 4); +var iData = Clazz.newIntArray (n, 0); +for (var i = 0, j = 0; i < n; ) { +iData[i++] = (imgData[j++] << 16) | (imgData[j++] << 8) | imgData[j++] | (imgData[j++] << 24); +} +return iData; +}, "~A"); +c$.getTextPixels = Clazz.defineMethod(c$, "getTextPixels", +function(text, font3d, context, width, height, ascent){ +{ +context.fillStyle = "#000000"; +context.fillRect(0, 0, width, height); +context.fillStyle = "#FFFFFF"; +context.font = font3d.font; +context.fillText(text, 0, ascent); +}return J.awtjs2d.Image.grabPixels(context, width, height); +}, "~S,JU.Font,~O,~N,~N,~N"); +c$.allocateRgbImage = Clazz.defineMethod(c$, "allocateRgbImage", +function(windowWidth, windowHeight, pBuffer, windowSize, backgroundTransparent, canvas){ +{ +if (canvas == null) +canvas = {width:windowWidth,height:windowHeight}; +canvas.buf32 = pBuffer; +}return canvas; +}, "~N,~N,~A,~N,~B,~O"); +c$.getImageDialog = Clazz.defineMethod(c$, "getImageDialog", +function(vwr, title, imageMap){ +return J.awtjs2d.Platform.Jmol().consoleGetImageDialog(vwr, title, imageMap); +}, "JV.Viewer,~S,java.util.Map"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSFile.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSFile.js new file mode 100755 index 000000000000..cd2db85abafb --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSFile.js @@ -0,0 +1,60 @@ +Clazz.declarePackage("J.awtjs2d"); +Clazz.load(["J.api.GenericFileInterface"], "J.awtjs2d.JSFile", ["JU.OC", "$.PT", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.name = null; +this.fullName = null; +Clazz.instantialize(this, arguments);}, J.awtjs2d, "JSFile", null, J.api.GenericFileInterface); +Clazz.makeConstructor(c$, +function(name){ +this.name = name.$replace('\\', '/'); +this.fullName = name; +if (!this.fullName.startsWith("/") && JU.OC.urlTypeIndex(name) < 0) this.fullName = JV.Viewer.jsDocumentBase + "/" + this.fullName; +this.fullName = JU.PT.rep(this.fullName, "/./", "/"); +name = name.substring(name.lastIndexOf("/") + 1); +}, "~S"); +c$.newFile = Clazz.defineMethod(c$, "newFile", +function(name){ +return new J.awtjs2d.JSFile(name); +}, "~S"); +Clazz.overrideMethod(c$, "getParentAsFile", +function(){ +var pt = this.fullName.lastIndexOf("/"); +return (pt < 0 ? null : new J.awtjs2d.JSFile(this.fullName.substring(0, pt))); +}); +Clazz.overrideMethod(c$, "getFullPath", +function(){ +return this.fullName; +}); +Clazz.overrideMethod(c$, "getName", +function(){ +return this.name; +}); +Clazz.overrideMethod(c$, "isDirectory", +function(){ +return this.fullName.endsWith("/"); +}); +Clazz.overrideMethod(c$, "length", +function(){ +return 0; +}); +c$.getURLContents = Clazz.defineMethod(c$, "getURLContents", +function(url, outputBytes, post){ +try { +var conn = url.openConnection(); +if (outputBytes != null) conn.outputBytes(outputBytes); + else if (post != null) conn.outputString(post); +return conn.getContents(); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return e.toString(); +} else { +throw e; +} +} +}, "java.net.URL,~A,~S"); +Clazz.overrideMethod(c$, "toString", +function(){ +return this.fullName; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSFont.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSFont.js new file mode 100755 index 000000000000..f87a739eb4a4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSFont.js @@ -0,0 +1,39 @@ +Clazz.declarePackage("J.awtjs2d"); +(function(){ +var c$ = Clazz.declareType(J.awtjs2d, "JSFont", null); +c$.newFont = Clazz.defineMethod(c$, "newFont", +function(fontFace, isBold, isItalic, fontSize, type){ +fontFace = (fontFace.equals("Monospaced") ? "Courier" : fontFace.startsWith("Sans") ? "Helvetica Neue, Sans-serif" : "Serif"); +return (isBold ? "bold " : "") + (isItalic ? "italic " : "") + fontSize + type + " " + fontFace; +}, "~S,~B,~B,~N,~S"); +c$.getFontMetrics = Clazz.defineMethod(c$, "getFontMetrics", +function(font, context){ +{ +if (context.font != font.font) { +context.font = font.font; +font.font = context.font; +context._fontAscent = Math.ceil(font.fontSize); //pt, not px +// the descent is actually (px - pt) +// but I know of no way of getting access to the drawn height +context._fontDescent = Math.ceil(font.fontSize * 0.25);//approx +} +}return context; +}, "JU.Font,~O"); +c$.getAscent = Clazz.defineMethod(c$, "getAscent", +function(context){ +{ +return Math.ceil(context._fontAscent); +}}, "~O"); +c$.getDescent = Clazz.defineMethod(c$, "getDescent", +function(context){ +{ +return Math.ceil(context._fontDescent); +}}, "~O"); +c$.stringWidth = Clazz.defineMethod(c$, "stringWidth", +function(font, context, text){ +{ +context.font = font.font; +return Math.ceil(context.measureText(text).width); +}}, "JU.Font,~O,~S"); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSJmolPopup.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSJmolPopup.js new file mode 100755 index 000000000000..59fcde4e76ce --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSJmolPopup.js @@ -0,0 +1,33 @@ +Clazz.declarePackage("J.awtjs2d"); +Clazz.load(["J.popup.JmolPopup"], "J.awtjs2d.JSJmolPopup", ["J.awtjs2d.JSPopupHelper"], function(){ +var c$ = Clazz.declareType(J.awtjs2d, "JSJmolPopup", J.popup.JmolPopup); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.awtjs2d.JSJmolPopup, []); +this.helper = new J.awtjs2d.JSPopupHelper(this); +}); +Clazz.overrideMethod(c$, "menuShowPopup", +function(popup, x, y){ +try { +(popup).show(this.isTainted ? this.vwr.html5Applet : null, x, y); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +this.isTainted = false; +}, "J.api.SC,~N,~N"); +Clazz.overrideMethod(c$, "getUnknownCheckBoxScriptToRun", +function(item, name, what, TF){ +return null; +}, "J.api.SC,~S,~S,~B"); +Clazz.overrideMethod(c$, "getImageIcon", +function(fileName){ +return null; +}, "~S"); +Clazz.overrideMethod(c$, "menuFocusCallback", +function(name, actionCommand, b){ +}, "~S,~S,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSModelKitPopup.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSModelKitPopup.js new file mode 100755 index 000000000000..727b439b1421 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSModelKitPopup.js @@ -0,0 +1,41 @@ +Clazz.declarePackage("J.awtjs2d"); +Clazz.load(["J.modelkit.ModelKitPopup"], "J.awtjs2d.JSModelKitPopup", ["J.awtjs2d.JSPopupHelper"], function(){ +var c$ = Clazz.declareType(J.awtjs2d, "JSModelKitPopup", J.modelkit.ModelKitPopup); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.awtjs2d.JSModelKitPopup, []); +this.helper = new J.awtjs2d.JSPopupHelper(this); +}); +Clazz.overrideMethod(c$, "menuShowPopup", +function(popup, x, y){ +try { +(popup).show(this.isTainted ? this.vwr.html5Applet : null, x, y); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +this.isTainted = false; +}, "J.api.SC,~N,~N"); +Clazz.overrideMethod(c$, "menuHidePopup", +function(popup){ +try { +(popup).setVisible(false); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +}, "J.api.SC"); +Clazz.overrideMethod(c$, "getImageIcon", +function(fileName){ +return "J/modelkit/images/" + fileName; +}, "~S"); +Clazz.overrideMethod(c$, "menuCheckBoxCallback", +function(source){ +this.doMenuCheckBoxCallback(source); +}, "J.api.SC"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSPopupHelper.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSPopupHelper.js new file mode 100755 index 000000000000..a1c57f7d96f9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JSPopupHelper.js @@ -0,0 +1,93 @@ +Clazz.declarePackage("J.awtjs2d"); +Clazz.load(["J.popup.PopupHelper"], "J.awtjs2d.JSPopupHelper", ["JS.ButtonGroup", "$.JCheckBoxMenuItem", "$.JMenu", "$.JMenuItem", "$.JPopupMenu", "$.JRadioButtonMenuItem"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.popup = null; +this.buttonGroup = null; +Clazz.instantialize(this, arguments);}, J.awtjs2d, "JSPopupHelper", null, J.popup.PopupHelper); +Clazz.makeConstructor(c$, +function(popup){ +this.popup = popup; +}, "J.popup.GenericPopup"); +Clazz.overrideMethod(c$, "menuCreatePopup", +function(name, applet){ +var j = new JS.JPopupMenu(name); +j.setInvoker(applet); +return j; +}, "~S,~O"); +Clazz.overrideMethod(c$, "getMenu", +function(name){ +var jm = new JS.JMenu(); +jm.setName(name); +return jm; +}, "~S"); +Clazz.overrideMethod(c$, "getMenuItem", +function(text){ +return new JS.JMenuItem(text); +}, "~S"); +Clazz.overrideMethod(c$, "getRadio", +function(name){ +return new JS.JRadioButtonMenuItem(); +}, "~S"); +Clazz.overrideMethod(c$, "getCheckBox", +function(name){ +return new JS.JCheckBoxMenuItem(); +}, "~S"); +Clazz.overrideMethod(c$, "menuAddButtonGroup", +function(item){ +if (item == null) { +if (this.buttonGroup != null && this.buttonGroup.getButtonCount() > 0) this.buttonGroup = null; +return; +}if (this.buttonGroup == null) this.buttonGroup = new JS.ButtonGroup(); +this.buttonGroup.add(item); +}, "J.api.SC"); +Clazz.overrideMethod(c$, "getItemType", +function(m){ +return (m).btnType; +}, "J.api.SC"); +Clazz.overrideMethod(c$, "menuInsertSubMenu", +function(menu, subMenu, index){ +(subMenu).setParent(menu); +}, "J.api.SC,J.api.SC,~N"); +Clazz.overrideMethod(c$, "getSwingComponent", +function(component){ +return component; +}, "~O"); +Clazz.overrideMethod(c$, "menuClearListeners", +function(menu){ +if (menu != null) (menu).disposeMenu(); +}, "J.api.SC"); +Clazz.defineMethod(c$, "itemStateChanged", +function(e){ +if (this.popup != null) this.popup.menuCheckBoxCallback(e.getSource()); +}, "java.awt.event.ItemEvent"); +Clazz.defineMethod(c$, "actionPerformed", +function(e){ +if (this.popup != null) this.popup.menuClickCallback(e.getSource(), e.getActionCommand()); +}, "java.awt.event.ActionEvent"); +Clazz.overrideMethod(c$, "getButtonGroup", +function(){ +return this.buttonGroup; +}); +Clazz.defineMethod(c$, "handleEvent", +function(e){ +var type = "" + e.getID(); +if (type === "mouseenter") this.mouseEntered(e); + else if (type === "mouseleave") this.mouseExited(e); +}, "java.awt.event.MouseEvent"); +Clazz.defineMethod(c$, "mouseEntered", +function(e){ +var jmi = e.getSource(); +this.popup.menuFocusCallback(jmi.getName(), jmi.getActionCommand(), true); +}, "java.awt.event.MouseEvent"); +Clazz.defineMethod(c$, "mouseExited", +function(e){ +var jmi = e.getSource(); +this.popup.menuFocusCallback(jmi.getName(), jmi.getActionCommand(), false); +}, "java.awt.event.MouseEvent"); +Clazz.overrideMethod(c$, "dispose", +function(popupMenu){ +this.menuClearListeners(popupMenu); +this.popup = null; +}, "J.api.SC"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JsG2D.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JsG2D.js new file mode 100755 index 000000000000..386a35c4012d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/JsG2D.js @@ -0,0 +1,180 @@ +Clazz.declarePackage("J.awtjs2d"); +Clazz.load(["J.api.GenericGraphics"], "J.awtjs2d.JsG2D", ["JU.CU", "JS.Color", "J.awtjs2d.Platform"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.windowWidth = 0; +this.windowHeight = 0; +this.isShifted = false; +this.inPath = false; +Clazz.instantialize(this, arguments);}, J.awtjs2d, "JsG2D", null, J.api.GenericGraphics); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "getColor4", +function(r, g, b, a){ +return JS.Color.get4(r, g, b, a); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "getColor3", +function(r, g, b){ +return JS.Color.get3(r, g, b); +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "getColor1", +function(rgb){ +return JS.Color.get1(rgb); +}, "~N"); +Clazz.overrideMethod(c$, "newGrayScaleImage", +function(context, image, width, height, grayBuffer){ +return J.awtjs2d.Platform.Jmol().newGrayScaleImage(context, image, width, height, grayBuffer); +}, "~O,~O,~N,~N,~A"); +Clazz.overrideMethod(c$, "drawGrayScaleImage", +function(g, image, destX0, destY0, destX1, destY1, srcX0, srcY0, srcX1, srcY1){ +var iw; +var ih; +{ +iw = image.w; +ih = image.h; +}var dw = (destX1 - destX0 + 1); +var dh = (destY1 - destY0 + 1); +var sw = (srcX1 - srcX0 + 1); +var sh = (srcY1 - srcY0 + 1); +var x = -srcX0 * dw / sw; +var w = iw * dw / sw; +var y = -srcY0 * dh / sh; +var h = ih * dh / sh; +{ +image.width = w; +image.height = h; +var div = image.div; +var layer = image.layer; +layer.style.left = destX0 + "px"; +layer.style.top = destY0 + "px"; +layer.style.width = dw + "px"; +layer.style.height = dh+ "px"; +div.style.left= x + "px"; +div.style.top = y + "px"; +div.style.width = w + "px"; +div.style.height = h + "px"; +}}, "~O,~O,~N,~N,~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawLine", +function(g, x0, y0, x1, y1){ +var inPath = this.inPath; +{ +if (!inPath) g.beginPath(); +g.moveTo(x0, y0); +g.lineTo(x1, y1); +if (!inPath) g.stroke(); +}}, "~O,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawCircle", +function(g, x, y, diameter){ +{ +var r = diameter/2; +g.beginPath(); +g.arc(x + r, y + r, r, 0, 2 * Math.PI, false); +g.stroke(); +}}, "~O,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawPolygon", +function(g, ayPoints, axPoints, nPoints){ +this.doPoly(g, ayPoints, axPoints, nPoints, false); +}, "~O,~A,~A,~N"); +Clazz.defineMethod(c$, "doPoly", +function(g, axPoints, ayPoints, nPoints, doFill){ +{ +g.beginPath(); +g.moveTo(axPoints[0], ayPoints[0]); +for (var i = 1; i < nPoints; i++) +g.lineTo(axPoints[i], ayPoints[i]); +if (doFill) +g.fill(); +else +g.stroke(); +}}, "~O,~A,~A,~N,~B"); +Clazz.overrideMethod(c$, "drawRect", +function(g, x, y, width, height){ +{ +g.beginPath(); +g.rect(x ,y, width, height); +g.stroke(); +}}, "~O,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawString", +function(g, s, x, y){ +{ +g.fillText(s,x,y); +}}, "~O,~S,~N,~N"); +Clazz.overrideMethod(c$, "drawStringRotated", +function(g, s, x, y, angle){ +}, "~O,~S,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillBackground", +function(g, bgcolor){ +if (bgcolor == null) { +{ +if (!this.isShifted) { +g.translate(-0.5, -0.5); +this.isShifted = true; +} +g.clearRect(0,0, this.windowWidth, this.windowHeight); +return; +}}this.setGraphicsColor(g, bgcolor); +this.fillRect(g, 0, 0, this.windowWidth, this.windowHeight); +}, "~O,javajs.api.GenericColor"); +Clazz.overrideMethod(c$, "fillCircle", +function(g, x, y, diameter){ +{ +var r = diameter/2; +g.beginPath(); +g.arc(x + r, y + r, r, 0, 2 * Math.PI, false); +g.fill(); +}}, "~O,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillPolygon", +function(g, ayPoints, axPoints, nPoints){ +this.doPoly(g, ayPoints, axPoints, nPoints, true); +}, "~O,~A,~A,~N"); +Clazz.overrideMethod(c$, "fillRect", +function(g, x, y, width, height){ +{ +g.fillRect(x, y, width, height); +}}, "~O,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "setGraphicsColor", +function(g, c){ +var s = JU.CU.toCSSString(c); +{ +g.fillStyle = g.strokeStyle = s; +}}, "~O,javajs.api.GenericColor"); +Clazz.overrideMethod(c$, "setFont", +function(g, font){ +var s = font.getInfo(); +var pt = s.indexOf(" "); +s = s.substring(0, pt) + "px" + s.substring(pt); +{ +g.font = s; +}return font; +}, "~O,JU.Font"); +Clazz.overrideMethod(c$, "setStrokeBold", +function(g, tf){ +{ +g.lineWidth = (tf ? 2 : 1); +}}, "~O,~B"); +Clazz.overrideMethod(c$, "setWindowParameters", +function(width, height){ +this.windowWidth = width; +this.windowHeight = height; +}, "~N,~N"); +Clazz.overrideMethod(c$, "translateScale", +function(g, x, y, scale){ +}, "~O,~N,~N,~N"); +Clazz.overrideMethod(c$, "canDoLineTo", +function(){ +return true; +}); +Clazz.overrideMethod(c$, "doStroke", +function(g, isBegin){ +this.inPath = isBegin; +{ +if (isBegin) { +g.beginPath(); +} else { +g.stroke(); +} +}}, "~O,~B"); +Clazz.overrideMethod(c$, "lineTo", +function(g, x2, y2){ +{ +g.lineTo(x2, y2); +}}, "~O,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Mouse.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Mouse.js new file mode 100755 index 000000000000..83cb4b26c36b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Mouse.js @@ -0,0 +1,290 @@ +Clazz.declarePackage("J.awtjs2d"); +Clazz.load(["J.api.GenericMouseInterface"], "J.awtjs2d.Mouse", ["JU.PT", "$.V3", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.manager = null; +this.keyBuffer = ""; +this.isMouseDown = false; +this.wheeling = false; +this.modifiersDown = 0; +this.xWhenPressed = 0; +this.yWhenPressed = 0; +this.modifiersWhenPressed10 = 0; +Clazz.instantialize(this, arguments);}, J.awtjs2d, "Mouse", null, J.api.GenericMouseInterface); +Clazz.makeConstructor(c$, +function(privateKey, vwr, display){ +this.vwr = vwr; +this.manager = this.vwr.acm; +}, "~N,JV.Viewer,~O"); +Clazz.overrideMethod(c$, "clear", +function(){ +}); +Clazz.overrideMethod(c$, "dispose", +function(){ +}); +Clazz.overrideMethod(c$, "processEvent", +function(id, x, y, modifiers, time){ +if (id != 507) modifiers = J.awtjs2d.Mouse.applyLeftMouse(modifiers); +switch (id) { +case 507: +this.wheeled(time, x, modifiers); +break; +case 501: +this.xWhenPressed = x; +this.yWhenPressed = y; +this.modifiersWhenPressed10 = modifiers; +this.pressed(time, x, y, modifiers, false); +break; +case 506: +this.dragged(time, x, y); +break; +case 504: +this.entry(time, x, y, false); +break; +case 505: +this.entry(time, x, y, true); +break; +case 503: +this.moved(time, x, y, modifiers); +break; +case 502: +this.released(time, x, y, modifiers); +if (x == this.xWhenPressed && y == this.yWhenPressed && modifiers == this.modifiersWhenPressed10) { +this.clicked(time, x, y, modifiers, 1); +}break; +default: +return false; +} +return true; +}, "~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "processTwoPointGesture", +function(touches){ +if (touches[0].length < 2) return; +var t1 = touches[0]; +var t2 = touches[1]; +var t1first = t1[0]; +var t1last = t1[t2.length - 1]; +var x1first = t1first[0]; +var x1last = t1last[0]; +var dx1 = x1last - x1first; +var y1first = t1first[1]; +var y1last = t1last[1]; +var dy1 = y1last - y1first; +var v1 = JU.V3.new3(dx1, dy1, 0); +var d1 = v1.length(); +var t2first = t2[0]; +var t2last = t2[t2.length - 1]; +var x2first = t2first[0]; +var x2last = t2last[0]; +var dx2 = x2last - x2first; +var y2first = t2first[1]; +var y2last = t2last[1]; +var dy2 = y2last - y2first; +var v2 = JU.V3.new3(dx2, dy2, 0); +var d2 = v2.length(); +if (d1 < 1 || d2 < 1) return; +v1.normalize(); +v2.normalize(); +var cos12 = (v1.dot(v2)); +if (cos12 > 0.8) { +var deltaX = Clazz.floatToInt(x1last - t1[t1.length - 2][0]); +var deltaY = Clazz.floatToInt(y1last - t1[t1.length - 2][1]); +this.vwr.translateXYBy(deltaX, deltaY); +} else if (cos12 < -0.8) { +v1 = JU.V3.new3(x2first - x1first, y2first - y1first, 0); +v2 = JU.V3.new3(x2last - x1last, y2last - y1last, 0); +var dx = v2.length() - v1.length(); +this.wheeled(System.currentTimeMillis(), dx < 0 ? -1 : 1, 32); +}}, "~A"); +Clazz.defineMethod(c$, "mouseClicked", +function(e){ +this.clicked(e.getWhen(), e.getX(), e.getY(), e.getModifiers(), e.getClickCount()); +}, "java.awt.event.MouseEvent"); +Clazz.defineMethod(c$, "mouseEntered", +function(e){ +this.entry(e.getWhen(), e.getX(), e.getY(), false); +}, "java.awt.event.MouseEvent"); +Clazz.defineMethod(c$, "mouseExited", +function(e){ +this.entry(e.getWhen(), e.getX(), e.getY(), true); +}, "java.awt.event.MouseEvent"); +Clazz.defineMethod(c$, "mousePressed", +function(e){ +this.pressed(e.getWhen(), e.getX(), e.getY(), e.getModifiers(), e.isPopupTrigger()); +}, "java.awt.event.MouseEvent"); +Clazz.defineMethod(c$, "mouseReleased", +function(e){ +this.released(e.getWhen(), e.getX(), e.getY(), e.getModifiers()); +}, "java.awt.event.MouseEvent"); +Clazz.defineMethod(c$, "mouseDragged", +function(e){ +var modifiers = e.getModifiers(); +if ((modifiers & 28) == 0) modifiers |= 16; +this.dragged(e.getWhen(), e.getX(), e.getY()); +}, "java.awt.event.MouseEvent"); +Clazz.defineMethod(c$, "mouseMoved", +function(e){ +this.moved(e.getWhen(), e.getX(), e.getY(), e.getModifiers()); +}, "java.awt.event.MouseEvent"); +Clazz.defineMethod(c$, "mouseWheelMoved", +function(e){ +e.consume(); +this.wheeled(e.getWhen(), e.getWheelRotation(), e.getModifiers()); +}, "java.awt.event.MouseWheelEvent"); +Clazz.defineMethod(c$, "keyTyped", +function(ke){ +ke.consume(); +if (!this.vwr.menuEnabled()) return; +var ch = ke.getKeyChar(); +var modifiers = ke.getModifiers(); +if (JU.Logger.debuggingHigh) JU.Logger.debug("MouseManager keyTyped: " + ch + " " + (0 + ch.charCodeAt(0)) + " " + modifiers); +if (modifiers != 0 && modifiers != 1) { +switch ((ch).charCodeAt(0)) { +case String.fromCharCode(11): +case 107: +var isON = !this.vwr.getBooleanProperty("allowKeyStrokes"); +switch (modifiers) { +case 2: +this.vwr.setBooleanProperty("allowKeyStrokes", isON); +this.vwr.setBooleanProperty("showKeyStrokes", true); +break; +case 10: +case 1: +this.vwr.setBooleanProperty("allowKeyStrokes", isON); +this.vwr.setBooleanProperty("showKeyStrokes", false); +break; +} +this.clearKeyBuffer(); +this.vwr.refresh(3, "showkey"); +break; +case 22: +case 118: +switch (modifiers) { +case 2: +break; +} +break; +case 26: +case 122: +switch (modifiers) { +case 2: +this.vwr.undoMoveAction(4165, 1); +break; +case 3: +this.vwr.undoMoveAction(4140, 1); +break; +} +break; +case 25: +case 121: +switch (modifiers) { +case 2: +this.vwr.undoMoveAction(4140, 1); +break; +} +break; +} +return; +}if (!this.vwr.getBooleanProperty("allowKeyStrokes")) return; +this.addKeyBuffer(ke.getModifiers() == 1 ? Character.toUpperCase(ch) : ch); +}, "java.awt.event.KeyEvent"); +Clazz.defineMethod(c$, "keyPressed", +function(ke){ +if (this.vwr.isApplet) ke.consume(); +this.manager.keyPressed(ke.getKeyCode(), ke.getModifiers()); +}, "java.awt.event.KeyEvent"); +Clazz.defineMethod(c$, "keyReleased", +function(ke){ +ke.consume(); +this.manager.keyReleased(ke.getKeyCode()); +}, "java.awt.event.KeyEvent"); +Clazz.defineMethod(c$, "clearKeyBuffer", +function(){ +if (this.keyBuffer.length == 0) return; +this.keyBuffer = ""; +if (this.vwr.getBooleanProperty("showKeyStrokes")) this.vwr.evalStringQuietSync("!set echo _KEYSTROKES; set echo bottom left;echo \"\"", true, true); +}); +Clazz.defineMethod(c$, "addKeyBuffer", +function(ch){ +if (ch.charCodeAt(0) == 10) { +this.sendKeyBuffer(); +return; +}if (ch.charCodeAt(0) == 8) { +if (this.keyBuffer.length > 0) this.keyBuffer = this.keyBuffer.substring(0, this.keyBuffer.length - 1); +} else { +this.keyBuffer += ch; +}if (this.vwr.getBooleanProperty("showKeyStrokes")) this.vwr.evalStringQuietSync("!set echo _KEYSTROKES; set echo bottom left;echo " + JU.PT.esc("\1" + this.keyBuffer), true, true); +}, "~S"); +Clazz.defineMethod(c$, "sendKeyBuffer", +function(){ +var kb = this.keyBuffer; +if (this.vwr.getBooleanProperty("showKeyStrokes")) this.vwr.evalStringQuietSync("!set echo _KEYSTROKES; set echo bottom left;echo " + JU.PT.esc(this.keyBuffer), true, true); +this.clearKeyBuffer(); +this.vwr.evalStringQuietSync(kb, false, true); +}); +Clazz.defineMethod(c$, "entry", +function(time, x, y, isExit){ +this.wheeling = false; +this.isMouseDown = false; +this.modifiersDown = 0; +this.manager.mouseEnterExit(time, x, y, isExit); +}, "~N,~N,~N,~B"); +Clazz.defineMethod(c$, "clicked", +function(time, x, y, modifiers, clickCount){ +this.clearKeyBuffer(); +this.manager.mouseAction(2, time, x, y, 1, modifiers); +}, "~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "moved", +function(time, x, y, modifiers){ +this.clearKeyBuffer(); +if (this.isMouseDown) this.manager.mouseAction(1, time, x, y, 0, this.modifiersDown); + else this.manager.mouseAction(0, time, x, y, 0, modifiers); +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "wheeled", +function(time, rotation, modifiers){ +this.clearKeyBuffer(); +this.wheeling = true; +this.manager.mouseAction(3, time, 0, rotation, 0, modifiers & -29 | 32); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "pressed", +function(time, x, y, modifiers, isPopupTrigger){ +this.clearKeyBuffer(); +this.isMouseDown = true; +this.modifiersDown = modifiers; +this.wheeling = false; +this.manager.mouseAction(4, time, x, y, 0, modifiers); +}, "~N,~N,~N,~N,~B"); +Clazz.defineMethod(c$, "released", +function(time, x, y, modifiers){ +this.isMouseDown = false; +this.modifiersDown = 0; +this.wheeling = false; +this.manager.mouseAction(5, time, x, y, 0, modifiers); +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "dragged", +function(time, x, y){ +if (this.wheeling) return; +if ((this.modifiersDown & 20) == 20) this.modifiersDown = this.modifiersDown & -5 | 2; +this.manager.mouseAction(1, time, x, y, 0, this.modifiersDown); +}, "~N,~N,~N"); +c$.applyLeftMouse = Clazz.defineMethod(c$, "applyLeftMouse", +function(modifiers){ +return ((modifiers & 28) == 0) ? (modifiers | 16) : modifiers; +}, "~N"); +Clazz.overrideMethod(c$, "processKeyEvent", +function(event){ +var e = event; +switch (e.getID()) { +case 401: +this.keyPressed(e); +break; +case 402: +this.keyReleased(e); +break; +case 400: +this.keyTyped(e); +break; +} +}, "~O"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Platform.js b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Platform.js new file mode 100755 index 000000000000..9a4991dab4d3 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/awtjs2d/Platform.js @@ -0,0 +1,288 @@ +Clazz.declarePackage("J.awtjs2d"); +Clazz.load(["J.api.GenericPlatform"], "J.awtjs2d.Platform", ["java.net.URL", "JU.AjaxURLStreamHandlerFactory", "$.Rdr", "J.api.Interface", "J.awtjs2d.Display", "$.Image", "$.JSFile", "$.JSFont", "$.Mouse"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.canvas = null; +this.vwr = null; +this.context = null; +Clazz.instantialize(this, arguments);}, J.awtjs2d, "Platform", null, J.api.GenericPlatform); +Clazz.overrideMethod(c$, "setViewer", +function(vwr, canvas){ +{ +this.vwr = vwr; +if (canvas == null) { +canvas = document.createElement('canvas'); +this.context = canvas.getContext("2d"); +} else { +this.context = canvas.getContext("2d"); +canvas.imgdata = this.context.getImageData(0, 0, canvas.width, canvas.height); +canvas.buf8 = canvas.imgdata.data; +} +}this.canvas = canvas; +try { +java.net.URL.setURLStreamHandlerFactory( new JU.AjaxURLStreamHandlerFactory()); +} catch (e) { +} +}, "J.api.PlatformViewer,~O"); +Clazz.overrideMethod(c$, "isSingleThreaded", +function(){ +return true; +}); +Clazz.overrideMethod(c$, "getJsObjectInfo", +function(jsObject, method, args){ +{ +return (method == null ? null : method == "localName" ? jsObject[0]["nodeName"] : args == null ? jsObject[0][method] : jsObject[0][method](args[0])); +}}, "~A,~S,~A"); +Clazz.overrideMethod(c$, "isHeadless", +function(){ +return false; +}); +Clazz.overrideMethod(c$, "getMouseManager", +function(privateKey, display){ +return new J.awtjs2d.Mouse(privateKey, this.vwr, display); +}, "~N,~O"); +Clazz.overrideMethod(c$, "convertPointFromScreen", +function(canvas, ptTemp){ +J.awtjs2d.Display.convertPointFromScreen(canvas, ptTemp); +}, "~O,JU.P3"); +Clazz.overrideMethod(c$, "getFullScreenDimensions", +function(canvas, widthHeight){ +J.awtjs2d.Display.getFullScreenDimensions(canvas, widthHeight); +}, "~O,~A"); +Clazz.overrideMethod(c$, "getMenuPopup", +function(menuStructure, type){ +var c = (type == 'j' ? "awtjs2d.JSJmolPopup" : "awtjs2d.JSModelKitPopup"); +var jmolpopup = J.api.Interface.getOption(c, this.vwr, "popup"); +try { +if (jmolpopup != null) jmolpopup.jpiInitialize(this.vwr, menuStructure); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +c = "Exception creating " + c + ":" + e; +System.out.println(c); +return null; +} else { +throw e; +} +} +return jmolpopup; +}, "~S,~S"); +Clazz.overrideMethod(c$, "hasFocus", +function(canvas){ +return J.awtjs2d.Display.hasFocus(canvas); +}, "~O"); +Clazz.overrideMethod(c$, "prompt", +function(label, data, list, asButtons){ +return J.awtjs2d.Display.prompt(label, data, list, asButtons); +}, "~S,~S,~A,~B"); +Clazz.overrideMethod(c$, "renderScreenImage", +function(context, size){ +J.awtjs2d.Display.renderScreenImage(this.vwr, context, size); +}, "~O,~O"); +Clazz.overrideMethod(c$, "drawImage", +function(context, canvas, x, y, width, height, isDTI){ +J.awtjs2d.Display.drawImage(context, canvas, x, y, width, height, isDTI); +}, "~O,~O,~N,~N,~N,~N,~B"); +Clazz.overrideMethod(c$, "requestFocusInWindow", +function(canvas){ +J.awtjs2d.Display.requestFocusInWindow(canvas); +}, "~O"); +Clazz.overrideMethod(c$, "repaint", +function(canvas){ +var jmol = null; +{ +jmol = (self.Jmol && Jmol.repaint ? Jmol : null); +}if (jmol != null) jmol.repaint((this.vwr).html5Applet, true); +}, "~O"); +Clazz.overrideMethod(c$, "setTransparentCursor", +function(canvas){ +}, "~O"); +Clazz.overrideMethod(c$, "setCursor", +function(c, canvas){ +J.awtjs2d.Platform.Jmol().setCursor((this.vwr).html5Applet, c); +}, "~N,~O"); +Clazz.overrideMethod(c$, "allocateRgbImage", +function(windowWidth, windowHeight, pBuffer, windowSize, backgroundTransparent, isImageWrite){ +if (pBuffer == null) { +pBuffer = this.grabPixels(null, 0, 0, null); +{ +windowWidth = this.canvas.width; +windowHeight = this.canvas.height; +}}return J.awtjs2d.Image.allocateRgbImage(windowWidth, windowHeight, pBuffer, windowSize, backgroundTransparent, (isImageWrite ? null : this.canvas)); +}, "~N,~N,~A,~N,~B,~B"); +Clazz.overrideMethod(c$, "notifyEndOfRendering", +function(){ +}); +Clazz.overrideMethod(c$, "disposeGraphics", +function(gOffscreen){ +}, "~O"); +Clazz.overrideMethod(c$, "grabPixels", +function(canvas, width, height, pixels){ +var context2d = null; +var isWebGL = (canvas == null); +{ +if(isWebGL) { this.canvas = canvas = +Jmol.loadImage(this,"webgl","" ++System.currentTimeMillis(),this +.vwr.html5Applet._canvas.toDataURL(),null,null); width = +canvas.imageWidth; height = canvas.imageHeight; +canvas.imageWidth = 0; } +if (canvas.image && (width != canvas.width || height != +canvas.height)) Jmol.setCanvasImage(canvas, width, height); +if (canvas.buf32) return canvas.buf32; context2d = +canvas.getContext('2d'); +}var buf = J.awtjs2d.Image.grabPixels(context2d, width, height); +{ +canvas.buf32 = buf; +}if (isWebGL) for (var i = buf.length; --i >= 0; ) if (buf[i] == 0) buf[i] = -1; + +return buf; +}, "~O,~N,~N,~A"); +Clazz.overrideMethod(c$, "drawImageToBuffer", +function(gOffscreen, imageOffscreen, canvas, width, height, bgcolor){ +return this.grabPixels(canvas, width, height, null); +}, "~O,~O,~O,~N,~N,~N"); +Clazz.overrideMethod(c$, "getTextPixels", +function(text, font3d, context, image, width, height, ascent){ +return J.awtjs2d.Image.getTextPixels(text, font3d, context, width, height, ascent); +}, "~S,JU.Font,~O,~O,~N,~N,~N"); +Clazz.overrideMethod(c$, "flushImage", +function(imagePixelBuffer){ +}, "~O"); +Clazz.overrideMethod(c$, "getGraphics", +function(canvas){ +{ +return (canvas == null ? this.context : canvas.getContext("2d")); +}}, "~O"); +Clazz.overrideMethod(c$, "getImageHeight", +function(canvas){ +return (canvas == null ? -1 : J.awtjs2d.Image.getHeight(canvas)); +}, "~O"); +Clazz.overrideMethod(c$, "getImageWidth", +function(canvas){ +return (canvas == null ? -1 : J.awtjs2d.Image.getWidth(canvas)); +}, "~O"); +Clazz.overrideMethod(c$, "getStaticGraphics", +function(image, backgroundTransparent){ +return this.getGraphics(image); +}, "~O,~B"); +Clazz.overrideMethod(c$, "newBufferedImage", +function(image, w, h){ +return J.awtjs2d.Platform.Jmol().getHiddenCanvas((this.vwr).html5Applet, "stereoImage", w, h); +}, "~O,~N,~N"); +Clazz.overrideMethod(c$, "newOffScreenImage", +function(w, h){ +return J.awtjs2d.Platform.Jmol().getHiddenCanvas((this.vwr).html5Applet, "textImage", w, h); +}, "~N,~N"); +Clazz.overrideMethod(c$, "waitForDisplay", +function(echoNameAndPath, zipBytes){ +return false; +}, "~O,~O"); +Clazz.overrideMethod(c$, "createImage", +function(name_path_bytes){ +var echoName = (name_path_bytes)[0]; +var path = (name_path_bytes)[1]; +var bytes = (name_path_bytes)[2]; +var vwr = this.vwr; +var sc = (bytes == null ? vwr.getEvalContextAndHoldQueue(vwr.eval) : null); +var f = null; +{ +f = function(canvas, pathOrError) { vwr.loadImageData(canvas, pathOrError, echoName, sc) }; +}return J.awtjs2d.Platform.Jmol().loadImage(this, echoName, path, bytes, f); +}, "~O"); +Clazz.overrideMethod(c$, "fontStringWidth", +function(font, text){ +return J.awtjs2d.JSFont.stringWidth(font, this.context, text); +}, "JU.Font,~S"); +Clazz.overrideMethod(c$, "getFontAscent", +function(context){ +return J.awtjs2d.JSFont.getAscent(context); +}, "~O"); +Clazz.overrideMethod(c$, "getFontDescent", +function(context){ +return J.awtjs2d.JSFont.getDescent(context); +}, "~O"); +Clazz.overrideMethod(c$, "getFontMetrics", +function(font, context){ +return J.awtjs2d.JSFont.getFontMetrics(font, context == null ? this.context : context); +}, "JU.Font,~O"); +Clazz.overrideMethod(c$, "newFont", +function(fontFace, isBold, isItalic, fontSize){ +return J.awtjs2d.JSFont.newFont(fontFace, isBold, isItalic, fontSize, "px"); +}, "~S,~B,~B,~N"); +Clazz.overrideMethod(c$, "getDateFormat", +function(isoType){ +{ +if (isoType == null) { +} else if (isoType.indexOf("8824") >= 0) { +var d = new Date(); +var x = d.toString().split(" "); +var MM = "0" + (1 + d.getMonth()); MM = MM.substring(MM.length - 2); +var dd = "0" + d.getDate(); dd = dd.substring(dd.length - 2); +return x[3] + MM + dd + x[4].replace(/\:/g,"") + x[5].substring(3,6) + "'" + x[5].substring(6,8) + "'" +} else if (isoType.indexOf("8601") >= 0){ +var d = new Date(); +var x = d.toString().split(" "); +// Firefox now doing this? +if (x.length == 1) +return x; +var MM = "0" + (1 + d.getMonth()); MM = MM.substring(MM.length - 2); +var dd = "0" + d.getDate(); dd = dd.substring(dd.length - 2); +return x[3] + '-' + MM + '-' + dd + 'T' + x[4] +} +return ("" + (new Date())).split(" (")[0]; +}}, "~S"); +Clazz.overrideMethod(c$, "newFile", +function(name){ +return new J.awtjs2d.JSFile(name); +}, "~S"); +Clazz.overrideMethod(c$, "getBufferedFileInputStream", +function(name){ +return null; +}, "~S"); +Clazz.overrideMethod(c$, "getURLContents", +function(url, outputBytes, post, asString){ +return J.awtjs2d.Platform.getURLContentsStatic(url, outputBytes, post, asString); +}, "java.net.URL,~A,~S,~B"); +c$.getURLContentsStatic = Clazz.defineMethod(c$, "getURLContentsStatic", +function(url, outputBytes, post, asString){ +var ret = J.awtjs2d.JSFile.getURLContents(url, outputBytes, post); +try { +return (!asString ? ret : (typeof(ret)=='string') ? ret : Clazz.instanceOf(ret,"JU.SB") ? (ret).toString() : Clazz.instanceOf(ret,Array) ? String.instantialize(ret) : String.instantialize(JU.Rdr.getStreamAsBytes(ret, null))); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return "" + e; +} else { +throw e; +} +} +}, "java.net.URL,~A,~S,~B"); +Clazz.overrideMethod(c$, "getLocalUrl", +function(fileName){ +return null; +}, "~S"); +Clazz.overrideMethod(c$, "getImageDialog", +function(title, imageMap){ +return J.awtjs2d.Image.getImageDialog(this.vwr, title, imageMap); +}, "~S,java.util.Map"); +c$.Jmol = Clazz.defineMethod(c$, "Jmol", +function(){ +{ +return Jmol; +}}); +Clazz.overrideMethod(c$, "forceAsyncLoad", +function(filename){ +return J.awtjs2d.Platform.Jmol().isBinaryUrl(filename); +}, "~S"); +Clazz.overrideMethod(c$, "getInChI", +function(){ +return (J.awtjs2d.Platform.inchi == null ? (J.awtjs2d.Platform.inchi = J.api.Interface.getInterface("J.inchi.InChIJS", this.vwr, "platform")) : J.awtjs2d.Platform.inchi); +}); +Clazz.overrideMethod(c$, "confirm", +function(msg, msgNo){ +var ok = false; +if (ok) return 0; +if (msgNo != null) ok = false; +return (ok ? 1 : 2); +}, "~S,~S"); +c$.inchi = null; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/bspt/Bspf.js b/config/plugins/visualizations/jmol/static/j2s/J/bspt/Bspf.js new file mode 100755 index 000000000000..fe4ec1518e7e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/bspt/Bspf.js @@ -0,0 +1,60 @@ +Clazz.declarePackage("J.bspt"); +Clazz.load(null, "J.bspt.Bspf", ["JU.AU", "J.bspt.Bspt"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.dimMax = 0; +this.bspts = null; +this.isValid = false; +this.bsptsValid = null; +this.cubeIterators = null; +Clazz.instantialize(this, arguments);}, J.bspt, "Bspf", null); +Clazz.makeConstructor(c$, +function(dimMax){ +this.dimMax = dimMax; +this.bspts = new Array(1); +this.bsptsValid = Clazz.newBooleanArray(1, false); +this.cubeIterators = new Array(0); +}, "~N"); +Clazz.defineMethod(c$, "validateModel", +function(i, isValid){ +this.bsptsValid[i] = isValid; +}, "~N,~B"); +Clazz.defineMethod(c$, "isInitializedIndex", +function(bsptIndex){ +return this.bspts.length > bsptIndex && this.bspts[bsptIndex] != null && this.bsptsValid[bsptIndex]; +}, "~N"); +Clazz.defineMethod(c$, "addTuple", +function(bsptIndex, tuple){ +if (bsptIndex >= this.bspts.length) { +this.bspts = JU.AU.arrayCopyObject(this.bspts, bsptIndex + 1); +this.bsptsValid = JU.AU.arrayCopyBool(this.bsptsValid, bsptIndex + 1); +}var bspt = this.bspts[bsptIndex]; +if (bspt == null) { +bspt = this.bspts[bsptIndex] = new J.bspt.Bspt(this.dimMax, bsptIndex); +}bspt.addTuple(tuple); +}, "~N,JU.P3"); +Clazz.defineMethod(c$, "stats", +function(){ +for (var i = 0; i < this.bspts.length; ++i) if (this.bspts[i] != null) this.bspts[i].stats(); + +}); +Clazz.defineMethod(c$, "getCubeIterator", +function(bsptIndex){ +if (bsptIndex < 0) return this.getNewCubeIterator(-1 - bsptIndex); +if (bsptIndex >= this.cubeIterators.length) this.cubeIterators = JU.AU.arrayCopyObject(this.cubeIterators, bsptIndex + 1); +if (this.cubeIterators[bsptIndex] == null && this.bspts[bsptIndex] != null) this.cubeIterators[bsptIndex] = this.getNewCubeIterator(bsptIndex); +this.cubeIterators[bsptIndex].set(this.bspts[bsptIndex]); +return this.cubeIterators[bsptIndex]; +}, "~N"); +Clazz.defineMethod(c$, "getNewCubeIterator", +function(bsptIndex){ +return this.bspts[bsptIndex].allocateCubeIterator(); +}, "~N"); +Clazz.defineMethod(c$, "initialize", +function(modelIndex, atoms, modelAtomBitSet){ +if (this.bspts[modelIndex] != null) this.bspts[modelIndex].reset(); +for (var i = modelAtomBitSet.nextSetBit(0); i >= 0; i = modelAtomBitSet.nextSetBit(i + 1)) this.addTuple(modelIndex, atoms[i]); + +this.bsptsValid[modelIndex] = true; +}, "~N,~A,JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/bspt/Bspt.js b/config/plugins/visualizations/jmol/static/j2s/J/bspt/Bspt.js new file mode 100755 index 000000000000..f5f7d30e074e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/bspt/Bspt.js @@ -0,0 +1,32 @@ +Clazz.declarePackage("J.bspt"); +Clazz.load(null, "J.bspt.Bspt", ["J.bspt.CubeIterator", "$.Leaf"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.treeDepth = 0; +this.dimMax = 0; +this.index = 0; +this.eleRoot = null; +Clazz.instantialize(this, arguments);}, J.bspt, "Bspt", null); +Clazz.makeConstructor(c$, +function(dimMax, index){ +this.dimMax = dimMax; +this.index = index; +this.reset(); +}, "~N,~N"); +Clazz.defineMethod(c$, "reset", +function(){ +this.eleRoot = new J.bspt.Leaf(this, null, 0); +this.treeDepth = 1; +}); +Clazz.defineMethod(c$, "addTuple", +function(tuple){ +this.eleRoot = this.eleRoot.addTuple(0, tuple); +}, "JU.T3"); +Clazz.defineMethod(c$, "stats", +function(){ +}); +Clazz.defineMethod(c$, "allocateCubeIterator", +function(){ +return new J.bspt.CubeIterator(this); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/bspt/CubeIterator.js b/config/plugins/visualizations/jmol/static/j2s/J/bspt/CubeIterator.js new file mode 100755 index 000000000000..182122379d98 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/bspt/CubeIterator.js @@ -0,0 +1,103 @@ +Clazz.declarePackage("J.bspt"); +(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.bspt = null; +this.stack = null; +this.sp = 0; +this.leafIndex = 0; +this.leaf = null; +this.radius = 0; +this.cx = 0; +this.cy = 0; +this.cz = 0; +this.dx = 0; +this.dy = 0; +this.dz = 0; +this.tHemisphere = false; +Clazz.instantialize(this, arguments);}, J.bspt, "CubeIterator", null); +Clazz.makeConstructor(c$, +function(bspt){ +this.set(bspt); +}, "J.bspt.Bspt"); +Clazz.defineMethod(c$, "set", +function(bspt){ +this.bspt = bspt; +this.stack = new Array(bspt.treeDepth); +}, "J.bspt.Bspt"); +Clazz.defineMethod(c$, "initialize", +function(center, radius, hemisphereOnly){ +this.radius = radius; +this.tHemisphere = false; +this.cx = center.x; +this.cy = center.y; +this.cz = center.z; +this.leaf = null; +if (this.stack.length < this.bspt.treeDepth) this.set(this.bspt); +this.stack[0] = this.bspt.eleRoot; +this.sp = 1; +this.findLeftLeaf(); +this.tHemisphere = hemisphereOnly; +}, "JU.T3,~N,~B"); +Clazz.defineMethod(c$, "release", +function(){ +this.set(this.bspt); +}); +Clazz.defineMethod(c$, "hasMoreElements", +function(){ +while (this.leaf != null) { +for (; this.leafIndex < this.leaf.count; ++this.leafIndex) if (this.isWithinRadius(this.leaf.tuples[this.leafIndex])) return true; + +this.findLeftLeaf(); +} +return false; +}); +Clazz.defineMethod(c$, "nextElement", +function(){ +return this.leaf.tuples[this.leafIndex++]; +}); +Clazz.defineMethod(c$, "foundDistance2", +function(){ +return this.dx * this.dx + this.dy * this.dy + this.dz * this.dz; +}); +Clazz.defineMethod(c$, "findLeftLeaf", +function(){ +this.leaf = null; +if (this.sp == 0) return; +var ele = this.stack[--this.sp]; +while (Clazz.instanceOf(ele,"J.bspt.Node")) { +var node = ele; +var minValue; +switch (node.dim) { +case 0: +minValue = this.cx; +break; +case 1: +minValue = this.cy; +break; +case 2: +default: +minValue = this.cz; +break; +} +var maxValue = minValue + this.radius; +if (!this.tHemisphere || node.dim != 0) minValue -= this.radius; +if (minValue <= node.maxLeft && maxValue >= node.minLeft) { +if (maxValue >= node.minRight && minValue <= node.maxRight) { +this.stack[this.sp++] = node.eleRight; +}ele = node.eleLeft; +} else if (maxValue >= node.minRight && minValue <= node.maxRight) { +ele = node.eleRight; +} else { +if (this.sp == 0) return; +ele = this.stack[--this.sp]; +}} +this.leaf = ele; +this.leafIndex = 0; +}); +Clazz.defineMethod(c$, "isWithinRadius", +function(t){ +this.dx = t.x - this.cx; +return ((!this.tHemisphere || this.dx >= 0) && (this.dx = Math.abs(this.dx)) <= this.radius && (this.dy = Math.abs(t.y - this.cy)) <= this.radius && (this.dz = Math.abs(t.z - this.cz)) <= this.radius); +}, "JU.T3"); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/bspt/Element.js b/config/plugins/visualizations/jmol/static/j2s/J/bspt/Element.js new file mode 100755 index 000000000000..a8df7f79b59d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/bspt/Element.js @@ -0,0 +1,8 @@ +Clazz.declarePackage("J.bspt"); +(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.bspt = null; +this.count = 0; +Clazz.instantialize(this, arguments);}, J.bspt, "Element", null); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/bspt/Leaf.js b/config/plugins/visualizations/jmol/static/j2s/J/bspt/Leaf.js new file mode 100755 index 000000000000..7fe1ed436301 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/bspt/Leaf.js @@ -0,0 +1,43 @@ +Clazz.declarePackage("J.bspt"); +Clazz.load(["J.bspt.Element"], "J.bspt.Leaf", ["J.bspt.Node"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.tuples = null; +Clazz.instantialize(this, arguments);}, J.bspt, "Leaf", J.bspt.Element); +Clazz.makeConstructor(c$, +function(bspt, leaf, countToKeep){ +this.bspt = bspt; +this.count = 0; +this.tuples = new Array(2); +if (leaf == null) return; +for (var i = countToKeep; i < 2; ++i) { +this.tuples[this.count++] = leaf.tuples[i]; +leaf.tuples[i] = null; +} +leaf.count = countToKeep; +}, "J.bspt.Bspt,J.bspt.Leaf,~N"); +Clazz.defineMethod(c$, "sort", +function(dim){ +for (var i = this.count; --i > 0; ) { +var champion = this.tuples[i]; +var championValue = J.bspt.Node.getDimensionValue(champion, dim); +for (var j = i; --j >= 0; ) { +var challenger = this.tuples[j]; +var challengerValue = J.bspt.Node.getDimensionValue(challenger, dim); +if (challengerValue > championValue) { +this.tuples[i] = challenger; +this.tuples[j] = champion; +champion = challenger; +championValue = challengerValue; +}} +} +}, "~N"); +Clazz.overrideMethod(c$, "addTuple", +function(level, tuple){ +if (this.count < 2) { +this.tuples[this.count++] = tuple; +return this; +}var node = new J.bspt.Node(this.bspt, level, this); +return node.addTuple(level, tuple); +}, "~N,JU.T3"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/bspt/Node.js b/config/plugins/visualizations/jmol/static/j2s/J/bspt/Node.js new file mode 100755 index 000000000000..5ffb3da63efe --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/bspt/Node.js @@ -0,0 +1,72 @@ +Clazz.declarePackage("J.bspt"); +Clazz.load(["J.bspt.Element"], "J.bspt.Node", ["J.bspt.Leaf"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.dim = 0; +this.minLeft = 0; +this.maxLeft = 0; +this.eleLeft = null; +this.minRight = 0; +this.maxRight = 0; +this.eleRight = null; +Clazz.instantialize(this, arguments);}, J.bspt, "Node", J.bspt.Element); +Clazz.makeConstructor(c$, +function(bspt, level, leafLeft){ +this.bspt = bspt; +if (level == bspt.treeDepth) { +bspt.treeDepth = level + 1; +}if (leafLeft.count != 2) throw new NullPointerException(); +this.dim = level % bspt.dimMax; +leafLeft.sort(this.dim); +var leafRight = new J.bspt.Leaf(bspt, leafLeft, 1); +this.minLeft = J.bspt.Node.getDimensionValue(leafLeft.tuples[0], this.dim); +this.maxLeft = J.bspt.Node.getDimensionValue(leafLeft.tuples[leafLeft.count - 1], this.dim); +this.minRight = J.bspt.Node.getDimensionValue(leafRight.tuples[0], this.dim); +this.maxRight = J.bspt.Node.getDimensionValue(leafRight.tuples[leafRight.count - 1], this.dim); +this.eleLeft = leafLeft; +this.eleRight = leafRight; +this.count = 2; +}, "J.bspt.Bspt,~N,J.bspt.Leaf"); +Clazz.defineMethod(c$, "addTuple", +function(level, tuple){ +var dimValue = J.bspt.Node.getDimensionValue(tuple, this.dim); +++this.count; +var addLeft; +if (dimValue < this.maxLeft) { +addLeft = true; +} else if (dimValue > this.minRight) { +addLeft = false; +} else if (dimValue == this.maxLeft) { +if (dimValue == this.minRight) { +if (this.eleLeft.count < this.eleRight.count) addLeft = true; + else addLeft = false; +} else { +addLeft = true; +}} else if (dimValue == this.minRight) { +addLeft = false; +} else { +if (this.eleLeft.count < this.eleRight.count) addLeft = true; + else addLeft = false; +}if (addLeft) { +if (dimValue < this.minLeft) this.minLeft = dimValue; + else if (dimValue > this.maxLeft) this.maxLeft = dimValue; +this.eleLeft = this.eleLeft.addTuple(level + 1, tuple); +} else { +if (dimValue < this.minRight) this.minRight = dimValue; + else if (dimValue > this.maxRight) this.maxRight = dimValue; +this.eleRight = this.eleRight.addTuple(level + 1, tuple); +}return this; +}, "~N,JU.T3"); +c$.getDimensionValue = Clazz.defineMethod(c$, "getDimensionValue", +function(pt, dim){ +if (pt == null) System.out.println("bspt.Node ???"); +switch (dim) { +case 0: +return pt.x; +case 1: +return pt.y; +default: +return pt.z; +} +}, "JU.T3,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/bspt/PointIterator.js b/config/plugins/visualizations/jmol/static/j2s/J/bspt/PointIterator.js new file mode 100755 index 000000000000..89df94da09fe --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/bspt/PointIterator.js @@ -0,0 +1,96 @@ +Clazz.declarePackage("J.bspt"); +Clazz.load(null, "J.bspt.PointIterator", ["JU.BS", "$.Lst", "$.P3", "J.bspt.Bspt", "JU.BSUtil", "$.Point3fi"], function(){ +var c$ = Clazz.declareType(J.bspt, "PointIterator", null); +c$.withinDistPoints = Clazz.defineMethod(c$, "withinDistPoints", +function(distance, pt, ap3, ap31, bsSelected, ret){ +var pts = new JU.Lst(); +var bspt = new J.bspt.Bspt(3, 0); +var iter; +if (pt != null && Float.isNaN(pt.x)) { +var pt3 = new Array(ap3.length); +var p; +for (var i = pt3.length; --i >= 0; ) { +var p3 = ap3[i]; +if (p3 == null) return 0; +if (bsSelected == null) { +p = new JU.Point3fi(); +p.setT(p3); +p.i = i; +pt3[i] = p; +bspt.addTuple(p); +} else { +bspt.addTuple(p3); +}} +iter = bspt.allocateCubeIterator(); +var bsp; +if (bsSelected != null) { +bsp = JU.BS.newN(ap31.length); +for (var i = bsSelected.nextSetBit(0); i >= 0; i = bsSelected.nextSetBit(i + 1)) { +iter.initialize(ap31[i], distance, false); +var d2 = distance * distance; +while (iter.hasMoreElements()) { +if (iter.nextElement().distanceSquared(ap31[i]) <= d2) { +bsp.set(i); +break; +}} +} +ret[0] = bsp; +return 10; +}bsp = JU.BSUtil.newBitSet2(0, ap3.length); +for (var i = pt3.length; --i >= 0; ) { +iter.initialize(p = pt3[i], distance, false); +var d2 = distance * distance; +var n = 0; +while (iter.hasMoreElements()) { +var pt2 = iter.nextElement(); +if (bsp.get(pt2.i) && pt2.distanceSquared(p) <= d2 && (++n > 1)) bsp.clear(pt2.i); +} +} +for (var i = bsp.nextSetBit(0); i >= 0; i = bsp.nextSetBit(i + 1)) pts.addLast(JU.P3.newP(pt3[i])); + +ret[0] = pts; +return 1073742001; +}if (distance == 0) { +if (ap31 == null) { +var d2 = 3.4028235E38; +var pt3 = null; +for (var i = ap3.length; --i >= 0; ) { +var pta = ap3[i]; +distance = pta.distanceSquared(pt); +if (distance < d2) { +pt3 = pta; +d2 = distance; +}} +ret[0] = (pt3 == null ? "" : pt3); +return (pt3 == null ? 4 : 134217751); +}var ptsOut = Clazz.newIntArray (ap31.length, 0); +for (var i = ptsOut.length; --i >= 0; ) { +var d2 = 3.4028235E38; +var imin = -1; +pt = ap31[i]; +for (var j = ap3.length; --j >= 0; ) { +var pta = ap3[j]; +distance = pta.distanceSquared(pt); +if (distance < d2) { +imin = j; +d2 = distance; +}} +ptsOut[i] = imin; +} +ret[0] = ptsOut; +return 1275068418; +}for (var i = ap3.length; --i >= 0; ) bspt.addTuple(ap3[i]); + +iter = bspt.allocateCubeIterator(); +iter.initialize(pt, distance, false); +var d2 = distance * distance; +while (iter.hasMoreElements()) { +var pt2 = iter.nextElement(); +if (pt2.distanceSquared(pt) <= d2) pts.addLast(pt2); +} +iter.release(); +ret[0] = pts; +return 1073742001; +}, "~N,JU.P3,~A,~A,JU.BS,~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/bspt/package.html b/config/plugins/visualizations/jmol/static/j2s/J/bspt/package.html new file mode 100755 index 000000000000..84a3f4c08c13 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/bspt/package.html @@ -0,0 +1,45 @@ + + + + + + + + + Provides Binary Space Partitioning Functionality to spacially + separate data structures in n-dimensions +
+ ++ For some useful background info, search the web for "bsp tree faq". +
+ + + + diff --git a/config/plugins/visualizations/jmol/static/j2s/J/c/CBK.js b/config/plugins/visualizations/jmol/static/j2s/J/c/CBK.js new file mode 100755 index 000000000000..154e8188c3c5 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/c/CBK.js @@ -0,0 +1,47 @@ +Clazz.declarePackage("J.c"); +Clazz.load(["java.lang.Enum"], "J.c.CBK", ["JU.SB"], function(){ +var c$ = Clazz.declareType(J.c, "CBK", Enum); +c$.getCallback = Clazz.defineMethod(c$, "getCallback", +function(name){ +name = name.toUpperCase(); +var pt = name.indexOf("CALLBACK"); +if (pt > 0) name = name.substring(0, pt); +for (var item, $item = 0, $$item = J.c.CBK.values(); $item < $$item.length && ((item = $$item[$item]) || true); $item++) if (item.name().equalsIgnoreCase(name)) return item; + +return null; +}, "~S"); +c$.getNameList = Clazz.defineMethod(c$, "getNameList", +function(){ +if (J.c.CBK.nameList == null) { +var names = new JU.SB(); +for (var item, $item = 0, $$item = J.c.CBK.values(); $item < $$item.length && ((item = $$item[$item]) || true); $item++) names.append(item.name().toLowerCase()).append("Callback;"); + +J.c.CBK.nameList = names.toString(); +}return J.c.CBK.nameList; +}); +c$.nameList = null; +Clazz.defineEnumConstant(c$, "ANIMFRAME", 0, []); +Clazz.defineEnumConstant(c$, "APPLETREADY", 1, []); +Clazz.defineEnumConstant(c$, "ATOMMOVED", 2, []); +Clazz.defineEnumConstant(c$, "AUDIO", 3, []); +Clazz.defineEnumConstant(c$, "CLICK", 4, []); +Clazz.defineEnumConstant(c$, "DRAGDROP", 5, []); +Clazz.defineEnumConstant(c$, "ECHO", 6, []); +Clazz.defineEnumConstant(c$, "ERROR", 7, []); +Clazz.defineEnumConstant(c$, "EVAL", 8, []); +Clazz.defineEnumConstant(c$, "HOVER", 9, []); +Clazz.defineEnumConstant(c$, "IMAGE", 10, []); +Clazz.defineEnumConstant(c$, "LOADSTRUCT", 11, []); +Clazz.defineEnumConstant(c$, "MEASURE", 12, []); +Clazz.defineEnumConstant(c$, "MESSAGE", 13, []); +Clazz.defineEnumConstant(c$, "MINIMIZATION", 14, []); +Clazz.defineEnumConstant(c$, "MODELKIT", 15, []); +Clazz.defineEnumConstant(c$, "PICK", 16, []); +Clazz.defineEnumConstant(c$, "RESIZE", 17, []); +Clazz.defineEnumConstant(c$, "SCRIPT", 18, []); +Clazz.defineEnumConstant(c$, "SELECT", 19, []); +Clazz.defineEnumConstant(c$, "SERVICE", 20, []); +Clazz.defineEnumConstant(c$, "STRUCTUREMODIFIED", 21, []); +Clazz.defineEnumConstant(c$, "SYNC", 22, []); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/c/FIL.js b/config/plugins/visualizations/jmol/static/j2s/J/c/FIL.js new file mode 100755 index 000000000000..b51f61a55601 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/c/FIL.js @@ -0,0 +1,20 @@ +Clazz.declarePackage("J.c"); +Clazz.load(["java.lang.Enum"], "J.c.FIL", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.code = 0; +Clazz.instantialize(this, arguments);}, J.c, "FIL", Enum); +Clazz.defineMethod(c$, "getCode", +function(){ +return this.code; +}); +Clazz.makeConstructor(c$, +function(code){ +this.code = code; +}, "~N"); +Clazz.defineEnumConstant(c$, "DELETED", 0, [5]); +Clazz.defineEnumConstant(c$, "CREATED", 1, [3]); +Clazz.defineEnumConstant(c$, "CREATING_MODELSET", 2, [2]); +Clazz.defineEnumConstant(c$, "ZAPPED", 3, [0]); +Clazz.defineEnumConstant(c$, "NOT_LOADED", 4, [-1]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/c/HB.js b/config/plugins/visualizations/jmol/static/j2s/J/c/HB.js new file mode 100755 index 000000000000..2270b02eb009 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/c/HB.js @@ -0,0 +1,57 @@ +Clazz.declarePackage("J.c"); +Clazz.load(["java.lang.Enum"], "J.c.HB", null, function(){ +var c$ = Clazz.declareType(J.c, "HB", Enum); +c$.getType = Clazz.defineMethod(c$, "getType", +function(atom){ +var group = atom.group; +var considerHydrogens = !atom.isHetero(); +switch (atom.getElementNumber()) { +default: +return J.c.HB.NOT; +case 1: +if (atom.getCovalentBondCount() == 0) return J.c.HB.DONOR; +var bonds = atom.bonds; +if (bonds == null) return J.c.HB.NOT; +switch (bonds[0].getOtherAtom(atom).getElementNumber()) { +case 7: +case 8: +case 16: +return J.c.HB.DONOR; +} +return J.c.HB.NOT; +case 7: +if (atom === group.getNitrogenAtom()) return J.c.HB.DONOR; +if (group.groupID == 9) return J.c.HB.UNKNOWN; +if (atom.getCovalentHydrogenCount() > 0) return J.c.HB.DONOR; +if (considerHydrogens) return J.c.HB.ACCEPTOR; +switch (group.groupID) { +case 2: +case 3: +case 12: +case 6: +case 19: +return J.c.HB.DONOR; +} +return J.c.HB.UNKNOWN; +case 8: +if (atom === group.getCarbonylOxygenAtom() || atom.getFormalCharge() == -1) return J.c.HB.ACCEPTOR; +if (atom.getCovalentBondCount() == 0 || atom.getCovalentHydrogenCount() > 0) return J.c.HB.UNKNOWN; +if (considerHydrogens) return J.c.HB.ACCEPTOR; +switch (group.groupID) { +case 4: +case 7: +return J.c.HB.ACCEPTOR; +} +return J.c.HB.UNKNOWN; +} +}, "JM.Atom"); +c$.isPossibleHBond = Clazz.defineMethod(c$, "isPossibleHBond", +function(typeA, typeB){ +return (typeA === J.c.HB.NOT || typeB === J.c.HB.NOT ? false : typeA === J.c.HB.UNKNOWN || typeA !== typeB); +}, "J.c.HB,J.c.HB"); +Clazz.defineEnumConstant(c$, "NOT", 0, []); +Clazz.defineEnumConstant(c$, "ACCEPTOR", 1, []); +Clazz.defineEnumConstant(c$, "DONOR", 2, []); +Clazz.defineEnumConstant(c$, "UNKNOWN", 3, []); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/c/PAL.js b/config/plugins/visualizations/jmol/static/j2s/J/c/PAL.js new file mode 100755 index 000000000000..f6148fc58af5 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/c/PAL.js @@ -0,0 +1,93 @@ +Clazz.declarePackage("J.c"); +Clazz.load(["java.lang.Enum"], "J.c.PAL", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.$$name = null; +this.id = 0; +Clazz.instantialize(this, arguments);}, J.c, "PAL", Enum); +Clazz.makeConstructor(c$, +function(name, id){ +this.$$name = name; +this.id = id; +}, "~S,~N"); +c$.pidOf = Clazz.defineMethod(c$, "pidOf", +function(value){ +return (Clazz.instanceOf(value,"J.c.PAL") ? (value).id : Clazz.instanceOf(value, Byte) ? (value).byteValue() : J.c.PAL.UNKNOWN.id); +}, "~O"); +c$.isPaletteVariable = Clazz.defineMethod(c$, "isPaletteVariable", +function(pid){ +return ((pid & 64) != 0); +}, "~N"); +c$.getPalette = Clazz.defineMethod(c$, "getPalette", +function(paletteName){ +if (paletteName.indexOf('_') < 0) for (var item, $item = 0, $$item = J.c.PAL.values(); $item < $$item.length && ((item = $$item[$item]) || true); $item++) if (paletteName.equalsIgnoreCase(item.$$name)) return item; + +return (paletteName.indexOf("property_") == 0 ? J.c.PAL.PROPERTY : J.c.PAL.UNKNOWN); +}, "~S"); +c$.getPaletteID = Clazz.defineMethod(c$, "getPaletteID", +function(paletteName){ +if (paletteName.indexOf('_') < 0) for (var item, $item = 0, $$item = J.c.PAL.values(); $item < $$item.length && ((item = $$item[$item]) || true); $item++) if (paletteName.equalsIgnoreCase(item.$$name)) return item.id; + +return (paletteName.indexOf("property_") == 0 ? J.c.PAL.PROPERTY.id : J.c.PAL.UNKNOWN.id); +}, "~S"); +c$.getPaletteName = Clazz.defineMethod(c$, "getPaletteName", +function(pid){ +for (var item, $item = 0, $$item = J.c.PAL.values(); $item < $$item.length && ((item = $$item[$item]) || true); $item++) if (item.id == pid) return item.$$name; + +return null; +}, "~N"); +c$.PALETTE_VOLATILE = 0x40; +c$.PALETTE_NONE = 0; +c$.PALETTE_CPK = 1; +c$.PALETTE_PARTIAL_CHARGE = 2; +c$.PALETTE_FORMAL_CHARGE = 3; +c$.PALETTE_TEMP = 68; +c$.PALETTE_FIXEDTEMP = 5; +c$.PALETTE_SURFACE = 70; +c$.PALETTE_STRUCTURE = 7; +c$.PALETTE_AMINO = 8; +c$.PALETTE_SHAPELY = 9; +c$.PALETTE_CHAIN = 10; +c$.PALETTE_GROUP = 75; +c$.PALETTE_MONOMER = 76; +c$.PALETTE_MOLECULE = 77; +c$.PALETTE_ALTLOC = 14; +c$.PALETTE_INSERTION = 15; +c$.PALETTE_JMOL = 16; +c$.PALETTE_RASMOL = 17; +c$.PALETTE_TYPE = 18; +c$.PALETTE_ENERGY = 19; +c$.PALETTE_PROPERTY = 84; +c$.PALETTE_VARIABLE = 85; +c$.PALETTE_STRAIGHTNESS = 86; +c$.PALETTE_POLYMER = 87; +c$.PALETTE_NUCLEIC = 24; +c$.argbsCpkRasmol = Clazz.newIntArray(-1, [16716947, 33554431, 50315467, 62005794, 83951360, 113821896, 126849023, 149946368, 165324064, 184549631, 203590434, 226525328, 249210144, 268412160, 285198386, 285277952, 343965840, 377520272, 411074704, 427851920, 452961536, 480586282, 497363498, 514140714, 598026794, 796950672, 899686640, 956278016, 1339729184]); +c$.argbsCpk = Clazz.newIntArray(-1, [0xFFFF1493, 0xFFFFFFFF, 0xFFD9FFFF, 0xFFCC80FF, 0xFFC2FF00, 0xFFFFB5B5, 0xFF909090, 0xFF3050F8, 0xFFFF0D0D, 0xFF90E050, 0xFFB3E3F5, 0xFFAB5CF2, 0xFF8AFF00, 0xFFBFA6A6, 0xFFF0C8A0, 0xFFFF8000, 0xFFFFFF30, 0xFF1FF01F, 0xFF80D1E3, 0xFF8F40D4, 0xFF3DFF00, 0xFFE6E6E6, 0xFFBFC2C7, 0xFFA6A6AB, 0xFF8A99C7, 0xFF9C7AC7, 0xFFE06633, 0xFFF090A0, 0xFF50D050, 0xFFC88033, 0xFF7D80B0, 0xFFC28F8F, 0xFF668F8F, 0xFFBD80E3, 0xFFFFA100, 0xFFA62929, 0xFF5CB8D1, 0xFF702EB0, 0xFF00FF00, 0xFF94FFFF, 0xFF94E0E0, 0xFF73C2C9, 0xFF54B5B5, 0xFF3B9E9E, 0xFF248F8F, 0xFF0A7D8C, 0xFF006985, 0xFFC0C0C0, 0xFFFFD98F, 0xFFA67573, 0xFF668080, 0xFF9E63B5, 0xFFD47A00, 0xFF940094, 0xFF429EB0, 0xFF57178F, 0xFF00C900, 0xFF70D4FF, 0xFFFFFFC7, 0xFFD9FFC7, 0xFFC7FFC7, 0xFFA3FFC7, 0xFF8FFFC7, 0xFF61FFC7, 0xFF45FFC7, 0xFF30FFC7, 0xFF1FFFC7, 0xFF00FF9C, 0xFF00E675, 0xFF00D452, 0xFF00BF38, 0xFF00AB24, 0xFF4DC2FF, 0xFF4DA6FF, 0xFF2194D6, 0xFF267DAB, 0xFF266696, 0xFF175487, 0xFFD0D0E0, 0xFFFFD123, 0xFFB8B8D0, 0xFFA6544D, 0xFF575961, 0xFF9E4FB5, 0xFFAB5C00, 0xFF754F45, 0xFF428296, 0xFF420066, 0xFF007D00, 0xFF70ABFA, 0xFF00BAFF, 0xFF00A1FF, 0xFF008FFF, 0xFF0080FF, 0xFF006BFF, 0xFF545CF2, 0xFF785CE3, 0xFF8A4FE3, 0xFFA136D4, 0xFFB31FD4, 0xFFB31FBA, 0xFFB30DA6, 0xFFBD0D87, 0xFFC70066, 0xFFCC0059, 0xFFD1004F, 0xFFD90045, 0xFFE00038, 0xFFE6002E, 0xFFEB0026]); +Clazz.defineEnumConstant(c$, "UNKNOWN", 0, [null, 0xFF]); +Clazz.defineEnumConstant(c$, "NONE", 1, ["none", 0]); +Clazz.defineEnumConstant(c$, "CPK", 2, ["cpk", 1]); +Clazz.defineEnumConstant(c$, "PARTIAL_CHARGE", 3, ["partialcharge", 2]); +Clazz.defineEnumConstant(c$, "FORMAL_CHARGE", 4, ["formalcharge", 3]); +Clazz.defineEnumConstant(c$, "TEMP", 5, ["temperature", 68]); +Clazz.defineEnumConstant(c$, "FIXEDTEMP", 6, ["fixedtemperature", 5]); +Clazz.defineEnumConstant(c$, "SURFACE", 7, ["surfacedistance", 70]); +Clazz.defineEnumConstant(c$, "STRUCTURE", 8, ["structure", 7]); +Clazz.defineEnumConstant(c$, "AMINO", 9, ["amino", 8]); +Clazz.defineEnumConstant(c$, "SHAPELY", 10, ["shapely", 9]); +Clazz.defineEnumConstant(c$, "CHAIN", 11, ["chain", 10]); +Clazz.defineEnumConstant(c$, "GROUP", 12, ["group", 75]); +Clazz.defineEnumConstant(c$, "MONOMER", 13, ["monomer", 76]); +Clazz.defineEnumConstant(c$, "MOLECULE", 14, ["molecule", 77]); +Clazz.defineEnumConstant(c$, "ALTLOC", 15, ["altloc", 14]); +Clazz.defineEnumConstant(c$, "INSERTION", 16, ["insertion", 15]); +Clazz.defineEnumConstant(c$, "JMOL", 17, ["jmol", 16]); +Clazz.defineEnumConstant(c$, "RASMOL", 18, ["rasmol", 17]); +Clazz.defineEnumConstant(c$, "TYPE", 19, ["type", 18]); +Clazz.defineEnumConstant(c$, "ENERGY", 20, ["energy", 19]); +Clazz.defineEnumConstant(c$, "PROPERTY", 21, ["property", 84]); +Clazz.defineEnumConstant(c$, "VARIABLE", 22, ["variable", 85]); +Clazz.defineEnumConstant(c$, "STRAIGHTNESS", 23, ["straightness", 86]); +Clazz.defineEnumConstant(c$, "POLYMER", 24, ["polymer", 87]); +Clazz.defineEnumConstant(c$, "NUCLEIC", 25, ["nucleic", 24]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/c/STER.js b/config/plugins/visualizations/jmol/static/j2s/J/c/STER.js new file mode 100755 index 000000000000..724b5207cfac --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/c/STER.js @@ -0,0 +1,34 @@ +Clazz.declarePackage("J.c"); +Clazz.load(["java.lang.Enum"], "J.c.STER", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.$$name = null; +this.$isBiColor = false; +Clazz.instantialize(this, arguments);}, J.c, "STER", Enum); +Clazz.makeConstructor(c$, +function(name, isBiColor){ +this.$$name = name; +this.$isBiColor = isBiColor; +}, "~S,~B"); +Clazz.defineMethod(c$, "getName", +function(){ +return this.$$name; +}); +Clazz.defineMethod(c$, "isBiColor", +function(){ +return this.$isBiColor; +}); +c$.getStereoMode = Clazz.defineMethod(c$, "getStereoMode", +function(id){ +for (var item, $item = 0, $$item = J.c.STER.values(); $item < $$item.length && ((item = $$item[$item]) || true); $item++) if (item.$$name.equalsIgnoreCase(id)) return item; + +return null; +}, "~S"); +Clazz.defineEnumConstant(c$, "NONE", 0, ["OFF", false]); +Clazz.defineEnumConstant(c$, "DOUBLE", 1, ["", false]); +Clazz.defineEnumConstant(c$, "REDCYAN", 2, ["REDCYAN", true]); +Clazz.defineEnumConstant(c$, "REDBLUE", 3, ["REDBLUE", true]); +Clazz.defineEnumConstant(c$, "REDGREEN", 4, ["REDGREEN", true]); +Clazz.defineEnumConstant(c$, "DTI", 5, ["DTI", false]); +Clazz.defineEnumConstant(c$, "CUSTOM", 6, ["", true]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/c/STR.js b/config/plugins/visualizations/jmol/static/j2s/J/c/STR.js new file mode 100755 index 000000000000..29a7a4c29f8e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/c/STR.js @@ -0,0 +1,47 @@ +Clazz.declarePackage("J.c"); +Clazz.load(["java.lang.Enum"], "J.c.STR", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.id = 0; +this.color = 0; +Clazz.instantialize(this, arguments);}, J.c, "STR", Enum); +Clazz.makeConstructor(c$, +function(id, color){ +this.id = id; +this.color = color; +}, "~N,~N"); +Clazz.defineMethod(c$, "getId", +function(){ +return this.id; +}); +Clazz.defineMethod(c$, "getColor", +function(){ +return this.color; +}); +c$.getProteinStructureType = Clazz.defineMethod(c$, "getProteinStructureType", +function(name){ +for (var item, $item = 0, $$item = J.c.STR.values(); $item < $$item.length && ((item = $$item[$item]) || true); $item++) if (name.equalsIgnoreCase(item.name())) return (item.isProtein() ? item : J.c.STR.NOT); + +return J.c.STR.NOT; +}, "~S"); +Clazz.defineMethod(c$, "getBioStructureTypeName", +function(isGeneric){ +return (this.id < 0 ? "" : isGeneric && this.isProtein() ? "protein" : this.name()); +}, "~B"); +Clazz.defineMethod(c$, "isProtein", +function(){ +return this.id >= 0 && this.id <= 3 || this.id >= 7; +}); +Clazz.defineEnumConstant(c$, "NOT", 0, [-1, 0xFF808080]); +Clazz.defineEnumConstant(c$, "NONE", 1, [0, 0xFFFFFFFF]); +Clazz.defineEnumConstant(c$, "TURN", 2, [1, 0xFF6080FF]); +Clazz.defineEnumConstant(c$, "SHEET", 3, [2, 0xFFFFC800]); +Clazz.defineEnumConstant(c$, "HELIX", 4, [3, 0xFFFF0080]); +Clazz.defineEnumConstant(c$, "DNA", 5, [4, 0xFFAE00FE]); +Clazz.defineEnumConstant(c$, "RNA", 6, [5, 0xFFFD0162]); +Clazz.defineEnumConstant(c$, "CARBOHYDRATE", 7, [6, 0xFFA6A6FA]); +Clazz.defineEnumConstant(c$, "HELIX310", 8, [7, 0xFFA00080]); +Clazz.defineEnumConstant(c$, "HELIXALPHA", 9, [8, 0xFFFF0080]); +Clazz.defineEnumConstant(c$, "HELIXPI", 10, [9, 0xFF600080]); +Clazz.defineEnumConstant(c$, "ANNOTATION", 11, [-2, 0]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/c/VDW.js b/config/plugins/visualizations/jmol/static/j2s/J/c/VDW.js new file mode 100755 index 000000000000..d76b1c88defc --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/c/VDW.js @@ -0,0 +1,47 @@ +Clazz.declarePackage("J.c"); +Clazz.load(["java.lang.Enum"], "J.c.VDW", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.pt = 0; +this.type = null; +this.type2 = null; +Clazz.instantialize(this, arguments);}, J.c, "VDW", Enum); +Clazz.makeConstructor(c$, +function(pt, type, type2){ +this.pt = pt; +this.type = type; +this.type2 = type2; +}, "~N,~S,~S"); +Clazz.defineMethod(c$, "getVdwLabel", +function(){ +return (this.type == null ? this.type2 : this.type); +}); +c$.getVdwType = Clazz.defineMethod(c$, "getVdwType", +function(label){ +if (label != null) for (var item, $item = 0, $$item = J.c.VDW.values(); $item < $$item.length && ((item = $$item[$item]) || true); $item++) if (label.equalsIgnoreCase(item.type)) return item; + +return null; +}, "~S"); +c$.getVdwType2 = Clazz.defineMethod(c$, "getVdwType2", +function(label){ +if (label != null) for (var item, $item = 0, $$item = J.c.VDW.values(); $item < $$item.length && ((item = $$item[$item]) || true); $item++) if (label.equalsIgnoreCase(item.type2)) return item; + +return null; +}, "~S"); +Clazz.defineEnumConstant(c$, "JMOL", 0, [0, "Jmol", null]); +Clazz.defineEnumConstant(c$, "BABEL", 1, [1, "Babel", null]); +Clazz.defineEnumConstant(c$, "RASMOL", 2, [2, "RasMol", null]); +Clazz.defineEnumConstant(c$, "BABEL21", 3, [3, "Babel21", null]); +Clazz.defineEnumConstant(c$, "AUTO_JMOL", 4, [0, null, "Jmol"]); +Clazz.defineEnumConstant(c$, "AUTO_BABEL", 5, [1, null, "Babel"]); +Clazz.defineEnumConstant(c$, "AUTO_RASMOL", 6, [2, null, "RasMol"]); +Clazz.defineEnumConstant(c$, "AUTO", 7, [0, "Auto", null]); +Clazz.defineEnumConstant(c$, "USER", 8, [-1, "User", null]); +Clazz.defineEnumConstant(c$, "ADPMAX", 9, [-1, null, "adpmax"]); +Clazz.defineEnumConstant(c$, "ADPMIN", 10, [-1, null, "adpmin"]); +Clazz.defineEnumConstant(c$, "HYDRO", 11, [-1, null, "hydrophobic"]); +Clazz.defineEnumConstant(c$, "BONDING", 12, [-1, null, "bondingradius"]); +Clazz.defineEnumConstant(c$, "TEMP", 13, [-1, null, "temperature"]); +Clazz.defineEnumConstant(c$, "NOJMOL", 14, [-1, null, null]); +Clazz.defineEnumConstant(c$, "NADA", 15, [-1, null, null]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/console/GenericConsole.js b/config/plugins/visualizations/jmol/static/j2s/J/console/GenericConsole.js new file mode 100755 index 000000000000..59e674b1d686 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/console/GenericConsole.js @@ -0,0 +1,404 @@ +Clazz.declarePackage("J.console"); +Clazz.load(["J.api.JmolAppConsoleInterface", "$.JmolCallbackListener", "java.util.Hashtable"], "J.console.GenericConsole", ["JU.PT", "J.c.CBK", "J.i18n.GT", "JS.T", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.input = null; +this.output = null; +this.vwr = null; +this.menuMap = null; +this.editButton = null; +this.runButton = null; +this.historyButton = null; +this.stateButton = null; +this.clearOutButton = null; +this.clearInButton = null; +this.loadButton = null; +this.defaultMessage = null; +this.label1 = null; +this.nTab = 0; +this.incompleteCmd = null; +Clazz.instantialize(this, arguments);}, J.console, "GenericConsole", null, [J.api.JmolAppConsoleInterface, J.api.JmolCallbackListener]); +Clazz.prepareFields (c$, function(){ +this.menuMap = new java.util.Hashtable(); +}); +Clazz.defineMethod(c$, "setViewer", +function(vwr){ +this.vwr = vwr; +if (J.console.GenericConsole.labels == null) { +var l = new java.util.Hashtable(); +l.put("title", J.i18n.GT.$("Jmol Script Console") + " " + JV.Viewer.getJmolVersion()); +this.setupLabels(l); +J.console.GenericConsole.labels = l; +}}, "JV.Viewer"); +Clazz.defineMethod(c$, "addButton", +function(b, label){ +b.addConsoleListener(this); +this.menuMap.put(label, b); +return b; +}, "J.api.JmolAbstractButton,~S"); +Clazz.defineMethod(c$, "getLabel1", +function(){ +return null; +}); +Clazz.defineMethod(c$, "setupLabels", +function(labels){ +labels.put("saveas", J.i18n.GT.$("&Save As...")); +labels.put("file", J.i18n.GT.$("&File")); +labels.put("close", J.i18n.GT.$("&Close")); +this.setupLabels0(labels); +}, "java.util.Map"); +Clazz.defineMethod(c$, "setupLabels0", +function(labels){ +labels.put("help", J.i18n.GT.$("&Help")); +labels.put("search", J.i18n.GT.$("&Search...")); +labels.put("commands", J.i18n.GT.$("&Commands")); +labels.put("functions", J.i18n.GT.$("Math &Functions")); +labels.put("parameters", J.i18n.GT.$("Set &Parameters")); +labels.put("more", J.i18n.GT.$("&More")); +labels.put("Editor", J.i18n.GT.$("Editor")); +labels.put("State", J.i18n.GT.$("State")); +labels.put("Run", J.i18n.GT.$("Run")); +labels.put("Clear Output", J.i18n.GT.$("Clear Output")); +labels.put("Clear Input", J.i18n.GT.$("Clear Input")); +labels.put("History", J.i18n.GT.$("History")); +labels.put("Load", J.i18n.GT.$("Load")); +labels.put("label1", J.i18n.GT.$("press CTRL-ENTER for new line or paste model data and press Load")); +labels.put("default", J.i18n.GT.$("Messages will appear here. Enter commands in the box below. Click the console Help menu item for on-line help, which will appear in a new browser window.")); +}, "java.util.Map"); +Clazz.defineMethod(c$, "setLabels", +function(){ +var doTranslate = J.i18n.GT.setDoTranslate(true); +this.editButton = this.setButton("Editor"); +this.stateButton = this.setButton("State"); +this.runButton = this.setButton("Run"); +this.clearOutButton = this.setButton("Clear Output"); +this.clearInButton = this.setButton("Clear Input"); +this.historyButton = this.setButton("History"); +this.loadButton = this.setButton("Load"); +this.defaultMessage = J.console.GenericConsole.getLabel("default"); +this.setTitle(); +J.i18n.GT.setDoTranslate(doTranslate); +}); +c$.getLabel = Clazz.defineMethod(c$, "getLabel", +function(key){ +return J.console.GenericConsole.labels.get(key); +}, "~S"); +Clazz.defineMethod(c$, "displayConsole", +function(){ +this.layoutWindow(null); +this.outputMsg(this.defaultMessage); +}); +Clazz.defineMethod(c$, "updateLabels", +function(){ +return; +}); +Clazz.defineMethod(c$, "completeCommand", +function(thisCmd){ +if (thisCmd.length == 0) return null; +var strCommand = (this.nTab <= 0 || this.incompleteCmd == null ? thisCmd : this.incompleteCmd); +this.incompleteCmd = strCommand; +var splitCmd = J.console.GenericConsole.splitCommandLine(thisCmd); +if (splitCmd == null) return null; +var asCommand = splitCmd[2] == null; +var inBrace = (splitCmd[3] != null); +var notThis = splitCmd[asCommand ? 1 : 2]; +var s = splitCmd[1]; +if (notThis.length == 0) return null; +var token = JS.T.getTokenFromName(s.trim().toLowerCase()); +var cmdtok = (token == null ? 0 : token.tok); +var isSelect = JS.T.tokAttr(cmdtok, 12288); +splitCmd = J.console.GenericConsole.splitCommandLine(strCommand); +var cmd = null; +if (!asCommand && (notThis.charAt(0) == '"' || notThis.charAt(0) == '\'')) { +var q = notThis.charAt(0); +notThis = JU.PT.trim(notThis, "\"\'"); +var stub = JU.PT.trim(splitCmd[2], "\"\'"); +cmd = this.nextFileName(stub, this.nTab); +if (cmd != null) cmd = splitCmd[0] + splitCmd[1] + q + cmd + q; +} else { +var map = null; +if (!asCommand) { +notThis = s; +if (inBrace || splitCmd[2].startsWith("$") || isSelect) { +map = new java.util.Hashtable(); +this.vwr.getObjectMap(map, inBrace || isSelect ? '{' : splitCmd[2].startsWith("$") ? '$' : '0'); +}}cmd = JS.T.completeCommand(map, s.equalsIgnoreCase("set "), asCommand, asCommand ? splitCmd[1] : splitCmd[2], this.nTab); +cmd = splitCmd[0] + (cmd == null ? notThis : asCommand ? cmd : splitCmd[1] + cmd); +}return (cmd == null || cmd.equals(strCommand) ? null : cmd); +}, "~S"); +Clazz.defineMethod(c$, "doAction", +function(source){ +if (source === this.runButton) { +this.execute(null); +} else if (source === this.editButton) { +this.vwr.getProperty("DATA_API", "scriptEditor", null); +} else if (source === this.historyButton) { +this.clearContent(this.vwr.getSetHistory(2147483647)); +} else if (source === this.stateButton) { +this.clearContent(this.vwr.getStateInfo()); +} else if (source === this.clearInButton) { +this.input.setText(""); +return; +}if (source === this.clearOutButton) { +this.output.setText(""); +return; +}if (source === this.loadButton) { +this.vwr.loadInlineAppend(this.input.getText(), false); +return; +}if (this.isMenuItem(source)) { +this.execute((source).getName()); +return; +}}, "~O"); +Clazz.defineMethod(c$, "execute", +function(strCommand){ +var cmd = (strCommand == null ? this.input.getText() : strCommand); +if (strCommand == null) this.input.setText(null); +var strErrorMessage = this.vwr.script(cmd + "; ## GUI ##\u0001## EDITOR_IGNORE ##; ## GUI ##"); +if (strErrorMessage != null && !strErrorMessage.equals("pending")) this.outputMsg(strErrorMessage); +}, "~S"); +Clazz.defineMethod(c$, "destroyConsole", +function(){ +if (this.vwr.isApplet) this.vwr.getProperty("DATA_API", "getAppConsole", Boolean.FALSE); +}); +c$.setAbstractButtonLabels = Clazz.defineMethod(c$, "setAbstractButtonLabels", +function(menuMap, labels){ +for (var key, $key = menuMap.keySet().iterator (); $key.hasNext()&& ((key = $key.next ()) || true);) { +var m = menuMap.get(key); +var label = labels.get(key); +if (key.indexOf("Tip") == key.length - 3) { +m.setToolTipText(labels.get(key)); +} else { +var mnemonic = J.console.GenericConsole.getMnemonic(label); +if (mnemonic != ' ') m.setMnemonic(mnemonic); +label = J.console.GenericConsole.getLabelWithoutMnemonic(label); +m.setText(label); +}} +}, "java.util.Map,java.util.Map"); +c$.getLabelWithoutMnemonic = Clazz.defineMethod(c$, "getLabelWithoutMnemonic", +function(label){ +if (label == null) { +return null; +}var index = label.indexOf('&'); +if (index == -1) { +return label; +}return label.substring(0, index) + ((index < label.length - 1) ? label.substring(index + 1) : ""); +}, "~S"); +c$.getMnemonic = Clazz.defineMethod(c$, "getMnemonic", +function(label){ +if (label == null) { +return ' '; +}var index = label.indexOf('&'); +if ((index == -1) || (index == label.length - 1)) { +return ' '; +}return label.charAt(index + 1); +}, "~S"); +c$.map = Clazz.defineMethod(c$, "map", +function(button, key, label, menuMap){ +var mnemonic = J.console.GenericConsole.getMnemonic(label); +if (mnemonic != ' ') (button).setMnemonic(mnemonic); +if (menuMap != null) menuMap.put(key, button); +}, "~O,~S,~S,java.util.Map"); +Clazz.overrideMethod(c$, "notifyEnabled", +function(type){ +switch (type) { +case J.c.CBK.ECHO: +case J.c.CBK.MEASURE: +case J.c.CBK.MESSAGE: +case J.c.CBK.PICK: +return true; +case J.c.CBK.ANIMFRAME: +case J.c.CBK.APPLETREADY: +case J.c.CBK.ATOMMOVED: +case J.c.CBK.AUDIO: +case J.c.CBK.CLICK: +case J.c.CBK.DRAGDROP: +case J.c.CBK.ERROR: +case J.c.CBK.EVAL: +case J.c.CBK.HOVER: +case J.c.CBK.IMAGE: +case J.c.CBK.LOADSTRUCT: +case J.c.CBK.MINIMIZATION: +case J.c.CBK.MODELKIT: +case J.c.CBK.SERVICE: +case J.c.CBK.RESIZE: +case J.c.CBK.SCRIPT: +case J.c.CBK.SELECT: +case J.c.CBK.STRUCTUREMODIFIED: +case J.c.CBK.SYNC: +break; +} +return false; +}, "J.c.CBK"); +Clazz.overrideMethod(c$, "notifyCallback", +function(type, data){ +var strInfo = (data == null || data[1] == null ? null : data[1].toString()); +switch (type) { +case J.c.CBK.ECHO: +this.sendConsoleEcho(strInfo); +break; +case J.c.CBK.MEASURE: +var mystatus = data[3]; +if (mystatus.indexOf("Picked") >= 0 || mystatus.indexOf("Sequence") >= 0) this.sendConsoleMessage(strInfo); + else if (mystatus.indexOf("Completed") >= 0) this.sendConsoleEcho(strInfo); +break; +case J.c.CBK.MESSAGE: +this.sendConsoleMessage(data == null ? null : strInfo); +break; +case J.c.CBK.PICK: +this.sendConsoleMessage(strInfo); +break; +} +}, "J.c.CBK,~A"); +Clazz.overrideMethod(c$, "getText", +function(){ +return this.output.getText(); +}); +Clazz.overrideMethod(c$, "sendConsoleEcho", +function(strEcho){ +if (strEcho == null) { +this.updateLabels(); +this.outputMsg(null); +strEcho = this.defaultMessage; +} else if (strEcho.equals("\0")) { +{ +Clazz.Console.clear(); +}strEcho = null; +}this.outputMsg(strEcho); +}, "~S"); +Clazz.defineMethod(c$, "outputMsg", +function(message){ +var n = (message == null ? -1 : message.length); +switch (n) { +case -1: +this.output.setText(""); +return; +default: +if (message.charAt(n - 1) == '\n') break; +case 0: +message += "\n"; +} +this.output.append(message); +}, "~S"); +Clazz.defineMethod(c$, "clearContent", +function(text){ +this.output.setText(text); +}, "~S"); +Clazz.overrideMethod(c$, "sendConsoleMessage", +function(strInfo){ +if (strInfo != null && this.output.getText().startsWith(this.defaultMessage)) this.outputMsg(null); +this.outputMsg(strInfo); +}, "~S"); +Clazz.overrideMethod(c$, "setCallbackFunction", +function(callbackType, callbackFunction){ +}, "~S,~S"); +Clazz.overrideMethod(c$, "zap", +function(){ +}); +Clazz.defineMethod(c$, "recallCommand", +function(up, pageUp){ +var cmd = this.vwr.getSetHistory(up ? -1 : 1); +if (cmd != null) { +cmd = this.trimGUI(cmd); +this.input.setText(JU.PT.escUnicode(cmd)); +}}, "~B,~B"); +Clazz.defineMethod(c$, "trimGUI", +function(cmd){ +var pt = cmd.indexOf("\u0001##"); +if (pt >= 0) cmd = cmd.substring(0, pt); +pt = cmd.indexOf("; ## GUI ##"); +if (pt >= 0) cmd = cmd.substring(0, pt); +return JU.PT.trim(cmd, "; "); +}, "~S"); +Clazz.defineMethod(c$, "processKey", +function(kcode, kid, isControlDown){ +var mode = 0; +switch (kid) { +case 401: +switch (kcode) { +case 9: +var s = this.input.getText(); +if (s.endsWith("\n") || s.endsWith("\t")) return 0; +mode = 1; +if (this.input.getCaretPosition() == s.length) { +var cmd = this.completeCommand(s); +if (cmd != null) this.input.setText(JU.PT.escUnicode(cmd).$replace('\t', ' ')); +this.nTab++; +return mode; +}break; +case 27: +mode = 1; +this.input.setText(""); +break; +} +this.nTab = 0; +if (kcode == 10 && !isControlDown) { +this.execute(null); +return mode; +}if (kcode == 38 || kcode == 40) { +this.recallCommand(kcode == 38, false); +return mode; +}break; +case 402: +if (kcode == 10 && !isControlDown) return mode; +break; +} +return mode | 2; +}, "~N,~N,~B"); +c$.splitCommandLine = Clazz.defineMethod(c$, "splitCommandLine", +function(cmd){ +var sout = new Array(4); +var isEscaped1 = false; +var isEscaped2 = false; +var isEscaped = false; +if (cmd.length == 0) return null; +var ptQ = -1; +var ptCmd = 0; +var ptToken = 0; +var nBrace = 0; +var ch; +for (var i = 0; i < cmd.length; i++) { +switch ((ch = cmd.charAt(i)).charCodeAt(0)) { +case 34: +if (!isEscaped && !isEscaped1) { +isEscaped2 = !isEscaped2; +if (isEscaped2) ptQ = ptToken = i; +}break; +case 39: +if (!isEscaped && !isEscaped2) { +isEscaped1 = !isEscaped1; +if (isEscaped1) ptQ = ptToken = i; +}break; +case 92: +isEscaped = !isEscaped; +continue; +case 32: +if (!isEscaped && !isEscaped1 && !isEscaped2) { +ptToken = i + 1; +ptQ = -1; +}break; +case 59: +if (!isEscaped1 && !isEscaped2) { +ptCmd = ptToken = i + 1; +ptQ = -1; +nBrace = 0; +}break; +case 123: +case 125: +if (!isEscaped1 && !isEscaped2) { +nBrace += (ch == '{' ? 1 : -1); +ptToken = i + 1; +ptQ = -1; +}break; +default: +if (!isEscaped1 && !isEscaped2) ptQ = -1; +} +isEscaped = false; +} +sout[0] = cmd.substring(0, ptCmd); +sout[1] = (ptToken == ptCmd ? cmd.substring(ptCmd) : cmd.substring(ptCmd, (ptToken > ptQ ? ptToken : ptQ))); +sout[2] = (ptToken == ptCmd ? null : cmd.substring(ptToken)); +sout[3] = (nBrace > 0 ? "{" : null); +return sout; +}, "~S"); +c$.labels = null; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/console/GenericTextArea.js b/config/plugins/visualizations/jmol/static/j2s/J/console/GenericTextArea.js new file mode 100755 index 000000000000..13398b6ee370 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/console/GenericTextArea.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.console"); +Clazz.declareInterface(J.console, "GenericTextArea"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/console/ImageDialog.js b/config/plugins/visualizations/jmol/static/j2s/J/console/ImageDialog.js new file mode 100755 index 000000000000..abb13fd38716 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/console/ImageDialog.js @@ -0,0 +1,158 @@ +Clazz.declarePackage("J.console"); +Clazz.load(["javax.swing.JDialog", "$.JPanel", "J.api.GenericImageDialog"], "J.console.ImageDialog", ["java.util.Hashtable", "JU.PT", "javax.swing.JMenuBar", ], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.menubar = null; +this.image = null; +this.vwr = null; +this.canvas = null; +this.$title = null; +this.imageMap = null; +this.console = null; +if (!Clazz.isClassDefined("J.console.ImageDialog.ImageCanvas")) { +J.console.ImageDialog.$ImageDialog$ImageCanvas$ (); +} +Clazz.instantialize(this, arguments);}, J.console, "ImageDialog", javax.swing.JDialog, [J.api.GenericImageDialog, java.awt.event.WindowListener, java.awt.event.ActionListener]); +Clazz.makeConstructor(c$, +function(vwr, title, imageMap){ +Clazz.superConstructor(this, J.console.ImageDialog, [Clazz.instanceOf(J.awt.Platform.getWindow(vwr.display),"javax.swing.JFrame") ? J.awt.Platform.getWindow(vwr.display) : null, title, false]); +this.vwr = vwr; +this.setResizable(false); +this.console = vwr.getConsole(); +this.addWindowListener(this); +this.$title = title; +this.imageMap = imageMap; +imageMap.put(title, this); +var wrapper = new javax.swing.JPanel( new java.awt.BorderLayout()); +wrapper.setBackground( new java.awt.Color(255, 0, 0)); +this.canvas = Clazz.innerTypeInstance(J.console.ImageDialog.ImageCanvas, this, null); +wrapper.add(this.canvas, "Center"); +var container = new javax.swing.JPanel(); +container.setLayout( new java.awt.BorderLayout()); +this.menubar = new javax.swing.JMenuBar(); +this.menubar.add(this.createMenu()); +this.setJMenuBar(this.menubar); +container.add(wrapper, "Center"); +this.getContentPane().add(container); +this.pack(); +this.setLocation(100, 100); +this.setVisible(true); +}, "JV.Viewer,~S,java.util.Map"); +Clazz.defineMethod(c$, "createMenu", +function(){ +var itemKeys = JU.PT.getTokens("saveas close"); +this.vwr.getConsole(); +var menu = this.console.newJMenu("file"); +for (var i = 0; i < itemKeys.length; i++) { +var item = itemKeys[i]; +var mi = this.createMenuItem(item); +menu.add(mi); +} +menu.setVisible(true); +return menu; +}); +Clazz.defineMethod(c$, "createMenuItem", +function(cmd){ +var mi = this.console.newJMenuItem(cmd); +mi.setActionCommand(cmd); +mi.addActionListener(this); +mi.setVisible(true); +return mi; +}, "~S"); +Clazz.overrideMethod(c$, "actionPerformed", +function(e){ +var cmd = e.getActionCommand(); +if (cmd.equals("close")) { +this.closeMe(); +} else if (cmd.equals("saveas")) { +this.saveAs(); +}}, "java.awt.event.ActionEvent"); +Clazz.defineMethod(c$, "saveAs", +function(){ +(((Clazz.isClassDefined("J.console.ImageDialog$2") ? 0 : J.console.ImageDialog.$ImageDialog$2$ ()), Clazz.innerTypeInstance(J.console.ImageDialog$2, this, null, ((Clazz.isClassDefined("J.console.ImageDialog$1") ? 0 : J.console.ImageDialog.$ImageDialog$1$ ()), Clazz.innerTypeInstance(J.console.ImageDialog$1, this, null))))).start(); +}); +Clazz.overrideMethod(c$, "closeMe", +function(){ +this.imageMap.remove(this.$title); +this.dispose(); +}); +Clazz.overrideMethod(c$, "setImage", +function(oimage){ +if (oimage == null) { +this.closeMe(); +return; +}var w = (oimage).getWidth(null); +var h = (oimage).getHeight(null); +this.image = new java.awt.image.BufferedImage(w, h, 1); +var g = this.image.getGraphics(); +g.setColor(java.awt.Color.white); +g.fillRect(0, 0, w, h); +g.drawImage(oimage, 0, 0, null); +g.dispose(); +this.setTitle(this.$title + " [" + w + " x " + h + "]"); +var d = new java.awt.Dimension(w, h); +this.canvas.setPreferredSize(d); +this.setBackground(java.awt.Color.WHITE); +this.getContentPane().setBackground(java.awt.Color.WHITE); +this.pack(); +}, "~O"); +Clazz.overrideMethod(c$, "windowClosed", +function(e){ +}, "java.awt.event.WindowEvent"); +Clazz.overrideMethod(c$, "windowOpened", +function(e){ +}, "java.awt.event.WindowEvent"); +Clazz.overrideMethod(c$, "windowClosing", +function(e){ +this.closeMe(); +}, "java.awt.event.WindowEvent"); +Clazz.overrideMethod(c$, "windowIconified", +function(e){ +}, "java.awt.event.WindowEvent"); +Clazz.overrideMethod(c$, "windowDeiconified", +function(e){ +}, "java.awt.event.WindowEvent"); +Clazz.overrideMethod(c$, "windowActivated", +function(e){ +}, "java.awt.event.WindowEvent"); +Clazz.overrideMethod(c$, "windowDeactivated", +function(e){ +}, "java.awt.event.WindowEvent"); +c$.$ImageDialog$ImageCanvas$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +Clazz.instantialize(this, arguments);}, J.console.ImageDialog, "ImageCanvas", javax.swing.JPanel); +Clazz.overrideMethod(c$, "paintComponent", +function(g){ +System.out.println(this.b$["J.console.ImageDialog"].image.getClass().getName()); +g.setColor(java.awt.Color.white); +g.fillRect(0, 0, this.b$["J.console.ImageDialog"].image.getWidth(null), this.b$["J.console.ImageDialog"].image.getHeight(null)); +g.drawImage(this.b$["J.console.ImageDialog"].image, 0, 0, null); +}, "java.awt.Graphics"); +/*eoif4*/})(); +}; +c$.$ImageDialog$2$=function(){ +/*if5*/;(function(){ +var c$ = Clazz.declareAnonymous(J.console, "ImageDialog$2", Thread); +/*eoif5*/})(); +}; +c$.$ImageDialog$1$=function(){ +/*if5*/;(function(){ +var c$ = Clazz.declareAnonymous(J.console, "ImageDialog$1", null, Runnable); +Clazz.overrideMethod(c$, "run", +function(){ +var params = new java.util.Hashtable(); +var fname = this.b$["J.console.ImageDialog"].vwr.dialogAsk("Save Image", "jmol.png", params); +if (fname == null) return; +var type = "PNG"; +var pt = fname.lastIndexOf("."); +if (pt > 0) type = fname.substring(pt + 1).toUpperCase(); +params.put("fileName", fname); +params.put("type", type); +params.put("image", this.b$["J.console.ImageDialog"].image); +this.b$["J.console.ImageDialog"].vwr.showString(this.b$["J.console.ImageDialog"].vwr.processWriteOrCapture(params), false); +}); +/*eoif5*/})(); +}; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/consolejs/AppletConsole.js b/config/plugins/visualizations/jmol/static/j2s/J/consolejs/AppletConsole.js new file mode 100755 index 000000000000..df4ac5a04e16 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/consolejs/AppletConsole.js @@ -0,0 +1,365 @@ +Clazz.declarePackage("J.consolejs"); +Clazz.load(["J.console.GenericConsole"], "J.consolejs.AppletConsole", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.jsConsole = null; +Clazz.instantialize(this, arguments);}, J.consolejs, "AppletConsole", J.console.GenericConsole); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.consolejs.AppletConsole, []); +}); +Clazz.overrideMethod(c$, "start", +function(vwr){ +this.setViewer(vwr); +this.setLabels(); +this.displayConsole(); +}, "JV.Viewer"); +Clazz.overrideMethod(c$, "layoutWindow", +function(enabledButtons){ +{ +this.jsConsole = new Jmol.Console.JSConsole(this); +}this.setTitle(); +}, "~S"); +Clazz.overrideMethod(c$, "setTitle", +function(){ +if (this.jsConsole != null) this.jsConsole.setTitle(J.console.GenericConsole.getLabel("title")); +}); +Clazz.overrideMethod(c$, "setVisible", +function(visible){ +this.jsConsole.setVisible(visible); +}, "~B"); +Clazz.overrideMethod(c$, "setButton", +function(text){ +{ +return new Jmol.Console.Button(text); +}}, "~S"); +Clazz.overrideMethod(c$, "dispose", +function(){ +this.setVisible(false); +}); +Clazz.overrideMethod(c$, "isMenuItem", +function(source){ +return false; +}, "~O"); +Clazz.overrideMethod(c$, "getScriptEditor", +function(){ +return null; +}); +Clazz.overrideMethod(c$, "nextFileName", +function(stub, nTab){ +return null; +}, "~S,~N"); +Clazz.overrideMethod(c$, "newJMenu", +function(key){ +return null; +}, "~S"); +Clazz.overrideMethod(c$, "newJMenuItem", +function(key){ +return null; +}, "~S"); +Clazz.overrideMethod(c$, "regainFocus", +function(){ +}); +{ +{ +;Jmol.Console = { +buttons:{}, +buttonWidth:100, +click:function(id) { +Jmol.Console.buttons[id].console.appletConsole.doAction(Jmol.Console.buttons[id]); +} +} +Jmol.consoleGetImageDialog = function(vwr, title, imageMap) { +// JmolObjectInterface +return new Jmol.Console.Image(vwr, title, imageMap); +} +Jmol.Console.Image = function(vwr, title, imageMap) { +// page designer may indicate one of three divs for images on the page: +//_Image_app_holder for IMAGE command by itself (current app image) +// _Image_ _holder for IMAGE ID "xxx" ... or IMAGE "xxx" +// where cleaning is with .replace(/\W/g,"_") +// _Image_holder for all images not identified as above +// if a page div is not identified, then the image will be placed in a new floating div +this.vwr = vwr; +this.title = title; +this.imageMap = imageMap; +this.applet = vwr.html5Applet; +var id = this.applet._id + "_Image"; +this.id = id + "_" + (title == "" ? "app" : title).replace(/\W/g,"_"); +var jqobj = Jmol._$(this.id + "_holder"); +if (!jqobj[0] && (jqobj = Jmol._$(id + "_holder"))[0]) +this.id = id; +if (jqobj[0]) +this.div = jqobj; +else +Jmol.Console.createDOM(this, ' '); +System.out.println("image " + this.id + " created"); +var obj = imageMap.get(this.id); +if (obj) +obj.closeMe(); +imageMap.put(this.id, this); +imageMap.put(title, this); +} +Jmol.Console.Image.setCanvas = function(obj, canvas) { +// this method can be customized as desired +// it puts the canvas into a holder div +Jmol.$append(Jmol._$(obj.id + "_holder"), canvas); +Jmol.$html(obj.id + "_title", ""); +} +Jmol.Console.Image.closeImage = function(obj) { +// this method can be customized as desired +obj.imageMap.remove(obj.title); +obj.imageMap.remove(obj.id); +if (obj.div) { +Jmol.$remove(obj.cid); +} else { +obj.dragBind(false); +Jmol.$remove(obj.id); +} +} +Jmol.Console.Image.prototype.setImage = function(canvas) { +// called by Jmol asynchronously after image is loaded +if (this.cid) +Jmol.$remove(this.cid); +var c = document.createElement("canvas"); +c.width = canvas.width; +c.height = canvas.height; +var cdx = c.getContext("2d"); +if (canvas.buf32) { +// image buffer from current view +// (note that buf32.length will be the same as buf8.length when images are antialiased) +var imgData = cdx.getImageData(0, 0, c.width, c.height); +var buf8 = imgData.data; +var buf32 = canvas.buf32; +var n = buf8.length >> 2; +for (var i = 0, j = 0; i < n; i++) { +buf8[j++] = (buf32[i] >> 16) & 0xFF; +buf8[j++] = (buf32[i] >> 8) & 0xFF; +buf8[j++] = buf32[i] & 0xFF; +buf8[j++] = 0xFF; +} +cdx.putImageData(imgData, 0, 0); +} else { +// asynchronous load of image from file +cdx.drawImage(canvas,0,0); +} +this.cid = c.id = this.id + "_image"; +Jmol.Console.Image.setCanvas(this, c); +} +Jmol.Console.Image.prototype.closeMe = function() { +// called by Jmol +Jmol.Console.Image.closeImage(this); +} +Jmol.Swing.setDraggable(Jmol.Console.Image); +Jmol.Console.createDOM = function(obj, s, userConsole) { +var id = obj.id; +Jmol.Console.buttons[id] = obj; +s = s.replace(/\$ID/g,id); +if (userConsole && userConsole[0]) { +Jmol.$html(userConsole,s); +} else { +Jmol.$after("body", s); +obj.setContainer(Jmol._$(id)); +obj.setPosition(); +obj.dragBind(true); +} +} +Jmol.Console.JSConsole = function(appletConsole) { +this.applet = appletConsole.vwr.html5Applet; +var id = this.id = this.applet._id+"_console"; +var console = this; +console.appletConsole = appletConsole; +console.input = appletConsole.input = new Jmol.Console.Input(console); +console.output = appletConsole.output = new Jmol.Console.Output(console); +// check to see if the user already has a div on the page with id such as "jmolApplet0_console" +var userConsole = Jmol.$("#" + id); +// set up this.appletConsole.input, this.appletconsole.output +// set up buttons, which are already made by this time: +// I would prefer NOT to use jQueryUI for this - just simple buttons with simple actions +// create and insert HTML code +var s = '' +var w = 600, h = 362; +if (userConsole[0]) { +var dims = Jmol.$getSize(userConsole); +if (dims[0] == 0) +Jmol.$setSize(userConsole, w, h); +w = dims[0] || w; +h = dims[1] || h; +} else { +s = '
close " + obj.title + " [" + canvas.width + " x " + canvas.height + "] ' + s + ''; +} +Jmol.Console.createDOM(this, s, userConsole); +var setBtn = function(console, btn) { +btn.console = console; +btn.id = id + "_" + btn.label.replace(/\s/g,"_"); +Jmol.Console.buttons[btn.id] = btn; +return btn.html(); +} +s = setBtn(console, appletConsole.runButton) ++ setBtn(console, appletConsole.loadButton) ++ setBtn(console, appletConsole.clearInButton) ++ setBtn(console, appletConsole.clearOutButton) ++ setBtn(console, appletConsole.historyButton) ++ setBtn(console, appletConsole.stateButton); +Jmol.$html(id + "_buttondiv", s); +s = ""; +if (!userConsole[0]) +s += " close"; +s += " help"; +Jmol.$html(id + "_label1", s); +if (userConsole[0]) { +// leaves a little slop for margins +w = w - 10; +h = (h - Jmol.$getSize(id + "_label1")[1] - Jmol.$getSize(id + "_buttondiv")[1] - 20)/3; +} else { +w = w - 10; +h = (h - 62)/3; +} +Jmol.$html(id + "_inputdiv", ''); +Jmol.$html(id + "_outputdiv", ''); +Jmol.Cache.setDragDrop(this.applet, "console_output"); +Jmol.Cache.setDragDrop(this.applet, "console_input"); +Jmol.$bind("#" + id + "_input", "keydown keypress keyup", function(event) { console.input.keyEvent(event) }); +Jmol.$bind("#" + id + "_input", "mousedown touchstart", function(event) { console.ignoreMouse=true }); +Jmol.$bind("#" + id + "_output", "mousedown touchstart", function(event) { console.ignoreMouse=true }); +console.setButton = function(text) { +return new Jmol.Console.Button(this, text); +} +console.setVisible = function(b) { +if (b) +this.container.show(); +else +this.container.hide(); +this.dragBind(b); +} +console.setTitle = function(title) { +//Jmol.$html(this.id + "_title", title); +} +console.setVisible(false); +} +Jmol.Swing.setDraggable(Jmol.Console.JSConsole); +Jmol.Console.Input = function(console) { +this.console = console; +this.id = console.id + "_input"; +// something like this.... +this.getText = function() { +return Jmol.$val(this.id); +} +this.setText = function(text) { +if (text == null) +text = ""; +Jmol.$val(this.id, text); +} +this.keyEvent = function(ev) { +// chrome/safari +// for left paren: +// keyCode which key originalEvent.keyIdentifier +// keydown 57 57 - U+0039 +// keypress 40 40 - Down // why Down?? +// +// for down arrow +// keydown 40 40 - Down +// ff, msie +// for left paren: +// keyCode which key originalEvent.keyIdentifier +// keydown 57 57 ( - +// keypress 0 40 ( - +// +// for down arrow +// keydown 40 40 Down - +// in all cases: normal keys (as well as backspace[8] and delete[46]) are keydown keypress keyup +// special keys just keydown keyup +// keyup is only once when repeated; same as keydown +// ff/msie delivers key, chrome/safari does not +// chrome/safari has "feature" that keyIdentifier for "(" is reported as "Down" and similar issues for many other keys +//System.out.println(ev.type + " key:" + (!ev.key) + " keyCode:" + ev.keyCode + " which:" + ev.which + " " + ev.key + "--" + ev.originalEvent.keyIdentifier); +var mode; +var type = ev.type; +var isCtrl = ev.ctrlKey; +var kcode = ev.keyCode; +if (kcode == 13) +kcode=10; +// keycode is deprecated, but is essential still +if (type == "keyup") { +mode = (kcode == 38 || kcode == 40 ? 1 : this.console.appletConsole.processKey(kcode, 402, isCtrl)); +if ((mode & 1) == 1) +ev.preventDefault(); +return; +} +// includes keypress and keydown +// only assign "key" for keydown, as keypress gives erroneous identifier in chrome/safari +var isKeydown = (type == "keydown"); +var key = (isKeydown ? (ev.key || ev.originalEvent.keyIdentifier) : ""); +switch (kcode) { +case 38: // up-arrow, possibly +case 40: // down-arrow, possibly +// must be keydown, not keypress to be arrow key +if (!isKeydown) +kcode = 0; +break; +case 8: // bs +case 9: // tab +case 10: // CR +case 27: // esc +// only these are of interest to Jmol +break; +default: +kcode = 0; // nothing to report +} +mode = this.console.appletConsole.processKey(kcode, 401, isCtrl); +if (isCtrl && kcode == 10) +this.setText(this.getText() + "\n") +if (mode == 0 && ev.keyCode == 9) { +var me = this; +setTimeout(function(){me.setText(me.getText() + "\t"); Jmol.$focus(me.id)},10); +} +// ignore if... +if ((mode & 1) == 1 // Jmol has handled the key press +|| key == "Up" || key == "Down" // up and down arrows +|| isKeydown && ev.keyCode != 8 && ev.keyCode < 32 // a special character other than backspace, when keyDown +) { +ev.preventDefault(); +} +} +this.getCaretPosition = function() { +var el = Jmol._$(this.id)[0]; +if('selectionStart' in el) +return el.selectionStart; +if(!('selection' in document)) +return 0; +el.focus(); +var sel = document.selection.createRange(); +var len = document.selection.createRange().text.length; +sel.moveStart('character', -el.value.length); +return sel.text.length - len; +} +} +Jmol.Console.Output = function(console) { +this.id = console.id + "_output"; +this.getText = function() { +return Jmol.$val(this.id); +} +this.setText = function(text) { +if (text == null) +text = ""; +Jmol.$val(this.id, text); +} +this.append = function(message, att) { +this.setText(this.getText() + message); +Jmol.$scrollTo(this.id, -1); +} +} +Jmol.Console.Button = function(text) { +this.label = text; +} +Jmol.Console.Button.prototype.addConsoleListener = function(appletConsole) { +this.appletConsole = appletConsole; +Jmol.Console.buttons[this.id] = this; +} +Jmol.Console.Button.prototype.html = function() { +var s = '' +return s; +} +; +}}}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/consolejs/JSConsole.js b/config/plugins/visualizations/jmol/static/j2s/J/consolejs/JSConsole.js new file mode 100755 index 000000000000..8ae96bafc80f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/consolejs/JSConsole.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.consolejs"); +Clazz.declareInterface(J.consolejs, "JSConsole"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/dialog/Dialog.js b/config/plugins/visualizations/jmol/static/j2s/J/dialog/Dialog.js new file mode 100755 index 000000000000..b3e40aabdbb1 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/dialog/Dialog.js @@ -0,0 +1,415 @@ +Clazz.declarePackage("J.dialog"); +Clazz.load(["javax.swing.JPanel", "javax.swing.event.ChangeListener", "javax.swing.filechooser.FileFilter", "J.api.JmolDialogInterface"], "J.dialog.Dialog", ["java.io.File", "javax.swing.JComboBox", "$.JFileChooser", "$.JOptionPane", "$.JSlider", "$.SwingUtilities", "$.UIManager", "javax.swing.border.TitledBorder", "J.dialog.FileChooser", "$.FilePreview", "J.i18n.GT", "JU.Logger", "JV.FileManager"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.extensions = null; +this.choice = null; +this.extension = null; +this.qSliderJPEG = null; +this.qSliderPNG = null; +this.cb = null; +this.qPanelJPEG = null; +this.qPanelPNG = null; +this.openPreview = null; +this.initialFile = null; +if (!Clazz.isClassDefined("J.dialog.Dialog.QualityListener")) { +J.dialog.Dialog.$Dialog$QualityListener$ (); +} +if (!Clazz.isClassDefined("J.dialog.Dialog.ExportChoiceListener")) { +J.dialog.Dialog.$Dialog$ExportChoiceListener$ (); +} +this.imageChoices = null; +this.imageExtensions = null; +this.outputFileName = null; +this.dialogType = null; +this.inputFileName = null; +this.vwr = null; +this.qualityJ = -1; +this.qualityP = -1; +this.imageType = null; +Clazz.instantialize(this, arguments);}, J.dialog, "Dialog", javax.swing.JPanel, J.api.JmolDialogInterface); +Clazz.prepareFields (c$, function(){ +this.extensions = new Array(10); +this.imageChoices = Clazz.newArray(-1, ["JPEG", "PNG", "GIF", "PPM"]); +this.imageExtensions = Clazz.newArray(-1, ["jpg", "png", "gif", "ppm"]); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.dialog.Dialog, []); +}); +Clazz.overrideMethod(c$, "getOpenFileNameFromDialog", +function(vwrOptions, vwr, fileName, jmolApp, windowName, allowAppend){ +if (J.dialog.Dialog.openChooser == null) { +J.dialog.Dialog.openChooser = new J.dialog.FileChooser(); +var temp = javax.swing.UIManager.get("FileChooser.fileNameLabelText"); +javax.swing.UIManager.put("FileChooser.fileNameLabelText", J.i18n.GT.$("File or URL:")); +J.dialog.Dialog.getXPlatformLook(J.dialog.Dialog.openChooser); +javax.swing.UIManager.put("FileChooser.fileNameLabelText", temp); +}if (this.openPreview == null && (vwr.isApplet || Boolean.$valueOf(System.getProperty("openFilePreview", "true")).booleanValue())) { +this.openPreview = new J.dialog.FilePreview(vwr, J.dialog.Dialog.openChooser, allowAppend, vwrOptions); +}if (jmolApp != null) { +var dim = jmolApp.getHistoryWindowSize(windowName); +if (dim != null) J.dialog.Dialog.openChooser.setDialogSize(dim); +var loc = jmolApp.getHistoryWindowPosition(windowName); +if (loc != null) J.dialog.Dialog.openChooser.setDialogLocation(loc); +}J.dialog.Dialog.openChooser.resetChoosableFileFilters(); +if (this.openPreview != null) this.openPreview.setPreviewOptions(allowAppend); +if (fileName != null) { +var pt = fileName.lastIndexOf("."); +var sType = fileName.substring(pt + 1); +if (pt >= 0 && sType.length > 0) J.dialog.Dialog.openChooser.addChoosableFileFilter( new J.dialog.Dialog.TypeFilter(sType)); +if (fileName.indexOf(".") == 0) fileName = "Jmol" + fileName; +if (fileName.length > 0) J.dialog.Dialog.openChooser.setSelectedFile( new java.io.File(fileName)); +}if (fileName == null || fileName.indexOf(":") < 0 && fileName.indexOf("/") != 0) { +var dir = JV.FileManager.getLocalDirectory(vwr, true); +J.dialog.Dialog.openChooser.setCurrentDirectory(dir); +}var file = null; +if (J.dialog.Dialog.openChooser.showOpenDialog(this) == 0) file = J.dialog.Dialog.openChooser.getSelectedFile(); +if (file == null) return this.closePreview(); +if (jmolApp != null) jmolApp.addHistoryWindowInfo(windowName, J.dialog.Dialog.openChooser.getDialog(), null); +var url = vwr.getLocalUrl(file.getAbsolutePath()); +if (url != null) { +fileName = url; +} else { +JV.FileManager.setLocalPath(vwr, file.getParent(), true); +fileName = file.getAbsolutePath(); +}if (fileName.startsWith("/")) fileName = "file://" + fileName; +var doCartoons = (jmolApp == null || allowAppend && this.openPreview != null && this.openPreview.isCartoonsSelected()); +var doAppend = (allowAppend && !JV.FileManager.isScriptType(fileName) && this.openPreview != null && this.openPreview.isAppendSelected()); +this.closePreview(); +return (doCartoons ? "" : "#NOCARTOONS#;") + (doAppend ? "#APPEND#;" : "") + fileName; +}, "java.util.Map,JV.Viewer,~S,J.api.JmolAppAPI,~S,~B"); +Clazz.defineMethod(c$, "closePreview", +function(){ +if (this.openPreview != null) this.openPreview.doUpdatePreview(null); +return null; +}); +Clazz.overrideMethod(c$, "getSaveFileNameFromDialog", +function(vwr, fileName, type){ +if (J.dialog.Dialog.saveChooser == null) { +J.dialog.Dialog.saveChooser = new javax.swing.JFileChooser(); +J.dialog.Dialog.getXPlatformLook(J.dialog.Dialog.saveChooser); +}J.dialog.Dialog.saveChooser.setCurrentDirectory(JV.FileManager.getLocalDirectory(vwr, true)); +var file = null; +J.dialog.Dialog.saveChooser.resetChoosableFileFilters(); +if (fileName != null) { +var pt = fileName.lastIndexOf("."); +var sType = fileName.substring(pt + 1); +if (pt >= 0 && sType.length > 0) J.dialog.Dialog.saveChooser.addChoosableFileFilter( new J.dialog.Dialog.TypeFilter(sType)); +if (fileName.equals("*")) fileName = vwr.getModelSetFileName(); +if (fileName.indexOf(".") == 0) fileName = "Jmol" + fileName; +file = new java.io.File(fileName); +}if (type != null) J.dialog.Dialog.saveChooser.addChoosableFileFilter( new J.dialog.Dialog.TypeFilter(type)); +J.dialog.Dialog.saveChooser.setSelectedFile(file); +if ((file = this.showSaveDialog(this, J.dialog.Dialog.saveChooser, file)) == null) return null; +JV.FileManager.setLocalPath(vwr, file.getParent(), true); +return file.getAbsolutePath(); +}, "JV.Viewer,~S,~S"); +Clazz.overrideMethod(c$, "getImageFileNameFromDialog", +function(vwr, fileName, type, imageChoices, imageExtensions, qualityJPG0, qualityPNG0){ +if (qualityJPG0 < 0 || qualityJPG0 > 100) qualityJPG0 = J.dialog.Dialog.qualityJPG; +if (qualityPNG0 < 0) qualityPNG0 = J.dialog.Dialog.qualityPNG; +if (qualityPNG0 > 9) qualityPNG0 = 2; +J.dialog.Dialog.qualityJPG = qualityJPG0; +J.dialog.Dialog.qualityPNG = qualityPNG0; +if (this.extension == null) this.extension = "jpg"; +if (J.dialog.Dialog.imageChooser == null) { +J.dialog.Dialog.imageChooser = new javax.swing.JFileChooser(); +J.dialog.Dialog.getXPlatformLook(J.dialog.Dialog.imageChooser); +}J.dialog.Dialog.imageChooser.setCurrentDirectory(JV.FileManager.getLocalDirectory(vwr, true)); +J.dialog.Dialog.imageChooser.resetChoosableFileFilters(); +var file = null; +if (fileName == null) { +fileName = vwr.getModelSetFileName(); +if (fileName.indexOf("?") >= 0) fileName = fileName.substring(0, fileName.indexOf("?")); +var pathName = J.dialog.Dialog.imageChooser.getCurrentDirectory().getPath(); +if (fileName != null && pathName != null) { +var extensionStart = fileName.lastIndexOf('.'); +if (extensionStart != -1) { +fileName = fileName.substring(0, extensionStart) + "." + this.extension; +}file = new java.io.File(pathName, fileName); +}} else { +if (fileName.indexOf(".") == 0) fileName = "Jmol" + fileName; +file = new java.io.File(fileName); +type = fileName.substring(fileName.lastIndexOf(".") + 1); +for (var i = 0; i < imageExtensions.length; i++) if (type.equals(imageChoices[i]) || type.toLowerCase().equals(imageExtensions[i])) { +type = imageChoices[i]; +break; +} +}this.createExportPanel(imageChoices, imageExtensions, type); +J.dialog.Dialog.imageChooser.setSelectedFile(this.initialFile = file); +if ((file = this.showSaveDialog(this, J.dialog.Dialog.imageChooser, file)) == null) return null; +J.dialog.Dialog.qualityJPG = this.qSliderJPEG.getValue(); +J.dialog.Dialog.qualityPNG = this.qSliderPNG.getValue(); +if (this.cb.getSelectedIndex() >= 0) J.dialog.Dialog.defaultChoice = this.cb.getSelectedIndex(); +JV.FileManager.setLocalPath(vwr, file.getParent(), true); +return file.getAbsolutePath(); +}, "JV.Viewer,~S,~S,~A,~A,~N,~N"); +Clazz.defineMethod(c$, "createExportPanel", +function(choices, extensions, type){ +J.dialog.Dialog.imageChooser.setAccessory(this); +this.setLayout( new java.awt.BorderLayout()); +if (type == null || type.equals("JPG")) type = "JPEG"; +for (J.dialog.Dialog.defaultChoice = choices.length; --J.dialog.Dialog.defaultChoice >= 1; ) if (choices[J.dialog.Dialog.defaultChoice].equals(type)) break; + +this.extension = extensions[J.dialog.Dialog.defaultChoice]; +this.choice = choices[J.dialog.Dialog.defaultChoice]; +this.extensions = extensions; +J.dialog.Dialog.imageChooser.resetChoosableFileFilters(); +J.dialog.Dialog.imageChooser.addChoosableFileFilter( new J.dialog.Dialog.TypeFilter(this.extension)); +var cbPanel = new javax.swing.JPanel(); +cbPanel.setLayout( new java.awt.FlowLayout()); +cbPanel.setBorder( new javax.swing.border.TitledBorder(J.i18n.GT.$("Image Type"))); +this.cb = new javax.swing.JComboBox(); +for (var i = 0; i < choices.length; i++) { +this.cb.addItem(choices[i]); +} +cbPanel.add(this.cb); +this.cb.setSelectedIndex(J.dialog.Dialog.defaultChoice); +this.cb.addItemListener(Clazz.innerTypeInstance(J.dialog.Dialog.ExportChoiceListener, this, null)); +this.add(cbPanel, "North"); +var qPanel2 = new javax.swing.JPanel(); +qPanel2.setLayout( new java.awt.BorderLayout()); +this.qPanelJPEG = new javax.swing.JPanel(); +this.qPanelJPEG.setLayout( new java.awt.BorderLayout()); +this.qPanelJPEG.setBorder( new javax.swing.border.TitledBorder(J.i18n.GT.i(J.i18n.GT.$("JPEG Quality ({0})"), J.dialog.Dialog.qualityJPG))); +this.qSliderJPEG = new javax.swing.JSlider(0, 50, 100, J.dialog.Dialog.qualityJPG); +this.qSliderJPEG.putClientProperty("JSlider.isFilled", Boolean.TRUE); +this.qSliderJPEG.setPaintTicks(true); +this.qSliderJPEG.setMajorTickSpacing(10); +this.qSliderJPEG.setPaintLabels(true); +this.qSliderJPEG.addChangeListener(Clazz.innerTypeInstance(J.dialog.Dialog.QualityListener, this, null, true, this.qSliderJPEG)); +this.qPanelJPEG.add(this.qSliderJPEG, "South"); +qPanel2.add(this.qPanelJPEG, "North"); +this.qPanelPNG = new javax.swing.JPanel(); +this.qPanelPNG.setLayout( new java.awt.BorderLayout()); +this.qPanelPNG.setBorder( new javax.swing.border.TitledBorder(J.i18n.GT.i(J.i18n.GT.$("PNG Compression ({0})"), J.dialog.Dialog.qualityPNG))); +this.qSliderPNG = new javax.swing.JSlider(0, 0, 9, J.dialog.Dialog.qualityPNG); +this.qSliderPNG.putClientProperty("JSlider.isFilled", Boolean.TRUE); +this.qSliderPNG.setPaintTicks(true); +this.qSliderPNG.setMajorTickSpacing(2); +this.qSliderPNG.setPaintLabels(true); +this.qSliderPNG.addChangeListener(Clazz.innerTypeInstance(J.dialog.Dialog.QualityListener, this, null, false, this.qSliderPNG)); +this.qPanelPNG.add(this.qSliderPNG, "South"); +qPanel2.add(this.qPanelPNG, "South"); +this.add(qPanel2, "South"); +}, "~A,~A,~S"); +Clazz.overrideMethod(c$, "getType", +function(){ +return this.choice; +}); +Clazz.overrideMethod(c$, "getQuality", +function(sType){ +return (sType.equals("JPEG") || sType.equals("JPG") ? J.dialog.Dialog.qualityJPG : sType.equals("PNG") ? J.dialog.Dialog.qualityPNG : -1); +}, "~S"); +c$.doOverWrite = Clazz.defineMethod(c$, "doOverWrite", +function(chooser, file){ +var options = Clazz.newArray(-1, [J.i18n.GT.$("Yes"), J.i18n.GT.$("No")]); +var opt = javax.swing.JOptionPane.showOptionDialog(chooser, J.i18n.GT.o(J.i18n.GT.$("Do you want to overwrite file {0}?"), file.getAbsolutePath()), J.i18n.GT.$("Warning"), -1, 2, null, options, options[0]); +return (opt == 0); +}, "javax.swing.JFileChooser,java.io.File"); +Clazz.defineMethod(c$, "showSaveDialog", +function(c, chooser, file){ +while (true) { +if (chooser.showSaveDialog(c) != 0) return null; +if (this.cb != null && this.cb.getSelectedIndex() >= 0) J.dialog.Dialog.defaultChoice = this.cb.getSelectedIndex(); +if ((file = chooser.getSelectedFile()) == null || !file.exists() || J.dialog.Dialog.doOverWrite(chooser, file)) return file; +} +}, "java.awt.Component,javax.swing.JFileChooser,java.io.File"); +Clazz.overrideMethod(c$, "setupUI", +function(forceNewTranslation){ +if (forceNewTranslation || !J.dialog.Dialog.haveTranslations) J.dialog.Dialog.setupUIManager(); +J.dialog.Dialog.haveTranslations = true; +}, "~B"); +c$.setupUIManager = Clazz.defineMethod(c$, "setupUIManager", +function(){ +javax.swing.UIManager.put("FileChooser.acceptAllFileFilterText", J.i18n.GT.$("All Files")); +javax.swing.UIManager.put("FileChooser.cancelButtonText", J.i18n.GT.$("Cancel")); +javax.swing.UIManager.put("FileChooser.cancelButtonToolTipText", J.i18n.GT.$("Abort file chooser dialog")); +javax.swing.UIManager.put("FileChooser.detailsViewButtonAccessibleName", J.i18n.GT.$("Details")); +javax.swing.UIManager.put("FileChooser.detailsViewButtonToolTipText", J.i18n.GT.$("Details")); +javax.swing.UIManager.put("FileChooser.directoryDescriptionText", J.i18n.GT.$("Directory")); +javax.swing.UIManager.put("FileChooser.directoryOpenButtonText", J.i18n.GT.$("Open")); +javax.swing.UIManager.put("FileChooser.directoryOpenButtonToolTipText", J.i18n.GT.$("Open selected directory")); +javax.swing.UIManager.put("FileChooser.fileAttrHeaderText", J.i18n.GT.$("Attributes")); +javax.swing.UIManager.put("FileChooser.fileDateHeaderText", J.i18n.GT.$("Modified")); +javax.swing.UIManager.put("FileChooser.fileDescriptionText", J.i18n.GT.$("Generic File")); +javax.swing.UIManager.put("FileChooser.fileNameHeaderText", J.i18n.GT.$("Name")); +javax.swing.UIManager.put("FileChooser.fileNameLabelText", J.i18n.GT.$("File Name:")); +javax.swing.UIManager.put("FileChooser.fileSizeHeaderText", J.i18n.GT.$("Size")); +javax.swing.UIManager.put("FileChooser.filesOfTypeLabelText", J.i18n.GT.$("Files of Type:")); +javax.swing.UIManager.put("FileChooser.fileTypeHeaderText", J.i18n.GT.$("Type")); +javax.swing.UIManager.put("FileChooser.helpButtonText", J.i18n.GT.$("Help")); +javax.swing.UIManager.put("FileChooser.helpButtonToolTipText", J.i18n.GT.$("FileChooser help")); +javax.swing.UIManager.put("FileChooser.homeFolderAccessibleName", J.i18n.GT.$("Home")); +javax.swing.UIManager.put("FileChooser.homeFolderToolTipText", J.i18n.GT.$("Home")); +javax.swing.UIManager.put("FileChooser.listViewButtonAccessibleName", J.i18n.GT.$("List")); +javax.swing.UIManager.put("FileChooser.listViewButtonToolTipText", J.i18n.GT.$("List")); +javax.swing.UIManager.put("FileChooser.lookInLabelText", J.i18n.GT.$("Look In:")); +javax.swing.UIManager.put("FileChooser.newFolderErrorText", J.i18n.GT.$("Error creating new folder")); +javax.swing.UIManager.put("FileChooser.newFolderAccessibleName", J.i18n.GT.$("New Folder")); +javax.swing.UIManager.put("FileChooser.newFolderToolTipText", J.i18n.GT.$("Create New Folder")); +javax.swing.UIManager.put("FileChooser.openButtonText", J.i18n.GT.$("Open")); +javax.swing.UIManager.put("FileChooser.openButtonToolTipText", J.i18n.GT.$("Open selected file")); +javax.swing.UIManager.put("FileChooser.openDialogTitleText", J.i18n.GT.$("Open")); +javax.swing.UIManager.put("FileChooser.saveButtonText", J.i18n.GT.$("Save")); +javax.swing.UIManager.put("FileChooser.saveButtonToolTipText", J.i18n.GT.$("Save selected file")); +javax.swing.UIManager.put("FileChooser.saveDialogTitleText", J.i18n.GT.$("Save")); +javax.swing.UIManager.put("FileChooser.saveInLabelText", J.i18n.GT.$("Save In:")); +javax.swing.UIManager.put("FileChooser.updateButtonText", J.i18n.GT.$("Update")); +javax.swing.UIManager.put("FileChooser.updateButtonToolTipText", J.i18n.GT.$("Update directory listing")); +javax.swing.UIManager.put("FileChooser.upFolderAccessibleName", J.i18n.GT.$("Up")); +javax.swing.UIManager.put("FileChooser.upFolderToolTipText", J.i18n.GT.$("Up One Level")); +javax.swing.UIManager.put("OptionPane.cancelButtonText", J.i18n.GT.$("Cancel")); +javax.swing.UIManager.put("OptionPane.noButtonText", J.i18n.GT.$("No")); +javax.swing.UIManager.put("OptionPane.okButtonText", J.i18n.GT.$("OK")); +javax.swing.UIManager.put("OptionPane.yesButtonText", J.i18n.GT.$("Yes")); +}); +c$.getXPlatformLook = Clazz.defineMethod(c$, "getXPlatformLook", +function(fc){ +if (J.dialog.Dialog.isMac) { +var lnf = javax.swing.UIManager.getLookAndFeel(); +if (lnf.isNativeLookAndFeel()) { +try { +javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getCrossPlatformLookAndFeelClassName()); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println(e.getMessage()); +} else { +throw e; +} +} +fc.updateUI(); +try { +javax.swing.UIManager.setLookAndFeel(lnf); +} catch (e) { +if (Clazz.exceptionOf(e,"javax.swing.UnsupportedLookAndFeelException")){ +System.out.println(e.getMessage()); +} else { +throw e; +} +} +}} else { +fc.updateUI(); +}}, "javax.swing.JFileChooser"); +Clazz.overrideMethod(c$, "setImageInfo", +function(qualityJPG, qualityPNG, imageType){ +this.qualityJ = qualityJPG; +this.qualityP = qualityPNG; +this.imageType = imageType; +}, "~N,~N,~S"); +Clazz.overrideMethod(c$, "getFileNameFromDialog", +function(v, dType, iFileName){ +this.vwr = v; +this.dialogType = dType; +this.inputFileName = iFileName; +this.outputFileName = null; +try { +javax.swing.SwingUtilities.invokeAndWait(((Clazz.isClassDefined("J.dialog.Dialog$1") ? 0 : J.dialog.Dialog.$Dialog$1$ ()), Clazz.innerTypeInstance(J.dialog.Dialog$1, this, null))); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error(e.getMessage()); +} else { +throw e; +} +} +return this.outputFileName; +}, "JV.Viewer,~S,~S"); +c$.$Dialog$QualityListener$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +this.isJPEG = false; +this.slider = null; +Clazz.instantialize(this, arguments);}, J.dialog.Dialog, "QualityListener", null, javax.swing.event.ChangeListener); +Clazz.makeConstructor(c$, +function(isJPEG, slider){ +this.isJPEG = isJPEG; +this.slider = slider; +}, "~B,javax.swing.JSlider"); +Clazz.overrideMethod(c$, "stateChanged", +function(arg0){ +var value = this.slider.getValue(); +if (this.isJPEG) { +J.dialog.Dialog.qualityJPG = value; +this.b$["J.dialog.Dialog"].qPanelJPEG.setBorder( new javax.swing.border.TitledBorder(J.i18n.GT.i(J.i18n.GT.$("JPEG Quality ({0})"), value))); +} else { +J.dialog.Dialog.qualityPNG = value; +this.b$["J.dialog.Dialog"].qPanelPNG.setBorder( new javax.swing.border.TitledBorder(J.i18n.GT.i(J.i18n.GT.$("PNG Quality ({0})"), value))); +}}, "javax.swing.event.ChangeEvent"); +/*eoif4*/})(); +}; +c$.$Dialog$ExportChoiceListener$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +Clazz.instantialize(this, arguments);}, J.dialog.Dialog, "ExportChoiceListener", null, java.awt.event.ItemListener); +Clazz.overrideMethod(c$, "itemStateChanged", +function(e){ +var source = e.getSource(); +var selectedFile = J.dialog.Dialog.imageChooser.getSelectedFile(); +if (selectedFile == null) selectedFile = this.b$["J.dialog.Dialog"].initialFile; +var newFile = null; +var name; +var newExt = this.b$["J.dialog.Dialog"].extensions[source.getSelectedIndex()]; +if ((name = selectedFile.getName()) != null && name.endsWith("." + this.b$["J.dialog.Dialog"].extension)) { +name = name.substring(0, name.length - this.b$["J.dialog.Dialog"].extension.length); +name += newExt; +this.b$["J.dialog.Dialog"].initialFile = newFile = new java.io.File(selectedFile.getParent(), name); +}this.b$["J.dialog.Dialog"].extension = newExt; +J.dialog.Dialog.imageChooser.resetChoosableFileFilters(); +J.dialog.Dialog.imageChooser.addChoosableFileFilter( new J.dialog.Dialog.TypeFilter(this.b$["J.dialog.Dialog"].extension)); +if (newFile != null) J.dialog.Dialog.imageChooser.setSelectedFile(newFile); +this.b$["J.dialog.Dialog"].choice = source.getSelectedItem(); +}, "java.awt.event.ItemEvent"); +/*eoif4*/})(); +}; +c$.$Dialog$1$=function(){ +/*if5*/;(function(){ +var c$ = Clazz.declareAnonymous(J.dialog, "Dialog$1", null, Runnable); +Clazz.overrideMethod(c$, "run", +function(){ +if (this.b$["J.dialog.Dialog"].dialogType.equals("Load")) { +this.b$["J.dialog.Dialog"].outputFileName = this.b$["J.dialog.Dialog"].getOpenFileNameFromDialog(this.b$["J.dialog.Dialog"].vwr.vwrOptions, this.b$["J.dialog.Dialog"].vwr, this.b$["J.dialog.Dialog"].inputFileName, null, null, false); +return; +}if (this.b$["J.dialog.Dialog"].dialogType.equals("Save")) { +this.b$["J.dialog.Dialog"].outputFileName = this.b$["J.dialog.Dialog"].getSaveFileNameFromDialog(this.b$["J.dialog.Dialog"].vwr, this.b$["J.dialog.Dialog"].inputFileName, null); +return; +}if (this.b$["J.dialog.Dialog"].dialogType.startsWith("Save Image")) { +this.b$["J.dialog.Dialog"].outputFileName = this.b$["J.dialog.Dialog"].getImageFileNameFromDialog(this.b$["J.dialog.Dialog"].vwr, this.b$["J.dialog.Dialog"].inputFileName, this.b$["J.dialog.Dialog"].imageType, this.b$["J.dialog.Dialog"].imageChoices, this.b$["J.dialog.Dialog"].imageExtensions, this.b$["J.dialog.Dialog"].qualityJ, this.b$["J.dialog.Dialog"].qualityP); +return; +}this.b$["J.dialog.Dialog"].outputFileName = null; +}); +/*eoif5*/})(); +}; +/*if3*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.thisType = null; +Clazz.instantialize(this, arguments);}, J.dialog.Dialog, "TypeFilter", javax.swing.filechooser.FileFilter); +Clazz.makeConstructor(c$, +function(type){ +Clazz.superConstructor (this, J.dialog.Dialog.TypeFilter, []); +this.thisType = type.toLowerCase(); +}, "~S"); +Clazz.overrideMethod(c$, "accept", +function(f){ +if (f.isDirectory() || this.thisType == null) { +return true; +}var ext = f.getName(); +var pt = ext.lastIndexOf("."); +return (pt >= 0 && ext.substring(pt + 1).toLowerCase().equals(this.thisType)); +}, "java.io.File"); +Clazz.overrideMethod(c$, "getDescription", +function(){ +return this.thisType.toUpperCase() + " (*." + this.thisType + ")"; +}); +/*eoif3*/})(); +c$.defaultChoice = 0; +c$.qualityJPG = 75; +c$.qualityPNG = 2; +c$.imageChooser = null; +c$.saveChooser = null; +c$.openChooser = null; +c$.haveTranslations = false; +c$.isMac = System.getProperty("os.name", "").startsWith("Mac"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/dialog/FileChooser.js b/config/plugins/visualizations/jmol/static/j2s/J/dialog/FileChooser.js new file mode 100755 index 000000000000..2a86d8be3ba0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/dialog/FileChooser.js @@ -0,0 +1,31 @@ +Clazz.declarePackage("J.dialog"); +Clazz.load(["javax.swing.JFileChooser"], "J.dialog.FileChooser", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.dialogLocation = null; +this.dialogSize = null; +this.$dialog = null; +Clazz.instantialize(this, arguments);}, J.dialog, "FileChooser", javax.swing.JFileChooser); +Clazz.defineMethod(c$, "createDialog", +function(parent){ +this.$dialog = Clazz.superCall(this, J.dialog.FileChooser, "createDialog", [parent]); +if (this.$dialog != null) { +if (this.dialogLocation != null) { +this.$dialog.setLocation(this.dialogLocation); +}if (this.dialogSize != null) { +this.$dialog.setSize(this.dialogSize); +}}return this.$dialog; +}, "java.awt.Component"); +Clazz.defineMethod(c$, "setDialogLocation", +function(p){ +this.dialogLocation = p; +}, "java.awt.Point"); +Clazz.defineMethod(c$, "setDialogSize", +function(d){ +this.dialogSize = d; +}, "java.awt.Dimension"); +Clazz.defineMethod(c$, "getDialog", +function(){ +return this.$dialog; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/dialog/FilePreview.js b/config/plugins/visualizations/jmol/static/j2s/J/dialog/FilePreview.js new file mode 100755 index 000000000000..72f1fe9e38f4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/dialog/FilePreview.js @@ -0,0 +1,125 @@ +Clazz.declarePackage("J.dialog"); +Clazz.load(["java.beans.PropertyChangeListener", "javax.swing.JPanel", ], "J.dialog.FilePreview", ["JU.PT", "javax.swing.Box", "$.JCheckBox", "J.i18n.GT", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.active = null; +this.append = null; +this.cartoons = null; +this.chooser = null; +this.display = null; +this.vwr = null; +Clazz.instantialize(this, arguments);}, J.dialog, "FilePreview", javax.swing.JPanel, java.beans.PropertyChangeListener); +Clazz.makeConstructor(c$, +function(vwr, fileChooser, allowAppend, vwrOptions){ +Clazz.superConstructor(this, J.dialog.FilePreview); +this.vwr = vwr; +this.chooser = fileChooser; +var box = javax.swing.Box.createVerticalBox(); +this.active = new javax.swing.JCheckBox(J.i18n.GT.$("Preview"), false); +this.active.addActionListener(((Clazz.isClassDefined("J.dialog.FilePreview$1") ? 0 : J.dialog.FilePreview.$FilePreview$1$ ()), Clazz.innerTypeInstance(J.dialog.FilePreview$1, this, null))); +box.add(this.active); +this.display = new J.dialog.FilePreview.FPPanel(vwrOptions); +this.display.setPreferredSize( new java.awt.Dimension(80, 80)); +this.display.setMinimumSize( new java.awt.Dimension(50, 50)); +box.add(this.display); +if (allowAppend) { +this.append = new javax.swing.JCheckBox(J.i18n.GT.$("Append models"), false); +box.add(this.append); +this.cartoons = new javax.swing.JCheckBox(J.i18n.GT.$("PDB cartoons"), J.dialog.FilePreview.pdbCartoonChecked); +this.cartoons.addActionListener(((Clazz.isClassDefined("J.dialog.FilePreview$2") ? 0 : J.dialog.FilePreview.$FilePreview$2$ ()), Clazz.innerTypeInstance(J.dialog.FilePreview$2, this, null))); +box.add(this.cartoons); +}this.add(box); +fileChooser.setAccessory(this); +fileChooser.addPropertyChangeListener(this); +}, "JV.Viewer,javax.swing.JFileChooser,~B,java.util.Map"); +Clazz.defineMethod(c$, "doPreviewAction", +function(selected){ +this.doUpdatePreview(selected ? this.chooser.getSelectedFile() : null); +}, "~B"); +Clazz.defineMethod(c$, "isAppendSelected", +function(){ +return (this.append != null && this.append.isSelected()); +}); +Clazz.defineMethod(c$, "isCartoonsSelected", +function(){ +return J.dialog.FilePreview.pdbCartoonChecked = (this.cartoons != null && this.cartoons.isSelected()); +}); +Clazz.overrideMethod(c$, "propertyChange", +function(evt){ +if (this.active.isSelected()) { +var prop = evt.getPropertyName(); +if ("SelectedFileChangedProperty".equals(prop)) { +this.doUpdatePreview(evt.getNewValue()); +}}}, "java.beans.PropertyChangeEvent"); +Clazz.defineMethod(c$, "doUpdatePreview", +function(file){ +var script; +if (file == null) { +script = "zap"; +} else { +var fileName = file.getAbsolutePath(); +var url = this.vwr.getLocalUrl(fileName); +if (url != null) fileName = url; +fileName = fileName.$replace('\\', '/'); +script = " \"" + fileName + "\""; +if (fileName.indexOf(".spt") >= 0) { +script = "script " + script; +} else { +script = JU.PT.rep(this.display.vwr.getP("defaultdropscript"), "\"%FILE\"", script + " 1"); +script = JU.PT.rep(script, "%ALLOWCARTOONS", "" + (this.isCartoonsSelected() && !this.isAppendSelected())); +System.out.println(script); +}}this.display.vwr.evalStringQuiet(script); +}, "java.io.File"); +Clazz.defineMethod(c$, "setPreviewOptions", +function(TF){ +if (this.append == null) return; +this.append.setVisible(TF); +this.cartoons.setVisible(TF); +}, "~B"); +c$.$FilePreview$1$=function(){ +/*if5*/;(function(){ +var c$ = Clazz.declareAnonymous(J.dialog, "FilePreview$1", null, java.awt.event.ActionListener); +Clazz.overrideMethod(c$, "actionPerformed", +function(e){ +this.b$["J.dialog.FilePreview"].doPreviewAction(this.b$["J.dialog.FilePreview"].active.isSelected()); +}, "java.awt.event.ActionEvent"); +/*eoif5*/})(); +}; +c$.$FilePreview$2$=function(){ +/*if5*/;(function(){ +var c$ = Clazz.declareAnonymous(J.dialog, "FilePreview$2", null, java.awt.event.ActionListener); +Clazz.overrideMethod(c$, "actionPerformed", +function(e){ +if (this.b$["J.dialog.FilePreview"].active.isSelected()) { +this.b$["J.dialog.FilePreview"].doUpdatePreview(this.b$["J.dialog.FilePreview"].chooser.getSelectedFile()); +}}, "java.awt.event.ActionEvent"); +/*eoif5*/})(); +}; +/*if3*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.currentSize = null; +Clazz.instantialize(this, arguments);}, J.dialog.FilePreview, "FPPanel", javax.swing.JPanel); +Clazz.prepareFields (c$, function(){ +this.currentSize = new java.awt.Dimension(); +}); +Clazz.makeConstructor(c$, +function(info){ +Clazz.superConstructor (this, J.dialog.FilePreview.FPPanel, []); +info.put("previewOnly", Boolean.TRUE); +var display = info.get("display"); +info.put("display", this); +this.vwr = new JV.Viewer(info); +info.put("display", display); +}, "java.util.Map"); +Clazz.overrideMethod(c$, "paint", +function(g){ +this.getSize(this.currentSize); +this.vwr.setScreenDimension(this.currentSize.width, this.currentSize.height); +var rectClip = new java.awt.Rectangle(); +g.getClipBounds(rectClip); +this.vwr.renderScreenImage(g, this.currentSize.width, this.currentSize.height); +}, "java.awt.Graphics"); +/*eoif3*/})(); +c$.pdbCartoonChecked = true; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/dssx/AnnotationParser.js b/config/plugins/visualizations/jmol/static/j2s/J/dssx/AnnotationParser.js new file mode 100755 index 000000000000..8c4e5414c9f4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/dssx/AnnotationParser.js @@ -0,0 +1,429 @@ +Clazz.declarePackage("J.dssx"); +Clazz.load(["J.api.JmolAnnotationParser"], "J.dssx.AnnotationParser", ["java.util.Hashtable", "JU.AU", "$.BS", "$.Lst", "$.PT", "$.SB", "JM.Group", "JM.BioResolver", "JS.SV", "JU.BSUtil", "$.Logger"], function(){ +var c$ = Clazz.declareType(J.dssx, "AnnotationParser", null, J.api.JmolAnnotationParser); +/*LV!1824 unnec constructor*/Clazz.defineMethod(c$, "getAnnotationKVPairs", +function(a, match, dotPath, sb, pre, showDetail, isMappingOnly, type){ +var map = a.getMap(); +if (map == null || map.isEmpty()) return; +if (map.containsKey("_map")) map = map.get("_map").getMap(); +var detailKey = this.getDataKey(type); +if (showDetail && map.containsKey(detailKey)) { +if (match == null || dotPath.indexOf(match) >= 0) sb.append(map.get(detailKey).asString()).append("\n"); +return; +}for (var e, $e = map.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var key = e.getKey(); +if (key.equals(detailKey)) continue; +if (key.equals("metadata")) sb.append("\n"); +var val = e.getValue(); +if (val.tok == 6) { +if (type == 1073742189 && !showDetail) { +sb.append(key).append("\n"); +} else { +this.getAnnotationKVPairs(val, match, (dotPath.length == 0 ? "" : dotPath + ".") + key, sb, (pre.length == 0 ? "" : pre + "\t") + key, showDetail, isMappingOnly, type); +}} else { +var s = val.asString(); +if (match == null || s.indexOf(match) >= 0 || pre.indexOf(match) >= 0 || key.indexOf(match) >= 0 || dotPath.indexOf(match) >= 0) { +if (showDetail && isMappingOnly) continue; +if (pre.length > 0) sb.append(pre).append("\t"); +sb.append(key).append("="); +sb.append(s).append("\n"); +}}} +}, "JS.SV,~S,~S,JU.SB,~S,~B,~B,~N"); +Clazz.defineMethod(c$, "getDataKey", +function(type){ +switch (type) { +case 1073741925: +return "mappings"; +case 1073742189: +return "outliers"; +} +return null; +}, "~N"); +Clazz.overrideMethod(c$, "catalogStructureUnits", +function(viewer, map0, modelAtomIndices, resMap, object, modelMap){ +var note = "Use within(rna3d, TYPE) where TYPE is one of: "; +var data = map0.getMap(); +if (data == null) return null; +try { +map0.mapPut("_map", JS.SV.newV(6, data)); +var list = new JU.Lst(); +var set = data.entrySet(); +var sv; +var map; +for (var e, $e = set.iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +sv = e.getValue(); +var structures = sv.getList(); +if (structures != null) { +var key = e.getKey(); +note += "\"" + key + "\" "; +var svPath = JS.SV.newS(key); +for (var j = structures.size(); --j >= 0; ) { +var struc = structures.get(j); +map = struc.getMap(); +sv = map.get("units"); +map.put("_isres", JS.SV.vT); +var units = (sv == null || sv.tok == 7 ? sv.getList() : sv.tok == 4 ? new JU.Lst() : null); +if (units != null) { +if (sv.tok == 4) { +var svl = JU.PT.split(sv.asString(), ","); +for (var i = svl.length; --i >= 0; ) units.addLast(JS.SV.newS(svl[i].trim())); + +}if (units.size() > 0) { +var bsAtoms = new JU.BS(); +map.put("_atoms", JS.SV.getVariable(bsAtoms)); +map.put("_path", svPath); +list.addLast(struc); +for (var k = units.size(); --k >= 0; ) { +this.catalogUnit(viewer, null, units.get(k).asString(), 0, bsAtoms, modelAtomIndices, resMap, null, modelMap); +} +}}} +}} +map0.mapPut("_list", JS.SV.newV(7, list)); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.info(e + " while cataloging structures"); +return null; +} else { +throw e; +} +} +return note; +}, "JV.Viewer,JS.SV,~A,java.util.Map,~O,java.util.Map"); +Clazz.overrideMethod(c$, "catalogValidations", +function(viewer, map0, modelAtomIndices, resMap, atomMap, modelMap){ +var data = map0.getMap(); +if (data == null) return null; +var retProperties = new JU.Lst(); +var nModels = modelAtomIndices.length - 1; +try { +data = this.getMainItem(data).getMap(); +map0.mapPut("_map", JS.SV.newV(6, data)); +var list = new JU.Lst(); +map0.mapPut("_list", JS.SV.newV(7, list)); +var set = data.entrySet(); +var sv; +var map; +for (var e, $e = set.iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var floats = JU.AU.newFloat2(nModels); +for (var m = nModels; --m >= 0; ) floats[m] = Clazz.newFloatArray (modelAtomIndices[m + 1] - modelAtomIndices[m], 0); + +sv = e.getValue(); +var outliers = sv.getList(); +if (outliers == null) { +map = sv.getMap(); +if (map != null && (sv = map.get("outliers")) != null) outliers = sv.getList(); +}if (outliers != null) { +var hasUnit = false; +var key = e.getKey(); +var svPath = JS.SV.newS(key); +var isRes = false; +for (var j = outliers.size(); --j >= 0; ) { +var out = outliers.get(j); +map = out.getMap(); +sv = map.get("units"); +var svv = map.get("value"); +var val = (svv == null ? 1 : JS.SV.fValue(svv)); +var units = (val == 0 || sv == null || sv.tok == 7 ? sv.getList() : sv.tok == 4 ? new JU.Lst() : null); +if (units != null) { +if (sv.tok == 4) { +var svl = JU.PT.split(sv.asString(), ","); +for (var i = svl.length; --i >= 0; ) units.addLast(JS.SV.newS(svl[i].trim())); + +}if (units.size() > 0) { +var bsAtoms = new JU.BS(); +map.put("_atoms", JS.SV.getVariable(bsAtoms)); +map.put("_path", svPath); +hasUnit = true; +list.addLast(out); +for (var k = units.size(); --k >= 0; ) { +var ret = this.catalogUnit(viewer, floats, units.get(k).asString(), val, bsAtoms, modelAtomIndices, resMap, atomMap, modelMap); +if (ret) map.put("_isres", JS.SV.vT); +isRes = new Boolean (isRes | ret).valueOf(); +} +}}} +if (hasUnit) { +for (var m = nModels; --m >= 0; ) if (floats[m] != null) { +retProperties.addLast(key); +retProperties.addLast(floats[m]); +retProperties.addLast(Integer.$valueOf(m)); +retProperties.addLast(Boolean.$valueOf(isRes)); +} +}}} +return retProperties; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.info(e + " while cataloging validations"); +return null; +} else { +throw e; +} +} +}, "JV.Viewer,JS.SV,~A,java.util.Map,java.util.Map,java.util.Map"); +Clazz.defineMethod(c$, "getMainItem", +function(data){ +for (var e, $e = data.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var key = e.getKey(); +if (!key.contains("metadata")) return e.getValue(); +} +return null; +}, "java.util.Map"); +Clazz.overrideMethod(c$, "initializeAnnotation", +function(objAnn, type, modelIndex){ +var map = objAnn.getMap(); +var _list = map.get("_list"); +if (_list != null) return _list.getList(); +var dataKey = this.getDataKey(type); +var main = this.getMainItem(map); +map.put("_map", main); +var noSingles = true; +var _cat = new java.util.Hashtable(); +map.put("_cat", JS.SV.newV(6, _cat)); +var list = new JU.Lst(); +map.put("_list", _list = JS.SV.newV(7, list)); +for (var e, $e = main.getMap().entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var _dbName = e.getKey(); +var _dbMap = e.getValue(); +_cat.putAll(_dbMap.getMap()); +for (var e2, $e2 = _dbMap.getMap().entrySet().iterator (); $e2.hasNext()&& ((e2 = $e2.next ()) || true);) { +var _domainName = e2.getKey(); +var _domainMap = e2.getValue(); +var _domainList = _domainMap.mapGet(dataKey); +var _mapList = _domainList.getList(); +for (var i = _mapList.size(); --i >= 0; ) { +var mapping = _mapList.get(i); +list.addLast(mapping); +var mmap = mapping.getMap(); +var _chain = mmap.get("chain_id"); +var start = mmap.get("start"); +var end = mmap.get("end"); +var res1 = 0; +var res2 = 0; +var rescode = "modelIndex=" + modelIndex + "&chain='" + _chain.value + "'"; +if (start != null && end != null) { +res1 = start.mapGet("residue_number").intValue; +res2 = end.mapGet("residue_number").intValue; +rescode += "&seqid>=" + res1 + "&seqid<=" + res2; +} else { +res2 = 1; +rescode += "&seqid>0"; +}var _atoms = (noSingles && res1 >= res2 ? JS.SV.getVariable( new JU.BS()) : _cat.get(rescode)); +if (_atoms == null) _cat.put(rescode, _atoms = JS.SV.newS(rescode)); +mmap.put("_atoms", _atoms); +mmap.put("_path", JS.SV.newS(_dbName + "." + _domainName)); +mmap.put("domain", _domainMap); +} +} +} +return list; +}, "JS.SV,~N,~N"); +Clazz.defineMethod(c$, "findAnnotationAtoms", +function(vwr, name, _list, key, bs){ +if (_list == null) return; +System.out.println("Checking " + name + " for " + key); +var data = vwr.extractProperty(_list, "[" + key + "]", -1); +var list = null; +if (Clazz.instanceOf(data,"JU.Lst")) { +list = data; +} else if (Clazz.instanceOf(data,"JS.SV")) { +list = (data).getList(); +}if (list == null) return; +for (var i = 0, n = list.size(); i < n; i++) { +var o = list.get(i); +var mapping = (Clazz.instanceOf(o,"JS.SV") ? (o).getMap() : o); +if (mapping == null) return; +bs.or(this.setAnnotationAtoms(vwr, mapping, i)); +} +}, "JV.Viewer,~S,JU.Lst,~S,JU.BS"); +Clazz.defineMethod(c$, "setAnnotationAtoms", +function(vwr, mapping, i){ +var _atoms = mapping.get("_atoms"); +if (_atoms.tok != 10) { +var bs2 = vwr.getAtomBitSet(_atoms.value); +if (i >= 0) JU.Logger.info("#" + (i + 1) + " found " + bs2.cardinality() + " atoms for " + _atoms.value); +_atoms.tok = 10; +_atoms.value = bs2; +}return _atoms.value; +}, "JV.Viewer,java.util.Map,~N"); +Clazz.defineMethod(c$, "catalogUnit", +function(viewer, vals, unitID, val, bsAtoms, modelAtomIndices, resMap, atomMap, modelMap){ +var s = JU.PT.split(unitID + (vals == null ? "||||" : "|||"), "|"); +if (s.length < 8 || s[1].length == 0 || s[2].length == 0 || s[3].length == 0 || s[4].length == 0) return false; +var sm = (s[1].length == 0 ? "1" : s[1]); +var m = (modelMap == null ? JU.PT.parseInt(sm) - 1 : -1); +var im = (m >= 0 ? null : modelMap.get(sm)); +if (im != null) m = im.intValue(); +if (m >= modelAtomIndices.length) return false; +var res = s[1] + "_" + viewer.getChainID(s[2], true) + "_" + s[4] + "_" + s[7].toLowerCase(); +var i0 = modelAtomIndices[m]; +var isRes = (atomMap == null || s[5].length == 0); +if (isRes) { +var a2 = resMap.get(res); +if (a2 != null) for (var j = a2[1], j0 = a2[0]; --j >= j0; ) { +bsAtoms.set(i0 + j); +if (vals != null) vals[m][j] += Math.abs(val); +} +} else { +if (s[5].charAt(0) == 'H') s[5] = this.getAttachedAtomForPDBH(s[3], s[5]); +var atom = res + "_" + s[5] + "_" + s[6].toLowerCase(); +var ia = atomMap.get(atom); +if (ia != null) { +var j = ia.intValue(); +bsAtoms.set(i0 + j); +if (vals != null) vals[m][j] += Math.abs(val); +}}return isRes; +}, "JV.Viewer,~A,~S,~N,JU.BS,~A,java.util.Map,java.util.Map,java.util.Map"); +Clazz.overrideMethod(c$, "getAtomBits", +function(vwr, key, dbObj, annotationCache, type, modelIndex, bsModel){ +if (dbObj == null) return new JU.BS(); +var doCache = !key.contains("NOCACHE"); +if (!doCache) { +key = JU.PT.rep(key, "NOCACHE", "").trim(); +}var bs = (doCache ? annotationCache.get(key) : null); +if (bs != null) return bs; +bs = new JU.BS(); +if (doCache) annotationCache.put(key, bs); +try { +var list = this.initializeAnnotation(dbObj, type, modelIndex); +var pt = key.toLowerCase().indexOf(" where "); +var path = JU.PT.rep((pt < 0 ? key : key.substring(0, pt)), " ", ""); +var newKey = (pt < 0 ? "" : key.substring(pt + 7).trim()); +if (path.indexOf(".") < 0) { +path = " _path like '" + path + "*'"; +} else { +path = " _path='" + path + "'"; +}newKey = "select * where " + (pt < 0 ? path : "(" + newKey + ") and (" + path + ")"); +JU.Logger.info("looking for " + newKey); +this.findAnnotationAtoms(vwr, path, list, newKey, bs); +bs.and(bsModel); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println(e.toString() + " in AnnotationParser"); +bs.clearAll(); +} else { +throw e; +} +} +return bs; +}, "JV.Viewer,~S,~O,java.util.Map,~N,~N,JU.BS"); +Clazz.overrideMethod(c$, "getAtomValidation", +function(vwr, type, atom){ +var i = 0; +var n = 0; +var l = null; +var map = null; +var list = null; +try { +var ia = atom.i; +l = new JU.Lst(); +list = (vwr.ms.getModelAuxiliaryInfo(atom.mi).get("validation")).mapGet("_list").getList(); +for (i = 0, n = list.size(); i < n; i++) { +map = list.get(i).getMap(); +if (map.get("_path").value.equals(type) && (map.get("_atoms").value).get(ia)) { +var v = map.get("value"); +l.addLast(v.tok == 3 ? v.value : Float.$valueOf(v.asFloat())); +}} +return l; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return null; +} else { +throw e; +} +} +}, "JV.Viewer,~S,JM.Atom"); +Clazz.overrideMethod(c$, "getAnnotationInfo", +function(vwr, a, match, type, modelIndex){ +var sb = new JU.SB(); +if ("".equals(match)) match = null; +var isDetail = (match != null && (match.equals("all") || match.endsWith(" all"))); +if (isDetail) { +var _list = this.initializeAnnotation(a, type, modelIndex); +for (var i = _list.size(); --i >= 0; ) this.setAnnotationAtoms(vwr, _list.get(i).getMap(), -1); + +match = match.substring(0, Math.max(0, match.length - 4)).trim(); +}if ("".equals(match)) match = null; +if (type == 1073742189 && !isDetail && match == null) return a.mapGet("_note").asString(); +var isMappingOnly = (match != null && match.indexOf(".") >= 0 && match.indexOf(".*") < 0); +match = JU.PT.rep(match, "*", ""); +try { +this.getAnnotationKVPairs(a, match, "", sb, "", isDetail, isMappingOnly, type); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +{ +System.out.println(e); +}} else { +throw e; +} +} +return sb.toString(); +}, "JV.Viewer,JS.SV,~S,~N,~N"); +Clazz.defineMethod(c$, "getAttachedAtomForPDBH", +function(group3, name){ +if (name.charAt(0) == 'H') { +if (J.dssx.AnnotationParser.pdbAtomForH == null) { +J.dssx.AnnotationParser.pdbAtomForH = new java.util.Hashtable(); +this.assignPDBH("", "N H H1 H2 H3 CB HB2 HB3 CD HD2 HD3 CG HG2 HG3 C2' H2'' H2' C5' H5'' H5' OXT HXT"); +for (var i = JM.BioResolver.pdbBondInfo.length; --i >= 1; ) { +this.assignPDBH(JM.Group.group3Names[i], JM.BioResolver.pdbBondInfo[i]); +} +}var a = J.dssx.AnnotationParser.pdbAtomForH.get(name); +if (a == null) a = J.dssx.AnnotationParser.pdbAtomForH.get(group3 + name); +if (a != null) return a; +}return name; +}, "~S,~S"); +Clazz.defineMethod(c$, "assignPDBH", +function(group3, sNames){ +var names = JU.PT.getTokens(JU.PT.rep(sNames, "@", " ")); +var a = null; +for (var i = 0, n = names.length; i < n; i++) { +var s = names[i]; +if (s.charAt(0) != 'H') { +a = s; +continue; +}s = group3 + s; +if (s.indexOf("?") >= 0) { +s = s.substring(0, s.length - 1); +J.dssx.AnnotationParser.pdbAtomForH.put(s + "1", a); +J.dssx.AnnotationParser.pdbAtomForH.put(s + "2", a); +J.dssx.AnnotationParser.pdbAtomForH.put(s + "3", a); +} else { +J.dssx.AnnotationParser.pdbAtomForH.put(s, a); +}} +}, "~S,~S"); +Clazz.overrideMethod(c$, "fixAtoms", +function(modelIndex, dbObj, bsAddedMask, type, margin){ +var _list = this.initializeAnnotation(dbObj, type, modelIndex); +for (var i = _list.size(); --i >= 0; ) { +var m = _list.get(i).getMap(); +var _atoms = m.get("_atoms"); +if (_atoms != null && _atoms.tok == 10) JU.BSUtil.shiftBits(_atoms.value, bsAddedMask, _list.get(i).mapGet("_isres") != null, (_atoms.value).length() + margin); +} +}, "~N,JS.SV,JU.BS,~N,~N"); +Clazz.overrideMethod(c$, "getBasePairs", +function(vwr, modelIndex){ +}, "JV.Viewer,~N"); +Clazz.overrideMethod(c$, "calculateDSSRStructure", +function(vwr, bsAtoms){ +return null; +}, "JV.Viewer,JU.BS"); +Clazz.overrideMethod(c$, "fixDSSRJSONMap", +function(map){ +return null; +}, "java.util.Map"); +Clazz.overrideMethod(c$, "getHBonds", +function(ms, modelIndex, vHBonds, doReport){ +return null; +}, "JM.ModelSet,~N,JU.Lst,~B"); +Clazz.overrideMethod(c$, "getAtomicDSSRData", +function(ms, modelIndex, dssrData, dataType){ +}, "JM.ModelSet,~N,~A,~S"); +Clazz.overrideMethod(c$, "setGroup1", +function(ms, modelIndex){ +}, "JM.ModelSet,~N"); +Clazz.overrideMethod(c$, "getDSSRFrame", +function(dssrNT){ +return null; +}, "java.util.Map"); +c$.pdbAtomForH = null; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/dssx/Bridge.js b/config/plugins/visualizations/jmol/static/j2s/J/dssx/Bridge.js new file mode 100755 index 000000000000..d19ea4a6edf0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/dssx/Bridge.js @@ -0,0 +1,51 @@ +Clazz.declarePackage("J.dssx"); +Clazz.load(null, "J.dssx.Bridge", ["JU.Escape"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.a = null; +this.b = null; +this.ladder = null; +this.isAntiparallel = false; +Clazz.instantialize(this, arguments);}, J.dssx, "Bridge", null); +Clazz.makeConstructor(c$, +function(a, b, htLadders){ +this.a = a; +this.b = b; +this.ladder = Clazz.newIntArray (2, 2, 0); +this.ladder[0][0] = this.ladder[0][1] = Math.min(a.i, b.i); +this.ladder[1][0] = this.ladder[1][1] = Math.max(a.i, b.i); +this.addLadder(htLadders); +}, "JM.Atom,JM.Atom,java.util.Map"); +Clazz.defineMethod(c$, "addBridge", +function(bridge, htLadders){ +if (bridge.isAntiparallel != this.isAntiparallel || !this.canAdd(bridge) || !bridge.canAdd(this)) return false; +this.extendLadder(bridge.ladder[0][0], bridge.ladder[1][0]); +this.extendLadder(bridge.ladder[0][1], bridge.ladder[1][1]); +bridge.ladder = this.ladder; +if (bridge.ladder !== this.ladder) { +htLadders.remove(bridge.ladder); +this.addLadder(htLadders); +}return true; +}, "J.dssx.Bridge,java.util.Map"); +Clazz.defineMethod(c$, "addLadder", +function(htLadders){ +htLadders.put(this.ladder, (this.isAntiparallel ? Boolean.TRUE : Boolean.FALSE)); +}, "java.util.Map"); +Clazz.defineMethod(c$, "canAdd", +function(bridge){ +var index1 = bridge.a.i; +var index2 = bridge.b.i; +return (this.isAntiparallel ? (index1 >= this.ladder[0][1] && index2 <= this.ladder[1][0] || index1 <= this.ladder[0][0] && index2 >= this.ladder[1][1]) : (index1 <= this.ladder[0][0] && index2 <= this.ladder[1][0] || index1 >= this.ladder[0][1] && index2 >= this.ladder[1][1])); +}, "J.dssx.Bridge"); +Clazz.defineMethod(c$, "extendLadder", +function(index1, index2){ +if (this.ladder[0][0] > index1) this.ladder[0][0] = index1; +if (this.ladder[0][1] < index1) this.ladder[0][1] = index1; +if (this.ladder[1][0] > index2) this.ladder[1][0] = index2; +if (this.ladder[1][1] < index2) this.ladder[1][1] = index2; +}, "~N,~N"); +Clazz.overrideMethod(c$, "toString", +function(){ +return (this.isAntiparallel ? "a " : "p ") + this.a + " - " + this.b + "\t" + JU.Escape.e(this.ladder); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/dssx/DSSP.js b/config/plugins/visualizations/jmol/static/j2s/J/dssx/DSSP.js new file mode 100755 index 000000000000..d0add9efe685 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/dssx/DSSP.js @@ -0,0 +1,366 @@ +Clazz.declarePackage("J.dssx"); +Clazz.load(null, "J.dssx.DSSP", ["java.util.Hashtable", "JU.AU", "$.BS", "$.Lst", "$.PT", "$.SB", "J.c.STR", "J.dssx.Bridge", "J.i18n.GT", "JM.HBond", "JU.Escape", "$.Logger", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.bioPolymers = null; +this.vHBonds = null; +this.done = null; +this.doReport = false; +this.dsspIgnoreHydrogens = false; +this.setStructure = false; +this.labels = null; +this.bsBad = null; +this.bioPolymerCount = 0; +this.htBridges = null; +this.htLadders = null; +this.bridgesA = null; +this.bridgesP = null; +this.isDSSP2 = false; +this.sheetOffsets = null; +Clazz.instantialize(this, arguments);}, J.dssx, "DSSP", null); +Clazz.prepareFields (c$, function(){ +this.sheetOffsets = Clazz.newArray(-1, [ Clazz.newIntArray(-1, [0, -1, 1, 0, 1, 0, 0, -1]), Clazz.newIntArray(-1, [0, 0, 0, 0, 1, -1, 1, -1])]); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.defineMethod(c$, "calculateDssp", +function(objBioPolymers, bioPolymerCount, objVHBonds, doReport, dsspIgnoreHydrogens, setStructure, version){ +this.bioPolymers = objBioPolymers; +this.bioPolymerCount = bioPolymerCount; +this.vHBonds = objVHBonds; +this.doReport = doReport; +this.dsspIgnoreHydrogens = dsspIgnoreHydrogens; +this.setStructure = setStructure; +this.isDSSP2 = (version > 1); +var bsAmino = new JU.BS(); +for (var i = 0; i < bioPolymerCount; i++) if (Clazz.instanceOf(this.bioPolymers[i],"JM.AminoPolymer")) bsAmino.set(i); + +if (bsAmino.isEmpty()) return ""; +var m = this.bioPolymers[0].model; +var sb = new JU.SB(); +sb.append("Jmol ").append(JV.Viewer.getJmolVersion()).append(" DSSP analysis for model ").append(m.ms.getModelNumberDotted(m.modelIndex)).append(" - ").append(m.ms.getModelTitle(m.modelIndex)).append("\n"); +if (m.modelIndex == 0) sb.append("\nW. Kabsch and C. Sander, Biopolymers, vol 22, 1983, pp 2577-2637\n\nWe thank Wolfgang Kabsch and Chris Sander for writing the DSSP software,\nand we thank the CMBI for maintaining it to the extent that it was easy to\nre-engineer in Java for our purposes. \n\nSecond generation DSSP 2.0 is ").append(this.isDSSP2 ? "" : "NOT ").append("used in this analysis. See Int. J. Mol. Sci. 2014, 15, 7841-7864; doi:10.3390/ijms15057841.\n"); +if (setStructure && m.modelIndex == 0) sb.append("\nAll bioshapes have been deleted and must be regenerated.\n"); +if (m.altLocCount > 0) sb.append("\nNote: This model contains alternative locations. Use 'CONFIGURATION 1' to be consistent with CMBI DSSP.\n"); +this.labels = Clazz.newCharArray (bioPolymerCount, '\0'); +this.done = new Array(bioPolymerCount); +this.bsBad = new JU.BS(); +var haveWarned = false; +for (var i = bsAmino.nextSetBit(0); i >= 0; i = bsAmino.nextSetBit(i + 1)) { +var ap = this.bioPolymers[i]; +if (!haveWarned && (ap.monomers[0]).getExplicitNH() != null) { +if (dsspIgnoreHydrogens) sb.append(J.i18n.GT.o(J.i18n.GT.$("NOTE: Backbone amide hydrogen positions are present and will be ignored. Their positions will be approximated, as in standard DSSP analysis.\nUse {0} to not use this approximation.\n\n"), "SET dsspCalculateHydrogenAlways FALSE")); + else sb.append(J.i18n.GT.o(J.i18n.GT.$("NOTE: Backbone amide hydrogen positions are present and will be used. Results may differ significantly from standard DSSP analysis.\nUse {0} to ignore these hydrogen positions.\n\n"), "SET dsspCalculateHydrogenAlways TRUE")); +haveWarned = true; +}ap.recalculateLeadMidpointsAndWingVectors(); +var n = ap.monomerCount; +this.labels[i] = Clazz.newCharArray (n, '\0'); +this.done[i] = new JU.BS(); +for (var j = 0; j < n; j++) if ((ap.monomers[j]).getCarbonylOxygenAtom() == null) this.bsBad.set(ap.monomers[j].leadAtomIndex); + +} +var min = this.getDualHydrogenBondArray(); +this.bridgesA = new JU.Lst(); +this.bridgesP = new JU.Lst(); +this.htBridges = new java.util.Hashtable(); +this.htLadders = new java.util.Hashtable(); +this.getBridges(min); +this.getSheetStructures(); +var reports = new Array(bioPolymerCount); +for (var i = bsAmino.nextSetBit(0); i >= 0; i = bsAmino.nextSetBit(i + 1)) if (min[i] != null) reports[i] = this.findHelixes(i, min[i]); + +if (doReport) { +var sbSummary = new JU.SB(); +sb.append("\n------------------------------\n"); +for (var i = bsAmino.nextSetBit(0); i >= 0; i = bsAmino.nextSetBit(i + 1)) if (this.labels[i] != null) { +var ap = this.bioPolymers[i]; +sbSummary.append(this.dumpSummary(ap, this.labels[i])); +sb.append(reports[i]).append(this.dumpTags(ap, "$.1: " + String.valueOf(this.labels[i]), this.bsBad, 2)); +} +if (this.bsBad.nextSetBit(0) >= 0) sb.append("\nNOTE: '!' indicates a residue that is missing a backbone carbonyl oxygen atom.\n"); +sb.append("\n").append("SUMMARY:" + sbSummary); +}return sb.toString(); +}, "~A,~N,~O,~B,~B,~B,~N"); +Clazz.defineMethod(c$, "getDualHydrogenBondArray", +function(){ +var min = JU.AU.newInt4(this.bioPolymerCount); +for (var i = 0; i < this.bioPolymerCount; i++) { +if (!(Clazz.instanceOf(this.bioPolymers[i],"JM.AminoPolymer"))) continue; +var n = this.bioPolymers[i].monomerCount; +min[i] = Clazz.newIntArray (n, 2, 3, 0); +for (var j = 0; j < n; ++j) { +min[i][j][0][1] = min[i][j][1][1] = -2147483648; +min[i][j][0][2] = min[i][j][1][2] = 0; +} +} +for (var i = 0; i < this.bioPolymerCount; i++) if (min[i] != null) for (var j = 0; j < this.bioPolymerCount; j++) if (min[j] != null) this.bioPolymers[i].calcRasmolHydrogenBonds(this.bioPolymers[j], null, null, null, 2, min[i], false, this.dsspIgnoreHydrogens); + + +return min; +}); +Clazz.defineMethod(c$, "getBridges", +function(min){ +var atoms = this.bioPolymers[0].model.ms.at; +var bridge = null; +var htTemp = new java.util.Hashtable(); +for (var p1 = 0; p1 < min.length; p1++) if (Clazz.instanceOf(this.bioPolymers[p1],"JM.AminoPolymer")) { +var ap1 = (this.bioPolymers[p1]); +var n = min[p1].length - 1; +for (var a = 1; a < n; a++) { +var ia = ap1.monomers[a].leadAtomIndex; +if (this.bsBad.get(ia)) continue; +for (var p2 = p1; p2 < min.length; p2++) if (Clazz.instanceOf(this.bioPolymers[p2],"JM.AminoPolymer")) for (var b = (p1 == p2 ? a + 3 : 1); b < min[p2].length - 1; b++) { +var ap2 = this.bioPolymers[p2]; +var ib = ap2.monomers[b].leadAtomIndex; +if (this.bsBad.get(ib)) continue; +if ((bridge = this.getBridge(min, p1, a, p2, b, this.bridgesP, atoms[ia], atoms[ib], ap1, ap2, htTemp, false)) != null) { +} else if ((bridge = this.getBridge(min, p1, a, p2, b, this.bridgesA, atoms[ia], atoms[ib], ap1, ap2, htTemp, true)) != null) { +bridge.isAntiparallel = true; +} else { +continue; +}if (JU.Logger.debugging) JU.Logger.debug("Bridge found " + bridge); +this.done[p1].set(a); +this.done[p2].set(b); +this.htBridges.put(ia + "-" + ib, bridge); +} + +} +} +}, "~A"); +Clazz.defineMethod(c$, "getBridge", +function(min, p1, a, p2, b, bridges, atom1, atom2, ap1, ap2, htTemp, isAntiparallel){ +var b1 = null; +var b2 = null; +var ipt = 0; +var offsets = (isAntiparallel ? this.sheetOffsets[1] : this.sheetOffsets[0]); +if ((b1 = this.isHbonded(a + offsets[0], b + offsets[1], p1, p2, min)) != null && (b2 = this.isHbonded(b + offsets[2], a + offsets[3], p2, p1, min)) != null || (b1 = this.isHbonded(a + offsets[ipt = 4], b + offsets[5], p1, p2, min)) != null && (b2 = this.isHbonded(b + offsets[6], a + offsets[7], p2, p1, min)) != null) { +var bridge = new J.dssx.Bridge(atom1, atom2, this.htLadders); +bridges.addLast(bridge); +if (this.vHBonds != null) { +var type = (isAntiparallel ? 14336 : 6144); +this.addHbond(ap1.monomers[a + offsets[ipt]], ap2.monomers[b + offsets[++ipt]], b1[2], type, htTemp); +this.addHbond(ap2.monomers[b + offsets[++ipt]], ap1.monomers[a + offsets[++ipt]], b2[2], type, htTemp); +}return bridge; +}return null; +}, "~A,~N,~N,~N,~N,JU.Lst,JM.Atom,JM.Atom,JM.AminoPolymer,JM.AminoPolymer,java.util.Map,~B"); +Clazz.defineMethod(c$, "addHbond", +function(donor, acceptor, iEnergy, type, htTemp){ +var nitrogen = (donor).getNitrogenAtom(); +var oxygen = (acceptor).getCarbonylOxygenAtom(); +if (htTemp != null) { +var key = nitrogen.i + " " + oxygen.i; +if (htTemp.containsKey(key)) return; +htTemp.put(key, Boolean.TRUE); +}this.vHBonds.addLast( new JM.HBond(nitrogen, oxygen, type, 1, 0, iEnergy / 1000)); +}, "JM.Monomer,JM.Monomer,~N,~N,java.util.Map"); +Clazz.defineMethod(c$, "getSheetStructures", +function(){ +if (this.bridgesA.size() == 0 && this.bridgesP.size() == 0) return; +this.createLadders(this.bridgesA, true); +this.createLadders(this.bridgesP, false); +var bsEEE = new JU.BS(); +var bsB = new JU.BS(); +for (var ladder, $ladder = this.htLadders.keySet().iterator (); $ladder.hasNext()&& ((ladder = $ladder.next ()) || true);) { +if (ladder[0][0] == ladder[0][1] && ladder[1][0] == ladder[1][1]) { +bsB.set(ladder[0][0]); +bsB.set(ladder[1][0]); +} else { +bsEEE.setBits(ladder[0][0], ladder[0][1] + 1); +bsEEE.setBits(ladder[1][0], ladder[1][1] + 1); +}} +var bsSheet = new JU.BS(); +var bsBridge = new JU.BS(); +for (var i = this.bioPolymers.length; --i >= 0; ) { +if (!(Clazz.instanceOf(this.bioPolymers[i],"JM.AminoPolymer"))) continue; +bsSheet.clearAll(); +bsBridge.clearAll(); +var ap = this.bioPolymers[i]; +for (var iStart = 0; iStart < ap.monomerCount; ) { +var index = ap.monomers[iStart].leadAtomIndex; +if (bsEEE.get(index)) { +var iEnd = iStart + 1; +while (iEnd < ap.monomerCount && bsEEE.get(ap.monomers[iEnd].leadAtomIndex)) iEnd++; + +bsSheet.setBits(iStart, iEnd); +iStart = iEnd; +} else { +if (bsB.get(index)) bsBridge.set(iStart); +++iStart; +}} +if (this.doReport) { +this.setTag(this.labels[i], bsBridge, 'B'); +this.setTag(this.labels[i], bsSheet, 'E'); +}if (this.setStructure) { +ap.setStructureBS(0, 3, J.c.STR.SHEET, bsSheet, false); +}this.done[i].or(bsSheet); +this.done[i].or(bsBridge); +} +}); +Clazz.defineMethod(c$, "createLadders", +function(bridges, isAntiparallel){ +var dir = (isAntiparallel ? -1 : 1); +var n = bridges.size(); +for (var i = 0; i < n; i++) this.checkBridge(bridges.get(i), isAntiparallel, 1, dir); + +for (var i = 0; i < n; i++) this.checkBulge(bridges.get(i), isAntiparallel, 1); + +}, "JU.Lst,~B"); +Clazz.defineMethod(c$, "checkBridge", +function(bridge, isAntiparallel, n1, n2){ +var b = this.htBridges.get(bridge.a.getOffsetResidueAtom("\0", n1) + "-" + bridge.b.getOffsetResidueAtom("\0", n2)); +return (b != null && bridge.addBridge(b, this.htLadders)); +}, "J.dssx.Bridge,~B,~N,~N"); +Clazz.defineMethod(c$, "checkBulge", +function(bridge, isAntiparallel, dir){ +var dir1 = (isAntiparallel ? -1 : 1); +for (var i = 0; i < 3; i++) for (var j = (i == 0 ? 1 : 0); j < 6; j++) { +this.checkBridge(bridge, isAntiparallel, i * dir, j * dir1); +if (j > i) this.checkBridge(bridge, isAntiparallel, j * dir, i * dir1); +} + +}, "J.dssx.Bridge,~B,~N"); +Clazz.defineMethod(c$, "dumpSummary", +function(ap, labels){ +var a = ap.monomers[0].getLeadAtom(); +var id = a.getChainID(); +var prefix = (id == 0 ? "" : a.getChainIDStr() + ":"); +var sb = new JU.SB(); +var lastChar = '\u0000'; +var insCode1 = '\u0000'; +var insCode2 = '\u0000'; +var firstResno = -1; +var lastResno = -1; +var n = ap.monomerCount; +var m = ap.monomers; +for (var i = 0; i <= n; i++) { +if (i == n || labels[i] != lastChar) { +if (lastChar != '\0') sb.appendC('\n').appendC(lastChar).append(" : ").append(prefix).appendI(firstResno).append(insCode1 == '\0' ? "" : String.valueOf(insCode1)).append("_").append(prefix).appendI(lastResno).append(insCode2 == '\0' ? "" : String.valueOf(insCode2)); +if (i == n) break; +lastChar = labels[i]; +firstResno = m[i].getResno(); +insCode1 = m[i].getInsertionCode(); +}lastResno = m[i].getResno(); +insCode2 = m[i].getInsertionCode(); +} +return sb.toString(); +}, "JM.AminoPolymer,~A"); +Clazz.defineMethod(c$, "dumpTags", +function(ap, lines, bsBad, mode){ +var prefix = ap.monomers[0].getLeadAtom().getChainID() + "." + (ap.bioPolymerIndexInModel + 1); +lines = JU.PT.rep(lines, "$", prefix); +var iFirst = ap.monomers[0].getResno(); +var pre = "\n" + prefix; +var sb = new JU.SB(); +var sb0 = new JU.SB().append(pre + ".8: "); +var sb1 = new JU.SB().append(pre + ".7: "); +var sb2 = new JU.SB().append(pre + ".6: "); +var sb3 = new JU.SB().append(pre + ".0: "); +var i = iFirst; +var n = ap.monomerCount; +for (var ii = 0; ii < n; ii++) { +i = ap.monomers[ii].getResno(); +sb0.append(i % 100 == 0 ? "" + ((Clazz.doubleToInt(i / 100)) % 100) : " "); +sb1.append(i % 10 == 0 ? "" + ((Clazz.doubleToInt(i / 10)) % 10) : " "); +sb2.appendI(i % 10); +sb3.appendC(bsBad.get(ap.monomers[ii].leadAtomIndex) ? '!' : ap.monomers[ii].getGroup1()); +} +if ((mode & 1) == 1) sb.appendSB(sb0).appendSB(sb1).appendSB(sb2); +sb.append("\n"); +sb.append(lines); +if ((mode & 2) == 2) { +sb.appendSB(sb3); +sb.append("\n\n"); +}return sb.toString().$replace('\0', '.'); +}, "JM.AminoPolymer,~S,JU.BS,~N"); +Clazz.defineMethod(c$, "isHbonded", +function(indexDonor, indexAcceptor, pDonor, pAcceptor, min){ +if (indexDonor < 0 || indexAcceptor < 0) return null; +var min1 = min[pDonor]; +var min2 = min[pAcceptor]; +if (indexDonor >= min1.length || indexAcceptor >= min2.length) return null; +return (min1[indexDonor][0][0] == pAcceptor && min1[indexDonor][0][1] == indexAcceptor ? min1[indexDonor][0] : min1[indexDonor][1][0] == pAcceptor && min1[indexDonor][1][1] == indexAcceptor ? min1[indexDonor][1] : null); +}, "~N,~N,~N,~N,~A"); +Clazz.defineMethod(c$, "findHelixes", +function(iPolymer, min){ +var ap = this.bioPolymers[iPolymer]; +if (JU.Logger.debugging) for (var j = 0; j < ap.monomerCount; j++) JU.Logger.debug(iPolymer + "." + ap.monomers[j].getResno() + "\t" + JU.Escape.e(min[j])); + +var bsTurn = new JU.BS(); +var line3; +var line4; +var line5; +if (this.isDSSP2) { +line5 = this.findHelixes2(0, iPolymer, 5, min, J.c.STR.HELIXPI, 12288, bsTurn, true); +line4 = this.findHelixes2(2, iPolymer, 4, min, J.c.STR.HELIXALPHA, 10240, bsTurn, false); +line3 = this.findHelixes2(4, iPolymer, 3, min, J.c.STR.HELIX310, 8192, bsTurn, false); +} else { +line4 = this.findHelixes2(2, iPolymer, 4, min, J.c.STR.HELIXALPHA, 10240, bsTurn, true); +line3 = this.findHelixes2(4, iPolymer, 3, min, J.c.STR.HELIX310, 8192, bsTurn, false); +line5 = this.findHelixes2(0, iPolymer, 5, min, J.c.STR.HELIXPI, 12288, bsTurn, false); +}if (this.setStructure) ap.setStructureBS(0, 6, J.c.STR.TURN, bsTurn, false); +if (this.doReport) { +this.setTag(this.labels[iPolymer], bsTurn, 'T'); +return this.dumpTags(ap, "$.5: " + line5 + "\n" + "$.4: " + line4 + "\n" + "$.3: " + line3, this.bsBad, 1); +}return ""; +}, "~N,~A"); +Clazz.defineMethod(c$, "findHelixes2", +function(mmtfType, iPolymer, pitch, min, subtype, type, bsTurn, isFirst){ +var ap = this.bioPolymers[iPolymer]; +var bsStart = new JU.BS(); +var bsNNN = new JU.BS(); +var bsX = new JU.BS(); +var bsStop = new JU.BS(); +var bsHelix = new JU.BS(); +var bsDone = this.done[iPolymer]; +var warning = ""; +var n = ap.monomerCount; +for (var i = pitch; i < n; ++i) { +var i0 = i - pitch; +var bpt = 0; +if (min[i][0][0] == iPolymer && min[i][0][1] == i0 || min[i][bpt = 1][0] == iPolymer && min[i][1][1] == i0) { +var ia = ap.monomers[i0].leadAtomIndex; +var ipt = this.bsBad.nextSetBit(ia); +var m = ap.monomers[i]; +if (ipt >= ia && ipt <= m.leadAtomIndex) continue; +bsStart.set(i0); +bsNNN.setBits(i0 + 1, i); +bsStop.set(i); +ipt = bsDone.nextSetBit(i0); +var isClear = (ipt < 0 || ipt >= i); +var addH = false; +if (i0 > 0 && bsStart.get(i0 - 1) && (isFirst || isClear)) { +bsHelix.setBits(i0, i); +if (!isClear) warning += " WARNING! Bridge to helix at " + ap.monomers[ipt]; +addH = true; +} else if (isClear || bsDone.nextClearBit(ipt) < i) { +addH = true; +}if (bsStop.get(i0)) bsX.set(i0); +if (addH && this.vHBonds != null) { +this.addHbond(m, ap.monomers[i0], min[i][bpt][2], type, null); +}}} +var taglines; +if (this.doReport) { +taglines = Clazz.newCharArray (n, '\0'); +this.setTag(taglines, bsNNN, String.fromCharCode(48 + pitch)); +this.setTag(taglines, bsStart, '>'); +this.setTag(taglines, bsStop, '<'); +this.setTag(taglines, bsX, 'X'); +} else { +taglines = null; +}bsDone.or(bsHelix); +bsNNN.andNot(bsDone); +bsTurn.or(bsNNN); +bsTurn.andNot(bsHelix); +if (this.setStructure) ap.setStructureBS(0, mmtfType, subtype, bsHelix, false); +if (this.doReport) { +this.setTag(this.labels[iPolymer], bsHelix, String.fromCharCode(68 + pitch)); +return String.valueOf(taglines) + warning; +}return ""; +}, "~N,~N,~N,~A,J.c.STR,~N,JU.BS,~B"); +Clazz.defineMethod(c$, "setTag", +function(tags, bs, ch){ +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) tags[i] = ch; + +}, "~A,JU.BS,~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/dssx/DSSR0.js b/config/plugins/visualizations/jmol/static/j2s/J/dssx/DSSR0.js new file mode 100755 index 000000000000..d665941700b2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/dssx/DSSR0.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.dssx"); +(function(){ +var c$ = Clazz.declareType(J.dssx, "DSSR0", null); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/dssx/DSSR1.js b/config/plugins/visualizations/jmol/static/j2s/J/dssx/DSSR1.js new file mode 100755 index 000000000000..816d2cfb3ad7 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/dssx/DSSR1.js @@ -0,0 +1,279 @@ +Clazz.declarePackage("J.dssx"); +Clazz.load(["J.dssx.AnnotationParser"], "J.dssx.DSSR1", ["JU.BS", "$.Lst", "$.P3", "$.PT", "JM.HBond", "JM.BasePair", "JU.Escape", "$.Logger"], function(){ +var c$ = Clazz.declareType(J.dssx, "DSSR1", J.dssx.AnnotationParser); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.dssx.DSSR1, []); +}); +Clazz.overrideMethod(c$, "calculateDSSRStructure", +function(vwr, bsAtoms){ +var bs = vwr.ms.getModelBS(bsAtoms == null ? vwr.bsA() : bsAtoms, true); +var s = ""; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) s += this.getDSSRForModel(vwr, i) + "\n"; + +return s; +}, "JV.Viewer,JU.BS"); +Clazz.defineMethod(c$, "getDSSRForModel", +function(vwr, modelIndex){ +var info = null; +var out = null; +while (true) { +if (!vwr.ms.am[modelIndex].isBioModel) break; +info = vwr.ms.getModelAuxiliaryInfo(modelIndex); +if (info.containsKey("dssr")) break; +var bs = vwr.restrictToModel(vwr.ms.getAtoms(2097166, null), modelIndex); +if (bs.nextClearBit(0) < 0) { +info = null; +break; +}try { +var name = vwr.setLoadFormat(false, "=dssrModel/", '=', false); +name = JU.PT.rep(name, "%20", " "); +JU.Logger.info("fetching " + name + "[pdb data]"); +var data = vwr.getPdbAtomData(bs, null, false, false); +var modelNumber = vwr.getModelNumber(vwr.ms.getModelBS(bs, false).nextSetBit(0)); +var s = " " + modelNumber; +data = "MODEL" + s.substring(s.length - 9) + "\n" + data + "ENDMDL\n"; +data = vwr.getFileAsString3(name + data, false, null); +var x = vwr.parseJSONMap(data); +if (x != null) { +info.put("dssr", x); +this.setGroup1(vwr.ms, modelIndex); +this.fixDSSRJSONMap(x); +this.setBioPolymers(vwr.ms.am[modelIndex], false); +}} catch (e) { +info = null; +out = "" + e; +} +break; +} +return (info != null ? JU.PT.rep(JU.Escape.escapeMap((info.get("dssr")).get("counts")), ",", ",\n") : out == null ? "model has no nucleotides" : out); +}, "JV.Viewer,~N"); +Clazz.overrideMethod(c$, "fixDSSRJSONMap", +function(map){ +var s = ""; +try { +this.fixIndices(map, "kissingLoops", "hairpin"); +this.fixIndices(map, "coaxStacks", "stem"); +if (map.containsKey("counts")) s += "_M.dssr.counts = " + map.get("counts").toString() + "\n"; +if (map.containsKey("dbn")) s += "_M.dssr.dbn = " + map.get("dbn").toString(); +} catch (e) { +} +return s; +}, "java.util.Map"); +Clazz.defineMethod(c$, "fixIndices", +function(map, key, root){ +var indices = root + "_indices"; +var original = root + "s"; +var lst = map.get(key); +if (lst != null) { +var hpins = map.get(original); +for (var i = lst.size(); --i >= 0; ) { +var kmap = lst.get(i); +var khlist = kmap.get(indices); +var n = khlist.size(); +if (n > 0) { +var khpins = new JU.Lst(); +kmap.put(original, khpins); +for (var j = n; --j >= 0; ) khpins.addLast(hpins.get((khlist.get(j)).intValue() - 1)); + +}} +}}, "java.util.Map,~S,~S"); +Clazz.overrideMethod(c$, "getBasePairs", +function(vwr, modelIndex){ +var ms = vwr.ms; +var info = ms.getInfo(modelIndex, "dssr"); +var pairs = (info == null ? null : info.get("pairs")); +var singles = (info == null ? null : info.get("ssSegments")); +if (pairs == null && singles == null) { +this.setBioPolymers(vwr.ms.am[modelIndex], true); +return; +}var bsAtoms = ms.am[modelIndex].bsAtoms; +try { +var bs = new JU.BS(); +var atoms = ms.at; +if (pairs != null) for (var i = pairs.size(); --i >= 0; ) { +var map = pairs.get(i); +var unit1 = map.get("nt1"); +var unit2 = map.get("nt2"); +var a1 = ms.getSequenceBits(unit1, bsAtoms, bs).nextSetBit(0); +bs.clearAll(); +var a2 = ms.getSequenceBits(unit2, bsAtoms, bs).nextSetBit(0); +bs.clearAll(); +JM.BasePair.add(map, this.setRes(atoms[a1]), this.setRes(atoms[a2])); +} +if (singles != null) for (var i = singles.size(); --i >= 0; ) { +var map = singles.get(i); +var units = map.get("nts_long"); +ms.getSequenceBits(units, bsAtoms, bs); +for (var j = bs.nextSetBit(0); j >= 0; j = bs.nextSetBit(j + 1)) this.setRes(atoms[j]); + +} +} catch (e) { +JU.Logger.error("Exception " + e + " in DSSRParser.getBasePairs"); +} +}, "JV.Viewer,~N"); +Clazz.defineMethod(c$, "setBioPolymers", +function(m, b){ +var n = m.getBioPolymerCount(); +for (var i = n; --i >= 0; ) { +var bp = m.bioPolymers[i]; +if (bp.isNucleic()) (bp).isDssrSet = b; +} +}, "JM.BioModel,~B"); +Clazz.defineMethod(c$, "setRes", +function(atom){ +if (atom.group.getBioPolymerLength() == 0) return null; +var m = atom.group; +(m.bioPolymer).isDssrSet = true; +return m; +}, "JM.Atom"); +Clazz.overrideMethod(c$, "getAtomBits", +function(vwr, key, dbObj, annotationCache, type, modelIndex, bsModel){ +if (dbObj == null) return new JU.BS(); +var doCache = !key.contains("NOCACHE"); +if (!doCache) { +key = JU.PT.rep(key, "NOCACHE", "").trim(); +}var bs = null; +bs = new JU.BS(); +if (doCache) annotationCache.put(key, bs); +try { +key = JU.PT.rep(key, "[where", "[select * where"); +key = JU.PT.rep(key, "[WHERE", "[select * where"); +var ext = ""; +var n = -2147483648; +var pt = key.toLowerCase().indexOf("[select"); +if (pt >= 0) { +ext = key.substring(pt); +key = key.substring(0, pt); +pt = ext.lastIndexOf("].."); +if (pt >= 0 && (n = JU.PT.parseInt(ext.substring(pt + 3))) != -2147483648) ext = ext.substring(0, pt + 1); +}pt = key.toLowerCase().indexOf(" where "); +if (pt < 0) { +key = key.toLowerCase(); +pt = (n == -2147483648 ? key.lastIndexOf('.') : -1); +var haveIndex = false; +if (pt >= 0 && (haveIndex = (n = JU.PT.parseInt(key.substring(pt + 1))) != -2147483648)) key = key.substring(0, pt); +pt = "..bulges.nts_long..coaxstacks.stems.pairs.nt*..hairpins.nts_long..hbonds.atom1_id;atom2_id..helices.pairs.nt*..iloops.nts_long..isocanonpairs.nt*..junctions.nts_long..kissingloops.hairpins.nts_long..multiplets.nts_long..nonstack.nts_long..nts.nt_id..pairs.nt*..sssegments.nts_long..stacks.nts_long..stems.pairs.nt*..".indexOf(".." + key) + 2; +var len = key.length; +if (pt < 2) return bs; +var ptLast = (haveIndex ? pt + len : 2147483647); +while (pt >= 2 && pt < ptLast && len > 0) { +if (key.indexOf(".") < 0 && "..bulges.nts_long..coaxstacks.stems.pairs.nt*..hairpins.nts_long..hbonds.atom1_id;atom2_id..helices.pairs.nt*..iloops.nts_long..isocanonpairs.nt*..junctions.nts_long..kissingloops.hairpins.nts_long..multiplets.nts_long..nonstack.nts_long..nts.nt_id..pairs.nt*..sssegments.nts_long..stacks.nts_long..stems.pairs.nt*..".substring(pt + len, pt + len + 2).equals("..")) { +key = "[select (" + key + ")]"; +}dbObj = vwr.extractProperty(dbObj, key, -1); +pt += len + 1; +if (ext.length > 0) { +dbObj = vwr.extractProperty(dbObj, ext, -1); +ext = ""; +}var pt1 = "..bulges.nts_long..coaxstacks.stems.pairs.nt*..hairpins.nts_long..hbonds.atom1_id;atom2_id..helices.pairs.nt*..iloops.nts_long..isocanonpairs.nt*..junctions.nts_long..kissingloops.hairpins.nts_long..multiplets.nts_long..nonstack.nts_long..nts.nt_id..pairs.nt*..sssegments.nts_long..stacks.nts_long..stems.pairs.nt*..".indexOf(".", pt); +key = "..bulges.nts_long..coaxstacks.stems.pairs.nt*..hairpins.nts_long..hbonds.atom1_id;atom2_id..helices.pairs.nt*..iloops.nts_long..isocanonpairs.nt*..junctions.nts_long..kissingloops.hairpins.nts_long..multiplets.nts_long..nonstack.nts_long..nts.nt_id..pairs.nt*..sssegments.nts_long..stacks.nts_long..stems.pairs.nt*..".substring(pt, pt1); +len = key.length; +} +} else { +key = key.substring(0, pt).trim() + "[select * " + key.substring(pt + 1) + "]" + ext; +dbObj = vwr.extractProperty(dbObj, key, -1); +}if (n != -2147483648 && Clazz.instanceOf(dbObj,"JU.Lst")) { +if (n <= 0) n += (dbObj).size(); +dbObj = (dbObj).get(n - 1); +}bs.or(vwr.ms.getAtoms(1086324744, dbObj.toString())); +bs.and(bsModel); +} catch (e) { +System.out.println(e.toString() + " in AnnotationParser"); +bs.clearAll(); +} +return bs; +}, "JV.Viewer,~S,~O,java.util.Map,~N,~N,JU.BS"); +Clazz.overrideMethod(c$, "getHBonds", +function(ms, modelIndex, vHBonds, doReport){ +var info = ms.getInfo(modelIndex, "dssr"); +var list; +if (info == null || (list = info.get("hbonds")) == null) return "no DSSR hydrogen-bond data"; +var bsAtoms = ms.am[modelIndex].bsAtoms; +var unit1 = null; +var unit2 = null; +var a1 = 0; +var a2 = 0; +try { +var bs = new JU.BS(); +for (var i = list.size(); --i >= 0; ) { +var map = list.get(i); +unit1 = map.get("atom1_id"); +a1 = ms.getSequenceBits(unit1, bsAtoms, bs).nextSetBit(0); +if (a1 < 0) { +JU.Logger.error("Atom " + unit1 + " was not found"); +continue; +}unit2 = map.get("atom2_id"); +bs.clearAll(); +a2 = ms.getSequenceBits(unit2, bsAtoms, bs).nextSetBit(0); +if (a2 < 0) { +JU.Logger.error("Atom " + unit2 + " was not found"); +continue; +}bs.clearAll(); +var energy = 0; +vHBonds.addLast( new JM.HBond(ms.at[a1], ms.at[a2], 2048, 1, 0, energy)); +} +} catch (e) { +} +return "DSSR reports " + list.size() + " hydrogen bonds"; +}, "JM.ModelSet,~N,JU.Lst,~B"); +Clazz.overrideMethod(c$, "setGroup1", +function(ms, modelIndex){ +var info = ms.getInfo(modelIndex, "dssr"); +var list; +if (info == null || (list = info.get("nts")) == null) return; +var m = ms.am[modelIndex]; +var bsAtoms = m.bsAtoms; +var atoms = ms.at; +var bs = new JU.BS(); +for (var i = list.size(); --i >= 0; ) { +var map = list.get(i); +var ch = (map.get("nt_code")).charAt(0); +var unit1 = map.get("nt_id"); +ms.bioModelset.getAllSequenceBits(unit1, bsAtoms, bs); +var pt = bs.nextSetBit(0); +if (pt < 0) continue; +if ("ACGTU".indexOf(ch) < 0) atoms[pt].group.group1 = ch; +atoms[pt].group.dssrNT = map; +bs.clearAll(); +} +}, "JM.ModelSet,~N"); +Clazz.overrideMethod(c$, "getAtomicDSSRData", +function(ms, modelIndex, dssrData, dataType){ +var info = ms.getInfo(modelIndex, "dssr"); +var list; +if (info == null || (list = info.get(dataType)) == null) return; +var bsAtoms = ms.am[modelIndex].bsAtoms; +try { +var bs = new JU.BS(); +for (var i = list.size(); --i >= 0; ) { +var map = list.get(i); +bs.clearAll(); +ms.getSequenceBits(map.toString(), bsAtoms, bs); +for (var j = bs.nextSetBit(0); j >= 0; j = bs.nextSetBit(j + 1)) dssrData[j] = i; + +} +} catch (e) { +} +}, "JM.ModelSet,~N,~A,~S"); +Clazz.overrideMethod(c$, "getDSSRFrame", +function(nt){ +var frame = nt.get("frame"); +if (frame == null) return null; +var oxyz = new Array(4); +for (var i = 4; --i >= 0; ) oxyz[i] = new JU.P3(); + +this.getPoint(frame, "origin", oxyz[0]); +this.getPoint(frame, "x_axis", oxyz[1]); +this.getPoint(frame, "y_axis", oxyz[2]); +this.getPoint(frame, "z_axis", oxyz[3]); +return oxyz; +}, "java.util.Map"); +Clazz.defineMethod(c$, "getPoint", +function(frame, item, pt){ +var xyz = frame.get(item); +pt.x = xyz.get(0).floatValue(); +pt.y = xyz.get(1).floatValue(); +pt.z = xyz.get(2).floatValue(); +}, "java.util.Map,~S,JU.P3"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/Export3D.js b/config/plugins/visualizations/jmol/static/j2s/J/export/Export3D.js new file mode 100755 index 000000000000..d3a40aff9c4c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/Export3D.js @@ -0,0 +1,397 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.api.JmolRendererInterface", "JU.P3"], "J.export.Export3D", ["J.api.Interface", "J.g3d.HermiteRenderer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.exporter = null; +this.privateKey = 0; +this.gdata = null; +this.colix = 0; +this.hermite3d = null; +this.width = 0; +this.height = 0; +this.slab = 0; +this.depth = 0; +this.exportName = null; +this.webGL = false; +this.isCartesian = false; +this.ptA = null; +this.ptB = null; +this.ptC = null; +this.ptD = null; +Clazz.instantialize(this, arguments);}, J["export"], "Export3D", null, J.api.JmolRendererInterface); +Clazz.prepareFields (c$, function(){ +this.ptA = new JU.P3(); +this.ptB = new JU.P3(); +this.ptC = new JU.P3(); +this.ptD = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.overrideMethod(c$, "isWebGL", +function(){ +return this.webGL; +}); +Clazz.overrideMethod(c$, "initializeExporter", +function(vwr, privateKey, gdata, params){ +this.exportName = params.get("type"); +this.webGL = this.exportName.equals("JS"); +if ((this.exporter = J.api.Interface.getOption("export." + (this.webGL ? "" : "_") + this.exportName + "Exporter", vwr, "export")) == null) return null; +this.exporter.export3D = this; +this.isCartesian = (this.exporter.exportType == 1); +this.gdata = gdata; +gdata.setNewWindowParametersForExport(); +this.slab = gdata.slab; +this.width = gdata.width; +this.height = gdata.height; +this.privateKey = privateKey; +return (this.initializeOutput(vwr, privateKey, params) ? this.exporter : null); +}, "JV.Viewer,~N,JU.GData,java.util.Map"); +Clazz.overrideMethod(c$, "initializeOutput", +function(vwr, privateKey, params){ +return this.exporter.initializeOutput(vwr, privateKey, this.gdata, params); +}, "JV.Viewer,~N,java.util.Map"); +Clazz.overrideMethod(c$, "getExportType", +function(){ +return this.exporter.exportType; +}); +Clazz.overrideMethod(c$, "getExportName", +function(){ +return this.exportName; +}); +Clazz.overrideMethod(c$, "finalizeOutput", +function(){ +return this.exporter.finalizeOutput(); +}); +Clazz.overrideMethod(c$, "setSlab", +function(slabValue){ +this.gdata.setSlab(slabValue); +this.slab = this.gdata.slab; +}, "~N"); +Clazz.overrideMethod(c$, "setSlabAndZShade", +function(slabValue, depthValue, zSlab, zDepth, zPower){ +this.gdata.setSlab(slabValue); +this.slab = this.gdata.slab; +this.gdata.setDepth(depthValue); +this.depth = this.gdata.depth; +}, "~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "renderBackground", +function(me){ +if (!this.isCartesian) this.gdata.renderBackground(me); +}, "J.api.JmolRendererInterface"); +Clazz.overrideMethod(c$, "drawAtom", +function(atom, radius){ +this.exporter.drawAtom(atom, radius); +}, "JM.Atom,~N"); +Clazz.overrideMethod(c$, "drawRect", +function(x, y, z, zSlab, rWidth, rHeight){ +if (this.webGL) { +return; +}if (zSlab != 0 && this.gdata.isClippedZ(zSlab)) return; +var w = rWidth - 1; +var h = rHeight - 1; +var xRight = x + w; +var yBottom = y + h; +if (y >= 0 && y < this.height) this.drawHLine(x, y, z, w); +if (yBottom >= 0 && yBottom < this.height) this.drawHLine(x, yBottom, z, w); +if (x >= 0 && x < this.width) this.drawVLine(x, y, z, h); +if (xRight >= 0 && xRight < this.width) this.drawVLine(xRight, y, z, h); +}, "~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "drawHLine", +function(x, y, z, w){ +var argbCurrent = this.gdata.getColorArgbOrGray(this.colix); +if (w < 0) { +x += w; +w = -w; +}for (var i = 0; i <= w; i++) { +this.exporter.drawTextPixel(argbCurrent, x + i, y, z); +} +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "drawVLine", +function(x, y, z, h){ +var argbCurrent = this.gdata.getColorArgbOrGray(this.colix); +if (h < 0) { +y += h; +h = -h; +}for (var i = 0; i <= h; i++) { +this.exporter.drawTextPixel(argbCurrent, x, y + i, z); +} +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawFilledCircle", +function(colixRing, colixFill, diameter, x, y, z){ +if (!this.gdata.isClippedZ(z)) this.exporter.drawFilledCircle(colixRing, colixFill, diameter, x, y, z); +}, "~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "drawCircle", +function(colix, diameter, x, y, z, doFill){ +if (!this.gdata.isClippedZ(z)) this.exporter.drawCircle(x, y, z, diameter, colix, doFill); +}, "~N,~N,~N,~N,~N,~B"); +Clazz.overrideMethod(c$, "fillSphereXYZ", +function(diameter, x, y, z){ +this.ptA.set(x, y, z); +this.fillSphereBits(diameter, this.ptA); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillSphereI", +function(diameter, center){ +this.ptA.set(center.x, center.y, center.z); +this.fillSphereBits(diameter, this.ptA); +}, "~N,JU.P3i"); +Clazz.overrideMethod(c$, "fillSphereBits", +function(diameter, center){ +if (diameter != 0) this.exporter.fillSphere(this.colix, diameter, center); +}, "~N,JU.P3"); +Clazz.overrideMethod(c$, "fillTextRect", +function(x, y, z, zSlab, widthFill, heightFill){ +if (this.isCartesian || this.gdata.isClippedZ(zSlab)) return; +z = this.exporter.fixScreenZ(z); +this.ptA.set(x, y, z); +this.ptB.set(x + widthFill, y, z); +this.ptC.set(x + widthFill, y + heightFill, z); +this.ptD.set(x, y + heightFill, z); +this.fillQuadrilateral(this.ptA, this.ptB, this.ptC, this.ptD, false); +}, "~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawString", +function(str, font3d, xBaseline, yBaseline, z, zSlab, bgcolix){ +if (str != null && !this.gdata.isClippedZ(zSlab)) this.drawStringNoSlab(str, font3d, xBaseline, yBaseline, z, bgcolix); +}, "~S,JU.Font,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawStringNoSlab", +function(str, font3d, xBaseline, yBaseline, z, bgcolix){ +if (str == null) return; +z = Math.max(this.slab, z); +if (font3d == null) font3d = this.gdata.getFont3DCurrent(); + else this.gdata.setFont(font3d); +this.exporter.plotText(xBaseline, yBaseline, z, this.colix, str, font3d); +}, "~S,JU.Font,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawImage", +function(objImage, x, y, z, zSlab, bgcolix, width, height){ +if (this.isCartesian || objImage == null || width == 0 || height == 0 || this.gdata.isClippedZ(zSlab)) return; +z = Math.max(this.slab, z); +this.exporter.plotImage(x, y, z, objImage, bgcolix, width, height); +}, "~O,~N,~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawPixel", +function(x, y, z){ +this.plotPixelClipped(x, y, z); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "plotPixelClipped", +function(x, y, z){ +if (this.isClipped(x, y, z)) return; +this.exporter.drawPixel(this.colix, x, y, z, 1); +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "plotPixelClippedP3i", +function(screen){ +if (this.isClipped(screen.x, screen.y, screen.z)) return; +this.exporter.drawPixel(this.colix, screen.x, screen.y, screen.z, 1); +}, "JU.P3i"); +Clazz.overrideMethod(c$, "drawPoints", +function(count, coordinates, scale){ +for (var i = count * 3; i > 0; ) { +var z = coordinates[--i]; +var y = coordinates[--i]; +var x = coordinates[--i]; +if (this.isClipped(x, y, z)) continue; +this.exporter.drawPixel(this.colix, x, y, z, scale); +} +}, "~N,~A,~N"); +Clazz.overrideMethod(c$, "drawDashedLineBits", +function(run, rise, pointA, pointB){ +this.exporter.fillCylinderScreenMad(this.colix, 2, this.exporter.lineWidthMad, pointA, pointB); +}, "~N,~N,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "drawLineXYZ", +function(x1, y1, z1, x2, y2, z2){ +this.ptA.set(x1, y1, z1); +this.ptB.set(x2, y2, z2); +this.exporter.fillCylinderScreenMad(this.colix, 2, this.exporter.lineWidthMad, this.ptA, this.ptB); +}, "~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawLine", +function(colixA, colixB, xA, yA, zA, xB, yB, zB){ +this.fillCylinderXYZ(colixA, colixB, 2, this.exporter.lineWidthMad, xA, yA, zA, xB, yB, zB); +}, "~N,~N,~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "drawLineBits", +function(colixA, colixB, pointA, pointB){ +this.fillCylinderBits2(colixA, colixB, 2, this.exporter.lineWidthMad, pointA, pointB); +}, "~N,~N,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "drawLineAB", +function(pointA, pointB){ +this.exporter.fillCylinderScreenMad(this.colix, 2, this.exporter.lineWidthMad, pointA, pointB); +}, "JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "drawBond", +function(atomA, atomB, colixA, colixB, endcaps, mad, bondOrder){ +if (mad == 1) mad = this.exporter.lineWidthMad; +this.exporter.drawCylinder(atomA, atomB, colixA, colixB, endcaps, mad, bondOrder); +}, "JU.P3,JU.P3,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillCylinderXYZ", +function(colixA, colixB, endcaps, mad, xA, yA, zA, xB, yB, zB){ +this.ptA.set(xA, yA, zA); +this.ptB.set(xB, yB, zB); +this.exporter.drawCylinder(this.ptA, this.ptB, colixA, colixB, endcaps, mad, 1); +}, "~N,~N,~N,~N,~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillCylinderScreen3I", +function(endcaps, diameter, pointA, pointB, pt0f, pt1f, radius){ +if (diameter <= 0) return; +this.exporter.fillCylinderScreen(this.colix, endcaps, diameter, pointA, pointB, pt0f, pt1f, radius); +}, "~N,~N,JU.P3,JU.P3,JU.P3,JU.P3,~N"); +Clazz.overrideMethod(c$, "fillCylinder", +function(endcaps, diameter, pointA, pointB){ +if (diameter <= 0) return; +this.ptA.set(pointA.x, pointA.y, pointA.z); +this.ptB.set(pointB.x, pointB.y, pointB.z); +this.exporter.fillCylinderScreenMad(this.colix, endcaps, diameter, this.ptA, this.ptB); +}, "~N,~N,JU.P3i,JU.P3i"); +Clazz.overrideMethod(c$, "fillCylinderBits", +function(endcaps, diameter, pointA, pointB){ +if (diameter == 0) return; +if (this.isCartesian) { +this.exporter.fillCylinderScreen(this.colix, endcaps, diameter, pointA, pointB, null, null, 0); +} else { +this.exporter.fillCylinderScreenMad(this.colix, endcaps, diameter, pointA, pointB); +}}, "~N,~N,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "fillConeScreen3f", +function(endcap, screenDiameter, pointBase, screenTip, isBarb){ +this.exporter.fillConeScreen(this.colix, endcap, screenDiameter, pointBase, screenTip, isBarb); +}, "~N,~N,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "drawHermite4", +function(tension, s0, s1, s2, s3){ +this.hermite3d.renderHermiteRope(false, tension, 0, 0, 0, s0, s1, s2, s3); +}, "~N,JU.P3,JU.P3,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "fillHermite", +function(tension, diameterBeg, diameterMid, diameterEnd, s0, s1, s2, s3){ +this.hermite3d.renderHermiteRope(true, tension, diameterBeg, diameterMid, diameterEnd, s0, s1, s2, s3); +}, "~N,~N,~N,~N,JU.P3,JU.P3,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "drawTriangle3C", +function(screenA, colixA, screenB, colixB, screenC, colixC, check){ +if ((check & 1) == 1) this.drawLine(colixA, colixB, screenA.x, screenA.y, screenA.z, screenB.x, screenB.y, screenB.z); +if ((check & 2) == 2) this.drawLine(colixB, colixC, screenB.x, screenB.y, screenB.z, screenC.x, screenC.y, screenC.z); +if ((check & 4) == 4) this.drawLine(colixA, colixC, screenA.x, screenA.y, screenA.z, screenC.x, screenC.y, screenC.z); +}, "JU.P3i,~N,JU.P3i,~N,JU.P3i,~N,~N"); +Clazz.defineMethod(c$, "drawLineBits", +function(screenA, screenB, colixA, colixB){ +this.exporter.drawCylinder(screenA, screenB, colixA, colixB, 2, this.exporter.lineWidthMad, 1); +}, "JU.P3,JU.P3,~N,~N"); +Clazz.overrideMethod(c$, "fillCylinderBits2", +function(colixA, colixB, endcaps, mad, screenA, screenB){ +this.exporter.drawCylinder(screenA, screenB, colixA, colixB, endcaps, mad, 1); +}, "~N,~N,~N,~N,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "fillTriangle3CNBits", +function(pA, colixA, nA, pB, colixB, nB, pC, colixC, nC, twoSided){ +if (colixA != colixB || colixB != colixC) { +return; +}this.exporter.fillTriangle(colixA, pA, pB, pC, twoSided); +}, "JU.P3,~N,~N,JU.P3,~N,~N,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "fillTriangle3CN", +function(pointA, colixA, normixA, pointB, colixB, normixB, pointC, colixC, normixC){ +}, "JU.P3i,~N,~N,JU.P3i,~N,~N,JU.P3i,~N,~N"); +Clazz.overrideMethod(c$, "fillTriangleTwoSided", +function(normix, a, b, c){ +this.exporter.fillTriangle(this.colix, a, b, c, true); +}, "~N,JU.P3,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "fillTriangle3f", +function(pointA, pointB, pointC, setNoisy){ +this.exporter.fillTriangle(this.colix, pointA, pointB, pointC, false); +}, "JU.P3,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "fillTriangle3i", +function(screenA, screenB, screenC, ptA0, ptB0, ptC0, doShade){ +this.exporter.fillTriangle(this.colix, screenA, screenB, screenC, true); +}, "JU.P3,JU.P3,JU.P3,JU.T3,JU.T3,JU.T3,~B"); +Clazz.overrideMethod(c$, "fillQuadrilateral", +function(pointA, pointB, pointC, pointD, isSolid){ +this.exporter.fillTriangle(this.colix, pointA, pointB, pointC, false); +this.exporter.fillTriangle(this.colix, pointA, pointC, pointD, false); +}, "JU.P3,JU.P3,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "drawSurface", +function(meshSurface, colix){ +this.exporter.drawSurface(meshSurface, colix); +}, "JU.MeshSurface,~N"); +Clazz.overrideMethod(c$, "fillEllipsoid", +function(center, points, x, y, z, diameter, mToEllipsoidal, coef, mDeriv, selectedOctant, octantPoints){ +this.exporter.fillEllipsoid(center, points, this.colix, x, y, z, diameter, mToEllipsoidal, coef, mDeriv, octantPoints); +}, "JU.P3,~A,~N,~N,~N,~N,JU.M3,~A,JU.M4,~N,~A"); +Clazz.overrideMethod(c$, "drawEllipse", +function(ptAtom, ptX, ptY, fillArc, wireframeOnly){ +return this.exporter.drawEllipse(ptAtom, ptX, ptY, this.colix, fillArc); +}, "JU.P3,JU.P3,JU.P3,~B,~B"); +Clazz.overrideMethod(c$, "isAntialiased", +function(){ +return false; +}); +Clazz.overrideMethod(c$, "checkTranslucent", +function(isAlphaTranslucent){ +return true; +}, "~B"); +Clazz.overrideMethod(c$, "haveTranslucentObjects", +function(){ +return true; +}); +Clazz.overrideMethod(c$, "setC", +function(colix){ +this.colix = colix; +this.gdata.setC(colix); +return true; +}, "~N"); +Clazz.overrideMethod(c$, "isInDisplayRange", +function(x, y){ +return (this.isCartesian || this.gdata.isInDisplayRange(x, y)); +}, "~N,~N"); +Clazz.defineMethod(c$, "clipCode", +function(x, y, z){ +return (this.isCartesian ? this.gdata.clipCode(z) : this.gdata.clipCode3(x, y, z)); +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "isClippedXY", +function(diameter, x, y){ +return (!this.isCartesian && this.gdata.isClippedXY(diameter, x, y)); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "isClipped", +function(x, y, z){ +return (this.gdata.isClippedZ(z) || this.isClipped(x, y)); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "isClipped", +function(x, y){ +return (!this.isCartesian && this.gdata.isClipped(x, y)); +}, "~N,~N"); +Clazz.defineMethod(c$, "getPrivateKey", +function(){ +return this.privateKey; +}); +Clazz.overrideMethod(c$, "volumeRender4", +function(diam, x, y, z){ +this.fillSphereXYZ(diam, x, y, z); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "renderCrossHairs", +function(minMax, screenWidth, screenHeight, navigationOffset, navigationDepthPercent){ +}, "~A,~N,~N,JU.P3,~N"); +Clazz.overrideMethod(c$, "volumeRender", +function(TF){ +}, "~B"); +Clazz.overrideMethod(c$, "addRenderer", +function(tok){ +if (tok == 553648143) this.hermite3d = new J.g3d.HermiteRenderer().set(this, this.gdata); +}, "~N"); +Clazz.overrideMethod(c$, "plotImagePixel", +function(argb, x, y, z, shade, bgargb, width, height, pbuf, p, transpLog){ +if (this.webGL) return; +z = Math.max(this.slab, z); +if (shade != 0) { +var a = (shade == 8 ? 0xFF : ((8 - shade) << 4) + (8 - shade)); +argb = (argb & 0xFFFFFF) | (a << 24); +}this.exporter.drawTextPixel(argb, x, y, z); +}, "~N,~N,~N,~N,~N,~N,~N,~N,~A,~O,~N"); +Clazz.overrideMethod(c$, "drawHermite7", +function(fill, border, tension, s0, s1, s2, s3, s4, s5, s6, s7, aspectRatio, colixBack){ +if (colixBack == 0 || this.webGL) { +this.hermite3d.renderHermiteRibbon(fill, border, tension, s0, s1, s2, s3, s4, s5, s6, s7, aspectRatio, 0); +return; +}this.hermite3d.renderHermiteRibbon(fill, border, tension, s0, s1, s2, s3, s4, s5, s6, s7, aspectRatio, 1); +var colix = this.colix; +this.setC(colixBack); +this.hermite3d.renderHermiteRibbon(fill, border, tension, s0, s1, s2, s3, s4, s5, s6, s7, aspectRatio, -1); +this.setC(colix); +}, "~B,~B,~N,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,~N,~N"); +Clazz.overrideMethod(c$, "renderAllStrings", +function(jr){ +if (this.webGL) { +return; +}this.gdata.renderAllStrings(this); +}, "~O"); +Clazz.overrideMethod(c$, "drawLinePixels", +function(sA, sB, z, zslab){ +return; +}, "JU.P3i,JU.P3i,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/JSExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/JSExporter.js new file mode 100755 index 000000000000..d249754bdfbe --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/JSExporter.js @@ -0,0 +1,127 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export.__CartesianExporter", "java.util.Hashtable", "J.export.Export3D", "$.___Exporter"], "J.export.JSExporter", ["J.export.UseTable"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.htSpheresRendered = null; +this.htObjects = null; +this.html5Applet = null; +this.useTable = null; +this.ret = null; +Clazz.instantialize(this, arguments);}, J["export"], "JSExporter", J["export"].__CartesianExporter); +Clazz.prepareFields (c$, function(){ +this.htSpheresRendered = new java.util.Hashtable(); +this.htObjects = new java.util.Hashtable(); +this.ret = new Array(1); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J["export"].JSExporter, []); +}); +Clazz.defineMethod(c$, "jsInitExport", +function(applet){ +}, "~O"); +Clazz.defineMethod(c$, "jsEndExport", +function(applet){ +}, "~O"); +Clazz.defineMethod(c$, "jsCylinder", +function(applet, id, isNew, pt1, pt2, o){ +}, "~O,~S,~B,JU.P3,JU.P3,~A"); +Clazz.defineMethod(c$, "jsSphere", +function(applet, id, isNew, pt, o){ +}, "~O,~S,~B,JU.T3,~A"); +Clazz.defineMethod(c$, "jsSurface", +function(applet, vertices, normals, indices, nVertices, nPolygons, nFaces, bsPolygons, faceVertexMax, color, vertexColors, polygonColors){ +}, "~O,~A,~A,~A,~N,~N,~N,JU.BS,~N,~N,~A,~A"); +Clazz.defineMethod(c$, "jsTriangle", +function(applet, color, pt1, pt2, pt3){ +}, "~O,~N,JU.T3,JU.T3,JU.T3"); +Clazz.overrideMethod(c$, "outputHeader", +function(){ +this.html5Applet = this.vwr.html5Applet; +this.useTable = new J["export"].UseTable("JS"); +this.htSpheresRendered.clear(); +this.htObjects.clear(); +this.jsInitExport(this.html5Applet); +}); +Clazz.overrideMethod(c$, "outputFooter", +function(){ +this.jsEndExport(this.html5Applet); +this.htSpheresRendered.clear(); +this.htObjects.clear(); +this.useTable = null; +}); +Clazz.overrideMethod(c$, "outputSphere", +function(ptCenter, radius, colix, checkRadius){ +var iRad = Math.round(radius * 100); +var check = J["export"].___Exporter.round(ptCenter) + (checkRadius ? " " + iRad : ""); +if (this.htSpheresRendered.get(check) != null) return; +this.htSpheresRendered.put(check, Boolean.TRUE); +var found = this.useTable.getDefRet("S" + colix + "_" + iRad, this.ret); +var o; +if (found) o = this.htObjects.get(this.ret[0]); + else this.htObjects.put(this.ret[0], o = Clazz.newArray(-1, [this.getColor(colix), Float.$valueOf(radius)])); +this.jsSphere(this.html5Applet, this.ret[0], !found, ptCenter, o); +}, "JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputCylinder", +function(ptCenter, pt1, pt2, colix, endcaps, radius, ptX, ptY, checkRadius){ +if (ptX != null) return false; +var length = pt1.distance(pt2); +var found = this.useTable.getDefRet("C" + colix + "_" + Math.round(length * 100) + "_" + radius + "_" + endcaps, this.ret); +var o; +if (found) o = this.htObjects.get(this.ret[0]); + else this.htObjects.put(this.ret[0], o = Clazz.newArray(-1, [this.getColor(colix), Float.$valueOf(length), Float.$valueOf(radius)])); +this.jsCylinder(this.html5Applet, this.ret[0], !found, pt1, pt2, o); +return true; +}, "JU.P3,JU.P3,JU.P3,~N,~N,~N,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "outputCircle", +function(pt1, pt2, radius, colix, doFill){ +}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputEllipsoid", +function(center, points, colix){ +}, "JU.P3,~A,~N"); +Clazz.overrideMethod(c$, "outputCone", +function(ptBase, ptTip, radius, colix){ +this.outputCylinder(null, ptBase, ptTip, colix, 0, radius, null, null, false); +}, "JU.P3,JU.P3,~N,~N"); +Clazz.defineMethod(c$, "getColor", +function(colix){ +return Integer.$valueOf(this.gdata.getColorArgbOrGray(colix)); +}, "~N"); +Clazz.overrideMethod(c$, "outputSurface", +function(vertices, normals, vertexColixes, indices, polygonColixes, nVertices, nPolygons, nTriangles, bsPolygons, faceVertexMax, colix, colorList, htColixes, offset){ +var vertexColors = this.getColors(vertexColixes); +var polygonColors = this.getColors(polygonColixes); +this.jsSurface(this.html5Applet, vertices, normals, indices, nVertices, nPolygons, nTriangles, bsPolygons, faceVertexMax, this.gdata.getColorArgbOrGray(colix), vertexColors, polygonColors); +}, "~A,~A,~A,~A,~A,~N,~N,~N,JU.BS,~N,~N,JU.Lst,java.util.Map,JU.P3"); +Clazz.overrideMethod(c$, "outputTriangle", +function(pt1, pt2, pt3, colix){ +this.jsTriangle(this.html5Applet, this.gdata.getColorArgbOrGray(colix), pt1, pt2, pt3); +}, "JU.T3,JU.T3,JU.T3,~N"); +Clazz.overrideMethod(c$, "outputTextPixel", +function(pt, argb){ +}, "JU.P3,~N"); +Clazz.overrideMethod(c$, "outputFace", +function(is, coordMap, faceVertexMax){ +}, "~A,~A,~N"); +Clazz.defineMethod(c$, "output", +function(pt){ +}, "JU.T3"); +Clazz.overrideMethod(c$, "plotImage", +function(x, y, z, image, bgcolix, width, height){ +}, "~N,~N,~N,~O,~N,~N,~N"); +Clazz.overrideMethod(c$, "plotText", +function(x, y, z, colix, text, font3d){ +}, "~N,~N,~N,~N,~S,JU.Font"); +Clazz.defineMethod(c$, "getColors", +function(colixes){ +if (colixes == null) return null; +var colors = Clazz.newIntArray (colixes.length, 0); +for (var i = colors.length; --i >= 0; ) { +colors[i] = this.gdata.getColorArgbOrGray(colixes[i]); +} +return colors; +}, "~A"); +{ +{ +Jmol && Jmol.GLmol && Jmol.GLmol.extendJSExporter(J.export.JSExporter.prototype); +}}}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/MeshData.js b/config/plugins/visualizations/jmol/static/j2s/J/export/MeshData.js new file mode 100755 index 000000000000..4ad6b98b72fb --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/MeshData.js @@ -0,0 +1,87 @@ +Clazz.declarePackage("J.export"); +Clazz.load(null, "J.export.MeshData", ["JU.AU", "$.P3", "$.V3", "JU.MeshSurface"], function(){ +var c$ = Clazz.declareType(J["export"], "MeshData", null); +c$.getCircleData = Clazz.defineMethod(c$, "getCircleData", +function(){ +var ndeg = 10; +var n = Clazz.doubleToInt(360 / ndeg); +var vertexCount = n + 1; +var faces = JU.AU.newInt2(n); +for (var i = 0; i < n; i++) { +faces[i] = Clazz.newIntArray(-1, [i, (i + 1) % n, n]); +} +var vertexes = new Array(vertexCount); +var normals = new Array(vertexCount); +for (var i = 0; i < n; i++) { +var x = (Math.cos(i * ndeg / 180. * 3.141592653589793)); +var y = (Math.sin(i * ndeg / 180. * 3.141592653589793)); +vertexes[i] = JU.P3.new3(x, y, 0); +normals[i] = JU.P3.new3(0, 0, 1); +} +vertexes[n] = JU.P3.new3(0, 0, 0); +normals[n] = JU.P3.new3(0, 0, 1); +return JU.MeshSurface.newMesh(false, vertexes, 0, faces, normals, 0); +}); +c$.getTriangleData = Clazz.defineMethod(c$, "getTriangleData", +function(pt1, pt2, pt3){ +var vertexes = Clazz.newArray(-1, [pt1, pt2, pt3]); +var v1 = JU.V3.newVsub(pt3, pt1); +var v2 = JU.V3.newVsub(pt2, pt1); +v2.cross(v2, v1); +v2.normalize(); +var normals = Clazz.newArray(-1, [v2, v2, v2]); +var faces = Clazz.newArray(-1, [ Clazz.newIntArray(-1, [0, 1, 2])]); +return JU.MeshSurface.newMesh(false, vertexes, 0, faces, normals, 0); +}, "JU.T3,JU.T3,JU.T3"); +c$.getConeData = Clazz.defineMethod(c$, "getConeData", +function(){ +var ndeg = 10; +var n = Clazz.doubleToInt(360 / ndeg); +var vertices = new Array(n + 1); +var faces = JU.AU.newInt2(n); +for (var i = 0; i < n; i++) faces[i] = Clazz.newIntArray(-1, [i, (i + 1) % n, n]); + +var d = ndeg / 180. * 3.141592653589793; +for (var i = 0; i < n; i++) { +var x = (Math.cos(i * d)); +var y = (Math.sin(i * d)); +vertices[i] = JU.P3.new3(x, y, 0); +} +vertices[n] = JU.P3.new3(0, 0, 1); +return JU.MeshSurface.newMesh(false, vertices, 0, faces, vertices, 0); +}); +c$.getCylinderData = Clazz.defineMethod(c$, "getCylinderData", +function(inSide){ +var ndeg = 10; +var vertexCount = Clazz.doubleToInt(360 / ndeg) * 2; +var n = Clazz.doubleToInt(vertexCount / 2); +var faces = JU.AU.newInt2(vertexCount); +var fpt = -1; +for (var i = 0; i < n; i++) { +if (inSide) { +faces[++fpt] = Clazz.newIntArray(-1, [i + n, (i + 1) % n, i]); +faces[++fpt] = Clazz.newIntArray(-1, [i + n, (i + 1) % n + n, (i + 1) % n]); +} else { +faces[++fpt] = Clazz.newIntArray(-1, [i, (i + 1) % n, i + n]); +faces[++fpt] = Clazz.newIntArray(-1, [(i + 1) % n, (i + 1) % n + n, i + n]); +}} +var vertexes = new Array(vertexCount); +var normals = new Array(vertexCount); +for (var i = 0; i < n; i++) { +var x = (Math.cos(i * ndeg / 180. * 3.141592653589793)); +var y = (Math.sin(i * ndeg / 180. * 3.141592653589793)); +vertexes[i] = JU.P3.new3(x, y, 0); +normals[i] = JU.P3.new3(x, y, 0); +} +for (var i = 0; i < n; i++) { +var x = (Math.cos((i + 0.5) * ndeg / 180 * 3.141592653589793)); +var y = (Math.sin((i + 0.5) * ndeg / 180 * 3.141592653589793)); +vertexes[i + n] = JU.P3.new3(x, y, 1); +normals[i + n] = normals[i]; +} +if (inSide) for (var i = 0; i < n; i++) normals[i].scale(-1); + +return JU.MeshSurface.newMesh(false, vertexes, 0, faces, normals, 0); +}, "~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/UseTable.js b/config/plugins/visualizations/jmol/static/j2s/J/export/UseTable.js new file mode 100755 index 000000000000..2c1316400f41 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/UseTable.js @@ -0,0 +1,28 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["java.util.Hashtable"], "J.export.UseTable", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.iObj = 0; +this.keyword = null; +this.term = '\0'; +Clazz.instantialize(this, arguments);}, J["export"], "UseTable", java.util.Hashtable); +Clazz.makeConstructor(c$, +function(keyword){ +Clazz.superConstructor (this, J["export"].UseTable, []); +this.keyword = keyword; +this.term = keyword.charAt(keyword.length - 1); +}, "~S"); +Clazz.defineMethod(c$, "getDef", +function(key){ +if (this.containsKey(key)) return this.keyword + this.get(key) + this.term; +var id = "_" + (this.iObj++); +this.put(key, id); +return id; +}, "~S"); +Clazz.defineMethod(c$, "getDefRet", +function(key, ret){ +if ((ret[0] = this.get(key)) != null) return true; +this.put(key, ret[0] = "_" + key.charAt(0) + (this.iObj++)); +return false; +}, "~S,~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/_IdtfExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/_IdtfExporter.js new file mode 100755 index 000000000000..734d3ecf4530 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/_IdtfExporter.js @@ -0,0 +1,532 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export.__CartesianExporter", "java.util.Hashtable", "JU.AU", "$.M4", "$.P3", "$.SB"], "J.export._IdtfExporter", ["JU.Lst", "$.Quat", "JU.C", "$.Geodesic", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.haveSphere = false; +this.haveCylinder = false; +this.haveCylinderIn = false; +this.haveCone = false; +this.haveCircle = false; +this.ptMin = null; +this.ptMax = null; +this.iObj = 0; +this.htDefs = null; +this.m = null; +this.models = null; +this.resources = null; +this.modifiers = null; +this.htNodes = null; +this.cylinderMatrix = null; +this.sbTemp = null; +this.triangleFace = null; +Clazz.instantialize(this, arguments);}, J["export"], "_IdtfExporter", J["export"].__CartesianExporter); +Clazz.prepareFields (c$, function(){ +this.ptMin = JU.P3.new3(1e10, 1e10, 1e10); +this.ptMax = JU.P3.new3(-1.0E10, -1.0E10, -1.0E10); +this.htDefs = new java.util.Hashtable(); +this.m = new JU.M4(); +this.models = new JU.SB(); +this.resources = new JU.SB(); +this.modifiers = new JU.SB(); +this.htNodes = new java.util.Hashtable(); +this.cylinderMatrix = new JU.M4(); +this.triangleFace = JU.AU.newInt2(1); +{ +this.triangleFace[0] = Clazz.newIntArray(-1, [0, 1, 2]); +}}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J["export"]._IdtfExporter, []); +this.commentChar = "% "; +}); +Clazz.defineMethod(c$, "output", +function(pt){ +this.output(pt, this.sbTemp, true); +}, "JU.T3"); +Clazz.defineMethod(c$, "output", +function(pt, sb, checkpt){ +if (checkpt) this.checkPoint(pt); +sb.append(J["export"].___Exporter.round(pt.x)).append(" ").append(J["export"].___Exporter.round(pt.y)).append(" ").append(J["export"].___Exporter.round(pt.z)).append(" "); +}, "JU.T3,JU.SB,~B"); +Clazz.defineMethod(c$, "checkPoint", +function(pt){ +if (pt.x < this.ptMin.x) this.ptMin.x = pt.x; +if (pt.y < this.ptMin.y) this.ptMin.y = pt.y; +if (pt.z < this.ptMin.z) this.ptMin.z = pt.z; +if (pt.x > this.ptMax.x) this.ptMax.x = pt.x; +if (pt.y > this.ptMax.y) this.ptMax.y = pt.y; +if (pt.z > this.ptMax.z) this.ptMax.z = pt.z; +}, "JU.T3"); +Clazz.overrideMethod(c$, "outputHeader", +function(){ +this.output("FILE_FORMAT \"IDTF\"\nFORMAT_VERSION 100\n"); +this.m.setIdentity(); +this.m.setToM3(this.tm.matrixRotate); +this.m.rotate2(this.referenceCenter, this.tempP1); +this.m.m03 = -this.tempP1.x; +this.m.m13 = -this.tempP1.y; +this.m.m23 = -this.tempP1.z; +this.m.m33 = 1; +this.output("NODE \"GROUP\" {\n"); +this.output("NODE_NAME \"Jmol\"\n"); +this.output("PARENT_LIST {\nPARENT_COUNT 1\n"); +this.output("PARENT 0 {\n"); +this.output(this.getParentItem("", this.m)); +this.output("}}}\n"); +}); +Clazz.overrideMethod(c$, "finalizeOutput", +function(){ +this.finalizeOutput2(); +return this.getAuxiliaryFileData(); +}); +Clazz.defineMethod(c$, "getAuxiliaryFileData", +function(){ +var fName = this.fileName.substring(this.fileName.lastIndexOf("/") + 1); +fName = fName.substring(fName.lastIndexOf("\\") + 1); +var name = fName + "."; +name = name.substring(0, name.indexOf(".")); +return "% Created by: Jmol " + JV.Viewer.getJmolVersion() + "\n% Creation date: " + this.getExportDate() + "\n% File created: " + this.fileName + " (" + this.getByteCount() + " bytes)\n\n" + "\n\\documentclass[12pt,letter]{article}" + "\n\\usepackage{hyperref}" + "\n\\usepackage{media9}" + "\n\\usepackage{verbatim}" + "\n\\pagestyle{empty}" + "\n\\begin{document}" + "\n \\begin{center}" + "\n \\addmediapath{./} % here you can set the path where is been saved the u3d file" + "\n \\includemedia[" + "\n label=" + name + "," + "\n width=0.9\\textwidth," + "\n height=0.9\\textheight," + "\n activate=pageopen," + "\n deactivate=pageclose," + "\n 3Dtoolbar=false," + "\n 3Dnavpane=false," + "\n 3Dmenu," + "\n 3Droo=" + this.cameraDistance + "," + "\n 3Dcoo= 0.0 0.0 0.0," + "\n 3Dc2c=0.0 0.0 1.0," + "\n 3Daac=" + this.apertureAngle + "," + "\n 3Droll=0.0," + "\n 3Dbg=" + this.rgbFractionalFromColix(this.backgroundColix) + ", % to set the background color for 3D vwr; white = 1 1 1; so, you need to do the proportion: '255:1=[RGB]:x'" + "\n transparent=false," + "\n 3Dlights=Headlamp," + "\n 3Drender=Solid," + "\n 3Dpartsattrs=restore," + "\n ]{}{" + name + ".u3d}" + "\n% \\\\" + "\n%\\movieref[3Dcalculate]{" + name + "}{Click here!}" + "\n\\end{center}" + "\n\\end{document}" + "\n\\begin{comment}" + this.vwr.getWrappedStateScript() + "\n\\end{comment}"; +}); +Clazz.defineMethod(c$, "getParentItem", +function(name, m){ +var sb = new JU.SB(); +sb.append("PARENT_NAME \"" + name + "\"\n"); +sb.append("PARENT_TM {\n"); +sb.append(m.m00 + " " + m.m10 + " " + m.m20 + " 0.0\n"); +sb.append(m.m01 + " " + m.m11 + " " + m.m21 + " 0.0\n"); +sb.append(m.m02 + " " + m.m12 + " " + m.m22 + " 0.0\n"); +sb.append(m.m03 + " " + m.m13 + " " + m.m23 + " " + m.m33 + "\n"); +sb.append("}\n"); +return sb.toString(); +}, "~S,JU.M4"); +Clazz.defineMethod(c$, "addColix", +function(colix, haveColors){ +var key = "_" + colix; +if (this.htDefs.containsKey(key)) return; +var color = (haveColors ? "1.0 1.0 1.0" : this.rgbFractionalFromColix(colix)); +this.htDefs.put(key, Boolean.TRUE); +this.resources.append("RESOURCE_LIST \"SHADER\" {\n"); +this.resources.append("RESOURCE_COUNT 1\n"); +this.resources.append("RESOURCE 0 {\n"); +this.resources.append("RESOURCE_NAME \"Shader" + key + "\"\n"); +this.resources.append("ATTRIBUTE_USE_VERTEX_COLOR \"FALSE\"\n"); +this.resources.append("SHADER_MATERIAL_NAME \"Mat" + key + "\"\n"); +this.resources.append("SHADER_ACTIVE_TEXTURE_COUNT 0\n"); +this.resources.append("}}\n"); +this.resources.append("RESOURCE_LIST \"MATERIAL\" {\n"); +this.resources.append("RESOURCE_COUNT 1\n"); +this.resources.append("RESOURCE 0 {\n"); +this.resources.append("RESOURCE_NAME \"Mat" + key + "\"\n"); +this.resources.append("MATERIAL_AMBIENT " + color + "\n"); +this.resources.append("MATERIAL_DIFFUSE " + color + "\n"); +this.resources.append("MATERIAL_SPECULAR 0.0 0.0 0.0\n"); +this.resources.append("MATERIAL_EMISSIVE 0.0 0.0 0.0\n"); +this.resources.append("MATERIAL_REFLECTIVITY 0.00000\n"); +this.resources.append("MATERIAL_OPACITY " + J["export"].___Exporter.opacityFractionalFromColix(colix) + "\n"); +this.resources.append("}}\n"); +}, "~N,~B"); +Clazz.defineMethod(c$, "addShader", +function(key, colix){ +this.modifiers.append("MODIFIER \"SHADING\" {\n"); +this.modifiers.append("MODIFIER_NAME \"" + key + "\"\n"); +this.modifiers.append("PARAMETERS {\n"); +this.modifiers.append("SHADER_LIST_COUNT 1\n"); +this.modifiers.append("SHADING_GROUP {\n"); +this.modifiers.append("SHADER_LIST 0 {\n"); +this.modifiers.append("SHADER_COUNT 1\n"); +this.modifiers.append("SHADER_NAME_LIST {\n"); +this.modifiers.append("SHADER 0 NAME: \"Shader_" + colix + "\"\n"); +this.modifiers.append("}}}}}\n"); +}, "~S,~N"); +Clazz.overrideMethod(c$, "outputFooter", +function(){ +this.htDefs = null; +this.outputNodes(); +this.output(this.models.toString()); +this.output(this.resources.toString()); +this.output("RESOURCE_LIST \"VIEW\" {\n"); +this.output("\tRESOURCE_COUNT 1\n"); +this.output("\tRESOURCE 0 {\n"); +this.output("\t\tRESOURCE_NAME \"View0\"\n"); +this.output("\t\tVIEW_PASS_COUNT 1\n"); +this.output("\t\tVIEW_ROOT_NODE_LIST {\n"); +this.output("\t\t\tROOT_NODE 0 {\n"); +this.output("\t\t\t\tROOT_NODE_NAME \"\"\n"); +this.output("\t\t\t}\n"); +this.output("\t\t}\n"); +this.output("\t}\n"); +this.output("}\n\n"); +this.output(this.modifiers.toString()); +}); +Clazz.defineMethod(c$, "outputNodes", +function(){ +for (var entry, $entry = this.htNodes.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +var key = entry.getKey(); +var v = entry.getValue(); +this.output("NODE \"MODEL\" {\n"); +this.output("NODE_NAME \"" + key + "\"\n"); +System.out.println("output idtf " + key); +var n = v.size(); +this.output("PARENT_LIST {\nPARENT_COUNT " + n + "\n"); +for (var i = 0; i < n; i++) { +this.output("PARENT " + i + " {\n"); +this.output(v.get(i)); +this.output("}\n"); +} +this.output("}\n"); +var i = key.indexOf("_"); +if (i > 0) { +key = key.substring(0, i); +}if (key.equals("Ellipse")) { +key = "Circle"; +}this.output("RESOURCE_NAME \"" + key + "_Mesh\"\n}\n"); +} +}); +Clazz.defineMethod(c$, "outputEllipsoid", +function(center, points, colix){ +var a = JU.Quat.getQuaternionFrame(center, points[1], points[3]).toAxisAngle4f(); +var sx = points[1].distance(center); +var sy = points[3].distance(center); +var sz = points[5].distance(center); +this.setSphereMatrix(center, sx, sy, sz, a, this.sphereMatrix); +this.outputEllipsoid(center, this.sphereMatrix, colix); +}, "JU.P3,~A,~N"); +Clazz.defineMethod(c$, "outputEllipsoid", +function(center, sphereMatrix, colix){ +if (!this.haveSphere) { +this.models.append(this.getSphereResource()); +this.haveSphere = true; +}this.checkPoint(center); +this.addColix(colix, false); +var key = "Sphere_" + colix; +var v = this.htNodes.get(key); +if (v == null) { +v = new JU.Lst(); +this.htNodes.put(key, v); +this.addShader(key, colix); +}v.addLast(this.getParentItem("Jmol", sphereMatrix)); +}, "JU.T3,JU.M4,~N"); +Clazz.defineMethod(c$, "getSphereResource", +function(){ +var sb = new JU.SB(); +sb.append("RESOURCE_LIST \"MODEL\" {\n").append("RESOURCE_COUNT 1\n").append("RESOURCE 0 {\n").append("RESOURCE_NAME \"Sphere_Mesh\"\n").append("MODEL_TYPE \"MESH\"\n").append("MESH {\n"); +var vertexCount = JU.Geodesic.getVertexCount(2); +var f = JU.Geodesic.getFaceVertexes(2); +var nFaces = Clazz.doubleToInt(f.length / 3); +var faces = Clazz.newIntArray (nFaces, 3, 0); +for (var i = 0, p = 0; i < nFaces; i++) for (var j = 0; j < 3; j++) faces[i][j] = f[p++]; + + +var vertexes = new Array(vertexCount); +for (var i = 0; i < vertexCount; i++) vertexes[i] = JU.Geodesic.getVertexVector(i); + +return this.getMeshData("Sphere", faces, vertexes, vertexes); +}); +Clazz.defineMethod(c$, "getMeshData", +function(type, indices, vertexes, normals){ +var nFaces = indices.length; +var vertexCount = vertexes.length; +var normalCount = normals.length; +var sb = new JU.SB(); +this.getMeshHeader(type, nFaces, vertexCount, normalCount, 0, sb); +var sb1 = new JU.SB(); +for (var i = 0; i < indices.length; i++) { +sb1.appendI(indices[i][0]).append(" "); +sb1.appendI(indices[i][1]).append(" "); +sb1.appendI(indices[i][2]).append(" "); +} +sb.append("MESH_FACE_POSITION_LIST { "); +sb.appendSB(sb1); +sb.append("}\n"); +sb.append("MESH_FACE_NORMAL_LIST { "); +sb.appendSB(sb1); +sb.append("}\n"); +sb.append("MESH_FACE_SHADING_LIST { "); +for (var i = 0; i < nFaces; i++) sb.append("0 "); + +sb.append("}\n"); +sb.append("MODEL_POSITION_LIST { "); +for (var i = 0; i < vertexCount; i++) this.output(vertexes[i], sb, false); + +sb.append("}\n"); +sb.append("MODEL_NORMAL_LIST { "); +for (var i = 0; i < normalCount; i++) this.output(normals[i], sb, false); + +sb.append("}\n}}}\n"); +return sb.toString(); +}, "~S,~A,~A,~A"); +Clazz.defineMethod(c$, "getMeshHeader", +function(type, nFaces, vertexCount, normalCount, colorCount, sb){ +sb.append("RESOURCE_LIST \"MODEL\" {\n").append("RESOURCE_COUNT 1\n").append("RESOURCE 0 {\n").append("RESOURCE_NAME \"").append(type).append("_Mesh\"\n").append("MODEL_TYPE \"MESH\"\n").append("MESH {\n").append("FACE_COUNT ").appendI(nFaces).append("\n").append("MODEL_POSITION_COUNT ").appendI(vertexCount).append("\n").append("MODEL_NORMAL_COUNT ").appendI(normalCount).append("\n").append("MODEL_DIFFUSE_COLOR_COUNT ").appendI(colorCount).append("\n").append("MODEL_SPECULAR_COLOR_COUNT 0\n").append("MODEL_TEXTURE_COORD_COUNT 0\n").append("MODEL_BONE_COUNT 0\n").append("MODEL_SHADING_COUNT 1\n").append("MODEL_SHADING_DESCRIPTION_LIST {\n").append("SHADING_DESCRIPTION 0 {\n").append("TEXTURE_LAYER_COUNT 0\n").append("SHADER_ID 0\n}}\n"); +}, "~S,~N,~N,~N,~N,JU.SB"); +Clazz.overrideMethod(c$, "outputCylinder", +function(ptCenter, pt1, pt2, colix, endcaps, radius, ptX, ptY, checkRadius){ +if (ptX != null) { +if (endcaps == 2) { +this.outputEllipse(ptCenter, pt1, ptX, ptY, colix); +this.tempP3.add2(ptCenter, ptCenter); +this.tempP3.sub(ptX); +this.outputEllipse(ptCenter, pt2, this.tempP3, ptY, colix); +}} else if (endcaps == 3) { +this.outputSphere(pt1, radius * 1.01, colix, true); +this.outputSphere(pt2, radius * 1.01, colix, true); +} else if (endcaps == 2) { +this.outputCircle(pt1, pt2, colix, radius); +this.outputCircle(pt2, pt1, colix, radius); +}if (!this.haveCylinder) { +this.models.append(this.getCylinderResource(false)); +this.haveCylinder = true; +}if (ptX != null && endcaps == 0 && !this.haveCylinderIn) { +this.models.append(this.getCylinderResource(true)); +this.haveCylinderIn = true; +}this.checkPoint(pt1); +this.checkPoint(pt2); +this.addColix(colix, false); +var n = (ptX != null && endcaps == 0 ? 2 : 1); +for (var i = 0; i < n; i++) { +var key = "Cylinder" + (i == 0 ? "_" : "In_") + colix; +var v = this.htNodes.get(key); +if (v == null) { +v = new JU.Lst(); +this.htNodes.put(key, v); +this.addShader(key, colix); +}if (ptX == null) this.cylinderMatrix.setToM3(this.getRotationMatrix(pt1, pt2, radius)); + else this.cylinderMatrix.setToM3(this.getRotationMatrix(ptCenter, pt2, radius, ptX, ptY)); +this.cylinderMatrix.m03 = pt1.x; +this.cylinderMatrix.m13 = pt1.y; +this.cylinderMatrix.m23 = pt1.z; +this.cylinderMatrix.m33 = 1; +v.addLast(this.getParentItem("Jmol", this.cylinderMatrix)); +radius *= 0.95; +} +return true; +}, "JU.P3,JU.P3,JU.P3,~N,~N,~N,JU.P3,JU.P3,~B"); +Clazz.defineMethod(c$, "outputCircle", +function(pt1, pt2, radius, colix, doFill){ +if (doFill) { +this.outputCircle(pt1, pt2, colix, radius); +return; +}}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.defineMethod(c$, "outputEllipse", +function(ptCenter, ptZ, ptX, ptY, colix){ +if (!this.haveCircle) { +this.models.append(this.getCircleResource()); +this.haveCircle = true; +this.cylinderMatrix = new JU.M4(); +}this.addColix(colix, false); +var key = "Ellipse_" + colix; +var v = this.htNodes.get(key); +if (v == null) { +v = new JU.Lst(); +this.htNodes.put(key, v); +this.addShader(key, colix); +}this.checkPoint(ptCenter); +this.cylinderMatrix.setToM3(this.getRotationMatrix(ptCenter, ptZ, 1, ptX, ptY)); +this.cylinderMatrix.m03 = ptZ.x; +this.cylinderMatrix.m13 = ptZ.y; +this.cylinderMatrix.m23 = ptZ.z; +this.cylinderMatrix.m33 = 1; +v.addLast(this.getParentItem("Jmol", this.cylinderMatrix)); +return true; +}, "JU.P3,JU.P3,JU.P3,JU.P3,~N"); +Clazz.defineMethod(c$, "outputCircle", +function(ptCenter, ptPerp, colix, radius){ +if (!this.haveCircle) { +this.models.append(this.getCircleResource()); +this.haveCircle = true; +this.cylinderMatrix = new JU.M4(); +}this.addColix(colix, false); +var key = "Circle_" + colix; +var v = this.htNodes.get(key); +if (v == null) { +v = new JU.Lst(); +this.htNodes.put(key, v); +this.addShader(key, colix); +}this.checkPoint(ptCenter); +this.cylinderMatrix.setToM3(this.getRotationMatrix(ptCenter, ptPerp, radius)); +this.cylinderMatrix.m03 = ptCenter.x; +this.cylinderMatrix.m13 = ptCenter.y; +this.cylinderMatrix.m23 = ptCenter.z; +this.cylinderMatrix.m33 = 1; +v.addLast(this.getParentItem("Jmol", this.cylinderMatrix)); +}, "JU.P3,JU.P3,~N,~N"); +Clazz.defineMethod(c$, "getCylinderResource", +function(inSide){ +var ndeg = 10; +var vertexCount = Clazz.doubleToInt(360 / ndeg) * 2; +var n = Clazz.doubleToInt(vertexCount / 2); +var faces = JU.AU.newInt2(vertexCount); +var fpt = -1; +for (var i = 0; i < n; i++) { +if (inSide) { +faces[++fpt] = Clazz.newIntArray(-1, [i + n, (i + 1) % n, i]); +faces[++fpt] = Clazz.newIntArray(-1, [i + n, (i + 1) % n + n, (i + 1) % n]); +} else { +faces[++fpt] = Clazz.newIntArray(-1, [i, (i + 1) % n, i + n]); +faces[++fpt] = Clazz.newIntArray(-1, [(i + 1) % n, (i + 1) % n + n, i + n]); +}} +var vertexes = new Array(vertexCount); +var normals = new Array(vertexCount); +for (var i = 0; i < n; i++) { +var x = (Math.cos(i * ndeg / 180. * 3.141592653589793)); +var y = (Math.sin(i * ndeg / 180. * 3.141592653589793)); +vertexes[i] = JU.P3.new3(x, y, 0); +normals[i] = JU.P3.new3(x, y, 0); +} +for (var i = 0; i < n; i++) { +var x = (Math.cos((i + 0.5) * ndeg / 180 * 3.141592653589793)); +var y = (Math.sin((i + 0.5) * ndeg / 180 * 3.141592653589793)); +vertexes[i + n] = JU.P3.new3(x, y, 1); +normals[i + n] = normals[i]; +} +if (inSide) for (var i = 0; i < n; i++) normals[i].scale(-1); + +return this.getMeshData(inSide ? "CylinderIn" : "Cylinder", faces, vertexes, normals); +}, "~B"); +Clazz.overrideMethod(c$, "outputFace", +function(face, map, faceVertexMax){ +this.sbTemp.append(" " + map[face[0]] + " " + map[face[1]] + " " + map[face[2]]); +if (faceVertexMax == 4 && face.length == 4) { +this.sbTemp.append(" " + map[face[0]] + " " + map[face[2]] + " " + map[face[3]]); +}}, "~A,~A,~N"); +Clazz.overrideMethod(c$, "outputSurface", +function(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, nTriangles, bsPolygons, faceVertexMax, colix, colorList, htColixes, offset){ +this.addColix(colix, polygonColixes != null || colixes != null); +if (polygonColixes != null) { +return; +}var sbFaceCoordIndices = this.sbTemp = new JU.SB(); +var map = Clazz.newIntArray (nVertices, 0); +var nCoord = this.getCoordinateMap(vertices, map, null); +this.outputIndices(indices, map, nPolygons, bsPolygons, faceVertexMax); +var sbFaceNormalIndices = this.sbTemp = new JU.SB(); +var vNormals = null; +if (normals != null) { +vNormals = new JU.Lst(); +map = this.getNormalMap(normals, nVertices, null, vNormals); +this.outputIndices(indices, map, nPolygons, bsPolygons, faceVertexMax); +}map = null; +var sbColorIndexes = new JU.SB(); +if (colorList != null) { +var isAll = (bsPolygons == null); +var i0 = (isAll ? nPolygons - 1 : bsPolygons.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsPolygons.nextSetBit(i + 1))) { +sbColorIndexes.append(" " + htColixes.get(Short.$valueOf(colixes[indices[i][0]])) + " " + htColixes.get(Short.$valueOf(colixes[indices[i][1]])) + " " + htColixes.get(Short.$valueOf(colixes[indices[i][2]]))); +if (faceVertexMax == 4 && indices[i].length == 4) sbColorIndexes.append(" " + htColixes.get(Short.$valueOf(colixes[indices[i][0]])) + " " + htColixes.get(Short.$valueOf(colixes[indices[i][2]])) + " " + htColixes.get(Short.$valueOf(colixes[indices[i][3]]))); +} +}var sbCoords = this.sbTemp = new JU.SB(); +this.outputVertices(vertices, nVertices, offset); +var sbNormals = new JU.SB(); +var nNormals = 0; +if (normals != null) { +nNormals = vNormals.size(); +for (var i = 0; i < nNormals; i++) sbNormals.append(vNormals.get(i)); + +vNormals = null; +}var sbColors = new JU.SB(); +var nColors = 0; +if (colorList != null) { +nColors = colorList.size(); +for (var i = 0; i < nColors; i++) { +var c = colorList.get(i).shortValue(); +sbColors.append(this.rgbFractionalFromColix(c)).append(" ").append(J["export"].___Exporter.translucencyFractionalFromColix(c)).append(" "); +} +}var key = "mesh" + (++this.iObj); +this.addMeshData(key, nTriangles, nCoord, nNormals, nColors, sbFaceCoordIndices, sbFaceNormalIndices, sbColorIndexes, sbCoords, sbNormals, sbColors); +var v = new JU.Lst(); +this.htNodes.put(key, v); +this.addShader(key, colix); +this.cylinderMatrix.setIdentity(); +v.addLast(this.getParentItem("Jmol", this.cylinderMatrix)); +}, "~A,~A,~A,~A,~A,~N,~N,~N,JU.BS,~N,~N,JU.Lst,java.util.Map,JU.P3"); +Clazz.defineMethod(c$, "addMeshData", +function(key, nFaces, nCoord, nNormals, nColors, sbFaceCoordIndices, sbFaceNormalIndices, sbColorIndices, sbCoords, sbNormals, sbColors){ +this.getMeshHeader(key, nFaces, nCoord, nNormals, nColors, this.models); +this.models.append("MESH_FACE_POSITION_LIST { ").appendSB(sbFaceCoordIndices).append(" }\n").append("MESH_FACE_NORMAL_LIST { ").appendSB(sbFaceNormalIndices).append(" }\n"); +this.models.append("MESH_FACE_SHADING_LIST { "); +for (var i = 0; i < nFaces; i++) this.models.append("0 "); + +this.models.append("}\n"); +if (nColors > 0) this.models.append("MESH_FACE_DIFFUSE_COLOR_LIST { ").appendSB(sbColorIndices).append(" }\n"); +this.models.append("MODEL_POSITION_LIST { ").appendSB(sbCoords).append(" }\n").append("MODEL_NORMAL_LIST { ").appendSB(sbNormals).append(" }\n"); +if (nColors > 0) this.models.append("MODEL_DIFFUSE_COLOR_LIST { ").appendSB(sbColors).append(" }\n"); +this.models.append("}}}\n"); +}, "~S,~N,~N,~N,~N,JU.SB,JU.SB,JU.SB,JU.SB,JU.SB,JU.SB"); +Clazz.overrideMethod(c$, "outputCone", +function(ptBase, ptTip, radius, colix){ +if (!this.haveCone) { +this.models.append(this.getConeResource()); +this.haveCone = true; +}this.checkPoint(ptBase); +this.checkPoint(ptTip); +this.addColix(colix, false); +var key = "Cone_" + colix; +var v = this.htNodes.get(key); +if (v == null) { +v = new JU.Lst(); +this.htNodes.put(key, v); +this.addShader(key, colix); +}this.cylinderMatrix.setToM3(this.getRotationMatrix(ptBase, ptTip, radius)); +this.cylinderMatrix.m03 = ptBase.x; +this.cylinderMatrix.m13 = ptBase.y; +this.cylinderMatrix.m23 = ptBase.z; +this.cylinderMatrix.m33 = 1; +v.addLast(this.getParentItem("Jmol", this.cylinderMatrix)); +}, "JU.P3,JU.P3,~N,~N"); +Clazz.defineMethod(c$, "getConeResource", +function(){ +var m = J["export"].___Exporter.getConeMesh(null, null, 0); +return this.getMeshData("Cone", m.pis, m.vs, m.vs); +}); +Clazz.defineMethod(c$, "getCircleResource", +function(){ +var ndeg = 10; +var n = Clazz.doubleToInt(360 / ndeg); +var vertexCount = n + 1; +var faces = JU.AU.newInt2(n); +for (var i = 0; i < n; i++) faces[i] = Clazz.newIntArray(-1, [i, (i + 1) % n, n]); + +var vertexes = new Array(vertexCount); +var normals = new Array(vertexCount); +for (var i = 0; i < n; i++) { +var x = (Math.cos(i * ndeg / 180. * 3.141592653589793)); +var y = (Math.sin(i * ndeg / 180. * 3.141592653589793)); +vertexes[i] = JU.P3.new3(x, y, 0); +normals[i] = JU.P3.new3(0, 0, 1); +} +vertexes[n] = JU.P3.new3(0, 0, 0); +normals[n] = JU.P3.new3(0, 0, 1); +return this.getMeshData("Circle", faces, vertexes, normals); +}); +Clazz.overrideMethod(c$, "outputSphere", +function(center, radius, colix, checkRadius){ +this.setSphereMatrix(center, radius, radius, radius, null, this.sphereMatrix); +this.outputEllipsoid(center, this.sphereMatrix, colix); +}, "JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputTextPixel", +function(pt, argb){ +var colix = JU.C.getColix(argb); +this.outputSphere(pt, 0.02, colix, true); +}, "JU.P3,~N"); +Clazz.overrideMethod(c$, "outputTriangle", +function(pt1, pt2, pt3, colix){ +this.addColix(colix, false); +var key = "T" + (++this.iObj); +this.models.append(this.getTriangleResource(key, pt1, pt2, pt3)); +var v = new JU.Lst(); +this.htNodes.put(key, v); +this.addShader(key, colix); +if (this.cylinderMatrix == null) this.cylinderMatrix = new JU.M4(); +this.cylinderMatrix.setIdentity(); +v.addLast(this.getParentItem("Jmol", this.cylinderMatrix)); +}, "JU.T3,JU.T3,JU.T3,~N"); +Clazz.defineMethod(c$, "getTriangleResource", +function(key, pt1, pt2, pt3){ +var vertexes = Clazz.newArray(-1, [pt1, pt2, pt3]); +this.tempV1.sub2(pt3, pt1); +this.tempV2.sub2(pt2, pt1); +this.tempV2.cross(this.tempV2, this.tempV1); +this.tempV2.normalize(); +var normals = Clazz.newArray(-1, [this.tempV2, this.tempV2, this.tempV2]); +return this.getMeshData(key, this.triangleFace, vertexes, normals); +}, "~S,JU.T3,JU.T3,JU.T3"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/_MayaExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/_MayaExporter.js new file mode 100755 index 000000000000..70563863c63d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/_MayaExporter.js @@ -0,0 +1,127 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export.__CartesianExporter"], "J.export._MayaExporter", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.nBalls = 0; +this.nCyl = 0; +this.name = null; +this.id = null; +Clazz.instantialize(this, arguments);}, J["export"], "_MayaExporter", J["export"].__CartesianExporter); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J["export"]._MayaExporter, []); +this.commentChar = "// "; +}); +Clazz.overrideMethod(c$, "outputHeader", +function(){ +this.output("// Maya ASCII 8.5 scene\n"); +this.output("// Name: ball_stripped.ma\n"); +this.output("// Last modified: Thu, Jul 5, 2007 10:25:55 PM\n"); +this.output("// Codeset: UTF-8\n"); +this.output("requires maya \"8.5\";\n"); +this.output("currentUnit -l centimeter -a degree -t film;\n"); +this.output("fileInfo \"application\" \"maya\";\n"); +this.output("fileInfo \"product\" \"Maya Unlimited 8.5\";\n"); +this.output("fileInfo \"version\" \"8.5\";\n"); +this.output("fileInfo \"cutIdentifier\" \"200612170012-692032\";\n"); +this.output("fileInfo \"osv\" \"Mac OS X 10.4.9\"; \n"); +}); +Clazz.defineMethod(c$, "addAttr", +function(){ +this.output(" setAttr -k off \".v\";\n"); +this.output(" setAttr \".vir\" yes;\n"); +this.output(" setAttr \".vif\" yes;\n"); +this.output(" setAttr \".tw\" yes;\n"); +this.output(" setAttr \".covm[0]\" 0 1 1;\n"); +this.output(" setAttr \".cdvm[0]\" 0 1 1;\n"); +}); +Clazz.defineMethod(c$, "addConnect", +function(){ +this.output(" connectAttr \"make" + this.name + ".os\" \"" + this.id + ".cr\";\n"); +this.output("connectAttr \"" + this.id + ".iog\" \":initialShadingGroup.dsm\" -na;\n"); +}); +Clazz.defineMethod(c$, "setAttr", +function(attr, val){ +this.output(" setAttr \"." + attr + "\" " + val + ";\n"); +}, "~S,~N"); +Clazz.defineMethod(c$, "setAttr", +function(attr, val){ +this.output(" setAttr \"." + attr + "\" " + val + ";\n"); +}, "~S,~N"); +Clazz.defineMethod(c$, "setAttr", +function(attr, pt){ +this.output(" setAttr \"." + attr + "\" -type \"double3\" " + pt.x + " " + pt.y + " " + pt.z + ";\n"); +}, "~S,JU.T3"); +Clazz.overrideMethod(c$, "outputCylinder", +function(ptCenter, pt1, pt2, colix, endcaps, radius, ptX, ptY, checkRadius){ +if (ptX != null) return false; +this.nCyl++; +this.name = "nurbsCylinder" + this.nCyl; +this.id = "nurbsCylinderShape" + this.nCyl; +this.output(" createNode transform -n \"" + this.name + "\";\n"); +var length = pt1.distance(pt2); +this.tempV1.ave(pt2, pt1); +this.setAttr("t", this.tempV1); +this.tempV1.sub(pt1); +this.tempV2.setT(this.tempV1); +this.tempV2.normalize(); +var r = this.tempV1.length(); +var rX = (Math.acos(this.tempV1.y / r) * 57.29577951308232); +if (this.tempV1.x < 0) rX += 180; +var rY = (Math.atan2(this.tempV1.x, this.tempV1.z) * 57.29577951308232); +this.tempV2.set(rX, rY, 0); +this.setAttr("r", this.tempV2); +this.output(" createNode nurbsSurface -n \"" + this.id + "\" -p \"" + this.name + "\";\n"); +this.addAttr(); +this.output("createNode makeNurbCylinder -n \"make" + this.name + "\";\n"); +this.output(" setAttr \".ax\" -type \"double3\" 0 1 0;\n"); +this.setAttr("r", radius); +this.setAttr("s", 4); +this.setAttr("hr", length / radius); +this.addConnect(); +return true; +}, "JU.P3,JU.P3,JU.P3,~N,~N,~N,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "outputSphere", +function(pt, radius, colix, checkRadius){ +this.nBalls++; +this.name = "nurbsSphere" + this.nBalls; +this.id = "nurbsSphereShape" + this.nBalls; +this.output("createNode transform -n \"" + this.name + "\";\n"); +this.setAttr("t", pt); +this.output("createNode nurbsSurface -n \"" + this.id + "\" -p \"" + this.name + "\";\n"); +this.addAttr(); +this.output("createNode makeNurbSphere -n \"make" + this.name + "\";\n"); +this.output(" setAttr \".ax\" -type \"double3\" 0 1 0;\n"); +this.setAttr("r", radius); +this.setAttr("s", 4); +this.setAttr("nsp", 3); +this.addConnect(); +}, "JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "drawTextPixel", +function(argb, x, y, z){ +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "outputTextPixel", +function(pt, argb){ +}, "JU.P3,~N"); +Clazz.overrideMethod(c$, "outputSurface", +function(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, nTriangles, bsPolygons, faceVertexMax, colix, colorList, htColixes, offset){ +}, "~A,~A,~A,~A,~A,~N,~N,~N,JU.BS,~N,~N,JU.Lst,java.util.Map,JU.P3"); +Clazz.overrideMethod(c$, "outputTriangle", +function(pt1, pt2, pt3, colix){ +}, "JU.T3,JU.T3,JU.T3,~N"); +Clazz.overrideMethod(c$, "outputCircle", +function(pt1, pt2, radius, colix, doFill){ +}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputCone", +function(ptBase, ptTip, radius, colix){ +}, "JU.P3,JU.P3,~N,~N"); +Clazz.overrideMethod(c$, "outputEllipsoid", +function(center, points, colix){ +}, "JU.P3,~A,~N"); +Clazz.overrideMethod(c$, "outputFace", +function(is, coordMap, faceVertexMax){ +}, "~A,~A,~N"); +Clazz.defineMethod(c$, "output", +function(pt){ +}, "JU.T3"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/_ObjExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/_ObjExporter.js new file mode 100755 index 000000000000..8512a6efd0d0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/_ObjExporter.js @@ -0,0 +1,503 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export.__CartesianExporter", "java.util.HashSet", "JU.P3"], "J.export._ObjExporter", ["java.util.Hashtable", "JU.AU", "$.BS", "$.CU", "$.Lst", "$.M4", "$.PT", "$.Quat", "$.SB", "$.V3", "J.export.MeshData", "JU.Escape", "$.Logger", "$.MeshSurface", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.surfacesOnly = false; +this.normalizeUV = true; +this.mtlout = null; +this.objFileRootName = null; +this.nMtlBytes = 0; +this.textures = null; +this.textureFiles = null; +this.sphereNum = 1; +this.cylinderNum = 1; +this.ellipseNum = 1; +this.circleNum = 1; +this.ellipsoidNum = 1; +this.coneNum = 1; +this.triangleNum = 1; +this.surfaceNum = 1; +this.currentVertexOrigin = 1; +this.currentNormalOrigin = 1; +this.currentTextureOrigin = 1; +this.ptTemp = null; +Clazz.instantialize(this, arguments);}, J["export"], "_ObjExporter", J["export"].__CartesianExporter); +Clazz.prepareFields (c$, function(){ +this.textures = new java.util.HashSet(); +this.ptTemp = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J["export"]._ObjExporter, []); +this.debugPrint("_WavefrontObjExporter CTOR"); +this.commentChar = "# "; +}); +Clazz.defineMethod(c$, "debugPrint", +function(string){ +if (false) { +JU.Logger.debug(string); +}}, "~S"); +Clazz.overrideMethod(c$, "outputFace", +function(face, map, faceVertexMax){ +}, "~A,~A,~N"); +Clazz.overrideMethod(c$, "outputCircle", +function(pt1, pt2, radius, colix, doFill){ +this.debugPrint("outputCircle"); +if (this.surfacesOnly) { +this.debugPrint(" Not done owing to surfacesOnly"); +return; +}if (doFill) { +this.outputCircle1(pt1, pt2, colix, radius); +}}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputCone", +function(ptBase, ptTip, radius, colix){ +this.debugPrint("outputCone"); +if (this.surfacesOnly) { +this.debugPrint(" Not done owing to surfacesOnly"); +return; +}this.outputCone1(ptBase, ptTip, radius, colix); +}, "JU.P3,JU.P3,~N,~N"); +Clazz.overrideMethod(c$, "outputCylinder", +function(ptCenter, pt1, pt2, colix, endcaps, radius, ptX, ptY, checkRadius){ +if (false) { +this.debugPrint("outputCylinder: colix=" + String.format("%04x", [Short.$valueOf(colix)])); +this.debugPrint(" ptCenter=" + ptCenter); +this.debugPrint(" pt1=" + pt1); +this.debugPrint(" endcaps=" + endcaps + " NONE=" + 0 + " FLAT=" + 2 + " SPHERICAL=" + 3); +this.debugPrint(" radius=" + radius); +this.debugPrint(" pt2=" + pt2); +this.debugPrint(" ptX=" + ptX); +this.debugPrint(" ptY=" + ptY); +}if (this.surfacesOnly) { +this.debugPrint(" Not done owing to surfacesOnly"); +return true; +}if (ptX != null) { +if (endcaps == 2) { +this.outputEllipse1(ptCenter, pt1, ptX, ptY, colix); +this.tempP3.add2(ptCenter, ptCenter); +this.tempP3.sub(ptX); +this.outputEllipse1(ptCenter, pt2, this.tempP3, ptY, colix); +}} else if (endcaps == 3) { +this.outputSphere(pt1, radius * 1.01, colix, true); +this.outputSphere(pt2, radius * 1.01, colix, true); +} else if (endcaps == 2) { +this.outputCircle1(pt1, pt2, colix, radius); +this.outputCircle1(pt2, pt1, colix, radius); +}this.outputCylinder1(ptCenter, pt1, pt2, colix, endcaps, radius, ptX, ptY); +return true; +}, "JU.P3,JU.P3,JU.P3,~N,~N,~N,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "outputEllipsoid", +function(center, points, colix){ +if (false) { +this.debugPrint("outputEllipsoid: colix=" + String.format("%04x", [Short.$valueOf(colix)])); +this.debugPrint(" center=" + center); +this.debugPrint(" points[0]=" + points[0]); +this.debugPrint(" points[1]=" + points[1]); +this.debugPrint(" points[2]=" + points[2]); +}if (this.surfacesOnly) { +this.debugPrint(" Not done owing to surfacesOnly"); +return; +}var a = JU.Quat.getQuaternionFrame(center, points[1], points[3]).toAxisAngle4f(); +var sx = points[1].distance(center); +var sy = points[3].distance(center); +var sz = points[5].distance(center); +this.outputEllipsoid1(center, sx, sy, sz, a, colix); +}, "JU.P3,~A,~N"); +Clazz.overrideMethod(c$, "outputSphere", +function(center, radius, colix, checkRadius){ +if (false) { +this.debugPrint("outputSphere: colix=" + String.format("%04x", [Short.$valueOf(colix)])); +this.debugPrint(" center.getClass().getName()=" + center.getClass().getName()); +this.debugPrint(" center=" + center); +this.debugPrint(" center.x=" + center.x); +this.debugPrint(" center.y=" + center.y); +this.debugPrint(" center.z=" + center.z); +this.debugPrint(" radius=" + radius); +}if (this.surfacesOnly) { +this.debugPrint(" Not done owing to surfacesOnly"); +return; +}this.outputEllipsoid1(center, radius, radius, radius, null, colix); +}, "JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputTextPixel", +function(pt, argb){ +}, "JU.P3,~N"); +Clazz.overrideMethod(c$, "outputTriangle", +function(pt1, pt2, pt3, colix){ +if (this.surfacesOnly) { +return; +}this.outputTriangle1(pt1, pt2, pt3, colix); +}, "JU.T3,JU.T3,JU.T3,~N"); +Clazz.overrideMethod(c$, "outputHeader", +function(){ +this.debugPrint("outputHeader"); +this.output("#obj Created by Jmol " + JV.Viewer.getJmolVersion() + "\n"); +}); +Clazz.defineMethod(c$, "output", +function(pt){ +this.debugPrint("output"); +}, "JU.T3"); +Clazz.overrideMethod(c$, "drawSurface", +function(meshSurface, colix){ +if (JU.Logger.debugging) { +this.debugPrint("outputSurface"); +this.debugPrint(" nVertices=" + meshSurface.vc); +if (meshSurface.normals == null) { +this.debugPrint(" no vertex normals"); +} else { +this.debugPrint(" nNormals=" + meshSurface.vc); +}if (meshSurface.vcs == null) { +this.debugPrint(" no vertex colors"); +} else { +this.debugPrint(" nColixes=" + meshSurface.vc); +}this.debugPrint(" number of triangles or quads=" + meshSurface.pc); +if (meshSurface.pcs == null) { +this.debugPrint(" no face colors"); +} else { +this.debugPrint(" nPolygonColixes=" + meshSurface.pc); +}if (meshSurface.bsPolygons == null) { +this.debugPrint(" all polygons used"); +} else { +this.debugPrint(" number of polygons used=" + meshSurface.bsPolygons.cardinality()); +}this.debugPrint(" solid color=" + this.gdata.getColorArgbOrGray(colix)); +}var bsPolygons = meshSurface.bsPolygons; +var nPolygons = meshSurface.pc; +if (meshSurface.normals != null) meshSurface.normalCount = meshSurface.vc; +var isAll = (bsPolygons == null); +var faces = JU.AU.newInt2(isAll ? nPolygons : bsPolygons.cardinality()); +var i0 = (isAll ? nPolygons - 1 : bsPolygons.nextSetBit(0)); +for (var i = i0, ipt = 0; i >= 0; i = isAll ? i - 1 : bsPolygons.nextSetBit(i + 1)) { +var polygon = meshSurface.pis[i]; +faces[ipt++] = (meshSurface.haveQuads ? polygon : Clazz.newIntArray(-1, [polygon[0], polygon[1], polygon[2]])); +} +var data = JU.MeshSurface.newMesh(false, meshSurface.vs, meshSurface.vc, faces, meshSurface.normals, 0); +data.vcs = meshSurface.vcs; +var name = "Surface" + this.surfaceNum++; +var isSolidColor = (colix != 0); +this.addTexture(colix, isSolidColor ? null : name); +var dim = null; +if (isSolidColor) { +this.debugPrint("outputSurface: coloring solid"); +this.debugPrint(" Omitting texture map"); +} else { +var nFaces = faces.length; +var width = Clazz.doubleToInt(Math.ceil(Math.sqrt(nFaces))); +var height = Clazz.doubleToInt(nFaces / width); +if (nFaces % width != 0) { +height++; +}dim = Clazz.newIntArray(-1, [width, height]); +this.debugPrint(" width=" + width + " height=" + height + " size = " + (width * height)); +var file = this.createTextureFile(name, data, dim); +if (file == null || file.getByteCount() == 0) { +System.out.println("Error creating texture file: " + name); +this.textureFiles.addLast("Error creating texture file: " + name); +return; +}this.textureFiles.addLast(file.getByteCount() + " (" + width + "x" + height + ") " + name); +var shortName = file.getName(); +this.outputMtl(" map_Kd " + shortName + "\n"); +this.outputMtl(" map_Ka " + shortName + "\n"); +}var matrix = JU.M4.newM4(null); +matrix.setTranslation(JU.V3.newV(meshSurface.offset)); +var bsValid = new JU.BS(); +this.addMesh(name, data, matrix, null, colix, dim, bsValid); +}, "JU.MeshSurface,~N"); +Clazz.overrideMethod(c$, "initializeOutput", +function(vwr, privateKey, gdata, params){ +this.debugPrint("initializeOutput: + output"); +var retVal = this.initOutput(vwr, privateKey, gdata, params); +if (!retVal) { +this.debugPrint("End initializeOutput (error in super):"); +return false; +}if (this.fileName == null) { +throw new NullPointerException("Cannot output two files (OBJ and MTL) to string"); +}var dot = this.fileName.lastIndexOf("."); +if (dot < 0) { +this.debugPrint("End initializeOutput (Error creating .mtl file):"); +return false; +}this.objFileRootName = this.fileName.substring(0, dot); +try { +var mtlFileName = this.objFileRootName + ".mtl"; +this.mtlout = vwr.openExportChannel(privateKey, mtlFileName, true); +} catch (ex) { +if (Clazz.exceptionOf(ex, Exception)){ +this.debugPrint("End initializeOutput (" + ex.getMessage() + "):"); +return false; +} else { +throw ex; +} +} +this.outputMtl("# Created by Jmol " + JV.Viewer.getJmolVersion() + "\n"); +this.output("\nmtllib " + this.mtlout.getName() + "\n"); +this.textureFiles = new JU.Lst(); +this.debugPrint("End initializeOutput:"); +return true; +}, "JV.Viewer,~N,JU.GData,java.util.Map"); +Clazz.overrideMethod(c$, "finalizeOutput", +function(){ +this.debugPrint("finalizeOutput"); +var retVal = this.finalizeOutput2(); +var ret = this.mtlout.closeChannel(); +if (ret != null) { +JU.Logger.info(ret); +ret = "ERROR EXPORTING MTL FILE: " + ret; +if (retVal.startsWith("OK")) return ret; +return retVal + " and " + ret; +}retVal += ", " + this.nMtlBytes + " " + this.mtlout.getFileName(); +for (var string, $string = this.textureFiles.iterator (); $string.hasNext()&& ((string = $string.next ()) || true);) { +retVal += ", " + string; +} +this.debugPrint(retVal); +this.debugPrint("End finalizeOutput:"); +return retVal; +}); +Clazz.defineMethod(c$, "outputMtl", +function(data){ +this.nMtlBytes += data.length; +this.mtlout.append(data); +}, "~S"); +Clazz.defineMethod(c$, "getTextureName", +function(colix){ +return "k" + JU.Escape.getHexColorFromRGB(this.gdata.getColorArgbOrGray(colix)); +}, "~N"); +Clazz.defineMethod(c$, "outputCircle1", +function(ptCenter, ptPerp, colix, radius){ +var data = J["export"].MeshData.getCircleData(); +var matrix = new JU.M4(); +this.addTexture(colix, null); +var name = "Circle" + this.circleNum++; +matrix.setToM3(this.getRotationMatrix(ptCenter, ptPerp, radius)); +matrix.m03 = ptCenter.x; +matrix.m13 = ptCenter.y; +matrix.m23 = ptCenter.z; +matrix.m33 = 1; +this.addMesh(name, data, matrix, matrix, colix, null, null); +}, "JU.P3,JU.P3,~N,~N"); +Clazz.defineMethod(c$, "outputCone1", +function(ptBase, ptTip, radius, colix){ +var data = J["export"].MeshData.getConeData(); +var matrix = new JU.M4(); +this.addTexture(colix, null); +var name = "Cone" + this.coneNum++; +matrix.setToM3(this.getRotationMatrix(ptBase, ptTip, radius)); +matrix.m03 = ptBase.x; +matrix.m13 = ptBase.y; +matrix.m23 = ptBase.z; +matrix.m33 = 1; +this.addMesh(name, data, matrix, matrix, colix, null, null); +}, "JU.P3,JU.P3,~N,~N"); +Clazz.defineMethod(c$, "outputEllipse1", +function(ptCenter, ptZ, ptX, ptY, colix){ +var data = J["export"].MeshData.getCircleData(); +var matrix = new JU.M4(); +this.addTexture(colix, null); +var name = "Ellipse" + this.ellipseNum++; +matrix.setToM3(this.getRotationMatrix(ptCenter, ptZ, 1, ptX, ptY)); +matrix.m03 = ptZ.x; +matrix.m13 = ptZ.y; +matrix.m23 = ptZ.z; +matrix.m33 = 1; +this.addMesh(name, data, matrix, matrix, colix, null, null); +return true; +}, "JU.P3,JU.P3,JU.P3,JU.P3,~N"); +Clazz.defineMethod(c$, "outputEllipsoid1", +function(center, rx, ry, rz, a, colix){ +var data = JU.MeshSurface.getSphereData(3); +this.addTexture(colix, null); +var name; +if (Clazz.instanceOf(center,"JM.Atom")) { +var atom = center; +name = JU.PT.replaceAllCharacters(atom.getAtomName(), " \t", "") + "_Atom"; +} else if (rx == ry && rx == rz) { +name = "Sphere" + this.sphereNum++; +} else { +name = "Ellipsoid" + this.ellipsoidNum++; +}this.setSphereMatrix(center, rx, ry, rz, a, this.sphereMatrix); +this.addMesh(name, data, this.sphereMatrix, this.sphereMatrix, colix, null, null); +}, "JU.T3,~N,~N,~N,JU.A4,~N"); +Clazz.defineMethod(c$, "outputCylinder1", +function(ptCenter, pt1, pt2, colix, endcaps, radius, ptX, ptY){ +var data = J["export"].MeshData.getCylinderData(false); +var matrix = new JU.M4(); +this.addTexture(colix, null); +var name = "Cylinder" + this.cylinderNum++; +var n = (ptX != null && endcaps == 0 ? 2 : 1); +for (var i = 0; i < n; i++) { +if (ptX == null) matrix.setToM3(this.getRotationMatrix(pt1, pt2, radius)); + else matrix.setToM3(this.getRotationMatrix(ptCenter, pt2, radius, ptX, ptY)); +matrix.m03 = pt1.x; +matrix.m13 = pt1.y; +matrix.m23 = pt1.z; +matrix.m33 = 1; +} +this.addMesh(name, data, matrix, matrix, colix, null, null); +}, "JU.P3,JU.P3,JU.P3,~N,~N,~N,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "outputTriangle1", +function(pt1, pt2, pt3, colix){ +var data = J["export"].MeshData.getTriangleData(pt1, pt2, pt3); +this.addTexture(colix, null); +var name = "Triangle" + this.triangleNum++; +var matrix = JU.M4.newM4(null); +this.addMesh(name, data, matrix, matrix, colix, null, null); +}, "JU.T3,JU.T3,JU.T3,~N"); +Clazz.defineMethod(c$, "addTexture", +function(colix, name){ +var scolix = Short.$valueOf(colix); +if (name == null && this.textures.contains(scolix)) { +return; +}this.textures.add(scolix); +var sb = new JU.SB(); +sb.append("\nnewmtl " + (name == null ? this.getTextureName(colix) : name) + "\n"); +sb.append(" Ns 163\n"); +sb.append(" Tr " + J["export"].___Exporter.opacityFractionalFromColix(colix) + "\n"); +sb.append(" Ni 0.001\n"); +sb.append(" illum 2\n"); +sb.append(" Ka 0.20 0.20 0.20\n"); +sb.append(" Kd " + this.rgbFractionalFromColix(colix) + "\n"); +sb.append(" Ks 0.25 0.25 0.25\n"); +this.outputMtl(sb.toString()); +}, "~N,~S"); +Clazz.defineMethod(c$, "addMesh", +function(name, data, matrix, matrix1, colix, dim, bsValid){ +if (this.surfacesOnly) { +if (name == null || !name.startsWith("Surface")) { +return; +}}this.output("\ng " + name + "\n"); +this.output("usemtl " + (dim == null ? this.getTextureName(colix) : name) + "\n"); +var faces = data.getFaces(); +var nFaces = faces.length; +if (bsValid != null) for (var face, $face = 0, $$face = faces; $face < $$face.length && ((face = $$face[$face]) || true); $face++) for (var i, $i = 0, $$i = face; $i < $$i.length && ((i = $$i[$i]) || true); $i++) bsValid.set(i); + + +var vertices = data.getVertices(); +var nVertices = data.vc; +var map = Clazz.newIntArray (nVertices, 0); +var nCoord = this.getCoordinateMap(vertices, map, bsValid); +this.output("# Number of vertices: " + nCoord + "\n"); +this.outputList(vertices, nVertices, matrix, "v ", bsValid); +nVertices = nCoord; +var normals = data.normals; +var nNormals = data.normalCount; +var map2 = null; +var vNormals = null; +if (normals != null) { +vNormals = new JU.Lst(); +map2 = this.getNormalMap(normals, nNormals, bsValid, vNormals); +nNormals = vNormals.size(); +this.output("# Number of normals: " + nNormals + "\n"); +for (var i = 0; i < nNormals; i++) this.output("vn " + vNormals.get(i)); + +}if (dim != null) { +this.output("# Number of texture coordinates: " + nFaces + "\n"); +var width = dim[0]; +var height = dim[1]; +var u; +var v; +for (var row = 0, iFace = 0; row < height; row++) { +v = row + .5; +if (this.normalizeUV) v /= height; +for (var col = 0; col < width; col++) { +u = col + .5; +if (this.normalizeUV) u /= width; +this.output("vt " + u + " " + v + "\n"); +if (++iFace == nFaces) break; +} +} +if (!this.normalizeUV) { +this.output("vt 0.0 0.0\n"); +this.output("vt " + width + " " + height + "\n"); +}}this.output("# Number of faces: " + nFaces + "\n"); +for (var i = 0; i < nFaces; i++) if (dim != null) this.outputFace2(faces[i], i, map, map2); + else this.outputFace1(faces[i], map, map2); + +if (dim != null) this.currentTextureOrigin += nFaces; +this.currentVertexOrigin += nVertices; +this.currentNormalOrigin += nNormals; +}, "~S,JU.MeshSurface,JU.M4,JU.M4,~N,~A,JU.BS"); +Clazz.defineMethod(c$, "outputList", +function(pts, nPts, m, prefix, bsValid){ +for (var i = 0; i < nPts; i++) { +if (bsValid != null && !bsValid.get(i)) continue; +this.ptTemp.setT(pts[i]); +if (m != null) m.rotTrans(this.ptTemp); +this.output(prefix + this.ptTemp.x + " " + this.ptTemp.y + " " + this.ptTemp.z + "\n"); +} +}, "~A,~N,JU.M4,~S,JU.BS"); +Clazz.defineMethod(c$, "outputFace1", +function(face, map, map2){ +this.output("f"); +for (var i, $i = 0, $$i = face; $i < $$i.length && ((i = $$i[$i]) || true); $i++) this.output(" " + ((map == null ? i : map[i]) + this.currentVertexOrigin) + "//" + ((map2 == null ? i : map2[i]) + this.currentNormalOrigin)); + +this.output("\n"); +}, "~A,~A,~A"); +Clazz.defineMethod(c$, "outputFace2", +function(face, vt, map, map2){ +this.output("f"); +for (var i, $i = 0, $$i = face; $i < $$i.length && ((i = $$i[$i]) || true); $i++) { +this.output(" " + ((map == null ? i : map[i]) + this.currentVertexOrigin) + "/" + (this.currentTextureOrigin + vt) + "/" + ((map2 == null ? i : map2[i]) + this.currentNormalOrigin)); +} +this.output("\n"); +}, "~A,~N,~A,~A"); +Clazz.defineMethod(c$, "createTextureFile", +function(name, data, dim){ +this.debugPrint("createTextureFile: " + name); +var colixes = (data.pcs == null ? data.vcs : data.pcs); +if (colixes == null || colixes.length == 0) { +this.debugPrint("createTextureFile: Array problem"); +this.debugPrint(" colixes=" + colixes + " data=" + data); +if (colixes != null) { +this.debugPrint(" colixes.length=" + colixes.length); +}return null; +}var nUsed = data.pis.length; +if (nUsed <= 0) { +this.debugPrint("createTextureFile: nFaces = 0"); +return null; +}var width = dim[0]; +var height = dim[1]; +var textureType = "png"; +var row = height - 1; +var col = 0; +var sum = new JU.P3(); +var w = width * 3; +var h = height * 3; +var bytes = (textureType.equals("tga") ? Clazz.newByteArray (h, w * 3, 0) : null); +var rgbbuf = (bytes == null ? Clazz.newIntArray (h * w, 0) : null); +var ptTemp = new JU.P3(); +for (var i = 0; i < data.pis.length; i++) { +var rgb; +if (data.pcs == null) { +var face = data.pis[i]; +sum.set(0, 0, 0); +for (var iVertex, $iVertex = 0, $$iVertex = face; $iVertex < $$iVertex.length && ((iVertex = $$iVertex[$iVertex]) || true); $iVertex++) sum.add(JU.CU.colorPtFromInt(this.gdata.getColorArgbOrGray(colixes[iVertex]), ptTemp)); + +sum.scale(1.0 / face.length); +rgb = JU.CU.colorPtToFFRGB(sum); +} else { +rgb = this.gdata.getColorArgbOrGray(colixes[i]); +}if (bytes == null) { +for (var j = 0; j < 3; j++) for (var k = 0; k < 3; k++) rgbbuf[(row * 3 + k) * w + col * 3 + j] = rgb; + + +} else { +}if ((col = (col + 1) % width) == 0) row--; +} +try { +var params = new java.util.Hashtable(); +var fname = this.fileName; +if (rgbbuf != null) { +params.put("rgbbuf", rgbbuf); +params.put("fileName", this.objFileRootName + "_" + name + "." + textureType); +params.put("type", textureType); +params.put("width", Integer.$valueOf(w)); +params.put("height", Integer.$valueOf(h)); +fname = this.fileName = this.vwr.outputToFile(params); +}this.debugPrint("End createTextureFile: " + fname); +return params.get("outputChannel"); +} catch (ex) { +if (Clazz.exceptionOf(ex, Exception)){ +this.debugPrint("End createTextureFile (" + ex.getMessage() + "):"); +return null; +} else { +throw ex; +} +} +}, "~S,JU.MeshSurface,~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/_PovrayExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/_PovrayExporter.js new file mode 100755 index 000000000000..f6d4429e9d4c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/_PovrayExporter.js @@ -0,0 +1,245 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export.__RayTracerExporter"], "J.export._PovrayExporter", ["JU.Measure", "$.P4", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.haveMacros = false; +Clazz.instantialize(this, arguments);}, J["export"], "_PovrayExporter", J["export"].__RayTracerExporter); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J["export"]._PovrayExporter, []); +this.commentChar = "// "; +}); +Clazz.overrideMethod(c$, "finalizeOutput", +function(){ +this.finalizeOutput2(); +return this.getAuxiliaryFileData(); +}); +Clazz.overrideMethod(c$, "outputHeader", +function(){ +this.initVars(); +this.output("// ******************************************************\n"); +this.output("// Created by Jmol " + JV.Viewer.getJmolVersion() + "\n"); +this.output("//\n"); +this.output("// This script was generated on " + this.getExportDate() + "\n"); +this.output("// ******************************************************\n"); +try { +this.output(this.vwr.getWrappedStateScript()); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +this.output("\n"); +this.output(this.getJmolPerspective()); +this.output("\n"); +this.output("// ******************************************************\n"); +this.output("// Declare the resolution, camera, and light sources.\n"); +this.output("// ******************************************************\n"); +this.output("\n"); +this.output("// NOTE: if you plan to render at a different resolution,\n"); +this.output("// be sure to update the following two lines to maintain\n"); +this.output("// the correct aspect ratio.\n\n"); +this.output("#declare Width = " + this.screenWidth + ";\n"); +this.output("#declare Height = " + this.screenHeight + ";\n"); +this.output("#declare minScreenDimension = " + this.minScreenDimension + ";\n"); +this.output("#declare showAtoms = true;\n"); +this.output("#declare showBonds = true;\n"); +this.output("#declare noShadows = true;\n"); +this.output("camera{\n"); +var offsetX; +var offsetY; +var f; +if (this.wasPerspective) { +offsetX = this.vwr.tm.getTranslationXPercent() / 100 * this.screenWidth; +offsetY = this.vwr.tm.getTranslationYPercent() / 100 * this.screenHeight; +f = 1 / this.vwr.tm.getPerspectiveFactor((this.vwr.tm.getCameraDepth() - 0.5) * this.vwr.getScreenDim()); +this.output(" perspective\n"); +this.output(" angle " + this.apertureAngle + "\n"); +this.output(" right < " + this.screenWidth + ", 0, 0>\n"); +this.output(" up < 0, " + -this.screenHeight + ", 0 >\n"); +} else { +offsetX = offsetY = f = 0; +this.output(" orthographic\n"); +this.output(" right < " + -this.screenWidth + ", 0, 0>\n"); +this.output(" up < 0, " + this.screenHeight + ", 0 >\n"); +}this.output(" sky < 0, -1, 0 >\n"); +this.output(" location < " + (this.screenWidth / 2 + offsetX) + ", " + (this.screenHeight / 2 + offsetY) + ", 0>\n"); +this.output(" look_at < " + (this.screenWidth / 2 + f * offsetX) + ", " + (this.screenHeight / 2 + f * offsetY) + ", 1000 >\n"); +this.output("}\n"); +this.output("\n"); +this.output("background { color rgb <" + this.rgbFractionalFromColix(this.backgroundColix) + "> }\n"); +this.output("\n"); +var distance = Math.max(this.screenWidth, this.screenHeight); +this.output("light_source { <" + this.lightSource.x * distance + "," + this.lightSource.y * distance + ", " + (-1 * this.lightSource.z * distance) + "> " + " rgb <0.6,0.6,0.6> }\n"); +this.output("\n"); +this.output("\n"); +this.output("// ***********************************************\n"); +this.output("// macros for common shapes\n"); +this.output("// ***********************************************\n"); +this.output("\n"); +this.writeMacros(); +}); +Clazz.defineMethod(c$, "writeMacros", +function(){ +this.output("#default { finish {\n" + " ambient " + this.gdata.getAmbientPercent() / 100 + "\n" + " diffuse " + this.gdata.getDiffusePercent() / 100 + "\n" + " specular " + this.gdata.getSpecularPercent() / 100 + "\n" + " roughness .00001\n metallic\n phong 0.9\n phong_size 120\n}}" + "\n\n"); +this.output("#macro check_shadow()\n #if (noShadows)\n no_shadow \n #end\n#end\n\n"); +this.output("#declare slabZ = " + this.slabZ + ";\n" + "#declare depthZ = " + this.depthZ + ";\n" + "#declare dzSlab = 10;\n" + "#declare dzDepth = dzSlab;\n" + "#declare dzStep = 0.001;\n\n"); +this.output("#macro clip()\n clipped_by { box {<0,0,slabZ>,} }\n#end\n\n"); +this.output("#macro circleCap(Z,RADIUS,R,G,B,T)\n// cap for lower clip\n #local cutDiff = Z - slabZ;\n #local cutRadius2 = (RADIUS*RADIUS) - (cutDiff*cutDiff);\n #if (cutRadius2 > 0)\n #local cutRadius = sqrt(cutRadius2);\n #if (dzSlab > 0)\n #declare dzSlab = dzSlab - dzStep;\n #end\n cylinder{ , ,cutRadius\n pigment{rgbt }\n translucentFinish(T)\n check_shadow()}\n #end\n// cap for upper clip\n #declare cutDiff = Z - depthZ;\n #declare cutRadius2 = (RADIUS*RADIUS) - (cutDiff*cutDiff);\n #if (cutRadius2 > 0)\n #local cutRadius = sqrt(cutRadius2);\n #if (dzDepth > 0)\n #declare dzDepth = dzDepth - dzStep;\n #end\n cylinder{ , ,cutRadius\n pigment{rgbt }\n translucentFinish(T)\n check_shadow()}\n #end\n#end\n\n"); +this.writeMacrosFinish(); +this.writeMacrosAtom(); +this.writeMacrosBond(); +}); +Clazz.defineMethod(c$, "writeMacrosFinish", +function(){ +this.output("#macro translucentFinish(T)\n" + " #local shineFactor = T;\n" + " #if (T <= 0.25)\n" + " #declare shineFactor = (1.0-4*T);\n" + " #end\n" + " #if (T > 0.25)\n" + " #declare shineFactor = 0;\n" + " #end\n" + " finish {\n" + " ambient " + this.gdata.getAmbientPercent() / 100 + "\n" + " diffuse " + this.gdata.getDiffusePercent() / 100 + "\n" + " specular " + this.gdata.getSpecularPercent() / 100 + "\n" + " roughness .00001\n" + " metallic shineFactor\n" + " phong 0.9*shineFactor\n" + " phong_size 120*shineFactor\n}" + "#end\n\n"); +}); +Clazz.defineMethod(c$, "writeMacrosAtom", +function(){ +this.output("#macro a(X,Y,Z,RADIUS,R,G,B,T)\n sphere{ ,RADIUS\n pigment{rgbt }\n translucentFinish(T)\n clip()\n check_shadow()}\n" + (this.isSlabEnabled ? " circleCap(Z,RADIUS,R,G,B,T)\n" : "") + "#end\n\n"); +this.output("#macro q(XX,YY,ZZ,XY,XZ,YZ,X,Y,Z,J,R,G,B,T)\n quadric{ , , ,J\n pigment{rgbt }\n translucentFinish(T)\n clip()\n check_shadow()}\n#end\n\n"); +}); +Clazz.defineMethod(c$, "writeMacrosBond", +function(){ +this.output("#macro b(X1,Y1,Z1,RADIUS1,X2,Y2,Z2,RADIUS2,R,G,B,T)\n cone{ ,RADIUS1, ,RADIUS2\n pigment{rgbt }\n translucentFinish(T)\n clip()\n check_shadow()}\n#end\n\n"); +this.output("#macro c(X1,Y1,Z1,RADIUS1,X2,Y2,Z2,RADIUS2,R,G,B,T)\n cone{ ,RADIUS1, ,RADIUS2 open\n pigment{rgbt }\n translucentFinish(T)\n clip()\n check_shadow()}\n#end\n\n"); +}); +Clazz.defineMethod(c$, "writeMacros2", +function(){ +this.output("#macro r(X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3,R,G,B,T)\n triangle{ , , \n pigment{rgbt }\n translucentFinish(T)\n clip()\n check_shadow()}\n#end\n\n"); +this.output("#macro p(X,Y,Z,R,G,B,T)\n box{ , \n pigment{rgbt }\n clip()\n check_shadow()}\n#end\n\n"); +this.output("#macro barb(X1,Y1,Z1,RADIUS1,X2,Y2,Z2,RADIUS2,R,G,B,T,X3,Y3,Z3,W3)\n cone{ ,RADIUS1, ,RADIUS2\n pigment{rgbt }\n translucentFinish(T)\n clip()\n clipped_by{plane{ ,W3}}\n check_shadow()}\n#end\n\n"); +this.haveMacros = true; +}); +Clazz.defineMethod(c$, "getTriad", +function(pt){ +if (Float.isNaN(pt.x)) return "0,0,0"; +return pt.x + "," + pt.y + "," + pt.z; +}, "JU.T3"); +Clazz.defineMethod(c$, "getTriad", +function(i){ +return i[0] + "," + i[1] + "," + i[2]; +}, "~A"); +Clazz.defineMethod(c$, "color4", +function(colix){ +return this.rgbFractionalFromColix(colix) + "," + J["export"].___Exporter.translucencyFractionalFromColix(colix); +}, "~N"); +Clazz.defineMethod(c$, "getAuxiliaryFileData", +function(){ +var fName = this.fileName.substring(this.fileName.lastIndexOf("/") + 1); +fName = fName.substring(fName.lastIndexOf("\\") + 1); +return "; Created by: Jmol " + JV.Viewer.getJmolVersion() + "\n; Creation date: " + this.getExportDate() + "\n; File created: " + this.fileName + " (" + this.getByteCount() + " bytes)\n\n" + (this.commandLineOptions != null ? this.commandLineOptions : "\n; Jmol state: (embedded in input file)\nInput_File_Name=" + fName + "\nOutput_to_File=true" + "\nOutput_File_Type=N" + "\nOutput_File_Name=" + fName + ".png" + "\nWidth=" + this.screenWidth + "\nHeight=" + this.screenHeight + "\nAntialias=true" + "\nAntialias_Threshold=0.1" + "\nDisplay=true" + "\nPause_When_Done=true" + "\nWarning_Level=5" + "\nVerbose=false" + "\n"); +}); +Clazz.defineMethod(c$, "output", +function(pt){ +this.output(", <" + this.getTriad(pt) + ">"); +}, "JU.T3"); +Clazz.overrideMethod(c$, "outputCircle", +function(x, y, z, radius, colix, doFill){ +this.output((doFill ? "b(" : "c(") + x + "," + y + "," + z + "," + radius + "," + x + "," + y + "," + (z + 1) + "," + (radius + (doFill ? 0 : 2)) + "," + this.color4(colix) + ")\n"); +}, "~N,~N,~N,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputCone", +function(screenBase, screenTip, radius, colix, isBarb){ +if (isBarb) { +if (!this.haveMacros) this.writeMacros2(); +this.tempP1.set(screenBase.x, screenTip.y, 12345.6789); +var plane = JU.Measure.getPlaneThroughPoints(screenBase, screenTip, this.tempP1, this.tempV1, this.tempV2, new JU.P4()); +this.output("barb(" + this.getTriad(screenBase) + "," + radius + "," + this.getTriad(screenTip) + ",0" + "," + this.color4(colix) + "," + plane.x + "," + plane.y + "," + plane.z + "," + -plane.w + ")\n"); +} else { +this.output("b(" + this.getTriad(screenBase) + "," + radius + "," + this.getTriad(screenTip) + ",0" + "," + this.color4(colix) + ")\n"); +}}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputCylinder", +function(screenA, screenB, radius, colix, withCaps){ +var color = this.color4(colix); +this.output((withCaps ? "b(" : "c(") + this.getTriad(screenA) + "," + radius + "," + this.getTriad(screenB) + "," + radius + "," + color + ")\n"); +}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputCylinderConical", +function(screenA, screenB, radius1, radius2, colix){ +this.output("b(" + this.getTriad(screenA) + "," + radius1 + "," + this.getTriad(screenB) + "," + radius2 + "," + this.color4(colix) + ")\n"); +}, "JU.P3,JU.P3,~N,~N,~N"); +Clazz.overrideMethod(c$, "outputEllipsoid", +function(center, radius, coef, colix){ +var s = coef[0] + "," + coef[1] + "," + coef[2] + "," + coef[3] + "," + coef[4] + "," + coef[5] + "," + coef[6] + "," + coef[7] + "," + coef[8] + "," + coef[9] + "," + this.color4(colix); +this.output("q(" + s + ")\n"); +}, "JU.P3,~N,~A,~N"); +Clazz.overrideMethod(c$, "outputSurface", +function(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, nTriangles, bsPolygons, faceVertexMax, colix, colorList, htColixes, offset){ +if (polygonColixes != null) { +var isAll = (bsPolygons == null); +var i0 = (isAll ? nPolygons - 1 : bsPolygons.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsPolygons.nextSetBit(i + 1))) { +this.output("polygon { 4\n"); +for (var j = 0; j <= 3; j++) this.outputVertex(vertices[indices[i][j % 3]], offset); + +this.output("\n"); +this.output("pigment{rgbt<" + this.color4(colix = polygonColixes[i]) + ">}\n"); +this.output(" translucentFinish(" + J["export"].___Exporter.translucencyFractionalFromColix(colix) + ")\n"); +this.output(" check_shadow()\n"); +this.output(" clip()\n"); +this.output("}\n"); +} +return; +}this.output("mesh2 {\n"); +this.output("vertex_vectors { " + nVertices); +for (var i = 0; i < nVertices; i++) this.outputVertex(vertices[i], offset); + +this.output("\n}\n"); +var haveNormals = (normals != null); +if (haveNormals) { +this.output("normal_vectors { " + nVertices); +for (var i = 0; i < nVertices; i++) { +J["export"].___Exporter.setTempVertex(vertices[i], offset, this.tempP2); +this.output(this.getScreenNormal(this.tempP2, normals[i], 1)); +this.output("\n"); +} +this.output("\n}\n"); +}if (colixes != null) { +var nColix = colorList.size(); +this.output("texture_list { " + nColix); +var finish = ">} translucentFinish(" + J["export"].___Exporter.translucencyFractionalFromColix(colixes[0]) + ")}"; +for (var i = 0; i < nColix; i++) this.output("\n, texture{pigment{rgbt<" + this.color4(colorList.get(i).shortValue()) + finish); + +this.output("\n}\n"); +}this.output("face_indices { " + nTriangles); +var isAll = (bsPolygons == null); +var i0 = (isAll ? nPolygons - 1 : bsPolygons.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsPolygons.nextSetBit(i + 1))) { +this.output(", <" + this.getTriad(indices[i]) + ">"); +if (colixes != null) { +this.output("," + htColixes.get(Short.$valueOf(colixes[indices[i][0]]))); +this.output("," + htColixes.get(Short.$valueOf(colixes[indices[i][1]]))); +this.output("," + htColixes.get(Short.$valueOf(colixes[indices[i][2]]))); +}if (faceVertexMax == 4 && indices[i].length == 4) { +this.output(", <" + indices[i][0] + "," + indices[i][2] + "," + indices[i][3] + ">"); +if (colixes != null) { +this.output("," + htColixes.get(Short.$valueOf(colixes[indices[i][0]]))); +this.output("," + htColixes.get(Short.$valueOf(colixes[indices[i][2]]))); +this.output("," + htColixes.get(Short.$valueOf(colixes[indices[i][3]]))); +}}this.output("\n"); +} +this.output("\n}\n"); +if (colixes == null) { +this.output("pigment{rgbt<" + this.color4(colix) + ">}\n"); +this.output(" translucentFinish(" + J["export"].___Exporter.translucencyFractionalFromColix(colix) + ")\n"); +}this.output(" check_shadow()\n"); +this.output(" clip()\n"); +this.output("}\n"); +}, "~A,~A,~A,~A,~A,~N,~N,~N,JU.BS,~N,~N,JU.Lst,java.util.Map,JU.P3"); +Clazz.overrideMethod(c$, "outputSphere", +function(x, y, z, radius, colix){ +this.output("a(" + x + "," + y + "," + z + "," + radius + "," + this.color4(colix) + ")\n"); +}, "~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "outputTextPixel", +function(x, y, z, argb){ +if (!this.haveMacros) this.writeMacros2(); +var tr = ((argb >> 24) & 0xFF); +tr = (255 - tr) / 255; +this.output("p(" + x + "," + y + "," + z + "," + this.rgbFractionalFromArgb(argb) + "," + tr + ")\n"); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "outputTriangle", +function(ptA, ptB, ptC, colix){ +if (!this.haveMacros) this.writeMacros2(); +this.output("r(" + this.getTriad(ptA) + "," + this.getTriad(ptB) + "," + this.getTriad(ptC) + "," + this.color4(colix) + ")\n"); +}, "JU.T3,JU.T3,JU.T3,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/_StlExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/_StlExporter.js new file mode 100755 index 000000000000..d117ec8d3bff --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/_StlExporter.js @@ -0,0 +1,147 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export._VrmlExporter", "JU.M4"], "J.export._StlExporter", ["java.io.ByteArrayOutputStream", "JU.Lst", "$.Measure", "$.OC", "JU.Logger", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isDebug = false; +this.header = null; +this.oc = null; +this.bos = null; +this.m4 = null; +this.lstMatrix = null; +this.m4a = null; +this.nTri = 0; +Clazz.instantialize(this, arguments);}, J["export"], "_StlExporter", J["export"]._VrmlExporter); +Clazz.prepareFields (c$, function(){ +this.m4a = new JU.M4(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor(this, J["export"]._StlExporter); +this.useTable = null; +this.lineWidthMad = 20; +this.noColor = true; +this.isDebug = JU.Logger.debugging; +if (!this.isDebug) { +this.oc = new JU.OC(); +this.oc.setBigEndian(false); +this.oc.setParams(null, null, false, this.bos = new java.io.ByteArrayOutputStream()); +}}); +Clazz.overrideMethod(c$, "outputHeader", +function(){ +this.header = ("solid model generated by Jmol " + JV.Viewer.getJmolVersion() + " ").substring(0, 80); +if (this.isDebug) { +this.out.append(this.header); +this.out.append("\n"); +} else { +this.oc.write(this.header.getBytes(), 0, 80); +this.oc.write( Clazz.newByteArray (4, 0), 0, 4); +}this.lstMatrix = new JU.Lst(); +this.m4 = new JU.M4(); +this.m4.setIdentity(); +this.lstMatrix.addLast(this.m4); +this.outputInitialTransform(); +}); +Clazz.overrideMethod(c$, "pushMatrix", +function(){ +this.lstMatrix.addLast(this.m4); +this.m4 = JU.M4.newM4(this.m4); +}); +Clazz.overrideMethod(c$, "popMatrix", +function(){ +this.m4 = this.lstMatrix.removeItemAt(this.lstMatrix.size() - 1); +}); +Clazz.defineMethod(c$, "output", +function(data){ +}, "~S"); +Clazz.overrideMethod(c$, "outputChildStart", +function(){ +}); +Clazz.overrideMethod(c$, "outputChildClose", +function(){ +}); +Clazz.overrideMethod(c$, "outputRotation", +function(a){ +this.m4a.setToAA(a); +this.m4.mul(this.m4a); +}, "JU.A4"); +Clazz.overrideMethod(c$, "outputAttrPt", +function(attr, pt){ +this.outputAttr(attr, pt.x, pt.y, pt.z); +}, "~S,JU.T3"); +Clazz.overrideMethod(c$, "outputAttr", +function(attr, x, y, z){ +this.m4a.setIdentity(); +if (attr === "scale") { +this.m4a.m00 = x; +this.m4a.m11 = y; +this.m4a.m22 = z; +} else if (attr === "translation") { +this.m4a.m03 = x; +this.m4a.m13 = y; +this.m4a.m23 = z; +}this.m4.mul(this.m4a); +}, "~S,~N,~N,~N"); +Clazz.overrideMethod(c$, "outputGeometry", +function(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, bsPolygons, faceVertexMax, colorList, htColixes, offset){ +for (var i = 0; i < nPolygons; i++) { +if (bsPolygons != null && !bsPolygons.get(i)) continue; +var face = indices[i]; +this.writeFacet(vertices, face, 0, 1, 2); +if (faceVertexMax == 4 && face.length >= 4 && face[2] != face[3]) this.writeFacet(vertices, face, 2, 3, 0); +} +}, "~A,~A,~A,~A,~A,~N,~N,JU.BS,~N,JU.Lst,java.util.Map,JU.P3"); +Clazz.defineMethod(c$, "writeFacet", +function(vertices, face, i, j, k){ +this.tempQ1.setT(vertices[face[i]]); +this.tempQ2.setT(vertices[face[j]]); +this.tempQ3.setT(vertices[face[k]]); +this.m4.rotTrans(this.tempQ1); +this.m4.rotTrans(this.tempQ2); +this.m4.rotTrans(this.tempQ3); +JU.Measure.calcNormalizedNormal(this.tempQ1, this.tempQ2, this.tempQ3, this.tempV1, this.tempV2); +if (Float.isNaN(this.tempV1.x)) { +return; +}this.writePoint("facet normal", this.tempV1); +this.writePoint("outer loop\nvertex", this.tempQ1); +this.writePoint("vertex", this.tempQ2); +this.writePoint("vertex", this.tempQ3); +if (this.isDebug) { +this.out.append("endloop\nendfacet\n"); +} else { +this.oc.writeByteAsInt(0); +this.oc.writeByteAsInt(0); +}this.nTri++; +}, "~A,~A,~N,~N,~N"); +Clazz.overrideMethod(c$, "finalizeOutput", +function(){ +if (this.isDebug) { +this.out.append("endsolid model\n"); +} else { +var b = this.bos.toByteArray(); +b[80] = (this.nTri & 0xff); +b[81] = ((this.nTri >> 8) & 0xff); +b[82] = ((this.nTri >> 16) & 0xff); +b[83] = ((this.nTri >> 24) & 0xff); +this.out.write(b, 0, b.length); +}return this.finalizeOutput2(); +}); +Clazz.overrideMethod(c$, "outputCircle", +function(pt1, pt2, radius, colix, doFill){ +}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "plotText", +function(x, y, z, colix, text, font3d){ +}, "~N,~N,~N,~N,~S,JU.Font"); +Clazz.defineMethod(c$, "writePoint", +function(s, p){ +if (this.isDebug) this.out.append(s); +this.writeFloat(p.x); +this.writeFloat(p.y); +this.writeFloat(p.z); +if (this.isDebug) this.out.append("\n"); +}, "~S,JU.T3"); +Clazz.defineMethod(c$, "writeFloat", +function(f){ +if (this.isDebug) this.out.append(" " + f); + else this.oc.writeInt(Float.floatToIntBits(f)); +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/_TachyonExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/_TachyonExporter.js new file mode 100755 index 000000000000..f5cec55f0e55 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/_TachyonExporter.js @@ -0,0 +1,227 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export.__RayTracerExporter", "$.UseTable"], "J.export._TachyonExporter", ["JU.SB", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.lighting = null; +this.phong = null; +this.textures = null; +this.textureCode = null; +Clazz.instantialize(this, arguments);}, J["export"], "_TachyonExporter", J["export"].__RayTracerExporter); +Clazz.prepareFields (c$, function(){ +this.textures = new J["export"].UseTable(" "); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J["export"]._TachyonExporter, []); +this.commentChar = "# "; +}); +Clazz.overrideMethod(c$, "initializeOutput", +function(vwr, privateKey, gdata, params){ +this.getLightingInfo(); +return this.initOutput(vwr, privateKey, gdata, params); +}, "JV.Viewer,~N,JU.GData,java.util.Map"); +Clazz.defineMethod(c$, "getLightingInfo", +function(){ +this.lighting = " AMBIENT " + J["export"].___Exporter.round(this.gdata.getAmbientPercent() / 100) + " DIFFUSE " + J["export"].___Exporter.round(this.gdata.getDiffusePercent() / 100) + " SPECULAR " + J["export"].___Exporter.round(this.gdata.getSpecularPercent() / 100); +this.phong = " Phong Plastic 0.5 Phong_size " + this.gdata.getSpecularExponent(); +}); +Clazz.overrideMethod(c$, "outputHeader", +function(){ +this.initVars(); +this.output("# ******************************************************\n"); +this.output("# Created by Jmol " + JV.Viewer.getJmolVersion() + "\n"); +this.output("#\n"); +this.output("# This script was generated on " + this.getExportDate() + "\n"); +this.output("#\n"); +this.output("# Requires Tachyon version 0.98.7 or newer\n"); +this.output("#\n"); +this.output("# Default tachyon rendering command for this scene:\n"); +this.output("# tachyon -aasamples 12 %s -format TARGA -o %s.tga\n"); +this.output("#\n"); +this.output("# ******************************************************\n"); +this.output("\n"); +this.output(this.getJmolPerspective()); +this.output("\n"); +this.output("Begin_Scene\n"); +this.output("Resolution " + this.screenWidth + " " + this.screenHeight + "\n"); +this.output("Shader_Mode Medium\n"); +this.output(" Trans_VMD\n"); +this.output(" Fog_VMD\n"); +this.output("End_Shader_Mode\n"); +this.output("Camera\n"); +this.output(" Zoom 3.0\n"); +this.output(" Aspectratio 1\n"); +this.output(" Antialiasing 12\n"); +this.output(" Raydepth 8\n"); +this.output(" Center " + this.triad(Clazz.doubleToInt(this.screenWidth / 2), Clazz.doubleToInt(this.screenHeight / 2), 0) + "\n"); +this.output(" Viewdir 0 0 1\n"); +this.output(" Updir 0 1 0\n"); +this.output("End_Camera\n"); +this.output("Directional_Light Direction " + J["export"].___Exporter.round(this.lightSource) + " Color 1 1 1\n"); +this.output("\n"); +this.output("Background " + this.rgbFractionalFromColix(this.backgroundColix) + "\n"); +this.output("\n"); +}); +Clazz.overrideMethod(c$, "outputFooter", +function(){ +this.output("End_Scene\n"); +}); +Clazz.defineMethod(c$, "output", +function(pt){ +this.output(this.triad(pt)); +}, "JU.T3"); +Clazz.defineMethod(c$, "triad", +function(x, y, z){ +return Clazz.floatToInt(x) + " " + Clazz.floatToInt(-y) + " " + Clazz.floatToInt(z); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "triad", +function(pt){ +if (Float.isNaN(pt.x)) return "0 0 0"; +return this.triad(pt.x, pt.y, pt.z); +}, "JU.T3"); +Clazz.defineMethod(c$, "outputTextureCode", +function(){ +this.output(this.textureCode); +this.output("\n"); +}); +Clazz.defineMethod(c$, "outputTexture", +function(colix, useTexDef){ +this.outputTexture2(this.rgbFractionalFromColix(colix), J["export"].___Exporter.opacityFractionalFromColix(colix), useTexDef); +}, "~N,~B"); +Clazz.defineMethod(c$, "outputTexture", +function(argb, useTexDef){ +this.outputTexture2(this.rgbFractionalFromArgb(argb), J["export"].___Exporter.opacityFractionalFromArgb(argb), useTexDef); +}, "~N,~B"); +Clazz.defineMethod(c$, "outputTexture2", +function(rgb, opacity, useTexDef){ +this.textureCode = (useTexDef ? this.textures.getDef("t" + rgb + opacity) : null); +if (useTexDef && this.textureCode.startsWith(" ")) return; +var sb = new JU.SB(); +sb.append(this.lighting); +sb.append(" Opacity " + opacity); +sb.append(this.phong); +sb.append(" Color " + rgb); +sb.append(" TexFunc 0\n"); +if (!useTexDef) { +this.textureCode = "Texture " + sb; +return; +}this.output("TexDef " + this.textureCode); +this.output(sb.toString()); +this.textureCode = " " + this.textureCode; +}, "~S,~S,~B"); +Clazz.overrideMethod(c$, "outputCircle", +function(x, y, z, radius, colix, doFill){ +this.tempV1.set(0, 0, -1); +this.outputRing(x, y, z, this.tempV1, radius, colix, doFill); +}, "~N,~N,~N,~N,~N,~B"); +Clazz.defineMethod(c$, "outputRing", +function(x, y, z, tempV1, radius, colix, doFill){ +this.outputTexture(colix, true); +this.output("Ring Center "); +this.output(this.triad(x, y, z)); +this.output(" Normal " + this.triad(tempV1)); +this.output(" Inner " + J["export"].___Exporter.round((doFill ? 0 : radius * 0.95))); +this.output(" Outer " + J["export"].___Exporter.round(radius)); +this.outputTextureCode(); +}, "~N,~N,~N,JU.V3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputCone", +function(screenBase, screenTip, radius, colix, isBarb){ +this.tm.unTransformPoint(screenBase, this.tempP1); +this.tm.unTransformPoint(screenTip, this.tempP2); +radius = this.vwr.tm.unscaleToScreen(screenBase.z, radius); +var matRotateScale = this.getRotationMatrix(this.tempP1, this.tempP2, radius); +this.export3D.drawSurface(J["export"].___Exporter.getConeMesh(this.tempP1, matRotateScale, colix), colix); +}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputCylinder", +function(screenA, screenB, radius, colix, withCaps){ +this.outputTexture(colix, true); +this.output("FCylinder Base "); +this.output(this.triad(screenA)); +this.output(" Apex "); +this.output(this.triad(screenB)); +this.output(" Rad " + J["export"].___Exporter.round(radius)); +this.outputTextureCode(); +if (withCaps && radius > 1) { +this.tempV1.sub2(screenA, screenB); +this.outputRing(Clazz.floatToInt(screenA.x), Clazz.floatToInt(screenA.y), Clazz.floatToInt(screenA.z), this.tempV1, radius, colix, true); +this.tempV1.scale(-1); +this.outputRing(Clazz.floatToInt(screenB.x), Clazz.floatToInt(screenB.y), Clazz.floatToInt(screenB.z), this.tempV1, radius, colix, true); +}}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "fillConicalCylinder", +function(screenA, screenB, madBond, colix, endcaps){ +var diameter = Clazz.floatToInt(this.vwr.tm.scaleToScreen(Clazz.floatToInt((screenA.z + screenB.z) / 2), madBond)); +this.fillCylinderScreenMad(colix, endcaps, diameter, screenA, screenB); +}, "JU.P3,JU.P3,~N,~N,~N"); +Clazz.overrideMethod(c$, "outputCylinderConical", +function(screenA, screenB, radius1, radius2, colix){ +}, "JU.P3,JU.P3,~N,~N,~N"); +Clazz.overrideMethod(c$, "outputEllipsoid", +function(center, radius, coef, colix){ +this.tm.transformPt3f(center, this.tempP1); +this.outputSphere(this.tempP1.x, this.tempP1.y, this.tempP1.z, radius, colix); +}, "JU.P3,~N,~A,~N"); +Clazz.overrideMethod(c$, "outputSurface", +function(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, nTriangles, bsPolygons, faceVertexMax, colix, colorList, htColixes, offset){ +if (polygonColixes != null) { +var isAll = (bsPolygons == null); +var i0 = (isAll ? nPolygons - 1 : bsPolygons.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsPolygons.nextSetBit(i + 1))) { +J["export"].___Exporter.setTempVertex(vertices[indices[i][0]], offset, this.tempP1); +J["export"].___Exporter.setTempVertex(vertices[indices[i][1]], offset, this.tempP2); +J["export"].___Exporter.setTempVertex(vertices[indices[i][2]], offset, this.tempP3); +this.tm.transformPt3f(this.tempP1, this.tempP1); +this.tm.transformPt3f(this.tempP2, this.tempP2); +this.tm.transformPt3f(this.tempP3, this.tempP3); +this.outputTriangle(this.tempP1, this.tempP2, this.tempP3, colix); +} +return; +}this.outputTexture(colixes == null ? colix : colixes[0], false); +this.output("VertexArray Numverts " + nVertices + "\nCoords\n"); +for (var i = 0; i < nVertices; i++) this.outputVertex(vertices[i], offset); + +this.output("\nNormals\n"); +for (var i = 0; i < nVertices; i++) { +J["export"].___Exporter.setTempVertex(vertices[i], offset, this.tempP1); +this.output(this.triad(this.getScreenNormal(this.tempP1, normals[i], 10)) + "\n"); +} +var rgb = (colixes == null ? this.rgbFractionalFromColix(colix) : null); +this.output("\nColors\n"); +for (var i = 0; i < nVertices; i++) { +this.output((colixes == null ? rgb : this.rgbFractionalFromColix(colixes[i])) + "\n"); +} +this.outputTextureCode(); +this.output("\nTriMesh " + nTriangles + "\n"); +var isAll = (bsPolygons == null); +var i0 = (isAll ? nPolygons - 1 : bsPolygons.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsPolygons.nextSetBit(i + 1))) { +this.output(indices[i][0] + " " + indices[i][1] + " " + indices[i][2] + "\n"); +if (faceVertexMax == 4 && indices[i].length == 4) this.output(indices[i][0] + " " + indices[i][2] + " " + indices[i][3] + "\n"); +} +this.output("\nEnd_VertexArray\n"); +}, "~A,~A,~A,~A,~A,~N,~N,~N,JU.BS,~N,~N,JU.Lst,java.util.Map,JU.P3"); +Clazz.overrideMethod(c$, "outputSphere", +function(x, y, z, radius, colix){ +this.outputTexture(colix, true); +this.output("Sphere Center "); +this.output(this.triad(x, y, z)); +this.output(" Rad " + J["export"].___Exporter.round(radius)); +this.outputTextureCode(); +}, "~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "outputTextPixel", +function(x, y, z, argb){ +this.outputTexture(argb, true); +this.output("Sphere Center "); +this.output(this.triad(x, y, z)); +this.output(" Rad 1"); +this.outputTextureCode(); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "outputTriangle", +function(ptA, ptB, ptC, colix){ +this.outputTexture(colix, true); +this.output("TRI"); +this.output(" V0 " + this.triad(ptA)); +this.output(" V1 " + this.triad(ptB)); +this.output(" V2 " + this.triad(ptC)); +this.outputTextureCode(); +}, "JU.T3,JU.T3,JU.T3,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/_VrmlExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/_VrmlExporter.js new file mode 100755 index 000000000000..a6d3997fbf86 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/_VrmlExporter.js @@ -0,0 +1,552 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export.__CartesianExporter", "java.util.Hashtable", "JU.P3"], "J.export._VrmlExporter", ["JU.A4", "$.AU", "$.Lst", "$.Measure", "$.PT", "$.Quat", "J.export.UseTable", "JU.Geodesic", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.useTable = null; +this.htSpheresRendered = null; +this.plateVertices = null; +this.plateIndices = null; +this.plateColixes = null; +this.tempQ1 = null; +this.tempQ2 = null; +this.tempQ3 = null; +this.oneFace = null; +this.threeVertices = null; +this.fontSize = 0; +this.fontFace = null; +this.fontStyle = null; +this.fontChild = null; +Clazz.instantialize(this, arguments);}, J["export"], "_VrmlExporter", J["export"].__CartesianExporter); +Clazz.prepareFields (c$, function(){ +this.htSpheresRendered = new java.util.Hashtable(); +this.tempQ1 = new JU.P3(); +this.tempQ2 = new JU.P3(); +this.tempQ3 = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J["export"]._VrmlExporter, []); +this.useTable = new J["export"].UseTable("USE "); +this.commentChar = "# "; +this.canCapCylinders = true; +this.solidOnly = true; +}); +Clazz.defineMethod(c$, "output", +function(pt){ +this.output(J["export"].___Exporter.round(pt)); +}, "JU.T3"); +Clazz.overrideMethod(c$, "outputHeader", +function(){ +this.output("#VRML V2.0 utf8 Generated by Jmol " + JV.Viewer.getJmolVersion() + "\n"); +this.output("WorldInfo { \n"); +this.output(" title " + JU.PT.esc(this.vwr.ms.modelSetName) + "\n"); +this.output(" info [ \"Generated by Jmol " + JV.Viewer.getJmolVersion() + " \", \n"); +this.output(" \"http://www.jmol.org \", \n"); +this.output(" \"Creation date: " + this.getExportDate() + " \" ]\n"); +this.output("} \n"); +this.output("NavigationInfo { type \"EXAMINE\" } \n"); +this.output("Background { skyColor [" + this.rgbFractionalFromColix(this.backgroundColix) + "] } \n"); +var angle = this.getViewpoint(); +this.output("Viewpoint{fieldOfView " + angle); +this.output(" position "); +this.cameraPosition.scale(this.exportScale); +this.output(this.cameraPosition); +this.output(" orientation "); +this.output(this.tempP1); +this.output(" " + -this.viewpoint.angle); +this.output("\n jump TRUE description \"v1\"\n}\n\n"); +this.output(this.getJmolPerspective()); +this.outputInitialTransform(); +this.output("\n"); +}); +Clazz.defineMethod(c$, "outputInitialTransform", +function(){ +this.pushMatrix(); +this.outputAttr("scale", this.exportScale, this.exportScale, this.exportScale); +this.outputCloseTag(); +this.outputChildStart(); +this.pushMatrix(); +this.tempP1.setT(this.center); +this.tempP1.scale(-1); +this.outputAttrPt("translation", this.tempP1); +this.outputCloseTag(); +this.outputChildStart(); +}); +Clazz.defineMethod(c$, "getViewpoint", +function(){ +this.viewpoint.setM(this.vwr.tm.matrixRotate); +this.tempP1.set(this.viewpoint.x, this.viewpoint.y, (this.viewpoint.angle == 0 ? 1 : this.viewpoint.z)); +return (this.apertureAngle * 3.141592653589793 / 180); +}); +Clazz.overrideMethod(c$, "outputFooter", +function(){ +this.useTable = null; +this.output("\n]}\n"); +this.output("]}"); +}); +Clazz.defineMethod(c$, "outputAppearance", +function(colix, isText){ +var def = this.getDef((isText ? "T" : "") + colix); +this.output("appearance "); +if (def.charAt(0) == '_') { +var color = this.rgbFractionalFromColix(colix); +this.output(" DEF " + def + " Appearance{material Material{diffuseColor "); +if (isText) this.output(" 0 0 0 specularColor 0 0 0 ambientIntensity 0.0 shininess 0.0 emissiveColor " + color + " }}"); + else this.output(color + " transparency " + J["export"].___Exporter.translucencyFractionalFromColix(colix) + "}}"); +return; +}this.output(def); +}, "~N,~B"); +Clazz.defineMethod(c$, "pushMatrix", +function(){ +this.output("Transform{"); +}); +Clazz.defineMethod(c$, "popMatrix", +function(){ +this.output("}\n"); +}); +Clazz.defineMethod(c$, "outputAttrPt", +function(attr, pt){ +this.output(" " + attr + " " + pt.x + " " + pt.y + " " + pt.z); +}, "~S,JU.T3"); +Clazz.defineMethod(c$, "outputAttr", +function(attr, x, y, z){ +this.output(" " + attr + " " + J["export"].___Exporter.round(x) + " " + J["export"].___Exporter.round(y) + " " + J["export"].___Exporter.round(z)); +}, "~S,~N,~N,~N"); +Clazz.defineMethod(c$, "outputRotation", +function(a){ +this.output(" rotation " + a.x + " " + a.y + " " + a.z + " " + a.angle); +}, "JU.A4"); +Clazz.defineMethod(c$, "outputTransRot", +function(pt1, pt2, x, y, z){ +this.tempV1.ave(pt2, pt1); +this.outputAttrPt("translation", this.tempV1); +this.tempV1.sub(pt1); +this.tempV1.normalize(); +this.tempV2.set(x, y, z); +this.tempV2.add(this.tempV1); +this.outputRotation(JU.A4.newVA(this.tempV2, 3.141592653589793)); +}, "JU.P3,JU.P3,~N,~N,~N"); +Clazz.defineMethod(c$, "outputQuaternionFrame", +function(ptCenter, ptX, ptY, ptZ, xScale, yScale, zScale){ +this.tempQ1.setT(ptX); +this.tempQ2.setT(ptY); +var a = JU.Quat.getQuaternionFrame(ptCenter, this.tempQ1, this.tempQ2).toAxisAngle4f(); +if (!Float.isNaN(a.x)) { +this.tempQ1.set(a.x, a.y, a.z); +this.outputRotation(a); +}var sx = (ptX.distance(ptCenter) * xScale); +var sy = (ptY.distance(ptCenter) * yScale); +var sz = (ptZ.distance(ptCenter) * zScale); +this.outputAttr("scale", sx, sy, sz); +}, "JU.P3,JU.P3,JU.P3,JU.P3,~N,~N,~N"); +Clazz.defineMethod(c$, "outputChildShapeStart", +function(){ +this.outputChildStart(); +this.outputShapeStart(); +}); +Clazz.defineMethod(c$, "outputChildStart", +function(){ +this.output(" children["); +}); +Clazz.defineMethod(c$, "outputShapeStart", +function(){ +this.output(" Shape{geometry "); +}); +Clazz.defineMethod(c$, "outputDefChildFaceSet", +function(child){ +if (child != null) this.output("DEF " + child + " "); +this.outputFaceSetStart(); +}, "~S"); +Clazz.defineMethod(c$, "outputFaceSetStart", +function(){ +this.output("IndexedFaceSet {"); +}); +Clazz.defineMethod(c$, "outputFaceSetClose", +function(){ +this.output("}\n"); +}); +Clazz.defineMethod(c$, "outputUseChildClose", +function(child){ +this.output(child); +}, "~S"); +Clazz.defineMethod(c$, "outputChildShapeClose", +function(){ +this.outputShapeClose(); +this.outputChildClose(); +}); +Clazz.defineMethod(c$, "outputChildClose", +function(){ +this.output("]"); +}); +Clazz.defineMethod(c$, "outputShapeClose", +function(){ +this.output("}"); +}); +Clazz.defineMethod(c$, "outputCloseTag", +function(){ +}); +Clazz.overrideMethod(c$, "outputCircle", +function(pt1, pt2, radius, colix, doFill){ +if (doFill) { +this.pushMatrix(); +this.tempV1.ave(pt1, pt2); +this.outputAttr("translation", this.tempV1.x, this.tempV1.y, this.tempV1.z); +this.output(" children [ Billboard{axisOfRotation 0 0 0 children [ Transform{rotation 1 0 0 1.5708"); +var height = (pt1.distance(pt2)); +this.outputAttr("scale", radius, height, radius); +this.outputCylinderChildScaled(colix, 2); +this.output("}] }]\n"); +this.popMatrix(); +return; +}var child = this.getDef("C" + colix + "_" + radius); +this.pushMatrix(); +this.outputTransRot(pt1, pt2, 0, 0, 1); +this.outputAttr("scale", radius, radius, radius); +this.output(" children ["); +if (child.charAt(0) == '_') { +this.output("DEF " + child); +this.output(" Billboard{axisOfRotation 0 0 0 children [ Transform{children["); +this.output(" Shape{"); +this.output("geometry Extrusion{beginCap FALSE convex FALSE endCap FALSE creaseAngle 1.57"); +this.output(" crossSection ["); +var rpd = 0.017453292; +var scale = 0.02 / radius; +for (var i = 0; i <= 360; i += 10) { +this.output(J["export"].___Exporter.round(Math.cos(i * rpd) * scale) + " "); +this.output(J["export"].___Exporter.round(Math.sin(i * rpd) * scale) + " "); +} +this.output("] spine ["); +for (var i = 0; i <= 360; i += 10) { +this.output(J["export"].___Exporter.round(Math.cos(i * rpd)) + " "); +this.output(J["export"].___Exporter.round(Math.sin(i * rpd)) + " 0 "); +} +this.output("]"); +this.output("}"); +this.outputAppearance(colix, false); +this.output("}"); +this.output("]} ]}"); +} else { +this.output(child); +}this.output("]"); +this.popMatrix(); +}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputCone", +function(ptBase, ptTip, radius, colix){ +var height = (ptBase.distance(ptTip)); +this.pushMatrix(); +this.outputTransRot(ptBase, ptTip, 0, 1, 0); +this.outputAttr("scale", radius, height, radius); +this.outputCloseTag(); +this.outputChildShapeStart(); +var child = this.getDef("c"); +if (child.charAt(0) == '_') { +this.outputDefChildFaceSet(child); +this.outputConeGeometry(true); +this.outputFaceSetClose(); +} else { +this.outputUseChildClose(child); +}this.outputAppearance(colix, false); +this.outputChildShapeClose(); +this.popMatrix(); +}, "JU.P3,JU.P3,~N,~N"); +Clazz.defineMethod(c$, "outputConeGeometry", +function(addBase){ +var ndeg = 10; +var n = Clazz.doubleToInt(360 / ndeg); +var vertexCount = n + (addBase ? 2 : 1); +var faces = JU.AU.newInt2(n * (addBase ? 2 : 1)); +for (var i = 0, fpt = 0; i < n; i++) { +faces[fpt++] = Clazz.newIntArray(-1, [i, (i + n - 1) % n, n]); +if (addBase) faces[fpt++] = Clazz.newIntArray(-1, [i, (i + 1) % n, n + 1]); +} +var vertexes = new Array(vertexCount); +for (var i = 0; i < n; i++) { +var x = (Math.cos(i * ndeg / 180. * 3.141592653589793)); +var y = (Math.sin(i * ndeg / 180. * 3.141592653589793)); +vertexes[i] = JU.P3.new3(x, -0.5, y); +} +vertexes[n++] = JU.P3.new3(0, 0.5, 0); +if (addBase) vertexes[n++] = JU.P3.new3(0, -0.5, 0); +this.outputGeometry(vertexes, null, null, faces, null, vertexCount, faces.length, null, 3, null, null, null); +}, "~B"); +Clazz.overrideMethod(c$, "outputCylinder", +function(ptCenter, pt1, pt2, colix, endcaps, radius, ptX, ptY, checkRadius){ +var height = (pt1.distance(pt2)); +if (radius < 0.01 || height == 0) return false; +this.pushMatrix(); +if (ptX == null) { +this.outputTransRot(pt1, pt2, 0, 1, 0); +this.outputAttr("scale", radius, height, radius); +} else { +this.outputAttrPt("translation", ptCenter); +this.outputQuaternionFrame(ptCenter, ptY, pt1, ptX, 2, 2, 2); +pt1.set(0, 0, -0.5); +pt2.set(0, 0, 0.5); +}this.outputCloseTag(); +this.outputCylinderChildScaled(colix, endcaps); +this.popMatrix(); +if (radius > 0.1) switch (endcaps) { +case 3: +this.outputSphere(pt1, radius * 1.01, colix, checkRadius); +case 5: +case 4: +this.outputSphere(pt2, radius * 1.01, colix, checkRadius); +break; +case 2: +break; +} +return true; +}, "JU.P3,JU.P3,JU.P3,~N,~N,~N,JU.P3,JU.P3,~B"); +Clazz.defineMethod(c$, "outputCylinderChildScaled", +function(colix, endcaps){ +this.outputChildShapeStart(); +var child = this.getDef("C" + "_" + endcaps); +if (child.charAt(0) == '_') { +this.outputDefChildFaceSet(child); +this.outputCylinderGeometry(endcaps); +this.outputFaceSetClose(); +} else { +this.outputUseChildClose(child); +}this.outputAppearance(colix, false); +this.outputChildShapeClose(); +}, "~N,~N"); +Clazz.defineMethod(c$, "outputCylinderGeometry", +function(endcaps){ +var ndeg = 10; +var n = Clazz.doubleToInt(360 / ndeg); +var vertexCount = n * 2; +var addEndcaps = false; +switch (endcaps) { +case 3: +case 5: +case 4: +case 2: +vertexCount += 2; +addEndcaps = true; +break; +} +var faces = JU.AU.newInt2(n * (addEndcaps ? 4 : 2)); +for (var i = 0, fpt = 0; i < n; i++) { +faces[fpt++] = Clazz.newIntArray(-1, [i, (i + 1) % n, i + n]); +faces[fpt++] = Clazz.newIntArray(-1, [(i + 1) % n, (i + 1) % n + n, i + n]); +if (addEndcaps) { +faces[fpt++] = Clazz.newIntArray(-1, [i, (i + n - 1) % n, vertexCount - 2]); +faces[fpt++] = Clazz.newIntArray(-1, [i + n, (i + n + 1) % n + n, vertexCount - 1]); +}} +var vertexes = new Array(vertexCount); +for (var i = 0; i < n; i++) { +var x = (Math.cos(i * ndeg / 180. * 3.141592653589793)); +var y = (Math.sin(i * ndeg / 180. * 3.141592653589793)); +vertexes[i] = JU.P3.new3(x, 0.5, y); +} +for (var i = 0; i < n; i++) { +var x = (Math.cos((i + 0.5) * ndeg / 180 * 3.141592653589793)); +var y = (Math.sin((i + 0.5) * ndeg / 180 * 3.141592653589793)); +vertexes[i + n] = JU.P3.new3(x, -0.5, y); +} +if (addEndcaps) { +vertexes[vertexCount - 2] = JU.P3.new3(0, 0.5, 0); +vertexes[vertexCount - 1] = JU.P3.new3(0, -0.5, 0); +}this.outputGeometry(vertexes, null, null, faces, null, vertexCount, faces.length, null, 3, null, null, null); +}, "~N"); +Clazz.overrideMethod(c$, "outputSphere", +function(ptCenter, radius, colix, checkRadius){ +var check = J["export"].___Exporter.round(ptCenter) + (checkRadius ? " " + Clazz.floatToInt(radius * 100) : ""); +if (this.htSpheresRendered.get(check) != null) return; +this.htSpheresRendered.put(check, Boolean.TRUE); +this.outputSphereChildScaled(ptCenter, radius, null, colix); +}, "JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputEllipsoid", +function(ptCenter, points, colix){ +this.outputSphereChildScaled(ptCenter, 1.0, points, colix); +}, "JU.P3,~A,~N"); +Clazz.defineMethod(c$, "outputSphereChildScaled", +function(ptCenter, radius, points, colix){ +this.pushMatrix(); +this.outputAttrPt("translation", ptCenter); +if (points == null) this.outputAttr("scale", radius, radius, radius); + else this.outputQuaternionFrame(ptCenter, points[1], points[3], points[5], 1, 1, 1); +this.outputCloseTag(); +this.outputChildShapeStart(); +var child = this.getDef("S"); +if (child.charAt(0) == '_') { +this.outputDefChildFaceSet(child); +this.outputSphereGeometry(); +this.outputFaceSetClose(); +} else { +this.outputUseChildClose(child); +}this.outputAppearance(colix, false); +this.outputChildShapeClose(); +this.popMatrix(); +}, "JU.P3,~N,~A,~N"); +Clazz.defineMethod(c$, "outputSphereGeometry", +function(){ +var vertices = JU.Geodesic.getVertexVectors(); +var nVertices = 162; +var faceList = JU.Geodesic.getFaceVertexes(2); +var nFaces = Clazz.doubleToInt(faceList.length / 3); +var indices = Clazz.newIntArray (nFaces, 3, 0); +for (var i = 0, p = 0; i < nFaces; i++) for (var j = 0; j < 3; j++) indices[i][j] = faceList[p++]; + + +this.outputGeometry(vertices, null, null, indices, null, nVertices, nFaces, null, 3, null, null, null); +}); +Clazz.overrideMethod(c$, "outputSolidPlate", +function(tempP1, tempP2, tempP3, colix){ +if (this.plateVertices == null) { +this.plateVertices = new Array(6); +for (var i = 0; i < 6; i++) this.plateVertices[i] = new JU.P3(); + +this.plateIndices = Clazz.newArray(-1, [ Clazz.newIntArray(-1, [0, 1, 2]), Clazz.newIntArray(-1, [5, 4, 3]), Clazz.newIntArray(-1, [0, 3, 1]), Clazz.newIntArray(-1, [1, 3, 4]), Clazz.newIntArray(-1, [1, 4, 2]), Clazz.newIntArray(-1, [2, 4, 5]), Clazz.newIntArray(-1, [2, 5, 0]), Clazz.newIntArray(-1, [0, 5, 3])]); +}JU.Measure.calcNormalizedNormal(tempP1, tempP2, tempP3, this.tempV1, this.tempV2); +this.tempV1.scale(0.2); +this.plateVertices[0].setT(tempP1); +this.plateVertices[1].setT(tempP2); +this.plateVertices[2].setT(tempP3); +for (var i = 0; i < 3; i++) this.plateVertices[i].add(this.tempV1); + +this.tempV1.scale(-2); +for (var i = 3; i < 6; i++) this.plateVertices[i].add2(this.plateVertices[i - 3], this.tempV1); + +this.outputSurface(this.plateVertices, null, null, this.plateIndices, this.plateColixes, 6, 8, 8, null, 3, colix, null, null, null); +}, "JU.P3,JU.P3,JU.P3,~N"); +Clazz.overrideMethod(c$, "outputSurface", +function(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, nTriangles, bsPolygons, faceVertexMax, colix, colorList, htColixes, offset){ +this.outputShapeStart(); +this.outputDefChildFaceSet(null); +this.outputGeometry(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, bsPolygons, faceVertexMax, colorList, htColixes, offset); +this.outputFaceSetClose(); +this.outputAppearance(colix, false); +this.outputShapeClose(); +}, "~A,~A,~A,~A,~A,~N,~N,~N,JU.BS,~N,~N,JU.Lst,java.util.Map,JU.P3"); +Clazz.defineMethod(c$, "outputGeometry", +function(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, bsPolygons, faceVertexMax, colorList, htColixes, offset){ +if (polygonColixes == null) this.output(" creaseAngle 0.5 \n"); + else this.output(" colorPerVertex FALSE\n"); +this.output("coord Coordinate {\npoint [\n"); +this.outputVertices(vertices, nVertices, offset); +this.output(" ]\n"); +this.output(" }\n"); +this.output(" coordIndex [\n"); +var map = Clazz.newIntArray (nVertices, 0); +this.getCoordinateMap(vertices, map, null); +this.outputIndices(indices, map, nPolygons, bsPolygons, faceVertexMax); +this.output(" ]\n"); +if (normals != null) { +var vNormals = new JU.Lst(); +map = this.getNormalMap(normals, nVertices, null, vNormals); +this.output(" solid FALSE\n normalPerVertex TRUE\n normal Normal {\n vector [\n"); +this.outputNormals(vNormals); +this.output(" ]\n"); +this.output(" }\n"); +this.output(" normalIndex [\n"); +this.outputIndices(indices, map, nPolygons, bsPolygons, faceVertexMax); +this.output(" ]\n"); +}map = null; +if (colorList != null) { +this.output(" color Color { color [\n"); +this.outputColors(colorList); +this.output(" ] } \n"); +this.output(" colorIndex [\n"); +this.outputColorIndices(indices, nPolygons, bsPolygons, faceVertexMax, htColixes, colixes, polygonColixes); +this.output(" ]\n"); +}}, "~A,~A,~A,~A,~A,~N,~N,JU.BS,~N,JU.Lst,java.util.Map,JU.P3"); +Clazz.overrideMethod(c$, "outputFace", +function(face, map, faceVertexMax){ +this.output(map[face[0]] + " " + map[face[1]] + " " + map[face[2]] + " -1\n"); +if (faceVertexMax == 4 && face.length == 4) this.output(map[face[0]] + " " + map[face[2]] + " " + map[face[3]] + " -1\n"); +}, "~A,~A,~N"); +Clazz.defineMethod(c$, "outputNormals", +function(vNormals){ +var n = vNormals.size(); +for (var i = 0; i < n; i++) { +this.output(vNormals.get(i)); +} +}, "JU.Lst"); +Clazz.defineMethod(c$, "outputColors", +function(colorList){ +var nColors = colorList.size(); +for (var i = 0; i < nColors; i++) { +var color = this.rgbFractionalFromColix(colorList.get(i).shortValue()); +this.output(" "); +this.output(color); +this.output("\n"); +} +}, "JU.Lst"); +Clazz.defineMethod(c$, "outputColorIndices", +function(indices, nPolygons, bsPolygons, faceVertexMax, htColixes, colixes, polygonColixes){ +var isAll = (bsPolygons == null); +var i0 = (isAll ? nPolygons - 1 : bsPolygons.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsPolygons.nextSetBit(i + 1))) { +if (polygonColixes == null) { +this.output(htColixes.get(Short.$valueOf(colixes[indices[i][0]])) + " " + htColixes.get(Short.$valueOf(colixes[indices[i][1]])) + " " + htColixes.get(Short.$valueOf(colixes[indices[i][2]])) + " -1\n"); +if (faceVertexMax == 4 && indices[i].length == 4) this.output(htColixes.get(Short.$valueOf(colixes[indices[i][0]])) + " " + htColixes.get(Short.$valueOf(colixes[indices[i][2]])) + " " + htColixes.get(Short.$valueOf(colixes[indices[i][3]])) + " -1\n"); +} else { +this.output(htColixes.get(Short.$valueOf(polygonColixes[i])) + "\n"); +}} +}, "~A,~N,JU.BS,~N,java.util.Map,~A,~A"); +Clazz.overrideMethod(c$, "outputTriangle", +function(pt1, pt2, pt3, colix){ +this.output("Shape{geometry IndexedFaceSet{ "); +this.outputTriangleGeometry(pt1, pt2, pt3, colix); +this.output("}\n"); +this.outputAppearance(colix, false); +this.output("}\n"); +}, "JU.T3,JU.T3,JU.T3,~N"); +Clazz.defineMethod(c$, "outputTriangleGeometry", +function(pt1, pt2, pt3, colix){ +if (this.oneFace == null) { +this.oneFace = Clazz.newArray(-1, [ Clazz.newIntArray(-1, [0, 1, 2])]); +this.threeVertices = Clazz.newArray(-1, [this.tempP1, this.tempP2, this.tempP3]); +}this.threeVertices[0].setT(pt1); +this.threeVertices[1].setT(pt2); +this.threeVertices[2].setT(pt3); +this.outputGeometry(this.threeVertices, null, null, this.oneFace, null, 3, 1, null, 3, null, null, null); +}, "JU.T3,JU.T3,JU.T3,~N"); +Clazz.overrideMethod(c$, "outputTextPixel", +function(pt, argb){ +}, "JU.P3,~N"); +Clazz.overrideMethod(c$, "plotText", +function(x, y, z, colix, text, font3d){ +this.pushMatrix(); +this.tempP3.set(x, y, this.fixScreenZ(z)); +this.tm.unTransformPoint(this.tempP3, this.tempP1); +this.outputAttrPt("translation", this.tempP1); +this.setFont(colix, text, font3d); +this.outputChildStart(); +if (this.fontChild.charAt(0) == '_') { +this.output("DEF " + this.fontChild + " Billboard{"); +this.outputAttr("axisOfRotation", 0, 0, 0); +this.outputChildStart(); +this.pushMatrix(); +this.outputChildShapeStart(); +this.output("Text{fontStyle "); +var fontstyle = this.getDef("F" + this.fontFace + this.fontStyle); +if (fontstyle.charAt(0) == '_') { +this.output("DEF " + fontstyle + " FontStyle{size " + this.fontSize + " family \"" + this.fontFace + "\" style \"" + this.fontStyle + "\"}"); +} else { +this.output(fontstyle); +}this.output(" string " + JU.PT.esc(text) + "}"); +this.outputAppearance(colix, true); +this.outputChildShapeClose(); +this.popMatrix(); +this.outputChildClose(); +this.output("}"); +} else { +this.output(this.fontChild); +}this.outputChildClose(); +this.popMatrix(); +}, "~N,~N,~N,~N,~S,JU.Font"); +Clazz.defineMethod(c$, "setFont", +function(colix, text, font3d){ +this.fontStyle = font3d.fontStyle.toUpperCase(); +this.fontFace = font3d.fontFace.toUpperCase(); +this.fontFace = (this.fontFace.equals("MONOSPACED") ? "TYPEWRITER" : this.fontFace.equals("SERIF") ? "SERIF" : "Arial"); +this.fontSize = font3d.fontSize * 0.015; +this.fontChild = this.getDef("T" + colix + this.fontFace + this.fontStyle + this.fontSize + "_" + text); +}, "~N,~S,JU.Font"); +Clazz.defineMethod(c$, "getDef", +function(key){ +return (this.useTable == null ? "_" : this.useTable.getDef(key)); +}, "~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/_X3dExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/_X3dExporter.js new file mode 100755 index 000000000000..9c0dadd9a2c3 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/_X3dExporter.js @@ -0,0 +1,231 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export._VrmlExporter"], "J.export._X3dExporter", ["JU.Lst", "$.PT", "J.export.UseTable", "JV.Viewer"], function(){ +var c$ = Clazz.declareType(J["export"], "_X3dExporter", J["export"]._VrmlExporter); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor(this, J["export"]._X3dExporter); +this.useTable = new J["export"].UseTable("USE='"); +}); +Clazz.overrideMethod(c$, "outputHeader", +function(){ +this.output("\n"); +this.output("\n"); +this.output(" \n"); +this.output("\n"); +this.output("\n"); +this.output("\n"); +this.output("\n"); +this.output("\n"); +this.output("\n"); +this.output("\n"); +this.output("\n"); +this.output(" \n"); +}); +Clazz.overrideMethod(c$, "outputAppearance", +function(colix, isText){ +var def = this.getDef((isText ? "T" : "") + colix); +this.output("\n"); +this.output(" \n"); +this.output("\n"); +this.output(" \n"); +var angle = this.getViewpoint(); +this.output(" \n"); +this.output("\n \n\n"); +this.commentChar = null; +this.outputInitialTransform(); +}); +Clazz.overrideMethod(c$, "outputAttrPt", +function(attr, pt){ +this.output(" " + attr + "='" + pt.x + " " + pt.y + " " + pt.z + "'"); +}, "~S,JU.T3"); +Clazz.overrideMethod(c$, "pushMatrix", +function(){ +this.output(" \n"); +}); +Clazz.overrideMethod(c$, "outputAttr", +function(attr, x, y, z){ +this.output(" " + attr + "='" + J["export"].___Exporter.round(x) + " " + J["export"].___Exporter.round(y) + " " + J["export"].___Exporter.round(z) + "'"); +}, "~S,~N,~N,~N"); +Clazz.overrideMethod(c$, "outputRotation", +function(a){ +this.output(" rotation='" + a.x + " " + a.y + " " + a.z + " " + a.angle + "'"); +}, "JU.A4"); +Clazz.overrideMethod(c$, "outputFooter", +function(){ +this.useTable = null; +this.popMatrix(); +this.popMatrix(); +this.output(" "); +}, "~N,~B"); +Clazz.overrideMethod(c$, "outputChildShapeStart", +function(){ +this.outputShapeStart(); +}); +Clazz.overrideMethod(c$, "outputShapeStart", +function(){ +this.output(" "); + else this.output(color + "' transparency='" + J["export"].___Exporter.translucencyFractionalFromColix(colix) + "'/>"); +} else this.output(def + ">"); +this.output(" "); +this.outputFaceSetStart(); +}); +Clazz.overrideMethod(c$, "outputChildStart", +function(){ +}); +Clazz.overrideMethod(c$, "outputChildClose", +function(){ +}); +Clazz.overrideMethod(c$, "outputDefChildFaceSet", +function(child){ +if (child != null) this.output("DEF='" + child + "'"); +}, "~S"); +Clazz.overrideMethod(c$, "outputFaceSetStart", +function(){ +this.output(" \n"); +}); +Clazz.overrideMethod(c$, "outputCloseTag", +function(){ +this.output(">\n"); +}); +Clazz.overrideMethod(c$, "outputTriangle", +function(pt1, pt2, pt3, colix){ +this.output("\n"); +}); +Clazz.overrideMethod(c$, "outputUseChildClose", +function(child){ +this.output(child + "/>"); +}, "~S"); +Clazz.overrideMethod(c$, "outputChildShapeClose", +function(){ +this.outputShapeClose(); +}); +Clazz.overrideMethod(c$, "outputShapeClose", +function(){ +this.output(" \n"); +this.output(" \n"); +}, "JU.T3,JU.T3,JU.T3,~N"); +Clazz.overrideMethod(c$, "outputCircle", +function(pt1, pt2, radius, colix, doFill){ +if (doFill) { +this.pushMatrix(); +this.output("translation='"); +this.tempV1.ave(this.tempP3, pt1); +this.output(this.tempV1); +this.output("'>"); +this.output(" \n"); +this.outputAppearance(colix, false); +this.output("\n"); +this.output(" "); +this.pushMatrix(); +this.output("rotation='1 0 0 1.5708'"); +var height = pt1.distance(pt2); +this.outputAttr("scale", radius, height, radius); +this.output(">"); +this.outputCylinderChildScaled(colix, 2); +this.popMatrix(); +this.output(" "); +this.popMatrix(); +return; +}var child = this.getDef("C" + colix + "_" + radius); +this.pushMatrix(); +this.outputTransRot(this.tempP3, pt1, 0, 0, 1); +this.tempP3.set(1, 1, 1); +this.tempP3.scale(radius); +this.outputAttr("scale", this.tempP3.x, this.tempP3.y, this.tempP3.z); +this.output(">\n"); +this.pushMatrix(); +this.output(" \n"); +this.popMatrix(); +}, "JU.P3,JU.P3,~N,~N,~B"); +Clazz.overrideMethod(c$, "outputGeometry", +function(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, bsPolygons, faceVertexMax, colorList, htColixes, offset){ +this.output(" creaseAngle='0.5'\n"); +if (polygonColixes != null) this.output(" colorPerVertex='false'\n"); +this.output("coordIndex='\n"); +var map = Clazz.newIntArray (nVertices, 0); +this.getCoordinateMap(vertices, map, null); +this.outputIndices(indices, map, nPolygons, bsPolygons, faceVertexMax); +this.output("'\n"); +var vNormals = null; +if (normals != null) { +vNormals = new JU.Lst(); +map = this.getNormalMap(normals, nVertices, null, vNormals); +this.output(" solid='false'\n normalPerVertex='true'\n normalIndex='\n"); +this.outputIndices(indices, map, nPolygons, bsPolygons, faceVertexMax); +this.output("'\n"); +}map = null; +if (colorList != null) { +this.output(" colorIndex='\n"); +this.outputColorIndices(indices, nPolygons, bsPolygons, faceVertexMax, htColixes, colixes, polygonColixes); +this.output("'\n"); +}this.output(">\n"); +this.output(""); +this.popMatrix(); +} else { +this.output(child + ">"); +}this.output(" "); +this.outputAppearance(colix, false); +this.output(" \n"); +if (normals != null) { +this.output(" \n"); +}if (colorList != null) { +this.output(" \n"); +}}, "~A,~A,~A,~A,~A,~N,~N,JU.BS,~N,JU.Lst,java.util.Map,JU.P3"); +Clazz.overrideMethod(c$, "outputTextPixel", +function(pt, argb){ +}, "JU.P3,~N"); +Clazz.overrideMethod(c$, "plotText", +function(x, y, z, colix, text, font3d){ +}, "~N,~N,~N,~N,~S,JU.Font"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/__CartesianExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/__CartesianExporter.js new file mode 100755 index 000000000000..340390e6ffb4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/__CartesianExporter.js @@ -0,0 +1,210 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export.___Exporter", "JU.A4", "$.M4"], "J.export.__CartesianExporter", ["java.util.Hashtable", "JU.M3", "$.P3", "JU.C", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.viewpoint = null; +this.canCapCylinders = false; +this.noColor = false; +this.sphereMatrix = null; +Clazz.instantialize(this, arguments);}, J["export"], "__CartesianExporter", J["export"].___Exporter); +Clazz.prepareFields (c$, function(){ +this.viewpoint = new JU.A4(); +this.sphereMatrix = new JU.M4(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J["export"].__CartesianExporter, []); +this.exportType = 1; +this.lineWidthMad = 100; +}); +Clazz.defineMethod(c$, "getModelCenter", +function(){ +return this.referenceCenter; +}); +Clazz.defineMethod(c$, "getCameraPosition", +function(){ +var ptCamera = new JU.P3(); +var pt = JU.P3.new3(Clazz.doubleToInt(this.screenWidth / 2), Clazz.doubleToInt(this.screenHeight / 2), 0); +this.tm.unTransformPoint(pt, ptCamera); +ptCamera.sub(this.center); +this.tempP3.set(Clazz.doubleToInt(this.screenWidth / 2), Clazz.doubleToInt(this.screenHeight / 2), this.cameraDistance * this.scalePixelsPerAngstrom); +this.tm.unTransformPoint(this.tempP3, this.tempP3); +this.tempP3.sub(this.center); +ptCamera.add(this.tempP3); +return this.cameraPosition; +}); +Clazz.defineMethod(c$, "setTempPoints", +function(ptA, ptB, isCartesian){ +if (isCartesian) { +this.tempP1.setT(ptA); +this.tempP2.setT(ptB); +} else { +this.tm.unTransformPoint(ptA, this.tempP1); +this.tm.unTransformPoint(ptB, this.tempP2); +}}, "JU.P3,JU.P3,~B"); +Clazz.defineMethod(c$, "getCoordinateMap", +function(vertices, coordMap, bsValid){ +var n = 0; +for (var i = 0; i < coordMap.length; i++) { +if (bsValid != null && !bsValid.get(i) || Float.isNaN(vertices[i].x)) { +if (bsValid != null) bsValid.clear(i); +continue; +}coordMap[i] = n++; +} +return n; +}, "~A,~A,JU.BS"); +Clazz.defineMethod(c$, "getNormalMap", +function(normals, nNormals, bsValid, vNormals){ +var htNormals = new java.util.Hashtable(); +var normalMap = Clazz.newIntArray (nNormals, 0); +for (var i = 0; i < nNormals; i++) { +var s; +if (bsValid != null && !bsValid.get(i) || Float.isNaN(normals[i].x)) { +if (bsValid != null) bsValid.clear(i); +continue; +}s = this.getTriad(normals[i]) + "\n"; +if (htNormals.containsKey(s)) { +normalMap[i] = htNormals.get(s).intValue(); +} else { +normalMap[i] = vNormals.size(); +vNormals.addLast(s); +htNormals.put(s, Integer.$valueOf(normalMap[i])); +}} +return normalMap; +}, "~A,~N,JU.BS,JU.Lst"); +Clazz.defineMethod(c$, "outputIndices", +function(indices, map, nPolygons, bsPolygons, faceVertexMax){ +var isAll = (bsPolygons == null); +var i0 = (isAll ? nPolygons - 1 : bsPolygons.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsPolygons.nextSetBit(i + 1))) this.outputFace(indices[i], map, faceVertexMax); + +}, "~A,~A,~N,JU.BS,~N"); +Clazz.overrideMethod(c$, "plotText", +function(x, y, z, colix, text, font3d){ +this.gdata.plotText(x, y, z, this.gdata.getColorArgbOrGray(colix), 0, text, font3d, this.export3D); +}, "~N,~N,~N,~N,~S,JU.Font"); +Clazz.overrideMethod(c$, "plotImage", +function(x, y, z, image, bgcolix, width, height){ +}, "~N,~N,~N,~O,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawAtom", +function(atom, radius){ +if (JU.Logger.debugging) this.outputComment("atom " + atom); +var colix = atom.colixAtom; +this.outputSphere(atom, radius == 0 ? atom.madAtom / 2000 : radius, colix, JU.C.isColixTranslucent(colix)); +}, "JM.Atom,~N"); +Clazz.overrideMethod(c$, "drawCircle", +function(x, y, z, diameter, colix, doFill){ +this.tempP3.set(x, y, z); +this.tm.unTransformPoint(this.tempP3, this.tempP1); +var radius = this.vwr.tm.unscaleToScreen(z, diameter) / 2; +this.tempP3.set(x, y, z + 1); +this.tm.unTransformPoint(this.tempP3, this.tempP3); +this.outputCircle(this.tempP1, this.tempP3, radius, colix, doFill); +}, "~N,~N,~N,~N,~N,~B"); +Clazz.overrideMethod(c$, "drawEllipse", +function(ptCenter, ptX, ptY, colix, doFill){ +this.tempV1.sub2(ptX, ptCenter); +this.tempV2.sub2(ptY, ptCenter); +this.tempV2.cross(this.tempV1, this.tempV2); +this.tempV2.normalize(); +this.tempV2.scale(doFill ? 0.002 : 0.005); +this.tempP1.sub2(ptCenter, this.tempV2); +this.tempP2.add2(ptCenter, this.tempV2); +return this.outputCylinder(ptCenter, this.tempP1, this.tempP2, colix, doFill ? 2 : 0, 1.01, ptX, ptY, true); +}, "JU.P3,JU.P3,JU.P3,~N,~B"); +Clazz.overrideMethod(c$, "drawPixel", +function(colix, x, y, z, scale){ +this.tempP3.set(x, y, z); +this.tm.unTransformPoint(this.tempP3, this.tempP1); +this.outputSphere(this.tempP1, 0.02 * scale, colix, true); +}, "~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawTextPixel", +function(argb, x, y, z){ +this.tempP3.set(x, y, z); +this.tm.unTransformPoint(this.tempP3, this.tempP1); +this.outputTextPixel(this.tempP1, argb); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillConeScreen", +function(colix, endcap, screenDiameter, screenBase, screenTip, isBarb){ +this.tm.unTransformPoint(screenBase, this.tempP1); +this.tm.unTransformPoint(screenTip, this.tempP2); +var radius = this.vwr.tm.unscaleToScreen(screenBase.z, screenDiameter) / 2; +if (radius < 0.05) radius = 0.05; +this.outputCone(this.tempP1, this.tempP2, radius, colix); +}, "~N,~N,~N,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "drawCylinder", +function(ptA, ptB, colix1, colix2, endcaps, mad, bondOrder){ +this.setTempPoints(ptA, ptB, bondOrder < 0); +var radius = mad / 2000; +if (JU.Logger.debugging) this.outputComment("bond " + ptA + " " + ptB); +if (colix1 == colix2 || this.noColor) { +this.outputCylinder(null, this.tempP1, this.tempP2, colix1, endcaps, radius, null, null, bondOrder != -1); +} else { +this.tempV2.ave(this.tempP2, this.tempP1); +this.tempP3.setT(this.tempV2); +if (this.solidOnly && endcaps == 0) endcaps = 2; + else if (this.canCapCylinders && endcaps == 3) endcaps = (this.solidOnly ? 5 : 4); +this.outputCylinder(null, this.tempP3, this.tempP1, colix1, (endcaps == 3 ? 0 : endcaps), radius, null, null, true); +this.outputCylinder(null, this.tempP3, this.tempP2, colix2, (endcaps == 3 ? 0 : endcaps), radius, null, null, true); +if (endcaps == 3) { +this.outputSphere(this.tempP1, radius * 1.01, colix1, bondOrder != -2); +this.outputSphere(this.tempP2, radius * 1.01, colix2, bondOrder != -2); +}}}, "JU.P3,JU.P3,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillCylinderScreenMad", +function(colix, endcaps, mad, screenA, screenB){ +var radius = mad / 2000; +this.setTempPoints(screenA, screenB, false); +this.outputCylinder(null, this.tempP1, this.tempP2, colix, endcaps, radius, null, null, true); +}, "~N,~N,~N,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "fillCylinderScreen", +function(colix, endcaps, screenDiameter, screenA, screenB, ptA, ptB, radius){ +if (ptA != null) { +this.drawCylinder(ptA, ptB, colix, colix, endcaps, Math.round(radius * 2000), -1); +return; +}var mad = (screenDiameter < 0 ? -screenDiameter * 10 : Math.round(this.vwr.tm.unscaleToScreen((screenA.z + screenB.z) / 2, screenDiameter)) * 1000); +this.fillCylinderScreenMad(colix, endcaps, mad, screenA, screenB); +}, "~N,~N,~N,JU.P3,JU.P3,JU.P3,JU.P3,~N"); +Clazz.overrideMethod(c$, "fillEllipsoid", +function(center, points, colix, x, y, z, diameter, toEllipsoidal, coef, deriv, octantPoints){ +this.outputEllipsoid(center, points, colix); +}, "JU.P3,~A,~N,~N,~N,~N,~N,JU.M3,~A,JU.M4,~A"); +Clazz.overrideMethod(c$, "fillSphere", +function(colix, diameter, pt){ +this.tm.unTransformPoint(pt, this.tempP1); +this.outputSphere(this.tempP1, this.vwr.tm.unscaleToScreen(pt.z, diameter) / 2, colix, true); +}, "~N,~N,JU.P3"); +Clazz.overrideMethod(c$, "fillTriangle", +function(colix, ptA, ptB, ptC, twoSided){ +this.tm.unTransformPoint(ptA, this.tempP1); +this.tm.unTransformPoint(ptB, this.tempP2); +this.tm.unTransformPoint(ptC, this.tempP3); +if (this.solidOnly) { +this.outputSolidPlate(this.tempP1, this.tempP2, this.tempP3, colix); +} else { +this.outputTriangle(this.tempP1, this.tempP2, this.tempP3, colix); +if (twoSided) this.outputTriangle(this.tempP1, this.tempP3, this.tempP2, colix); +}}, "~N,JU.T3,JU.T3,JU.T3,~B"); +Clazz.defineMethod(c$, "outputSolidPlate", +function(tempP1, tempP2, tempP3, colix){ +}, "JU.P3,JU.P3,JU.P3,~N"); +Clazz.defineMethod(c$, "setSphereMatrix", +function(center, rx, ry, rz, a, sphereMatrix){ +if (a != null) { +var m = new JU.M3(); +m.m00 = rx; +m.m11 = ry; +m.m22 = rz; +var mq = new JU.M3().setAA(a); +mq.mul(m); +sphereMatrix.setToM3(mq); +} else { +sphereMatrix.setIdentity(); +sphereMatrix.m00 = rx; +sphereMatrix.m11 = ry; +sphereMatrix.m22 = rz; +}sphereMatrix.m03 = center.x; +sphereMatrix.m13 = center.y; +sphereMatrix.m23 = center.z; +sphereMatrix.m33 = 1; +}, "JU.T3,~N,~N,~N,JU.A4,JU.M4"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/__RayTracerExporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/__RayTracerExporter.js new file mode 100755 index 000000000000..08ea30d832bd --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/__RayTracerExporter.js @@ -0,0 +1,139 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["J.export.___Exporter"], "J.export.__RayTracerExporter", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isSlabEnabled = false; +this.minScreenDimension = 0; +this.wasPerspective = false; +Clazz.instantialize(this, arguments);}, J["export"], "__RayTracerExporter", J["export"].___Exporter); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J["export"].__RayTracerExporter, []); +this.exportType = 2; +this.lineWidthMad = 2; +}); +Clazz.defineMethod(c$, "initOutput", +function(vwr, privateKey, g3d, params){ +this.wasPerspective = vwr.tm.perspectiveDepth; +if (Clazz.superCall(this, J["export"].__RayTracerExporter, "initOutput", [vwr, privateKey, g3d, params])) { +vwr.tm.perspectiveDepth = false; +if (this.wasPerspective) vwr.shm.finalizeAtoms(null, false); +return true; +}return false; +}, "JV.Viewer,~N,JU.GData,java.util.Map"); +Clazz.defineMethod(c$, "finalizeOutput2", +function(){ +this.vwr.tm.perspectiveDepth = this.wasPerspective; +return Clazz.superCall(this, J["export"].__RayTracerExporter, "finalizeOutput2", []); +}); +Clazz.overrideMethod(c$, "outputVertex", +function(pt, offset){ +J["export"].___Exporter.setTempVertex(pt, offset, this.tempP1); +this.tm.transformPt3f(this.tempP1, this.tempP1); +this.output(this.tempP1); +}, "JU.T3,JU.T3"); +Clazz.defineMethod(c$, "getScreenNormal", +function(pt, normal, factor){ +if (Float.isNaN(normal.x)) { +this.tempP3.set(0, 0, 0); +return this.tempP3; +}this.tempP1.add2(pt, normal); +this.tm.transformPt3f(pt, this.tempP2); +this.tm.transformPt3f(this.tempP1, this.tempP3); +this.tempP3.sub(this.tempP2); +this.tempP3.scale(factor); +return this.tempP3; +}, "JU.T3,JU.T3,~N"); +Clazz.defineMethod(c$, "initVars", +function(){ +this.isSlabEnabled = this.tm.slabEnabled; +this.minScreenDimension = Math.min(this.screenWidth, this.screenHeight); +}); +Clazz.overrideMethod(c$, "drawAtom", +function(atom, radius){ +this.outputSphere(atom.sX, atom.sY, atom.sZ, atom.sD / 2, atom.colixAtom); +}, "JM.Atom,~N"); +Clazz.overrideMethod(c$, "drawCircle", +function(x, y, z, diameter, colix, doFill){ +var radius = diameter / 2; +this.outputCircle(x, y, z, radius, colix, doFill); +}, "~N,~N,~N,~N,~N,~B"); +Clazz.overrideMethod(c$, "drawEllipse", +function(ptAtom, ptX, ptY, colix, doFill){ +return false; +}, "JU.P3,JU.P3,JU.P3,~N,~B"); +Clazz.overrideMethod(c$, "drawPixel", +function(colix, x, y, z, scale){ +this.outputSphere(x, y, z, 0.75 * scale, colix); +}, "~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawTextPixel", +function(argb, x, y, z){ +this.outputTextPixel(x, y, this.fixScreenZ(z), argb); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillConeScreen", +function(colix, endcap, screenDiameter, screenBase, screenTip, isBarb){ +this.outputCone(screenBase, screenTip, screenDiameter / 2, colix, isBarb); +}, "~N,~N,~N,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "drawCylinder", +function(screenA, screenB, colix1, colix2, endcaps, madBond, bondOrder){ +if (colix1 == colix2) { +this.fillConicalCylinder(screenA, screenB, madBond, colix1, endcaps); +} else { +this.tempV2.ave(screenB, screenA); +this.tempP1.setT(this.tempV2); +this.fillConicalCylinder(screenA, this.tempP1, madBond, colix1, endcaps); +this.fillConicalCylinder(this.tempP1, screenB, madBond, colix2, endcaps); +}if (endcaps != 3) return; +var radius = this.vwr.tm.scaleToScreen(Clazz.floatToInt(screenA.z), madBond) / 2; +if (radius <= 1) return; +this.outputSphere(screenA.x, screenA.y, screenA.z, radius, colix1); +radius = this.vwr.tm.scaleToScreen(Clazz.floatToInt(screenB.z), madBond) / 2; +if (radius <= 1) return; +this.outputSphere(screenB.x, screenB.y, screenB.z, radius, colix2); +}, "JU.P3,JU.P3,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "fillConicalCylinder", +function(screenA, screenB, madBond, colix, endcaps){ +var radius1 = this.vwr.tm.scaleToScreen(Clazz.floatToInt(screenA.z), madBond) / 2; +if (radius1 == 0) return; +if (radius1 < 1) radius1 = 1; +if (screenA.distance(screenB) == 0) { +this.outputSphere(screenA.x, screenA.y, screenA.z, radius1, colix); +return; +}var radius2 = this.vwr.tm.scaleToScreen(Clazz.floatToInt(screenB.z), madBond) / 2; +if (radius2 == 0) return; +if (radius2 < 1) radius2 = 1; +this.outputCylinderConical(screenA, screenB, radius1, radius2, colix); +}, "JU.P3,JU.P3,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillCylinderScreenMad", +function(colix, endcaps, diameter, screenA, screenB){ +if (diameter == 0) return; +if (diameter < 1) diameter = 1; +var radius = diameter / 2; +if (screenA.distance(screenB) == 0) { +this.outputSphere(screenA.x, screenA.y, screenA.z, radius, colix); +return; +}this.outputCylinder(screenA, screenB, radius, colix, endcaps == 2); +if (endcaps != 3 || radius <= 1) return; +this.outputSphere(screenA.x, screenA.y, screenA.z, radius, colix); +this.outputSphere(screenB.x, screenB.y, screenB.z, radius, colix); +}, "~N,~N,~N,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "fillCylinderScreen", +function(colix, endcaps, screenDiameter, screenA, screenB, ptA, ptB, radius){ +this.fillCylinderScreenMad(colix, endcaps, screenDiameter, screenA, screenB); +}, "~N,~N,~N,JU.P3,JU.P3,JU.P3,JU.P3,~N"); +Clazz.overrideMethod(c$, "fillSphere", +function(colix, diameter, pt){ +this.outputSphere(pt.x, pt.y, pt.z, diameter / 2, colix); +}, "~N,~N,JU.P3"); +Clazz.overrideMethod(c$, "fillTriangle", +function(colix, ptA, ptB, ptC, twoSided){ +this.outputTriangle(ptA, ptB, ptC, colix); +}, "~N,JU.T3,JU.T3,JU.T3,~B"); +Clazz.overrideMethod(c$, "fillEllipsoid", +function(center, points, colix, x, y, z, diameter, toEllipsoidal, coef, deriv, octantPoints){ +var radius = diameter / 2; +if (radius == 0) return; +if (radius < 1) radius = 1; +this.outputEllipsoid(center, radius, coef, colix); +}, "JU.P3,~A,~N,~N,~N,~N,~N,JU.M3,~A,JU.M4,~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/export/___Exporter.js b/config/plugins/visualizations/jmol/static/j2s/J/export/___Exporter.js new file mode 100755 index 000000000000..ca04a9685d94 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/export/___Exporter.js @@ -0,0 +1,331 @@ +Clazz.declarePackage("J.export"); +Clazz.load(["JU.P3", "$.V3"], "J.export.___Exporter", ["java.util.Hashtable", "JU.AU", "$.Lst", "$.M3", "$.Quat", "$.SB", "JU.C", "$.Logger", "$.MeshSurface"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.solidOnly = false; +this.vwr = null; +this.tm = null; +this.privateKey = 0; +this.export3D = null; +this.out = null; +this.fileName = null; +this.commandLineOptions = null; +this.gdata = null; +this.backgroundColix = 0; +this.screenWidth = 0; +this.screenHeight = 0; +this.slabZ = 0; +this.depthZ = 0; +this.lightSource = null; +this.fixedRotationCenter = null; +this.referenceCenter = null; +this.cameraPosition = null; +this.cameraDistance = 0; +this.apertureAngle = 0; +this.scalePixelsPerAngstrom = 0; +this.exportScale = 1; +this.exportType = 0; +this.tempP1 = null; +this.tempP2 = null; +this.tempP3 = null; +this.center = null; +this.tempV1 = null; +this.tempV2 = null; +this.isWebGL = false; +this.commentChar = null; +this.tempC = null; +this.nText = 0; +this.nImage = 0; +this.lineWidthMad = 0; +Clazz.instantialize(this, arguments);}, J["export"], "___Exporter", null); +Clazz.prepareFields (c$, function(){ +this.tempP1 = new JU.P3(); +this.tempP2 = new JU.P3(); +this.tempP3 = new JU.P3(); +this.center = new JU.P3(); +this.tempV1 = new JU.V3(); +this.tempV2 = new JU.V3(); +this.tempC = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.defineMethod(c$, "initializeOutput", +function(vwr, privateKey, gdata, params){ +return this.initOutput(vwr, privateKey, gdata, params); +}, "JV.Viewer,~N,JU.GData,java.util.Map"); +Clazz.defineMethod(c$, "initOutput", +function(vwr, privateKey, g3d, params){ +this.vwr = vwr; +this.tm = vwr.tm; +this.isWebGL = params.get("type").equals("JS"); +this.gdata = g3d; +this.privateKey = privateKey; +this.backgroundColix = vwr.getObjectColix(0); +this.center.setT(this.tm.fixedRotationCenter); +this.exportScale = vwr.getFloat(570425357); +if (this.exportScale == 0) { +this.exportScale = 10; +}JU.Logger.info("__Exporter exportScale: " + this.exportScale); +if ((this.screenWidth <= 0) || (this.screenHeight <= 0)) { +this.screenWidth = vwr.getScreenWidth(); +this.screenHeight = vwr.getScreenHeight(); +}this.slabZ = g3d.slab; +this.depthZ = g3d.depth; +this.lightSource = g3d.getLightSource(); +var cameraFactors = vwr.tm.getCameraFactors(); +this.referenceCenter = cameraFactors[0]; +this.cameraPosition = cameraFactors[1]; +this.fixedRotationCenter = cameraFactors[2]; +this.cameraDistance = cameraFactors[3].x; +this.apertureAngle = cameraFactors[3].y; +this.scalePixelsPerAngstrom = cameraFactors[3].z; +this.out = params.get("outputChannel"); +this.commandLineOptions = params.get("params"); +if (this.out != null) this.fileName = this.out.getFileName(); +this.outputHeader(); +return true; +}, "JV.Viewer,~N,JU.GData,java.util.Map"); +Clazz.defineMethod(c$, "output", +function(data){ +this.out.append(data); +}, "~S"); +Clazz.defineMethod(c$, "getByteCount", +function(){ +return this.out.getByteCount(); +}); +Clazz.defineMethod(c$, "outputComment", +function(comment){ +if (this.commentChar != null) this.output(this.commentChar + comment + "\n"); +}, "~S"); +c$.setTempVertex = Clazz.defineMethod(c$, "setTempVertex", +function(pt, offset, ptTemp){ +ptTemp.setT(pt); +if (offset != null) ptTemp.add(offset); +}, "JU.T3,JU.T3,JU.T3"); +Clazz.defineMethod(c$, "outputVertices", +function(vertices, nVertices, offset){ +for (var i = 0; i < nVertices; i++) { +if (Float.isNaN(vertices[i].x)) continue; +this.outputVertex(vertices[i], offset); +this.output("\n"); +} +}, "~A,~N,JU.T3"); +Clazz.defineMethod(c$, "outputVertex", +function(pt, offset){ +J["export"].___Exporter.setTempVertex(pt, offset, this.tempV1); +this.output(this.tempV1); +}, "JU.T3,JU.T3"); +Clazz.defineMethod(c$, "outputJmolPerspective", +function(){ +this.outputComment(this.getJmolPerspective()); +}); +Clazz.defineMethod(c$, "getJmolPerspective", +function(){ +if (this.commentChar == null) return ""; +var sb = new JU.SB(); +sb.append(this.commentChar).append("Jmol perspective:"); +sb.append("\n").append(this.commentChar).append("screen width height dim: " + this.screenWidth + " " + this.screenHeight + " " + this.vwr.getScreenDim()); +sb.append("\n").append(this.commentChar).append("perspectiveDepth: " + this.vwr.tm.perspectiveDepth); +sb.append("\n").append(this.commentChar).append("cameraDistance(angstroms): " + this.cameraDistance); +sb.append("\n").append(this.commentChar).append("aperatureAngle(degrees): " + this.apertureAngle); +sb.append("\n").append(this.commentChar).append("scalePixelsPerAngstrom: " + this.scalePixelsPerAngstrom); +sb.append("\n").append(this.commentChar).append("light source: " + this.lightSource); +sb.append("\n").append(this.commentChar).append("lighting: " + this.vwr.getLightingState().$replace('\n', ' ')); +sb.append("\n").append(this.commentChar).append("center: " + this.center); +sb.append("\n").append(this.commentChar).append("rotationRadius: " + this.vwr.getFloat(570425388)); +sb.append("\n").append(this.commentChar).append("boundboxCenter: " + this.vwr.getBoundBoxCenter()); +sb.append("\n").append(this.commentChar).append("translationOffset: " + this.tm.getTranslationScript()); +sb.append("\n").append(this.commentChar).append("zoom: " + this.vwr.tm.zmPct); +sb.append("\n").append(this.commentChar).append("moveto command: " + this.vwr.getOrientation(4129, null, null, null)); +sb.append("\n"); +return sb.toString(); +}); +Clazz.defineMethod(c$, "outputFooter", +function(){ +}); +Clazz.defineMethod(c$, "finalizeOutput", +function(){ +return this.finalizeOutput2(); +}); +Clazz.defineMethod(c$, "finalizeOutput2", +function(){ +this.outputFooter(); +if (this.out == null) return null; +var ret = this.out.closeChannel(); +if (this.fileName == null) return ret; +if (ret != null) { +JU.Logger.info(ret); +return "ERROR EXPORTING FILE: " + ret; +}return "OK " + this.out.getByteCount() + " " + this.export3D.getExportName() + " " + this.fileName; +}); +Clazz.defineMethod(c$, "getExportDate", +function(){ +return this.vwr.apiPlatform.getDateFormat(null); +}); +Clazz.defineMethod(c$, "rgbFractionalFromColix", +function(colix){ +return this.rgbFractionalFromArgb(this.gdata.getColorArgbOrGray(colix)); +}, "~N"); +Clazz.defineMethod(c$, "getTriadC", +function(t){ +return this.getTriad(t); +}, "JU.T3"); +Clazz.defineMethod(c$, "getTriad", +function(t){ +return J["export"].___Exporter.round(t.x) + " " + J["export"].___Exporter.round(t.y) + " " + J["export"].___Exporter.round(t.z); +}, "JU.T3"); +Clazz.defineMethod(c$, "rgbFractionalFromArgb", +function(argb){ +var red = (argb >> 16) & 0xFF; +var green = (argb >> 8) & 0xFF; +var blue = argb & 0xFF; +this.tempC.set(red == 0 ? 0 : (red + 1) / 256, green == 0 ? 0 : (green + 1) / 256, blue == 0 ? 0 : (blue + 1) / 256); +return this.getTriadC(this.tempC); +}, "~N"); +c$.translucencyFractionalFromColix = Clazz.defineMethod(c$, "translucencyFractionalFromColix", +function(colix){ +return J["export"].___Exporter.round(JU.C.getColixTranslucencyFractional(colix)); +}, "~N"); +c$.opacityFractionalFromColix = Clazz.defineMethod(c$, "opacityFractionalFromColix", +function(colix){ +return J["export"].___Exporter.round(1 - JU.C.getColixTranslucencyFractional(colix)); +}, "~N"); +c$.opacityFractionalFromArgb = Clazz.defineMethod(c$, "opacityFractionalFromArgb", +function(argb){ +var opacity = (argb >> 24) & 0xFF; +return J["export"].___Exporter.round(opacity == 0 ? 0 : (opacity + 1) / 256); +}, "~N"); +c$.round = Clazz.defineMethod(c$, "round", +function(number){ +var s; +return (number == 0 ? "0" : number == 1 ? "1" : (s = "" + (Math.round(number * 1000) / 1000)).startsWith("0.") ? s.substring(1) : s.startsWith("-0.") ? "-" + s.substring(2) : s.endsWith(".0") ? s.substring(0, s.length - 2) : s); +}, "~N"); +c$.round = Clazz.defineMethod(c$, "round", +function(pt){ +return J["export"].___Exporter.round(pt.x) + " " + J["export"].___Exporter.round(pt.y) + " " + J["export"].___Exporter.round(pt.z); +}, "JU.T3"); +Clazz.defineMethod(c$, "getColorList", +function(i00, colixes, nVertices, bsSelected, htColixes){ +var nColix = 0; +var list = new JU.Lst(); +var isAll = (bsSelected == null); +var i0 = (isAll ? nVertices - 1 : bsSelected.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsSelected.nextSetBit(i + 1))) { +var color = Short.$valueOf(colixes[i]); +if (!htColixes.containsKey(color)) { +list.addLast(color); +htColixes.put(color, Integer.$valueOf(i00 + nColix++)); +}} +return list; +}, "~N,~A,~N,JU.BS,java.util.Map"); +c$.getConeMesh = Clazz.defineMethod(c$, "getConeMesh", +function(centerBase, matRotateScale, colix){ +var ms = new JU.MeshSurface(); +var ndeg = 10; +var n = Clazz.doubleToInt(360 / ndeg); +ms.colix = colix; +ms.vs = new Array(ms.vc = n + 1); +ms.pis = JU.AU.newInt2(ms.pc = n); +for (var i = 0; i < n; i++) ms.pis[i] = Clazz.newIntArray(-1, [i, (i + 1) % n, n]); + +var d = ndeg / 180. * 3.141592653589793; +for (var i = 0; i < n; i++) { +var x = (Math.cos(i * d)); +var y = (Math.sin(i * d)); +ms.vs[i] = JU.P3.new3(x, y, 0); +} +ms.vs[n] = JU.P3.new3(0, 0, 1); +if (matRotateScale != null) { +ms.normals = new Array(ms.vc); +for (var i = 0; i < ms.vc; i++) { +matRotateScale.rotate(ms.vs[i]); +ms.normals[i] = JU.V3.newV(ms.vs[i]); +ms.normals[i].normalize(); +ms.vs[i].add(centerBase); +} +}return ms; +}, "JU.P3,JU.M3,~N"); +Clazz.defineMethod(c$, "getRotationMatrix", +function(pt1, pt2, radius){ +var m = new JU.M3(); +var m1; +if (pt2.x == pt1.x && pt2.y == pt1.y) { +m1 = JU.M3.newM3(null); +if (pt1.z > pt2.z) m1.m11 = m1.m22 = -1; +} else { +this.tempV1.sub2(pt2, pt1); +this.tempV2.set(0, 0, 1); +this.tempV2.cross(this.tempV2, this.tempV1); +this.tempV1.cross(this.tempV1, this.tempV2); +var q = JU.Quat.getQuaternionFrameV(this.tempV2, this.tempV1, null, false); +m1 = q.getMatrix(); +}m.m00 = radius; +m.m11 = radius; +m.m22 = pt2.distance(pt1); +m1.mul(m); +return m1; +}, "JU.P3,JU.P3,~N"); +Clazz.defineMethod(c$, "getRotationMatrix", +function(pt1, ptZ, radius, ptX, ptY){ +var m = new JU.M3(); +m.m00 = ptX.distance(pt1) * radius; +m.m11 = ptY.distance(pt1) * radius; +m.m22 = ptZ.distance(pt1) * 2; +var q = JU.Quat.getQuaternionFrame(pt1, ptX, ptY); +var m1 = q.getMatrix(); +m1.mul(m); +return m1; +}, "JU.P3,JU.P3,~N,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "drawSurface", +function(meshSurface, colix){ +var nVertices = meshSurface.vc; +if (nVertices == 0) return; +var nTriangles = 0; +var nPolygons = meshSurface.pc; +var bsPolygons = meshSurface.bsPolygons; +var faceVertexMax = (meshSurface.haveQuads ? 4 : 3); +var indices = meshSurface.pis; +var isAll = (bsPolygons == null); +var i0 = (isAll ? nPolygons - 1 : bsPolygons.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsPolygons.nextSetBit(i + 1))) nTriangles += (faceVertexMax == 4 && indices[i].length == 4 ? 2 : 1); + +if (nTriangles == 0) return; +var vertices = meshSurface.getVertices(); +var normals = meshSurface.normals; +var colorSolid = (colix != 0); +var colixes = (colorSolid ? null : meshSurface.vcs); +var polygonColixes = (colorSolid ? meshSurface.pcs : null); +var htColixes = null; +var colorList = null; +if (!this.isWebGL) { +htColixes = new java.util.Hashtable(); +if (polygonColixes != null) colorList = this.getColorList(0, polygonColixes, nPolygons, bsPolygons, htColixes); + else if (colixes != null) colorList = this.getColorList(0, colixes, nVertices, null, htColixes); +}this.outputSurface(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, nTriangles, bsPolygons, faceVertexMax, colix, colorList, htColixes, meshSurface.offset); +}, "JU.MeshSurface,~N"); +Clazz.defineMethod(c$, "outputSurface", +function(vertices, normals, colixes, indices, polygonColixes, nVertices, nPolygons, nTriangles, bsPolygons, faceVertexMax, colix, colorList, htColixes, offset){ +}, "~A,~A,~A,~A,~A,~N,~N,~N,JU.BS,~N,~N,JU.Lst,java.util.Map,JU.P3"); +Clazz.defineMethod(c$, "drawFilledCircle", +function(colixRing, colixFill, diameter, x, y, z){ +if (colixRing != 0) this.drawCircle(x, y, z, diameter, colixRing, false); +if (colixFill != 0) this.drawCircle(x, y, z, diameter, colixFill, true); +}, "~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "fixScreenZ", +function(z){ +return (z <= 3 ? z + Clazz.floatToInt(this.tm.cameraDistance) : z); +}, "~N"); +Clazz.defineMethod(c$, "plotImage", +function(x, y, z, image, bgcolix, width, height){ +this.outputComment("start image " + (++this.nImage)); +this.gdata.plotImage(x, y, z, image, this.export3D, bgcolix, width, height); +this.outputComment("end image " + this.nImage); +}, "~N,~N,~N,~O,~N,~N,~N"); +Clazz.defineMethod(c$, "plotText", +function(x, y, z, colix, text, font3d){ +this.outputComment("start text " + (++this.nText) + ": " + text); +this.gdata.plotText(x, y, z, this.gdata.getColorArgbOrGray(colix), 0, text, font3d, this.export3D); +this.outputComment("end text " + this.nText + ": " + text); +}, "~N,~N,~N,~N,~S,JU.Font"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/CircleRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/CircleRenderer.js new file mode 100755 index 000000000000..b36153bf26de --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/CircleRenderer.js @@ -0,0 +1,154 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["J.g3d.G3DRenderer"], "J.g3d.CircleRenderer", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.g3d = null; +Clazz.instantialize(this, arguments);}, J.g3d, "CircleRenderer", null, J.g3d.G3DRenderer); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "set", +function(g3d, gdata){ +try { +this.g3d = g3d; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +return this; +}, "J.api.JmolRendererInterface,JU.GData"); +Clazz.defineMethod(c$, "plotCircleCenteredClipped", +function(xCenter, yCenter, zCenter, diameter){ +var g = this.g3d; +var c = g.argbCurrent; +var width = g.width; +var zbuf = g.zbuf; +var p = g.pixel; +var r = Clazz.doubleToInt(diameter / 2); +var sizeCorrection = 1 - (diameter & 1); +var x = r; +var y = 0; +var xChange = 1 - 2 * r; +var yChange = 1; +var radiusError = 0; +while (x >= y) { +g.plotPixelClippedArgb(c, xCenter + x - sizeCorrection, yCenter + y - sizeCorrection, zCenter, width, zbuf, p); +g.plotPixelClippedArgb(c, xCenter + x - sizeCorrection, yCenter - y, zCenter, width, zbuf, p); +g.plotPixelClippedArgb(c, xCenter - x, yCenter + y - sizeCorrection, zCenter, width, zbuf, p); +g.plotPixelClippedArgb(c, xCenter - x, yCenter - y, zCenter, width, zbuf, p); +g.plotPixelClippedArgb(c, xCenter + y - sizeCorrection, yCenter + x - sizeCorrection, zCenter, width, zbuf, p); +g.plotPixelClippedArgb(c, xCenter + y - sizeCorrection, yCenter - x, zCenter, width, zbuf, p); +g.plotPixelClippedArgb(c, xCenter - y, yCenter + x - sizeCorrection, zCenter, width, zbuf, p); +g.plotPixelClippedArgb(c, xCenter - y, yCenter - x, zCenter, width, zbuf, p); +++y; +radiusError += yChange; +yChange += 2; +if (2 * radiusError + xChange > 0) { +--x; +radiusError += xChange; +xChange += 2; +}} +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "plotCircleCenteredUnclipped", +function(xCenter, yCenter, zCenter, diameter){ +var r = Clazz.doubleToInt(diameter / 2); +var sizeCorrection = 1 - (diameter & 1); +var x = r; +var y = 0; +var xChange = 1 - 2 * r; +var yChange = 1; +var radiusError = 0; +var g = this.g3d; +var p = g.pixel; +var width = g.width; +var zbuf = g.zbuf; +var c = g.argbCurrent; +while (x >= y) { +g.plotPixelUnclipped(c, xCenter + x - sizeCorrection, yCenter + y - sizeCorrection, zCenter, width, zbuf, p); +g.plotPixelUnclipped(c, xCenter + x - sizeCorrection, yCenter - y, zCenter, width, zbuf, p); +g.plotPixelUnclipped(c, xCenter - x, yCenter + y - sizeCorrection, zCenter, width, zbuf, p); +g.plotPixelUnclipped(c, xCenter - x, yCenter - y, zCenter, width, zbuf, p); +g.plotPixelUnclipped(c, xCenter + y - sizeCorrection, yCenter + x - sizeCorrection, zCenter, width, zbuf, p); +g.plotPixelUnclipped(c, xCenter + y - sizeCorrection, yCenter - x, zCenter, width, zbuf, p); +g.plotPixelUnclipped(c, xCenter - y, yCenter + x - sizeCorrection, zCenter, width, zbuf, p); +g.plotPixelUnclipped(c, xCenter - y, yCenter - x, zCenter, width, zbuf, p); +++y; +radiusError += yChange; +yChange += 2; +if (2 * radiusError + xChange > 0) { +--x; +radiusError += xChange; +xChange += 2; +}} +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "plotFilledCircleCenteredClipped", +function(xCenter, yCenter, zCenter, diameter){ +var r = Clazz.doubleToInt(diameter / 2); +var sizeCorrection = 1 - (diameter & 1); +var x = r; +var y = 0; +var xChange = 1 - 2 * r; +var yChange = 1; +var radiusError = 0; +var g = this.g3d; +var c = g.argbCurrent; +var width = g.width; +var height = g.height; +var zbuf = g.zbuf; +var p = g.pixel; +while (x >= y) { +this.plotPixelsClipped(c, 2 * x + 1 - sizeCorrection, xCenter - x, yCenter + y - sizeCorrection, zCenter, width, height, zbuf, p); +this.plotPixelsClipped(c, 2 * x + 1 - sizeCorrection, xCenter - x, yCenter - y, zCenter, width, height, zbuf, p); +this.plotPixelsClipped(c, 2 * y + 1 - sizeCorrection, xCenter - y, yCenter + x - sizeCorrection, zCenter, width, height, zbuf, p); +this.plotPixelsClipped(c, 2 * y + 1 - sizeCorrection, xCenter - y, yCenter - x, zCenter, width, height, zbuf, p); +++y; +radiusError += yChange; +yChange += 2; +if (2 * radiusError + xChange > 0) { +--x; +radiusError += xChange; +xChange += 2; +}} +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "plotPixelsClipped", +function(argb, count, x, y, z, width, height, zbuf, p){ +if (y < 0 || y >= height || x >= width) return; +if (x < 0) { +count += x; +x = 0; +}if (count + x > width) count = width - x; +if (count <= 0) return; +var offsetPbuf = y * width + x; +var offsetMax = offsetPbuf + count; +while (offsetPbuf < offsetMax) { +if (z < zbuf[offsetPbuf]) p.addPixel(offsetPbuf, z, argb); +offsetPbuf++; +} +}, "~N,~N,~N,~N,~N,~N,~N,~A,J.g3d.Pixelator"); +Clazz.defineMethod(c$, "plotFilledCircleCenteredUnclipped", +function(xCenter, yCenter, zCenter, diameter){ +var r = Clazz.doubleToInt(diameter / 2); +var x = r; +var y = 0; +var xChange = 1 - 2 * r; +var yChange = 1; +var radiusError = 0; +var g = this.g3d; +var c = g.argbCurrent; +var width = g.width; +var zbuf = g.zbuf; +var p = g.pixel; +while (x >= y) { +g.plotPixelsUnclippedCount(c, 2 * x + 1, xCenter - x, yCenter + y, zCenter, width, zbuf, p); +g.plotPixelsUnclippedCount(c, 2 * x + 1, xCenter - x, yCenter - y, zCenter, width, zbuf, p); +g.plotPixelsUnclippedCount(c, 2 * y + 1, xCenter - y, yCenter + x, zCenter, width, zbuf, p); +g.plotPixelsUnclippedCount(c, 2 * y + 1, xCenter - y, yCenter - x, zCenter, width, zbuf, p); +++y; +radiusError += yChange; +yChange += 2; +if (2 * radiusError + xChange > 0) { +--x; +radiusError += xChange; +xChange += 2; +}} +}, "~N,~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/CylinderRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/CylinderRenderer.js new file mode 100755 index 000000000000..6435bd140517 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/CylinderRenderer.js @@ -0,0 +1,603 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["JU.P3i"], "J.g3d.CylinderRenderer", ["JU.AU", "$.P3"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.g3d = null; +this.line3d = null; +this.shader = null; +this.colixA = 0; +this.colixB = 0; +this.shadesA = null; +this.shadesB = null; +this.xA = 0; +this.yA = 0; +this.zA = 0; +this.xAend = 0; +this.yAend = 0; +this.zAend = 0; +this.dxB = 0; +this.dyB = 0; +this.dzB = 0; +this.xAf = 0; +this.yAf = 0; +this.zAf = 0; +this.dxBf = 0; +this.dyBf = 0; +this.dzBf = 0; +this.tEvenDiameter = false; +this.diameter = 0; +this.endcaps = 0; +this.endCapHidden = false; +this.xEndcap = 0; +this.yEndcap = 0; +this.zEndcap = 0; +this.argbEndcap = 0; +this.colixEndcap = 0; +this.endcapShadeIndex = 0; +this.radius = 0; +this.radius2 = 0; +this.cosTheta = 0; +this.cosPhi = 0; +this.sinPhi = 0; +this.clipped = false; +this.rasterCount = 0; +this.xyztRaster = null; +this.xyzfRaster = null; +this.ptA0 = null; +this.ptB0 = null; +this.ptA0i = null; +this.ptB0i = null; +this.xTip = 0; +this.yTip = 0; +this.zTip = 0; +Clazz.instantialize(this, arguments);}, J.g3d, "CylinderRenderer", null); +Clazz.prepareFields (c$, function(){ +this.xyztRaster = Clazz.newArray(-1, [ Clazz.newFloatArray (32, 0), Clazz.newFloatArray (32, 0), Clazz.newFloatArray (32, 0), Clazz.newFloatArray (32, 0)]); +this.xyzfRaster = Clazz.newArray(-1, [ Clazz.newIntArray (32, 0), Clazz.newIntArray (32, 0), Clazz.newIntArray (32, 0), Clazz.newIntArray (32, 0)]); +this.ptA0i = new JU.P3i(); +this.ptB0i = new JU.P3i(); +}); +Clazz.makeConstructor(c$, +function(g3d){ +this.g3d = g3d; +this.line3d = g3d.line3d; +this.shader = g3d.shader; +}, "J.g3d.Graphics3D"); +Clazz.defineMethod(c$, "renderOld", +function(colixA, colixB, screen, endcaps, diameter, xa, ya, za, xb, yb, zb){ +var r = Clazz.doubleToInt(diameter / 2) + 1; +var g = this.g3d; +var codeMinA = g.clipCode3(xa - r, ya - r, za - r); +var codeMaxA = g.clipCode3(xa + r, ya + r, za + r); +var codeMinB = g.clipCode3(xb - r, yb - r, zb - r); +var codeMaxB = g.clipCode3(xb + r, yb + r, zb + r); +var c = (codeMinA | codeMaxA | codeMinB | codeMaxB); +this.clipped = (c != 0); +if (c == -1 || (codeMinA & codeMaxB & codeMaxA & codeMinB) != 0) return; +this.dxB = xb - xa; +this.dyB = yb - ya; +this.dzB = zb - za; +if (diameter <= 1) { +this.line3d.plotLineDeltaOld(g.getColorArgbOrGray(colixA), g.getColorArgbOrGray(colixB), xa, ya, za, this.dxB, this.dyB, this.dzB, this.clipped); +return; +}var drawBackside = (screen == 0 && (this.clipped || endcaps == 2 || endcaps == 0)); +this.diameter = diameter; +this.xA = xa; +this.yA = ya; +this.zA = za; +this.endcaps = endcaps; +this.shadesA = g.getShades(this.colixA = colixA); +this.shadesB = g.getShades(this.colixB = colixB); +this.calcArgbEndcap(true, false); +this.calcCosSin(this.dxB, this.dyB, this.dzB); +this.calcPoints(3, false); +this.interpolate(0, 1, this.xyzfRaster, this.xyztRaster); +this.interpolate(1, 2, this.xyzfRaster, this.xyztRaster); +var xyzf = this.xyzfRaster; +if (endcaps == 2) this.renderFlatEndcap(true, false, xyzf); +g.setZMargin(5); +var width = g.width; +var zbuf = g.zbuf; +var xr = xyzf[0]; +var yr = xyzf[1]; +var zr = xyzf[2]; +var fr = xyzf[3]; +var p = g.pixel; +for (var i = this.rasterCount; --i >= 0; ) { +var fpz = fr[i] >> (8); +var fpzBack = fpz >> 1; +var x = xr[i]; +var y = yr[i]; +var z = zr[i]; +if (this.endCapHidden && this.argbEndcap != 0) { +if (this.clipped) { +g.plotPixelClippedArgb(this.argbEndcap, this.xEndcap + x, this.yEndcap + y, this.zEndcap - z - 1, width, zbuf, p); +g.plotPixelClippedArgb(this.argbEndcap, this.xEndcap - x, this.yEndcap - y, this.zEndcap + z - 1, width, zbuf, p); +} else { +g.plotPixelUnclipped(this.argbEndcap, this.xEndcap + x, this.yEndcap + y, this.zEndcap - z - 1, width, zbuf, p); +g.plotPixelUnclipped(this.argbEndcap, this.xEndcap - x, this.yEndcap - y, this.zEndcap + z - 1, width, zbuf, p); +}}this.line3d.plotLineDeltaAOld(this.shadesA, this.shadesB, screen, fpz, this.xA + x, this.yA + y, this.zA - z, this.dxB, this.dyB, this.dzB, this.clipped); +if (drawBackside) { +this.line3d.plotLineDeltaOld(this.shadesA[fpzBack], this.shadesB[fpzBack], this.xA - x, this.yA - y, this.zA + z, this.dxB, this.dyB, this.dzB, this.clipped); +}} +g.setZMargin(0); +if (endcaps == 3) this.renderSphericalEndcaps(); +}, "~N,~N,~N,~N,~N,~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "renderBitsFloat", +function(colixA, colixB, screen, endcaps, diameter, ptA, ptB){ +var g = this.g3d; +if (this.ptA0 == null) { +this.ptA0 = new JU.P3(); +this.ptB0 = new JU.P3(); +}this.ptA0.setT(ptA); +var r = Clazz.doubleToInt(diameter / 2) + 1; +var ixA = Math.round(ptA.x); +var iyA = Math.round(ptA.y); +var izA = Math.round(ptA.z); +var ixB = Math.round(ptB.x); +var iyB = Math.round(ptB.y); +var izB = Math.round(ptB.z); +var codeMinA = g.clipCode3(ixA - r, iyA - r, izA - r); +var codeMaxA = g.clipCode3(ixA + r, iyA + r, izA + r); +var codeMinB = g.clipCode3(ixB - r, iyB - r, izB - r); +var codeMaxB = g.clipCode3(ixB + r, iyB + r, izB + r); +var c = (codeMinA | codeMaxA | codeMinB | codeMaxB); +this.clipped = (c != 0); +if (c == -1 || (codeMinA & codeMaxB & codeMaxA & codeMinB) != 0) return; +this.dxBf = ptB.x - ptA.x; +this.dyBf = ptB.y - ptA.y; +this.dzBf = ptB.z - ptA.z; +if (diameter > 0) { +this.diameter = diameter; +this.xAf = ptA.x; +this.yAf = ptA.y; +this.zAf = ptA.z; +}var drawBackside = (screen == 0 && (this.clipped || endcaps == 2 || endcaps == 0)); +this.xA = Clazz.floatToInt(this.xAf); +this.yA = Clazz.floatToInt(this.yAf); +this.zA = Clazz.floatToInt(this.zAf); +this.dxB = Clazz.floatToInt(this.dxBf); +this.dyB = Clazz.floatToInt(this.dyBf); +this.dzB = Clazz.floatToInt(this.dzBf); +this.shadesA = g.getShades(this.colixA = colixA); +this.shadesB = g.getShades(this.colixB = colixB); +this.endcaps = endcaps; +this.calcArgbEndcap(true, true); +var xyzf = this.xyzfRaster; +if (diameter > 0) this.generateBaseEllipsePrecisely(false); +if (endcaps == 2) this.renderFlatEndcap(true, true, xyzf); +this.line3d.setLineBits(this.dxBf, this.dyBf); +g.setZMargin(5); +var p = g.pixel; +var width = g.width; +var zbuf = g.zbuf; +var xr = xyzf[0]; +var yr = xyzf[1]; +var zr = xyzf[2]; +var fr = xyzf[3]; +for (var i = this.rasterCount; --i >= 0; ) { +var fpz = fr[i] >> (8); +var fpzBack = fpz >> 1; +var x = xr[i]; +var y = yr[i]; +var z = zr[i]; +if (this.endCapHidden && this.argbEndcap != 0) { +if (this.clipped) { +g.plotPixelClippedArgb(this.argbEndcap, this.xEndcap + x, this.yEndcap + y, this.zEndcap - z - 1, width, zbuf, p); +g.plotPixelClippedArgb(this.argbEndcap, this.xEndcap - x, this.yEndcap - y, this.zEndcap + z - 1, width, zbuf, p); +} else { +g.plotPixelUnclipped(this.argbEndcap, this.xEndcap + x, this.yEndcap + y, this.zEndcap - z - 1, width, zbuf, p); +g.plotPixelUnclipped(this.argbEndcap, this.xEndcap - x, this.yEndcap - y, this.zEndcap + z - 1, width, zbuf, p); +}}this.ptA0.set(this.xA + x, this.yA + y, this.zA - z); +this.ptB0.setT(this.ptA0); +this.ptB0.x += this.dxB; +this.ptB0.y += this.dyB; +this.ptB0.z += this.dzB; +this.line3d.plotLineDeltaABitsFloat(this.shadesA, this.shadesB, fpz, this.ptA0, this.ptB0, screen, this.clipped); +if (drawBackside) { +this.ptA0.set(this.xA - x, this.yA - y, this.zA + z); +this.ptB0.setT(this.ptA0); +this.ptB0.x += this.dxB; +this.ptB0.y += this.dyB; +this.ptB0.z += this.dzB; +this.line3d.plotLineDeltaABitsFloat(this.shadesA, this.shadesB, fpzBack, this.ptA0, this.ptB0, screen, this.clipped); +}} +g.setZMargin(0); +if (endcaps == 3) this.renderSphericalEndcaps(); +this.xAf += this.dxBf; +this.yAf += this.dyBf; +this.zAf += this.dzBf; +}, "~N,~N,~N,~N,~N,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "renderBits", +function(colixA, colixB, screen, endcaps, diameter, ptA, ptB){ +var g = this.g3d; +if (diameter == 0 || diameter == 1) { +this.line3d.plotLineBits(g.getColorArgbOrGray(colixA), g.getColorArgbOrGray(colixB), ptA, ptB, 0, 0, false); +return; +}this.ptA0i.setT(ptA); +var r = Clazz.doubleToInt(diameter / 2) + 1; +var ixA = ptA.x; +var iyA = ptA.y; +var izA = ptA.z; +var ixB = ptB.x; +var iyB = ptB.y; +var izB = ptB.z; +var codeMinA = g.clipCode3(ixA - r, iyA - r, izA - r); +var codeMaxA = g.clipCode3(ixA + r, iyA + r, izA + r); +var codeMinB = g.clipCode3(ixB - r, iyB - r, izB - r); +var codeMaxB = g.clipCode3(ixB + r, iyB + r, izB + r); +var c = (codeMinA | codeMaxA | codeMinB | codeMaxB); +this.clipped = (c != 0); +if (c == -1 || (codeMinA & codeMaxB & codeMaxA & codeMinB) != 0) return; +this.dxBf = ptB.x - ptA.x; +this.dyBf = ptB.y - ptA.y; +this.dzBf = ptB.z - ptA.z; +if (diameter > 0) { +this.diameter = diameter; +this.xAf = ptA.x; +this.yAf = ptA.y; +this.zAf = ptA.z; +}var drawBackside = (screen == 0 && (this.clipped || endcaps == 2 || endcaps == 0)); +this.xA = Clazz.floatToInt(this.xAf); +this.yA = Clazz.floatToInt(this.yAf); +this.zA = Clazz.floatToInt(this.zAf); +this.dxB = Clazz.floatToInt(this.dxBf); +this.dyB = Clazz.floatToInt(this.dyBf); +this.dzB = Clazz.floatToInt(this.dzBf); +this.shadesA = g.getShades(this.colixA = colixA); +this.shadesB = g.getShades(this.colixB = colixB); +this.endcaps = endcaps; +this.calcArgbEndcap(true, true); +var xyzf = this.xyzfRaster; +if (diameter > 0) this.generateBaseEllipsePrecisely(false); +if (endcaps == 2) this.renderFlatEndcap(true, true, xyzf); +this.line3d.setLineBits(this.dxBf, this.dyBf); +g.setZMargin(5); +var p = g.pixel; +var width = g.width; +var zbuf = g.zbuf; +var xr = xyzf[0]; +var yr = xyzf[1]; +var zr = xyzf[2]; +var fr = xyzf[3]; +for (var i = this.rasterCount; --i >= 0; ) { +var fpz = fr[i] >> (8); +var fpzBack = fpz >> 1; +var x = xr[i]; +var y = yr[i]; +var z = zr[i]; +if (this.endCapHidden && this.argbEndcap != 0) { +if (this.clipped) { +g.plotPixelClippedArgb(this.argbEndcap, this.xEndcap + x, this.yEndcap + y, this.zEndcap - z - 1, width, zbuf, p); +g.plotPixelClippedArgb(this.argbEndcap, this.xEndcap - x, this.yEndcap - y, this.zEndcap + z - 1, width, zbuf, p); +} else { +g.plotPixelUnclipped(this.argbEndcap, this.xEndcap + x, this.yEndcap + y, this.zEndcap - z - 1, width, zbuf, p); +g.plotPixelUnclipped(this.argbEndcap, this.xEndcap - x, this.yEndcap - y, this.zEndcap + z - 1, width, zbuf, p); +}}this.ptA0i.set(this.xA + x, this.yA + y, this.zA - z); +this.ptB0i.setT(this.ptA0i); +this.ptB0i.x += this.dxB; +this.ptB0i.y += this.dyB; +this.ptB0i.z += this.dzB; +this.line3d.plotLineDeltaABitsInt(this.shadesA, this.shadesB, fpz, this.ptA0i, this.ptB0i, screen, this.clipped); +if (drawBackside) { +this.ptA0i.set(this.xA - x, this.yA - y, this.zA + z); +this.ptB0i.setT(this.ptA0i); +this.ptB0i.x += this.dxB; +this.ptB0i.y += this.dyB; +this.ptB0i.z += this.dzB; +this.line3d.plotLineDeltaABitsInt(this.shadesA, this.shadesB, fpzBack, this.ptA0i, this.ptB0i, screen, this.clipped); +}} +g.setZMargin(0); +if (endcaps == 3) this.renderSphericalEndcaps(); +this.xAf += this.dxBf; +this.yAf += this.dyBf; +this.zAf += this.dzBf; +}, "~N,~N,~N,~N,~N,JU.P3i,JU.P3i"); +Clazz.defineMethod(c$, "renderConeOld", +function(colix, endcap, diameter, xa, ya, za, xtip, ytip, ztip, doFill, isBarb){ +this.dxBf = (xtip) - (this.xAf = xa); +this.dyBf = (ytip) - (this.yAf = ya); +this.dzBf = (ztip) - (this.zAf = za); +this.xA = Clazz.doubleToInt(Math.floor(this.xAf)); +this.yA = Clazz.doubleToInt(Math.floor(this.yAf)); +this.zA = Clazz.doubleToInt(Math.floor(this.zAf)); +this.dxB = Clazz.doubleToInt(Math.floor(this.dxBf)); +this.dyB = Clazz.doubleToInt(Math.floor(this.dyBf)); +this.dzB = Clazz.doubleToInt(Math.floor(this.dzBf)); +this.xTip = xtip; +this.yTip = ytip; +this.zTip = ztip; +this.shadesA = this.g3d.getShades(this.colixA = colix); +var shadeIndexTip = this.shader.getShadeIndex(this.dxB, this.dyB, -this.dzB); +var g3d = this.g3d; +var p = g3d.pixel; +var width = g3d.width; +var zbuf = g3d.zbuf; +g3d.plotPixelClippedArgb(this.shadesA[shadeIndexTip], Clazz.floatToInt(xtip), Clazz.floatToInt(ytip), Clazz.floatToInt(ztip), width, zbuf, p); +this.diameter = diameter; +if (diameter <= 1) { +if (diameter == 1) this.line3d.plotLineDeltaOld(this.colixA, this.colixA, this.xA, this.yA, this.zA, this.dxB, this.dyB, this.dzB, this.clipped); +return; +}this.endcaps = endcap; +this.calcArgbEndcap(false, true); +this.generateBaseEllipsePrecisely(isBarb); +if (!isBarb && this.endcaps == 2) this.renderFlatEndcap(false, true, this.xyzfRaster); +g3d.setZMargin(5); +var xr = this.xyztRaster[0]; +var yr = this.xyztRaster[1]; +var zr = this.xyztRaster[2]; +var fr = this.xyzfRaster[3]; +var sA = this.shadesA; +var doOpen = (this.endCapHidden && this.argbEndcap != 0); +for (var i = this.rasterCount; --i >= 0; ) { +var x = xr[i]; +var y = yr[i]; +var z = zr[i]; +var fpz = fr[i] >> (8); +var xUp = this.xAf + x; +var yUp = this.yAf + y; +var zUp = this.zAf - z; +var xDn = this.xAf - x; +var yDn = this.yAf - y; +var zDn = this.zAf + z; +var argb = sA[0]; +if (doOpen) { +g3d.plotPixelClippedArgb(this.argbEndcap, Clazz.floatToInt(xUp), Clazz.floatToInt(yUp), Clazz.floatToInt(zUp), width, zbuf, p); +g3d.plotPixelClippedArgb(this.argbEndcap, Clazz.floatToInt(xDn), Clazz.floatToInt(yDn), Clazz.floatToInt(zDn), width, zbuf, p); +}if (argb != 0) { +this.line3d.plotLineDeltaAOld(sA, sA, 0, fpz, Clazz.floatToInt(xUp), Clazz.floatToInt(yUp), Clazz.floatToInt(zUp), Clazz.doubleToInt(Math.ceil(this.xTip - xUp)), Clazz.doubleToInt(Math.ceil(this.yTip - yUp)), Clazz.doubleToInt(Math.ceil(this.zTip - zUp)), true); +if (doFill) { +this.line3d.plotLineDeltaAOld(sA, sA, 0, fpz, Clazz.floatToInt(xUp), Clazz.floatToInt(yUp) + 1, Clazz.floatToInt(zUp), Clazz.doubleToInt(Math.ceil(this.xTip - xUp)), Clazz.doubleToInt(Math.ceil(this.yTip - yUp)) + 1, Clazz.doubleToInt(Math.ceil(this.zTip - zUp)), true); +this.line3d.plotLineDeltaAOld(sA, sA, 0, fpz, Clazz.floatToInt(xUp) + 1, Clazz.floatToInt(yUp), Clazz.floatToInt(zUp), Clazz.doubleToInt(Math.ceil(this.xTip - xUp)) + 1, Clazz.doubleToInt(Math.ceil(this.yTip - yUp)), Clazz.doubleToInt(Math.ceil(this.zTip - zUp)), true); +}if (!isBarb && !(this.endcaps != 2 && this.dzB > 0)) { +this.line3d.plotLineDeltaOld(argb, argb, Clazz.floatToInt(xDn), Clazz.floatToInt(yDn), Clazz.floatToInt(zDn), Clazz.doubleToInt(Math.ceil(this.xTip - xDn)), Clazz.doubleToInt(Math.ceil(this.yTip - yDn)), Clazz.doubleToInt(Math.ceil(this.zTip - zDn)), true); +}}} +g3d.setZMargin(0); +}, "~N,~N,~N,~N,~N,~N,~N,~N,~N,~B,~B"); +Clazz.defineMethod(c$, "generateBaseEllipsePrecisely", +function(isBarb){ +this.calcCosSin(this.dxBf, this.dyBf, this.dzBf); +this.calcPoints(isBarb ? 2 : 3, true); +this.interpolatePrecisely(0, 1, this.xyzfRaster, this.xyztRaster); +if (!isBarb) this.interpolatePrecisely(1, 2, this.xyzfRaster, this.xyztRaster); +for (var i = 3; --i >= 0; ) for (var j = this.rasterCount; --j >= 0; ) this.xyzfRaster[i][j] = Clazz.doubleToInt(Math.floor(this.xyztRaster[i][j])); + + +}, "~B"); +Clazz.defineMethod(c$, "calcPoints", +function(count, isPrecise){ +this.calcRotatedPoint(0, 0, isPrecise, this.xyzfRaster, this.xyztRaster); +this.calcRotatedPoint(0.5, 1, isPrecise, this.xyzfRaster, this.xyztRaster); +if ((this.rasterCount = count) == 3) this.calcRotatedPoint(1, 2, isPrecise, this.xyzfRaster, this.xyztRaster); +}, "~N,~B"); +Clazz.defineMethod(c$, "calcCosSin", +function(dx, dy, dz){ +var mag2d2 = dx * dx + dy * dy; +if (mag2d2 == 0) { +this.cosTheta = 1; +this.cosPhi = 1; +this.sinPhi = 0; +} else { +var mag2d = Math.sqrt(mag2d2); +var mag3d = Math.sqrt(mag2d2 + dz * dz); +this.cosTheta = dz / mag3d; +this.cosPhi = dx / mag2d; +this.sinPhi = dy / mag2d; +}}, "~N,~N,~N"); +Clazz.defineMethod(c$, "calcRotatedPoint", +function(t, i, isPrecision, xyzf, xyzt){ +xyzt[3][i] = t; +var tPI = t * 3.141592653589793; +var xT = Math.sin(tPI) * this.cosTheta; +var yT = Math.cos(tPI); +var xR = this.radius * (xT * this.cosPhi - yT * this.sinPhi); +var yR = this.radius * (xT * this.sinPhi + yT * this.cosPhi); +var z2 = this.radius2 - (xR * xR + yR * yR); +var zR = (z2 > 0 ? Math.sqrt(z2) : 0); +if (isPrecision) { +xyzt[0][i] = xR; +xyzt[1][i] = yR; +xyzt[2][i] = zR; +} else if (this.tEvenDiameter) { +xyzf[0][i] = Clazz.doubleToInt(xR - 0.5); +xyzf[1][i] = Clazz.doubleToInt(yR - 0.5); +xyzf[2][i] = Clazz.doubleToInt(zR + 0.5); +} else { +xyzf[0][i] = Clazz.doubleToInt(xR); +xyzf[1][i] = Clazz.doubleToInt(yR); +xyzf[2][i] = Clazz.doubleToInt(zR + 0.5); +}xyzf[3][i] = this.shader.getShadeFp8(xR, yR, zR); +}, "~N,~N,~B,~A,~A"); +Clazz.defineMethod(c$, "allocRaster", +function(isPrecision, xyzf, xyzt){ +if (this.rasterCount >= xyzf[0].length) while (this.rasterCount >= xyzf[0].length) { +for (var i = 4; --i >= 0; ) xyzf[i] = JU.AU.doubleLengthI(xyzf[i]); + +xyzt[3] = JU.AU.doubleLengthF(xyzt[3]); +} +if (isPrecision) while (this.rasterCount >= xyzt[0].length) { +for (var i = 3; --i >= 0; ) xyzt[i] = JU.AU.doubleLengthF(xyzt[i]); + +} +return this.rasterCount++; +}, "~B,~A,~A"); +Clazz.defineMethod(c$, "interpolate", +function(iLower, iUpper, xyzf, xyzt){ +var x = xyzf[0]; +var y = xyzf[1]; +var dx = x[iUpper] - x[iLower]; +if (dx < 0) dx = -dx; +var dy = y[iUpper] - y[iLower]; +if (dy < 0) dy = -dy; +if ((dx + dy) <= 1) return; +var iMid = this.allocRaster(false, xyzf, xyzt); +x = xyzf[0]; +y = xyzf[1]; +var f = xyzf[3]; +var tLower = xyzt[3][iLower]; +var tUpper = xyzt[3][iUpper]; +for (var j = 4; --j >= 0; ) { +var tMid = (tLower + tUpper) / 2; +this.calcRotatedPoint(tMid, iMid, false, xyzf, xyzt); +if ((x[iMid] == x[iLower]) && (y[iMid] == y[iLower])) { +f[iLower] = (f[iLower] + f[iMid]) >>> 1; +tLower = tMid; +} else if ((x[iMid] == x[iUpper]) && (y[iMid] == y[iUpper])) { +f[iUpper] = (f[iUpper] + f[iMid]) >>> 1; +tUpper = tMid; +} else { +this.interpolate(iLower, iMid, xyzf, xyzt); +this.interpolate(iMid, iUpper, xyzf, xyzt); +return; +}} +x[iMid] = x[iLower]; +y[iMid] = y[iUpper]; +}, "~N,~N,~A,~A"); +Clazz.defineMethod(c$, "interpolatePrecisely", +function(iLower, iUpper, xyzf, xyzt){ +var x = xyzt[0]; +var y = xyzt[1]; +var dx = Clazz.doubleToInt(Math.floor(x[iUpper])) - Clazz.doubleToInt(Math.floor(x[iLower])); +if (dx < 0) dx = -dx; +var dy = Clazz.doubleToInt(Math.floor(y[iUpper])) - Clazz.doubleToInt(Math.floor(y[iLower])); +if (dy < 0) dy = -dy; +if ((dx + dy) <= 1) return; +var t = xyzt[3]; +var tLower = t[iLower]; +var tUpper = t[iUpper]; +var iMid = this.allocRaster(true, xyzf, xyzt); +x = xyzt[0]; +y = xyzt[1]; +t = xyzt[3]; +var f = xyzf[3]; +for (var j = 4; --j >= 0; ) { +var tMid = (tLower + tUpper) / 2; +this.calcRotatedPoint(tMid, iMid, true, xyzf, xyzt); +if ((Clazz.doubleToInt(Math.floor(x[iMid])) == Clazz.doubleToInt(Math.floor(x[iLower]))) && (Clazz.doubleToInt(Math.floor(y[iMid])) == Clazz.doubleToInt(Math.floor(y[iLower])))) { +f[iLower] = (f[iLower] + f[iMid]) >>> 1; +tLower = tMid; +} else if ((Clazz.doubleToInt(Math.floor(x[iMid])) == Clazz.doubleToInt(Math.floor(x[iUpper]))) && (Clazz.doubleToInt(Math.floor(y[iMid])) == Clazz.doubleToInt(Math.floor(y[iUpper])))) { +f[iUpper] = (f[iUpper] + f[iMid]) >>> 1; +tUpper = tMid; +} else { +this.interpolatePrecisely(iLower, iMid, xyzf, xyzt); +this.interpolatePrecisely(iMid, iUpper, xyzf, xyzt); +return; +}} +x[iMid] = x[iLower]; +y[iMid] = y[iUpper]; +}, "~N,~N,~A,~A"); +Clazz.defineMethod(c$, "renderFlatEndcap", +function(isCylinder, isPrecise, xyzf){ +var xT; +var yT; +var zT; +if (isPrecise) { +if (this.dzBf == 0 || this.colixEndcap == 0 || !this.g3d.setC(this.colixEndcap)) return; +var xTf = this.xAf; +var yTf = this.yAf; +var zTf = this.zAf; +if (isCylinder && this.dzBf < 0) { +xTf += this.dxBf; +yTf += this.dyBf; +zTf += this.dzBf; +}xT = Clazz.floatToInt(xTf); +yT = Clazz.floatToInt(yTf); +zT = Clazz.floatToInt(zTf); +} else { +if (this.dzB == 0 || this.colixEndcap == 0 || !this.g3d.setC(this.colixEndcap)) return; +xT = this.xAend; +yT = this.yAend; +zT = this.zAend; +if (isCylinder && this.dzB < 0) { +xT += this.dxB; +yT += this.dyB; +zT += this.dzB; +}}var yMin = xyzf[1][0]; +var yMax = xyzf[1][0]; +var zXMin = 0; +var zXMax = 0; +var xr = xyzf[0]; +var yr = xyzf[1]; +var zr = xyzf[2]; +for (var i = this.rasterCount; --i > 0; ) { +var y = yr[i]; +if (y < yMin) yMin = y; + else if (y > yMax) yMax = y; + else { +y = -y; +if (y < yMin) yMin = y; + else if (y > yMax) yMax = y; +}} +for (var y = yMin; y <= yMax; ++y) { +var xMin = 2147483647; +var xMax = -2147483648; +for (var i = this.rasterCount; --i >= 0; ) { +if (yr[i] == y) { +var x = xr[i]; +if (x < xMin) { +xMin = x; +zXMin = zr[i]; +}if (x > xMax) { +xMax = x; +zXMax = zr[i]; +}}if (yr[i] == -y) { +var x = -xr[i]; +if (x < xMin) { +xMin = x; +zXMin = -zr[i]; +}if (x > xMax) { +xMax = x; +zXMax = -zr[i]; +}}} +var count = xMax - xMin + 1; +this.g3d.setColorNoisy(this.endcapShadeIndex); +this.g3d.plotPixelsClippedRaster(count, xT + xMin, yT + y, zT - zXMin - 1, zT - zXMax - 1, null, null); +} +}, "~B,~B,~A"); +Clazz.defineMethod(c$, "renderSphericalEndcaps", +function(){ +if (this.colixA != 0 && this.g3d.setC(this.colixA)) this.g3d.fillSphereXYZ(this.diameter, this.xA, this.yA, this.zA + 1); +if (this.colixB != 0 && this.g3d.setC(this.colixB)) this.g3d.fillSphereXYZ(this.diameter, this.xA + this.dxB, this.yA + this.dyB, this.zA + this.dzB + 1); +}); +Clazz.defineMethod(c$, "calcArgbEndcap", +function(tCylinder, isFloat){ +this.tEvenDiameter = ((this.diameter & 1) == 0); +this.radius = this.diameter / 2.0; +this.radius2 = this.radius * this.radius; +this.endCapHidden = false; +var dzf = (isFloat ? this.dzBf : this.dzB); +if (this.endcaps == 3 || dzf == 0) return; +this.xEndcap = this.xAend = this.xA; +this.yEndcap = this.yAend = this.yA; +this.zEndcap = this.zAend = this.zA; +var shadesEndcap; +var dxf = (isFloat ? this.dxBf : this.dxB); +var dyf = (isFloat ? this.dyBf : this.dyB); +if (dzf >= 0 || !tCylinder) { +this.endcapShadeIndex = this.shader.getShadeIndex(-dxf, -dyf, dzf); +if (this.colixA == 0) { +this.xAend += Clazz.doubleToInt(this.dxB / 2); +this.yAend += Clazz.doubleToInt(this.dyB / 2); +this.zAend += Clazz.doubleToInt(this.dzB / 2); +this.colixEndcap = this.colixB; +} else { +this.colixEndcap = this.colixA; +}} else { +this.endcapShadeIndex = this.shader.getShadeIndex(dxf, dyf, -dzf); +if (this.colixB == 0) { +this.colixEndcap = this.colixA; +this.xAend -= Clazz.doubleToInt(this.dxB / 2); +this.yAend -= Clazz.doubleToInt(this.dyB / 2); +this.zAend -= Clazz.doubleToInt(this.dzB / 2); +} else { +this.colixEndcap = this.colixB; +this.xEndcap += this.dxB; +this.yEndcap += this.dyB; +this.zEndcap += this.dzB; +}}shadesEndcap = (this.colixEndcap == this.colixA ? this.shadesA : this.shadesB); +if (this.endcapShadeIndex > 56) this.endcapShadeIndex = 56; +this.argbEndcap = shadesEndcap[this.endcapShadeIndex]; +this.endCapHidden = (this.endcaps == 1); +}, "~B,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/G3DRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/G3DRenderer.js new file mode 100755 index 000000000000..c8546bbe89d3 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/G3DRenderer.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.g3d"); +Clazz.declareInterface(J.g3d, "G3DRenderer"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/Graphics3D.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/Graphics3D.js new file mode 100755 index 000000000000..7cabe4ec7719 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/Graphics3D.js @@ -0,0 +1,1205 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["J.api.JmolRendererInterface", "JU.GData", "JU.P3i", "$.V3"], "J.g3d.Graphics3D", ["java.util.Arrays", "JU.AU", "J.api.Interface", "J.c.STER", "J.g3d.CylinderRenderer", "$.LineRenderer", "$.Pixelator", "$.PixelatorScreened", "$.PixelatorShaded", "$.PixelatorT", "$.Platform3D", "$.SphereRenderer", "$.TextRenderer", "$.TextString", "JU.C", "$.Normix"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.platform = null; +this.line3d = null; +this.sphere3d = null; +this.cylinder3d = null; +this.triangle3d = null; +this.circle3d = null; +this.hermite3d = null; +this.isFullSceneAntialiasingEnabled = false; +this.antialias2 = false; +this.strings = null; +this.stringCount = 0; +this.anaglyphChannelBytes = null; +this.twoPass = false; +this.$haveTranslucentObjects = false; +this.pbuf = null; +this.pbufT = null; +this.zbuf = null; +this.zbufT = null; +this.translucencyMask = 0; +this.renderLow = false; +this.shadesCurrent = null; +this.anaglyphLength = 0; +this.pixel = null; +this.pixel0 = null; +this.pixelT0 = null; +this.pixelScreened = null; +this.pixelShaded = null; +this.zMargin = 0; +this.aobuf = null; +this.currentShadeIndex = 0; +this.lastRawColor = 0; +this.translucencyLog = 0; +this.wasScreened = false; +this.saveAmbient = 0; +this.saveDiffuse = 0; +this.sA = null; +this.sB = null; +this.sC = null; +this.vectorAB = null; +this.vectorAC = null; +this.vectorNormal = null; +this.shadeIndexes = null; +this.shadeIndexes2Sided = null; +this.pass2Flag01 = 0; +Clazz.instantialize(this, arguments);}, J.g3d, "Graphics3D", JU.GData, J.api.JmolRendererInterface); +Clazz.prepareFields (c$, function(){ +this.sA = new JU.P3i(); +this.sB = new JU.P3i(); +this.sC = new JU.P3i(); +this.vectorAB = new JU.V3(); +this.vectorAC = new JU.V3(); +this.vectorNormal = new JU.V3(); +this.shadeIndexes = Clazz.newByteArray (JU.GData.normixCount, 0); +this.shadeIndexes2Sided = Clazz.newByteArray (JU.GData.normixCount, 0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.g3d.Graphics3D, []); +for (var i = JU.GData.normixCount; --i >= 0; ) this.transformedVectors[i] = new JU.V3(); + +}); +Clazz.overrideMethod(c$, "isWebGL", +function(){ +return false; +}); +Clazz.overrideMethod(c$, "clear", +function(){ +this.stringCount = 0; +this.strings = null; +J.g3d.TextRenderer.clearFontCache(); +}); +Clazz.overrideMethod(c$, "destroy", +function(){ +this.releaseBuffers(); +this.platform = null; +this.pixel = this.pixel0 = this.pixelShaded = null; +this.pixelT0 = null; +this.pixelScreened = null; +this.graphicsForMetrics = null; +}); +Clazz.defineMethod(c$, "setZMargin", +function(dz){ +this.zMargin = dz; +}, "~N"); +Clazz.overrideMethod(c$, "initialize", +function(vwr, apiPlatform){ +this.vwr = vwr; +this.apiPlatform = apiPlatform; +this.platform = new J.g3d.Platform3D(apiPlatform); +this.pixel = this.pixel0 = new J.g3d.Pixelator(this); +this.graphicsForMetrics = this.platform.getGraphicsForMetrics(); +this.line3d = new J.g3d.LineRenderer(this); +this.sphere3d = new J.g3d.SphereRenderer(this); +this.cylinder3d = new J.g3d.CylinderRenderer(this); +}, "JV.Viewer,J.api.GenericPlatform"); +Clazz.overrideMethod(c$, "addRenderer", +function(tok){ +switch (tok) { +case 1073741880: +if (this.circle3d == null) this.circle3d = this.getRenderer("Circle"); +break; +case 553648143: +if (this.hermite3d == null) this.hermite3d = this.getRenderer("Hermite"); +case 1073742182: +if (this.triangle3d == null) { +this.triangle3d = this.getRenderer("Triangle"); +(this.triangle3d).isOrthographic = !this.vwr.tm.perspectiveDepth; +}break; +} +}, "~N"); +Clazz.defineMethod(c$, "getRenderer", +function(type){ +var r = (J.api.Interface.getOption("g3d." + type + "Renderer", this.vwr, "render")); +if (r == null) throw new NullPointerException("Interface"); +r.set(this, this); +return r; +}, "~S"); +Clazz.overrideMethod(c$, "setWindowParameters", +function(width, height, antialias){ +this.setWinParams(width, height, antialias); +if (this.currentlyRendering) this.endRendering(); +}, "~N,~N,~B"); +Clazz.overrideMethod(c$, "checkTranslucent", +function(isAlphaTranslucent){ +if (isAlphaTranslucent) this.$haveTranslucentObjects = true; +return (!this.twoPass || this.twoPass && (this.isPass2 == isAlphaTranslucent)); +}, "~B"); +Clazz.overrideMethod(c$, "beginRendering", +function(rotationMatrix, translucentMode, isImageWrite, renderLow){ +if (this.currentlyRendering) this.endRendering(); +this.renderLow = renderLow; +if (this.windowWidth != this.newWindowWidth || this.windowHeight != this.newWindowHeight || this.newAntialiasing != this.isFullSceneAntialiasingEnabled) { +this.windowWidth = this.newWindowWidth; +this.windowHeight = this.newWindowHeight; +this.isFullSceneAntialiasingEnabled = this.newAntialiasing; +this.releaseBuffers(); +}this.setRotationMatrix(rotationMatrix); +(this.line3d).isOrthographic = !this.vwr.tm.perspectiveDepth; +if (this.triangle3d != null) (this.triangle3d).isOrthographic = !this.vwr.tm.perspectiveDepth; +this.antialiasEnabled = this.antialiasThisFrame = this.newAntialiasing; +this.currentlyRendering = true; +if (this.strings != null) for (var i = Math.min(this.strings.length, this.stringCount); --i >= 0; ) this.strings[i] = null; + +this.stringCount = 0; +this.twoPass = true; +this.isPass2 = false; +this.pass2Flag01 = 0; +this.colixCurrent = 0; +this.$haveTranslucentObjects = this.wasScreened = false; +this.pixel = this.pixel0; +this.pixel.bgcolor = this.bgcolor; +this.contrastColix = JU.C.getBgContrast(this.bgcolor); +this.translucentCoverOnly = !translucentMode; +if (this.pbuf == null) { +this.platform.allocateBuffers(this.windowWidth, this.windowHeight, this.antialiasThisFrame, isImageWrite); +this.pbuf = this.platform.pBuffer; +this.zbuf = this.platform.zBuffer; +this.aobuf = null; +this.pixel0.setBuf(); +if (this.pixelT0 != null) this.pixelT0.setBuf(); +if (this.pixelShaded != null) this.pixelShaded.setBuf(); +}this.setWidthHeight(this.antialiasThisFrame); +if (this.pixelScreened != null) this.pixelScreened.width = this.width; +this.platform.clearBuffer(); +if (this.backgroundImage != null) this.plotImage(-2147483648, 0, -2147483648, this.backgroundImage, null, 0, 0, 0); +this.textY = 0; +}, "JU.M3,~B,~B,~B"); +Clazz.overrideMethod(c$, "setBackgroundTransparent", +function(TF){ +if (this.platform != null) this.platform.setBackgroundTransparent(TF); +}, "~B"); +Clazz.defineMethod(c$, "releaseBuffers", +function(){ +this.pbuf = null; +this.zbuf = null; +this.pbufT = null; +this.zbufT = null; +this.aobuf = null; +this.platform.releaseBuffers(); +this.line3d.clearLineCache(); +}); +Clazz.overrideMethod(c$, "setPass2", +function(antialiasTranslucent){ +if (!this.$haveTranslucentObjects || !this.currentlyRendering) return false; +this.isPass2 = true; +this.pass2Flag01 = 1; +this.colixCurrent = 0; +if (this.pbufT == null || this.antialias2 != antialiasTranslucent) { +this.platform.allocateTBuffers(antialiasTranslucent); +this.pbufT = this.platform.pBufferT; +this.zbufT = this.platform.zBufferT; +}this.antialias2 = antialiasTranslucent; +if (this.antialiasThisFrame && !this.antialias2) this.downsampleFullSceneAntialiasing(true); +this.platform.clearTBuffer(); +if (this.pixelT0 == null) this.pixelT0 = new J.g3d.PixelatorT(this); +if (this.pixel.p0 == null) this.pixel = this.pixelT0; + else this.pixel.p0 = this.pixelT0; +return true; +}, "~B"); +Clazz.overrideMethod(c$, "endRendering", +function(){ +if (!this.currentlyRendering) return; +if (this.pbuf != null) { +if (this.isPass2 && this.pbufT != null) for (var offset = this.pbufT.length; --offset >= 0; ) this.pbuf[offset] = J.g3d.Graphics3D.mergeBufferPixel(this.pbuf[offset], this.pbufT[offset], this.bgcolor); + +if (this.pixel === this.pixelShaded && this.pixelShaded.zShadePower == 0) this.pixelShaded.showZBuffer(); +if (this.antialiasThisFrame) this.downsampleFullSceneAntialiasing(false); +}this.platform.setBackgroundColor(this.bgcolor); +this.platform.notifyEndOfRendering(); +this.currentlyRendering = this.isPass2 = false; +}); +c$.mergeBufferPixel = Clazz.defineMethod(c$, "mergeBufferPixel", +function(argbA, argbB, bgcolor){ +if (argbB == 0 || argbA == argbB) return argbA; +if (argbA == 0) argbA = bgcolor; +var rbA = (argbA & 0x00FF00FF); +var gA = (argbA & 0x0000FF00); +var rbB = (argbB & 0x00FF00FF); +var gB = (argbB & 0x0000FF00); +var logAlpha = (argbB >> 24) & 0xF; +switch (logAlpha) { +case 0: +rbA = rbB; +gA = gB; +break; +case 1: +rbA = (((rbB << 2) + (rbB << 1) + rbB + rbA) >> 3) & 0x00FF00FF; +gA = (((gB << 2) + +(gB << 1) + gB + gA) >> 3) & 0x0000FF00; +break; +case 2: +rbA = (((rbB << 1) + rbB + rbA) >> 2) & 0x00FF00FF; +gA = (((gB << 1) + gB + gA) >> 2) & 0x0000FF00; +break; +case 3: +rbA = (((rbB << 2) + rbB + (rbA << 1) + rbA) >> 3) & 0x00FF00FF; +gA = (((gB << 2) + gB + (gA << 1) + gA) >> 3) & 0x0000FF00; +break; +case 4: +rbA = ((rbA + rbB) >> 1) & 0x00FF00FF; +gA = ((gA + gB) >> 1) & 0x0000FF00; +break; +case 5: +rbA = (((rbB << 1) + rbB + (rbA << 2) + rbA) >> 3) & 0x00FF00FF; +gA = (((gB << 1) + gB + (gA << 2) + gA) >> 3) & 0x0000FF00; +break; +case 6: +rbA = (((rbA << 1) + rbA + rbB) >> 2) & 0x00FF00FF; +gA = (((gA << 1) + gA + gB) >> 2) & 0x0000FF00; +break; +case 7: +rbA = (((rbA << 2) + (rbA << 1) + rbA + rbB) >> 3) & 0x00FF00FF; +gA = (((gA << 2) + (gA << 1) + gA + gB) >> 3) & 0x0000FF00; +break; +} +return 0xFF000000 | rbA | gA; +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "getScreenImage", +function(isImageWrite){ +{ +var obj = this.platform.bufferedImage; if (isImageWrite) { +this.releaseBuffers(); } return obj; +}}, "~B"); +Clazz.overrideMethod(c$, "applyAnaglygh", +function(stereoMode, stereoColors){ +switch (stereoMode) { +case J.c.STER.REDCYAN: +for (var i = this.anaglyphLength; --i >= 0; ) { +var blue = this.anaglyphChannelBytes[i] & 0x000000FF; +var cyan = (blue << 8) | blue; +this.pbuf[i] = this.pbuf[i] & 0xFFFF0000 | cyan; +} +break; +case J.c.STER.CUSTOM: +var color1 = stereoColors[0]; +var color2 = stereoColors[1] & 0x00FFFFFF; +for (var i = this.anaglyphLength; --i >= 0; ) { +var a = this.anaglyphChannelBytes[i] & 0x000000FF; +a = (a | ((a | (a << 8)) << 8)) & color2; +this.pbuf[i] = (this.pbuf[i] & color1) | a; +} +break; +case J.c.STER.REDBLUE: +for (var i = this.anaglyphLength; --i >= 0; ) { +var blue = this.anaglyphChannelBytes[i] & 0x000000FF; +this.pbuf[i] = (this.pbuf[i] & 0xFFFF0000) | blue; +} +break; +case J.c.STER.REDGREEN: +for (var i = this.anaglyphLength; --i >= 0; ) { +var green = (this.anaglyphChannelBytes[i] & 0x000000FF) << 8; +this.pbuf[i] = (this.pbuf[i] & 0xFFFF0000) | green; +} +break; +case J.c.STER.DTI: +case J.c.STER.DOUBLE: +case J.c.STER.NONE: +break; +} +}, "J.c.STER,~A"); +Clazz.overrideMethod(c$, "snapshotAnaglyphChannelBytes", +function(){ +if (this.currentlyRendering) throw new NullPointerException(); +this.anaglyphLength = this.windowWidth * this.windowHeight; +if (this.anaglyphChannelBytes == null || this.anaglyphChannelBytes.length != this.anaglyphLength) this.anaglyphChannelBytes = Clazz.newByteArray (this.anaglyphLength, 0); +for (var i = this.anaglyphLength; --i >= 0; ) this.anaglyphChannelBytes[i] = this.pbuf[i]; + +}); +Clazz.overrideMethod(c$, "releaseScreenImage", +function(){ +this.platform.clearScreenBufferThreaded(); +}); +Clazz.overrideMethod(c$, "haveTranslucentObjects", +function(){ +return this.$haveTranslucentObjects; +}); +Clazz.overrideMethod(c$, "setSlabAndZShade", +function(slabValue, depthValue, zSlab, zDepth, zShadePower){ +this.setSlab(slabValue); +this.setDepth(depthValue); +if (zSlab < zDepth) { +if (this.pixelShaded == null) this.pixelShaded = new J.g3d.PixelatorShaded(this); +this.pixel = this.pixelShaded.set(zSlab, zDepth, zShadePower); +} else { +this.pixel = this.pixel0; +}}, "~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "downsampleFullSceneAntialiasing", +function(downsampleZBuffer){ +var bgcheck = this.bgcolor; +if (downsampleZBuffer) bgcheck += ((bgcheck & 0xFF) == 0xFF ? -1 : 1); +J.g3d.Graphics3D.downsample2d(this.pbuf, this.windowWidth, this.windowHeight, bgcheck); +if (downsampleZBuffer) { +J.g3d.Graphics3D.downsample2dZ(this.pbuf, this.zbuf, this.windowWidth, this.windowHeight, bgcheck); +this.antialiasThisFrame = false; +this.setWidthHeight(false); +}}, "~B"); +c$.downsample2d = Clazz.defineMethod(c$, "downsample2d", +function(pbuf, width, height, bgcheck){ +var width4 = width << 1; +if (bgcheck != 0) { +bgcheck &= 0xFFFFFF; +for (var i = pbuf.length; --i >= 0; ) if (pbuf[i] == 0) pbuf[i] = bgcheck; + +}var bg0 = ((bgcheck >> 2) & 0x3F3F3F3F) << 2; +bg0 += (bg0 & 0xC0C0C0C0) >> 6; +var offset1 = 0; +var offset4 = 0; +for (var i = height; --i >= 0; offset4 += width4) for (var j = width; --j >= 0; ++offset1) { +var argb = ((pbuf[offset4] >> 2) & 0x3F3F3F3F) + ((pbuf[offset4++ + width4] >> 2) & 0x3F3F3F3F) + ((pbuf[offset4] >> 2) & 0x3F3F3F3F) + ((pbuf[offset4++ + width4] >> 2) & 0x3F3F3F3F); +argb += (argb & 0xC0C0C0C0) >> 6; +if (argb == bg0) argb = bgcheck; +{ +pbuf[offset1] = argb & 0x00FFFFFF | 0xFF000000; +}} + +}, "~A,~N,~N,~N"); +c$.downsample2dZ = Clazz.defineMethod(c$, "downsample2dZ", +function(pbuf, zbuf, width, height, bgcheck){ +var width4 = width << 1; +var offset1 = 0; +var offset4 = 0; +for (var i = height; --i >= 0; offset4 += width4) for (var j = width; --j >= 0; ++offset1, ++offset4) { +var z = Math.min(zbuf[offset4], zbuf[offset4 + width4]); +z = Math.min(z, zbuf[++offset4]); +z = Math.min(z, zbuf[offset4 + width4]); +if (z != 2147483647) z >>= 1; +zbuf[offset1] = (pbuf[offset1] == bgcheck ? 2147483647 : z); +} + +}, "~A,~A,~N,~N,~N"); +Clazz.defineMethod(c$, "hasContent", +function(){ +return this.platform.hasContent(); +}); +Clazz.overrideMethod(c$, "setC", +function(colix){ +var isLast = JU.C.isColixLastAvailable(colix); +if (!isLast && colix == this.colixCurrent && this.currentShadeIndex == -1) return true; +var mask = colix & 30720; +if (mask == 16384) return false; +if (this.renderLow) mask = 0; +var isTranslucent = (mask != 0); +var isScreened = (isTranslucent && mask == 30720); +this.setScreened(isScreened); +if (!this.checkTranslucent(isTranslucent && !isScreened)) return false; +if (this.isPass2) { +this.translucencyMask = (mask << 13) | 0xFFFFFF; +this.translucencyLog = mask >> 11; +} else { +this.translucencyLog = 0; +}this.colixCurrent = colix; +if (isLast) { +if (this.argbCurrent != this.lastRawColor) { +if (this.argbCurrent == 0) this.argbCurrent = 0xFFFFFFFF; +this.lastRawColor = this.argbCurrent; +this.shader.setLastColix(this.argbCurrent, this.inGreyscaleMode); +}}this.shadesCurrent = this.getShades(colix); +this.currentShadeIndex = -1; +this.setColor(this.getColorArgbOrGray(colix)); +return true; +}, "~N"); +Clazz.defineMethod(c$, "setScreened", +function(isScreened){ +if (this.wasScreened != isScreened) { +this.wasScreened = isScreened; +if (isScreened) { +if (this.pixelScreened == null) this.pixelScreened = new J.g3d.PixelatorScreened(this, this.pixel0); +if (this.pixel.p0 == null) this.pixel = this.pixelScreened; + else this.pixel.p0 = this.pixelScreened; +} else if (this.pixel.p0 == null || this.pixel === this.pixelScreened) { +this.pixel = (this.isPass2 ? this.pixelT0 : this.pixel0); +} else { +this.pixel.p0 = (this.isPass2 ? this.pixelT0 : this.pixel0); +}}return this.pixel; +}, "~B"); +Clazz.overrideMethod(c$, "drawFilledCircle", +function(colixRing, colixFill, diameter, x, y, z){ +if (this.isClippedZ(z)) return; +var r = Clazz.doubleToInt((diameter + 1) / 2); +var isClipped = x < r || x + r >= this.width || y < r || y + r >= this.height; +if (isClipped && this.isClippedXY(diameter, x, y)) return; +if (colixRing != 0 && this.setC(colixRing)) { +if (isClipped) { +if (!this.isClippedXY(diameter, x, y)) (this.circle3d).plotCircleCenteredClipped(x, y, z, diameter); +} else { +(this.circle3d).plotCircleCenteredUnclipped(x, y, z, diameter); +}}if (colixFill != 0 && this.setC(colixFill)) { +if (isClipped) (this.circle3d).plotFilledCircleCenteredClipped(x, y, z, diameter); + else (this.circle3d).plotFilledCircleCenteredUnclipped(x, y, z, diameter); +}}, "~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "volumeRender4", +function(diameter, x, y, z){ +if (diameter == 1) { +this.plotPixelClippedArgb(this.argbCurrent, x, y, z, this.width, this.zbuf, this.pixel); +return; +}if (this.isClippedZ(z)) return; +var r = Clazz.doubleToInt((diameter + 1) / 2); +var isClipped = x < r || x + r >= this.width || y < r || y + r >= this.height; +if (isClipped && this.isClippedXY(diameter, x, y)) return; +if (isClipped) (this.circle3d).plotFilledCircleCenteredClipped(x, y, z, diameter); + else (this.circle3d).plotFilledCircleCenteredUnclipped(x, y, z, diameter); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillSphereXYZ", +function(diameter, x, y, z){ +switch (diameter) { +case 1: +this.plotPixelClippedArgb(this.argbCurrent, x, y, z, this.width, this.zbuf, this.pixel); +return; +case 0: +return; +} +if (diameter <= (this.antialiasThisFrame ? 2000 : 1000)) this.sphere3d.render(this.shadesCurrent, diameter, x, y, z, null, null, null, -1, null); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "volumeRender", +function(TF){ +if (TF) { +this.saveAmbient = this.getAmbientPercent(); +this.saveDiffuse = this.getDiffusePercent(); +this.setAmbientPercent(100); +this.setDiffusePercent(0); +this.addRenderer(1073741880); +} else { +this.setAmbientPercent(this.saveAmbient); +this.setDiffusePercent(this.saveDiffuse); +}}, "~B"); +Clazz.overrideMethod(c$, "fillSphereI", +function(diameter, center){ +this.fillSphereXYZ(diameter, center.x, center.y, center.z); +}, "~N,JU.P3i"); +Clazz.overrideMethod(c$, "fillSphereBits", +function(diameter, center){ +this.fillSphereXYZ(diameter, Math.round(center.x), Math.round(center.y), Math.round(center.z)); +}, "~N,JU.P3"); +Clazz.overrideMethod(c$, "fillEllipsoid", +function(center, points, x, y, z, diameter, mToEllipsoidal, coef, mDeriv, selectedOctant, octantPoints){ +switch (diameter) { +case 1: +this.plotPixelClippedArgb(this.argbCurrent, x, y, z, this.width, this.zbuf, this.pixel); +return; +case 0: +return; +} +if (diameter <= (this.antialiasThisFrame ? 2000 : 1000)) this.sphere3d.render(this.shadesCurrent, diameter, x, y, z, mToEllipsoidal, coef, mDeriv, selectedOctant, octantPoints); +}, "JU.P3,~A,~N,~N,~N,~N,JU.M3,~A,JU.M4,~N,~A"); +Clazz.overrideMethod(c$, "drawRect", +function(x, y, z, zSlab, rWidth, rHeight){ +if (zSlab != 0 && this.isClippedZ(zSlab)) return; +var w = rWidth - 1; +var h = rHeight - 1; +var xRight = x + w; +var yBottom = y + h; +if (y >= 0 && y < this.height) this.drawHLine(x, y, z, w); +if (yBottom >= 0 && yBottom < this.height) this.drawHLine(x, yBottom, z, w); +if (x >= 0 && x < this.width) this.drawVLine(x, y, z, h); +if (xRight >= 0 && xRight < this.width) this.drawVLine(xRight, y, z, h); +}, "~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "drawHLine", +function(x, y, z, w){ +if (w < 0) { +x += w; +w = -w; +}if (x < 0) { +w += x; +x = 0; +}if (x + w >= this.width) w = this.width - 1 - x; +var p = this.pixel; +var c = this.argbCurrent; +var offset = x + this.width * y; +for (var i = 0; i <= w; i++) { +if (z < this.zbuf[offset]) p.addPixel(offset, z, c); +offset++; +} +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "drawVLine", +function(x, y, z, h){ +if (h < 0) { +y += h; +h = -h; +}if (y < 0) { +h += y; +y = 0; +}if (y + h >= this.height) { +h = this.height - 1 - y; +}var offset = x + this.width * y; +var p = this.pixel; +var c = this.argbCurrent; +for (var i = 0; i <= h; i++) { +if (z < this.zbuf[offset]) p.addPixel(offset, z, c); +offset += this.width; +} +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillTextRect", +function(x, y, z, zSlab, widthFill, heightFill){ +if (this.isClippedZ(zSlab)) return; +var w = this.width; +if (x < 0) { +widthFill += x; +if (widthFill <= 0) return; +x = 0; +}if (x + widthFill > w) { +widthFill = w - x; +if (widthFill <= 0) return; +}if (y < 0) { +heightFill += y; +if (heightFill <= 0) return; +y = 0; +}if (y + heightFill > this.height) heightFill = this.height - y; +var c = this.argbCurrent; +if (this.isAntialiased()) c = J.g3d.Graphics3D.fixTextImageRGB(c); +var zb = this.zbuf; +var p = this.pixel; +while (--heightFill >= 0) this.plotPixelsUnclippedCount(c, widthFill, x, y++, z, w, zb, p); + +}, "~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawString", +function(str, font3d, xBaseline, yBaseline, z, zSlab, bgColix){ +this.currentShadeIndex = 0; +if (str == null) return; +if (this.isClippedZ(zSlab)) return; +this.drawStringNoSlab(str, font3d, xBaseline, yBaseline, z, bgColix); +}, "~S,JU.Font,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawStringNoSlab", +function(str, font3d, xBaseline, yBaseline, z, bgColix){ +if (str == null) return; +if (this.strings == null) this.strings = new Array(10); +if (this.stringCount == this.strings.length) this.strings = JU.AU.doubleLength(this.strings); +var t = new J.g3d.TextString(); +t.setText(str, font3d == null ? this.currentFont : (this.currentFont = font3d), this.argbCurrent, JU.C.isColixTranslucent(bgColix) ? (this.getColorArgbOrGray(bgColix) & 0xFFFFFF) | ((bgColix & 30720) << 13) : 0, xBaseline, yBaseline, z); +this.strings[this.stringCount++] = t; +}, "~S,JU.Font,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "renderAllStrings", +function(jmolRenderer){ +if (this.strings == null) return; +if (this.stringCount >= 2) { +if (J.g3d.Graphics3D.sort == null) J.g3d.Graphics3D.sort = new J.g3d.TextString(); +java.util.Arrays.sort(this.strings, J.g3d.Graphics3D.sort); +}for (var i = 0; i < this.stringCount; i++) { +var ts = this.strings[i]; +this.plotText(ts.x, ts.y, ts.z, ts.argb, ts.bgargb, ts.text, ts.font, jmolRenderer); +} +this.strings = null; +this.stringCount = 0; +}, "~O"); +Clazz.overrideMethod(c$, "plotText", +function(x, y, z, argb, bgargb, text, font3d, jmolRenderer){ +J.g3d.TextRenderer.plot(x, y, z, argb, bgargb, text, font3d, this, jmolRenderer, this.antialiasThisFrame); +}, "~N,~N,~N,~N,~N,~S,JU.Font,J.api.JmolRendererInterface"); +Clazz.overrideMethod(c$, "drawImage", +function(objImage, x, y, z, zSlab, bgcolix, width, height){ +if (objImage != null && width > 0 && height > 0 && !this.isClippedZ(zSlab)) this.plotImage(x, y, z, objImage, null, bgcolix, width, height); +}, "~O,~N,~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "plotImage", +function(x, y, z, image, jmolRenderer, bgcolix, imageWidth, imageHeight){ +this.setC(bgcolix); +if (!this.isPass2) this.translucencyMask = -1; +if (bgcolix == 0) this.argbCurrent = 0; +var isBackground = (x == -2147483648); +var bg = (isBackground ? this.bgcolor : this.argbCurrent); +if (isBackground) { +x = 0; +z = 2147483646; +imageWidth = this.width; +imageHeight = this.height; +}if (x + imageWidth <= 0 || x >= this.width || y + imageHeight <= 0 || y >= this.height) return; +var g; +{ +g = null; +}var buffer = this.apiPlatform.drawImageToBuffer(g, this.platform.offscreenImage, image, imageWidth, imageHeight, isBackground ? bg : 0); +if (buffer == null) return; +var zb = this.zbuf; +var w = this.width; +var p = this.pixel; +var h = this.height; +var t = this.translucencyLog; +if (jmolRenderer == null && (x >= 0 && x + imageWidth <= w && y >= 0 && y + imageHeight <= h)) { +for (var i = 0, offset = 0, pbufOffset = y * w + x; i < imageHeight; i++, pbufOffset += (w - imageWidth)) { +for (var j = 0; j < imageWidth; j++, offset++, pbufOffset++) { +if (z < zb[pbufOffset]) { +var b = buffer[offset]; +if ((b & 0xFF000000) == (-16777216)) p.addPixel(pbufOffset, z, b); +}} +} +} else { +if (jmolRenderer == null) jmolRenderer = this; +for (var i = 0, offset = 0; i < imageHeight; i++) for (var j = 0; j < imageWidth; j++) { +var b = buffer[offset++]; +if ((b & 0xFF000000) == (-16777216)) jmolRenderer.plotImagePixel(b, x + j, y + i, z, 8, bg, w, h, zb, p, t); +} + +}}, "~N,~N,~N,~O,J.api.JmolRendererInterface,~N,~N,~N"); +Clazz.overrideMethod(c$, "setFont", +function(font3d){ +this.currentFont = font3d; +}, "JU.Font"); +Clazz.overrideMethod(c$, "drawPixel", +function(x, y, z){ +this.plotPixelClippedArgb(this.argbCurrent, x, y, z, this.width, this.zbuf, this.pixel); +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "drawPoints", +function(count, coordinates, scale){ +if (scale > 1) { +var s2 = scale * scale * 0.8; +for (var i = -scale; i < scale; i++) { +for (var j = -scale; j < scale; j++) { +if (i * i + j * j > s2) continue; +this.plotPoints(count, coordinates, i, j); +this.plotPoints(count, coordinates, i, j); +} +} +} else { +this.plotPoints(count, coordinates, 0, 0); +}}, "~N,~A,~N"); +Clazz.overrideMethod(c$, "drawDashedLineBits", +function(run, rise, pointA, pointB){ +if (this.isAntialiased()) { +run += run; +rise += rise; +}this.setScreeni(pointA, this.sA); +this.setScreeni(pointB, this.sB); +this.drawLineABBits(run, rise, true); +}, "~N,~N,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "drawLineABBits", +function(run, rise, andClip){ +this.line3d.plotLineBits(this.argbCurrent, this.argbCurrent, this.sA, this.sB, run, rise, andClip); +if (Math.abs(this.sA.x - this.sB.x) < Math.abs(this.sA.y - this.sB.y)) { +this.sA.x += 1; +this.sB.x += 1; +this.line3d.plotLineBits(this.argbCurrent, this.argbCurrent, this.sA, this.sB, run, rise, andClip); +} else { +this.sA.y += 1; +this.sB.y += 1; +this.line3d.plotLineBits(this.argbCurrent, this.argbCurrent, this.sA, this.sB, run, rise, andClip); +}}, "~N,~N,~B"); +Clazz.defineMethod(c$, "setScreeni", +function(pt, p){ +p.x = Math.round(pt.x); +p.y = Math.round(pt.y); +p.z = Math.round(pt.z); +}, "JU.P3,JU.P3i"); +Clazz.overrideMethod(c$, "drawLineXYZ", +function(x1, y1, z1, x2, y2, z2){ +this.line3d.plotLineOld(this.argbCurrent, this.argbCurrent, x1, y1, z1, x2, y2, z2); +}, "~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawLine", +function(colixA, colixB, x1, y1, z1, x2, y2, z2){ +if (!this.setC(colixA)) colixA = 0; +var argbA = this.argbCurrent; +if (!this.setC(colixB)) colixB = 0; +if (colixA != 0 || colixB != 0) this.line3d.plotLineOld(argbA, this.argbCurrent, x1, y1, z1, x2, y2, z2); +}, "~N,~N,~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawLineBits", +function(colixA, colixB, pointA, pointB){ +if (!this.setC(colixA)) colixA = 0; +var argbA = this.argbCurrent; +if (!this.setC(colixB)) colixB = 0; +if (colixA != 0 || colixB != 0) { +this.setScreeni(pointA, this.sA); +this.setScreeni(pointB, this.sB); +this.line3d.plotLineBits(argbA, this.argbCurrent, this.sA, this.sB, 0, 0, false); +}}, "~N,~N,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "drawLinePixels", +function(a, b, z, zslab){ +this.sA.setT(a); +this.sB.setT(b); +this.sA.z = this.sB.z = z; +var slab0 = this.slab; +if (zslab == -2147483648) this.slab = 0; +this.drawLineABBits(0, 0, false); +this.slab = slab0; +}, "JU.P3i,JU.P3i,~N,~N"); +Clazz.overrideMethod(c$, "drawLineAB", +function(pointA, pointB){ +this.setScreeni(pointA, this.sA); +this.setScreeni(pointB, this.sB); +this.line3d.plotLineBits(this.argbCurrent, this.argbCurrent, this.sA, this.sB, 0, 0, false); +}, "JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "fillCylinderXYZ", +function(colixA, colixB, endcaps, diameter, xA, yA, zA, xB, yB, zB){ +if (diameter > this.ht3) return; +var screen = 0; +this.currentShadeIndex = 0; +if (!this.setC(colixB)) colixB = 0; +if (this.wasScreened) screen = 2; +if (!this.setC(colixA)) colixA = 0; +if (this.wasScreened) screen += 1; +if (colixA == 0 && colixB == 0) return; +this.cylinder3d.renderOld(colixA, colixB, screen, endcaps, diameter, xA, yA, zA, xB, yB, zB); +}, "~N,~N,~N,~N,~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "fillCylinderScreen3I", +function(endcaps, diameter, screenA, screenB, pt0f, pt1f, radius){ +if (diameter <= this.ht3) this.cylinder3d.renderOld(this.colixCurrent, this.colixCurrent, 0, endcaps, diameter, Clazz.floatToInt(screenA.x), Clazz.floatToInt(screenA.y), Clazz.floatToInt(screenA.z), Clazz.floatToInt(screenB.x), Clazz.floatToInt(screenB.y), Clazz.floatToInt(screenB.z)); +}, "~N,~N,JU.P3,JU.P3,JU.P3,JU.P3,~N"); +Clazz.overrideMethod(c$, "fillCylinder", +function(endcaps, diameter, screenA, screenB){ +if (diameter <= this.ht3) this.cylinder3d.renderOld(this.colixCurrent, this.colixCurrent, 0, endcaps, diameter, screenA.x, screenA.y, screenA.z, screenB.x, screenB.y, screenB.z); +}, "~N,~N,JU.P3i,JU.P3i"); +Clazz.overrideMethod(c$, "fillCylinderBits", +function(endcaps, diameter, screenA, screenB){ +if (diameter <= this.ht3 && screenA.z != 1 && screenB.z != 1) { +if (diameter == 0 || diameter == 1) { +this.setScreeni(screenA, this.sA); +this.setScreeni(screenB, this.sB); +this.line3d.plotLineBits(this.getColorArgbOrGray(this.colixCurrent), this.getColorArgbOrGray(this.colixCurrent), this.sA, this.sB, 0, 0, false); +return; +}this.cylinder3d.renderBitsFloat(this.colixCurrent, this.colixCurrent, 0, endcaps, diameter, screenA, screenB); +}}, "~N,~N,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "fillCylinderBits2", +function(colixA, colixB, endcaps, diameter, screenA, screenB){ +if (diameter > this.ht3) return; +var screen = 0; +this.currentShadeIndex = 0; +if (!this.setC(colixB)) colixB = 0; +if (this.wasScreened) screen = 2; +if (!this.setC(colixA)) colixA = 0; +if (this.wasScreened) screen += 1; +if (colixA == 0 && colixB == 0) return; +this.setScreeni(screenA, this.sA); +this.setScreeni(screenB, this.sB); +this.cylinder3d.renderBits(colixA, colixB, screen, endcaps, diameter, this.sA, this.sB); +}, "~N,~N,~N,~N,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "fillConeScreen3f", +function(endcap, screenDiameter, screenBase, screenTip, isBarb){ +if (screenDiameter <= this.ht3) this.cylinder3d.renderConeOld(this.colixCurrent, endcap, screenDiameter, screenBase.x, screenBase.y, screenBase.z, screenTip.x, screenTip.y, screenTip.z, true, isBarb); +}, "~N,~N,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "drawHermite4", +function(tension, s0, s1, s2, s3){ +(this.hermite3d).renderHermiteRope(false, tension, 0, 0, 0, s0, s1, s2, s3); +}, "~N,JU.P3,JU.P3,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "drawHermite7", +function(fill, border, tension, s0, s1, s2, s3, s4, s5, s6, s7, aspectRatio, colixBack){ +if (colixBack == 0) { +(this.hermite3d).renderHermiteRibbon(fill, border, tension, s0, s1, s2, s3, s4, s5, s6, s7, aspectRatio, 0); +return; +}(this.hermite3d).renderHermiteRibbon(fill, border, tension, s0, s1, s2, s3, s4, s5, s6, s7, aspectRatio, 1); +var colix = this.colixCurrent; +this.setC(colixBack); +(this.hermite3d).renderHermiteRibbon(fill, border, tension, s0, s1, s2, s3, s4, s5, s6, s7, aspectRatio, -1); +this.setC(colix); +}, "~B,~B,~N,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,~N,~N"); +Clazz.overrideMethod(c$, "fillHermite", +function(tension, diameterBeg, diameterMid, diameterEnd, s0, s1, s2, s3){ +(this.hermite3d).renderHermiteRope(true, tension, diameterBeg, diameterMid, diameterEnd, s0, s1, s2, s3); +}, "~N,~N,~N,~N,JU.P3,JU.P3,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "drawTriangle3C", +function(screenA, colixA, screenB, colixB, screenC, colixC, check){ +if ((check & 1) == 1) this.drawLine(colixA, colixB, screenA.x, screenA.y, screenA.z, screenB.x, screenB.y, screenB.z); +if ((check & 2) == 2) this.drawLine(colixB, colixC, screenB.x, screenB.y, screenB.z, screenC.x, screenC.y, screenC.z); +if ((check & 4) == 4) this.drawLine(colixA, colixC, screenA.x, screenA.y, screenA.z, screenC.x, screenC.y, screenC.z); +}, "JU.P3i,~N,JU.P3i,~N,JU.P3i,~N,~N"); +Clazz.overrideMethod(c$, "fillTriangleTwoSided", +function(normix, screenA, screenB, screenC){ +this.setColorNoisy(this.getShadeIndex(normix)); +this.fillTriangleP3f(screenA, screenB, screenC, false); +}, "~N,JU.P3,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "fillTriangleP3f", +function(screenA, screenB, screenC, useGouraud){ +this.setScreeni(screenA, this.sA); +this.setScreeni(screenB, this.sB); +this.setScreeni(screenC, this.sC); +(this.triangle3d).fillTriangle(this.sA, this.sB, this.sC, useGouraud); +}, "JU.P3,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "fillTriangle3f", +function(screenA, screenB, screenC, isSolid){ +var i = this.getShadeIndexP3(screenA, screenB, screenC, isSolid); +if (i < 0) return; +if (isSolid) this.setColorNoisy(i); + else this.setColor(this.shadesCurrent[i]); +this.fillTriangleP3f(screenA, screenB, screenC, false); +}, "JU.P3,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "fillTriangle3i", +function(screenA, screenB, screenC, ptA, ptB, ptC, doShade){ +if (doShade) { +var v = this.vectorAB; +v.set(screenB.x - screenA.x, screenB.y - screenA.y, screenB.z - screenA.z); +var shadeIndex; +if (screenC == null) { +shadeIndex = this.shader.getShadeIndex(-v.x, -v.y, v.z); +} else { +this.vectorAC.set(screenC.x - screenA.x, screenC.y - screenA.y, screenC.z - screenA.z); +v.cross(v, this.vectorAC); +shadeIndex = v.z >= 0 ? this.shader.getShadeIndex(-v.x, -v.y, v.z) : this.shader.getShadeIndex(v.x, v.y, -v.z); +}if (shadeIndex > 56) shadeIndex = 56; +this.setColorNoisy(shadeIndex); +}this.fillTriangleP3f(screenA, screenB, screenC, false); +}, "JU.P3,JU.P3,JU.P3,JU.T3,JU.T3,JU.T3,~B"); +Clazz.overrideMethod(c$, "fillTriangle3CN", +function(screenA, colixA, normixA, screenB, colixB, normixB, screenC, colixC, normixC){ +(this.triangle3d).fillTriangle(screenA, screenB, screenC, this.checkGouraud(colixA, colixB, colixC, normixA, normixB, normixC)); +}, "JU.P3i,~N,~N,JU.P3i,~N,~N,JU.P3i,~N,~N"); +Clazz.overrideMethod(c$, "fillTriangle3CNBits", +function(screenA, colixA, normixA, screenB, colixB, normixB, screenC, colixC, normixC, twoSided){ +this.fillTriangleP3f(screenA, screenB, screenC, this.checkGouraud(colixA, colixB, colixC, normixA, normixB, normixC)); +}, "JU.P3,~N,~N,JU.P3,~N,~N,JU.P3,~N,~N,~B"); +Clazz.defineMethod(c$, "checkGouraud", +function(colixA, colixB, colixC, normixA, normixB, normixC){ +if (!this.isPass2 && normixA == normixB && normixA == normixC && colixA == colixB && colixA == colixC) { +var shadeIndex = this.getShadeIndex(normixA); +if (colixA != this.colixCurrent || this.currentShadeIndex != shadeIndex) { +this.currentShadeIndex = -1; +this.setC(colixA); +this.setColorNoisy(shadeIndex); +}return false; +}this.setTriangleTranslucency(colixA, colixB, colixC); +(this.triangle3d).setGouraud(this.getShades(colixA)[this.getShadeIndex(normixA)], this.getShades(colixB)[this.getShadeIndex(normixB)], this.getShades(colixC)[this.getShadeIndex(normixC)]); +return true; +}, "~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "getShadeIndex", +function(normix){ +return (normix == -10000 || normix == 9999 ? J.g3d.Graphics3D.nullShadeIndex : normix < 0 ? this.shadeIndexes2Sided[~normix] : this.shadeIndexes[normix]); +}, "~N"); +Clazz.defineMethod(c$, "setTriangleTranslucency", +function(colixA, colixB, colixC){ +if (this.isPass2) { +var maskA = colixA & 30720; +var maskB = colixB & 30720; +var maskC = colixC & 30720; +maskA &= -16385; +maskB &= -16385; +maskC &= -16385; +var mask = JU.GData.roundInt(Clazz.doubleToInt((maskA + maskB + maskC) / 3)) & 30720; +this.translucencyMask = (mask << 13) | 0xFFFFFF; +}}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "fillQuadrilateral", +function(screenA, screenB, screenC, screenD, isSolid){ +var i = this.getShadeIndexP3(screenA, screenB, screenC, isSolid); +if (i < 0) return; +this.setColorNoisy(i); +this.fillTriangleP3f(screenA, screenB, screenC, false); +this.fillTriangleP3f(screenA, screenC, screenD, false); +}, "JU.P3,JU.P3,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "drawSurface", +function(meshSurface, colix){ +}, "JU.MeshSurface,~N"); +Clazz.overrideMethod(c$, "plotPixelClippedP3i", +function(screen){ +this.plotPixelClippedArgb(this.argbCurrent, screen.x, screen.y, screen.z, this.width, this.zbuf, this.pixel); +}, "JU.P3i"); +Clazz.defineMethod(c$, "plotPixelClippedArgb", +function(argb, x, y, z, width, zbuf, p){ +if (this.isClipped3(x, y, z)) return; +var offset = y * width + x; +if (z < zbuf[offset]) p.addPixel(offset, z, argb); +}, "~N,~N,~N,~N,~N,~A,J.g3d.Pixelator"); +Clazz.defineMethod(c$, "plotPixelUnclipped", +function(argb, x, y, z, width, zbuf, p){ +var offset = y * width + x; +if (z < zbuf[offset]) p.addPixel(offset, z, argb); +}, "~N,~N,~N,~N,~N,~A,J.g3d.Pixelator"); +Clazz.defineMethod(c$, "plotImagePixel", +function(argb, x, y, z, shade, bgargb, width, height, zbuf, p, transpLog){ +if (x < 0 || x >= width || y < 0 || y >= height) return; +(p).addImagePixel(shade, transpLog, y * width + x, z, argb, bgargb); +}, "~N,~N,~N,~N,~N,~N,~N,~N,~A,~O,~N"); +Clazz.defineMethod(c$, "plotPixelsClippedRaster", +function(count, x, y, zAtLeft, zPastRight, rgb16Left, rgb16Right){ +var depth; +var slab; +if (count <= 0 || y < 0 || y >= this.height || x >= this.width || (zAtLeft < (slab = this.slab) && zPastRight < slab) || (zAtLeft > (depth = this.depth) && zPastRight > depth)) return; +var zb = this.zbuf; +var seed = (x << 16) + (y << 1) ^ 0x33333333; +var zScaled = (zAtLeft << 10) + (512); +var dz = zPastRight - zAtLeft; +var roundFactor = Clazz.doubleToInt(count / 2); +var zIncrementScaled = JU.GData.roundInt(Clazz.doubleToInt(((dz << 10) + (dz >= 0 ? roundFactor : -roundFactor)) / count)); +if (x < 0) { +x = -x; +zScaled += zIncrementScaled * x; +count -= x; +if (count <= 0) return; +x = 0; +}if (count + x > this.width) count = this.width - x; +var offsetPbuf = y * this.width + x; +var p = this.pixel; +if (rgb16Left == null) { +var adn = this.argbNoisyDn; +var aup = this.argbNoisyUp; +var ac = this.argbCurrent; +while (--count >= 0) { +var z = zScaled >> 10; +if (z >= slab && z <= depth && z < zb[offsetPbuf]) { +seed = ((seed << 16) + (seed << 1) + seed) & 0x7FFFFFFF; +var bits = (seed >> 16) & 0x07; +p.addPixel(offsetPbuf, z, bits == 0 ? adn : (bits == 1 ? aup : ac)); +}++offsetPbuf; +zScaled += zIncrementScaled; +} +} else { +var rScaled = rgb16Left.r << 8; +var rIncrement = Clazz.doubleToInt(((rgb16Right.r - rgb16Left.r) << 8) / count); +var gScaled = rgb16Left.g; +var gIncrement = Clazz.doubleToInt((rgb16Right.g - gScaled) / count); +var bScaled = rgb16Left.b; +var bIncrement = Clazz.doubleToInt((rgb16Right.b - bScaled) / count); +while (--count >= 0) { +var z = zScaled >> 10; +if (z >= slab && z <= depth && z < zb[offsetPbuf]) p.addPixel(offsetPbuf, z, 0xFF000000 | (rScaled & 0xFF0000) | (gScaled & 0xFF00) | ((bScaled >> 8) & 0xFF)); +++offsetPbuf; +zScaled += zIncrementScaled; +rScaled += rIncrement; +gScaled += gIncrement; +bScaled += bIncrement; +} +}}, "~N,~N,~N,~N,~N,JU.Rgb16,JU.Rgb16"); +Clazz.defineMethod(c$, "plotPixelsUnclippedRaster", +function(count, x, y, zAtLeft, zPastRight, rgb16Left, rgb16Right){ +if (count <= 0) return; +var seed = ((x << 16) + (y << 1) ^ 0x33333333) & 0x7FFFFFFF; +var zScaled = (zAtLeft << 10) + (512); +var dz = zPastRight - zAtLeft; +var roundFactor = Clazz.doubleToInt(count / 2); +var zIncrementScaled = JU.GData.roundInt(Clazz.doubleToInt(((dz << 10) + (dz >= 0 ? roundFactor : -roundFactor)) / count)); +var offsetPbuf = y * this.width + x; +var zb = this.zbuf; +var p = this.pixel; +if (rgb16Left == null) { +var adn = this.argbNoisyDn; +var aup = this.argbNoisyUp; +var ac = this.argbCurrent; +while (--count >= 0) { +var z = zScaled >> 10; +if (z < zb[offsetPbuf]) { +seed = ((seed << 16) + (seed << 1) + seed) & 0x7FFFFFFF; +var bits = (seed >> 16) & 0x07; +p.addPixel(offsetPbuf, z, bits == 0 ? adn : (bits == 1 ? aup : ac)); +}++offsetPbuf; +zScaled += zIncrementScaled; +} +} else { +var rScaled = rgb16Left.r << 8; +var rIncrement = JU.GData.roundInt(Clazz.doubleToInt(((rgb16Right.r - rgb16Left.r) << 8) / count)); +var gScaled = rgb16Left.g; +var gIncrement = JU.GData.roundInt(Clazz.doubleToInt((rgb16Right.g - gScaled) / count)); +var bScaled = rgb16Left.b; +var bIncrement = JU.GData.roundInt(Clazz.doubleToInt((rgb16Right.b - bScaled) / count)); +while (--count >= 0) { +var z = zScaled >> 10; +if (z < zb[offsetPbuf]) p.addPixel(offsetPbuf, z, 0xFF000000 | (rScaled & 0xFF0000) | (gScaled & 0xFF00) | ((bScaled >> 8) & 0xFF)); +++offsetPbuf; +zScaled += zIncrementScaled; +rScaled += rIncrement; +gScaled += gIncrement; +bScaled += bIncrement; +} +}}, "~N,~N,~N,~N,~N,JU.Rgb16,JU.Rgb16"); +Clazz.defineMethod(c$, "plotPixelsClippedRasterBits", +function(count, x, y, zAtLeft, zPastRight, rgb16Left, rgb16Right, a, b){ +var depth; +var slab; +if (count <= 0 || y < 0 || y >= this.height || x >= this.width || (zAtLeft < (slab = this.slab) && zPastRight < slab) || (zAtLeft > (depth = this.depth) && zPastRight > depth)) return; +var zb = this.zbuf; +var seed = (x << 16) + (y << 1) ^ 0x33333333; +if (x < 0) { +x = -x; +count -= x; +if (count <= 0) return; +x = 0; +}if (count + x > this.width) count = this.width - x; +var offsetPbuf = y * this.width + x; +var p = this.pixel; +if (rgb16Left == null) { +var adn = this.argbNoisyDn; +var aup = this.argbNoisyUp; +var ac = this.argbCurrent; +while (--count >= 0) { +var zCurrent = this.line3d.getZCurrent(a, b, x++); +if (zCurrent >= slab && zCurrent <= depth && zCurrent < zb[offsetPbuf]) { +seed = ((seed << 16) + (seed << 1) + seed) & 0x7FFFFFFF; +var bits = (seed >> 16) & 0x07; +p.addPixel(offsetPbuf, zCurrent, bits < 2 ? adn : bits < 6 ? aup : ac); +}++offsetPbuf; +} +} else { +var rScaled = rgb16Left.r << 8; +var rIncrement = Clazz.doubleToInt(((rgb16Right.r - rgb16Left.r) << 8) / count); +var gScaled = rgb16Left.g; +var gIncrement = Clazz.doubleToInt((rgb16Right.g - gScaled) / count); +var bScaled = rgb16Left.b; +var bIncrement = Clazz.doubleToInt((rgb16Right.b - bScaled) / count); +while (--count >= 0) { +var zCurrent = this.line3d.getZCurrent(a, b, x++); +if (zCurrent >= slab && zCurrent <= depth && zCurrent < zb[offsetPbuf]) p.addPixel(offsetPbuf, zCurrent, 0xFF000000 | (rScaled & 0xFF0000) | (gScaled & 0xFF00) | ((bScaled >> 8) & 0xFF)); +++offsetPbuf; +rScaled += rIncrement; +gScaled += gIncrement; +bScaled += bIncrement; +} +}}, "~N,~N,~N,~N,~N,JU.Rgb16,JU.Rgb16,~N,~N"); +Clazz.defineMethod(c$, "plotPixelsUnclippedRasterBits", +function(count, x, y, rgb16Left, rgb16Right, a, b){ +if (count <= 0) return; +var seed = ((x << 16) + (y << 1) ^ 0x33333333) & 0x7FFFFFFF; +var offsetPbuf = y * this.width + x; +var zb = this.zbuf; +var p = this.pixel; +if (rgb16Left == null) { +var adn = this.argbNoisyDn; +var aup = this.argbNoisyUp; +var ac = this.argbCurrent; +while (--count >= 0) { +var zCurrent = this.line3d.getZCurrent(a, b, x++); +if (zCurrent < zb[offsetPbuf]) { +seed = ((seed << 16) + (seed << 1) + seed) & 0x7FFFFFFF; +var bits = (seed >> 16) & 0x07; +var c = (bits == 0 ? adn : bits == 1 ? aup : ac); +p.addPixel(offsetPbuf, zCurrent, c); +}++offsetPbuf; +} +} else { +var rScaled = rgb16Left.r << 8; +var rIncrement = JU.GData.roundInt(Clazz.doubleToInt(((rgb16Right.r - rgb16Left.r) << 8) / count)); +var gScaled = rgb16Left.g; +var gIncrement = JU.GData.roundInt(Clazz.doubleToInt((rgb16Right.g - gScaled) / count)); +var bScaled = rgb16Left.b; +var bIncrement = JU.GData.roundInt(Clazz.doubleToInt((rgb16Right.b - bScaled) / count)); +while (--count >= 0) { +var zCurrent = this.line3d.getZCurrent(a, b, x++); +if (zCurrent < zb[offsetPbuf]) p.addPixel(offsetPbuf, zCurrent, 0xFF000000 | (rScaled & 0xFF0000) | (gScaled & 0xFF00) | ((bScaled >> 8) & 0xFF)); +++offsetPbuf; +rScaled += rIncrement; +gScaled += gIncrement; +bScaled += bIncrement; +} +}}, "~N,~N,~N,JU.Rgb16,JU.Rgb16,~N,~N"); +Clazz.defineMethod(c$, "plotPixelsUnclippedCount", +function(c, count, x, y, z, width, zbuf, p){ +var offsetPbuf = y * width + x; +while (--count >= 0) { +if (z < zbuf[offsetPbuf]) p.addPixel(offsetPbuf, z, c); +++offsetPbuf; +} +}, "~N,~N,~N,~N,~N,~N,~A,J.g3d.Pixelator"); +Clazz.defineMethod(c$, "plotPoints", +function(count, coordinates, xOffset, yOffset){ +var p = this.pixel; +var c = this.argbCurrent; +var zb = this.zbuf; +var w = this.width; +var antialias = this.antialiasThisFrame; +for (var i = count * 3; i > 0; ) { +var z = coordinates[--i]; +var y = coordinates[--i] + yOffset; +var x = coordinates[--i] + xOffset; +if (this.isClipped3(x, y, z)) continue; +var offset = y * w + x++; +if (z < zb[offset]) p.addPixel(offset, z, c); +if (antialias) { +offset = y * w + x; +if (!this.isClipped3(x, y, z) && z < zb[offset]) p.addPixel(offset, z, c); +offset = (++y) * w + x; +if (!this.isClipped3(x, y, z) && z < zb[offset]) p.addPixel(offset, z, c); +offset = y * w + (--x); +if (!this.isClipped3(x, y, z) && z < zb[offset]) p.addPixel(offset, z, c); +}} +}, "~N,~A,~N,~N"); +Clazz.defineMethod(c$, "setColorNoisy", +function(shadeIndex){ +this.currentShadeIndex = shadeIndex; +this.argbCurrent = this.shadesCurrent[shadeIndex]; +this.argbNoisyUp = this.shadesCurrent[shadeIndex < 63 ? shadeIndex + 1 : 63]; +this.argbNoisyDn = this.shadesCurrent[shadeIndex > 0 ? shadeIndex - 1 : 0]; +}, "~N"); +Clazz.defineMethod(c$, "getShadeIndexP3", +function(screenA, screenB, screenC, isSolid){ +this.vectorAB.sub2(screenB, screenA); +this.vectorAC.sub2(screenC, screenA); +var v = this.vectorNormal; +v.cross(this.vectorAB, this.vectorAC); +var i = (v.z < 0 ? this.shader.getShadeIndex(v.x, v.y, -v.z) : isSolid ? -1 : this.shader.getShadeIndex(-v.x, -v.y, v.z)); +return i; +}, "JU.P3,JU.P3,JU.P3,~B"); +Clazz.overrideMethod(c$, "renderBackground", +function(jmolRenderer){ +if (this.backgroundImage != null) this.plotImage(-2147483648, 0, -2147483648, this.backgroundImage, jmolRenderer, 0, 0, 0); +}, "J.api.JmolRendererInterface"); +Clazz.overrideMethod(c$, "drawAtom", +function(atom, radius){ +this.fillSphereXYZ(atom.sD, atom.sX, atom.sY, atom.sZ); +}, "JM.Atom,~N"); +Clazz.overrideMethod(c$, "getExportType", +function(){ +return 0; +}); +Clazz.overrideMethod(c$, "getExportName", +function(){ +return null; +}); +Clazz.defineMethod(c$, "canDoTriangles", +function(){ +return true; +}); +Clazz.defineMethod(c$, "isCartesianExport", +function(){ +return false; +}); +Clazz.overrideMethod(c$, "initializeExporter", +function(vwr, privateKey, g3d, params){ +return null; +}, "JV.Viewer,~N,JU.GData,java.util.Map"); +Clazz.overrideMethod(c$, "finalizeOutput", +function(){ +return null; +}); +Clazz.overrideMethod(c$, "drawBond", +function(atomA, atomB, colixA, colixB, endcaps, mad, bondOrder){ +}, "JU.P3,JU.P3,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "drawEllipse", +function(ptAtom, ptX, ptY, fillArc, wireframeOnly){ +return false; +}, "JU.P3,JU.P3,JU.P3,~B,~B"); +Clazz.defineMethod(c$, "getPrivateKey", +function(){ +return 0; +}); +Clazz.overrideMethod(c$, "clearFontCache", +function(){ +J.g3d.TextRenderer.clearFontCache(); +}); +Clazz.defineMethod(c$, "setRotationMatrix", +function(rotationMatrix){ +var vertexVectors = JU.Normix.getVertexVectors(); +for (var i = JU.GData.normixCount; --i >= 0; ) { +var tv = this.transformedVectors[i]; +rotationMatrix.rotate2(vertexVectors[i], tv); +this.shadeIndexes[i] = this.shader.getShadeB(tv.x, -tv.y, tv.z); +this.shadeIndexes2Sided[i] = (tv.z >= 0 ? this.shadeIndexes[i] : this.shader.getShadeB(-tv.x, tv.y, -tv.z)); +} +}, "JU.M3"); +Clazz.overrideMethod(c$, "renderCrossHairs", +function(minMax, screenWidth, screenHeight, navOffset, navDepth){ +var antialiased = this.isAntialiased(); +this.setC(navDepth < 0 ? 10 : navDepth > 100 ? 11 : 23); +var x = Math.max(Math.min(this.width, Math.round(navOffset.x)), 0); +var y = Math.max(Math.min(this.height, Math.round(navOffset.y)), 0); +var z = Math.round(navOffset.z) + 1; +var off = (antialiased ? 8 : 4); +var h = (antialiased ? 20 : 10); +var w = (antialiased ? 2 : 1); +this.drawRect(x - off, y, z, 0, h, w); +this.drawRect(x, y - off, z, 0, w, h); +this.drawRect(x - off, y - off, z, 0, h, h); +off = h; +h = h >> 1; +this.setC(minMax[1] < navOffset.x ? 21 : 11); +this.drawRect(x - off, y, z, 0, h, w); +this.setC(minMax[0] > navOffset.x ? 21 : 11); +this.drawRect(x + h, y, z, 0, h, w); +this.setC(minMax[3] < navOffset.y ? 21 : 11); +this.drawRect(x, y - off, z, 0, w, h); +this.setC(minMax[2] > navOffset.y ? 21 : 11); +this.drawRect(x, y + h, z, 0, w, h); +}, "~A,~N,~N,JU.P3,~N"); +Clazz.overrideMethod(c$, "initializeOutput", +function(vwr, privateKey, params){ +return false; +}, "JV.Viewer,~N,java.util.Map"); +c$.fixTextImageRGB = Clazz.defineMethod(c$, "fixTextImageRGB", +function(argb){ +return ((argb & 0xC0C0C0) == 0 ? argb | 0x040404 : argb); +}, "~N"); +c$.sort = null; +c$.nullShadeIndex = 50; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/HermiteRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/HermiteRenderer.js new file mode 100755 index 000000000000..403f892671ac --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/HermiteRenderer.js @@ -0,0 +1,364 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["J.g3d.G3DRenderer", "JU.P3", "$.V3"], "J.g3d.HermiteRenderer", ["JU.Lst", "$.P3i"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.g3d = null; +this.gdata = null; +this.pLeft = null; +this.pRight = null; +this.sLeft = null; +this.sRight = null; +this.pTopLeft = null; +this.pTopRight = null; +this.pBotLeft = null; +this.pBotRight = null; +this.a1 = null; +this.a2 = null; +this.b1 = null; +this.b2 = null; +this.c1 = null; +this.c2 = null; +this.d1 = null; +this.d2 = null; +this.T1 = null; +this.T2 = null; +this.depth1 = null; +this.needToFill = null; +Clazz.instantialize(this, arguments);}, J.g3d, "HermiteRenderer", null, J.g3d.G3DRenderer); +Clazz.prepareFields (c$, function(){ +this.pLeft = new Array(16); +this.pRight = new Array(16); +this.sLeft = Clazz.newFloatArray (16, 0); +this.sRight = Clazz.newFloatArray (16, 0); +this.pTopLeft = new Array(16); +this.pTopRight = new Array(16); +this.pBotLeft = new Array(16); +this.pBotRight = new Array(16); +{ +for (var i = 16; --i >= 0; ) { +this.pLeft[i] = new JU.P3i(); +this.pRight[i] = new JU.P3i(); +this.pTopLeft[i] = new JU.P3(); +this.pTopRight[i] = new JU.P3(); +this.pBotLeft[i] = new JU.P3(); +this.pBotRight[i] = new JU.P3(); +} +}this.a1 = new JU.P3(); +this.a2 = new JU.P3(); +this.b1 = new JU.P3(); +this.b2 = new JU.P3(); +this.c1 = new JU.P3(); +this.c2 = new JU.P3(); +this.d1 = new JU.P3(); +this.d2 = new JU.P3(); +this.T1 = new JU.V3(); +this.T2 = new JU.V3(); +this.depth1 = new JU.V3(); +this.needToFill = Clazz.newBooleanArray(16, false); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.overrideMethod(c$, "set", +function(g3d, gdata){ +this.g3d = g3d; +this.gdata = gdata; +return this; +}, "J.api.JmolRendererInterface,JU.GData"); +Clazz.defineMethod(c$, "renderHermiteRope", +function(fill, tension, diameterBeg, diameterMid, diameterEnd, p0, p1, p2, p3){ +var z1 = Clazz.floatToInt(p1.z); +var z2 = Clazz.floatToInt(p2.z); +if (p0.z == 1 || z1 == 1 || z2 == 1 || p3.z == 1) return; +if (this.gdata.isClippedZ(z1) || this.gdata.isClippedZ(z2)) return; +var x1 = Clazz.floatToInt(p1.x); +var y1 = Clazz.floatToInt(p1.y); +var x2 = Clazz.floatToInt(p2.x); +var y2 = Clazz.floatToInt(p2.y); +var xT1 = Clazz.doubleToInt(((x2 - Clazz.floatToInt(p0.x)) * tension) / 8); +var yT1 = Clazz.doubleToInt(((y2 - Clazz.floatToInt(p0.y)) * tension) / 8); +var zT1 = Clazz.doubleToInt(((z2 - Clazz.floatToInt(p0.z)) * tension) / 8); +var xT2 = Clazz.doubleToInt(((Clazz.floatToInt(p3.x) - x1) * tension) / 8); +var yT2 = Clazz.doubleToInt(((Clazz.floatToInt(p3.y) - y1) * tension) / 8); +var zT2 = Clazz.doubleToInt(((Clazz.floatToInt(p3.z) - z1) * tension) / 8); +this.sLeft[0] = 0; +this.pLeft[0].set(x1, y1, z1); +this.sRight[0] = 1; +this.pRight[0].set(x2, y2, z2); +var sp = 0; +var dDiameterFirstHalf = 0; +var dDiameterSecondHalf = 0; +if (fill) { +dDiameterFirstHalf = 2 * (diameterMid - diameterBeg); +dDiameterSecondHalf = 2 * (diameterEnd - diameterMid); +}do { +var a = this.pLeft[sp]; +var b = this.pRight[sp]; +var dx = b.x - a.x; +if (dx >= -1 && dx <= 1) { +var dy = b.y - a.y; +if (dy >= -1 && dy <= 1) { +var s = this.sLeft[sp]; +if (fill) { +var d = (s < 0.5 ? diameterBeg + Clazz.floatToInt(dDiameterFirstHalf * s) : diameterMid + Clazz.floatToInt(dDiameterSecondHalf * (s - 0.5))); +this.g3d.fillSphereI(d, a); +} else { +this.g3d.plotPixelClippedP3i(a); +}--sp; +continue; +}}var s = (this.sLeft[sp] + this.sRight[sp]) / 2; +var s2 = s * s; +var s3 = s2 * s; +var h1 = 2 * s3 - 3 * s2 + 1; +var h2 = -2 * s3 + 3 * s2; +var h3 = s3 - 2 * s2 + s; +var h4 = s3 - s2; +if (sp >= 15) break; +var pMid = this.pRight[sp + 1]; +pMid.x = Clazz.doubleToInt(h1 * x1 + h2 * x2 + h3 * xT1 + h4 * xT2); +pMid.y = Clazz.doubleToInt(h1 * y1 + h2 * y2 + h3 * yT1 + h4 * yT2); +pMid.z = Clazz.doubleToInt(h1 * z1 + h2 * z2 + h3 * zT1 + h4 * zT2); +this.pRight[sp + 1] = this.pRight[sp]; +this.sRight[sp + 1] = this.sRight[sp]; +this.pRight[sp] = pMid; +this.sRight[sp] = s; +++sp; +this.pLeft[sp].setT(pMid); +this.sLeft[sp] = s; +} while (sp >= 0); +}, "~B,~N,~N,~N,~N,JU.P3,JU.P3,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "renderHermiteRibbon", +function(fill, border, tension, p0, p1, p2, p3, p4, p5, p6, p7, aspectRatio, fillType){ +if (p0.z == 1 || p1.z == 1 || p2.z == 1 || p3.z == 1 || p4.z == 1 || p5.z == 1 || p6.z == 1 || p7.z == 1) return; +if (!fill) { +tension = Math.abs(tension); +this.renderParallelPair(fill, tension, p0, p1, p2, p3, p4, p5, p6, p7); +return; +}var isRev = (tension < 0); +if (isRev) tension = -tension; +var ratio = 1 / aspectRatio; +var x1 = Clazz.floatToInt(p1.x); +var y1 = Clazz.floatToInt(p1.y); +var z1 = Clazz.floatToInt(p1.z); +var x2 = Clazz.floatToInt(p2.x); +var y2 = Clazz.floatToInt(p2.y); +var z2 = Clazz.floatToInt(p2.z); +var xT1 = Clazz.doubleToInt(((x2 - Clazz.floatToInt(p0.x)) * tension) / 8); +var yT1 = Clazz.doubleToInt(((y2 - Clazz.floatToInt(p0.y)) * tension) / 8); +var zT1 = Clazz.doubleToInt(((z2 - Clazz.floatToInt(p0.z)) * tension) / 8); +var xT2 = Clazz.doubleToInt(((Clazz.floatToInt(p3.x) - x1) * tension) / 8); +var yT2 = Clazz.doubleToInt(((Clazz.floatToInt(p3.y) - y1) * tension) / 8); +var zT2 = Clazz.doubleToInt(((Clazz.floatToInt(p3.z) - z1) * tension) / 8); +this.pTopLeft[0].set(x1, y1, z1); +this.pTopRight[0].set(x2, y2, z2); +var x5 = Clazz.floatToInt(p5.x); +var y5 = Clazz.floatToInt(p5.y); +var z5 = Clazz.floatToInt(p5.z); +var x6 = Clazz.floatToInt(p6.x); +var y6 = Clazz.floatToInt(p6.y); +var z6 = Clazz.floatToInt(p6.z); +var xT5 = Clazz.doubleToInt(((x6 - Clazz.floatToInt(p4.x)) * tension) / 8); +var yT5 = Clazz.doubleToInt(((y6 - Clazz.floatToInt(p4.y)) * tension) / 8); +var zT5 = Clazz.doubleToInt(((z6 - Clazz.floatToInt(p4.z)) * tension) / 8); +var xT6 = Clazz.doubleToInt(((Clazz.floatToInt(p7.x) - x5) * tension) / 8); +var yT6 = Clazz.doubleToInt(((Clazz.floatToInt(p7.y) - y5) * tension) / 8); +var zT6 = Clazz.doubleToInt(((Clazz.floatToInt(p7.z) - z5) * tension) / 8); +this.pBotLeft[0].set(x5, y5, z5); +this.pBotRight[0].set(x6, y6, z6); +this.sLeft[0] = 0; +this.sRight[0] = 1; +this.needToFill[0] = true; +var sp = 0; +var closeEnd = false; +do { +var a = this.pTopLeft[sp]; +var b = this.pTopRight[sp]; +var dxTop = b.x - a.x; +var dxTop2 = dxTop * dxTop; +if (dxTop2 < 10) { +var dyTop = b.y - a.y; +var dyTop2 = dyTop * dyTop; +if (dyTop2 < 10) { +var c = this.pBotLeft[sp]; +var d = this.pBotRight[sp]; +var dxBot = d.x - c.x; +var dxBot2 = dxBot * dxBot; +if (dxBot2 < 8) { +var dyBot = d.y - c.y; +var dyBot2 = dyBot * dyBot; +if (dyBot2 < 8) { +if (border) { +this.g3d.fillSphereBits(3, a); +this.g3d.fillSphereBits(3, c); +}if (this.needToFill[sp]) { +if (aspectRatio > 0) { +this.T1.sub2(a, c); +this.T1.scale(ratio); +this.T2.sub2(a, b); +this.depth1.cross(this.T1, this.T2); +this.depth1.scale(this.T1.length() / this.depth1.length()); +this.a1.add2(a, this.depth1); +this.a2.sub2(a, this.depth1); +this.b1.add2(b, this.depth1); +this.b2.sub2(b, this.depth1); +this.c1.add2(c, this.depth1); +this.c2.sub2(c, this.depth1); +this.d1.add2(d, this.depth1); +this.d2.sub2(d, this.depth1); +this.g3d.fillQuadrilateral(this.a1, this.b1, this.d1, this.c1, false); +this.g3d.fillQuadrilateral(this.a2, this.b2, this.d2, this.c2, false); +this.g3d.fillQuadrilateral(this.a1, this.b1, this.b2, this.a2, false); +this.g3d.fillQuadrilateral(this.c1, this.d1, this.d2, this.c2, false); +closeEnd = true; +} else { +if (fillType == 0) { +if (isRev) this.g3d.fillQuadrilateral(c, d, b, a, false); + else this.g3d.fillQuadrilateral(a, b, d, c, false); +} else { +if (isRev) { +if (fillType != J.g3d.HermiteRenderer.isFront(a, b, d)) this.g3d.fillTriangle3f(a, b, d, false); +if (fillType != J.g3d.HermiteRenderer.isFront(a, d, c)) this.g3d.fillTriangle3f(a, d, c, false); +} else { +if (fillType == J.g3d.HermiteRenderer.isFront(a, b, d)) this.g3d.fillTriangle3f(a, b, d, false); +if (fillType == J.g3d.HermiteRenderer.isFront(a, d, c)) this.g3d.fillTriangle3f(a, d, c, false); +}}}this.needToFill[sp] = false; +}if (dxTop2 + dyTop2 < 2 && dxBot2 + dyBot2 < 2) { +--sp; +continue; +}}}}}var s = (this.sLeft[sp] + this.sRight[sp]) / 2; +var s2 = s * s; +var s3 = s2 * s; +var h1 = 2 * s3 - 3 * s2 + 1; +var h2 = -2 * s3 + 3 * s2; +var h3 = s3 - 2 * s2 + s; +var h4 = s3 - s2; +if (sp >= 15) break; +var spNext = sp + 1; +var pMidTop = this.pTopRight[spNext]; +pMidTop.x = (h1 * x1 + h2 * x2 + h3 * xT1 + h4 * xT2); +pMidTop.y = (h1 * y1 + h2 * y2 + h3 * yT1 + h4 * yT2); +pMidTop.z = (h1 * z1 + h2 * z2 + h3 * zT1 + h4 * zT2); +var pMidBot = this.pBotRight[spNext]; +pMidBot.x = (h1 * x5 + h2 * x6 + h3 * xT5 + h4 * xT6); +pMidBot.y = (h1 * y5 + h2 * y6 + h3 * yT5 + h4 * yT6); +pMidBot.z = (h1 * z5 + h2 * z6 + h3 * zT5 + h4 * zT6); +this.pTopRight[spNext] = this.pTopRight[sp]; +this.pTopRight[sp] = pMidTop; +this.pBotRight[spNext] = this.pBotRight[sp]; +this.pBotRight[sp] = pMidBot; +this.sRight[spNext] = this.sRight[sp]; +this.sRight[sp] = s; +this.needToFill[spNext] = this.needToFill[sp]; +this.pTopLeft[spNext].setT(pMidTop); +this.pBotLeft[spNext].setT(pMidBot); +this.sLeft[spNext] = s; +++sp; +} while (sp >= 0); +if (closeEnd) { +this.a1.z += 1; +this.c1.z += 1; +this.c2.z += 1; +this.a2.z += 1; +this.g3d.fillQuadrilateral(this.a1, this.c1, this.c2, this.a2, false); +}}, "~B,~B,~N,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,~N,~N"); +c$.isFront = Clazz.defineMethod(c$, "isFront", +function(a, b, c){ +J.g3d.HermiteRenderer.vAB.sub2(b, a); +J.g3d.HermiteRenderer.vAC.sub2(c, a); +J.g3d.HermiteRenderer.vAB.cross(J.g3d.HermiteRenderer.vAB, J.g3d.HermiteRenderer.vAC); +return (J.g3d.HermiteRenderer.vAB.z < 0 ? -1 : 1); +}, "JU.P3,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "renderParallelPair", +function(fill, tension, p0, p1, p2, p3, p4, p5, p6, p7){ +var endPoints = Clazz.newArray(-1, [p2, p1, p6, p5]); +var points = new JU.Lst(); +var whichPoint = 0; +var numTopStrandPoints = 2; +var numPointsPerSegment = 5.0; +var interval = (1.0 / numPointsPerSegment); +var currentInt = 0.0; +var x1 = Clazz.floatToInt(p1.x); +var y1 = Clazz.floatToInt(p1.y); +var z1 = Clazz.floatToInt(p1.z); +var x2 = Clazz.floatToInt(p2.x); +var y2 = Clazz.floatToInt(p2.y); +var z2 = Clazz.floatToInt(p2.z); +var xT1 = Clazz.doubleToInt(((x2 - Clazz.floatToInt(p0.x)) * tension) / 8); +var yT1 = Clazz.doubleToInt(((y2 - Clazz.floatToInt(p0.y)) * tension) / 8); +var zT1 = Clazz.doubleToInt(((z2 - Clazz.floatToInt(p0.z)) * tension) / 8); +var xT2 = Clazz.doubleToInt(((Clazz.floatToInt(p3.x) - x1) * tension) / 8); +var yT2 = Clazz.doubleToInt(((Clazz.floatToInt(p3.y) - y1) * tension) / 8); +var zT2 = Clazz.doubleToInt(((Clazz.floatToInt(p3.z) - z1) * tension) / 8); +this.sLeft[0] = 0; +this.pLeft[0].set(x1, y1, z1); +this.sRight[0] = 1; +this.pRight[0].set(x2, y2, z2); +var sp = 0; +for (var strands = 2; strands > 0; strands--) { +if (strands == 1) { +x1 = Clazz.floatToInt(p5.x); +y1 = Clazz.floatToInt(p5.y); +z1 = Clazz.floatToInt(p5.z); +x2 = Clazz.floatToInt(p6.x); +y2 = Clazz.floatToInt(p6.y); +z2 = Clazz.floatToInt(p6.z); +xT1 = Clazz.doubleToInt(((x2 - Clazz.floatToInt(p4.x)) * tension) / 8); +yT1 = Clazz.doubleToInt(((y2 - Clazz.floatToInt(p4.y)) * tension) / 8); +zT1 = Clazz.doubleToInt(((z2 - Clazz.floatToInt(p4.z)) * tension) / 8); +xT2 = Clazz.doubleToInt(((Clazz.floatToInt(p7.x) - x1) * tension) / 8); +yT2 = Clazz.doubleToInt(((Clazz.floatToInt(p7.y) - y1) * tension) / 8); +zT2 = Clazz.doubleToInt(((Clazz.floatToInt(p7.z) - z1) * tension) / 8); +this.sLeft[0] = 0; +this.pLeft[0].set(x1, y1, z1); +this.sRight[0] = 1; +this.pRight[0].set(x2, y2, z2); +sp = 0; +}points.addLast(endPoints[whichPoint++]); +currentInt = interval; +do { +var a = this.pLeft[sp]; +var b = this.pRight[sp]; +var dx = b.x - a.x; +var dy = b.y - a.y; +var dist2 = dx * dx + dy * dy; +if (dist2 <= 2) { +var s = this.sLeft[sp]; +this.g3d.fillSphereI(3, a); +if (s < 1.0 - currentInt) { +var temp = new JU.P3(); +temp.set(a.x, a.y, a.z); +points.addLast(temp); +currentInt += interval; +if (strands == 2) { +numTopStrandPoints++; +}}--sp; +} else { +var s = (this.sLeft[sp] + this.sRight[sp]) / 2; +var s2 = s * s; +var s3 = s2 * s; +var h1 = 2 * s3 - 3 * s2 + 1; +var h2 = -2 * s3 + 3 * s2; +var h3 = s3 - 2 * s2 + s; +var h4 = s3 - s2; +if (sp >= 15) break; +var pMid = this.pRight[sp + 1]; +pMid.x = Clazz.doubleToInt(h1 * x1 + h2 * x2 + h3 * xT1 + h4 * xT2); +pMid.y = Clazz.doubleToInt(h1 * y1 + h2 * y2 + h3 * yT1 + h4 * yT2); +pMid.z = Clazz.doubleToInt(h1 * z1 + h2 * z2 + h3 * zT1 + h4 * zT2); +this.pRight[sp + 1] = this.pRight[sp]; +this.sRight[sp + 1] = this.sRight[sp]; +this.pRight[sp] = pMid; +this.sRight[sp] = s; +++sp; +this.pLeft[sp].setT(pMid); +this.sLeft[sp] = s; +}} while (sp >= 0); +points.addLast(endPoints[whichPoint++]); +} +var size = points.size(); +for (var top = 0; top < numTopStrandPoints && (top + numTopStrandPoints) < size; top++) this.g3d.drawLineAB(points.get(top), points.get(top + numTopStrandPoints)); + +}, "~B,~N,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3,JU.P3"); +c$.vAB = new JU.V3(); +c$.vAC = new JU.V3(); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/LineRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/LineRenderer.js new file mode 100755 index 000000000000..dcef43595f2d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/LineRenderer.js @@ -0,0 +1,621 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["J.g3d.PrecisionRenderer", "java.util.Hashtable"], "J.g3d.LineRenderer", ["JU.BS"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.g3d = null; +this.shader = null; +this.lineBits = null; +this.slope = 0; +this.lineTypeX = false; +this.nBits = 0; +this.lineCache = null; +this.slopeKey = null; +this.x1t = 0; +this.y1t = 0; +this.z1t = 0; +this.x2t = 0; +this.y2t = 0; +this.z2t = 0; +Clazz.instantialize(this, arguments);}, J.g3d, "LineRenderer", J.g3d.PrecisionRenderer); +Clazz.prepareFields (c$, function(){ +this.lineCache = new java.util.Hashtable(); +}); +Clazz.makeConstructor(c$, +function(g3d){ +Clazz.superConstructor (this, J.g3d.LineRenderer, []); +this.g3d = g3d; +this.shader = g3d.shader; +}, "J.g3d.Graphics3D"); +Clazz.defineMethod(c$, "setLineBits", +function(dx, dy){ +this.slope = (dx != 0 ? dy / dx : dy >= 0 ? 3.4028235E38 : -3.4028235E38); +this.lineTypeX = (this.slope <= 1 && this.slope >= -1); +this.nBits = (this.lineTypeX ? this.g3d.width : this.g3d.height); +this.slopeKey = Float.$valueOf(this.slope); +if (this.lineCache.containsKey(this.slopeKey)) { +this.lineBits = this.lineCache.get(this.slopeKey); +return; +}this.lineBits = JU.BS.newN(this.nBits); +dy = Math.abs(dy); +dx = Math.abs(dx); +if (dy > dx) { +var t = dx; +dx = dy; +dy = t; +}var twoDError = 0; +var twoDx = dx + dx; +var twoDy = dy + dy; +for (var i = 0; i < this.nBits; i++) { +twoDError += twoDy; +if (twoDError > dx) { +this.lineBits.set(i); +twoDError -= twoDx; +}} +this.lineCache.put(this.slopeKey, this.lineBits); +}, "~N,~N"); +Clazz.defineMethod(c$, "clearLineCache", +function(){ +this.lineCache.clear(); +}); +Clazz.defineMethod(c$, "plotLineOld", +function(argbA, argbB, xA, yA, zA, xB, yB, zB){ +this.x1t = xA; +this.x2t = xB; +this.y1t = yA; +this.y2t = yB; +this.z1t = zA; +this.z2t = zB; +var clipped = true; +switch (this.getTrimmedLineImpl()) { +case 0: +clipped = false; +break; +case 2: +return; +} +this.plotLineClippedOld(argbA, argbB, xA, yA, zA, xB - xA, yB - yA, zB - zA, clipped, 0, 0); +}, "~N,~N,~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "plotLineDeltaOld", +function(argbA, argbB, xA, yA, zA, dxBA, dyBA, dzBA, clipped){ +this.x1t = xA; +this.x2t = xA + dxBA; +this.y1t = yA; +this.y2t = yA + dyBA; +this.z1t = zA; +this.z2t = zA + dzBA; +if (clipped) switch (this.getTrimmedLineImpl()) { +case 2: +return; +case 0: +clipped = false; +break; +} +this.plotLineClippedOld(argbA, argbB, xA, yA, zA, dxBA, dyBA, dzBA, clipped, 0, 0); +}, "~N,~N,~N,~N,~N,~N,~N,~N,~B"); +Clazz.defineMethod(c$, "plotLineDeltaAOld", +function(shades1, shades2, screenMask, shadeIndex, x, y, z, dx, dy, dz, clipped){ +this.x1t = x; +this.x2t = x + dx; +this.y1t = y; +this.y2t = y + dy; +this.z1t = z; +this.z2t = z + dz; +if (clipped) switch (this.getTrimmedLineImpl()) { +case 2: +return; +case 0: +clipped = false; +} +var zbuf = this.g3d.zbuf; +var width = this.g3d.width; +var runIndex = 0; +var rise = 2147483647; +var run = 1; +var offset = y * width + x; +var offsetMax = this.g3d.bufferSize; +var shadeIndexUp = (shadeIndex < 63 ? shadeIndex + 1 : shadeIndex); +var shadeIndexDn = (shadeIndex > 0 ? shadeIndex - 1 : shadeIndex); +var argb1 = shades1[shadeIndex]; +var argb1Up = shades1[shadeIndexUp]; +var argb1Dn = shades1[shadeIndexDn]; +var argb2 = shades2[shadeIndex]; +var argb2Up = shades2[shadeIndexUp]; +var argb2Dn = shades2[shadeIndexDn]; +var argb = argb1; +var p = this.g3d.pixel; +if (screenMask != 0) { +p = this.g3d.setScreened((screenMask & 1) == 1); +this.g3d.currentShadeIndex = 0; +}if (argb != 0 && !clipped && offset >= 0 && offset < offsetMax && z < zbuf[offset]) p.addPixel(offset, z, argb); +if (dx == 0 && dy == 0) return; +var xIncrement = 1; +var yOffsetIncrement = width; +var x2 = x + dx; +var y2 = y + dy; +if (dx < 0) { +dx = -dx; +xIncrement = -1; +}if (dy < 0) { +dy = -dy; +yOffsetIncrement = -width; +}var twoDx = dx + dx; +var twoDy = dy + dy; +var zCurrentScaled = z << 10; +var argbUp = argb1Up; +var argbDn = argb1Dn; +if (dy <= dx) { +var roundingFactor = dx - 1; +if (dz < 0) roundingFactor = -roundingFactor; +var zIncrementScaled = Clazz.doubleToInt(((dz << 10) + roundingFactor) / dx); +var twoDxAccumulatedYError = 0; +var n1 = Math.abs(x2 - this.x2t) - 1; +var n2 = Math.abs(x2 - this.x1t) - 1; +for (var n = dx - 1, nMid = Clazz.doubleToInt(n / 2); --n >= n1; ) { +if (n == nMid) { +argb = argb2; +if (argb == 0) return; +argbUp = argb2Up; +argbDn = argb2Dn; +if (screenMask % 3 != 0) { +p = this.g3d.setScreened((screenMask & 2) == 2); +this.g3d.currentShadeIndex = 0; +}}offset += xIncrement; +zCurrentScaled += zIncrementScaled; +twoDxAccumulatedYError += twoDy; +if (twoDxAccumulatedYError > dx) { +offset += yOffsetIncrement; +twoDxAccumulatedYError -= twoDx; +}if (argb != 0 && n < n2 && offset >= 0 && offset < offsetMax && runIndex < rise) { +var zCurrent = zCurrentScaled >> 10; +if (zCurrent < zbuf[offset]) { +var rand8 = this.shader.nextRandom8Bit(); +p.addPixel(offset, zCurrent, rand8 < 85 ? argbDn : (rand8 > 170 ? argbUp : argb)); +}}runIndex = (runIndex + 1) % run; +} +} else { +var roundingFactor = dy - 1; +if (dz < 0) roundingFactor = -roundingFactor; +var zIncrementScaled = Clazz.doubleToInt(((dz << 10) + roundingFactor) / dy); +var twoDyAccumulatedXError = 0; +var n1 = Math.abs(y2 - this.y2t) - 1; +var n2 = Math.abs(y2 - this.y1t) - 1; +for (var n = dy - 1, nMid = Clazz.doubleToInt(n / 2); --n >= n1; ) { +if (n == nMid) { +argb = argb2; +if (argb == 0) return; +argbUp = argb2Up; +argbDn = argb2Dn; +if (screenMask % 3 != 0) { +p = this.g3d.setScreened((screenMask & 2) == 2); +this.g3d.currentShadeIndex = 0; +}}offset += yOffsetIncrement; +zCurrentScaled += zIncrementScaled; +twoDyAccumulatedXError += twoDx; +if (twoDyAccumulatedXError > dy) { +offset += xIncrement; +twoDyAccumulatedXError -= twoDy; +}if (argb != 0 && n < n2 && offset >= 0 && offset < offsetMax && runIndex < rise) { +var zCurrent = zCurrentScaled >> 10; +if (zCurrent < zbuf[offset]) { +var rand8 = this.g3d.shader.nextRandom8Bit(); +p.addPixel(offset, zCurrent, rand8 < 85 ? argbDn : (rand8 > 170 ? argbUp : argb)); +}}runIndex = (runIndex + 1) % run; +} +}}, "~A,~A,~N,~N,~N,~N,~N,~N,~N,~N,~B"); +Clazz.defineMethod(c$, "plotLineDeltaABitsFloat", +function(shades1, shades2, shadeIndex, ptA, ptB, screenMask, clipped){ +var x = Math.round(ptA.x); +var y = Math.round(ptA.y); +var z = Math.round(ptA.z); +var bx = Math.round(ptB.x); +var by = Math.round(ptB.y); +var bz = Math.round(ptB.z); +var dx = bx - x; +var dy = by - y; +this.x1t = x; +this.x2t = bx; +this.y1t = y; +this.y2t = by; +this.z1t = z; +this.z2t = bz; +if (clipped && this.getTrimmedLineImpl() == 2) return; +var zbuf = this.g3d.zbuf; +var width = this.g3d.width; +var runIndex = 0; +var rise = 2147483647; +var run = 1; +var shadeIndexUp = (shadeIndex < 63 ? shadeIndex + 1 : shadeIndex); +var shadeIndexDn = (shadeIndex > 0 ? shadeIndex - 1 : shadeIndex); +var argb1 = shades1[shadeIndex]; +var argb1Up = shades1[shadeIndexUp]; +var argb1Dn = shades1[shadeIndexDn]; +var argb2 = shades2[shadeIndex]; +var argb2Up = shades2[shadeIndexUp]; +var argb2Dn = shades2[shadeIndexDn]; +var offset = y * width + x; +var offsetMax = this.g3d.bufferSize; +var i0; +var iMid; +var i1; +var i2; +var iIncrement; +var xIncrement; +var yOffsetIncrement; +if (this.lineTypeX) { +i0 = x; +i1 = this.x1t; +i2 = this.x2t; +iMid = x + Clazz.doubleToInt(dx / 2); +iIncrement = (dx >= 0 ? 1 : -1); +xIncrement = iIncrement; +yOffsetIncrement = (dy >= 0 ? width : -width); +this.setRastABFloat(ptA.x, ptA.z, ptB.x, ptB.z); +} else { +i0 = y; +i1 = this.y1t; +i2 = this.y2t; +iMid = y + Clazz.doubleToInt(dy / 2); +iIncrement = (dy >= 0 ? 1 : -1); +xIncrement = (dy >= 0 ? width : -width); +yOffsetIncrement = (dx >= 0 ? 1 : -1); +this.setRastABFloat(ptA.y, ptA.z, ptB.y, ptB.z); +}var zCurrent = z; +var argb = argb1; +var argbUp = argb1Up; +var argbDn = argb1Dn; +var isInWindow = false; +var p = this.g3d.pixel; +if (screenMask != 0) { +p = this.g3d.setScreened((screenMask & 1) == 1); +this.g3d.currentShadeIndex = 0; +}for (var i = i0, iBits = i0; ; i += iIncrement, iBits += iIncrement) { +if (i == i1) isInWindow = true; +if (i == iMid) { +argb = argb2; +if (argb == 0) return; +argbUp = argb2Up; +argbDn = argb2Dn; +if (screenMask % 3 != 0) { +p = this.g3d.setScreened((screenMask & 2) == 2); +this.g3d.currentShadeIndex = 0; +}}if (argb != 0 && isInWindow && offset >= 0 && offset < offsetMax && runIndex < rise) { +zCurrent = this.getZCurrent(this.a, this.b, i); +if (zCurrent < zbuf[offset]) { +var rand8 = this.shader.nextRandom8Bit(); +p.addPixel(offset, Clazz.floatToInt(zCurrent), rand8 < 85 ? argbDn : (rand8 > 170 ? argbUp : argb)); +}}if (i == i2) break; +runIndex = (runIndex + 1) % run; +offset += xIncrement; +while (iBits < 0) iBits += this.nBits; + +if (this.lineBits.get(iBits % this.nBits)) { +offset += yOffsetIncrement; +}} +}, "~A,~A,~N,JU.P3,JU.P3,~N,~B"); +Clazz.defineMethod(c$, "plotLineDeltaABitsInt", +function(shades1, shades2, shadeIndex, ptA, ptB, screenMask, clipped){ +var x = ptA.x; +var y = ptA.y; +var z = ptA.z; +var bx = ptB.x; +var by = ptB.y; +var bz = ptB.z; +var dx = bx - x; +var dy = by - y; +this.x1t = x; +this.x2t = bx; +this.y1t = y; +this.y2t = by; +this.z1t = z; +this.z2t = bz; +if (clipped && this.getTrimmedLineImpl() == 2) return; +var zbuf = this.g3d.zbuf; +var width = this.g3d.width; +var runIndex = 0; +var rise = 2147483647; +var run = 1; +var shadeIndexUp = (shadeIndex < 63 ? shadeIndex + 1 : shadeIndex); +var shadeIndexDn = (shadeIndex > 0 ? shadeIndex - 1 : shadeIndex); +var argb1 = shades1[shadeIndex]; +var argb1Up = shades1[shadeIndexUp]; +var argb1Dn = shades1[shadeIndexDn]; +var argb2 = shades2[shadeIndex]; +var argb2Up = shades2[shadeIndexUp]; +var argb2Dn = shades2[shadeIndexDn]; +var offset = y * width + x; +var offsetMax = this.g3d.bufferSize; +var i0; +var iMid; +var i1; +var i2; +var iIncrement; +var xIncrement; +var yOffsetIncrement; +if (this.lineTypeX) { +i0 = x; +i1 = this.x1t; +i2 = this.x2t; +iMid = x + Clazz.doubleToInt(dx / 2); +iIncrement = (dx >= 0 ? 1 : -1); +xIncrement = iIncrement; +yOffsetIncrement = (dy >= 0 ? width : -width); +this.setRastAB(ptA.x, ptA.z, ptB.x, ptB.z); +} else { +i0 = y; +i1 = this.y1t; +i2 = this.y2t; +iMid = y + Clazz.doubleToInt(dy / 2); +iIncrement = (dy >= 0 ? 1 : -1); +xIncrement = (dy >= 0 ? width : -width); +yOffsetIncrement = (dx >= 0 ? 1 : -1); +this.setRastAB(ptA.y, ptA.z, ptB.y, ptB.z); +}var zCurrent = z; +var argb = argb1; +var argbUp = argb1Up; +var argbDn = argb1Dn; +var isInWindow = false; +var p = this.g3d.pixel; +if (screenMask != 0) { +p = this.g3d.setScreened((screenMask & 1) == 1); +this.g3d.currentShadeIndex = 0; +}for (var i = i0, iBits = i0; ; i += iIncrement, iBits += iIncrement) { +if (i == i1) isInWindow = true; +if (i == iMid) { +argb = argb2; +if (argb == 0) return; +argbUp = argb2Up; +argbDn = argb2Dn; +if (screenMask % 3 != 0) { +p = this.g3d.setScreened((screenMask & 2) == 2); +this.g3d.currentShadeIndex = 0; +}}if (argb != 0 && isInWindow && offset >= 0 && offset < offsetMax && runIndex < rise) { +zCurrent = this.getZCurrent(this.a, this.b, i); +if (zCurrent < zbuf[offset]) { +var rand8 = this.shader.nextRandom8Bit(); +p.addPixel(offset, Clazz.floatToInt(zCurrent), rand8 < 85 ? argbDn : (rand8 > 170 ? argbUp : argb)); +}}if (i == i2) break; +runIndex = (runIndex + 1) % run; +offset += xIncrement; +while (iBits < 0) iBits += this.nBits; + +if (this.lineBits.get(iBits % this.nBits)) { +offset += yOffsetIncrement; +}} +}, "~A,~A,~N,JU.P3i,JU.P3i,~N,~B"); +Clazz.defineMethod(c$, "plotLineBits", +function(argbA, argbB, ptA, ptB, run, rise, andClip){ +if (ptA.z <= 1 || ptB.z <= 1) return; +var clipped = true; +this.x1t = ptA.x; +this.y1t = ptA.y; +this.z1t = ptA.z; +this.x2t = ptB.x; +this.y2t = ptB.y; +this.z2t = ptB.z; +switch (this.getTrimmedLineImpl()) { +case 2: +return; +case 0: +clipped = false; +break; +default: +if (andClip) { +ptA.set(this.x1t, this.y1t, this.z1t); +ptB.set(this.x2t, this.y2t, this.z2t); +}} +var zbuf = this.g3d.zbuf; +var width = this.g3d.width; +var runIndex = 0; +if (run == 0) { +rise = 2147483647; +run = 1; +}var x = ptA.x; +var y = ptA.y; +var z = ptA.z; +var dx = ptB.x - x; +var x2 = x + dx; +var dy = ptB.y - y; +var y2 = y + dy; +var offset = y * width + x; +var offsetMax = this.g3d.bufferSize; +var argb = argbA; +var p = this.g3d.pixel; +if (argb != 0 && !clipped && offset >= 0 && offset < offsetMax && z < zbuf[offset]) p.addPixel(offset, z, argb); +if (dx == 0 && dy == 0) return; +var xIncrement = 1; +var yIncrement = 1; +var yOffsetIncrement = width; +if (dx < 0) { +dx = -dx; +xIncrement = -1; +}if (dy < 0) { +dy = -dy; +yOffsetIncrement = -width; +yIncrement = -1; +}var twoDx = dx + dx; +var twoDy = dy + dy; +if (dy <= dx) { +this.setRastAB(ptA.x, ptA.z, ptB.x, ptB.z); +var twoDxAccumulatedYError = 0; +var n1 = Math.abs(x2 - this.x2t) - 1; +var n2 = Math.abs(x2 - this.x1t) - 1; +for (var n = dx - 1, nMid = Clazz.doubleToInt(n / 2); --n >= n1; ) { +if (n == nMid) { +argb = argbB; +if (argb == 0) return; +}offset += xIncrement; +x += xIncrement; +twoDxAccumulatedYError += twoDy; +if (twoDxAccumulatedYError > dx) { +offset += yOffsetIncrement; +twoDxAccumulatedYError -= twoDx; +}if (argb != 0 && n < n2 && offset >= 0 && offset < offsetMax && runIndex < rise) { +var zCurrent = this.getZCurrent(this.a, this.b, x); +if (zCurrent < zbuf[offset]) p.addPixel(offset, zCurrent, argb); +}runIndex = (runIndex + 1) % run; +} +} else { +this.setRastAB(ptA.y, ptA.z, ptB.y, ptB.z); +var twoDyAccumulatedXError = 0; +var n1 = Math.abs(y2 - this.y2t) - 1; +var n2 = Math.abs(y2 - this.y1t) - 1; +for (var n = dy - 1, nMid = Clazz.doubleToInt(n / 2); --n >= n1; ) { +if (n == nMid) { +argb = argbB; +if (argb == 0) return; +}offset += yOffsetIncrement; +y += yIncrement; +twoDyAccumulatedXError += twoDx; +if (twoDyAccumulatedXError > dy) { +offset += xIncrement; +twoDyAccumulatedXError -= twoDy; +}if (argb != 0 && n < n2 && offset >= 0 && offset < offsetMax && runIndex < rise) { +var zCurrent = this.getZCurrent(this.a, this.b, y); +if (zCurrent < zbuf[offset]) p.addPixel(offset, zCurrent, argb); +}runIndex = (runIndex + 1) % run; +} +}}, "~N,~N,JU.P3i,JU.P3i,~N,~N,~B"); +Clazz.defineMethod(c$, "getTrimmedLineImpl", +function(){ +var cc1 = this.g3d.clipCode3(this.x1t, this.y1t, this.z1t); +var cc2 = this.g3d.clipCode3(this.x2t, this.y2t, this.z2t); +var c = (cc1 | cc2); +if ((cc1 | cc2) == 0) return 0; +if (c == -1) return 2; +var xLast = this.g3d.xLast; +var yLast = this.g3d.yLast; +var slab = this.g3d.slab; +var depth = this.g3d.depth; +do { +if ((cc1 & cc2) != 0) return 2; +var dx = this.x2t - this.x1t; +var dy = this.y2t - this.y1t; +var dz = this.z2t - this.z1t; +if (cc1 != 0) { +if ((cc1 & 8) != 0) { +this.y1t += Clazz.floatToInt((-this.x1t * dy) / dx); +this.z1t += Clazz.floatToInt((-this.x1t * dz) / dx); +this.x1t = 0; +} else if ((cc1 & 4) != 0) { +this.y1t += Clazz.floatToInt(((xLast - this.x1t) * dy) / dx); +this.z1t += Clazz.floatToInt(((xLast - this.x1t) * dz) / dx); +this.x1t = xLast; +} else if ((cc1 & 2) != 0) { +this.x1t += Clazz.floatToInt((-this.y1t * dx) / dy); +this.z1t += Clazz.floatToInt((-this.y1t * dz) / dy); +this.y1t = 0; +} else if ((cc1 & 1) != 0) { +this.x1t += Clazz.floatToInt(((yLast - this.y1t) * dx) / dy); +this.z1t += Clazz.floatToInt(((yLast - this.y1t) * dz) / dy); +this.y1t = yLast; +} else if ((cc1 & 32) != 0) { +this.x1t += Clazz.floatToInt(((slab - this.z1t) * dx) / dz); +this.y1t += Clazz.floatToInt(((slab - this.z1t) * dy) / dz); +this.z1t = slab; +} else { +this.x1t += Clazz.floatToInt(((depth - this.z1t) * dx) / dz); +this.y1t += Clazz.floatToInt(((depth - this.z1t) * dy) / dz); +this.z1t = depth; +}cc1 = this.g3d.clipCode3(this.x1t, this.y1t, this.z1t); +} else { +if ((cc2 & 8) != 0) { +this.y2t += Clazz.floatToInt((-this.x2t * dy) / dx); +this.z2t += Clazz.floatToInt((-this.x2t * dz) / dx); +this.x2t = 0; +} else if ((cc2 & 4) != 0) { +this.y2t += Clazz.floatToInt(((xLast - this.x2t) * dy) / dx); +this.z2t += Clazz.floatToInt(((xLast - this.x2t) * dz) / dx); +this.x2t = xLast; +} else if ((cc2 & 2) != 0) { +this.x2t += Clazz.floatToInt((-this.y2t * dx) / dy); +this.z2t += Clazz.floatToInt((-this.y2t * dz) / dy); +this.y2t = 0; +} else if ((cc2 & 1) != 0) { +this.x2t += Clazz.floatToInt(((yLast - this.y2t) * dx) / dy); +this.z2t += Clazz.floatToInt(((yLast - this.y2t) * dz) / dy); +this.y2t = yLast; +} else if ((cc2 & 32) != 0) { +this.x2t += Clazz.floatToInt(((slab - this.z2t) * dx) / dz); +this.y2t += Clazz.floatToInt(((slab - this.z2t) * dy) / dz); +this.z2t = slab; +} else { +this.x2t += Clazz.floatToInt(((depth - this.z2t) * dx) / dz); +this.y2t += Clazz.floatToInt(((depth - this.z2t) * dy) / dz); +this.z2t = depth; +}cc2 = this.g3d.clipCode3(this.x2t, this.y2t, this.z2t); +}} while ((cc1 | cc2) != 0); +return 1; +}); +Clazz.defineMethod(c$, "plotLineClippedOld", +function(argb1, argb2, x, y, z, dx, dy, dz, clipped, run, rise){ +var zbuf = this.g3d.zbuf; +var width = this.g3d.width; +var runIndex = 0; +if (run == 0) { +rise = 2147483647; +run = 1; +}var offset = y * width + x; +var offsetMax = this.g3d.bufferSize; +var argb = argb1; +var p = this.g3d.pixel; +if (argb != 0 && !clipped && offset >= 0 && offset < offsetMax && z < zbuf[offset]) p.addPixel(offset, z, argb); +if (dx == 0 && dy == 0) return; +var xIncrement = 1; +var yOffsetIncrement = width; +var x2 = x + dx; +var y2 = y + dy; +if (dx < 0) { +dx = -dx; +xIncrement = -1; +}if (dy < 0) { +dy = -dy; +yOffsetIncrement = -width; +}var twoDx = dx + dx; +var twoDy = dy + dy; +var zCurrentScaled = z << 10; +if (dy <= dx) { +var roundingFactor = dx - 1; +if (dz < 0) roundingFactor = -roundingFactor; +var zIncrementScaled = Clazz.doubleToInt(((dz << 10) + roundingFactor) / dx); +var twoDxAccumulatedYError = 0; +var n1 = Math.abs(x2 - this.x2t) - 1; +var n2 = Math.abs(x2 - this.x1t) - 1; +for (var n = dx - 1, nMid = Clazz.doubleToInt(n / 2); --n >= n1; ) { +if (n == nMid) { +argb = argb2; +if (argb == 0) return; +}offset += xIncrement; +zCurrentScaled += zIncrementScaled; +twoDxAccumulatedYError += twoDy; +if (twoDxAccumulatedYError > dx) { +offset += yOffsetIncrement; +twoDxAccumulatedYError -= twoDx; +}if (argb != 0 && n < n2 && offset >= 0 && offset < offsetMax && runIndex < rise) { +var zCurrent = zCurrentScaled >> 10; +if (zCurrent < zbuf[offset]) p.addPixel(offset, zCurrent, argb); +}runIndex = (runIndex + 1) % run; +} +} else { +var roundingFactor = dy - 1; +if (dz < 0) roundingFactor = -roundingFactor; +var zIncrementScaled = Clazz.doubleToInt(((dz << 10) + roundingFactor) / dy); +var twoDyAccumulatedXError = 0; +var n1 = Math.abs(y2 - this.y2t) - 1; +var n2 = Math.abs(y2 - this.y1t) - 1; +for (var n = dy - 1, nMid = Clazz.doubleToInt(n / 2); --n >= n1; ) { +if (n == nMid) { +argb = argb2; +if (argb == 0) return; +}offset += yOffsetIncrement; +zCurrentScaled += zIncrementScaled; +twoDyAccumulatedXError += twoDx; +if (twoDyAccumulatedXError > dy) { +offset += xIncrement; +twoDyAccumulatedXError -= twoDy; +}if (argb != 0 && n < n2 && offset >= 0 && offset < offsetMax && runIndex < rise) { +var zCurrent = zCurrentScaled >> 10; +if (zCurrent < zbuf[offset]) p.addPixel(offset, zCurrent, argb); +}runIndex = (runIndex + 1) % run; +} +}}, "~N,~N,~N,~N,~N,~N,~N,~N,~B,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/Pixelator.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/Pixelator.js new file mode 100755 index 000000000000..cb9f7907b386 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/Pixelator.js @@ -0,0 +1,50 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(null, "J.g3d.Pixelator", ["J.g3d.Graphics3D"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.g = null; +this.p0 = null; +this.zb = null; +this.pb = null; +this.width = 0; +this.bgcolor = 0; +Clazz.instantialize(this, arguments);}, J.g3d, "Pixelator", null); +Clazz.makeConstructor(c$, +function(graphics3d){ +this.g = graphics3d; +this.bgcolor = this.g.bgcolor; +this.setBuf(); +}, "J.g3d.Graphics3D"); +Clazz.defineMethod(c$, "setBuf", +function(){ +this.zb = this.g.zbuf; +this.pb = this.g.pbuf; +}); +Clazz.defineMethod(c$, "clearPixel", +function(offset, z){ +if (this.zb[offset] > z) this.zb[offset] = 2147483647; +}, "~N,~N"); +Clazz.defineMethod(c$, "addPixel", +function(offset, z, p){ +this.zb[offset] = z; +this.pb[offset] = p; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "addImagePixel", +function(shade, tLog, offset, z, argb, bgargb){ +if (z < this.zb[offset]) { +switch (shade) { +case 0: +return; +case 8: +this.addPixel(offset, z, argb); +return; +default: +shade += tLog; +if (shade <= 7) { +var p = this.pb[offset]; +if (bgargb != 0) p = J.g3d.Graphics3D.mergeBufferPixel(p, bgargb, bgargb); +p = J.g3d.Graphics3D.mergeBufferPixel(p, (argb & 0xFFFFFF) | (shade << 24), this.bgcolor); +this.addPixel(offset, z, p); +}} +}}, "~N,~N,~N,~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/PixelatorScreened.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/PixelatorScreened.js new file mode 100755 index 000000000000..9299c6c2fcde --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/PixelatorScreened.js @@ -0,0 +1,15 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["J.g3d.Pixelator"], "J.g3d.PixelatorScreened", null, function(){ +var c$ = Clazz.declareType(J.g3d, "PixelatorScreened", J.g3d.Pixelator); +Clazz.makeConstructor(c$, +function(g, p0){ +Clazz.superConstructor(this, J.g3d.PixelatorScreened, [g]); +this.width = g.width; +this.p0 = p0; +}, "J.g3d.Graphics3D,J.g3d.Pixelator"); +Clazz.overrideMethod(c$, "addPixel", +function(offset, z, p){ +if ((offset % this.width) % 2 == (Clazz.doubleToInt(offset / this.width)) % 2) this.p0.addPixel(offset, z, p); +}, "~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/PixelatorShaded.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/PixelatorShaded.js new file mode 100755 index 000000000000..205c81b33b32 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/PixelatorShaded.js @@ -0,0 +1,51 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["J.g3d.Pixelator"], "J.g3d.PixelatorShaded", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.bgRGB = null; +this.tmp = null; +this.zSlab = 0; +this.zDepth = 0; +this.zShadePower = 0; +Clazz.instantialize(this, arguments);}, J.g3d, "PixelatorShaded", J.g3d.Pixelator); +Clazz.makeConstructor(c$, +function(g){ +Clazz.superConstructor(this, J.g3d.PixelatorShaded, [g]); +this.tmp = Clazz.newIntArray (3, 0); +}, "J.g3d.Graphics3D"); +Clazz.defineMethod(c$, "set", +function(zSlab, zDepth, zShadePower){ +this.bgcolor = this.g.bgcolor; +this.bgRGB = Clazz.newIntArray(-1, [this.bgcolor & 0xFF, (this.bgcolor >> 8) & 0xFF, (this.g.bgcolor >> 16) & 0xFF]); +this.zSlab = zSlab < 0 ? 0 : zSlab; +this.zDepth = zDepth < 0 ? 0 : zDepth; +this.zShadePower = zShadePower; +this.p0 = this.g.pixel0; +return this; +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "addPixel", +function(offset, z, p){ +if (z > this.zDepth) return; +if (z >= this.zSlab && this.zShadePower > 0) { +var t = this.tmp; +var zs = this.bgRGB; +t[0] = p; +t[1] = p >> 8; +t[2] = p >> 16; +var f = (this.zDepth - z) / (this.zDepth - this.zSlab); +if (this.zShadePower > 1) for (var i = 0; i < this.zShadePower; i++) f *= f; + +for (var i = 0; i < 3; i++) t[i] = zs[i] + Clazz.floatToInt(f * ((t[i] & 0xFF) - zs[i])); + +p = (t[2] << 16) | (t[1] << 8) | t[0] | (p & 0xFF000000); +}this.p0.addPixel(offset, z, p); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "showZBuffer", +function(){ +for (var i = this.p0.zb.length; --i >= 0; ) { +if (this.p0.pb[i] == 0) continue; +var z = Clazz.floatToInt(Math.min(255, Math.max(0, 255 * (this.zDepth - this.p0.zb[i]) / (this.zDepth - this.zSlab)))); +this.p0.pb[i] = 0xFF000000 | z | (z << 8) | (z << 16); +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/PixelatorT.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/PixelatorT.js new file mode 100755 index 000000000000..a38a4a2352d9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/PixelatorT.js @@ -0,0 +1,20 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["J.g3d.Pixelator"], "J.g3d.PixelatorT", ["J.g3d.Graphics3D"], function(){ +var c$ = Clazz.declareType(J.g3d, "PixelatorT", J.g3d.Pixelator); +Clazz.overrideMethod(c$, "clearPixel", +function(offset, z){ +}, "~N,~N"); +Clazz.overrideMethod(c$, "addPixel", +function(offset, z, p){ +var zT = this.g.zbufT[offset]; +if (z < zT) { +var argb = this.g.pbufT[offset]; +if (!this.g.translucentCoverOnly && argb != 0 && zT - z > this.g.zMargin) this.pb[offset] = J.g3d.Graphics3D.mergeBufferPixel(this.pb[offset], argb, this.g.bgcolor); +this.g.zbufT[offset] = z; +this.g.pbufT[offset] = p & this.g.translucencyMask; +} else if (z == zT) { +} else if (!this.g.translucentCoverOnly && z - zT > this.g.zMargin) { +this.pb[offset] = J.g3d.Graphics3D.mergeBufferPixel(this.pb[offset], p & this.g.translucencyMask, this.g.bgcolor); +}}, "~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/Platform3D.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/Platform3D.js new file mode 100755 index 000000000000..3445a7422661 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/Platform3D.js @@ -0,0 +1,121 @@ +Clazz.declarePackage("J.g3d"); +(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.windowWidth = 0; +this.windowHeight = 0; +this.windowSize = 0; +this.bufferWidth = 0; +this.bufferHeight = 0; +this.bufferSize = 0; +this.bufferSizeT = 0; +this.bufferedImage = null; +this.pBuffer = null; +this.pBufferT = null; +this.zBuffer = null; +this.zBufferT = null; +this.widthOffscreen = 0; +this.heightOffscreen = 0; +this.offscreenImage = null; +this.graphicsForTextOrImage = null; +this.apiPlatform = null; +Clazz.instantialize(this, arguments);}, J.g3d, "Platform3D", null); +Clazz.makeConstructor(c$, +function(apiPlatform){ +this.apiPlatform = apiPlatform; +}, "J.api.GenericPlatform"); +Clazz.defineMethod(c$, "getGraphicsForMetrics", +function(){ +return this.apiPlatform.getGraphics(this.allocateOffscreenImage(1, 1)); +}); +Clazz.defineMethod(c$, "allocateTBuffers", +function(antialiasTranslucent){ +this.bufferSizeT = (antialiasTranslucent ? this.bufferSize : this.windowSize); +this.zBufferT = Clazz.newIntArray (this.bufferSizeT, 0); +this.pBufferT = Clazz.newIntArray (this.bufferSizeT, 0); +}, "~B"); +Clazz.defineMethod(c$, "allocateBuffers", +function(width, height, antialias, isImageWrite){ +this.windowWidth = width; +this.windowHeight = height; +this.windowSize = width * height; +if (antialias) { +width *= 2; +height *= 2; +}this.bufferWidth = width; +this.bufferHeight = height; +this.bufferSize = this.bufferWidth * this.bufferHeight; +this.zBuffer = Clazz.newIntArray (this.bufferSize, 0); +this.pBuffer = Clazz.newIntArray (this.bufferSize, 0); +this.bufferedImage = this.apiPlatform.allocateRgbImage(this.windowWidth, this.windowHeight, this.pBuffer, this.windowSize, J.g3d.Platform3D.backgroundTransparent, isImageWrite); +}, "~N,~N,~B,~B"); +Clazz.defineMethod(c$, "releaseBuffers", +function(){ +this.windowWidth = this.windowHeight = this.bufferWidth = this.bufferHeight = this.bufferSize = -1; +if (this.bufferedImage != null) { +this.apiPlatform.flushImage(this.bufferedImage); +this.bufferedImage = null; +}this.pBuffer = null; +this.zBuffer = null; +this.pBufferT = null; +this.zBufferT = null; +}); +Clazz.defineMethod(c$, "hasContent", +function(){ +for (var i = this.bufferSize; --i >= 0; ) if (this.zBuffer[i] != 2147483647) return true; + +return false; +}); +Clazz.defineMethod(c$, "clearScreenBuffer", +function(){ +for (var i = this.bufferSize; --i >= 0; ) { +this.zBuffer[i] = 2147483647; +this.pBuffer[i] = 0; +} +}); +Clazz.defineMethod(c$, "setBackgroundColor", +function(bgColor){ +if (this.pBuffer == null) return; +for (var i = this.bufferSize; --i >= 0; ) if (this.pBuffer[i] == 0) this.pBuffer[i] = bgColor; + +}, "~N"); +Clazz.defineMethod(c$, "clearTBuffer", +function(){ +for (var i = this.bufferSizeT; --i >= 0; ) { +this.zBufferT[i] = 2147483647; +this.pBufferT[i] = 0; +} +}); +Clazz.defineMethod(c$, "clearBuffer", +function(){ +this.clearScreenBuffer(); +}); +Clazz.defineMethod(c$, "clearScreenBufferThreaded", +function(){ +}); +Clazz.defineMethod(c$, "notifyEndOfRendering", +function(){ +this.apiPlatform.notifyEndOfRendering(); +}); +Clazz.defineMethod(c$, "getGraphicsForTextOrImage", +function(width, height){ +if (width > this.widthOffscreen || height > this.heightOffscreen) { +if (this.offscreenImage != null) { +this.apiPlatform.disposeGraphics(this.graphicsForTextOrImage); +this.apiPlatform.flushImage(this.offscreenImage); +}if (width > this.widthOffscreen) this.widthOffscreen = width; +if (height > this.heightOffscreen) this.heightOffscreen = height; +this.offscreenImage = this.allocateOffscreenImage(this.widthOffscreen, this.heightOffscreen); +this.graphicsForTextOrImage = this.apiPlatform.getStaticGraphics(this.offscreenImage, J.g3d.Platform3D.backgroundTransparent); +}return this.graphicsForTextOrImage; +}, "~N,~N"); +Clazz.defineMethod(c$, "allocateOffscreenImage", +function(width, height){ +return this.apiPlatform.newOffScreenImage(width, height); +}, "~N,~N"); +Clazz.defineMethod(c$, "setBackgroundTransparent", +function(tf){ +J.g3d.Platform3D.backgroundTransparent = tf; +}, "~B"); +c$.backgroundTransparent = false; +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/PrecisionRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/PrecisionRenderer.js new file mode 100755 index 000000000000..1986d129dc0f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/PrecisionRenderer.js @@ -0,0 +1,43 @@ +Clazz.declarePackage("J.g3d"); +(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.a = 0; +this.b = 0; +this.isOrthographic = false; +Clazz.instantialize(this, arguments);}, J.g3d, "PrecisionRenderer", null); +Clazz.defineMethod(c$, "getZCurrent", +function(a, b, x){ +return Math.round(a == 1.4E-45 ? b : this.isOrthographic ? a * x + b : a / (b - x)); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "setRastABFloat", +function(xa, za, xb, zb){ +var zdif = (zb - za); +var xdif = (xb - xa); +if (zdif == 0 || xdif == 0) { +this.a = 1.4E-45; +this.b = za; +return; +}if (this.isOrthographic) { +this.a = zdif / xdif; +this.b = za - this.a * xa; +} else { +this.a = xdif * za * (zb / zdif); +this.b = (xb * zb - xa * za) / zdif; +}}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "setRastAB", +function(xa, za, xb, zb){ +var zdif = (zb - za); +var xdif = (xb - xa); +if (xa == 1.4E-45 || zdif == 0 || xdif == 0) { +this.a = 1.4E-45; +this.b = zb; +return; +}if (this.isOrthographic) { +this.a = zdif / xdif; +this.b = za - this.a * xa; +} else { +this.a = xdif * za * (zb / zdif); +this.b = (xb * zb - xa * za) / zdif; +}}, "~N,~N,~N,~N"); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/SphereRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/SphereRenderer.js new file mode 100755 index 000000000000..d61d3d71413c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/SphereRenderer.js @@ -0,0 +1,392 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["JU.P3"], "J.g3d.SphereRenderer", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.g3d = null; +this.shader = null; +this.zroot = null; +this.mat = null; +this.coef = null; +this.mDeriv = null; +this.selectedOctant = 0; +this.planeShade = 0; +this.zbuf = null; +this.width = 0; +this.height = 0; +this.depth = 0; +this.slab = 0; +this.offsetPbufBeginLine = 0; +this.ptTemp = null; +this.planeShades = null; +this.dxyz = null; +Clazz.instantialize(this, arguments);}, J.g3d, "SphereRenderer", null); +Clazz.prepareFields (c$, function(){ +this.zroot = Clazz.newDoubleArray (2, 0); +this.ptTemp = new JU.P3(); +this.planeShades = Clazz.newIntArray (3, 0); +this.dxyz = Clazz.newFloatArray (3, 3, 0); +}); +Clazz.makeConstructor(c$, +function(g3d){ +this.g3d = g3d; +this.shader = g3d.shader; +}, "J.g3d.Graphics3D"); +Clazz.defineMethod(c$, "render", +function(shades, diameter, x, y, z, mat, coef, mDeriv, selectedOctant, octantPoints){ +if (z == 1) return; +if (diameter > 49) diameter &= -2; +if (this.g3d.isClippedXY(diameter, x, y)) return; +this.slab = this.g3d.slab; +this.depth = this.g3d.depth; +var radius = (diameter + 1) >> 1; +var minZ = z - radius; +if (z + radius < this.slab || minZ > this.depth) return; +var minX = x - radius; +var maxX = x + radius; +var minY = y - radius; +var maxY = y + radius; +this.shader.nOut = this.shader.nIn = 0; +this.zbuf = this.g3d.zbuf; +this.height = this.g3d.height; +this.width = this.g3d.width; +this.offsetPbufBeginLine = this.width * y + x; +var sh = this.shader; +this.mat = mat; +if (mat != null) { +this.coef = coef; +this.mDeriv = mDeriv; +this.selectedOctant = selectedOctant; +if (sh.ellipsoidShades == null) sh.createEllipsoidShades(); +if (octantPoints != null) { +this.planeShade = -1; +for (var i = 0; i < 3; i++) { +var dx = this.dxyz[i][0] = octantPoints[i].x - x; +var dy = this.dxyz[i][1] = octantPoints[i].y - y; +var dz = this.dxyz[i][2] = octantPoints[i].z - z; +this.planeShades[i] = sh.getShadeIndex(dx, dy, -dz); +if (dx == 0 && dy == 0) { +this.planeShade = this.planeShades[i]; +break; +}} +}}if (mat != null || diameter > 128) { +this.renderQuadrant(-1, -1, x, y, z, diameter, shades); +this.renderQuadrant(-1, 1, x, y, z, diameter, shades); +this.renderQuadrant(1, -1, x, y, z, diameter, shades); +this.renderQuadrant(1, 1, x, y, z, diameter, shades); +if (mat != null) { +this.mat = null; +this.coef = null; +this.mDeriv = null; +}} else { +var ss = sh.sphereShapeCache[diameter - 1]; +if (ss == null) { +var countSE = 0; +var d = (diameter & 1) != 0; +var radiusF = diameter / 2.0; +var radiusF2 = radiusF * radiusF; +radius = Clazz.doubleToInt((diameter + 1) / 2); +var ys = d ? 0 : 0.5; +for (var i = 0; i < radius; ++i, ++ys) { +var y2 = ys * ys; +var xs = d ? 0 : 0.5; +for (var j = 0; j < radius; ++j, ++xs) { +var x2 = xs * xs; +var z2 = radiusF2 - y2 - x2; +if (z2 >= 0) ++countSE; +} +} +ss = Clazz.newIntArray (countSE, 0); +var offset = 0; +ys = d ? 0 : 0.5; +for (var i = 0; i < radius; ++i, ++ys) { +var y2 = ys * ys; +var xs = d ? 0 : 0.5; +for (var j = 0; j < radius; ++j, ++xs) { +var x2 = xs * xs; +var z2 = radiusF2 - y2 - x2; +if (z2 >= 0) { +var zs = Math.sqrt(z2); +var height = Clazz.floatToInt(zs); +var shadeIndexSE = sh.getShadeN(xs, ys, zs, radiusF); +var shadeIndexSW = sh.getShadeN(-xs, ys, zs, radiusF); +var shadeIndexNE = sh.getShadeN(xs, -ys, zs, radiusF); +var shadeIndexNW = sh.getShadeN(-xs, -ys, zs, radiusF); +var packed = (height | (shadeIndexSE << 7) | (shadeIndexSW << 13) | (shadeIndexNE << 19) | (shadeIndexNW << 25)); +ss[offset++] = packed; +}} +ss[offset - 1] |= 0x80000000; +} +sh.sphereShapeCache[diameter - 1] = ss; +}if (minX < 0 || maxX >= this.width || minY < 0 || maxY >= this.height || minZ < this.slab || z > this.depth) this.renderSphereClipped(ss, x, y, z, diameter, shades); + else this.renderSphereUnclipped(ss, z, diameter, shades); +}this.zbuf = null; +}, "~A,~N,~N,~N,~N,JU.M3,~A,JU.M4,~N,~A"); +Clazz.defineMethod(c$, "renderSphereUnclipped", +function(sphereShape, z, diameter, shades){ +var offsetSphere = 0; +var evenSizeCorrection = 1 - (diameter & 1); +var offsetSouthCenter = this.offsetPbufBeginLine; +var offsetNorthCenter = offsetSouthCenter - evenSizeCorrection * this.width; +var nLines = Clazz.doubleToInt((diameter + 1) / 2); +var zbuf = this.zbuf; +var width = this.width; +var p = this.g3d.pixel; +do { +var offsetSE = offsetSouthCenter; +var offsetSW = offsetSouthCenter - evenSizeCorrection; +var offsetNE = offsetNorthCenter; +var offsetNW = offsetNorthCenter - evenSizeCorrection; +var packed; +do { +packed = sphereShape[offsetSphere++]; +var zPixel = z - (packed & 0x7F); +if (zPixel < zbuf[offsetSE]) p.addPixel(offsetSE, zPixel, shades[((packed >> 7) & 0x3F)]); +if (zPixel < zbuf[offsetSW]) p.addPixel(offsetSW, zPixel, shades[((packed >> 13) & 0x3F)]); +if (zPixel < zbuf[offsetNE]) p.addPixel(offsetNE, zPixel, shades[((packed >> 19) & 0x3F)]); +if (zPixel < zbuf[offsetNW]) p.addPixel(offsetNW, zPixel, shades[((packed >> 25) & 0x3F)]); +++offsetSE; +--offsetSW; +++offsetNE; +--offsetNW; +} while (packed >= 0); +offsetSouthCenter += width; +offsetNorthCenter -= width; +} while (--nLines > 0); +}, "~A,~N,~N,~A"); +Clazz.defineMethod(c$, "renderSphereClipped", +function(sphereShape, x, y, z, diameter, shades){ +var w = this.width; +var h = this.height; +var offsetSphere = 0; +var evenSizeCorrection = 1 - (diameter & 1); +var offsetSouthCenter = this.offsetPbufBeginLine; +var offsetNorthCenter = offsetSouthCenter - evenSizeCorrection * w; +var nLines = Clazz.doubleToInt((diameter + 1) / 2); +var ySouth = y; +var yNorth = y - evenSizeCorrection; +var randu = (x << 16) + (y << 1) ^ 0x33333333; +var sh = shades; +var zb = this.zbuf; +var p = this.g3d.pixel; +var sl = this.slab; +var de = this.depth; +do { +var tSouthVisible = ySouth >= 0 && ySouth < h; +var tNorthVisible = yNorth >= 0 && yNorth < h; +var offsetSE = offsetSouthCenter; +var offsetSW = offsetSouthCenter - evenSizeCorrection; +var offsetNE = offsetNorthCenter; +var offsetNW = offsetNorthCenter - evenSizeCorrection; +var packed; +var xEast = x; +var xWest = x - evenSizeCorrection; +do { +var tWestVisible = xWest >= 0 && xWest < w; +var tEastVisible = xEast >= 0 && xEast < w; +packed = sphereShape[offsetSphere++]; +var isCore; +var zOffset = packed & 0x7F; +var zPixel; +if (z < sl) { +zPixel = z + zOffset; +isCore = (zPixel >= sl); +} else { +zPixel = z - zOffset; +isCore = (zPixel < sl); +}if (isCore) zPixel = sl; +if (zPixel >= sl && zPixel <= de) { +if (tSouthVisible) { +if (tEastVisible && zPixel < zb[offsetSE]) { +var i = (isCore ? 44 + ((randu >> 7) & 0x07) : (packed >> 7) & 0x3F); +p.addPixel(offsetSE, zPixel, sh[i]); +}if (tWestVisible && zPixel < zb[offsetSW]) { +var i = (isCore ? 44 + ((randu >> 13) & 0x07) : (packed >> 13) & 0x3F); +p.addPixel(offsetSW, zPixel, sh[i]); +}}if (tNorthVisible) { +if (tEastVisible && zPixel < zb[offsetNE]) { +var i = (isCore ? 44 + ((randu >> 19) & 0x07) : (packed >> 19) & 0x3F); +p.addPixel(offsetNE, zPixel, sh[i]); +}if (tWestVisible && zPixel < zb[offsetNW]) { +var i = (isCore ? 44 + ((randu >> 25) & 0x07) : (packed >> 25) & 0x3F); +p.addPixel(offsetNW, zPixel, sh[i]); +}}}++offsetSE; +--offsetSW; +++offsetNE; +--offsetNW; +++xEast; +--xWest; +if (isCore) randu = ((randu << 16) + (randu << 1) + randu) & 0x7FFFFFFF; +} while (packed >= 0); +offsetSouthCenter += w; +offsetNorthCenter -= w; +++ySouth; +--yNorth; +} while (--nLines > 0); +}, "~A,~N,~N,~N,~N,~A"); +Clazz.defineMethod(c$, "renderQuadrant", +function(xSign, ySign, x, y, z, diameter, shades){ +var radius = Clazz.doubleToInt(diameter / 2); +var t = x + radius * xSign; +var xStatus = (x < 0 ? -1 : x < this.width ? 0 : 1) + (t < 0 ? -2 : t < this.width ? 0 : 2); +if (xStatus == -3 || xStatus == 3) return; +t = y + radius * ySign; +var yStatus = (y < 0 ? -1 : y < this.height ? 0 : 1) + (t < 0 ? -2 : t < this.height ? 0 : 2); +if (yStatus == -3 || yStatus == 3) return; +var unclipped = (this.mat == null && xStatus == 0 && yStatus == 0 && z - radius >= this.slab && z <= this.depth); +if (unclipped) this.renderQuadrantUnclipped(radius, xSign, ySign, z, shades); + else this.renderQuadrantClipped(radius, xSign, ySign, x, y, z, shades); +}, "~N,~N,~N,~N,~N,~N,~A"); +Clazz.defineMethod(c$, "renderQuadrantUnclipped", +function(radius, xSign, ySign, z, s){ +var r2 = radius * radius; +var dDivisor = radius * 2 + 1; +var lineIncrement = (ySign < 0 ? -this.width : this.width); +var ptLine = this.offsetPbufBeginLine; +var zb = this.zbuf; +var p = this.g3d.pixel; +var indexes = this.shader.sphereShadeIndexes; +for (var i = 0, i2 = 0; i2 <= r2; i2 += i + (++i), ptLine += lineIncrement) { +var offset = ptLine; +var s2 = r2 - i2; +var z0 = z - radius; +var y8 = Clazz.doubleToInt(((i * ySign + radius) << 8) / dDivisor); +for (var j = 0, j2 = 0; j2 <= s2; j2 += j + (++j), offset += xSign) { +if (zb[offset] <= z0) continue; +var k = Clazz.doubleToInt(Math.sqrt(s2 - j2)); +z0 = z - k; +if (zb[offset] <= z0) continue; +var x8 = Clazz.doubleToInt(((j * xSign + radius) << 8) / dDivisor); +p.addPixel(offset, z0, s[indexes[((y8 << 8) + x8)]]); +} +} +}, "~N,~N,~N,~N,~A"); +Clazz.defineMethod(c$, "renderQuadrantClipped", +function(radius, xSign, ySign, x, y, z, shades){ +var isEllipsoid = (this.mat != null); +var checkOctant = (this.selectedOctant >= 0); +var r2 = radius * radius; +var dDivisor = radius * 2 + 1; +var lineIncrement = (ySign < 0 ? -this.width : this.width); +var ptLine = this.offsetPbufBeginLine; +var randu = (x << 16) + (y << 1) ^ 0x33333333; +var y8 = 0; +var iShade = 0; +var p = this.g3d.pixel; +var z1 = 0; +var h = this.height; +var w = this.width; +var x0 = x; +var zb = this.zbuf; +var xyz = this.dxyz; +var y0 = y; +var z0 = z; +var sl = this.slab; +var de = this.depth; +var pt = this.ptTemp; +var c = this.coef; +var rt = this.zroot; +var oct = this.selectedOctant; +var s = this.shader; +var pl = this.planeShades; +var indexes = s.sphereShadeIndexes; +var ps = this.planeShade; +var m = this.mat; +for (var i = 0, i2 = 0, yC = y; i2 <= r2; i2 += i + (++i), ptLine += lineIncrement, yC += ySign) { +if (yC < 0) { +if (ySign < 0) return; +continue; +}if (yC >= h) { +if (ySign > 0) return; +continue; +}var s2 = r2 - (isEllipsoid ? 0 : i2); +if (!isEllipsoid) { +y8 = Clazz.doubleToInt(((i * ySign + radius) << 8) / dDivisor); +}randu = ((randu << 16) + (randu << 1) + randu) & 0x7FFFFFFF; +var xC = x0; +for (var j = 0, j2 = 0, iRoot = -1, mode = 1, offset = ptLine; j2 <= s2; j2 += j + (++j), offset += xSign, xC += xSign) { +if (xC < 0) { +if (xSign < 0) break; +continue; +}if (xC >= w) { +if (xSign > 0) break; +continue; +}var zPixel; +if (isEllipsoid) { +var b_2a = (c[4] * xC + c[5] * yC + c[8]) / c[2] / 2; +var c_a = (c[0] * xC * xC + c[1] * yC * yC + c[3] * xC * yC + c[6] * xC + c[7] * yC - 1) / c[2]; +var f = b_2a * b_2a - c_a; +if (f < 0) { +if (iRoot >= 0) { +break; +}continue; +}f = Math.sqrt(f); +rt[0] = (-b_2a - f); +rt[1] = (-b_2a + f); +iRoot = (z0 < sl ? 1 : 0); +if ((zPixel = Clazz.doubleToInt(rt[iRoot])) == 0) zPixel = z0; +mode = 2; +z1 = zPixel; +if (checkOctant) { +pt.set(xC - x0, yC - y0, zPixel - z0); +m.rotate(pt); +var thisOctant = 0; +if (pt.x < 0) thisOctant |= 1; +if (pt.y < 0) thisOctant |= 2; +if (pt.z < 0) thisOctant |= 4; +if (thisOctant == oct) { +if (ps >= 0) { +iShade = ps; +} else { +var iMin = 3; +var dz; +var zMin = 3.4028235E38; +for (var ii = 0; ii < 3; ii++) { +if ((dz = xyz[ii][2]) == 0) continue; +var ptz = z0 + (-xyz[ii][0] * (xC - x) - xyz[ii][1] * (yC - y0)) / dz; +if (ptz < zMin) { +zMin = ptz; +iMin = ii; +}} +if (iMin == 3) { +iMin = 0; +zMin = z0; +}rt[0] = zMin; +iShade = pl[iMin]; +}zPixel = Clazz.doubleToInt(rt[0]); +mode = 3; +}var isCore = (z0 < sl ? zPixel >= sl : zPixel < sl); +if (isCore) { +z1 = zPixel = sl; +mode = 0; +}}if (zPixel < sl || zPixel > de || zb[offset] <= z1) continue; +} else { +var zOffset = Clazz.doubleToInt(Math.sqrt(s2 - j2)); +zPixel = z0 + (z0 < sl ? zOffset : -zOffset); +var isCore = (z0 < sl ? zPixel >= sl : zPixel < sl); +if (isCore) { +zPixel = sl; +mode = 0; +}if (zPixel < sl || zPixel > de || zb[offset] <= zPixel) continue; +}switch (mode) { +case 0: +iShade = (44 + ((randu >> 8) & 0x07)); +randu = ((randu << 16) + (randu << 1) + randu) & 0x7FFFFFFF; +mode = 1; +break; +case 2: +iShade = s.getEllipsoidShade(xC, yC, rt[iRoot], radius, this.mDeriv); +break; +case 3: +p.clearPixel(offset, z1); +break; +default: +var x8 = Clazz.doubleToInt(((j * xSign + radius) << 8) / dDivisor); +iShade = indexes[(y8 << 8) + x8]; +break; +} +p.addPixel(offset, zPixel, shades[iShade]); +} +randu = ((randu + xC + yC) | 1) & 0x7FFFFFFF; +} +}, "~N,~N,~N,~N,~N,~N,~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/TextRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/TextRenderer.js new file mode 100755 index 000000000000..fe9937d958de --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/TextRenderer.js @@ -0,0 +1,140 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["java.util.Hashtable"], "J.g3d.TextRenderer", ["JU.CU", "J.g3d.Graphics3D"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.height = 0; +this.ascent = 0; +this.width = 0; +this.mapWidth = 0; +this.size = 0; +this.tmap = null; +this.isInvalid = false; +Clazz.instantialize(this, arguments);}, J.g3d, "TextRenderer", null); +Clazz.makeConstructor(c$, +function(text, font3d){ +this.ascent = font3d.getAscent(); +this.height = font3d.getHeight(); +this.width = font3d.stringWidth(text); +if (this.width == 0) return; +this.mapWidth = this.width; +this.size = this.mapWidth * this.height; +}, "~S,JU.Font"); +c$.clearFontCache = Clazz.defineMethod(c$, "clearFontCache", +function(){ +if (J.g3d.TextRenderer.working) return; +J.g3d.TextRenderer.htFont3d.clear(); +J.g3d.TextRenderer.htFont3dAntialias.clear(); +}); +c$.plot = Clazz.defineMethod(c$, "plot", +function(x, y, z, argb, bgargb, text, font3d, g3d, jr, antialias){ +if (text.length == 0) return 0; +if (text.indexOf(" = 0 || text.indexOf(" = 0) return J.g3d.TextRenderer.plotByCharacter(x, y, z, argb, bgargb, text, font3d, g3d, jr, antialias); +var offset = font3d.getAscent(); +y -= offset; +var text3d = J.g3d.TextRenderer.getPlotText3D(x, y, g3d, text, font3d, antialias); +if (text3d.isInvalid) return text3d.width; +if (antialias) argb = J.g3d.Graphics3D.fixTextImageRGB(argb); +var textHeight = text3d.height; +var textWidth = text3d.width; +var tmap = text3d.tmap; +var g = g3d; +var width = g.width; +var height = g.height; +var zbuf = g.zbuf; +var p = g.pixel; +var tLog = g.translucencyLog; +if (jr != null || (x < 0 || x + text3d.width > width || y < 0 || y + text3d.height > height) && (jr = g3d) != null) { +for (var off = 0, i = 0; i < textHeight; i++) { +for (var j = 0; j < textWidth; j++) { +var shade = tmap[off++]; +if (shade != 0) jr.plotImagePixel(argb, x + j, y + i, z, shade, bgargb, width, height, zbuf, p, tLog); +} +} +} else { +for (var i = 0, off = 0, pbufOffset = y * width + x; i < textHeight; i++, pbufOffset += (width - textWidth)) for (var j = 0; j < textWidth; j++) p.addImagePixel(tmap[off++], tLog, pbufOffset++, z, argb, bgargb); + + +}return text3d.width; +}, "~N,~N,~N,~N,~N,~S,JU.Font,J.g3d.Graphics3D,J.api.JmolRendererInterface,~B"); +c$.plotByCharacter = Clazz.defineMethod(c$, "plotByCharacter", +function(x, y, z, argb, bgargb, text, font3d, g3d, jmolRenderer, antialias){ +var w = 0; +var len = text.length; +var suboffset = Math.round(font3d.getHeight() * 0.25); +var supoffset = -Math.round(font3d.getHeight() * 0.3); +var argb0 = 0; +for (var i = 0; i < len; i++) { +if (text.charAt(i) == '<') { +if (i + 5 < len && text.substring(i, i + 6).equals(" ", i); +if (pt < 0) continue; +argb = JU.CU.getArgbFromString(text.substring(i + 7, pt).trim()); +i = pt; +continue; +}if (i + 7 < len && text.substring(i, i + 8).equals(" ")) { +i += 7; +argb = argb0; +continue; +}if (i + 4 < len && text.substring(i, i + 5).equals("")) { +i += 4; +y += suboffset; +continue; +}if (i + 4 < len && text.substring(i, i + 5).equals("")) { +i += 4; +y += supoffset; +continue; +}if (i + 5 < len && text.substring(i, i + 6).equals("")) { +i += 5; +y -= suboffset; +continue; +}if (i + 5 < len && text.substring(i, i + 6).equals("")) { +i += 5; +y -= supoffset; +continue; +}}var width = J.g3d.TextRenderer.plot(x + w, y, z, argb, bgargb, text.substring(i, i + 1), font3d, g3d, jmolRenderer, antialias); +w += width; +} +return w; +}, "~N,~N,~N,~N,~N,~S,JU.Font,J.g3d.Graphics3D,J.api.JmolRendererInterface,~B"); +c$.getPlotText3D = Clazz.defineMethod(c$, "getPlotText3D", +function(x, y, g3d, text, font3d, antialias){ +J.g3d.TextRenderer.working = true; +var ht = (antialias ? J.g3d.TextRenderer.htFont3dAntialias : J.g3d.TextRenderer.htFont3d); +var htForThisFont = ht.get(font3d); +var text3d = null; +var newFont = false; +var newText = false; +if (htForThisFont != null) { +text3d = htForThisFont.get(text); +} else { +htForThisFont = new java.util.Hashtable(); +newFont = true; +}if (text3d == null) { +text3d = new J.g3d.TextRenderer(text, font3d); +newText = true; +}text3d.isInvalid = (text3d.width == 0 || x + text3d.width <= 0 || x >= g3d.width || y + text3d.height <= 0 || y >= g3d.height); +if (text3d.isInvalid) return text3d; +if (newFont) ht.put(font3d, htForThisFont); +if (newText) { +text3d.setTranslucency(text, font3d, g3d); +htForThisFont.put(text, text3d); +}J.g3d.TextRenderer.working = false; +return text3d; +}, "~N,~N,J.g3d.Graphics3D,~S,JU.Font,~B"); +Clazz.defineMethod(c$, "setTranslucency", +function(text, font3d, g3d){ +var pixels = g3d.apiPlatform.getTextPixels(text, font3d, g3d.platform.getGraphicsForTextOrImage(this.mapWidth, this.height), g3d.platform.offscreenImage, this.mapWidth, this.height, this.ascent); +if (pixels == null) return; +this.tmap = Clazz.newByteArray (this.size, 0); +for (var i = pixels.length; --i >= 0; ) { +var p = pixels[i] & 0xFF; +if (p != 0) { +this.tmap[i] = J.g3d.TextRenderer.translucency[p >> 5]; +}} +}, "~S,JU.Font,J.g3d.Graphics3D"); +c$.translucency = Clazz.newByteArray(-1, [7, 6, 5, 4, 3, 2, 1, 8]); +c$.working = false; +c$.htFont3d = new java.util.Hashtable(); +c$.htFont3dAntialias = new java.util.Hashtable(); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/TextString.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/TextString.js new file mode 100755 index 000000000000..97e13368a446 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/TextString.js @@ -0,0 +1,28 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["JU.P3i"], "J.g3d.TextString", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.text = null; +this.font = null; +this.argb = 0; +this.bgargb = 0; +Clazz.instantialize(this, arguments);}, J.g3d, "TextString", JU.P3i, java.util.Comparator); +Clazz.defineMethod(c$, "setText", +function(text, font, argb, bgargb, x, y, z){ +this.text = text; +this.font = font; +this.argb = argb; +this.bgargb = bgargb; +this.x = x; +this.y = y; +this.z = z; +}, "~S,JU.Font,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "compare", +function(a, b){ +return (a == null || b == null ? 0 : a.z > b.z ? -1 : a.z < b.z ? 1 : 0); +}, "J.g3d.TextString,J.g3d.TextString"); +Clazz.overrideMethod(c$, "toString", +function(){ +return this.asString() + " " + this.text; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/TriangleRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/g3d/TriangleRenderer.js new file mode 100755 index 000000000000..856d72a79e9c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/TriangleRenderer.js @@ -0,0 +1,244 @@ +Clazz.declarePackage("J.g3d"); +Clazz.load(["J.g3d.G3DRenderer", "$.PrecisionRenderer", "JU.Rgb16"], "J.g3d.TriangleRenderer", ["JU.GData"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.g3d = null; +this.ax = null; +this.ay = null; +this.az = null; +this.aa = null; +this.bb = null; +this.axW = null; +this.azW = null; +this.axE = null; +this.azE = null; +this.rgb16sW = null; +this.rgb16sE = null; +this.rgb16sGouraud = null; +this.rgb16t1 = null; +this.rgb16t2 = null; +Clazz.instantialize(this, arguments);}, J.g3d, "TriangleRenderer", J.g3d.PrecisionRenderer, J.g3d.G3DRenderer); +Clazz.prepareFields (c$, function(){ +this.ax = Clazz.newIntArray (3, 0); +this.ay = Clazz.newIntArray (3, 0); +this.az = Clazz.newIntArray (3, 0); +this.aa = Clazz.newFloatArray (64, 0); +this.bb = Clazz.newFloatArray (64, 0); +this.axW = Clazz.newIntArray (64, 0); +this.azW = Clazz.newIntArray (64, 0); +this.axE = Clazz.newIntArray (64, 0); +this.azE = Clazz.newIntArray (64, 0); +this.rgb16t1 = new JU.Rgb16(); +this.rgb16t2 = new JU.Rgb16(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.g3d.TriangleRenderer, []); +}); +Clazz.overrideMethod(c$, "set", +function(g3d, gdata){ +try { +this.rgb16sW = new Array(64); +this.rgb16sE = new Array(64); +for (var i = 64; --i >= 0; ) { +this.rgb16sW[i] = new JU.Rgb16(); +this.rgb16sE[i] = new JU.Rgb16(); +} +this.g3d = g3d; +this.rgb16sGouraud = new Array(3); +for (var i = 3; --i >= 0; ) this.rgb16sGouraud[i] = new JU.Rgb16(); + +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +return this; +}, "J.api.JmolRendererInterface,JU.GData"); +Clazz.defineMethod(c$, "reallocRgb16s", +function(rgb16s, n){ +var t = new Array(n); +System.arraycopy(rgb16s, 0, t, 0, rgb16s.length); +for (var i = rgb16s.length; i < n; ++i) t[i] = new JU.Rgb16(); + +return t; +}, "~A,~N"); +Clazz.defineMethod(c$, "setGouraud", +function(rgbA, rgbB, rgbC){ +this.rgb16sGouraud[0].setInt(rgbA); +this.rgb16sGouraud[1].setInt(rgbB); +this.rgb16sGouraud[2].setInt(rgbC); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "fillTriangle", +function(screenA, screenB, screenC, useGouraud){ +this.ax[0] = screenA.x; +this.ax[1] = screenB.x; +this.ax[2] = screenC.x; +this.ay[0] = screenA.y; +this.ay[1] = screenB.y; +this.ay[2] = screenC.y; +this.az[0] = screenA.z; +this.az[1] = screenB.z; +this.az[2] = screenC.z; +if (this.az[0] <= 1 || this.az[1] <= 1 || this.az[2] <= 1) return; +var cc0 = this.g3d.clipCode3(this.ax[0], this.ay[0], this.az[0]); +var cc1 = this.g3d.clipCode3(this.ax[1], this.ay[1], this.az[1]); +var cc2 = this.g3d.clipCode3(this.ax[2], this.ay[2], this.az[2]); +var c = (cc0 | cc1 | cc2); +var isClipped = (c != 0); +if (isClipped) { +if (c == -1 || (cc0 & cc1 & cc2) != 0) { +return; +}}var iMinY = 0; +if (this.ay[1] < this.ay[iMinY]) iMinY = 1; +if (this.ay[2] < this.ay[iMinY]) iMinY = 2; +var iMidY = (iMinY + 1) % 3; +var iMaxY = (iMinY + 2) % 3; +if (this.ay[iMidY] > this.ay[iMaxY]) { +var t = iMidY; +iMidY = iMaxY; +iMaxY = t; +}var yMin = this.ay[iMinY]; +var yMid = this.ay[iMidY]; +var yMax = this.ay[iMaxY]; +var nLines = yMax - yMin + 1; +if (nLines > this.g3d.height * 3) return; +if (nLines > this.axW.length) { +var n = (nLines + 31) & -32; +this.axW = Clazz.newIntArray (n, 0); +this.azW = Clazz.newIntArray (n, 0); +this.axE = Clazz.newIntArray (n, 0); +this.azE = Clazz.newIntArray (n, 0); +this.aa = Clazz.newFloatArray (n, 0); +this.bb = Clazz.newFloatArray (n, 0); +this.rgb16sW = this.reallocRgb16s(this.rgb16sW, n); +this.rgb16sE = this.reallocRgb16s(this.rgb16sE, n); +}var gouraudW; +var gouraudE; +if (useGouraud) { +gouraudW = this.rgb16sW; +gouraudE = this.rgb16sE; +} else { +gouraudW = gouraudE = null; +}var dyMidMin = yMid - yMin; +if (dyMidMin == 0) { +if (this.ax[iMidY] < this.ax[iMinY]) { +var t = iMidY; +iMidY = iMinY; +iMinY = t; +}this.generateRaster(nLines, iMinY, iMaxY, this.axW, this.azW, 0, gouraudW); +this.generateRaster(nLines, iMidY, iMaxY, this.axE, this.azE, 0, gouraudE); +} else if (yMid == yMax) { +if (this.ax[iMaxY] < this.ax[iMidY]) { +var t = iMidY; +iMidY = iMaxY; +iMaxY = t; +}this.generateRaster(nLines, iMinY, iMidY, this.axW, this.azW, 0, gouraudW); +this.generateRaster(nLines, iMinY, iMaxY, this.axE, this.azE, 0, gouraudE); +} else { +var dxMaxMin = this.ax[iMaxY] - this.ax[iMinY]; +var roundFactor; +roundFactor = JU.GData.roundInt(Clazz.doubleToInt(nLines / 2)); +if (dxMaxMin < 0) roundFactor = -roundFactor; +var axSplit = this.ax[iMinY] + Clazz.doubleToInt((dxMaxMin * dyMidMin + roundFactor) / nLines); +if (axSplit < this.ax[iMidY]) { +this.generateRaster(nLines, iMinY, iMaxY, this.axW, this.azW, 0, gouraudW); +this.generateRaster(dyMidMin + 1, iMinY, iMidY, this.axE, this.azE, 0, gouraudE); +this.generateRaster(nLines - dyMidMin, iMidY, iMaxY, this.axE, this.azE, dyMidMin, gouraudE); +} else { +this.generateRaster(dyMidMin + 1, iMinY, iMidY, this.axW, this.azW, 0, gouraudW); +this.generateRaster(nLines - dyMidMin, iMidY, iMaxY, this.axW, this.azW, dyMidMin, gouraudW); +this.generateRaster(nLines, iMinY, iMaxY, this.axE, this.azE, 0, gouraudE); +}}this.g3d.setZMargin(5); +var pass2Row = this.g3d.pass2Flag01; +var pass2Off = 1 - pass2Row; +var xW; +var i = 0; +if (yMin < 0) { +nLines += yMin; +i -= yMin; +yMin = 0; +}if (yMin + nLines > this.g3d.height) nLines = this.g3d.height - yMin; +if (useGouraud) { +if (isClipped) { +for (; --nLines >= pass2Row; ++yMin, ++i) { +var pixelCount = this.axE[i] - (xW = this.axW[i]) + pass2Off; +if (pixelCount > 0) this.g3d.plotPixelsClippedRaster(pixelCount, xW, yMin, this.azW[i], this.azE[i], this.rgb16sW[i], this.rgb16sE[i]); +} +} else { +for (; --nLines >= pass2Row; ++yMin, ++i) { +var pixelCount = this.axE[i] - (xW = this.axW[i]) + pass2Off; +if (pass2Row == 1 && pixelCount < 0) { +pixelCount = 1; +xW--; +}if (pixelCount > 0) this.g3d.plotPixelsUnclippedRaster(pixelCount, xW, yMin, this.azW[i], this.azE[i], this.rgb16sW[i], this.rgb16sE[i]); +} +}} else { +if (isClipped) { +for (; --nLines >= pass2Row; ++yMin, ++i) { +var pixelCount = this.axE[i] - (xW = this.axW[i]) + pass2Off; +if (pixelCount > 0) this.g3d.plotPixelsClippedRasterBits(pixelCount, xW, yMin, this.azW[i], this.azE[i], null, null, this.aa[i], this.bb[i]); +} +} else { +for (; --nLines >= pass2Row; ++yMin, ++i) { +var pixelCount = this.axE[i] - (xW = this.axW[i]) + pass2Off; +if (pass2Row == 1 && pixelCount < 0) { +pixelCount = 1; +xW--; +}if (pixelCount > 0) this.g3d.plotPixelsUnclippedRasterBits(pixelCount, xW, yMin, null, null, this.aa[i], this.bb[i]); +} +}}this.g3d.setZMargin(0); +}, "JU.P3i,JU.P3i,JU.P3i,~B"); +Clazz.defineMethod(c$, "generateRaster", +function(dy, iN, iS, axRaster, azRaster, iRaster, gouraud){ +var xN = this.ax[iN]; +var xS = this.ax[iS]; +var dx = xS - xN; +var xCurrent = xN; +var xIncrement; +var width; +var errorTerm; +if (dx >= 0) { +xIncrement = 1; +width = dx; +errorTerm = 0; +} else { +xIncrement = -1; +width = -dx; +errorTerm = 1 - dy; +}var xMajorIncrement; +var xMajorError; +if (width <= dy) { +xMajorIncrement = 0; +xMajorError = width; +} else { +xMajorIncrement = JU.GData.roundInt(Clazz.doubleToInt(dx / dy)); +xMajorError = width % dy; +}this.setRastAB(this.ay[iN], this.az[iN], this.ay[iS], this.az[iS]); +var a0 = this.a; +var b0 = this.b; +var isEast = (axRaster === this.axE); +for (var y = 0, zy = this.ay[iN], lastY = dy - 1, i = iRaster; y <= lastY; ++i, ++y, ++zy) { +if (i == 0 || i > iRaster) { +axRaster[i] = (y == lastY ? this.ax[iS] : xCurrent); +azRaster[i] = this.getZCurrent(a0, b0, zy); +if (isEast) { +this.setRastAB(this.axW[i], this.azW[i], axRaster[i], azRaster[i]); +this.aa[i] = this.a; +this.bb[i] = this.b; +}}xCurrent += xMajorIncrement; +errorTerm += xMajorError; +if (errorTerm > 0) { +xCurrent += xIncrement; +errorTerm -= dy; +}} +if (gouraud != null) { +var rgb16Base = this.rgb16t1; +rgb16Base.setRgb(this.rgb16sGouraud[iN]); +var rgb16Increment = this.rgb16t2; +rgb16Increment.diffDiv(this.rgb16sGouraud[iS], rgb16Base, dy); +for (var i = iRaster, iMax = iRaster + dy; i < iMax; ++i) gouraud[i].setAndIncrement(rgb16Base, rgb16Increment); + +}}, "~N,~N,~N,~A,~A,~N,~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/g3d/package.html b/config/plugins/visualizations/jmol/static/j2s/J/g3d/package.html new file mode 100755 index 000000000000..dd367deda1a7 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/g3d/package.html @@ -0,0 +1,61 @@ + + + + + + + ++ Provides a software implementation of complete 3D graphics engine + for rendering molecules and associated shapes. + basic shapes. +
++ This package implements all graphics primitives used by Jmol. The + graphics engine does not use Java3D or OpenGL. It requires no specialized + graphics hardware. This allows Jmol and the JmolApplet to run on any + machine that has a JVM. +
++ It is a software implementation of a graphics z-buffer. An int[] called + pbuf (for pixel buffer) is used to hold ARGB values for pixels. A short[] + called zbuf holds the z-depth value. +
++ Shape primitives are provided for drawing spheres, cylinders, triangles, etc. + Shading primitives provide lighting/shading support +
+ +Related Documentation
+ + Makes use of javax.vecmath classes. + + + + + diff --git a/config/plugins/visualizations/jmol/static/j2s/J/geodesic/EnvelopeCalculation.js b/config/plugins/visualizations/jmol/static/j2s/J/geodesic/EnvelopeCalculation.js new file mode 100755 index 000000000000..1952b2cdd9da --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/geodesic/EnvelopeCalculation.js @@ -0,0 +1,359 @@ +Clazz.declarePackage("J.geodesic"); +Clazz.load(["J.api.JmolEnvCalc", "JU.P3", "J.atomdata.AtomData"], "J.geodesic.EnvelopeCalculation", ["JU.AU", "$.BS", "$.V3", "J.atomdata.RadiusData", "JU.BSUtil", "$.Geodesic", "$.Normix"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.geodesicMap = null; +this.mapT = null; +this.mads = null; +this.atomData = null; +this.vwr = null; +this.ac = 0; +this.maxRadius = 0; +this.modelZeroBased = false; +this.disregardNeighbors = false; +this.bsMySelected = null; +this.dotsConvexMaps = null; +this.dotsConvexMax = 0; +this.geodesicCount = 0; +this.bsSurface = null; +this.radiusP = 0; +this.diameterP = 0; +this.bsTemp = null; +this.bsIgnore = null; +this.onlySelectedDots = false; +this.isSurface = false; +this.multiModel = false; +this.currentPoints = null; +this.indexI = 0; +this.centerI = null; +this.radiusI = 0; +this.radiiIP2 = 0; +this.pointT = null; +this.centerT = null; +this.vertexTest = null; +this.neighborCount = 0; +this.neighborIndices = null; +this.neighborCenters = null; +this.neighborPlusProbeRadii2 = null; +this.neighborRadii2 = null; +Clazz.instantialize(this, arguments);}, J.geodesic, "EnvelopeCalculation", null, J.api.JmolEnvCalc); +Clazz.prepareFields (c$, function(){ +this.atomData = new J.atomdata.AtomData(); +this.pointT = new JU.P3(); +this.vertexTest = new Array(12); +{ +for (var i = 0; i < 12; i++) this.vertexTest[i] = new JU.P3(); + +}this.neighborIndices = Clazz.newIntArray (16, 0); +this.neighborCenters = new Array(16); +this.neighborPlusProbeRadii2 = Clazz.newFloatArray (16, 0); +this.neighborRadii2 = Clazz.newFloatArray (16, 0); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.overrideMethod(c$, "set", +function(vwr, ac, mads){ +this.vwr = vwr; +this.ac = ac; +this.mads = mads; +this.geodesicCount = JU.Geodesic.getVertexCount(3); +this.geodesicMap = JU.BS.newN(this.geodesicCount); +this.mapT = JU.BS.newN(this.geodesicCount); +J.geodesic.EnvelopeCalculation.EMPTY_SET = JU.BSUtil.emptySet; +return this; +}, "J.atomdata.AtomDataServer,~N,~A"); +Clazz.defineMethod(c$, "getDotsConvexMaps", +function(){ +return this.dotsConvexMaps; +}); +Clazz.defineMethod(c$, "getDotsConvexMax", +function(){ +return this.dotsConvexMax; +}); +Clazz.defineMethod(c$, "allocDotsConvexMaps", +function(max){ +if (this.dotsConvexMax >= max) return; +this.dotsConvexMax = max; +this.dotsConvexMaps = new Array(max); +}, "~N"); +Clazz.overrideMethod(c$, "getBsSurfaceClone", +function(){ +return JU.BSUtil.copy(this.bsSurface); +}); +Clazz.defineMethod(c$, "setMads", +function(mads){ +this.mads = mads; +}, "~A"); +Clazz.defineMethod(c$, "setFromBits", +function(index, bs){ +this.geodesicMap.setBits(0, this.geodesicCount); +for (var iDot = this.geodesicCount; --iDot >= 0; ) if (!bs.get(iDot)) this.geodesicMap.clear(iDot); + +if (this.dotsConvexMaps == null) this.dotsConvexMaps = new Array(this.ac); +var map; +if (this.geodesicMap.isEmpty()) map = J.geodesic.EnvelopeCalculation.EMPTY_SET; + else map = JU.BSUtil.copy(this.geodesicMap); +if (index >= this.dotsConvexMaps.length) return; +this.dotsConvexMaps[index] = map; +this.dotsConvexMax = Math.max(this.dotsConvexMax, index); +}, "~N,JU.BS"); +Clazz.defineMethod(c$, "newSet", +function(){ +this.dotsConvexMax = 0; +this.dotsConvexMaps = null; +this.radiusP = this.diameterP = 0; +this.mads = null; +}); +Clazz.defineMethod(c$, "reCalculate", +function(bs, m){ +if (this.atomData.radiusData != null) { +this.calculate(null, this.maxRadius, bs, this.bsIgnore, this.disregardNeighbors, this.onlySelectedDots, this.isSurface, this.multiModel); +return; +}if (this.dotsConvexMaps == null || this.dotsConvexMax == 0) return; +var pt = new JU.V3(); +if (this.bsTemp == null) this.bsTemp = JU.Normix.newVertexBitSet(); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +if (i >= this.dotsConvexMax) return; +var map = this.dotsConvexMaps[i]; +if (map == null || map.isEmpty()) continue; +var bsNew = new JU.BS(); +for (var j = map.nextSetBit(0); j >= 0; j = map.nextSetBit(j + 1)) { +pt.setT(JU.Geodesic.getVertexVector(j)); +m.rotate(pt); +bsNew.set(JU.Normix.getNormixV(pt, this.bsTemp)); +} +this.dotsConvexMaps[i] = bsNew; +} +}, "JU.BS,JU.M3"); +Clazz.overrideMethod(c$, "calculate", +function(rd, maxRadius, bsSelected, bsIgnore, disregardNeighbors, onlySelectedDots, isSurface, multiModel){ +if (rd == null) { +rd = this.atomData.radiusData; +if (rd == null) return; +} else { +this.atomData.radiusData = rd; +this.bsIgnore = bsIgnore; +this.onlySelectedDots = onlySelectedDots; +this.multiModel = multiModel; +this.isSurface = isSurface; +}if (rd.value == 3.4028235E38) rd.value = 3.0; +this.atomData.modelIndex = (multiModel ? -1 : 0); +this.modelZeroBased = !multiModel; +this.vwr.fillAtomData(this.atomData, 1 | (this.mads == null ? 2 : 0)); +this.ac = this.atomData.ac; +if (this.mads != null) for (var i = 0; i < this.ac; i++) this.atomData.atomRadius[i] = this.mads[i] / 1000; + +this.bsMySelected = (onlySelectedDots && bsSelected != null ? JU.BSUtil.copy(bsSelected) : bsIgnore != null ? JU.BSUtil.setAll(this.ac) : null); +JU.BSUtil.andNot(this.bsMySelected, bsIgnore); +this.disregardNeighbors = disregardNeighbors; +this.maxRadius = maxRadius; +this.bsSurface = new JU.BS(); +var isAll = (bsSelected == null); +var iter = this.vwr.getSelectedAtomIterator(this.bsMySelected, false, this.modelZeroBased, false); +this.checkNewDotsArray(); +var i0 = (isAll ? this.ac - 1 : bsSelected.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsSelected.nextSetBit(i + 1))) if (bsIgnore == null || !bsIgnore.get(i)) { +this.setAtomI(i); +this.getNeighbors(iter); +this.calcConvexMap(isSurface); +} +iter.release(); +this.currentPoints = null; +this.setDotsConvexMax(); +}, "J.atomdata.RadiusData,~N,JU.BS,JU.BS,~B,~B,~B,~B"); +Clazz.defineMethod(c$, "getRadius", +function(atomIndex){ +return this.atomData.atomRadius[atomIndex]; +}, "~N"); +Clazz.overrideMethod(c$, "getPoints", +function(){ +if (this.dotsConvexMaps == null) { +this.calculate( new J.atomdata.RadiusData(null, 3.0, J.atomdata.RadiusData.EnumType.ABSOLUTE, null), 3.4028235E38, this.bsMySelected, null, false, false, false, false); +}if (this.currentPoints != null) return this.currentPoints; +var nPoints = 0; +var dotCount = 42; +for (var i = this.dotsConvexMax; --i >= 0; ) if (this.dotsConvexMaps[i] != null) nPoints += this.dotsConvexMaps[i].cardinalityN(dotCount); + +var points = new Array(nPoints); +if (nPoints == 0) return points; +nPoints = 0; +for (var i = this.dotsConvexMax; --i >= 0; ) if (this.dotsConvexMaps[i] != null) { +var iDot = this.dotsConvexMaps[i].size(); +if (iDot > dotCount) iDot = dotCount; +while (--iDot >= 0) if (this.dotsConvexMaps[i].get(iDot)) { +var pt = new JU.P3(); +pt.scaleAdd2(this.atomData.atomRadius[i], JU.Geodesic.getVertexVector(iDot), this.atomData.xyz[i]); +points[nPoints++] = pt; +} +} +this.currentPoints = points; +return points; +}); +Clazz.defineMethod(c$, "setDotsConvexMax", +function(){ +if (this.dotsConvexMaps == null) this.dotsConvexMax = 0; + else { +var i; +for (i = this.ac; --i >= 0 && this.dotsConvexMaps[i] == null; ) { +} +this.dotsConvexMax = i + 1; +}}); +Clazz.defineMethod(c$, "getAppropriateRadius", +function(atomIndex){ +return (this.mads != null ? (atomIndex >= this.mads.length ? 0 : this.mads[atomIndex] / 1000) : this.atomData.atomRadius[atomIndex]); +}, "~N"); +Clazz.defineMethod(c$, "setAtomI", +function(indexI){ +this.indexI = indexI; +this.centerI = this.atomData.xyz[indexI]; +this.radiusI = this.atomData.atomRadius[indexI]; +this.radiiIP2 = this.radiusI + this.radiusP; +this.radiiIP2 *= this.radiiIP2; +}, "~N"); +Clazz.defineMethod(c$, "calcConvexMap", +function(isSurface){ +this.calcConvexBits(); +var map; +if (this.geodesicMap.isEmpty()) map = J.geodesic.EnvelopeCalculation.EMPTY_SET; + else { +this.bsSurface.set(this.indexI); +if (isSurface) { +this.addIncompleteFaces(this.geodesicMap); +this.addIncompleteFaces(this.geodesicMap); +}map = JU.BSUtil.copy(this.geodesicMap); +}this.dotsConvexMaps[this.indexI] = map; +}, "~B"); +Clazz.defineMethod(c$, "addIncompleteFaces", +function(points){ +this.mapT.clearAll(); +var faces = JU.Geodesic.getFaceVertexes(3); +var len = faces.length; +var maxPt = -1; +for (var f = 0; f < len; ) { +var p1 = faces[f++]; +var p2 = faces[f++]; +var p3 = faces[f++]; +var ok1 = points.get(p1); +var ok2 = points.get(p2); +var ok3 = points.get(p3); +if (!(ok1 || ok2 || ok3) || ok1 && ok2 && ok3) continue; +if (!ok1) { +this.mapT.set(p1); +if (maxPt < p1) maxPt = p1; +}if (!ok2) { +this.mapT.set(p2); +if (maxPt < p2) maxPt = p2; +}if (!ok3) { +this.mapT.set(p3); +if (maxPt < p3) maxPt = p3; +}} +for (var i = 0; i <= maxPt; i++) { +if (this.mapT.get(i)) points.set(i); +} +}, "JU.BS"); +Clazz.defineMethod(c$, "calcConvexBits", +function(){ +this.geodesicMap.setBits(0, this.geodesicCount); +var combinedRadii = this.radiusI + this.radiusP; +if (this.neighborCount == 0) return; +var faceTest; +var p1; +var p2; +var p3; +var faces = JU.Geodesic.getFaceVertexes(3); +var p4 = J.geodesic.EnvelopeCalculation.power4[2]; +var ok1; +var ok2; +var ok3; +this.mapT.clearAll(); +for (var i = 0; i < 12; i++) { +this.vertexTest[i].scaleAdd2(combinedRadii, JU.Geodesic.getVertexVector(i), this.centerI); +} +for (var f = 0; f < 20; f++) { +faceTest = 0; +p1 = faces[3 * p4 * (4 * f + 0)]; +p2 = faces[3 * p4 * (4 * f + 1)]; +p3 = faces[3 * p4 * (4 * f + 2)]; +for (var j = 0; j < this.neighborCount; j++) { +var maxDist = this.neighborPlusProbeRadii2[j]; +this.centerT = this.neighborCenters[j]; +ok1 = this.vertexTest[p1].distanceSquared(this.centerT) >= maxDist; +ok2 = this.vertexTest[p2].distanceSquared(this.centerT) >= maxDist; +ok3 = this.vertexTest[p3].distanceSquared(this.centerT) >= maxDist; +if (!ok1) this.geodesicMap.clear(p1); +if (!ok2) this.geodesicMap.clear(p2); +if (!ok3) this.geodesicMap.clear(p3); +if (!ok1 && !ok2 && !ok3) { +faceTest = -1; +break; +}} +var kFirst = f * 12 * p4; +var kLast = kFirst + 12 * p4; +for (var k = kFirst; k < kLast; k++) { +var vect = faces[k]; +if (this.mapT.get(vect) || !this.geodesicMap.get(vect)) continue; +switch (faceTest) { +case -1: +this.geodesicMap.clear(vect); +break; +case 0: +for (var j = 0; j < this.neighborCount; j++) { +var maxDist = this.neighborPlusProbeRadii2[j]; +this.centerT = this.neighborCenters[j]; +this.pointT.scaleAdd2(combinedRadii, JU.Geodesic.getVertexVector(vect), this.centerI); +if (this.pointT.distanceSquared(this.centerT) < maxDist) this.geodesicMap.clear(vect); +} +break; +case 1: +} +this.mapT.set(vect); +} +} +}); +Clazz.defineMethod(c$, "checkNewDotsArray", +function(){ +if (this.dotsConvexMaps == null) { +this.dotsConvexMaps = new Array(this.ac); +} else if (this.dotsConvexMaps.length != this.ac) { +var a = new Array(this.ac); +for (var i = 0; i < this.ac && i < this.dotsConvexMaps.length; i++) a[i] = this.dotsConvexMaps[i]; + +this.dotsConvexMaps = a; +}}); +Clazz.defineMethod(c$, "getNeighbors", +function(iter){ +this.neighborCount = 0; +if (this.disregardNeighbors) return null; +this.vwr.setIteratorForAtom(iter, this.indexI, this.radiusI + this.diameterP + this.maxRadius); +while (iter.hasNext()) { +var indexN = iter.next(); +var neighborRadius = this.atomData.atomRadius[indexN]; +if (this.centerI.distance(this.atomData.xyz[indexN]) > this.radiusI + this.radiusP + this.radiusP + neighborRadius) continue; +if (this.neighborCount == this.neighborIndices.length) { +this.neighborIndices = JU.AU.doubleLengthI(this.neighborIndices); +this.neighborCenters = JU.AU.doubleLength(this.neighborCenters); +this.neighborPlusProbeRadii2 = JU.AU.doubleLengthF(this.neighborPlusProbeRadii2); +this.neighborRadii2 = JU.AU.doubleLengthF(this.neighborRadii2); +}this.neighborCenters[this.neighborCount] = this.atomData.xyz[indexN]; +this.neighborIndices[this.neighborCount] = indexN; +var r = neighborRadius + this.radiusP; +this.neighborPlusProbeRadii2[this.neighborCount] = r * r; +this.neighborRadii2[this.neighborCount] = neighborRadius * neighborRadius; +++this.neighborCount; +} +return iter; +}, "J.api.AtomIndexIterator"); +Clazz.defineMethod(c$, "deleteAtoms", +function(firstAtomDeleted, nAtomsDeleted){ +this.dotsConvexMaps = JU.AU.deleteElements(this.dotsConvexMaps, firstAtomDeleted, nAtomsDeleted); +this.dotsConvexMax = this.dotsConvexMaps.length; +if (this.mads != null) this.mads = JU.AU.deleteElements(this.mads, firstAtomDeleted, nAtomsDeleted); +this.atomData.atomRadius = JU.AU.deleteElements(this.atomData.atomRadius, firstAtomDeleted, nAtomsDeleted); +this.atomData.xyz = JU.AU.deleteElements(this.atomData.xyz, firstAtomDeleted, nAtomsDeleted); +this.atomData.ac -= nAtomsDeleted; +this.ac = this.atomData.ac; +}, "~N,~N"); +c$.EMPTY_SET = null; +c$.power4 = Clazz.newIntArray(-1, [1, 4, 16, 64, 256]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/i18n/GT.js b/config/plugins/visualizations/jmol/static/j2s/J/i18n/GT.js new file mode 100755 index 000000000000..f5a47063edd8 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/i18n/GT.js @@ -0,0 +1,186 @@ +Clazz.declarePackage("J.i18n"); +Clazz.load(["J.api.Translator", "java.text.MessageFormat", "java.util.Hashtable", "JU.PT", "J.i18n.Language", "$.Resource"], "J.i18n.GT", ["JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.resources = null; +this.resourceCount = 0; +this.doTranslate = true; +this.language = null; +Clazz.instantialize(this, arguments);}, J.i18n, "GT", null, J.api.Translator); +/*LV!1824 unnec constructor*/Clazz.makeConstructor(c$, +function(vr, langCode){ +{ +}this.resources = null; +this.resourceCount = 0; +J.i18n.GT.$getTextWrapper = this; +if (langCode != null && langCode.length == 0) langCode = "none"; +if (langCode != null) this.language = langCode; +if ("none".equals(this.language)) this.language = null; +if (this.language == null) this.language = J.i18n.Resource.getLanguage(); +if (this.language == null) this.language = "en"; +var la = this.language; +var la_co = null; +var la_co_va = null; +var i = this.language.indexOf("_"); +if (i >= 0) { +la = la.substring(0, i); +la_co = this.language; +if ((i = la_co.indexOf("_", ++i)) >= 0) { +la_co = la_co.substring(0, i); +la_co_va = this.language; +}}if ((this.language = this.getSupported(la_co_va)) == null && (this.language = this.getSupported(la_co)) == null && (this.language = this.getSupported(la)) == null) { +this.language = "en"; +System.out.println(this.language + " not supported -- using en"); +return; +}la_co_va = null; +la_co = null; +switch (this.language.length) { +default: +la_co_va = this.language; +la_co = this.language.substring(0, 5); +la = this.language.substring(0, 2); +break; +case 5: +la_co = this.language; +la = this.language.substring(0, 2); +break; +case 2: +la = this.language; +break; +} +la_co = this.getSupported(la_co); +la = this.getSupported(la); +if (la === la_co || "en_US".equals(la)) la = null; +if (la_co === la_co_va) la_co = null; +if ("en_US".equals(la_co)) return; +if (J.i18n.GT.allowDebug && JU.Logger.debugging) JU.Logger.debug("Instantiating gettext wrapper for " + this.language + " using files for language:" + la + " country:" + la_co + " variant:" + la_co_va); +if (!J.i18n.GT.$ignoreApplicationBundle) this.addBundles(vr, "Jmol", la_co_va, null, null); +this.addBundles(vr, "JmolApplet", la_co_va, null, null); +if (!J.i18n.GT.$ignoreApplicationBundle) this.addBundles(vr, "Jmol", null, la_co, null); +this.addBundles(vr, "JmolApplet", null, la_co, null); +if (!J.i18n.GT.$ignoreApplicationBundle) this.addBundles(vr, "Jmol", null, null, la); +this.addBundles(vr, "JmolApplet", null, null, la); +}, "JV.Viewer,~S"); +Clazz.overrideMethod(c$, "translate", +function(s){ +return J.i18n.GT.$(s); +}, "~S"); +c$.getLanguageList = Clazz.defineMethod(c$, "getLanguageList", +function(gt){ +if (J.i18n.GT.languageList == null) { +if (gt == null) gt = J.i18n.GT.getTextWrapper(); +gt.createLanguageList(); +}return J.i18n.GT.languageList; +}, "J.i18n.GT"); +c$.getLanguage = Clazz.defineMethod(c$, "getLanguage", +function(){ +return J.i18n.GT.getTextWrapper().language; +}); +c$.ignoreApplicationBundle = Clazz.defineMethod(c$, "ignoreApplicationBundle", +function(){ +J.i18n.GT.$ignoreApplicationBundle = true; +}); +c$.setDoTranslate = Clazz.defineMethod(c$, "setDoTranslate", +function(TF){ +var b = J.i18n.GT.getDoTranslate(); +J.i18n.GT.getTextWrapper().doTranslate = TF; +return b; +}, "~B"); +c$.getDoTranslate = Clazz.defineMethod(c$, "getDoTranslate", +function(){ +return J.i18n.GT.getTextWrapper().doTranslate; +}); +c$.$ = Clazz.defineMethod(c$, "$", +function(string){ +return J.i18n.GT.getTextWrapper().getString(string); +}, "~S"); +c$.o = Clazz.defineMethod(c$, "o", +function(s, o){ +if (Clazz.instanceOf(o,Array)) { +if ((o).length != 1) return java.text.MessageFormat.format(s, o); +o = (o)[0]; +}return JU.PT.rep(s, "{0}", o.toString()); +}, "~S,~O"); +c$.i = Clazz.defineMethod(c$, "i", +function(s, n){ +return JU.PT.rep(s, "{0}", "" + n); +}, "~S,~N"); +c$.escapeHTML = Clazz.defineMethod(c$, "escapeHTML", +function(msg){ +var ch; +for (var i = msg.length; --i >= 0; ) if ((ch = msg.charAt(i)).charCodeAt(0) > 0x7F) { +msg = msg.substring(0, i) + "" + ((ch).charCodeAt(0)) + ";" + msg.substring(i + 1); +} +return msg; +}, "~S"); +c$.getTextWrapper = Clazz.defineMethod(c$, "getTextWrapper", +function(){ +return (J.i18n.GT.$getTextWrapper == null ? J.i18n.GT.$getTextWrapper = new J.i18n.GT(null, null) : J.i18n.GT.$getTextWrapper); +}); +Clazz.defineMethod(c$, "createLanguageList", +function(){ +var wasTranslating = this.doTranslate; +this.doTranslate = false; +J.i18n.GT.languageList = J.i18n.Language.getLanguageList(); +this.doTranslate = wasTranslating; +}); +Clazz.defineMethod(c$, "getSupported", +function(code){ +if (code == null) return null; +var s = J.i18n.GT.htLanguages.get(code); +if (s != null) return (s.length == 0 ? null : s); +s = J.i18n.Language.getSupported(J.i18n.GT.getLanguageList(this), code); +J.i18n.GT.htLanguages.put(code, (s == null ? "" : s)); +return s; +}, "~S"); +Clazz.defineMethod(c$, "addBundles", +function(vwr, type, la_co_va, la_co, la){ +try { +var className = "J.translation." + type + "."; +if (la_co_va != null) this.addBundle(vwr, className, la_co_va); +if (la_co != null) this.addBundle(vwr, className, la_co); +if (la != null) this.addBundle(vwr, className, la); +} catch (exception) { +if (Clazz.exceptionOf(exception, Exception)){ +if (J.i18n.GT.allowDebug) JU.Logger.errorEx("Some exception occurred!", exception); +this.resources = null; +this.resourceCount = 0; +} else { +throw exception; +} +} +}, "JV.Viewer,~S,~S,~S,~S"); +Clazz.defineMethod(c$, "addBundle", +function(vwr, className, name){ +var resource = J.i18n.Resource.getResource(vwr, className, name); +if (resource != null) { +if (this.resources == null) { +this.resources = new Array(8); +this.resourceCount = 0; +}this.resources[this.resourceCount] = resource; +this.resourceCount++; +if (J.i18n.GT.allowDebug) JU.Logger.debug("GT adding " + className); +}}, "JV.Viewer,~S,~S"); +Clazz.defineMethod(c$, "getString", +function(s){ +var trans = null; +if (this.doTranslate) { +for (var bundle = 0; bundle < this.resourceCount; bundle++) { +trans = this.resources[bundle].getString(s); +if (trans != null) { +s = trans; +break; +}} +if (this.resourceCount > 0 && trans == null && J.i18n.GT.allowDebug && JU.Logger.debugging) JU.Logger.debug("No trans, using default: " + s); +}if (trans == null) { +if (s.startsWith("[")) s = s.substring(s.indexOf("]") + 1); + else if (s.endsWith("]")) s = s.substring(0, s.indexOf("[")); +}return s; +}, "~S"); +c$.$ignoreApplicationBundle = false; +c$.$getTextWrapper = null; +c$.languageList = null; +c$.allowDebug = false; +c$.vwr = null; +c$.htLanguages = new java.util.Hashtable(); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/i18n/Language.js b/config/plugins/visualizations/jmol/static/j2s/J/i18n/Language.js new file mode 100755 index 000000000000..45640dcbe94c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/i18n/Language.js @@ -0,0 +1,29 @@ +Clazz.declarePackage("J.i18n"); +Clazz.load(null, "J.i18n.Language", ["J.i18n.GT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.code = null; +this.language = null; +this.nativeLanguage = null; +this.display = false; +Clazz.instantialize(this, arguments);}, J.i18n, "Language", null); +Clazz.makeConstructor(c$, +function(code, language, nativeLanguage, display){ +this.code = code; +this.language = language; +this.nativeLanguage = nativeLanguage; +this.display = display; +}, "~S,~S,~S,~B"); +c$.getLanguageList = Clazz.defineMethod(c$, "getLanguageList", +function(){ +return Clazz.newArray(-1, [ new J.i18n.Language("ar", J.i18n.GT.$("Arabic"), "العربية", false), new J.i18n.Language("ast", J.i18n.GT.$("Asturian"), "Asturian", false), new J.i18n.Language("az", J.i18n.GT.$("Azerbaijani"), "azÉ™rbaycan dili", false), new J.i18n.Language("bs", J.i18n.GT.$("Bosnian"), "bosanski jezik", false), new J.i18n.Language("ca", J.i18n.GT.$("Catalan"), "Català ", true), new J.i18n.Language("cs", J.i18n.GT.$("Czech"), "ÄŒeÅ¡tina", true), new J.i18n.Language("da", J.i18n.GT.$("Danish"), "Dansk", true), new J.i18n.Language("de", J.i18n.GT.$("German"), "Deutsch", true), new J.i18n.Language("el", J.i18n.GT.$("Greek"), "Ελληνικά", false), new J.i18n.Language("en_AU", J.i18n.GT.$("Australian English"), "Australian English", false), new J.i18n.Language("en_GB", J.i18n.GT.$("British English"), "British English", true), new J.i18n.Language("en_US", J.i18n.GT.$("American English"), "American English", true), new J.i18n.Language("es", J.i18n.GT.$("Spanish"), "Español", true), new J.i18n.Language("et", J.i18n.GT.$("Estonian"), "Eesti", false), new J.i18n.Language("eu", J.i18n.GT.$("Basque"), "Euskara", true), new J.i18n.Language("fi", J.i18n.GT.$("Finnish"), "Suomi", true), new J.i18n.Language("fo", J.i18n.GT.$("Faroese"), "Føroyskt", false), new J.i18n.Language("fr", J.i18n.GT.$("French"), "Français", true), new J.i18n.Language("fy", J.i18n.GT.$("Frisian"), "Frysk", false), new J.i18n.Language("gl", J.i18n.GT.$("Galician"), "Galego", false), new J.i18n.Language("hr", J.i18n.GT.$("Croatian"), "Hrvatski", false), new J.i18n.Language("hu", J.i18n.GT.$("Hungarian"), "Magyar", true), new J.i18n.Language("hy", J.i18n.GT.$("Armenian"), "Õ€Õ¡ÕµÕ¥Ö€Õ¥Õ¶", false), new J.i18n.Language("id", J.i18n.GT.$("Indonesian"), "Indonesia", true), new J.i18n.Language("it", J.i18n.GT.$("Italian"), "Italiano", true), new J.i18n.Language("ja", J.i18n.GT.$("Japanese"), "日本語", true), new J.i18n.Language("jv", J.i18n.GT.$("Javanese"), "Basa Jawa", false), new J.i18n.Language("ko", J.i18n.GT.$("Korean"), "í•œêµì–´", true), new J.i18n.Language("ms", J.i18n.GT.$("Malay"), "Bahasa Melayu", true), new J.i18n.Language("nb", J.i18n.GT.$("Norwegian Bokmal"), "Norsk BokmÃ¥l", false), new J.i18n.Language("nl", J.i18n.GT.$("Dutch"), "Nederlands", true), new J.i18n.Language("oc", J.i18n.GT.$("Occitan"), "Occitan", false), new J.i18n.Language("pl", J.i18n.GT.$("Polish"), "Polski", false), new J.i18n.Language("pt", J.i18n.GT.$("Portuguese"), "Português", false), new J.i18n.Language("pt_BR", J.i18n.GT.$("Brazilian Portuguese"), "Português brasileiro", true), new J.i18n.Language("ru", J.i18n.GT.$("Russian"), "РуÑÑкий", true), new J.i18n.Language("sl", J.i18n.GT.$("Slovenian"), "SlovenÅ¡Äina", false), new J.i18n.Language("sr", J.i18n.GT.$("Serbian"), "ÑрпÑки језик", false), new J.i18n.Language("sv", J.i18n.GT.$("Swedish"), "Svenska", true), new J.i18n.Language("ta", J.i18n.GT.$("Tamil"), "தமிழà¯", false), new J.i18n.Language("te", J.i18n.GT.$("Telugu"), "తెలà±à°—à±", false), new J.i18n.Language("tr", J.i18n.GT.$("Turkish"), "Türkçe", true), new J.i18n.Language("ug", J.i18n.GT.$("Uyghur"), "UyÆ£urqÉ™", false), new J.i18n.Language("uk", J.i18n.GT.$("Ukrainian"), "УкраїнÑька", true), new J.i18n.Language("uz", J.i18n.GT.$("Uzbek"), "O'zbek", false), new J.i18n.Language("zh_CN", J.i18n.GT.$("Simplified Chinese"), "简体ä¸æ–‡", true), new J.i18n.Language("zh_TW", J.i18n.GT.$("Traditional Chinese"), "ç¹é«”ä¸æ–‡", true)]); +}); +c$.getSupported = Clazz.defineMethod(c$, "getSupported", +function(list, code){ +for (var i = list.length; --i >= 0; ) if (list[i].code.equalsIgnoreCase(code)) return list[i].code; + +for (var i = list.length; --i >= 0; ) if (list[i].code.startsWith(code)) return list[i].code; + +return null; +}, "~A,~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/i18n/Resource.js b/config/plugins/visualizations/jmol/static/j2s/J/i18n/Resource.js new file mode 100755 index 000000000000..46bcdb59f091 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/i18n/Resource.js @@ -0,0 +1,87 @@ +Clazz.declarePackage("J.i18n"); +Clazz.load(null, "J.i18n.Resource", ["java.util.Hashtable", "JU.PT", "$.Rdr", "J.translation.PO", "JU.Logger", "JV.FileManager"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.resource = null; +this.resourceMap = null; +Clazz.instantialize(this, arguments);}, J.i18n, "Resource", null); +Clazz.makeConstructor(c$, +function(resource, className){ +if (className == null) this.resourceMap = resource; + else this.resource = resource; +}, "~O,~S"); +c$.getResource = Clazz.defineMethod(c$, "getResource", +function(vwr, className, name){ +try { +var br = JV.FileManager.getBufferedReaderForResource(vwr, new J.translation.PO(), "J/translation/", (className.indexOf("Applet") >= 0 ? "JmolApplet/" : "Jmol/") + name + ".po"); +var data = new Array(1); +JU.Rdr.readAllAsString(br, 2147483647, false, data, 0); +var poData = data[0]; +return J.i18n.Resource.getResourceFromPO(poData); +} catch (e) { +if (Clazz.exceptionOf(e,"java.io.IOException")){ +return null; +} else { +throw e; +} +} +}, "JV.Viewer,~S,~S"); +Clazz.defineMethod(c$, "getString", +function(string){ +try { +return (this.resource == null ? this.resourceMap.get(string) : this.resource.getString(string)); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return null; +} else { +throw e; +} +} +}, "~S"); +c$.getLanguage = Clazz.defineMethod(c$, "getLanguage", +function(){ +var language = null; +{ +language = Jmol.featureDetection.getDefaultLanguage().replace(/-/g,'_'); +}return language; +}); +c$.getResourceFromPO = Clazz.defineMethod(c$, "getResourceFromPO", +function(data){ +if (data == null || data.length == 0) return null; +var map = new java.util.Hashtable(); +try { +var lines = JU.PT.split(data, "\n"); +var mode = 0; +var msgstr = ""; +var msgid = ""; +for (var i = 0; i < lines.length; i++) { +var line = lines[i]; +if (line.length <= 2) { +if (mode == 2 && msgstr.length != 0 && msgid.length != 0) map.put(msgid, msgstr); +mode = 0; +} else if (line.indexOf("msgid") == 0) { +mode = 1; +msgid = J.i18n.Resource.fix(line); +} else if (line.indexOf("msgstr") == 0) { +mode = 2; +msgstr = J.i18n.Resource.fix(line); +} else if (mode == 1) { +msgid += J.i18n.Resource.fix(line); +} else if (mode == 2) { +msgstr += J.i18n.Resource.fix(line); +}} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +JU.Logger.info(map.size() + " translations loaded"); +return (map.size() == 0 ? null : new J.i18n.Resource(map, null)); +}, "~S"); +c$.fix = Clazz.defineMethod(c$, "fix", +function(line){ +if (line.indexOf("\\\"") >= 0) line = JU.PT.rep(line, "\\\"", "\""); +return JU.PT.rep(line.substring(line.indexOf("\"") + 1, line.lastIndexOf("\"")), "\\n", "\n"); +}, "~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/image/AviCreator.js b/config/plugins/visualizations/jmol/static/j2s/J/image/AviCreator.js new file mode 100755 index 000000000000..d05c362326b0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/image/AviCreator.js @@ -0,0 +1,11 @@ +Clazz.declarePackage("J.image"); +Clazz.load(["J.api.JmolMovieCreatorInterface"], "J.image.AviCreator", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.errorMsg = null; +Clazz.instantialize(this, arguments);}, J.image, "AviCreator", null, J.api.JmolMovieCreatorInterface); +Clazz.overrideMethod(c$, "createMovie", +function(vwr, files, width, height, fps, fileName){ +return this.errorMsg; +}, "JV.Viewer,~A,~N,~N,~N,~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/inchi/InChIJS.js b/config/plugins/visualizations/jmol/static/j2s/J/inchi/InChIJS.js new file mode 100755 index 000000000000..7e54bf549f8f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/inchi/InChIJS.js @@ -0,0 +1,52 @@ +Clazz.declarePackage("J.inchi"); +Clazz.load(["J.api.JmolInChI"], "J.inchi.InChIJS", ["JU.PT"], function(){ +var c$ = Clazz.declareType(J.inchi, "InChIJS", null, J.api.JmolInChI); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "getInchi", +function(vwr, atoms, molData, options){ +if (atoms == null ? molData == null : atoms.isEmpty()) return ""; +var ret = ""; +try { +if (options == null) options = ""; +options = JU.PT.rep(JU.PT.rep(options.$replace('-', ' '), " ", " ").trim(), " ", " -").toLowerCase(); +if (options.length > 0) options = "-" + options; +if (molData == null) molData = vwr.getModelExtract(atoms, false, false, "MOL"); +if ((typeof(molData)=='string') && (molData).startsWith("InChI=")) { +{ +ret = (Jmol.inchiToInchiKey ? Jmol.inchiToInchiKey(molData) : ""); +}return ret; +}var haveKey = (options.indexOf("key") >= 0); +if (haveKey) { +options = options.$replace("inchikey", "key"); +}if (options.indexOf("fixedh?") >= 0) { +var fxd = this.getInchi(vwr, atoms, molData, options.$replace('?', ' ')); +options = JU.PT.rep(options, "-fixedh?", ""); +if (haveKey) options = JU.PT.rep(options, "-key", ""); +var inchi = this.getInchi(vwr, atoms, molData, options); +if (fxd != null && fxd.length > inchi.length) inchi = fxd; +return (haveKey ? this.getInchi(vwr, atoms, inchi, "-key") : inchi); +}{ +ret = (Jmol.molfileToInChI ? Jmol.molfileToInChI(molData, +options) : ""); +}} catch (e) { +{ +e = (e.getMessage$ ? e.getMessage$() : e); +}System.err.println("InChIJS exception: " + e); +} +return ret; +}, "JV.Viewer,JU.BS,~O,~S"); +{ +var wasmPath = "/_WASM"; +var es6Path = "/_ES6"; +try { +{ +var j2sPath = Jmol._applets.master._j2sFullPath; +// +Jmol.inchiPath = j2sPath + wasmPath; +// +var importPath = j2sPath + es6Path; +// +import(importPath + "/molfile-to-inchi.js"); +}} catch (t) { +} +}}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/io/DOMReader.js b/config/plugins/visualizations/jmol/static/j2s/J/io/DOMReader.js new file mode 100755 index 000000000000..0a97d816a72a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/io/DOMReader.js @@ -0,0 +1,34 @@ +Clazz.declarePackage("J.io"); +(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.fm = null; +this.vwr = null; +this.aDOMNode = null; +this.atomSetCollection = null; +this.htParams = null; +Clazz.instantialize(this, arguments);}, J.io, "DOMReader", null); +Clazz.prepareFields (c$, function(){ +this.aDOMNode = new Array(1); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.defineMethod(c$, "set", +function(fileManager, vwr, DOMNode, htParams){ +this.fm = fileManager; +this.vwr = vwr; +this.aDOMNode[0] = DOMNode; +this.htParams = htParams; +}, "JV.FileManager,JV.Viewer,~O,java.util.Map"); +Clazz.defineMethod(c$, "run", +function(){ +var info = null; +{ +}if (info != null) this.htParams.put("nameSpaceInfo", info); +this.vwr.zap(false, true, false); +this.atomSetCollection = this.vwr.getModelAdapter().getAtomSetCollectionFromDOM(this.aDOMNode, this.htParams); +if ((typeof(this.atomSetCollection)=='string')) return; +this.fm.setFileInfo( Clazz.newArray(-1, ["JSNode"])); +}); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/io/FileReader.js b/config/plugins/visualizations/jmol/static/j2s/J/io/FileReader.js new file mode 100755 index 000000000000..455184498917 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/io/FileReader.js @@ -0,0 +1,92 @@ +Clazz.declarePackage("J.io"); +Clazz.load(null, "J.io.FileReader", ["java.io.BufferedReader", "JU.AU", "$.PT", "$.Rdr", "J.api.Interface", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.fileNameIn = null; +this.fullPathNameIn = null; +this.nameAsGivenIn = null; +this.fileTypeIn = null; +this.atomSetCollection = null; +this.readerOrDocument = null; +this.htParams = null; +this.isAppend = false; +this.bytesOrStream = null; +Clazz.instantialize(this, arguments);}, J.io, "FileReader", null); +Clazz.makeConstructor(c$, +function(vwr, fileName, fullPathName, nameAsGiven, type, reader, htParams, isAppend){ +this.vwr = vwr; +this.fileNameIn = (fileName == null ? fullPathName : fileName); +this.fullPathNameIn = (fullPathName == null ? this.fileNameIn : fullPathName); +this.nameAsGivenIn = (nameAsGiven == null ? this.fileNameIn : nameAsGiven); +this.fileTypeIn = type; +if (reader != null) { +if (JU.AU.isAB(reader) || Clazz.instanceOf(reader,"java.io.BufferedInputStream")) { +this.bytesOrStream = reader; +reader = null; +} else if (Clazz.instanceOf(reader,"java.io.Reader") && !(Clazz.instanceOf(reader,"java.io.BufferedReader"))) { +reader = new java.io.BufferedReader(reader); +}}this.readerOrDocument = reader; +this.htParams = htParams; +this.isAppend = isAppend; +}, "JV.Viewer,~S,~S,~S,~S,~O,java.util.Map,~B"); +Clazz.defineMethod(c$, "run", +function(){ +if (!this.isAppend && this.vwr.displayLoadErrors) this.vwr.zap(false, true, false); +var errorMessage = null; +var t = null; +if (this.fullPathNameIn.contains("#_DOCACHE_")) this.readerOrDocument = J.io.FileReader.getChangeableReader(this.vwr, this.nameAsGivenIn, this.fullPathNameIn); +if (this.readerOrDocument == null) { +t = this.vwr.fm.getUnzippedReaderOrStreamFromName(this.fullPathNameIn, this.bytesOrStream, true, false, false, true, this.htParams); +if (t == null || (typeof(t)=='string')) { +errorMessage = (t == null ? "error opening:" + this.nameAsGivenIn : t); +if (!errorMessage.startsWith("NOTE:")) JU.Logger.error("file ERROR: " + this.fullPathNameIn + "\n" + errorMessage); +this.atomSetCollection = errorMessage; +return; +}if (Clazz.instanceOf(t,"java.io.BufferedReader")) { +this.readerOrDocument = t; +} else if (Clazz.instanceOf(t,"javajs.api.ZInputStream")) { +var name = this.fullPathNameIn; +var subFileList = null; +name = name.$replace('\\', '/'); +if (name.indexOf("|") >= 0 && !name.endsWith(".zip")) { +subFileList = JU.PT.split(name, "|"); +name = subFileList[0]; +}if (subFileList != null) this.htParams.put("subFileList", subFileList); +var zis = t; +var zipDirectory = this.vwr.fm.getZipDirectory(name, true, true); +this.atomSetCollection = t = this.vwr.fm.getJzu().getAtomSetCollectionOrBufferedReaderFromZip(this.vwr, zis, name, zipDirectory, this.htParams, 1, false); +try { +zis.close(); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +}}if (Clazz.instanceOf(t,"java.io.BufferedInputStream")) this.readerOrDocument = (J.api.Interface.getInterface("JU.BinaryDocument", this.vwr, "file")).setStream(t, !this.htParams.containsKey("isLittleEndian")); +if (this.readerOrDocument != null) { +this.atomSetCollection = this.vwr.getModelAdapter().getAtomSetCollectionReader(this.fullPathNameIn, this.fileTypeIn, this.readerOrDocument, this.htParams); +if (!((typeof(this.atomSetCollection)=='string'))) this.atomSetCollection = this.vwr.getModelAdapter().getAtomSetCollection(this.atomSetCollection); +try { +if (Clazz.instanceOf(this.readerOrDocument,"java.io.BufferedReader")) (this.readerOrDocument).close(); + else if (Clazz.instanceOf(this.readerOrDocument,"javajs.api.GenericBinaryDocument")) (this.readerOrDocument).close(); +} catch (e) { +if (Clazz.exceptionOf(e,"java.io.IOException")){ +} else { +throw e; +} +} +}if ((typeof(this.atomSetCollection)=='string')) return; +if (!this.isAppend && !this.vwr.displayLoadErrors) this.vwr.zap(false, true, false); +this.vwr.fm.setFileInfo( Clazz.newArray(-1, [this.fullPathNameIn, this.fileNameIn, this.nameAsGivenIn])); +}); +c$.getChangeableReader = Clazz.defineMethod(c$, "getChangeableReader", +function(vwr, nameAsGivenIn, fullPathNameIn){ +return JU.Rdr.getBR(vwr.getLigandModel(nameAsGivenIn, fullPathNameIn, "_file", null)); +}, "JV.Viewer,~S,~S"); +Clazz.defineMethod(c$, "getAtomSetCollection", +function(){ +return this.atomSetCollection; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/io/FilesReader.js b/config/plugins/visualizations/jmol/static/j2s/J/io/FilesReader.js new file mode 100755 index 000000000000..bbb7153d4c66 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/io/FilesReader.js @@ -0,0 +1,56 @@ +Clazz.declarePackage("J.io"); +Clazz.load(["J.api.JmolFilesReaderInterface"], "J.io.FilesReader", ["JU.Rdr", "J.api.Interface", "J.io.FileReader", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.fm = null; +this.vwr = null; +this.fullPathNamesIn = null; +this.namesAsGivenIn = null; +this.fileTypesIn = null; +this.atomSetCollection = null; +this.dataReaders = null; +this.htParams = null; +this.isAppend = false; +Clazz.instantialize(this, arguments);}, J.io, "FilesReader", null, J.api.JmolFilesReaderInterface); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "set", +function(fileManager, vwr, name, nameAsGiven, types, readers, htParams, isAppend){ +this.fm = fileManager; +this.vwr = vwr; +this.fullPathNamesIn = name; +this.namesAsGivenIn = nameAsGiven; +this.fileTypesIn = types; +this.dataReaders = readers; +this.htParams = htParams; +this.isAppend = isAppend; +}, "JV.FileManager,JV.Viewer,~A,~A,~A,~A,java.util.Map,~B"); +Clazz.overrideMethod(c$, "run", +function(){ +if (!this.isAppend && this.vwr.displayLoadErrors) this.vwr.zap(false, true, false); +var getReadersOnly = !this.vwr.displayLoadErrors; +this.atomSetCollection = this.vwr.getModelAdapter().getAtomSetCollectionReaders(this, this.fullPathNamesIn, this.fileTypesIn, this.htParams, getReadersOnly); +this.dataReaders = null; +if (getReadersOnly && !((typeof(this.atomSetCollection)=='string'))) { +this.atomSetCollection = this.vwr.getModelAdapter().getAtomSetCollectionFromSet(this.atomSetCollection, null, this.htParams); +}if ((typeof(this.atomSetCollection)=='string')) { +JU.Logger.error("file ERROR: " + this.atomSetCollection); +return; +}if (!this.isAppend && !this.vwr.displayLoadErrors) this.vwr.zap(false, true, false); +this.fm.setFileInfo( Clazz.newArray(-1, [this.dataReaders == null ? this.fullPathNamesIn[0] : "String[]"])); +}); +Clazz.overrideMethod(c$, "getBufferedReaderOrBinaryDocument", +function(i, forceBinary){ +if (this.dataReaders != null) return (forceBinary ? null : this.dataReaders[i].getBufferedReader()); +var name = this.fullPathNamesIn[i]; +if (name.contains("#_DOCACHE_")) return J.io.FileReader.getChangeableReader(this.vwr, this.namesAsGivenIn[i], name); +var t = this.fm.getUnzippedReaderOrStreamFromName(name, null, false, forceBinary, false, true, this.htParams); +if (Clazz.instanceOf(t,"java.io.BufferedInputStream") && JU.Rdr.isZipS(t)) { +var zipDirectory = this.fm.getZipDirectory(name, true, true); +t = this.fm.getBufferedInputStreamOrErrorMessageFromName(name, this.fullPathNamesIn[i], false, false, null, false, true); +t = this.fm.getJzu().getAtomSetCollectionOrBufferedReaderFromZip(this.vwr, t, name, zipDirectory, this.htParams, 1, true); +}return (Clazz.instanceOf(t,"java.io.BufferedInputStream") ? (J.api.Interface.getInterface("JU.BinaryDocument", this.vwr, "file")).setStream(t, true) : Clazz.instanceOf(t,"java.io.BufferedReader") || Clazz.instanceOf(t,"javajs.api.GenericBinaryDocument") ? t : t == null ? "error opening:" + this.namesAsGivenIn[i] : t); +}, "~N,~B"); +Clazz.overrideMethod(c$, "getAtomSetCollection", +function(){ +return this.atomSetCollection; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/io/JmolUtil.js b/config/plugins/visualizations/jmol/static/j2s/J/io/JmolUtil.js new file mode 100755 index 000000000000..b9b67c369669 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/io/JmolUtil.js @@ -0,0 +1,251 @@ +Clazz.declarePackage("J.io"); +Clazz.load(null, "J.io.JmolUtil", ["java.net.URL", "java.util.Hashtable", "JU.AU", "$.Lst", "$.OC", "$.PT", "$.Rdr", "J.adapter.smarter.AtomSetCollection", "J.api.Interface", "JU.Logger", "JV.FileManager", "$.Viewer"], function(){ +var c$ = Clazz.declareType(J.io, "JmolUtil", null); +/*LV!1824 unnec constructor*/Clazz.defineMethod(c$, "getImage", +function(vwr, fullPathNameOrBytes, echoName, forceSync){ +var image = null; +var info = null; +var apiPlatform = vwr.apiPlatform; +var createImage = false; +var fullPathName = "" + fullPathNameOrBytes; +if ((typeof(fullPathNameOrBytes)=='string')) { +var isBMP = fullPathName.toUpperCase().endsWith("BMP"); +if (forceSync || fullPathName.indexOf("|") > 0 || isBMP) { +var ret = vwr.fm.getFileAsBytes(fullPathName, null); +if (!JU.AU.isAB(ret)) return "" + ret; +if (JV.Viewer.isJS) info = Clazz.newArray(-1, [echoName, fullPathNameOrBytes, ret]); + else image = apiPlatform.createImage(ret); +} else if (JU.OC.urlTypeIndex(fullPathName) >= 0) { +if (JV.Viewer.isJS) info = Clazz.newArray(-1, [echoName, fullPathNameOrBytes, null]); + else try { +image = apiPlatform.createImage( new java.net.URL(Clazz.castNullAs("java.net.URL"), fullPathName, null)); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return "bad URL: " + fullPathName; +} else { +throw e; +} +} +} else { +createImage = true; +}} else if (JV.Viewer.isJS) { +info = Clazz.newArray(-1, [echoName, JU.Rdr.guessMimeTypeForBytes(fullPathNameOrBytes), fullPathNameOrBytes]); +} else { +createImage = true; +}if (createImage) image = apiPlatform.createImage("\1close".equals(fullPathNameOrBytes) ? "\1close" + echoName : fullPathNameOrBytes); + else if (info != null) image = apiPlatform.createImage(info); +{ +return image; +}}, "JV.Viewer,~O,~S,~B"); +Clazz.defineMethod(c$, "getAtomSetCollectionOrBufferedReaderFromZip", +function(vwr, is, fileName, zipDirectory, htParams, subFilePtr, asBufferedReader){ +var adapter = vwr.getModelAdapter(); +var doCombine = (subFilePtr == 1); +htParams.put("zipSet", fileName); +var subFileList = htParams.get("subFileList"); +if (subFileList == null) subFileList = this.getSpartanSubfiles(zipDirectory); +var subFileName = (subFileList == null || subFilePtr >= subFileList.length ? htParams.get("SubFileName") : subFileList[subFilePtr]); +if (subFileName != null && (subFileName.startsWith("/") || subFileName.startsWith("\\"))) subFileName = subFileName.substring(1); +var selectedFile = 0; +if (subFileName == null && htParams.containsKey("modelNumber")) { +selectedFile = (htParams.get("modelNumber")).intValue(); +if (selectedFile > 0 && doCombine) htParams.remove("modelNumber"); +}var manifest = htParams.get("manifest"); +var useFileManifest = (manifest == null); +if (useFileManifest) manifest = (zipDirectory.length > 0 ? zipDirectory[0] : ""); +var haveManifest = (manifest.length > 0); +if (haveManifest) { +if (JU.Logger.debugging) JU.Logger.debug("manifest for " + fileName + ":\n" + manifest); +}var ignoreErrors = (manifest.indexOf("IGNORE_ERRORS") >= 0); +var selectAll = (manifest.indexOf("IGNORE_MANIFEST") >= 0); +var exceptFiles = (manifest.indexOf("EXCEPT_FILES") >= 0); +if (selectAll || subFileName != null) haveManifest = false; +if (useFileManifest && haveManifest) { +var path = JV.FileManager.getManifestScriptPath(manifest); +if (path != null) { +return "NOTE: file recognized as a script file: " + fileName + path + "\n"; +}}var vCollections = new JU.Lst(); +var htCollections = (haveManifest ? new java.util.Hashtable() : null); +var nFiles = 0; +try { +var spartanData = (this.isSpartanZip(zipDirectory) ? vwr.fm.spartanUtil().getData(is, zipDirectory) : null); +var zpt = vwr.getJzt(); +var ret; +if (spartanData != null) { +var reader = JU.Rdr.getBR(spartanData.toString()); +if (asBufferedReader) return reader; +ret = adapter.getAtomSetCollectionFromReader(fileName, reader, htParams); +if ((typeof(ret)=='string')) return ret; +if (Clazz.instanceOf(ret,"J.adapter.smarter.AtomSetCollection")) { +var atomSetCollection = ret; +if (atomSetCollection.errorMessage != null) { +if (ignoreErrors) return null; +return atomSetCollection.errorMessage; +}return atomSetCollection; +}if (ignoreErrors) return null; +return "unknown reader error"; +}if (Clazz.instanceOf(is,"java.io.BufferedInputStream")) is = JU.Rdr.getPngZipStream(is, true); +var zis = zpt.newZipInputStream(is); +var ze; +if (haveManifest) manifest = '|' + manifest.$replace('\r', '|').$replace('\n', '|') + '|'; +while ((ze = zis.getNextEntry()) != null && (selectedFile <= 0 || vCollections.size() < selectedFile)) { +if (ze.isDirectory()) continue; +var thisEntry = ze.getName(); +if (subFileName != null && !thisEntry.equals(subFileName)) continue; +if (subFileName != null) htParams.put("subFileName", subFileName); +if (thisEntry.startsWith("JmolManifest") || haveManifest && exceptFiles == manifest.indexOf("|" + thisEntry + "|") >= 0) continue; +var bytes = JU.Rdr.getLimitedStreamBytes(zis, ze.getSize()); +if (JU.Rdr.isGzipB(bytes)) bytes = JU.Rdr.getLimitedStreamBytes(zpt.getUnGzippedInputStream(bytes), -1); +if (JU.Rdr.isZipB(bytes) || JU.Rdr.isPngZipB(bytes)) { +var bis = JU.Rdr.getBIS(bytes); +var zipDir2 = zpt.getZipDirectoryAndClose(bis, "JmolManifest"); +bis = JU.Rdr.getBIS(bytes); +var atomSetCollections = this.getAtomSetCollectionOrBufferedReaderFromZip(vwr, bis, fileName + "|" + thisEntry, zipDir2, htParams, ++subFilePtr, asBufferedReader); +if ((typeof(atomSetCollections)=='string')) { +if (ignoreErrors) continue; +return atomSetCollections; +} else if (Clazz.instanceOf(atomSetCollections,"J.adapter.smarter.AtomSetCollection") || Clazz.instanceOf(atomSetCollections,"JU.Lst")) { +if (haveManifest && !exceptFiles) htCollections.put(thisEntry, atomSetCollections); + else vCollections.addLast(atomSetCollections); +} else if (Clazz.instanceOf(atomSetCollections,"java.io.BufferedReader")) { +if (doCombine) zis.close(); +return atomSetCollections; +} else { +if (ignoreErrors) continue; +zis.close(); +return "unknown zip reader error"; +}} else if (JU.Rdr.isPickleB(bytes)) { +var bis = JU.Rdr.getBIS(bytes); +if (doCombine) zis.close(); +return bis; +} else { +var sData; +if (JU.Rdr.isCompoundDocumentB(bytes)) { +var jd = J.api.Interface.getInterface("JU.CompoundDocument", vwr, "file"); +jd.setDocStream(zpt, JU.Rdr.getBIS(bytes)); +sData = jd.getAllDataFiles("Molecule", "Input").toString(); +} else { +sData = JU.Rdr.fixUTF(bytes); +}var reader = JU.Rdr.getBR(sData); +if (asBufferedReader) { +if (doCombine) zis.close(); +return reader; +}var fname = fileName + "|" + ze.getName(); +ret = adapter.getAtomSetCollectionFromReader(fname, reader, htParams); +if (!(Clazz.instanceOf(ret,"J.adapter.smarter.AtomSetCollection"))) { +if (ignoreErrors) continue; +zis.close(); +return "" + ret; +}if (haveManifest && !exceptFiles) htCollections.put(thisEntry, ret); + else vCollections.addLast(ret); +var a = ret; +if (a.errorMessage != null) { +if (ignoreErrors) continue; +zis.close(); +return a.errorMessage; +}}} +if (doCombine) zis.close(); +if (haveManifest && !exceptFiles) { +var list = JU.PT.split(manifest, "|"); +for (var i = 0; i < list.length; i++) { +var file = list[i]; +if (file.length == 0 || file.indexOf("#") == 0) continue; +if (htCollections.containsKey(file)) vCollections.addLast(htCollections.get(file)); + else if (JU.Logger.debugging) JU.Logger.debug("manifested file " + file + " was not found in " + fileName); +} +}if (!doCombine) return vCollections; +var result = (vCollections.size() == 1 && Clazz.instanceOf(vCollections.get(0),"J.adapter.smarter.AtomSetCollection") ? vCollections.get(0) : new J.adapter.smarter.AtomSetCollection("Array", null, null, vCollections)); +if (result.errorMessage != null) { +if (ignoreErrors) return null; +return result.errorMessage; +}if (nFiles == 1) selectedFile = 1; +if (selectedFile > 0 && selectedFile <= vCollections.size()) return vCollections.get(selectedFile - 1); +return result; +} catch (e$$) { +if (Clazz.exceptionOf(e$$, Exception)){ +var e = e$$; +{ +if (ignoreErrors) return null; +JU.Logger.error("" + e); +return "" + e; +} +} else if (Clazz.exceptionOf(e$$, Error)){ +var er = e$$; +{ +JU.Logger.errorEx(null, er); +return "" + er; +} +} else { +throw e$$; +} +} +}, "JV.Viewer,java.io.InputStream,~S,~A,java.util.Map,~N,~B"); +Clazz.defineMethod(c$, "getCachedPngjBytes", +function(fm, pathName){ +if (pathName.startsWith("file:///")) pathName = "file:" + pathName.substring(7); +JU.Logger.info("JmolUtil checking PNGJ cache for " + pathName); +var shortName = this.shortSceneFilename(pathName); +if (fm.pngjCache == null && !this.clearAndCachePngjFile(fm, Clazz.newArray(-1, [pathName, null]))) return null; +var cache = fm.pngjCache; +var isMin = (pathName.indexOf(".min.") >= 0); +if (!isMin) { +var cName = fm.getCanonicalName(JU.Rdr.getZipRoot(pathName)); +if (!cache.containsKey(cName) && !this.clearAndCachePngjFile(fm, Clazz.newArray(-1, [pathName, null]))) return null; +if (pathName.indexOf("|") < 0) shortName = cName; +}if (cache.containsKey(shortName)) { +JU.Logger.info("FileManager using memory cache " + shortName); +return fm.pngjCache.get(shortName); +}if (!isMin || !this.clearAndCachePngjFile(fm, Clazz.newArray(-1, [pathName, null]))) return null; +JU.Logger.info("FileManager using memory cache " + shortName); +return cache.get(shortName); +}, "JV.FileManager,~S"); +Clazz.defineMethod(c$, "clearAndCachePngjFile", +function(fm, data){ +fm.pngjCache = new java.util.Hashtable(); +if (data == null || data[0] == null) return false; +data[0] = JU.Rdr.getZipRoot(data[0]); +var shortName = this.shortSceneFilename(data[0]); +var cache = fm.pngjCache; +try { +data[1] = fm.vwr.getJzt().cacheZipContents(JU.Rdr.getPngZipStream(fm.getBufferedInputStreamOrErrorMessageFromName(data[0], null, false, false, null, false, true), true), shortName, cache, false); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return false; +} else { +throw e; +} +} +if (data[1] == null) return false; +var bytes = data[1].getBytes(); +cache.put(fm.getCanonicalName(data[0]), bytes); +if (shortName.indexOf("_scene_") >= 0) { +cache.put(this.shortSceneFilename(data[0]), bytes); +bytes = cache.remove(shortName + "|state.spt"); +if (bytes != null) cache.put(this.shortSceneFilename(data[0] + "|state.spt"), bytes); +}return true; +}, "JV.FileManager,~A"); +Clazz.defineMethod(c$, "shortSceneFilename", +function(pathName){ +var pt = pathName.indexOf("_scene_") + 7; +if (pt < 7) return pathName; +var s = ""; +if (pathName.endsWith("|state.spt")) { +var pt1 = pathName.indexOf('.', pt); +if (pt1 < 0) return pathName; +s = pathName.substring(pt, pt1); +}var pt2 = pathName.lastIndexOf("|"); +return pathName.substring(0, pt) + s + (pt2 > 0 ? pathName.substring(pt2) : ""); +}, "~S"); +Clazz.defineMethod(c$, "getSpartanSubfiles", +function(zipDirectory){ +var name = (zipDirectory.length < 2 ? null : zipDirectory[1]); +return (name == null || zipDirectory.length != 2 || !name.endsWith(".spardir/") ? null : Clazz.newArray(-1, ["", JU.PT.trim(name, "/")])); +}, "~A"); +Clazz.defineMethod(c$, "isSpartanZip", +function(zipDirectory){ +for (var i = 1; i < zipDirectory.length; i++) if (zipDirectory[i].endsWith(".spardir/") || zipDirectory[i].indexOf("_spartandir") >= 0) return true; + +return false; +}, "~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jsv/JDXMOLParser.js b/config/plugins/visualizations/jmol/static/j2s/J/jsv/JDXMOLParser.js new file mode 100755 index 000000000000..e79e4693aa3b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jsv/JDXMOLParser.js @@ -0,0 +1,293 @@ +Clazz.declarePackage("J.jsv"); +Clazz.load(["J.api.JmolJDXMOLParser"], "J.jsv.JDXMOLParser", ["java.util.Hashtable", "JU.BS", "$.Lst", "$.PT", "$.SB", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.line = null; +this.lastModel = ""; +this.thisModelID = null; +this.baseModel = null; +this.vibScale = 0; +this.piUnitsX = null; +this.piUnitsY = null; +this.loader = null; +this.modelIdList = ""; +this.peakIndex = null; +this.peakFilePath = null; +Clazz.instantialize(this, arguments);}, J.jsv, "JDXMOLParser", null, J.api.JmolJDXMOLParser); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "set", +function(loader, filePath, htParams){ +this.loader = loader; +this.peakFilePath = filePath; +this.peakIndex = Clazz.newIntArray (1, 0); +if (htParams != null) { +htParams.remove("modelNumber"); +if (htParams.containsKey("zipSet")) { +this.peakIndex = htParams.get("peakIndex"); +if (this.peakIndex == null) { +this.peakIndex = Clazz.newIntArray (1, 0); +htParams.put("peakIndex", this.peakIndex); +}if (!htParams.containsKey("subFileName")) this.peakFilePath = JU.PT.split(filePath, "|")[0]; +}}return this; +}, "J.api.JmolJDXMOLReader,~S,java.util.Map"); +Clazz.overrideMethod(c$, "getAttribute", +function(line, tag){ +var attr = JU.PT.getQuotedAttribute(line, tag); +return (attr == null ? "" : attr); +}, "~S,~S"); +Clazz.overrideMethod(c$, "getRecord", +function(key){ +if (this.line == null || this.line.indexOf(key) < 0) return null; +var s = this.line; +while (s.indexOf(">") < 0) s += " " + this.readLine(); + +return this.line = s; +}, "~S"); +Clazz.overrideMethod(c$, "readModels", +function(){ +if (!this.findRecord("Models")) return false; +this.line = ""; +this.thisModelID = ""; +var isFirst = true; +while (true) { +this.line = this.loader.discardLinesUntilNonBlank(); +if (this.getRecord("") < 0) s += " " + this.readLine(); + +s = s.trim(); +}s = JU.PT.replaceAllCharacters(s, "()<>", " ").trim(); +if (s.length == 0) break; +var pt = s.indexOf("'"); +if (pt >= 0) { +var pt2 = s.indexOf("'", pt + 1); +s = s.substring(0, pt) + JU.PT.rep(s.substring(pt + 1, pt2), ",", ";") + s.substring(pt2 + 1); +}JU.Logger.info("Peak Assignment: " + s); +var tokens = JU.PT.split(s, ","); +list.addLast(tokens); +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Error reading peak assignments at " + this.line + ": " + e); +} else { +throw e; +} +} +return list; +}, "~N,~B"); +Clazz.overrideMethod(c$, "setACDAssignments", +function(model, mytype, peakCount, acdlist, molFile){ +try { +if (peakCount >= 0) this.peakIndex = Clazz.newIntArray(-1, [peakCount]); +var isMS = (mytype.indexOf("MASS") == 0); +var file = " file=" + JU.PT.esc(this.peakFilePath.$replace('\\', '/')); +model = " model=" + JU.PT.esc(model + " (assigned)"); +this.piUnitsX = ""; +this.piUnitsY = ""; +var dx = this.getACDPeakWidth(mytype) / 2; +var htSets = new java.util.Hashtable(); +var list = new JU.Lst(); +var zzcMap = null; +var ptx; +var pta; +var nAtoms = 0; +if (isMS) { +zzcMap = new java.util.Hashtable(); +var tokens = JU.PT.split(molFile, "M ZZC"); +for (var i = tokens.length; --i >= 1; ) { +var ab = JU.PT.getTokens(tokens[i]); +nAtoms = Math.max(nAtoms, JU.PT.parseInt(ab[0])); +zzcMap.put(ab[1], ab[0]); +} +ptx = 4; +pta = 0; +} else if (mytype.indexOf("NMR") >= 0) { +ptx = 0; +pta = 3; +} else { +ptx = 0; +pta = 2; +}var nPeaks = acdlist.size(); +for (var i = 0; i < nPeaks; i++) { +var data = acdlist.get(i); +var x = JU.PT.parseFloat(data[ptx]); +var a = data[pta]; +if (isMS) a = this.fixACDAtomList(a, zzcMap, nAtoms); + else a = a.$replace(';', ','); +if (a.indexOf("select") >= 0) { +var pt = a.indexOf("select atomno="); +if (pt < 0) continue; +a = JU.PT.split(a.substring(pt + 14), " ")[0]; +}var title = (isMS ? "m/z=" + Math.round(x) + ": " + data[2] + " (" + data[1] + ")" : pta == 2 ? "" + (Math.round(x * 10) / 10) : null); +this.getStringInfo(file, title, mytype, model, a, htSets, "" + x, list, " atoms=\"%ATOMS%\" xMin=\"" + (x - dx) + "\" xMax=\"" + (x + dx) + "\">"); +} +return this.setPeakData(list, 0); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return 0; +} else { +throw e; +} +} +}, "~S,~S,~N,JU.Lst,~S"); +Clazz.defineMethod(c$, "fixACDAtomList", +function(atoms, zzcMap, nAtoms){ +atoms = atoms.trim(); +var tokens = JU.PT.getTokens(atoms.$replace(';', ' ')); +var bs = new JU.BS(); +var isM = false; +for (var i = 0; i < tokens.length; i++) { +var a = tokens[i]; +isM = (a.indexOf("M") >= 0); +if (isM) a = "1-" + nAtoms; +var pt = a.indexOf('-'); +if (pt >= 0) { +var i1 = JU.PT.parseInt(a.substring(0, pt)); +var i2 = JU.PT.parseInt(a.substring(pt + 1)) + 1; +for (var k = i1; k < i2; k++) bs.set(isM ? k : JU.PT.parseInt(zzcMap.get("" + k))); + +} else { +bs.set(JU.PT.parseInt(zzcMap.get(a))); +}} +var s = bs.toJSON(); +return s.substring(1, s.length - 1); +}, "~S,java.util.Map,~N"); +Clazz.defineMethod(c$, "getACDPeakWidth", +function(type){ +return (type.indexOf("HNMR") >= 0 ? 0.05 : type.indexOf("CNMR") >= 0 ? 1 : type.indexOf("MASS") >= 0 ? 1 : 10); +}, "~S"); +Clazz.overrideMethod(c$, "readPeaks", +function(isSignals, peakCount){ +try { +if (peakCount >= 0) this.peakIndex = Clazz.newIntArray(-1, [peakCount]); +var offset = (isSignals ? 1 : 0); +var tag1 = (isSignals ? "Signals" : "Peaks"); +var tag2 = (isSignals ? " "); +return; +}this.modelIdList += key; +this.baseModel = this.getAttribute(this.line, "baseModel"); +while (this.line.indexOf(">") < 0 && this.line.indexOf("type") < 0) this.readLine(); + +var modelType = this.getAttribute(this.line, "type").toLowerCase(); +this.vibScale = JU.PT.parseFloat(this.getAttribute(this.line, "vibrationScale")); +if (modelType.equals("xyzvib")) modelType = "xyz"; + else if (modelType.length == 0) modelType = null; +var sb = new JU.SB(); +while (this.readLine() != null && !this.line.contains("")) sb.append(this.line).appendC('\n'); + +this.loader.processModelData(sb.toString(), this.thisModelID, modelType, this.baseModel, this.lastModel, NaN, this.vibScale, isFirst); +}, "~B"); +Clazz.defineMethod(c$, "findRecord", +function(tag){ +if (this.line == null) this.readLine(); +if (this.line != null && this.line.indexOf("<" + tag) < 0) this.line = this.loader.discardLinesUntilContains2("<" + tag, "##"); +return (this.line != null && this.line.indexOf("<" + tag) >= 0); +}, "~S"); +Clazz.defineMethod(c$, "readLine", +function(){ +return this.line = this.loader.rd(); +}); +Clazz.overrideMethod(c$, "setLine", +function(s){ +this.line = s; +}, "~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jsv/JSpecView.js b/config/plugins/visualizations/jmol/static/j2s/J/jsv/JSpecView.js new file mode 100755 index 000000000000..9292f409ffc6 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jsv/JSpecView.js @@ -0,0 +1,134 @@ +Clazz.declarePackage("J.jsv"); +Clazz.load(["J.api.JmolJSpecView"], "J.jsv.JSpecView", ["java.util.Hashtable", "JU.BS", "$.Lst", "$.PT", "JU.Escape", "$.Logger", "JV.FileManager"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +Clazz.instantialize(this, arguments);}, J.jsv, "JSpecView", null, J.api.JmolJSpecView); +Clazz.overrideMethod(c$, "setViewer", +function(vwr){ +this.vwr = vwr; +}, "JV.Viewer"); +Clazz.overrideMethod(c$, "atomPicked", +function(atomIndex){ +if (atomIndex < 0) return; +var peak = this.getPeakAtomRecord(atomIndex); +if (peak != null) this.sendJSpecView(peak + " src=\"JmolAtomSelect\""); +}, "~N"); +Clazz.defineMethod(c$, "getPeakAtomRecord", +function(atomIndex){ +var atoms = this.vwr.ms.at; +var iModel = atoms[atomIndex].mi; +var type = null; +switch (atoms[atomIndex].getElementNumber()) { +case 1: +type = "1HNMR"; +break; +case 6: +type = "13CNMR"; +break; +default: +return null; +} +var peaks = this.vwr.ms.getInfo(iModel, "jdxAtomSelect_" + type); +if (peaks == null) return null; +this.vwr.ms.htPeaks = new java.util.Hashtable(); +var htPeaks = this.vwr.ms.htPeaks; +for (var i = 0; i < peaks.size(); i++) { +var peak = peaks.get(i); +System.out.println("Jmol JSpecView.java peak=" + peak); +var bsPeak = htPeaks.get(peak); +System.out.println("Jmol JSpecView.java bspeak=" + bsPeak); +if (bsPeak == null) { +htPeaks.put(peak, bsPeak = new JU.BS()); +var satoms = JU.PT.getQuotedAttribute(peak, "atoms"); +var select = JU.PT.getQuotedAttribute(peak, "select"); +System.out.println("Jmol JSpecView.java satoms select " + satoms + " " + select); +var script = ""; +if (satoms != null) script += "visible & (atomno=" + JU.PT.rep(satoms, ",", " or atomno=") + ")"; + else if (select != null) script += "visible & (" + select + ")"; +System.out.println("Jmol JSpecView.java script : " + script); +bsPeak.or(this.vwr.getAtomBitSet(script)); +}System.out.println("Jmol JSpecView bsPeak now : " + bsPeak + " " + atomIndex); +if (bsPeak.get(atomIndex)) return peak; +} +return null; +}, "~N"); +Clazz.defineMethod(c$, "sendJSpecView", +function(peak){ +var msg = JU.PT.getQuotedAttribute(peak, "title"); +if (msg != null) this.vwr.scriptEcho(JU.Logger.debugging ? peak : msg); +peak = this.vwr.fullName + "JSpecView: " + peak; +JU.Logger.info("Jmol.JSpecView.sendJSpecView Jmol>JSV " + peak); +this.vwr.sm.syncSend(peak, ">", 0); +}, "~S"); +Clazz.overrideMethod(c$, "setModel", +function(modelIndex){ +var syncMode = ("sync on".equals(this.vwr.ms.getInfoM("jmolscript")) ? 1 : this.vwr.sm.getSyncMode()); +if (syncMode != 1) return; +var peak = this.vwr.ms.getInfo(modelIndex, "jdxModelSelect"); +if (peak != null) this.sendJSpecView(peak + " src=\"Jmol\""); +}, "~N"); +Clazz.overrideMethod(c$, "getBaseModelIndex", +function(modelIndex){ +var baseModel = this.vwr.ms.getInfo(modelIndex, "jdxBaseModel"); +if (baseModel != null) for (var i = this.vwr.ms.mc; --i >= 0; ) if (baseModel.equals(this.vwr.ms.getInfo(i, "jdxModelID"))) return i; + +return modelIndex; +}, "~N"); +Clazz.overrideMethod(c$, "processSync", +function(script, jsvMode){ +if (JU.Logger.debugging) JU.Logger.info("J.jsv.JSpecView jsvMode=" + jsvMode + " script=" + script); +switch (jsvMode) { +default: +return null; +case 0: +this.vwr.sm.syncSend(this.vwr.fullName + "JSpecView" + script.substring(10), ">", 0); +return null; +case 77: +case 28: +case 35: +this.vwr.sm.syncSend(this.vwr.fullName + "JSpecView:" + script, ">", 0); +return null; +case 21: +if (this.vwr.isApplet) return null; +return null; +case 14: +var filename = JU.PT.getQuotedAttribute(script, "file"); +var isSimulation = (filename != null && filename.startsWith(JV.FileManager.SIMULATION_PROTOCOL)); +var id = (!isSimulation || this.vwr.isApplet ? "" : JU.PT.getQuotedAttribute(filename.$replace('\'', '"'), "id")); +if (isSimulation && !this.vwr.isApplet && (filename.startsWith(JV.FileManager.SIMULATION_PROTOCOL + "C13/MOL=") || filename.startsWith(JV.FileManager.SIMULATION_PROTOCOL + "H1/MOL="))) filename = null; + else filename = JU.PT.rep(filename, "#molfile", ""); +var modelID = (isSimulation ? "molfile" : JU.PT.getQuotedAttribute(script, "model")); +var baseModel = JU.PT.getQuotedAttribute(script, "baseModel"); +var atoms = JU.PT.getQuotedAttribute(script, "atoms"); +var select = JU.PT.getQuotedAttribute(script, "select"); +var script2 = JU.PT.getQuotedAttribute(script, "script"); +if (id == null || id.length == 0) id = (modelID == null ? null : (filename == null ? "" : filename + "#") + modelID); +if ("".equals(baseModel)) id += ".baseModel"; +var modelIndex = (id == null ? -3 : this.vwr.getModelIndexFromId(id)); +if (modelIndex == -2) return null; +if (modelIndex != -1 || filename == null) { +script = ""; +} else if (isSimulation && !this.vwr.isApplet) { +return null; +} else { +if (isSimulation) filename += "#molfile"; +script = "load " + JU.PT.esc(filename); +}if (id != null) script += ";model " + JU.PT.esc(id); +if (atoms != null) script += ";select visible & (@" + JU.PT.rep(atoms, ",", " or @") + ")"; + else if (select != null) script += ";select visible & (" + select + ")"; +if (script2 != null) script += ";" + script2; +return script; +case 7: +var list = JU.Escape.unescapeStringArray(script.substring(7)); +var peaks = new JU.Lst(); +var type = "1HNMR"; +for (var i = 0; i < list.length; i++) { +if (i == 0 && list[i].indexOf(JV.FileManager.SIMULATION_PROTOCOL + "C13/") >= 0) type = "13CNMR"; +peaks.addLast(list[i]); +} +this.vwr.ms.setInfo(this.vwr.am.cmi, "jdxAtomSelect_" + type, peaks); +return null; +} +}, "~S,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/api/MeshDataServer.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/api/MeshDataServer.js new file mode 100755 index 000000000000..ec87297a5f68 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/api/MeshDataServer.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.jvxl.api"); +Clazz.declareInterface(J.jvxl.api, "MeshDataServer", J.jvxl.api.VertexDataServer); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/api/VertexDataServer.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/api/VertexDataServer.js new file mode 100755 index 000000000000..a90d248928a1 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/api/VertexDataServer.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.jvxl.api"); +Clazz.declareInterface(J.jvxl.api, "VertexDataServer"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/calc/MarchingCubes.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/calc/MarchingCubes.js new file mode 100755 index 000000000000..9a88925ac9fc --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/calc/MarchingCubes.js @@ -0,0 +1,337 @@ +Clazz.declarePackage("J.jvxl.calc"); +Clazz.load(["JU.TriangleData", "JU.BS", "$.P3", "$.SB", "$.V3"], "J.jvxl.calc.MarchingCubes", ["J.jvxl.data.JvxlCoder"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.surfaceReader = null; +this.volumeData = null; +this.contourType = 0; +this.isContoured = false; +this.cutoff = 0; +this.isCutoffAbsolute = false; +this.isSquared = false; +this.isXLowToHigh = false; +this.cubeCountX = 0; +this.cubeCountY = 0; +this.cubeCountZ = 0; +this.nY = 0; +this.nZ = 0; +this.yzCount = 0; +this.colorDensity = false; +this.integrateSquared = true; +this.bsVoxels = null; +this.bsExcludedVertices = null; +this.bsExcludedTriangles = null; +this.bsExcludedPlanes = null; +this.edgeData = null; +this.excludePartialCubes = true; +this.isDensityRange = false; +this.mode = 0; +this.vertexValues = null; +this.edgeCount = 0; +this.voxelVertexVectors = null; +this.edgeVectors = null; +this.edgePointIndexes = null; +this.isoPointIndexPlanes = null; +this.yzPlanes = null; +this.mappingPlane = null; +this.allInside = false; +this.$isInside = false; +this.offset = null; +this.voxelData = null; +this.nTriangles = 0; +this.bsValues = null; +this.pt0 = null; +this.pointA = null; +this.edgeVertexPointers = null; +this.edgeVertexPlanes = null; +this.fReturn = null; +this.linearOffsets = null; +Clazz.instantialize(this, arguments);}, J.jvxl.calc, "MarchingCubes", JU.TriangleData); +Clazz.prepareFields (c$, function(){ +this.edgeData = new JU.SB(); +this.vertexValues = Clazz.newFloatArray (8, 0); +this.voxelVertexVectors = new Array(8); +this.edgeVectors = new Array(12); +{ +for (var i = 12; --i >= 0; ) this.edgeVectors[i] = new JU.V3(); + +}this.edgePointIndexes = Clazz.newIntArray (12, 0); +this.bsValues = new JU.BS(); +this.pt0 = new JU.P3(); +this.pointA = new JU.P3(); +this.fReturn = Clazz.newFloatArray (1, 0); +this.linearOffsets = Clazz.newIntArray (8, 0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.calc.MarchingCubes, []); +}); +Clazz.makeConstructor(c$, +function(surfaceReader, volumeData, params, bsVoxels){ +Clazz.superConstructor (this, J.jvxl.calc.MarchingCubes, []); +this.excludePartialCubes = true; +this.surfaceReader = surfaceReader; +this.bsVoxels = bsVoxels; +var bsExcluded = params.bsExcluded; +this.bsExcludedVertices = (bsExcluded[0] == null ? bsExcluded[0] = new JU.BS() : bsExcluded[0]); +this.bsExcludedPlanes = (bsExcluded[2] == null ? bsExcluded[2] = new JU.BS() : bsExcluded[2]); +this.bsExcludedTriangles = (bsExcluded[3] == null ? bsExcluded[3] = new JU.BS() : bsExcluded[3]); +this.mode = (volumeData.getVoxelData() != null || volumeData.mappingPlane != null ? 1 : bsVoxels != null ? 2 : 3); +this.setParameters(volumeData, params); +}, "J.jvxl.api.VertexDataServer,J.jvxl.data.VolumeData,J.jvxl.readers.Parameters,JU.BS"); +Clazz.defineMethod(c$, "setParameters", +function(volumeData, params){ +this.volumeData = volumeData; +this.colorDensity = params.colorDensity; +this.isContoured = params.thePlane == null && params.isContoured && !this.colorDensity; +this.cutoff = params.cutoff; +this.isCutoffAbsolute = params.isCutoffAbsolute; +this.isDensityRange = (params.cutoffRange != null); +this.contourType = params.contourType; +this.isSquared = params.isSquared; +this.isXLowToHigh = params.isXLowToHigh; +this.cubeCountX = volumeData.voxelCounts[0] - 1; +this.cubeCountY = volumeData.voxelCounts[1] - 1; +this.cubeCountZ = volumeData.voxelCounts[2] - 1; +volumeData.getYzCount(); +if (params.mapLattice != null) { +this.cubeCountX *= Math.abs(params.mapLattice.x); +this.cubeCountY *= Math.abs(params.mapLattice.y); +this.cubeCountZ *= Math.abs(params.mapLattice.z); +}this.nY = this.cubeCountY + 1; +this.nZ = this.cubeCountZ + 1; +this.yzCount = this.nY * this.nZ; +if (this.bsVoxels == null) this.bsVoxels = new JU.BS(); +this.edgeVertexPointers = (this.isXLowToHigh ? J.jvxl.calc.MarchingCubes.edgeVertexPointersLowToHigh : J.jvxl.calc.MarchingCubes.edgeVertexPointersHighToLow); +this.edgeVertexPlanes = (this.isXLowToHigh ? J.jvxl.calc.MarchingCubes.edgeVertexPlanesLowToHigh : J.jvxl.calc.MarchingCubes.edgeVertexPlanesHighToLow); +this.isoPointIndexPlanes = Clazz.newIntArray (2, this.yzCount, 3, 0); +this.yzPlanes = (this.mode == 3 ? Clazz.newFloatArray (2, this.yzCount, 0) : null); +this.setLinearOffsets(); +this.calcVoxelVertexVectors(); +}, "J.jvxl.data.VolumeData,J.jvxl.readers.Parameters"); +Clazz.defineMethod(c$, "calcVoxelVertexVectors", +function(){ +for (var i = 8; --i >= 0; ) this.volumeData.transform(J.jvxl.calc.MarchingCubes.cubeVertexVectors[i], this.voxelVertexVectors[i] = new JU.V3()); + +for (var i = 12; --i >= 0; ) this.edgeVectors[i].sub2(this.voxelVertexVectors[JU.TriangleData.edgeVertexes[i + i + 1]], this.voxelVertexVectors[JU.TriangleData.edgeVertexes[i + i]]); + +}); +Clazz.defineMethod(c$, "resetIndexPlane", +function(plane){ +for (var i = 0; i < this.yzCount; i++) for (var j = 0; j < 3; j++) plane[i][j] = -2147483648; + + +return plane; +}, "~A"); +Clazz.defineMethod(c$, "getEdgeData", +function(){ +if (this.cubeCountX < 0 || this.cubeCountY < 0 || this.cubeCountZ < 0) return ""; +this.mappingPlane = this.volumeData.mappingPlane; +this.edgeCount = 0; +var x0; +var x1; +var xStep; +var ptStep; +var pt; +var ptX; +if (this.isXLowToHigh) { +x0 = 0; +x1 = this.cubeCountX + (this.colorDensity ? 1 : 0); +if (this.colorDensity) { +x1 = this.cubeCountX + 1; +ptX = this.yzCount - 1; +} else { +x1 = this.cubeCountX; +ptX = (this.yzCount - 1) - this.nZ - 1; +}xStep = 1; +ptStep = this.yzCount; +} else { +if (this.colorDensity) { +x0 = this.cubeCountX; +ptX = (this.cubeCountX + 1) * this.yzCount - 1; +} else { +x0 = this.cubeCountX - 1; +ptX = (this.cubeCountX * this.yzCount - 1) - this.nZ - 1; +}x1 = -1; +xStep = -1; +ptStep = -this.yzCount; +}pt = ptX; +this.resetIndexPlane(this.isoPointIndexPlanes[1]); +this.voxelData = null; +var y1 = this.cubeCountY + (this.colorDensity ? 1 : 0); +var z1 = this.cubeCountZ + (this.colorDensity ? 1 : 0); +switch (this.mode) { +case 3: +this.getPlane(x0, false); +break; +case 1: +this.voxelData = this.volumeData.getVoxelData(); +break; +} +this.allInside = (this.colorDensity && (this.cutoff == 0 || this.mode == 2 && this.bsVoxels.nextSetBit(0) < 0)); +var colorDensityAll = (this.colorDensity && this.cutoff == 0); +var v = 0; +for (var x = x0; x != x1; x += xStep, ptX += ptStep, pt = ptX) { +if (this.mode == 3) { +if (x + xStep <= x1) this.getPlane(x + xStep, true); +}if (this.bsExcludedPlanes.get(x) && this.bsExcludedPlanes.get(x + xStep)) continue; +if (this.colorDensity) { +for (var y = y1; --y >= 0; ) for (var z = z1; --z >= 0; pt--) { +v = this.getValue(x, y, z, pt, 0); +if (colorDensityAll || this.$isInside) { +this.addVertex(x, y, z, pt, v); +}} + +continue; +}var indexPlane = this.isoPointIndexPlanes[0]; +this.isoPointIndexPlanes[0] = this.isoPointIndexPlanes[1]; +this.isoPointIndexPlanes[1] = this.resetIndexPlane(indexPlane); +var noValues = true; +for (var y = y1; --y >= 0; pt--) { +for (var z = z1; --z >= 0; pt--) { +var insideMask = 0; +for (var i = 8; --i >= 0; ) { +v = this.getValue(x, y, z, pt, i); +if (this.$isInside) insideMask |= JU.TriangleData.Pwr2[i]; +} +if (noValues && !Float.isNaN(v)) noValues = false; +if (insideMask == 0) { +continue; +}if (insideMask == 0xFF) { +continue; +}if (this.processOneCubical(insideMask, x, y, z, pt) && !this.isContoured && !this.colorDensity) { +this.processTriangles(insideMask); +}} +} +if (noValues) { +this.bsExcludedPlanes.set(x); +}} +return this.edgeData.toString(); +}); +Clazz.defineMethod(c$, "getValue", +function(x, y, z, pt, i){ +var v; +this.offset = JU.TriangleData.cubeVertexOffsets[i]; +var pti = pt + this.linearOffsets[i]; +switch (this.mode) { +case 3: +v = this.vertexValues[i] = this.getValueArray(x + this.offset.x, y + this.offset.y, z + this.offset.z, pti, this.yzPlanes[J.jvxl.calc.MarchingCubes.yzPlanePts[i]]); +this.$isInside = (this.allInside || this.bsVoxels.get(pti)); +break; +case 2: +this.$isInside = (this.allInside || this.bsVoxels.get(pti)); +v = this.vertexValues[i] = ((this.isDensityRange ? !this.$isInside : this.bsExcludedVertices.get(pti)) ? NaN : this.$isInside ? 1 : 0); +break; +default: +case 1: +if (this.mappingPlane == null) { +v = this.vertexValues[i] = this.voxelData[x + this.offset.x][y + this.offset.y][z + this.offset.z]; +} else { +this.volumeData.voxelPtToXYZ(x + this.offset.x, y + this.offset.y, z + this.offset.z, this.pt0); +v = this.vertexValues[i] = this.volumeData.distanceToMappingPlane(this.pt0); +}if (this.isSquared) this.vertexValues[i] *= this.vertexValues[i]; +this.$isInside = (this.allInside ? true : J.jvxl.calc.MarchingCubes.isInside(this.vertexValues[i], this.cutoff, this.isCutoffAbsolute)); +if (this.$isInside) this.bsVoxels.set(pti); +} +return v; +}, "~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "getPlane", +function(i, andSwap){ +if (i < 0 || i > this.cubeCountX) return; +this.surfaceReader.getPlane(i); +if (andSwap) { +var plane = this.yzPlanes[0]; +this.yzPlanes[0] = this.yzPlanes[1]; +this.yzPlanes[1] = plane; +}}, "~N,~B"); +Clazz.defineMethod(c$, "processTriangles", +function(insideMask){ +var triangles = JU.TriangleData.triangleTable2[insideMask]; +for (var i = triangles.length; (i -= 4) >= 0; ) this.addTriangle(triangles[i], triangles[i + 1], triangles[i + 2], triangles[i + 3]); + +}, "~N"); +Clazz.defineMethod(c$, "addVertex", +function(x, y, z, pti, value){ +this.volumeData.voxelPtToXYZ(x, y, z, this.pt0); +if (this.surfaceReader.addVertexCopy(this.pt0, value, -4, true) < 0) this.bsExcludedVertices.set(pti); +}, "~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "addTriangle", +function(ia, ib, ic, edgeType){ +if (!this.bsExcludedTriangles.get(this.nTriangles) && this.surfaceReader.addTriangleCheck(this.edgePointIndexes[ia], this.edgePointIndexes[ib], this.edgePointIndexes[ic], edgeType, 0, this.isCutoffAbsolute, 0) < 0) { +this.bsExcludedTriangles.set(this.nTriangles); +}this.nTriangles++; +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "getValueArray", +function(x, y, z, pt, tempValues){ +var ptyz = pt % this.yzCount; +this.bsValues.set(pt); +var value = this.surfaceReader.getValue(x, y, z, ptyz); +if (this.isSquared) value *= value; +tempValues[ptyz] = value; +if (J.jvxl.calc.MarchingCubes.isInside(value, this.cutoff, this.isCutoffAbsolute)) this.bsVoxels.set(pt); +return value; +}, "~N,~N,~N,~N,~A"); +c$.isInside = Clazz.defineMethod(c$, "isInside", +function(voxelValue, max, isAbsolute){ +return ((max > 0 && (isAbsolute ? Math.abs(voxelValue) : voxelValue) >= max) || (max <= 0 && voxelValue <= max)); +}, "~N,~N,~B"); +Clazz.defineMethod(c$, "processOneCubical", +function(insideMask, x, y, z, pt){ +var edgeMask = J.jvxl.calc.MarchingCubes.insideMaskTable[insideMask]; +var isNaN = false; +for (var iEdge = 12; --iEdge >= 0; ) { +var xEdge = JU.TriangleData.Pwr2[iEdge]; +if ((edgeMask & xEdge) == 0) continue; +var iPlane = this.edgeVertexPlanes[iEdge]; +var iPt = (pt + this.linearOffsets[this.edgeVertexPointers[iEdge]]) % this.yzCount; +var iType = J.jvxl.calc.MarchingCubes.edgeTypeTable[iEdge]; +var index = this.edgePointIndexes[iEdge] = this.isoPointIndexPlanes[iPlane][iPt][iType]; +if (index != -2147483648) { +if (index == -1) isNaN = this.excludePartialCubes; +continue; +}var vertexA = JU.TriangleData.edgeVertexes[iEdge << 1]; +var vertexB = JU.TriangleData.edgeVertexes[(iEdge << 1) + 1]; +var valueA = this.vertexValues[vertexA]; +var valueB = this.vertexValues[vertexB]; +this.calcVertexPoint(x, y, z, vertexA, this.pointA); +this.edgeCount++; +var i = this.edgePointIndexes[iEdge] = this.isoPointIndexPlanes[iPlane][iPt][iType] = this.surfaceReader.getSurfacePointIndexAndFraction(this.cutoff, this.isCutoffAbsolute, x, y, z, JU.TriangleData.cubeVertexOffsets[vertexA], vertexA, vertexB, valueA, valueB, this.pointA, this.edgeVectors[iEdge], iType == this.contourType, this.fReturn); +this.addEdgeData(i < 0 ? NaN : this.fReturn[0]); +if (Float.isNaN(this.fReturn[0]) || i < 0) isNaN = this.excludePartialCubes; +} +return !isNaN; +}, "~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "addEdgeData", +function(f){ +var ch = J.jvxl.data.JvxlCoder.jvxlFractionAsCharacter(f); +this.edgeData.appendC(ch); +}, "~N"); +Clazz.defineMethod(c$, "calcVertexPoint", +function(x, y, z, vertex, pt){ +this.volumeData.voxelPtToXYZ(x, y, z, this.pt0); +pt.add2(this.pt0, this.voxelVertexVectors[vertex]); +}, "~N,~N,~N,~N,JU.P3"); +Clazz.defineMethod(c$, "setLinearOffsets", +function(){ +this.linearOffsets[0] = 0; +this.linearOffsets[1] = this.yzCount; +this.linearOffsets[2] = this.yzCount + 1; +this.linearOffsets[3] = 1; +this.linearOffsets[4] = this.nZ; +this.linearOffsets[5] = this.yzCount + this.nZ; +this.linearOffsets[6] = this.yzCount + this.nZ + 1; +this.linearOffsets[7] = this.nZ + 1; +}); +Clazz.defineMethod(c$, "getLinearOffset", +function(x, y, z, offset){ +return x * this.yzCount + y * this.nZ + z + this.linearOffsets[offset]; +}, "~N,~N,~N,~N"); +c$.yzPlanePts = Clazz.newIntArray(-1, [0, 1, 1, 0, 0, 1, 1, 0]); +c$.edgeVertexPointersLowToHigh = Clazz.newIntArray(-1, [1, 1, 2, 0, 5, 5, 6, 4, 0, 1, 2, 3]); +c$.edgeVertexPointersHighToLow = Clazz.newIntArray(-1, [0, 1, 3, 0, 4, 5, 7, 4, 0, 1, 2, 3]); +c$.edgeVertexPlanesLowToHigh = Clazz.newIntArray(-1, [1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0]); +c$.edgeVertexPlanesHighToLow = Clazz.newIntArray(-1, [1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1]); +c$.cubeVertexVectors = Clazz.newArray(-1, [JU.V3.new3(0, 0, 0), JU.V3.new3(1, 0, 0), JU.V3.new3(1, 0, 1), JU.V3.new3(0, 0, 1), JU.V3.new3(0, 1, 0), JU.V3.new3(1, 1, 0), JU.V3.new3(1, 1, 1), JU.V3.new3(0, 1, 1)]); +c$.edgeTypeTable = Clazz.newIntArray(-1, [0, 2, 0, 2, 0, 2, 0, 2, 1, 1, 1, 1]); +c$.insideMaskTable = Clazz.newShortArray(-1, [0x0000, 0x0109, 0x0203, 0x030A, 0x0406, 0x050F, 0x0605, 0x070C, 0x080C, 0x0905, 0x0A0F, 0x0B06, 0x0C0A, 0x0D03, 0x0E09, 0x0F00, 0x0190, 0x0099, 0x0393, 0x029A, 0x0596, 0x049F, 0x0795, 0x069C, 0x099C, 0x0895, 0x0B9F, 0x0A96, 0x0D9A, 0x0C93, 0x0F99, 0x0E90, 0x0230, 0x0339, 0x0033, 0x013A, 0x0636, 0x073F, 0x0435, 0x053C, 0x0A3C, 0x0B35, 0x083F, 0x0936, 0x0E3A, 0x0F33, 0x0C39, 0x0D30, 0x03A0, 0x02A9, 0x01A3, 0x00AA, 0x07A6, 0x06AF, 0x05A5, 0x04AC, 0x0BAC, 0x0AA5, 0x09AF, 0x08A6, 0x0FAA, 0x0EA3, 0x0DA9, 0x0CA0, 0x0460, 0x0569, 0x0663, 0x076A, 0x0066, 0x016F, 0x0265, 0x036C, 0x0C6C, 0x0D65, 0x0E6F, 0x0F66, 0x086A, 0x0963, 0x0A69, 0x0B60, 0x05F0, 0x04F9, 0x07F3, 0x06FA, 0x01F6, 0x00FF, 0x03F5, 0x02FC, 0x0DFC, 0x0CF5, 0x0FFF, 0x0EF6, 0x09FA, 0x08F3, 0x0BF9, 0x0AF0, 0x0650, 0x0759, 0x0453, 0x055A, 0x0256, 0x035F, 0x0055, 0x015C, 0x0E5C, 0x0F55, 0x0C5F, 0x0D56, 0x0A5A, 0x0B53, 0x0859, 0x0950, 0x07C0, 0x06C9, 0x05C3, 0x04CA, 0x03C6, 0x02CF, 0x01C5, 0x00CC, 0x0FCC, 0x0EC5, 0x0DCF, 0x0CC6, 0x0BCA, 0x0AC3, 0x09C9, 0x08C0, 0x08C0, 0x09C9, 0x0AC3, 0x0BCA, 0x0CC6, 0x0DCF, 0x0EC5, 0x0FCC, 0x00CC, 0x01C5, 0x02CF, 0x03C6, 0x04CA, 0x05C3, 0x06C9, 0x07C0, 0x0950, 0x0859, 0x0B53, 0x0A5A, 0x0D56, 0x0C5F, 0x0F55, 0x0E5C, 0x015C, 0x0055, 0x035F, 0x0256, 0x055A, 0x0453, 0x0759, 0x0650, 0x0AF0, 0x0BF9, 0x08F3, 0x09FA, 0x0EF6, 0x0FFF, 0x0CF5, 0x0DFC, 0x02FC, 0x03F5, 0x00FF, 0x01F6, 0x06FA, 0x07F3, 0x04F9, 0x05F0, 0x0B60, 0x0A69, 0x0963, 0x086A, 0x0F66, 0x0E6F, 0x0D65, 0x0C6C, 0x036C, 0x0265, 0x016F, 0x0066, 0x076A, 0x0663, 0x0569, 0x0460, 0x0CA0, 0x0DA9, 0x0EA3, 0x0FAA, 0x08A6, 0x09AF, 0x0AA5, 0x0BAC, 0x04AC, 0x05A5, 0x06AF, 0x07A6, 0x00AA, 0x01A3, 0x02A9, 0x03A0, 0x0D30, 0x0C39, 0x0F33, 0x0E3A, 0x0936, 0x083F, 0x0B35, 0x0A3C, 0x053C, 0x0435, 0x073F, 0x0636, 0x013A, 0x0033, 0x0339, 0x0230, 0x0E90, 0x0F99, 0x0C93, 0x0D9A, 0x0A96, 0x0B9F, 0x0895, 0x099C, 0x069C, 0x0795, 0x049F, 0x0596, 0x029A, 0x0393, 0x0099, 0x0190, 0x0F00, 0x0E09, 0x0D03, 0x0C0A, 0x0B06, 0x0A0F, 0x0905, 0x080C, 0x070C, 0x0605, 0x050F, 0x0406, 0x030A, 0x0203, 0x0109, 0x0000]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/calc/MarchingSquares.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/calc/MarchingSquares.js new file mode 100755 index 000000000000..6540033afc09 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/calc/MarchingSquares.js @@ -0,0 +1,241 @@ +Clazz.declarePackage("J.jvxl.calc"); +Clazz.load(["JU.P3", "java.util.Hashtable"], "J.jvxl.calc.MarchingSquares", ["JU.AU", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.surfaceReader = null; +this.volumeData = null; +this.nContourSegments = 0; +this.contourType = 0; +this.thisContour = 0; +this.valueMin = 0; +this.valueMax = 0; +this.pointA = null; +this.pointB = null; +this.contourFromZero = true; +this.contoursDiscrete = null; +this.contourVertexCount = 0; +this.contourVertexes = null; +if (!Clazz.isClassDefined("J.jvxl.calc.MarchingSquares.ContourVertex")) { +J.jvxl.calc.MarchingSquares.$MarchingSquares$ContourVertex$ (); +} +this.contourPlaneMinimumValue = 0; +this.contourPlaneMaximumValue = 0; +this.contourValuesUsed = null; +this.ptTemp = null; +this.triangleCount = 0; +this.triangles = null; +this.htPts = null; +if (!Clazz.isClassDefined("J.jvxl.calc.MarchingSquares.Triangle")) { +J.jvxl.calc.MarchingSquares.$MarchingSquares$Triangle$ (); +} +Clazz.instantialize(this, arguments);}, J.jvxl.calc, "MarchingSquares", null); +Clazz.prepareFields (c$, function(){ +this.pointA = new JU.P3(); +this.pointB = new JU.P3(); +this.contourVertexes = new Array(1000); +this.ptTemp = new JU.P3(); +this.triangles = new Array(1000); +this.htPts = new java.util.Hashtable(); +}); +Clazz.makeConstructor(c$, +function(surfaceReader, volumeData, thePlane, contoursDiscrete, nContours, thisContour, contourFromZero){ +this.surfaceReader = surfaceReader; +this.volumeData = volumeData; +this.thisContour = thisContour; +this.contoursDiscrete = contoursDiscrete; +this.contourFromZero = contourFromZero; +if (contoursDiscrete == null) { +var i = 0; +this.nContourSegments = (nContours == 0 ? 9 : nContours) + i; +if (this.nContourSegments > 100) this.nContourSegments = 100; +} else { +nContours = contoursDiscrete.length; +this.nContourSegments = nContours; +this.contourFromZero = false; +}}, "J.jvxl.api.VertexDataServer,J.jvxl.data.VolumeData,JU.P4,~A,~N,~N,~B"); +Clazz.defineMethod(c$, "setMinMax", +function(valueMin, valueMax){ +this.valueMin = valueMin; +this.valueMax = valueMax; +}, "~N,~N"); +Clazz.defineMethod(c$, "addContourVertex", +function(vertexXYZ, value){ +if (this.contourVertexCount == this.contourVertexes.length) this.contourVertexes = JU.AU.doubleLength(this.contourVertexes); +var vPt = this.surfaceReader.addVertexCopy(vertexXYZ, value, -2, true); +this.contourVertexes[this.contourVertexCount++] = Clazz.innerTypeInstance(J.jvxl.calc.MarchingSquares.ContourVertex, this, null, vertexXYZ); +return vPt; +}, "JU.P3,~N"); +Clazz.defineMethod(c$, "setContourData", +function(i, value){ +this.contourVertexes[i].setValue(value); +}, "~N,~N"); +Clazz.defineMethod(c$, "calcContourPoint", +function(cutoff, valueA, valueB, pt){ +return this.volumeData.calculateFractionalPoint(cutoff, this.pointA, this.pointB, valueA, valueB, pt); +}, "~N,~N,~N,JU.P3"); +Clazz.defineMethod(c$, "addTriangle", +function(iA, iB, iC, check, iContour){ +if (this.triangleCount == this.triangles.length) this.triangles = JU.AU.doubleLength(this.triangles); +this.triangles[this.triangleCount++] = Clazz.innerTypeInstance(J.jvxl.calc.MarchingSquares.Triangle, this, null, iA, iB, iC, check, iContour); +return 0; +}, "~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "generateContourData", +function(haveData, zeroOffset){ +JU.Logger.info("generateContours: " + this.nContourSegments + " segments"); +this.getVertexValues(haveData); +this.createContours(this.valueMin, this.valueMax, zeroOffset); +this.addAllTriangles(); +return this.contourVertexCount; +}, "~B,~N"); +Clazz.defineMethod(c$, "getVertexValues", +function(haveData){ +this.contourPlaneMinimumValue = 3.4028235E38; +this.contourPlaneMaximumValue = -3.4028235E38; +for (var i = 0; i < this.contourVertexCount; i++) { +var c = this.contourVertexes[i]; +var value; +if (haveData) { +value = c.value; +} else { +value = this.volumeData.lookupInterpolatedVoxelValue(c, false); +c.setValue(value); +}if (value < this.contourPlaneMinimumValue) this.contourPlaneMinimumValue = value; +if (value > this.contourPlaneMaximumValue) this.contourPlaneMaximumValue = value; +} +}, "~B"); +Clazz.defineMethod(c$, "createContours", +function(min, max, zeroOffset){ +var diff = max - min; +this.contourValuesUsed = Clazz.newFloatArray (this.nContourSegments, 0); +for (var i = this.triangleCount; --i >= 0; ) this.triangles[i].check = 0; + +var minCutoff = -3.4028235E38; +var cutoff = minCutoff; +for (var i = 0; i < this.nContourSegments; i++) { +cutoff = (this.contoursDiscrete != null ? this.contoursDiscrete[i] : this.contourFromZero ? min + (i * 1 / this.nContourSegments) * diff : i == 0 ? -3.4028235E38 : i == this.nContourSegments - 1 ? 3.4028235E38 : min + ((i - 1) * 1 / (this.nContourSegments - 1)) * diff); +if (this.contoursDiscrete == null && Math.abs(cutoff) < zeroOffset) cutoff = (cutoff < 0 ? -zeroOffset : zeroOffset); +this.contourValuesUsed[i] = cutoff; +JU.Logger.info("#contour " + (i + 1) + " " + cutoff + " " + this.triangleCount); +this.htPts.clear(); +for (var ii = this.triangleCount; --ii >= 0; ) { +if (this.triangles[ii].isValid) this.checkContour(this.triangles[ii], i, cutoff); +} +if (this.thisContour > 0) { +if (i + 1 == this.thisContour) minCutoff = cutoff; +} else { +}} +if (this.contoursDiscrete != null) { +minCutoff = this.contoursDiscrete[0]; +}this.valueMin = this.contourValuesUsed[0]; +this.valueMax = (this.contourValuesUsed.length == 0 ? this.valueMin : this.contourValuesUsed[this.contourValuesUsed.length - 1]); +return true; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "intercept", +function(t, i, value){ +var iA = t.pts[i]; +var iB = t.pts[(i + 1) % 3]; +if (iA == 2147483647 || iB == 2147483647) return -1; +var key = (iA < iB ? iA + "_" + iB : iB + "_" + iA); +if (this.htPts.containsKey(key)) return this.htPts.get(key).intValue(); +var valueA = this.contourVertexes[iA].value; +var valueB = this.contourVertexes[iB].value; +var iPt = -1; +if (valueA != valueB) { +var f = (value - valueA) / (valueB - valueA); +if (f >= 0 && f <= 1) { +this.pointA.setT(this.contourVertexes[iA]); +this.pointB.setT(this.contourVertexes[iB]); +value = this.calcContourPoint(value, valueA, valueB, this.ptTemp); +if (!Float.isNaN(value)) { +iPt = this.addContourVertex(this.ptTemp, value); +if (iPt < 0) return -1; +this.contourVertexes[iPt].setValue(value); +} else { +}}}this.htPts.put(key, Integer.$valueOf(iPt)); +return iPt; +}, "J.jvxl.calc.MarchingSquares.Triangle,~N,~N"); +Clazz.defineMethod(c$, "checkContour", +function(t, i, value){ +if (this.thisContour > 0 && i + 1 != this.thisContour) return; +var ipt0 = this.intercept(t, 0, value); +var ipt1 = this.intercept(t, 1, value); +var ipt2 = this.intercept(t, 2, value); +var pts = t.pts; +var mode = 0; +if (ipt0 >= 0) { +mode += 1; +}if (ipt1 >= 0) { +mode += 2; +}if (ipt2 >= 0) { +mode += 4; +}switch (mode) { +case 3: +this.addTriangle(pts[0], ipt0, ipt1, 2 | (t.check & 1), i); +this.addTriangle(ipt0, pts[1], ipt1, 4 | (t.check & 3), i); +this.addTriangle(pts[0], ipt1, pts[2], (t.check & 6), i); +break; +case 5: +this.addTriangle(pts[0], ipt0, ipt2, 2 | (t.check & 5), i); +this.addTriangle(ipt0, pts[1], ipt2, 4 | (t.check & 1), i); +this.addTriangle(ipt2, pts[1], pts[2], (t.check & 6), i); +break; +case 6: +this.addTriangle(pts[0], pts[1], ipt2, (t.check & 5), i); +this.addTriangle(ipt2, pts[1], ipt1, 4 | (t.check & 2), i); +this.addTriangle(ipt2, ipt1, pts[2], 1 | (t.check & 6), i); +break; +default: +return; +} +t.isValid = false; +}, "J.jvxl.calc.MarchingSquares.Triangle,~N,~N"); +Clazz.defineMethod(c$, "getMinMax", +function(){ +return Clazz.newFloatArray(-1, [this.valueMin, this.valueMax]); +}); +Clazz.defineMethod(c$, "addAllTriangles", +function(){ +for (var i = 0; i < this.triangleCount; i++) if (this.triangles[i].isValid) { +var t = this.triangles[i]; +this.surfaceReader.addTriangleCheck(t.pts[0], t.pts[1], t.pts[2], t.check, t.contourIndex, false, -1); +} +}); +c$.$MarchingSquares$ContourVertex$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +this.value = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.calc.MarchingSquares, "ContourVertex", JU.P3); +Clazz.makeConstructor(c$, +function(vertexXYZ){ +Clazz.superConstructor (this, J.jvxl.calc.MarchingSquares.ContourVertex, []); +this.setT(vertexXYZ); +}, "JU.P3"); +Clazz.defineMethod(c$, "setValue", +function(value){ +this.value = value; +}, "~N"); +Clazz.overrideMethod(c$, "toString", +function(){ +return this.value + " " + this.x + " " + this.y + " " + this.z; +}); +/*eoif4*/})(); +}; +c$.$MarchingSquares$Triangle$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +this.pts = null; +this.check = 0; +this.isValid = true; +this.contourIndex = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.calc.MarchingSquares, "Triangle", null); +Clazz.makeConstructor(c$, +function(iA, iB, iC, check, contourIndex){ +this.pts = Clazz.newIntArray(-1, [iA, iB, iC]); +this.check = check; +this.contourIndex = contourIndex; +}, "~N,~N,~N,~N,~N"); +/*eoif4*/})(); +}; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/JvxlCoder.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/JvxlCoder.js new file mode 100755 index 000000000000..aa084a0b5a48 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/JvxlCoder.js @@ -0,0 +1,698 @@ +Clazz.declarePackage("J.jvxl.data"); +Clazz.load(null, "J.jvxl.data.JvxlCoder", ["JU.BS", "$.Lst", "$.P3", "$.PT", "$.SB", "J.api.Interface", "J.jvxl.data.VolumeData", "JU.BSUtil", "$.C", "$.Escape", "$.Logger", "JV.Viewer"], function(){ +var c$ = Clazz.declareType(J.jvxl.data, "JvxlCoder", null); +c$.jvxlGetFile = Clazz.defineMethod(c$, "jvxlGetFile", +function(jvxlData, meshData, title, msg, includeHeader, nSurfaces, state, comment){ +J.jvxl.data.JvxlCoder.checkHaveXMLUtil(); +var data = new JU.SB(); +if ("TRAILERONLY".equals(msg)) { +JU.XmlUtil.closeTag(data, "jvxlSurfaceSet"); +JU.XmlUtil.closeTag(data, "jvxl"); +return data.toString(); +}var vertexDataOnly = (meshData != null); +var isHeaderOnly = ("HEADERONLY".equals(msg)); +if (includeHeader) { +JU.XmlUtil.openDocument(data); +JU.XmlUtil.openTagAttr(data, "jvxl", Clazz.newArray(-1, ["version", "2.4", "jmolVersion", jvxlData.version, "xmlns", "http://jmol.org/jvxl_schema", "xmlns:cml", "http://www.xml-cml.org/schema"])); +JU.XmlUtil.appendCdata(data, "jvxlFileTitle", null, jvxlData.jvxlFileTitle == null ? "\n" : "\n" + jvxlData.jvxlFileTitle); +if (jvxlData.moleculeXml != null) data.append(jvxlData.moleculeXml); +var volumeDataXml = (vertexDataOnly ? null : jvxlData.jvxlVolumeDataXml); +if (volumeDataXml == null) volumeDataXml = ( new J.jvxl.data.VolumeData()).setVolumetricXml(); +data.append(volumeDataXml); +JU.XmlUtil.openTagAttr(data, "jvxlSurfaceSet", Clazz.newArray(-1, ["count", "" + (nSurfaces > 0 ? nSurfaces : 1)])); +if (isHeaderOnly) return data.toString(); +}var sb; +var type = (vertexDataOnly ? "pmesh" : jvxlData.jvxlPlane == null ? "isosurface" : "plane"); +if (jvxlData.jvxlColorData != null && jvxlData.jvxlColorData.length > 0) type = "mapped " + type; +JU.XmlUtil.openTagAttr(data, "jvxlSurface", Clazz.newArray(-1, ["type", type])); +data.append(J.jvxl.data.JvxlCoder.jvxlGetInfoData(jvxlData, vertexDataOnly)); +J.jvxl.data.JvxlCoder.jvxlAppendCommandState(data, comment, state); +if (title != null || msg != null && msg.length > 0) { +sb = new JU.SB(); +if (msg != null && msg.length > 0) sb.append(msg).append("\n"); +if (title != null) for (var i = 0; i < title.length; i++) sb.append(title[i]).appendC('\n'); + +JU.XmlUtil.appendCdata(data, "jvxlSurfaceTitle", null, sb.toString()); +}sb = new JU.SB(); +JU.XmlUtil.openTagAttr(sb, "jvxlSurfaceData", (vertexDataOnly || jvxlData.jvxlPlane == null ? null : jvxlData.mapLattice == null ? Clazz.newArray(-1, ["plane", JU.Escape.eP4(jvxlData.jvxlPlane)]) : Clazz.newArray(-1, ["plane", JU.Escape.eP4(jvxlData.jvxlPlane), "maplattice", JU.Escape.eP(jvxlData.mapLattice)]))); +if (vertexDataOnly) { +J.jvxl.data.JvxlCoder.appendXmlVertexOnlyData(sb, jvxlData, meshData, true); +} else if (jvxlData.jvxlPlane == null) { +if (jvxlData.jvxlEdgeData == null) return ""; +J.jvxl.data.JvxlCoder.appendXmlEdgeData(sb, jvxlData); +J.jvxl.data.JvxlCoder.appendXmlColorData(sb, jvxlData.jvxlColorData, true, jvxlData.isJvxlPrecisionColor, jvxlData.valueMappedToRed, jvxlData.valueMappedToBlue); +} else { +J.jvxl.data.JvxlCoder.appendXmlColorData(sb, jvxlData.jvxlColorData, true, jvxlData.isJvxlPrecisionColor, jvxlData.valueMappedToRed, jvxlData.valueMappedToBlue); +}J.jvxl.data.JvxlCoder.appendEncodedBitSetTag(sb, "jvxlInvalidatedVertexData", jvxlData.jvxlExcluded[1], -1, null); +if (jvxlData.excludedVertexCount > 0) { +J.jvxl.data.JvxlCoder.appendEncodedBitSetTag(sb, "jvxlExcludedVertexData", jvxlData.jvxlExcluded[0], jvxlData.excludedVertexCount, null); +J.jvxl.data.JvxlCoder.appendEncodedBitSetTag(sb, "jvxlExcludedPlaneData", jvxlData.jvxlExcluded[2], -1, null); +}J.jvxl.data.JvxlCoder.appendEncodedBitSetTag(sb, "jvxlExcludedTriangleData", jvxlData.jvxlExcluded[3], jvxlData.excludedTriangleCount, null); +JU.XmlUtil.closeTag(sb, "jvxlSurfaceData"); +var len = sb.length(); +data.appendSB(sb); +if (jvxlData.vContours != null && jvxlData.vContours.length > 0) { +J.jvxl.data.JvxlCoder.jvxlEncodeContourData(jvxlData.vContours, data); +}if (jvxlData.vertexColorMap != null) { +if (jvxlData.baseColor == null) JU.XmlUtil.openTag(data, "jvxlVertexColorData"); + else JU.XmlUtil.openTagAttr(data, "jvxlVertexColorData", Clazz.newArray(-1, ["baseColor", jvxlData.baseColor])); +for (var entry, $entry = jvxlData.vertexColorMap.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) J.jvxl.data.JvxlCoder.appendEncodedBitSetTag(data, "jvxlColorMap", entry.getValue(), -1, Clazz.newArray(-1, ["color", entry.getKey()])); + +jvxlData.vertexColorMap = null; +JU.XmlUtil.closeTag(data, "jvxlVertexColorData"); +}JU.XmlUtil.closeTag(data, "jvxlSurface"); +if (includeHeader) { +JU.XmlUtil.closeTag(data, "jvxlSurfaceSet"); +JU.XmlUtil.closeTag(data, "jvxl"); +}return J.jvxl.data.JvxlCoder.jvxlSetCompressionRatio(data, jvxlData, len); +}, "J.jvxl.data.JvxlData,J.jvxl.data.MeshData,~A,~S,~B,~N,~S,~S"); +c$.checkHaveXMLUtil = Clazz.defineMethod(c$, "checkHaveXMLUtil", +function(){ +if (!J.jvxl.data.JvxlCoder.haveXMLUtil) { +if (JV.Viewer.isJS) J.api.Interface.getInterface("JU.XmlUtil", null, "show"); +J.jvxl.data.JvxlCoder.haveXMLUtil = true; +}}); +c$.appendEncodedBitSetTag = Clazz.defineMethod(c$, "appendEncodedBitSetTag", +function(sb, name, bs, count, attribs){ +if (count < 0) count = JU.BSUtil.cardinalityOf(bs); +if (count == 0) return; +var sb1 = new JU.SB(); +sb1.append("\n "); +J.jvxl.data.JvxlCoder.jvxlEncodeBitSetBuffer(bs, -1, sb1); +JU.XmlUtil.appendTagObj(sb, name, Clazz.newArray(-1, [attribs, "bsEncoding", "base90+35", "count", "" + count, "len", "" + bs.length()]), J.jvxl.data.JvxlCoder.jvxlCompressString(sb1.toString(), true)); +}, "JU.SB,~S,JU.BS,~N,~A"); +c$.jvxlSetCompressionRatio = Clazz.defineMethod(c$, "jvxlSetCompressionRatio", +function(data, jvxlData, len){ +var s = data.toString(); +var r = Clazz.floatToInt(jvxlData.nBytes > 0 ? (jvxlData.nBytes) / len : ((jvxlData.nPointsX * jvxlData.nPointsY * jvxlData.nPointsZ * 13)) / len); +return JU.PT.rep(s, "\"not calculated\"", (r > 0 ? "\"" + r + ":1\"" : "\"?\"")); +}, "JU.SB,J.jvxl.data.JvxlData,~N"); +c$.appendXmlEdgeData = Clazz.defineMethod(c$, "appendXmlEdgeData", +function(sb, jvxlData){ +JU.XmlUtil.appendTagObj(sb, "jvxlEdgeData", Clazz.newArray(-1, ["count", "" + (jvxlData.jvxlEdgeData.length - 1), "encoding", "base90f1", "bsEncoding", "base90+35c", "isXLowToHigh", "" + jvxlData.isXLowToHigh, "data", J.jvxl.data.JvxlCoder.jvxlCompressString(jvxlData.jvxlEdgeData, true)]), "\n" + J.jvxl.data.JvxlCoder.jvxlCompressString(jvxlData.jvxlSurfaceData, true)); +}, "JU.SB,J.jvxl.data.JvxlData"); +c$.jvxlAppendCommandState = Clazz.defineMethod(c$, "jvxlAppendCommandState", +function(data, cmd, state){ +if (cmd != null) JU.XmlUtil.appendCdata(data, "jvxlIsosurfaceCommand", null, "\n" + (cmd.indexOf("#") < 0 ? cmd : cmd.substring(0, cmd.indexOf("#"))) + "\n"); +if (state != null) { +if (state.indexOf("** XML ** ") >= 0) { +state = JU.PT.split(state, "** XML **")[1].trim(); +JU.XmlUtil.appendTag(data, "jvxlIsosurfaceState", "\n" + state + "\n"); +} else { +JU.XmlUtil.appendCdata(data, "jvxlIsosurfaceState", null, "\n" + state); +}}}, "JU.SB,~S,~S"); +c$.appendXmlColorData = Clazz.defineMethod(c$, "appendXmlColorData", +function(sb, data, isEncoded, isPrecisionColor, value1, value2){ +var n; +if (data == null || (n = data.length - 1) < 0) return; +if (isPrecisionColor) n /= 2; +JU.XmlUtil.appendTagObj(sb, "jvxlColorData", Clazz.newArray(-1, ["count", "" + n, "encoding", (isEncoded ? "base90f" + (isPrecisionColor ? "2" : "1") : "none"), "min", "" + value1, "max", "" + value2, "data", J.jvxl.data.JvxlCoder.jvxlCompressString(data, true)]), null); +}, "JU.SB,~S,~B,~B,~N,~N"); +c$.jvxlGetInfo = Clazz.defineMethod(c$, "jvxlGetInfo", +function(jvxlData){ +return J.jvxl.data.JvxlCoder.jvxlGetInfoData(jvxlData, jvxlData.vertexDataOnly); +}, "J.jvxl.data.JvxlData"); +c$.jvxlGetInfoData = Clazz.defineMethod(c$, "jvxlGetInfoData", +function(jvxlData, vertexDataOnly){ +if (jvxlData.jvxlSurfaceData == null) return ""; +J.jvxl.data.JvxlCoder.checkHaveXMLUtil(); +var attribs = new JU.Lst(); +var nSurfaceInts = jvxlData.nSurfaceInts; +var bytesUncompressedEdgeData = (vertexDataOnly ? 0 : jvxlData.jvxlEdgeData.length - 1); +var nColorData = (jvxlData.jvxlColorData == null ? -1 : (jvxlData.jvxlColorData.length - 1)); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n isModelConnected", "" + jvxlData.isModelConnected); +if (!vertexDataOnly) { +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n cutoff", (jvxlData.cutoffRange == null ? "" + jvxlData.cutoff : jvxlData.cutoffRange[0] + " " + jvxlData.cutoffRange[1])); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n isCutoffAbsolute", "" + jvxlData.isCutoffAbsolute); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n pointsPerAngstrom", "" + jvxlData.pointsPerAngstrom); +var n = jvxlData.jvxlSurfaceData.length + bytesUncompressedEdgeData + nColorData + 1; +if (n > 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nBytesData", "" + n); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n isXLowToHigh", "" + jvxlData.isXLowToHigh); +if (jvxlData.jvxlPlane == null) { +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nSurfaceInts", "" + nSurfaceInts); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nBytesUncompressedEdgeData", "" + bytesUncompressedEdgeData); +}if (nColorData > 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nBytesUncompressedColorData", "" + nColorData); +}jvxlData.excludedVertexCount = JU.BSUtil.cardinalityOf(jvxlData.jvxlExcluded[0]); +jvxlData.excludedTriangleCount = JU.BSUtil.cardinalityOf(jvxlData.jvxlExcluded[3]); +if (jvxlData.excludedVertexCount > 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nExcludedVertexes", "" + jvxlData.excludedVertexCount); +if (jvxlData.excludedTriangleCount > 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nExcludedTriangles", "" + jvxlData.excludedTriangleCount); +var n = JU.BSUtil.cardinalityOf(jvxlData.jvxlExcluded[1]); +if (n > 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nInvalidatedVertexes", "" + n); +if (jvxlData.slabInfo != null) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n slabInfo", jvxlData.slabInfo); +if (jvxlData.isJvxlPrecisionColor) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n precisionColor", "true"); +if (jvxlData.colorDensity) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n colorDensity", "true"); +if (!Float.isNaN(jvxlData.pointSize)) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n pointSize", "" + jvxlData.pointSize); + else if (jvxlData.diameter != 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n diameter", "" + jvxlData.diameter); +if (!jvxlData.allowVolumeRender) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n allowVolumeRender", "false"); +if (jvxlData.jvxlPlane == null || vertexDataOnly) { +if (jvxlData.fixedLattice != null && !vertexDataOnly) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n fixedLattice", "" + jvxlData.fixedLattice); +if (jvxlData.isContoured) { +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n contoured", "true"); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n colorMapped", "true"); +} else if (jvxlData.isBicolorMap) { +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n bicolorMap", "true"); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n colorNegative", JU.C.getHexCode(jvxlData.minColorIndex)); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n colorPositive", JU.C.getHexCode(jvxlData.maxColorIndex)); +} else if (nColorData > 0) { +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n colorMapped", "true"); +}if (jvxlData.vContours != null && jvxlData.vContours.length > 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nContourData", "" + jvxlData.vContours.length); +} else { +if (jvxlData.mapLattice != null) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n mapLattice", "" + jvxlData.mapLattice); +if (jvxlData.scale3d != 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n scale3d", "" + jvxlData.scale3d); +if (nColorData > 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n colorMapped", "true"); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n plane", JU.Escape.eP4(jvxlData.jvxlPlane)); +}if (jvxlData.color != null && jvxlData.color.indexOf("null") < 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n color", jvxlData.color); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n translucency", "" + jvxlData.translucency); +if (jvxlData.meshColor != null) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n meshColor", jvxlData.meshColor); +if (jvxlData.colorScheme != null) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n colorScheme", jvxlData.colorScheme); +if (jvxlData.rendering != null) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n rendering", jvxlData.rendering); +if (jvxlData.thisSet != null) { +var s = J.jvxl.data.JvxlCoder.subsetString(jvxlData.thisSet); +if (s.startsWith("[")) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n subset", s); + else J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n set", s); +}if (jvxlData.slabValue != -2147483648) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n slabValue", "" + jvxlData.slabValue); +if (jvxlData.isSlabbable) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n slabbable", "true"); +if (jvxlData.nVertexColors > 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nVertexColors", "" + jvxlData.nVertexColors); +var min = (jvxlData.mappedDataMin == 3.4028235E38 ? 0 : jvxlData.mappedDataMin); +var blue = (jvxlData.isColorReversed ? jvxlData.valueMappedToRed : jvxlData.valueMappedToBlue); +var red = (jvxlData.isColorReversed ? jvxlData.valueMappedToBlue : jvxlData.valueMappedToRed); +if (jvxlData.jvxlColorData != null && jvxlData.jvxlColorData.length > 0 && !jvxlData.isBicolorMap) { +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n dataMinimum", "" + min); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n dataMaximum", "" + jvxlData.mappedDataMax); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n valueMappedToRed", "" + red); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n valueMappedToBlue", "" + blue); +}if (jvxlData.isContoured) { +if (jvxlData.contourValues == null || jvxlData.contourColixes == null) { +if (jvxlData.vContours == null) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nContours", "" + Math.abs(jvxlData.nContours)); +} else { +if (jvxlData.jvxlPlane != null) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n contoured", "true"); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n nContours", "" + jvxlData.contourValues.length); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n contourValues", JU.Escape.eAF(jvxlData.contourValuesUsed == null ? jvxlData.contourValues : jvxlData.contourValuesUsed)); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n contourColors", jvxlData.contourColors); +}if (jvxlData.thisContour > 0) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n thisContour", "" + jvxlData.thisContour); +}if (jvxlData.insideOut) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n insideOut", "true"); +if (jvxlData.vertexDataOnly) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n note", "vertex/face data only"); + else if (jvxlData.isXLowToHigh) J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n note", "progressive JVXL+ -- X values read from low(0) to high(" + (jvxlData.nPointsX - 1) + ")"); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n xyzMin", JU.Escape.eP(jvxlData.boundingBox[0])); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n xyzMax", JU.Escape.eP(jvxlData.boundingBox[1])); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n approximateCompressionRatio", "not calculated"); +J.jvxl.data.JvxlCoder.addAttrib(attribs, "\n jmolVersion", jvxlData.version); +var info = new JU.SB(); +JU.XmlUtil.openTagAttr(info, "jvxlSurfaceInfo", attribs.toArray( new Array(attribs.size()))); +JU.XmlUtil.closeTag(info, "jvxlSurfaceInfo"); +return info.toString(); +}, "J.jvxl.data.JvxlData,~B"); +c$.subsetString = Clazz.defineMethod(c$, "subsetString", +function(bs){ +var n = bs.cardinality(); +if (n > 1) { +var a = "[ "; +for (var ia = bs.nextSetBit(0); ia >= 0; ia = bs.nextSetBit(ia)) a += (++ia) + " "; + +return a + "]"; +}return "" + (bs.nextSetBit(0) + 1); +}, "JU.BS"); +c$.addAttrib = Clazz.defineMethod(c$, "addAttrib", +function(attribs, name, value){ +attribs.addLast( Clazz.newArray(-1, [name, value])); +}, "JU.Lst,~S,~S"); +c$.jvxlEncodeContourData = Clazz.defineMethod(c$, "jvxlEncodeContourData", +function(contours, sb){ +JU.XmlUtil.openTagAttr(sb, "jvxlContourData", Clazz.newArray(-1, ["count", "" + contours.length])); +for (var i = 0; i < contours.length; i++) { +if (contours[i].size() < 6) { +continue; +}var nPolygons = (contours[i].get(0)).intValue(); +var sb1 = new JU.SB(); +sb1.append("\n"); +var bs = contours[i].get(1); +J.jvxl.data.JvxlCoder.jvxlEncodeBitSetBuffer(bs, nPolygons, sb1); +JU.XmlUtil.appendTagObj(sb, "jvxlContour", Clazz.newArray(-1, ["index", "" + i, "value", "" + contours[i].get(2), "color", JU.Escape.escapeColor((contours[i].get(4))[0]), "count", "" + bs.length(), "encoding", "base90iff1", "bsEncoding", "base90+35c", "data", J.jvxl.data.JvxlCoder.jvxlCompressString(contours[i].get(5).toString(), true)]), J.jvxl.data.JvxlCoder.jvxlCompressString(sb1.toString(), true)); +} +JU.XmlUtil.closeTag(sb, "jvxlContourData"); +}, "~A,JU.SB"); +c$.set3dContourVector = Clazz.defineMethod(c$, "set3dContourVector", +function(v, polygonIndexes, vertices){ +if (v.size() < 6) return; +var fData = v.get(5); +var bs = v.get(1); +var pt = 0; +var nBuf = fData.length(); +var type = 0; +var c1 = ' '; +var c2 = ' '; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +var vertexIndexes = polygonIndexes[i]; +while (pt < nBuf && !JU.PT.isDigit(c1 = fData.charAt(pt++))) { +} +type = c1.charCodeAt(0) - 48; +while (pt < nBuf && JU.PT.isWhitespace(c1 = fData.charAt(pt++))) { +} +while (pt < nBuf && JU.PT.isWhitespace(c2 = fData.charAt(pt++))) { +} +var f1 = J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(c1.charCodeAt(0), 35, 90, 0); +var f2 = J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(c2.charCodeAt(0), 35, 90, 0); +var i1; +var i2; +var i3; +var i4; +if ((type & 1) == 0) { +i1 = vertexIndexes[1]; +i2 = i3 = vertexIndexes[2]; +i4 = vertexIndexes[0]; +} else { +i1 = vertexIndexes[0]; +i2 = vertexIndexes[1]; +if ((type & 2) != 0) { +i3 = i2; +i4 = vertexIndexes[2]; +} else { +i3 = vertexIndexes[2]; +i4 = i1; +}}v.addLast(J.jvxl.data.JvxlCoder.getContourPoint(vertices, i1, i2, f1)); +v.addLast(J.jvxl.data.JvxlCoder.getContourPoint(vertices, i3, i4, f2)); +} +}, "JU.Lst,~A,~A"); +c$.getContourPoint = Clazz.defineMethod(c$, "getContourPoint", +function(vertices, i, j, f){ +var pt = new JU.P3(); +pt.sub2(vertices[j], vertices[i]); +pt.scaleAdd2(f, pt, vertices[i]); +return pt; +}, "~A,~N,~N,~N"); +c$.appendContourTriangleIntersection = Clazz.defineMethod(c$, "appendContourTriangleIntersection", +function(type, f1, f2, fData){ +fData.appendI(type); +fData.appendC(J.jvxl.data.JvxlCoder.jvxlFractionAsCharacter(f1)); +fData.appendC(J.jvxl.data.JvxlCoder.jvxlFractionAsCharacter(f2)); +}, "~N,~N,~N,JU.SB"); +c$.jvxlCreateColorData = Clazz.defineMethod(c$, "jvxlCreateColorData", +function(jvxlData, vertexValues){ +if (vertexValues == null) { +jvxlData.jvxlColorData = ""; +return; +}var writePrecisionColor = jvxlData.isJvxlPrecisionColor; +var doTruncate = jvxlData.isTruncated; +var colorFractionBase = jvxlData.colorFractionBase; +var colorFractionRange = jvxlData.colorFractionRange; +var valueBlue = jvxlData.valueMappedToBlue; +var valueRed = jvxlData.valueMappedToRed; +var vertexCount = (jvxlData.saveVertexCount > 0 ? jvxlData.saveVertexCount : jvxlData.vertexCount); +if (vertexCount > vertexValues.length) System.out.println("JVXLCODER ERROR"); +var isPrecisionColor = jvxlData.isJvxlPrecisionColor; +var min = (isPrecisionColor ? jvxlData.mappedDataMin : jvxlData.valueMappedToRed); +var max = (isPrecisionColor ? jvxlData.mappedDataMax : jvxlData.valueMappedToBlue); +if (vertexValues.length < vertexCount) System.out.println("JVXLCOLOR OHOHO"); +jvxlData.jvxlColorData = J.jvxl.data.JvxlCoder.jvxlEncodeColorData(vertexValues, min, max, colorFractionBase, colorFractionRange, jvxlData.isTruncated, isPrecisionColor); +}, "J.jvxl.data.JvxlData,~A"); +c$.jvxlEncodeColorData = Clazz.defineMethod(c$, "jvxlEncodeColorData", +function(vertexValues, min, max, colorFractionBase, colorFractionRange, doTruncate, isPrecisionColor){ +var list1 = new JU.SB(); +var list2 = new JU.SB(); +for (var i = 0, n = vertexValues.length; i < n; i++) { +var value = vertexValues[i]; +if (Float.isNaN(value)) value = min; +if (doTruncate) value = (value > 0 ? 0.999 : -0.999); +if (isPrecisionColor) J.jvxl.data.JvxlCoder.jvxlAppendCharacter2(value, min, max, colorFractionBase, colorFractionRange, list1, list2); + else list1.appendC(J.jvxl.data.JvxlCoder.jvxlValueAsCharacter(value, min, max, colorFractionBase, colorFractionRange)); +} +return list1.appendSB(list2).appendC('\n').toString(); +}, "~A,~N,~N,~N,~N,~B,~B"); +c$.appendXmlVertexOnlyData = Clazz.defineMethod(c$, "appendXmlVertexOnlyData", +function(sb, jvxlData, meshData, escapeXml){ +var vertexIdNew = Clazz.newIntArray (meshData.vc, 0); +if (J.jvxl.data.JvxlCoder.appendXmlTriangleData(sb, meshData.pis, meshData.pc, meshData.bsSlabDisplay, vertexIdNew, escapeXml)) J.jvxl.data.JvxlCoder.appendXmlVertexData(sb, jvxlData, vertexIdNew, meshData.vs, meshData.vvs, meshData.vc, meshData.polygonColorData, meshData.pc, meshData.bsSlabDisplay, jvxlData.vertexColors, jvxlData.jvxlColorData.length > 0, escapeXml); +}, "JU.SB,J.jvxl.data.JvxlData,J.jvxl.data.MeshData,~B"); +c$.appendXmlTriangleData = Clazz.defineMethod(c$, "appendXmlTriangleData", +function(sb, triangles, nData, bsSlabDisplay, vertexIdNew, escapeXml){ +var list1 = new JU.SB(); +var list2 = new JU.SB(); +var ilast = 1; +var p = 0; +var inew = 0; +var addPlus = false; +var nTri = 0; +var removeSlabbed = (bsSlabDisplay != null); +for (var i = 0; i < nData; ) { +if (triangles[i] == null || (removeSlabbed && !bsSlabDisplay.get(i))) { +i++; +continue; +}var idata = triangles[i][p]; +if (vertexIdNew[idata] > 0) { +idata = vertexIdNew[idata]; +} else { +idata = vertexIdNew[idata] = ++inew; +}var diff = idata - ilast; +ilast = idata; +if (diff == 0) { +list1.appendC('!'); +addPlus = false; +} else if (diff > 32) { +if (addPlus) list1.appendC('+'); +list1.appendI(diff); +addPlus = true; +} else if (diff < -32) { +list1.appendI(diff); +addPlus = true; +} else { +list1.appendC(String.fromCharCode(92 + diff)); +addPlus = false; +}if (++p % 3 == 0) { +list2.appendI(triangles[i][3]); +p = 0; +i++; +nTri++; +}} +if (list1.length() == 0) return true; +JU.XmlUtil.appendTagObj(sb, "jvxlTriangleData", Clazz.newArray(-1, ["count", "" + nTri, "encoding", "jvxltdiff", "data", J.jvxl.data.JvxlCoder.jvxlCompressString(list1.toString(), escapeXml)]), null); +JU.XmlUtil.appendTagObj(sb, "jvxlTriangleEdgeData", Clazz.newArray(-1, ["count", "" + nTri, "encoding", "jvxlsc", "data", J.jvxl.data.JvxlCoder.jvxlCompressString(list2.toString(), escapeXml)]), null); +return true; +}, "JU.SB,~A,~N,JU.BS,~A,~B"); +c$.appendXmlVertexData = Clazz.defineMethod(c$, "appendXmlVertexData", +function(sb, jvxlData, vertexIdNew, vertices, vertexValues, vertexCount, polygonColorData, polygonCount, bsSlabDisplay, vertexColors, addColorData, escapeXml){ +var colorFractionBase = jvxlData.colorFractionBase; +var colorFractionRange = jvxlData.colorFractionRange; +var p; +var min = jvxlData.boundingBox[0]; +var max = jvxlData.boundingBox[1]; +var list1 = new JU.SB(); +var list2 = new JU.SB(); +var vertexIdOld = null; +var removeSlabbed = (bsSlabDisplay != null); +if (polygonCount > 0) { +if (removeSlabbed) polygonCount = bsSlabDisplay.cardinality(); +removeSlabbed = false; +vertexIdOld = Clazz.newIntArray (vertexCount, 0); +for (var i = 0; i < vertexCount; i++) if (vertexIdNew[i] > 0) vertexIdOld[vertexIdNew[i] - 1] = i; + +}var n = 0; +for (var i = 0; i < vertexCount; i++) if (!removeSlabbed || bsSlabDisplay.get(i)) { +n++; +p = vertices[(polygonCount == 0 ? i : vertexIdOld[i])]; +J.jvxl.data.JvxlCoder.jvxlAppendCharacter2(p.x, min.x, max.x, colorFractionBase, colorFractionRange, list1, list2); +J.jvxl.data.JvxlCoder.jvxlAppendCharacter2(p.y, min.y, max.y, colorFractionBase, colorFractionRange, list1, list2); +J.jvxl.data.JvxlCoder.jvxlAppendCharacter2(p.z, min.z, max.z, colorFractionBase, colorFractionRange, list1, list2); +} +list1.appendSB(list2); +JU.XmlUtil.appendTagObj(sb, "jvxlVertexData", Clazz.newArray(-1, ["count", "" + n, "min", JU.Escape.eP(min), "max", JU.Escape.eP(max), "encoding", "base90xyz2", "data", J.jvxl.data.JvxlCoder.jvxlCompressString(list1.toString(), escapeXml)]), null); +if (polygonColorData != null) JU.XmlUtil.appendTagObj(sb, "jvxlPolygonColorData", Clazz.newArray(-1, ["encoding", "jvxlnc", "count", "" + polygonCount]), "\n" + polygonColorData); +if (!addColorData) return; +list1 = new JU.SB(); +list2 = new JU.SB(); +if (vertexColors == null) { +for (var i = 0; i < vertexCount; i++) if (!removeSlabbed || bsSlabDisplay.get(i)) { +var value = vertexValues[polygonCount == 0 ? i : vertexIdOld[i]]; +J.jvxl.data.JvxlCoder.jvxlAppendCharacter2(value, jvxlData.mappedDataMin, jvxlData.mappedDataMax, colorFractionBase, colorFractionRange, list1, list2); +} +} else { +var lastColor = 0; +list1.appendI(n).append(" "); +for (var i = 0; i < vertexCount; i++) if (!removeSlabbed || bsSlabDisplay.get(i)) { +var c = vertexColors[polygonCount == 0 ? i : vertexIdOld[i]]; +if (c == lastColor) c = 0; + else lastColor = c; +list1.appendI(c); +list1.append(" "); +} +}J.jvxl.data.JvxlCoder.appendXmlColorData(sb, list1.appendSB(list2).append("\n").toString(), (vertexColors == null), true, jvxlData.valueMappedToRed, jvxlData.valueMappedToBlue); +}, "JU.SB,J.jvxl.data.JvxlData,~A,~A,~A,~N,~S,~N,JU.BS,~A,~B,~B"); +c$.jvxlFractionAsCharacter = Clazz.defineMethod(c$, "jvxlFractionAsCharacter", +function(fraction){ +return J.jvxl.data.JvxlCoder.jvxlFractionAsCharacterRange(fraction, 35, 90); +}, "~N"); +c$.jvxlFractionAsCharacterRange = Clazz.defineMethod(c$, "jvxlFractionAsCharacterRange", +function(fraction, base, range){ +if (fraction > 0.9999) fraction = 0.9999; + else if (Float.isNaN(fraction)) fraction = 1.0001; +var ich = Clazz.doubleToInt(Math.floor(fraction * range + base)); +if (ich < base) return String.fromCharCode(base); +if (ich == 92) return '!'; +return String.fromCharCode(ich); +}, "~N,~N,~N"); +c$.jvxlAppendCharacter2 = Clazz.defineMethod(c$, "jvxlAppendCharacter2", +function(value, min, max, base, range, list1, list2){ +var fraction = (min == max ? value : (value - min) / (max - min)); +var ch1 = J.jvxl.data.JvxlCoder.jvxlFractionAsCharacterRange(fraction, base, range); +list1.appendC(ch1); +fraction -= J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(ch1.charCodeAt(0), base, range, 0); +list2.appendC(J.jvxl.data.JvxlCoder.jvxlFractionAsCharacterRange(fraction * range, base, range)); +}, "~N,~N,~N,~N,~N,JU.SB,JU.SB"); +c$.jvxlFractionFromCharacter = Clazz.defineMethod(c$, "jvxlFractionFromCharacter", +function(ich, base, range, fracOffset){ +if (ich == base + range) return NaN; +if (ich < base) ich = 92; +var fraction = (ich - base + fracOffset) / range; +if (fraction < 0) return 0; +if (fraction > 1) return 0.999999; +return fraction; +}, "~N,~N,~N,~N"); +c$.jvxlFractionFromCharacter2 = Clazz.defineMethod(c$, "jvxlFractionFromCharacter2", +function(ich1, ich2, base, range){ +var fraction = J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(ich1, base, range, 0); +var remains = J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(ich2, base, range, 0.5); +return fraction + remains / range; +}, "~N,~N,~N,~N"); +c$.jvxlValueAsCharacter = Clazz.defineMethod(c$, "jvxlValueAsCharacter", +function(value, min, max, base, range){ +var fraction = (min == max ? value : (value - min) / (max - min)); +return J.jvxl.data.JvxlCoder.jvxlFractionAsCharacterRange(fraction, base, range); +}, "~N,~N,~N,~N,~N"); +c$.jvxlValueFromCharacter2 = Clazz.defineMethod(c$, "jvxlValueFromCharacter2", +function(ich, ich2, min, max, base, range){ +var fraction = J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter2(ich, ich2, base, range); +return (max == min ? fraction : min + fraction * (max - min)); +}, "~N,~N,~N,~N,~N,~N"); +c$.jvxlEncodeBitSet0 = Clazz.defineMethod(c$, "jvxlEncodeBitSet0", +function(bs, nPoints, sb){ +var dataCount = 0; +var prevCount = -1; +var nPrev = 0; +if (nPoints < 0) nPoints = bs.length(); +var n = 0; +var isset = false; +var lastPoint = nPoints - 1; +for (var i = 0; i < nPoints; ++i) { +if (isset == bs.get(i)) { +dataCount++; +} else { +if (dataCount == prevCount && i != lastPoint) { +nPrev++; +} else { +if (nPrev > 0) { +sb.appendC(' ').appendI(-nPrev); +nPrev = 0; +n++; +}sb.appendC(' ').appendI(dataCount); +n++; +prevCount = dataCount; +}dataCount = 1; +isset = !isset; +}} +sb.appendC(' ').appendI(dataCount).appendC('\n'); +return n; +}, "JU.BS,~N,JU.SB"); +c$.jvxlEncodeBitSet = Clazz.defineMethod(c$, "jvxlEncodeBitSet", +function(bs){ +var sb = new JU.SB(); +J.jvxl.data.JvxlCoder.jvxlEncodeBitSetBuffer(bs, -1, sb); +return sb.toString(); +}, "JU.BS"); +c$.jvxlEncodeBitSetBuffer = Clazz.defineMethod(c$, "jvxlEncodeBitSetBuffer", +function(bs, nPoints, sb){ +var dataCount = 0; +var n = 0; +var isset = false; +if (nPoints < 0) nPoints = bs.length(); +if (nPoints == 0) return 0; +sb.append("-"); +for (var i = 0; i < nPoints; ++i) { +if (isset == bs.get(i)) { +dataCount++; +} else { +J.jvxl.data.JvxlCoder.jvxlAppendEncodedNumber(sb, dataCount, 35, 90); +n++; +dataCount = 1; +isset = !isset; +}} +J.jvxl.data.JvxlCoder.jvxlAppendEncodedNumber(sb, dataCount, 35, 90); +sb.appendC('\n'); +return n; +}, "JU.BS,~N,JU.SB"); +c$.jvxlAppendEncodedNumber = Clazz.defineMethod(c$, "jvxlAppendEncodedNumber", +function(sb, n, base, range){ +var isInRange = (n < range); +if (n == 0) sb.appendC(String.fromCharCode(base)); + else if (!isInRange) sb.appendC(String.fromCharCode(base + range)); +while (n > 0) { +var n1 = Clazz.doubleToInt(n / range); +var x = base + n - n1 * range; +if (x == 92) x = 33; +sb.appendC(String.fromCharCode(x)); +n = n1; +} +if (!isInRange) sb.append(" "); +}, "JU.SB,~N,~N,~N"); +c$.jvxlDecodeBitSetRange = Clazz.defineMethod(c$, "jvxlDecodeBitSetRange", +function(data, base, range){ +var bs = new JU.BS(); +var dataCount = 0; +var ptr = 0; +var isset = false; +var next = Clazz.newIntArray (1, 0); +while ((dataCount = J.jvxl.data.JvxlCoder.jvxlParseEncodedInt(data, base, range, next)) != -2147483648) { +if (isset) bs.setBits(ptr, ptr + dataCount); +ptr += dataCount; +isset = !isset; +} +return bs; +}, "~S,~N,~N"); +c$.jvxlParseEncodedInt = Clazz.defineMethod(c$, "jvxlParseEncodedInt", +function(str, offset, base, next){ +var digitSeen = false; +var value = 0; +var ich = next[0]; +var ichMax = str.length; +if (ich < 0) return -2147483648; +while (ich < ichMax && JU.PT.isWhitespace(str.charAt(ich))) ++ich; + +if (ich >= ichMax) return -2147483648; +var factor = 1; +var isLong = ((str.charAt(ich)).charCodeAt(0) == (offset + base)); +if (isLong) ich++; +while (ich < ichMax && !JU.PT.isWhitespace(str.charAt(ich))) { +var i = (str.charAt(ich)).charCodeAt(0); +if (i < offset) i = 92; +value += (i - offset) * factor; +digitSeen = true; +++ich; +if (!isLong) break; +factor *= base; +} +if (!digitSeen) value = -2147483648; +next[0] = ich; +return value; +}, "~S,~N,~N,~A"); +c$.jvxlDecodeBitSet = Clazz.defineMethod(c$, "jvxlDecodeBitSet", +function(data){ +if (data.startsWith("-")) return J.jvxl.data.JvxlCoder.jvxlDecodeBitSetRange(J.jvxl.data.JvxlCoder.jvxlDecompressString(data.substring(1)), 35, 90); +var bs = new JU.BS(); +var dataCount = 0; +var lastCount = 0; +var nPrev = 0; +var ptr = 0; +var isset = false; +var next = Clazz.newIntArray (1, 0); +while (true) { +dataCount = (nPrev++ < 0 ? dataCount : JU.PT.parseIntNext(data, next)); +if (dataCount == -2147483648) break; +if (dataCount < 0) { +nPrev = dataCount; +dataCount = lastCount; +continue; +}if (isset) bs.setBits(ptr, ptr + dataCount); +ptr += dataCount; +lastCount = dataCount; +isset = !isset; +} +return bs; +}, "~S"); +c$.jvxlCompressString = Clazz.defineMethod(c$, "jvxlCompressString", +function(data, escapeXml){ +if (data.indexOf("~") >= 0) return data; +var dataOut = new JU.SB(); +var chLast = '\u0000'; +var escaped = false; +var lastEscaped = false; +var nLast = 0; +var n = data.length; +for (var i = 0; i <= n; i++) { +var ch = (i == n ? '\0' : data.charAt(i)); +switch ((ch).charCodeAt(0)) { +case 10: +case 13: +continue; +case 38: +case 60: +escaped = escapeXml; +break; +default: +escaped = false; +} +if (ch == chLast) { +++nLast; +ch = '\0'; +} else if (nLast > 0 || lastEscaped) { +if (nLast < 4 && !lastEscaped || chLast == ' ' || chLast == '\t') { +while (--nLast >= 0) dataOut.appendC(chLast); + +} else { +if (lastEscaped) lastEscaped = false; + else dataOut.appendC('~'); +dataOut.appendI(nLast); +dataOut.appendC(' '); +}nLast = 0; +}if (ch != '\0') { +if (escaped) { +lastEscaped = true; +escaped = false; +dataOut.appendC('~'); +chLast = ch; +ch = String.fromCharCode(ch.charCodeAt(0)-1); +} else { +chLast = ch; +}dataOut.appendC(ch); +}} +return dataOut.toString(); +}, "~S,~B"); +c$.jvxlDecompressString = Clazz.defineMethod(c$, "jvxlDecompressString", +function(data){ +if (data.indexOf("~") < 0) return data; +var dataOut = new JU.SB(); +var chLast = '\u0000'; +var next = Clazz.newIntArray (1, 0); +for (var i = 0; i < data.length; i++) { +var ch = data.charAt(i); +if (ch == '~') { +next[0] = ++i; +switch ((ch = data.charAt(i)).charCodeAt(0)) { +case 59: +case 37: +next[0]++; +dataOut.appendC(chLast = (ch = String.fromCharCode(ch.charCodeAt(0)+1))); +case 49: +case 50: +case 51: +case 52: +case 53: +case 54: +case 55: +case 56: +case 57: +var nChar = JU.PT.parseIntNext(data, next); +for (var c = 0; c < nChar; c++) dataOut.appendC(chLast); + +i = next[0]; +continue; +case 126: +--i; +break; +default: +JU.Logger.error("Error uncompressing string " + data.substring(0, i) + "?"); +} +}dataOut.appendC(ch); +chLast = ch; +} +return dataOut.toString(); +}, "~S"); +c$.jvxlCreateHeaderWithoutTitleOrAtoms = Clazz.defineMethod(c$, "jvxlCreateHeaderWithoutTitleOrAtoms", +function(v, bs){ +J.jvxl.data.JvxlCoder.jvxlCreateHeader(v, bs); +}, "J.jvxl.data.VolumeData,JU.SB"); +c$.jvxlCreateHeader = Clazz.defineMethod(c$, "jvxlCreateHeader", +function(v, sb){ +v.setVolumetricXml(); +if (sb.length() == 0) sb.append("Line 1\nLine 2\n"); +}, "J.jvxl.data.VolumeData,JU.SB"); +c$.haveXMLUtil = false; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/JvxlData.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/JvxlData.js new file mode 100755 index 000000000000..df2ab2f7e06d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/JvxlData.js @@ -0,0 +1,162 @@ +Clazz.declarePackage("J.jvxl.data"); +Clazz.load(null, "J.jvxl.data.JvxlData", ["JU.SB", "J.jvxl.data.JvxlCoder"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.msg = ""; +this.wasJvxl = false; +this.wasCubic = false; +this.jvxlFileSource = null; +this.jvxlFileTitle = null; +this.jvxlFileMessage = null; +this.jvxlSurfaceData = null; +this.jvxlEdgeData = null; +this.jvxlColorData = null; +this.jvxlVolumeDataXml = null; +this.jvxlExcluded = null; +this.jvxlPlane = null; +this.isJvxlPrecisionColor = false; +this.jvxlDataIsColorMapped = false; +this.jvxlDataIs2dContour = false; +this.jvxlDataIsColorDensity = false; +this.isColorReversed = false; +this.thisSet = null; +this.edgeFractionBase = 35; +this.edgeFractionRange = 90; +this.colorFractionBase = 35; +this.colorFractionRange = 90; +this.isValid = true; +this.insideOut = false; +this.isXLowToHigh = false; +this.isContoured = false; +this.isBicolorMap = false; +this.isTruncated = false; +this.isCutoffAbsolute = false; +this.isModelConnected = false; +this.vertexDataOnly = false; +this.mappedDataMin = 0; +this.mappedDataMax = 0; +this.valueMappedToRed = 0; +this.valueMappedToBlue = 0; +this.cutoff = 0; +this.cutoffRange = null; +this.pointsPerAngstrom = 0; +this.nPointsX = 0; +this.nPointsY = 0; +this.nPointsZ = 0; +this.nBytes = 0; +this.nContours = 0; +this.nEdges = 0; +this.nSurfaceInts = 0; +this.vertexCount = 0; +this.vContours = null; +this.contourColixes = null; +this.contourColors = null; +this.contourValues = null; +this.contourValuesUsed = null; +this.thisContour = -1; +this.scale3d = 0; +this.minColorIndex = -1; +this.maxColorIndex = 0; +this.title = null; +this.version = null; +this.boundingBox = null; +this.excludedTriangleCount = 0; +this.excludedVertexCount = 0; +this.colorDensity = false; +this.pointSize = 0; +this.moleculeXml = null; +this.dataMin = 0; +this.dataMax = 0; +this.saveVertexCount = 0; +this.vertexColorMap = null; +this.nVertexColors = 0; +this.vertexColors = null; +this.color = null; +this.meshColor = null; +this.translucency = 0; +this.colorScheme = null; +this.rendering = null; +this.slabValue = -2147483648; +this.isSlabbable = false; +this.diameter = 0; +this.slabInfo = null; +this.allowVolumeRender = false; +this.voxelVolume = 0; +this.mapLattice = null; +this.fixedLattice = null; +this.baseColor = null; +this.integration = NaN; +this.sbOut = null; +Clazz.instantialize(this, arguments);}, J.jvxl.data, "JvxlData", null); +Clazz.prepareFields (c$, function(){ +this.jvxlExcluded = new Array(4); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.defineMethod(c$, "clear", +function(){ +this.allowVolumeRender = true; +this.jvxlSurfaceData = ""; +this.jvxlEdgeData = ""; +this.jvxlColorData = ""; +this.jvxlVolumeDataXml = ""; +this.color = null; +this.colorScheme = null; +this.colorDensity = false; +this.pointSize = NaN; +this.contourValues = null; +this.contourValuesUsed = null; +this.contourColixes = null; +this.contourColors = null; +this.integration = NaN; +this.isSlabbable = false; +this.isValid = true; +this.mapLattice = null; +this.meshColor = null; +this.msg = ""; +this.nPointsX = 0; +this.nVertexColors = 0; +this.fixedLattice = null; +this.slabInfo = null; +this.slabValue = -2147483648; +this.thisSet = null; +this.rendering = null; +this.thisContour = -1; +this.translucency = 0; +this.vContours = null; +this.vertexColorMap = null; +this.vertexColors = null; +this.voxelVolume = 0; +}); +Clazz.defineMethod(c$, "setSurfaceInfo", +function(thePlane, mapLattice, nSurfaceInts, surfaceData){ +this.jvxlSurfaceData = surfaceData; +this.jvxlPlane = thePlane; +this.mapLattice = mapLattice; +this.nSurfaceInts = nSurfaceInts; +}, "JU.P4,JU.P3,~N,~S"); +Clazz.defineMethod(c$, "setSurfaceInfoFromBitSet", +function(bs, thePlane){ +this.setSurfaceInfoFromBitSetPts(bs, thePlane, null); +}, "JU.BS,JU.P4"); +Clazz.defineMethod(c$, "setSurfaceInfoFromBitSetPts", +function(bs, thePlane, mapLattice){ +var sb = new JU.SB(); +var nSurfaceInts = (thePlane != null ? 0 : J.jvxl.data.JvxlCoder.jvxlEncodeBitSetBuffer(bs, this.nPointsX * this.nPointsY * this.nPointsZ, sb)); +this.setSurfaceInfo(thePlane, mapLattice, nSurfaceInts, sb.toString()); +}, "JU.BS,JU.P4,JU.P3"); +Clazz.defineMethod(c$, "jvxlUpdateInfo", +function(title, nBytes){ +this.title = title; +this.nBytes = nBytes; +}, "~A,~N"); +c$.updateSurfaceData = Clazz.defineMethod(c$, "updateSurfaceData", +function(edgeData, vertexValues, vertexCount, vertexIncrement, isNaN){ +if (edgeData.length == 0) return ""; +var chars = edgeData.toCharArray(); +for (var i = 0, ipt = 0; i < vertexCount; i += vertexIncrement, ipt++) if (Float.isNaN(vertexValues[i])) chars[ipt] = isNaN; + +return String.copyValueOf(chars); +}, "~S,~A,~N,~N,~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/MeshData.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/MeshData.js new file mode 100755 index 000000000000..9bf984722d96 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/MeshData.js @@ -0,0 +1,206 @@ +Clazz.declarePackage("J.jvxl.data"); +Clazz.load(["JU.MeshSurface"], "J.jvxl.data.MeshData", ["java.util.Arrays", "JU.AU", "$.BS", "$.V3", "JU.BSUtil"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.setsSuccessful = false; +this.vertexIncrement = 1; +this.polygonColorData = null; +if (!Clazz.isClassDefined("J.jvxl.data.MeshData.SSet")) { +J.jvxl.data.MeshData.$MeshData$SSet$ (); +} +if (!Clazz.isClassDefined("J.jvxl.data.MeshData.SortSet")) { +J.jvxl.data.MeshData.$MeshData$SortSet$ (); +} +Clazz.instantialize(this, arguments);}, J.jvxl.data, "MeshData", JU.MeshSurface); +Clazz.defineMethod(c$, "addVertexCopy", +function(vertex, value, assocVertex, asCopy){ +if (assocVertex < 0) this.vertexIncrement = -assocVertex; +return this.addVCVal(vertex, value, asCopy); +}, "JU.T3,~N,~N,~B"); +Clazz.defineMethod(c$, "getSurfaceSet", +function(){ +return (this.surfaceSet == null ? this.getSurfaceSetForLevel(0) : this.surfaceSet); +}); +Clazz.defineMethod(c$, "getSurfaceSetForLevel", +function(level){ +if (level == 0) { +this.surfaceSet = new Array(100); +this.nSets = 0; +}this.setsSuccessful = true; +for (var i = 0; i < this.pc; i++) if (this.pis[i] != null) { +if (this.bsSlabDisplay != null && !this.bsSlabDisplay.get(i)) continue; +var p = this.pis[i]; +var pt0 = this.findSet(p[0]); +var pt1 = this.findSet(p[1]); +var pt2 = this.findSet(p[2]); +if (pt0 < 0 && pt1 < 0 && pt2 < 0) { +this.createSet(p[0], p[1], p[2]); +continue; +}if (pt0 == pt1 && pt1 == pt2) continue; +if (pt0 >= 0) { +this.surfaceSet[pt0].set(p[1]); +this.surfaceSet[pt0].set(p[2]); +if (pt1 >= 0 && pt1 != pt0) this.mergeSets(pt0, pt1); +if (pt2 >= 0 && pt2 != pt0 && pt2 != pt1) this.mergeSets(pt0, pt2); +continue; +}if (pt1 >= 0) { +this.surfaceSet[pt1].set(p[0]); +this.surfaceSet[pt1].set(p[2]); +if (pt2 >= 0 && pt2 != pt1) this.mergeSets(pt1, pt2); +continue; +}this.surfaceSet[pt2].set(p[0]); +this.surfaceSet[pt2].set(p[1]); +} +var n = 0; +for (var i = 0; i < this.nSets; i++) if (this.surfaceSet[i] != null) n++; + +var temp = new Array(this.surfaceSet.length); +n = 0; +for (var i = 0; i < this.nSets; i++) if (this.surfaceSet[i] != null) temp[n++] = this.surfaceSet[i]; + +this.nSets = n; +this.surfaceSet = temp; +if (!this.setsSuccessful && level < 2) this.getSurfaceSetForLevel(level + 1); +if (level == 0) { +var sets = new Array(this.nSets); +for (var i = 0; i < this.nSets; i++) sets[i] = Clazz.innerTypeInstance(J.jvxl.data.MeshData.SSet, this, null, this.surfaceSet[i]); + +java.util.Arrays.sort(sets, Clazz.innerTypeInstance(J.jvxl.data.MeshData.SortSet, this, null)); +for (var i = 0; i < this.nSets; i++) this.surfaceSet[i] = sets[i].bs; + +this.setVertexSets(false); +}return this.surfaceSet; +}, "~N"); +Clazz.defineMethod(c$, "setVertexSets", +function(onlyIfNull){ +if (this.surfaceSet == null) return; +var nNull = 0; +for (var i = 0; i < this.nSets; i++) { +if (this.surfaceSet[i] != null && this.surfaceSet[i].nextSetBit(0) < 0) this.surfaceSet[i] = null; +if (this.surfaceSet[i] == null) nNull++; +} +if (nNull > 0) { +var bsNew = new Array(this.nSets - nNull); +for (var i = 0, n = 0; i < this.nSets; i++) if (this.surfaceSet[i] != null) bsNew[n++] = this.surfaceSet[i]; + +this.surfaceSet = bsNew; +this.nSets -= nNull; +} else if (onlyIfNull) { +return; +}this.vertexSets = Clazz.newIntArray (this.vc, 0); +for (var i = 0; i < this.nSets; i++) for (var j = this.surfaceSet[i].nextSetBit(0); j >= 0; j = this.surfaceSet[i].nextSetBit(j + 1)) this.vertexSets[j] = i; + + +}, "~B"); +Clazz.defineMethod(c$, "findSet", +function(vertex){ +for (var i = 0; i < this.nSets; i++) if (this.surfaceSet[i] != null && this.surfaceSet[i].get(vertex)) return i; + +return -1; +}, "~N"); +Clazz.defineMethod(c$, "createSet", +function(v1, v2, v3){ +var i; +for (i = 0; i < this.nSets; i++) if (this.surfaceSet[i] == null) break; + +if (i == this.surfaceSet.length) this.surfaceSet = JU.AU.ensureLength(this.surfaceSet, this.surfaceSet.length + 100); +this.surfaceSet[i] = new JU.BS(); +this.surfaceSet[i].set(v1); +this.surfaceSet[i].set(v2); +this.surfaceSet[i].set(v3); +if (i == this.nSets) this.nSets++; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "mergeSets", +function(a, b){ +this.surfaceSet[a].or(this.surfaceSet[b]); +this.surfaceSet[b] = null; +}, "~N,~N"); +Clazz.defineMethod(c$, "invalidateSurfaceSet", +function(i){ +for (var j = this.surfaceSet[i].nextSetBit(0); j >= 0; j = this.surfaceSet[i].nextSetBit(j + 1)) this.vvs[j] = NaN; + +this.surfaceSet[i] = null; +}, "~N"); +c$.checkCutoff = Clazz.defineMethod(c$, "checkCutoff", +function(iA, iB, iC, vertexValues){ +if (iA < 0 || iB < 0 || iC < 0) return false; +var val1 = vertexValues[iA]; +var val2 = vertexValues[iB]; +var val3 = vertexValues[iC]; +return (val1 >= 0 && val2 >= 0 && val3 >= 0 || val1 <= 0 && val2 <= 0 && val3 <= 0); +}, "~N,~N,~N,~A"); +c$.calculateVolumeOrArea = Clazz.defineMethod(c$, "calculateVolumeOrArea", +function(m, thisSet, isArea, getSets){ +if (getSets || m.nSets <= 0) m.getSurfaceSet(); +var justOne = (thisSet != null && thisSet.cardinality() == 1); +var n = (justOne || m.nSets <= 0 ? 1 : m.nSets); +var v = Clazz.newDoubleArray (n, 0); +var vAB = new JU.V3(); +var vAC = new JU.V3(); +var vTemp = new JU.V3(); +for (var i = m.pc; --i >= 0; ) { +if (m.setABC(i) == null) continue; +var iSet = (m.nSets <= 0 ? 0 : m.vertexSets[m.iA]); +if (thisSet != null && !thisSet.get(iSet)) continue; +if (isArea) { +vAB.sub2(m.vs[m.iB], m.vs[m.iA]); +vAC.sub2(m.vs[m.iC], m.vs[m.iA]); +vTemp.cross(vAB, vAC); +v[justOne ? 0 : iSet] += vTemp.length(); +} else { +vAB.setT(m.vs[m.iB]); +vAC.setT(m.vs[m.iC]); +vTemp.cross(vAB, vAC); +vAC.setT(m.vs[m.iA]); +v[justOne ? 0 : iSet] += vAC.dot(vTemp); +}} +var factor = (isArea ? 2 : 6); +for (var i = 0; i < n; i++) v[i] /= factor; + +if (justOne) return Float.$valueOf(v[0]); +if (thisSet != null) { +thisSet.and(JU.BSUtil.newBitSet2(0, v.length)); +var v1 = Clazz.newDoubleArray (thisSet.cardinality(), 0); +for (var pt = 0, i = thisSet.nextSetBit(0); i >= 0; i = thisSet.nextSetBit(i + 1)) { +v1[pt++] = v[i]; +} +v = v1; +}return v; +}, "J.jvxl.data.MeshData,JU.BS,~B,~B"); +Clazz.defineMethod(c$, "updateInvalidatedVertices", +function(bs){ +bs.clearAll(); +for (var i = 0; i < this.vc; i += this.vertexIncrement) if (Float.isNaN(this.vvs[i])) bs.set(i); + +}, "JU.BS"); +Clazz.defineMethod(c$, "invalidateVertices", +function(bsInvalid){ +for (var i = bsInvalid.nextSetBit(0); i >= 0; i = bsInvalid.nextSetBit(i + 1)) this.vvs[i] = NaN; + +}, "JU.BS"); +c$.$MeshData$SSet$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +this.bs = null; +this.n = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.data.MeshData, "SSet", null); +Clazz.makeConstructor(c$, +function(bs){ +this.bs = bs; +this.n = bs.cardinality(); +}, "JU.BS"); +/*eoif4*/})(); +}; +c$.$MeshData$SortSet$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +Clazz.instantialize(this, arguments);}, J.jvxl.data.MeshData, "SortSet", null, java.util.Comparator); +Clazz.overrideMethod(c$, "compare", +function(o1, o2){ +return (o1.n > o2.n ? -1 : o1.n < o2.n ? 1 : 0); +}, "J.jvxl.data.MeshData.SSet,J.jvxl.data.MeshData.SSet"); +/*eoif4*/})(); +}; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/VolumeData.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/VolumeData.js new file mode 100755 index 000000000000..d2e049ddd658 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/data/VolumeData.js @@ -0,0 +1,384 @@ +Clazz.declarePackage("J.jvxl.data"); +Clazz.load(["JU.M3", "$.P3", "$.V3"], "J.jvxl.data.VolumeData", ["java.util.Hashtable", "JU.SB", "JU.Escape", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.sr = null; +this.doIterate = true; +this.volumetricOrigin = null; +this.origin = null; +this.volumetricVectors = null; +this.voxelCounts = null; +this.nPoints = 0; +this.voxelData = null; +this.voxelMap = null; +this.volumetricVectorLengths = null; +this.maxVectorLength = 0; +this.minToPlaneDistance = 0; +this.yzCount = 0; +this.unitVolumetricVectors = null; +this.volumetricMatrix = null; +this.inverseMatrix = null; +this.thePlane = null; +this.thePlaneNormalMag = 0; +this.ptXyzTemp = null; +this.xmlData = null; +this.mappingPlane = null; +this.mappingPlaneNormalMag = 0; +this.minGrid = 0; +this.maxGrid = 0; +this.voxelVolume = 0; +this.oabc = null; +this.isPeriodic = false; +this.isSquared = false; +this.edgeVector = null; +this.ptTemp = null; +Clazz.instantialize(this, arguments);}, J.jvxl.data, "VolumeData", null); +Clazz.prepareFields (c$, function(){ +this.volumetricOrigin = new JU.P3(); +this.origin = Clazz.newFloatArray (3, 0); +this.volumetricVectors = new Array(3); +this.voxelCounts = Clazz.newIntArray (3, 0); +this.volumetricVectorLengths = Clazz.newFloatArray (3, 0); +this.unitVolumetricVectors = new Array(3); +this.volumetricMatrix = new JU.M3(); +this.inverseMatrix = new JU.M3(); +this.ptXyzTemp = new JU.P3(); +this.edgeVector = new JU.V3(); +this.ptTemp = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +this.volumetricVectors[0] = new JU.V3(); +this.volumetricVectors[1] = new JU.V3(); +this.volumetricVectors[2] = new JU.V3(); +this.unitVolumetricVectors[0] = new JU.V3(); +this.unitVolumetricVectors[1] = new JU.V3(); +this.unitVolumetricVectors[2] = new JU.V3(); +}); +Clazz.defineMethod(c$, "getVoxelData", +function(){ +return this.voxelData; +}); +Clazz.defineMethod(c$, "setVoxelDataAsArray", +function(voxelData){ +this.voxelData = voxelData; +if (voxelData != null) this.sr = null; +}, "~A"); +Clazz.defineMethod(c$, "hasPlane", +function(){ +return (this.thePlane != null); +}); +Clazz.defineMethod(c$, "setMappingPlane", +function(plane){ +this.mappingPlane = plane; +if (plane == null) return; +this.mappingPlaneNormalMag = Math.sqrt(plane.x * plane.x + plane.y * plane.y + plane.z * plane.z); +}, "JU.P4"); +Clazz.defineMethod(c$, "distanceToMappingPlane", +function(pt){ +return (this.mappingPlane.x * pt.x + this.mappingPlane.y * pt.y + this.mappingPlane.z * pt.z + this.mappingPlane.w) / this.mappingPlaneNormalMag; +}, "JU.T3"); +Clazz.defineMethod(c$, "setVolumetricOrigin", +function(x, y, z){ +this.volumetricOrigin.set(x, y, z); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "getOriginFloat", +function(){ +return this.origin; +}); +Clazz.defineMethod(c$, "getYzCount", +function(){ +this.minGrid = this.volumetricVectors[0].length(); +this.minGrid = Math.min(this.minGrid, this.volumetricVectors[1].length()); +this.minGrid = Math.min(this.minGrid, this.volumetricVectors[2].length()); +this.maxGrid = this.volumetricVectors[0].length(); +this.maxGrid = Math.max(this.maxGrid, this.volumetricVectors[1].length()); +this.maxGrid = Math.max(this.maxGrid, this.volumetricVectors[2].length()); +this.nPoints = this.voxelCounts[0] * this.voxelCounts[1] * this.voxelCounts[2]; +return this.yzCount = this.voxelCounts[1] * this.voxelCounts[2]; +}); +Clazz.defineMethod(c$, "getVolumetricVectorLengths", +function(){ +return this.volumetricVectorLengths; +}); +Clazz.defineMethod(c$, "setVolumetricVector", +function(i, x, y, z){ +this.volumetricVectors[i].x = x; +this.volumetricVectors[i].y = y; +this.volumetricVectors[i].z = z; +this.setUnitVectors(); +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "getVoxelCounts", +function(){ +return this.voxelCounts; +}); +Clazz.defineMethod(c$, "setVoxelCounts", +function(nPointsX, nPointsY, nPointsZ){ +this.voxelCounts[0] = nPointsX; +this.voxelCounts[1] = nPointsY; +this.voxelCounts[2] = nPointsZ; +return nPointsX * nPointsY * nPointsZ; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "getVoxelDataAt", +function(pt){ +var ix = Clazz.doubleToInt(pt / this.yzCount); +pt -= ix * this.yzCount; +var iy = Clazz.doubleToInt(pt / this.voxelCounts[2]); +var iz = pt - iy * this.voxelCounts[2]; +return this.voxelData[ix][iy][iz]; +}, "~N"); +Clazz.defineMethod(c$, "getPointIndex", +function(x, y, z){ +return x * this.yzCount + y * this.voxelCounts[2] + z; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "getPoint", +function(ipt, pt){ +var ix = Clazz.doubleToInt(ipt / this.yzCount); +ipt -= ix * this.yzCount; +var iy = Clazz.doubleToInt(ipt / this.voxelCounts[2]); +var iz = ipt - iy * this.voxelCounts[2]; +this.voxelPtToXYZ(ix, iy, iz, pt); +}, "~N,JU.P3"); +Clazz.defineMethod(c$, "setVoxelData", +function(pt, value){ +var ix = Clazz.doubleToInt(pt / this.yzCount); +pt -= ix * this.yzCount; +var iy = Clazz.doubleToInt(pt / this.voxelCounts[2]); +var iz = pt - iy * this.voxelCounts[2]; +this.voxelData[ix][iy][iz] = value; +}, "~N,~N"); +Clazz.defineMethod(c$, "setVoxelMap", +function(){ +this.voxelMap = new java.util.Hashtable(); +this.getYzCount(); +}); +Clazz.defineMethod(c$, "setMatrix", +function(){ +for (var i = 0; i < 3; i++) this.volumetricMatrix.setColumnV(i, this.volumetricVectors[i]); + +try { +this.inverseMatrix.invertM(this.volumetricMatrix); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("VolumeData error setting matrix -- bad unit vectors? "); +return false; +} else { +throw e; +} +} +return true; +}); +Clazz.defineMethod(c$, "transform", +function(v1, v2){ +this.volumetricMatrix.rotate2(v1, v2); +}, "JU.V3,JU.V3"); +Clazz.defineMethod(c$, "setPlaneParameters", +function(plane){ +this.thePlane = plane; +this.thePlaneNormalMag = Math.sqrt(plane.x * plane.x + plane.y * plane.y + plane.z * plane.z); +}, "JU.P4"); +Clazz.defineMethod(c$, "calcVoxelPlaneDistance", +function(x, y, z){ +this.voxelPtToXYZ(x, y, z, this.ptXyzTemp); +return this.distancePointToPlane(this.ptXyzTemp); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "getToPlaneParameter", +function(){ +return (Math.sqrt(this.thePlane.x * this.thePlane.x + this.thePlane.y * this.thePlane.y + this.thePlane.z * this.thePlane.z) * this.minToPlaneDistance); +}); +Clazz.defineMethod(c$, "isNearPlane", +function(x, y, z, toPlaneParameter){ +this.voxelPtToXYZ(x, y, z, this.ptXyzTemp); +return ((this.thePlane.x * this.ptXyzTemp.x + this.thePlane.y * this.ptXyzTemp.y + this.thePlane.z * this.ptXyzTemp.z + this.thePlane.w) < toPlaneParameter); +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "distancePointToPlane", +function(pt){ +return (this.thePlane.x * pt.x + this.thePlane.y * pt.y + this.thePlane.z * pt.z + this.thePlane.w) / this.thePlaneNormalMag; +}, "JU.T3"); +Clazz.defineMethod(c$, "voxelPtToXYZ", +function(x, y, z, pt){ +pt.scaleAdd2(x, this.volumetricVectors[0], this.volumetricOrigin); +pt.scaleAdd2(y, this.volumetricVectors[1], pt); +pt.scaleAdd2(z, this.volumetricVectors[2], pt); +}, "~N,~N,~N,JU.T3"); +Clazz.defineMethod(c$, "setUnitVectors", +function(){ +this.maxVectorLength = 0; +this.voxelVolume = 1; +for (var i = 0; i < 3; i++) { +var d = this.volumetricVectorLengths[i] = this.volumetricVectors[i].length(); +if (d == 0) return false; +if (d > this.maxVectorLength) this.maxVectorLength = d; +this.voxelVolume *= d; +this.unitVolumetricVectors[i].setT(this.volumetricVectors[i]); +this.unitVolumetricVectors[i].normalize(); +} +this.minToPlaneDistance = this.maxVectorLength * 2; +this.origin[0] = this.volumetricOrigin.x; +this.origin[1] = this.volumetricOrigin.y; +this.origin[2] = this.volumetricOrigin.z; +this.oabc = new Array(4); +this.oabc[0] = JU.V3.newV(this.volumetricOrigin); +for (var i = 0; i < 3; i++) { +var v = this.oabc[i + 1] = new JU.V3(); +v.scaleAdd2(this.voxelCounts[i] - 1, this.volumetricVectors[i], v); +} +return this.setMatrix(); +}); +Clazz.defineMethod(c$, "xyzToVoxelPt", +function(x, y, z, pt3i){ +this.ptXyzTemp.set(x, y, z); +this.ptXyzTemp.sub(this.volumetricOrigin); +this.inverseMatrix.rotate(this.ptXyzTemp); +pt3i.set(Math.round(this.ptXyzTemp.x), Math.round(this.ptXyzTemp.y), Math.round(this.ptXyzTemp.z)); +}, "~N,~N,~N,JU.T3i"); +Clazz.defineMethod(c$, "lookupInterpolatedVoxelValue", +function(point, getSource){ +if (this.mappingPlane != null) return this.distanceToMappingPlane(point); +if (this.sr != null) { +var v = this.sr.getValueAtPoint(point, getSource); +return (this.isSquared ? v * v : v); +}this.ptXyzTemp.sub2(point, this.volumetricOrigin); +this.inverseMatrix.rotate(this.ptXyzTemp); +var iMax; +var xLower = this.indexLower(this.ptXyzTemp.x, iMax = this.voxelCounts[0] - 1); +var xUpper = this.indexUpper(this.ptXyzTemp.x, xLower, iMax); +var yLower = this.indexLower(this.ptXyzTemp.y, iMax = this.voxelCounts[1] - 1); +var yUpper = this.indexUpper(this.ptXyzTemp.y, yLower, iMax); +var zLower = this.indexLower(this.ptXyzTemp.z, iMax = this.voxelCounts[2] - 1); +var zUpper = this.indexUpper(this.ptXyzTemp.z, zLower, iMax); +var v1 = J.jvxl.data.VolumeData.getFractional2DValue(this.mantissa(this.ptXyzTemp.x - xLower), this.mantissa(this.ptXyzTemp.y - yLower), this.getVoxelValue(xLower, yLower, zLower), this.getVoxelValue(xUpper, yLower, zLower), this.getVoxelValue(xLower, yUpper, zLower), this.getVoxelValue(xUpper, yUpper, zLower)); +var v2 = J.jvxl.data.VolumeData.getFractional2DValue(this.mantissa(this.ptXyzTemp.x - xLower), this.mantissa(this.ptXyzTemp.y - yLower), this.getVoxelValue(xLower, yLower, zUpper), this.getVoxelValue(xUpper, yLower, zUpper), this.getVoxelValue(xLower, yUpper, zUpper), this.getVoxelValue(xUpper, yUpper, zUpper)); +return v1 + this.mantissa(this.ptXyzTemp.z - zLower) * (v2 - v1); +}, "JU.T3,~B"); +Clazz.defineMethod(c$, "mantissa", +function(f){ +return (this.isPeriodic ? f - Math.floor(f) : f); +}, "~N"); +Clazz.defineMethod(c$, "getVoxelValue", +function(x, y, z){ +if (this.voxelMap == null) return this.voxelData[x][y][z]; +var f = this.voxelMap.get(Integer.$valueOf(this.getPointIndex(x, y, z))); +return (f == null ? NaN : f.floatValue()); +}, "~N,~N,~N"); +c$.getFractional2DValue = Clazz.defineMethod(c$, "getFractional2DValue", +function(fx, fy, x11, x12, x21, x22){ +var v1 = x11 + fx * (x12 - x11); +var v2 = x21 + fx * (x22 - x21); +return v1 + fy * (v2 - v1); +}, "~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "indexLower", +function(x, xMax){ +if (this.isPeriodic && xMax > 0) { +while (x < 0) x += xMax; + +while (x >= xMax) x -= xMax; + +return Clazz.doubleToInt(Math.floor(x)); +}if (x < 0) return 0; +var floor = Clazz.doubleToInt(Math.floor(x)); +return (floor > xMax ? xMax : floor); +}, "~N,~N"); +Clazz.defineMethod(c$, "indexUpper", +function(x, xLower, xMax){ +return (!this.isPeriodic && x < 0 || xLower == xMax ? xLower : xLower + 1); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "offsetCenter", +function(center){ +var pt = new JU.P3(); +pt.scaleAdd2((this.voxelCounts[0] - 1) / 2, this.volumetricVectors[0], pt); +pt.scaleAdd2((this.voxelCounts[1] - 1) / 2, this.volumetricVectors[1], pt); +pt.scaleAdd2((this.voxelCounts[2] - 1) / 2, this.volumetricVectors[2], pt); +this.volumetricOrigin.sub2(center, pt); +}, "JU.P3"); +Clazz.defineMethod(c$, "setDataDistanceToPlane", +function(plane){ +this.setPlaneParameters(plane); +var nx = this.voxelCounts[0]; +var ny = this.voxelCounts[1]; +var nz = this.voxelCounts[2]; +this.voxelData = Clazz.newFloatArray (nx, ny, nz, 0); +for (var x = 0; x < nx; x++) for (var y = 0; y < ny; y++) for (var z = 0; z < nz; z++) this.voxelData[x][y][z] = this.calcVoxelPlaneDistance(x, y, z); + + + +}, "JU.P4"); +Clazz.defineMethod(c$, "filterData", +function(isSquared, invertCutoff){ +var doInvert = (!Float.isNaN(invertCutoff)); +if (this.sr != null) { +this.isSquared = isSquared; +return; +}var nx = this.voxelCounts[0]; +var ny = this.voxelCounts[1]; +var nz = this.voxelCounts[2]; +if (isSquared) for (var x = 0; x < nx; x++) for (var y = 0; y < ny; y++) for (var z = 0; z < nz; z++) this.voxelData[x][y][z] *= this.voxelData[x][y][z]; + + + +if (doInvert) for (var x = 0; x < nx; x++) for (var y = 0; y < ny; y++) for (var z = 0; z < nz; z++) this.voxelData[x][y][z] = invertCutoff - this.voxelData[x][y][z]; + + + +}, "~B,~N"); +Clazz.defineMethod(c$, "capData", +function(plane, cutoff){ +if (this.voxelData == null) return; +var nx = this.voxelCounts[0]; +var ny = this.voxelCounts[1]; +var nz = this.voxelCounts[2]; +var normal = JU.V3.new3(plane.x, plane.y, plane.z); +normal.normalize(); +var f = 1; +for (var x = 0; x < nx; x++) for (var y = 0; y < ny; y++) for (var z = 0; z < nz; z++) { +var value = this.voxelData[x][y][z] - cutoff; +this.voxelPtToXYZ(x, y, z, this.ptXyzTemp); +var d = (this.ptXyzTemp.x * normal.x + this.ptXyzTemp.y * normal.y + this.ptXyzTemp.z * normal.z + plane.w - cutoff) / f; +if (d >= 0 || d > value) this.voxelData[x][y][z] = d; +} + + +}, "JU.P4,~N"); +Clazz.defineMethod(c$, "setVolumetricXml", +function(){ +var sb = new JU.SB(); +if (this.voxelCounts[0] == 0) { +sb.append("= 0; j = bs.nextSetBit(j + 1)) s += "," + (j + offset); + +var na = bs.cardinality(); +nH += na; +info = JU.PT.rep(info, "%ATOMS%", s.substring(1)); +info = JU.PT.rep(info, "%S%", (na == 1 ? "" : "s")); +info = JU.PT.rep(info, "%NATOMS%", "" + na); +}JU.Logger.info("adding PeakData " + info); +this.loader.addPeakData(info); +} +this.loader.setSpectrumPeaks(nH, this.piUnitsX, this.piUnitsY); +return n; +}, "JU.Lst,~N"); +Clazz.defineMethod(c$, "getStringInfo", +function(file, title, mytype, model, atoms, htSets, key, list, more){ +if ("HNMR".equals(mytype)) mytype = "1HNMR"; + else if ("CNMR".equals(mytype)) mytype = "13CNMR"; +var type = (mytype == null ? "" : " type=" + JU.PT.esc(mytype)); +if (title == null) title = ("1HNMR".equals(mytype) ? "atom%S%: %ATOMS%; integration: %NATOMS%" : ""); +title = " title=" + JU.PT.esc(title); +var stringInfo = " = 0) { +this.line = this.loader.discardLinesUntilContains(" \n"); +} else { +sb.append(" \n"); +for (var i = 0; i < 3; i++) sb.append(" \n"); +return this.xmlData = sb.toString(); +}); +Clazz.defineMethod(c$, "setVoxelMapValue", +function(x, y, z, v){ +if (this.voxelMap == null) return; +this.voxelMap.put(Integer.$valueOf(this.getPointIndex(x, y, z)), Float.$valueOf(v)); +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "calculateFractionalPoint", +function(cutoff, pointA, pointB, valueA, valueB, pt){ +var d = (valueB - valueA); +var fraction = (cutoff - valueA) / d; +this.edgeVector.sub2(pointB, pointA); +pt.scaleAdd2(fraction, this.edgeVector, pointA); +if (this.sr == null || !this.doIterate || valueB == valueA || fraction < 0.01 || fraction > 0.99 || (this.edgeVector.length()) < 0.01) return cutoff; +var n = 0; +this.ptTemp.setT(pt); +var v = this.lookupInterpolatedVoxelValue(this.ptTemp, false); +var v0 = NaN; +while (++n < 10) { +var fnew = (v - valueA) / d; +if (fnew < 0 || fnew > 1) break; +var diff = (cutoff - v) / d / 2; +fraction += diff; +if (fraction < 0 || fraction > 1) break; +pt.setT(this.ptTemp); +v0 = v; +if (Math.abs(diff) < 0.005) break; +this.ptTemp.scaleAdd2(diff, this.edgeVector, pt); +v = this.lookupInterpolatedVoxelValue(this.ptTemp, false); +} +return v0; +}, "~N,JU.P3,JU.P3,~N,~N,JU.P3"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/ApbsReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/ApbsReader.js new file mode 100755 index 000000000000..1cab0763172b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/ApbsReader.js @@ -0,0 +1,37 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader"], "J.jvxl.readers.ApbsReader", ["JU.PT", "$.SB"], function(){ +var c$ = Clazz.declareType(J.jvxl.readers, "ApbsReader", J.jvxl.readers.VolumeFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.ApbsReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2VFR(sg, br); +if (this.params.thePlane == null) this.params.insideOut = !this.params.insideOut; +this.isAngstroms = true; +this.nSurfaces = 1; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +this.jvxlFileHeaderBuffer = JU.SB.newS(this.skipComments(false)); +while (this.line != null && this.line.length == 0) this.rd(); + +this.jvxlFileHeaderBuffer.append("APBS OpenDx DATA ").append(this.line).append("\n"); +this.jvxlFileHeaderBuffer.append("see http://apbs.sourceforge.net\n"); +var atomLine = this.rd(); +var tokens = JU.PT.getTokens(atomLine); +if (tokens.length >= 4) { +this.volumetricOrigin.set(this.parseFloatStr(tokens[1]), this.parseFloatStr(tokens[2]), this.parseFloatStr(tokens[3])); +}J.jvxl.readers.VolumeFileReader.checkAtomLine(this.isXLowToHigh, this.isAngstroms, tokens[0], atomLine, this.jvxlFileHeaderBuffer); +this.readVoxelVector(0); +this.readVoxelVector(1); +this.readVoxelVector(2); +this.rd(); +tokens = this.getTokens(); +for (var i = 0; i < 3; i++) this.voxelCounts[i] = this.parseIntStr(tokens[i + 5]); + +this.rd(); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/AtomDataReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/AtomDataReader.js new file mode 100755 index 000000000000..3190055ceae3 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/AtomDataReader.js @@ -0,0 +1,378 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeDataReader", "JU.BS", "$.P3", "$.P3i", "J.atomdata.AtomData"], "J.jvxl.readers.AtomDataReader", ["java.util.Date", "JU.AU", "$.SB", "$.V3", "J.atomdata.RadiusData", "J.c.VDW", "J.jvxl.data.JvxlCoder", "JU.BSUtil", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.maxDistance = 0; +this.contactPair = null; +this.fileName = null; +this.fileDotModel = null; +this.modelIndex = 0; +this.atomData = null; +this.atomXyzTruncated = null; +this.atomRadius = null; +this.atomProp = null; +this.atomNo = null; +this.atomIndex = null; +this.myIndex = null; +this.ac = 0; +this.myAtomCount = 0; +this.nearbyAtomCount = 0; +this.firstNearbyAtom = 0; +this.bsMySelected = null; +this.bsMyIgnored = null; +this.bsNearby = null; +this.doAddHydrogens = false; +this.havePlane = false; +this.doUseIterator = false; +this.theProperty = 0; +this.haveOneProperty = false; +this.minPtsPerAng = 0; +this.sr = 0; +this.rs = null; +this.rs2 = null; +this.maxRS = 0; +this.thisPlane = null; +this.thisAtomSet = null; +this.thisX = 0; +this.margin = 0; +this.vl0 = 0; +this.vl1 = 0; +this.vl2 = 0; +this.bsSurfaceVoxels = null; +this.validSpheres = null; +this.noFaceSpheres = null; +this.voxelSource = null; +this.ptY0 = null; +this.ptZ0 = null; +this.pt0 = null; +this.pt1 = null; +this.ptV = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "AtomDataReader", J.jvxl.readers.VolumeDataReader); +Clazz.prepareFields (c$, function(){ +this.atomData = new J.atomdata.AtomData(); +this.bsMySelected = new JU.BS(); +this.bsMyIgnored = new JU.BS(); +this.ptY0 = new JU.P3(); +this.ptZ0 = new JU.P3(); +this.pt0 = new JU.P3i(); +this.pt1 = new JU.P3i(); +this.ptV = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.AtomDataReader, []); +}); +Clazz.defineMethod(c$, "initADR", +function(sg){ +this.initVDR(sg); +this.precalculateVoxelData = true; +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +this.setup2(); +}, "~B"); +Clazz.defineMethod(c$, "setup2", +function(){ +this.contactPair = this.params.contactPair; +this.doAddHydrogens = (this.sg.atomDataServer != null && this.params.addHydrogens); +this.modelIndex = this.params.modelIndex; +if (this.params.bsIgnore != null) this.bsMyIgnored = this.params.bsIgnore; +if (this.params.volumeData != null) { +this.setVolumeDataV(this.params.volumeData); +this.setBBox(this.volumeData.volumetricOrigin, 0); +this.ptV.setT(this.volumeData.volumetricOrigin); +for (var i = 0; i < 3; i++) this.ptV.scaleAdd2(this.volumeData.voxelCounts[i] - 1, this.volumeData.volumetricVectors[i], this.ptV); + +this.setBBox(this.ptV, 0); +}this.havePlane = (this.params.thePlane != null); +if (this.havePlane) this.volumeData.setPlaneParameters(this.params.thePlane); +}); +Clazz.defineMethod(c$, "markPlaneVoxels", +function(p, r){ +for (var i = 0, pt = this.thisX * this.yzCount, pt1 = pt + this.yzCount; pt < pt1; pt++, i++) { +this.volumeData.getPoint(pt, this.ptV); +this.thisPlane[i] = this.ptV.distance(p) - r; +} +}, "JU.P3,~N"); +Clazz.defineMethod(c$, "setVolumeForPlane", +function(){ +if (this.useOriginStepsPoints) { +this.xyzMin = JU.P3.newP(this.params.origin); +this.xyzMax = JU.P3.newP(this.params.origin); +this.xyzMax.add3((this.params.points.x - 1) * this.params.steps.x, (this.params.points.y - 1) * this.params.steps.y, (this.params.points.z - 1) * this.params.steps.z); +} else if (this.params.boundingBox == null) { +this.getAtoms(this.params.bsSelected, false, true, false, false, false, false, this.params.mep_marginAngstroms, this.params.modelInvRotation); +if (this.xyzMin == null) { +this.xyzMin = JU.P3.new3(-10, -10, -10); +this.xyzMax = JU.P3.new3(10, 10, 10); +}} else { +this.xyzMin = JU.P3.newP(this.params.boundingBox[0]); +this.xyzMax = JU.P3.newP(this.params.boundingBox[1]); +}this.setRanges(this.params.plane_ptsPerAngstrom, this.params.plane_gridMax, 0); +}); +Clazz.defineMethod(c$, "getAtoms", +function(bsSelected, doAddHydrogens, getRadii, getMolecules, getAllModels, addNearbyAtoms, getAtomMinMax, marginAtoms, modelInvRotation){ +if (addNearbyAtoms) getRadii = true; +if (getRadii) { +if (this.params.atomRadiusData == null) this.params.atomRadiusData = new J.atomdata.RadiusData(null, 1, J.atomdata.RadiusData.EnumType.FACTOR, J.c.VDW.AUTO); +this.atomData.radiusData = this.params.atomRadiusData; +this.atomData.radiusData.valueExtended = this.params.solventExtendedAtomRadius; +if (doAddHydrogens) this.atomData.radiusData.vdwType = J.c.VDW.NOJMOL; +}this.atomData.modelIndex = this.modelIndex; +this.atomData.bsSelected = bsSelected; +this.atomData.bsIgnored = this.bsMyIgnored; +this.sg.fillAtomData(this.atomData, 1 | (getAllModels ? 16 : 0) | (getMolecules ? 4 : 0) | (getRadii ? 2 : 0)); +if (this.doUseIterator) this.atomData.bsSelected = null; +this.ac = this.atomData.ac; +this.modelIndex = this.atomData.firstModelIndex; +if (modelInvRotation != null) this.atomData.transformXYZ(modelInvRotation, bsSelected); +var needRadius = false; +for (var i = 0; i < this.ac; i++) { +if ((bsSelected == null || bsSelected.get(i)) && (!this.bsMyIgnored.get(i))) { +if (this.havePlane && Math.abs(this.volumeData.distancePointToPlane(this.atomData.xyz[i])) > 2 * (this.atomData.atomRadius[i] = this.getWorkingRadius(i, marginAtoms))) continue; +this.bsMySelected.set(i); +needRadius = !this.havePlane; +}if (getRadii && (addNearbyAtoms || needRadius)) this.atomData.atomRadius[i] = this.getWorkingRadius(i, marginAtoms); +} +var rH = (getRadii && doAddHydrogens ? this.getWorkingRadius(-1, marginAtoms) : 0); +this.myAtomCount = JU.BSUtil.cardinalityOf(this.bsMySelected); +var atomSet = JU.BSUtil.copy(this.bsMySelected); +var nH = 0; +this.atomProp = null; +this.theProperty = 3.4028235E38; +this.haveOneProperty = false; +var props = this.params.theProperty; +if (this.myAtomCount > 0) { +var hAtoms = null; +if (doAddHydrogens) { +this.atomData.bsSelected = atomSet; +this.sg.atomDataServer.fillAtomData(this.atomData, 8); +hAtoms = new Array(nH = this.atomData.hydrogenAtomCount); +for (var i = 0; i < this.atomData.hAtoms.length; i++) if (this.atomData.hAtoms[i] != null) for (var j = this.atomData.hAtoms[i].length; --j >= 0; ) hAtoms[--nH] = this.atomData.hAtoms[i][j]; + + +nH = hAtoms.length; +JU.Logger.info(nH + " attached hydrogens added"); +}var n = nH + this.myAtomCount; +if (getRadii) this.atomRadius = Clazz.newFloatArray (n, 0); +this.atomXyzTruncated = new Array(n); +if (this.params.theProperty != null) this.atomProp = Clazz.newFloatArray (n, 0); +this.atomNo = Clazz.newIntArray (n, 0); +this.atomIndex = Clazz.newIntArray (n, 0); +this.myIndex = Clazz.newIntArray (this.ac, 0); +for (var i = 0; i < nH; i++) { +if (getRadii) this.atomRadius[i] = rH; +this.atomXyzTruncated[i] = hAtoms[i]; +this.atomNo[i] = -1; +if (this.atomProp != null) this.addAtomProp(i, NaN); +} +this.myAtomCount = nH; +for (var i = atomSet.nextSetBit(0); i >= 0; i = atomSet.nextSetBit(i + 1)) { +if (this.atomProp != null) this.addAtomProp(this.myAtomCount, (props != null && i < props.length ? props[i] : NaN)); +this.atomXyzTruncated[this.myAtomCount] = this.atomData.xyz[i]; +this.atomNo[this.myAtomCount] = this.atomData.atomicNumber[i]; +this.atomIndex[this.myAtomCount] = i; +this.myIndex[i] = this.myAtomCount; +if (getRadii) this.atomRadius[this.myAtomCount] = this.atomData.atomRadius[i]; +this.myAtomCount++; +} +}this.firstNearbyAtom = this.myAtomCount; +if (!this.isQuiet) JU.Logger.info(this.myAtomCount + " atoms will be used in the surface calculation"); +if (this.myAtomCount == 0) { +this.setBBox(JU.P3.new3(10, 10, 10), 0); +this.setBBox(JU.P3.new3(-10, -10, -10), 0); +}for (var i = 0; i < this.myAtomCount; i++) this.setBBox(this.atomXyzTruncated[i], getRadii ? this.atomRadius[i] + 0.5 : 0); + +if (!Float.isNaN(this.params.scale)) { +var v = JU.V3.newVsub(this.xyzMax, this.xyzMin); +v.scale(0.5); +this.xyzMin.add(v); +v.scale(this.params.scale); +this.xyzMax.add2(this.xyzMin, v); +this.xyzMin.sub(v); +}if (!addNearbyAtoms || this.myAtomCount == 0) return; +var pt = new JU.P3(); +this.bsNearby = new JU.BS(); +for (var i = 0; i < this.ac; i++) { +if (atomSet.get(i) || this.bsMyIgnored.get(i)) continue; +var rA = this.atomData.atomRadius[i]; +if (this.params.thePlane != null && Math.abs(this.volumeData.distancePointToPlane(this.atomData.xyz[i])) > 2 * rA) continue; +if (this.params.theProperty != null) rA += this.maxDistance; +pt = this.atomData.xyz[i]; +if (pt.x + rA > this.xyzMin.x && pt.x - rA < this.xyzMax.x && pt.y + rA > this.xyzMin.y && pt.y - rA < this.xyzMax.y && pt.z + rA > this.xyzMin.z && pt.z - rA < this.xyzMax.z) { +this.bsNearby.set(i); +this.nearbyAtomCount++; +}} +var nAtoms = this.myAtomCount; +if (this.nearbyAtomCount != 0) { +nAtoms += this.nearbyAtomCount; +this.atomRadius = JU.AU.arrayCopyF(this.atomRadius, nAtoms); +this.atomXyzTruncated = JU.AU.arrayCopyObject(this.atomXyzTruncated, nAtoms); +if (this.atomIndex != null) this.atomIndex = JU.AU.arrayCopyI(this.atomIndex, nAtoms); +if (props != null) this.atomProp = JU.AU.arrayCopyF(this.atomProp, nAtoms); +for (var i = this.bsNearby.nextSetBit(0); i >= 0; i = this.bsNearby.nextSetBit(i + 1)) { +if (props != null) this.addAtomProp(this.myAtomCount, props[i]); +this.myIndex[i] = this.myAtomCount; +this.atomIndex[this.myAtomCount] = i; +this.atomXyzTruncated[this.myAtomCount] = this.atomData.xyz[i]; +this.atomRadius[this.myAtomCount++] = this.atomData.atomRadius[i]; +} +}if (getRadii) this.setRadii(); +this.haveOneProperty = (!Float.isNaN(this.theProperty)); +}, "JU.BS,~B,~B,~B,~B,~B,~B,~N,JU.M4"); +Clazz.defineMethod(c$, "setRadii", +function(){ +if (this.rs != null) return; +this.maxRS = 0; +this.rs = Clazz.newFloatArray (this.myAtomCount, 0); +this.rs2 = Clazz.newFloatArray (this.myAtomCount, 0); +for (var i = 0; i < this.myAtomCount; i++) { +var r = this.rs[i] = this.atomRadius[i] + this.sr; +if (r > this.maxRS) this.maxRS = r; +this.rs2[i] = this.rs[i] * this.rs[i]; +} +}); +Clazz.defineMethod(c$, "addAtomProp", +function(i, f){ +this.atomProp[i] = f; +if (!Float.isNaN(this.theProperty)) if (f != this.theProperty) this.theProperty = (this.theProperty == 3.4028235E38 ? f : NaN); +}, "~N,~N"); +Clazz.defineMethod(c$, "getWorkingRadius", +function(i, marginAtoms){ +var r = (i < 0 ? this.atomData.hAtomRadius : this.atomData.atomRadius[i]); +return (Float.isNaN(marginAtoms) ? Math.max(r, 0.1) : r + marginAtoms); +}, "~N,~N"); +Clazz.defineMethod(c$, "setHeader", +function(calcType, line2){ +this.jvxlFileHeaderBuffer = new JU.SB(); +if (this.atomData.programInfo != null) this.jvxlFileHeaderBuffer.append("#created by ").append(this.atomData.programInfo).append(" on ").append("" + new java.util.Date()).append("\n"); +this.jvxlFileHeaderBuffer.append(calcType).append("\n").append(line2).append("\n"); +}, "~S,~S"); +Clazz.defineMethod(c$, "setRanges", +function(ptsPerAngstrom, maxGrid, minPtsPerAng){ +if (this.xyzMin == null) return; +this.ptsPerAngstrom = ptsPerAngstrom; +this.maxGrid = maxGrid; +this.minPtsPerAng = minPtsPerAng; +this.setVolumeData(); +J.jvxl.data.JvxlCoder.jvxlCreateHeader(this.volumeData, this.jvxlFileHeaderBuffer); +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "setVolumeData", +function(){ +this.setVolumeDataADR(); +}); +Clazz.defineMethod(c$, "setVolumeDataADR", +function(){ +if (!this.setVolumeDataParams()) { +this.setVoxelRange(0, this.xyzMin.x, this.xyzMax.x, this.ptsPerAngstrom, this.maxGrid, this.minPtsPerAng); +this.setVoxelRange(1, this.xyzMin.y, this.xyzMax.y, this.ptsPerAngstrom, this.maxGrid, this.minPtsPerAng); +this.setVoxelRange(2, this.xyzMin.z, this.xyzMax.z, this.ptsPerAngstrom, this.maxGrid, this.minPtsPerAng); +}}); +Clazz.defineMethod(c$, "setVertexSource", +function(){ +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 1, null); +if (this.params.vertexSource != null) { +this.params.vertexSource = JU.AU.arrayCopyI(this.params.vertexSource, this.meshData.vc); +for (var i = 0; i < this.meshData.vc; i++) this.params.vertexSource[i] = Math.abs(this.params.vertexSource[i]) - 1; + +}}); +Clazz.defineMethod(c$, "resetPlane", +function(value){ +for (var i = 0; i < this.yzCount; i++) this.thisPlane[i] = value; + +}, "~N"); +Clazz.defineMethod(c$, "resetVoxelData", +function(value){ +for (var x = 0; x < this.nPointsX; ++x) for (var y = 0; y < this.nPointsY; ++y) for (var z = 0; z < this.nPointsZ; ++z) this.voxelData[x][y][z] = value; + + + +}, "~N"); +Clazz.defineMethod(c$, "getVoxel", +function(i, j, k, ipt){ +return (this.isProgressive ? this.thisPlane[ipt % this.yzCount] : this.voxelData[i][j][k]); +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "unsetVoxelData", +function(){ +this.unsetVoxelData2(); +}); +Clazz.defineMethod(c$, "unsetVoxelData2", +function(){ +if (this.isProgressive) for (var i = 0; i < this.yzCount; i++) { +if (this.thisPlane[i] == 3.4028235E38) this.thisPlane[i] = NaN; +} + else for (var x = 0; x < this.nPointsX; ++x) for (var y = 0; y < this.nPointsY; ++y) for (var z = 0; z < this.nPointsZ; ++z) if (this.voxelData[x][y][z] == 3.4028235E38) this.voxelData[x][y][z] = NaN; + + + +}); +Clazz.defineMethod(c$, "setGridLimitsForAtom", +function(ptA, rA, pt0, pt1){ +rA += this.margin; +this.volumeData.xyzToVoxelPt(ptA.x, ptA.y, ptA.z, pt0); +var x = Clazz.doubleToInt(Math.floor(rA / this.volumeData.volumetricVectorLengths[0])); +var y = Clazz.doubleToInt(Math.floor(rA / this.volumeData.volumetricVectorLengths[1])); +var z = Clazz.doubleToInt(Math.floor(rA / this.volumeData.volumetricVectorLengths[2])); +pt1.set(pt0.x + x, pt0.y + y, pt0.z + z); +pt0.set(pt0.x - x, pt0.y - y, pt0.z - z); +pt0.x = Math.max(pt0.x - 1, 0); +pt0.y = Math.max(pt0.y - 1, 0); +pt0.z = Math.max(pt0.z - 1, 0); +pt1.x = Math.min(pt1.x + 1, this.nPointsX); +pt1.y = Math.min(pt1.y + 1, this.nPointsY); +pt1.z = Math.min(pt1.z + 1, this.nPointsZ); +}, "JU.P3,~N,JU.P3i,JU.P3i"); +Clazz.defineMethod(c$, "getAtomMinMax", +function(bs, bsAtomMinMax){ +for (var i = 0; i < this.nPointsX; i++) bsAtomMinMax[i] = new JU.BS(); + +for (var iAtom = this.myAtomCount; --iAtom >= 0; ) { +if (bs != null && !bs.get(iAtom)) continue; +this.setGridLimitsForAtom(this.atomXyzTruncated[iAtom], this.atomRadius[iAtom], this.pt0, this.pt1); +for (var i = this.pt0.x; i < this.pt1.x; i++) bsAtomMinMax[i].set(iAtom); + +} +}, "JU.BS,~A"); +Clazz.defineMethod(c$, "markSphereVoxels", +function(r0, distance){ +var isWithin = (distance != 3.4028235E38 && this.point != null); +var v0 = this.volumetricVectors[0]; +var v1 = this.volumetricVectors[1]; +var v2 = this.volumetricVectors[2]; +for (var iAtom = this.thisAtomSet.nextSetBit(0); iAtom >= 0; iAtom = this.thisAtomSet.nextSetBit(iAtom + 1)) { +if (!this.havePlane && this.validSpheres != null && !this.validSpheres.get(iAtom)) continue; +var isSurface = (this.noFaceSpheres != null && this.noFaceSpheres.get(iAtom)); +var isNearby = (iAtom >= this.firstNearbyAtom); +var ptA = this.atomXyzTruncated[iAtom]; +var rA = this.atomRadius[iAtom]; +if (isWithin && ptA.distance(this.point) > distance + rA + 0.5) continue; +var rA0 = rA + r0; +this.setGridLimitsForAtom(ptA, rA0, this.pt0, this.pt1); +if (this.isProgressive) { +this.pt0.x = this.thisX; +this.pt1.x = this.thisX + 1; +}this.volumeData.voxelPtToXYZ(this.pt0.x, this.pt0.y, this.pt0.z, this.ptV); +for (var i = this.pt0.x; i < this.pt1.x; i++, this.ptV.add2(v0, this.ptY0)) { +this.ptY0.setT(this.ptV); +for (var j = this.pt0.y; j < this.pt1.y; j++, this.ptV.add2(v1, this.ptZ0)) { +this.ptZ0.setT(this.ptV); +for (var k = this.pt0.z; k < this.pt1.z; k++, this.ptV.add(v2)) { +var value = this.ptV.distance(ptA) - rA; +var ipt = this.volumeData.getPointIndex(i, j, k); +if ((r0 == 0 || value <= rA0) && value < this.getVoxel(i, j, k, ipt)) { +if (isNearby || isWithin && this.ptV.distance(this.point) > distance) value = NaN; +this.setVoxel(i, j, k, ipt, value); +if (!Float.isNaN(value)) { +if (this.voxelSource != null) this.voxelSource[ipt] = iAtom + 1; +if (value < 0 && isSurface) this.bsSurfaceVoxels.set(ipt); +}}} +} +} +} +}, "~N,~N"); +Clazz.defineMethod(c$, "setVoxel", +function(i, j, k, ipt, value){ +if (this.isProgressive) this.thisPlane[ipt % this.yzCount] = value; + else this.voxelData[i][j][k] = value; +}, "~N,~N,~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/AtomPropertyMapper.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/AtomPropertyMapper.js new file mode 100755 index 000000000000..63a709f5f439 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/AtomPropertyMapper.js @@ -0,0 +1,118 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.AtomDataReader"], "J.jvxl.readers.AtomPropertyMapper", ["J.api.Interface", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.mepCalc = null; +this.mepType = null; +this.calcType = 0; +this.doSmoothProperty = false; +this.iter = null; +this.smoothingPower = 0; +this.iAtomSurface = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "AtomPropertyMapper", J.jvxl.readers.AtomDataReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.AtomPropertyMapper, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initADR(sg); +this.mepType = sg.getReaderData(); +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +this.setup2(); +this.haveSurfaceAtoms = true; +this.volumeData.sr = this; +this.volumeData.doIterate = false; +this.point = this.params.point; +this.doSmoothProperty = this.params.propertySmoothing; +this.doUseIterator = true; +if (this.doSmoothProperty) { +this.smoothingPower = this.params.propertySmoothingPower; +if (this.smoothingPower < 0) this.smoothingPower = 0; + else if (this.smoothingPower > 10) this.smoothingPower = 10; +if (this.smoothingPower == 0) this.doSmoothProperty = false; +this.smoothingPower = (this.smoothingPower - 11) / 2; +}this.maxDistance = this.params.propertyDistanceMax; +if (this.mepType != null) { +this.doSmoothProperty = true; +if (this.params.mep_calcType >= 0) this.calcType = this.params.mep_calcType; +this.mepCalc = J.api.Interface.getOption("quantum." + this.mepType + "Calculation", this.sg.atomDataServer, "file"); +}if (!this.doSmoothProperty && this.maxDistance == 2147483647) this.maxDistance = 5; +this.getAtoms(this.params.bsSelected, this.doAddHydrogens, true, false, false, true, false, NaN, null); +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 1, null); +if (!this.doSmoothProperty && this.meshData.vertexSource != null) { +this.hasColorData = true; +for (var i = this.meshData.vc; --i >= 0; ) { +var iAtom = this.meshData.vertexSource[i]; +if (iAtom >= 0) { +this.meshData.vvs[i] = this.params.theProperty[iAtom]; +} else { +this.hasColorData = false; +break; +}} +}this.setHeader("property", this.params.calculationType); +this.setRanges(this.params.solvent_ptsPerAngstrom, this.params.solvent_gridMax, 0); +this.params.cutoff = 0; +}, "~B"); +Clazz.overrideMethod(c$, "setVolumeData", +function(){ +if (this.params.thePlane != null) this.setVolumeDataADR(); +}); +Clazz.overrideMethod(c$, "initializeMapping", +function(){ +if (this.params.showTiming) JU.Logger.startTimer("property mapping"); +if (this.bsNearby != null) this.bsMySelected.or(this.bsNearby); +this.iter = this.sg.atomDataServer.getSelectedAtomIterator(this.bsMySelected, false, false, false); +}); +Clazz.overrideMethod(c$, "finalizeMapping", +function(){ +this.iter.release(); +this.iter = null; +if (this.params.showTiming) JU.Logger.checkTimer("property mapping", false); +}); +Clazz.overrideMethod(c$, "generateCube", +function(){ +}); +Clazz.overrideMethod(c$, "getSurfaceAtomIndex", +function(){ +return this.iAtomSurface; +}); +Clazz.overrideMethod(c$, "getValueAtPoint", +function(pt, getSource){ +if (this.haveOneProperty && !getSource) return this.theProperty; +var dmin = 3.4028235E38; +var dminNearby = 3.4028235E38; +var value = (this.doSmoothProperty ? 0 : NaN); +var vdiv = 0; +this.sg.atomDataServer.setIteratorForPoint(this.iter, this.modelIndex, pt, this.maxDistance); +this.iAtomSurface = -1; +while (this.iter.hasNext()) { +var ia = this.iter.next(); +var myAtom = this.myIndex[ia]; +var isNearby = (myAtom >= this.firstNearbyAtom); +var ptA = this.atomXyzTruncated[myAtom]; +var p = this.atomProp[myAtom]; +if (Float.isNaN(p)) continue; +var d2 = pt.distanceSquared(ptA); +if (isNearby) { +if (d2 < dminNearby) { +dminNearby = d2; +if (!this.doSmoothProperty && dminNearby < dmin) { +dmin = d2; +value = NaN; +}}} else if (d2 < dmin) { +dmin = d2; +this.iAtomSurface = ia; +if (!this.doSmoothProperty) value = p; +}if (this.mepCalc != null) { +value += this.mepCalc.valueFor(p, d2, this.calcType); +} else if (this.doSmoothProperty) { +d2 = Math.pow(d2, this.smoothingPower); +vdiv += d2; +value += d2 * p; +}} +return (this.mepCalc != null ? value : this.doSmoothProperty ? (vdiv == 0 || dminNearby < dmin ? NaN : value / vdiv) : value); +}, "JU.T3,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/BCifDensityReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/BCifDensityReader.js new file mode 100755 index 000000000000..0977489e3a9e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/BCifDensityReader.js @@ -0,0 +1,201 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.MapFileReader"], "J.jvxl.readers.BCifDensityReader", ["java.io.BufferedInputStream", "$.ByteArrayInputStream", "JU.AU", "$.BC", "$.MessagePackReader", "$.P3", "$.SB", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.header = null; +this.pt = 0; +this.checkSum = 0; +this.values = null; +this.cifData = null; +this.thisData = null; +this.isDiff = false; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "BCifDensityReader", J.jvxl.readers.MapFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.BCifDensityReader, []); +}); +Clazz.defineMethod(c$, "getCifData", +function(fileName, data){ +this.binarydoc = this.newBinaryDocument(); +if (JU.AU.isAB(data)) this.binarydoc.setStream( new java.io.BufferedInputStream( new java.io.ByteArrayInputStream(data)), true); + else this.setStream(fileName, true); +this.nSurfaces = 1; +}, "~S,~O"); +Clazz.defineMethod(c$, "readCifP3", +function(key, p3){ +if (p3 == null) p3 = new JU.P3(); +var x = this.getCifFloat(key + "[0]"); +if (Float.isNaN(x)) { +p3.x = NaN; +} else { +p3.x = x; +p3.y = this.getCifFloat(key + "[1]"); +p3.z = this.getCifFloat(key + "[2]"); +}return p3; +}, "~S,JU.P3"); +Clazz.defineMethod(c$, "getCifMap", +function(type){ +if (this.cifData == null) try { +this.cifData = ( new JU.MessagePackReader(this.binarydoc, true)).readMap(); +System.out.println("BCifDensityReader BCIF encoder " + this.cifData.get("encoder") + " BCIF version " + this.cifData.get("version")); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println("BCifDensityReader error " + e); +} else { +throw e; +} +} +var dataBlocks = this.cifData.get("dataBlocks"); +for (var i = dataBlocks.length; --i >= 0; ) { +var map = dataBlocks[i]; +this.header = map.get("header").toString(); +if ("EM".equals(this.header) || type.equalsIgnoreCase(this.header)) { +var categories = map.get("categories"); +for (var j = categories.length; --j >= 0; ) { +var cat = categories[j]; +var catName = cat.get("name"); +var columns = cat.get("columns"); +for (var k = columns.length; --k >= 0; ) { +var col = columns[k]; +map.put(catName + "_" + col.get("name"), col.get("data")); +} +} +map.remove("categories"); +return this.thisData = map; +}} +return null; +}, "~S"); +Clazz.defineMethod(c$, "getCifFloat", +function(key){ +var map = this.thisData.get(key); +var data = map.get("data"); +var encoding = (((map.get("encoding"))[0]).get("type")).intValue(); +var f = NaN; +try { +switch (encoding) { +case 3: +f = JU.BC.bytesToInt(data, 0, false); +break; +case 33: +f = JU.BC.bytesToDoubleToFloat(data, 0, false); +break; +default: +System.out.println("BCifDensityReader: Number encoding not recognized: " + encoding); +break; +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +} else { +throw e; +} +} +return f; +}, "~S"); +Clazz.defineMethod(c$, "readCifFloats", +function(key, values){ +var map = this.thisData.get(key); +var data = map.get("data"); +var encoding = (map.get("encoding"))[0]; +var min = (encoding.get("min")).floatValue(); +var max = (encoding.get("max")).floatValue(); +var numSteps = (encoding.get("numSteps")).intValue(); +var kind = encoding.get("kind"); +if ("IntervalQuantization".equals(kind)) { +var delta = (max - min) / (numSteps - 1); +for (var i = data.length; --i >= 0; ) { +values[i] = min + delta * ((data[i] + 256) % 256); +} +} else { +System.out.println("BCifDensityReader: value encoding type? " + kind); +}return values; +}, "~S,~A"); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.allowSigma = true; +this.init2MFR(sg, br); +var o2 = sg.getReaderData(); +var fileName = o2[0]; +var data = o2[1]; +this.isDiff = (fileName != null && fileName.indexOf("&diff=1") >= 0 || (typeof(data)=='string') && (data).indexOf("#diff=1") >= 0); +this.getCifData(fileName, data); +this.nSurfaces = 1; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +this.getCifMap(this.isDiff ? "FO-FC" : "2FO-FC"); +this.readCifP3("_volume_data_3d_info_axis_order", this.p3); +var axis_order = this.readCifP3("_volume_data_3d_info_axis_order", null); +var fracOrigin = this.readCifP3("_volume_data_3d_info_origin", null); +var fracDimensions = this.readCifP3("_volume_data_3d_info_dimensions", null); +var sampleCounts = this.readCifP3("_volume_data_3d_info_sample_count", this.p3); +this.mapc = Clazz.floatToInt(axis_order.x) + 1; +this.mapr = Clazz.floatToInt(axis_order.y) + 1; +this.maps = Clazz.floatToInt(axis_order.z) + 1; +var crs2abc = Clazz.newIntArray (3, 0); +crs2abc[this.mapc - 1] = 0; +crs2abc[this.mapr - 1] = 1; +crs2abc[this.maps - 1] = 2; +this.n0 = Clazz.floatToInt(sampleCounts.x); +this.n1 = Clazz.floatToInt(sampleCounts.y); +this.n2 = Clazz.floatToInt(sampleCounts.z); +this.na = Clazz.floatToInt(this.getXYZ(sampleCounts, crs2abc[0])); +this.nb = Clazz.floatToInt(this.getXYZ(sampleCounts, crs2abc[1])); +this.nc = Clazz.floatToInt(this.getXYZ(sampleCounts, crs2abc[2])); +this.readCifP3("_volume_data_3d_info_spacegroup_cell_size", this.p3); +this.a = this.p3.x; +this.b = this.p3.y; +this.c = this.p3.z; +var fa = this.getXYZ(fracDimensions, crs2abc[0]); +var fb = this.getXYZ(fracDimensions, crs2abc[1]); +var fc = this.getXYZ(fracDimensions, crs2abc[2]); +this.xyzStart[this.xIndex = 0] = this.getXYZ(fracOrigin, crs2abc[0]) * this.na / fa; +this.xyzStart[this.yIndex = 1] = this.getXYZ(fracOrigin, crs2abc[1]) * this.nb / fb; +this.xyzStart[this.zIndex = 2] = this.getXYZ(fracOrigin, crs2abc[2]) * this.nc / fc; +this.a *= fa; +this.b *= fb; +this.c *= fc; +this.readCifP3("_volume_data_3d_info_spacegroup_cell_angles", this.p3); +this.alpha = this.p3.x; +this.beta = this.p3.y; +this.gamma = this.p3.z; +this.values = this.readCifFloats("_volume_data_3d_values", Clazz.newFloatArray (this.na * this.nb * this.nc, 0)); +this.getVectorsAndOrigin(); +if (this.params.thePlane == null && (this.params.cutoffAutomatic || !Float.isNaN(this.params.sigma))) { +var sigma = (this.params.sigma < 0 || Float.isNaN(this.params.sigma) ? 1 : this.params.sigma); +this.dmean = this.getCifFloat("_volume_data_3d_info_mean_sampled"); +var rmsDeviation = this.getCifFloat("_volume_data_3d_info_sigma_sampled"); +this.params.cutoff = rmsDeviation * sigma + this.dmean; +JU.Logger.info("Cutoff set to (mean + rmsDeviation*" + sigma + " = " + this.params.cutoff + ")\n"); +}this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append("BCifDensity reader type=" + this.header + "\n"); +}); +Clazz.defineMethod(c$, "getXYZ", +function(a, x){ +switch (Clazz.floatToInt(x)) { +case 0: +return a.x; +case 1: +return a.y; +case 2: +default: +return a.z; +} +}, "JU.P3,~N"); +Clazz.overrideMethod(c$, "nextVoxel", +function(){ +var v = this.values[this.pt++]; +this.checkSum += v; +return v; +}); +Clazz.overrideMethod(c$, "skipData", +function(nPoints){ +this.pt += nPoints; +}, "~N"); +Clazz.defineMethod(c$, "closeReader", +function(){ +if (this.readerClosed) return; +System.out.println("CifDensityReader checkSum=" + this.checkSum); +Clazz.superCall(this, J.jvxl.readers.BCifDensityReader, "closeReader", []); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/CastepDensityReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/CastepDensityReader.js new file mode 100755 index 000000000000..3c59a6d2374d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/CastepDensityReader.js @@ -0,0 +1,87 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.PeriodicVolumeFileReader"], "J.jvxl.readers.CastepDensityReader", ["JU.PT", "$.SB"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.nFilePoints = 0; +this.nSkip = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "CastepDensityReader", J.jvxl.readers.PeriodicVolumeFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.CastepDensityReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2VFR(sg, br); +this.isProgressive = false; +this.isAngstroms = true; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "gotoData", +function(n, nPoints){ +this.nSkip = n; +}, "~N,~N"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +this.jvxlFileHeaderBuffer = new JU.SB(); +while (this.rd() != null && this.line.indexOf(".") < 0) { +} +for (var i = 0; i < 3; ++i) { +var voxelVector = this.volumetricVectors[i]; +voxelVector.set(this.parseFloatStr(this.line), this.parseFloat(), this.parseFloat()); +this.rd(); +} +this.nSurfaces = this.parseIntStr(this.rd()); +this.rd(); +this.voxelCounts[0] = (this.nPointsX = this.parseIntStr(this.line)) + 1; +this.voxelCounts[1] = (this.nPointsY = this.parseInt()) + 1; +this.voxelCounts[2] = (this.nPointsZ = this.parseInt()) + 1; +this.nFilePoints = (this.nPointsX++) * (this.nPointsY++) * (this.nPointsZ++); +this.volumetricOrigin.set(0, 0, 0); +for (var i = 0; i < 3; i++) { +this.volumetricVectors[i].scale(1 / (this.voxelCounts[i] - 1)); +if (this.isAnisotropic) this.setVectorAnisotropy(this.volumetricVectors[i]); +} +while (this.rd().trim().length > 0) { +} +}); +Clazz.overrideMethod(c$, "getPeriodicVoxels", +function(){ +this.rd(); +var tokens = this.getTokens(); +if (this.nSkip > 0 && tokens.length < 3 + this.nSurfaces) { +for (var j = 0; j < this.nSkip; j++) for (var i = 0; i < this.nFilePoints; i++) this.rd(); + + +this.nSkip = 0; +}var dsf = this.downsampleFactor; +if (dsf > 1) { +for (var i = 0; i < this.nFilePoints; i++) { +var x = this.parseIntStr(this.line) - 1; +var y = this.parseInt() - 1; +var z = this.parseInt() - 1; +if (x % dsf == 0 && y % dsf == 0 && z % dsf == 0) { +if (this.nSkip > 0) this.skipPoints(this.nSkip); +this.voxelData[Clazz.doubleToInt(x / dsf)][Clazz.doubleToInt(y / dsf)][Clazz.doubleToInt(z / dsf)] = this.recordData(this.parseFloat()); +}this.rd(); +} +} else { +for (var i = 0; i < this.nFilePoints; i++) { +var x = this.parseIntStr(this.line) - 1; +var y = this.parseInt() - 1; +var z = this.parseInt() - 1; +if (this.nSkip > 0) this.skipPoints(this.nSkip); +this.voxelData[x][y][z] = this.recordData(this.parseFloat()); +this.rd(); +} +}}); +Clazz.defineMethod(c$, "skipPoints", +function(n){ +var pt = this.next[0]; +for (var i = 0; i < n; i++) { +while (pt < this.line.length && JU.PT.isWhitespace(this.line.charAt(pt++))) { +} +while (pt < this.line.length && !JU.PT.isWhitespace(this.line.charAt(pt++))) { +} +} +this.next[0] = pt; +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/CifDensityReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/CifDensityReader.js new file mode 100755 index 000000000000..8d98c7691e58 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/CifDensityReader.js @@ -0,0 +1,53 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.BCifDensityReader"], "J.jvxl.readers.CifDensityReader", ["JU.P3", "$.PT"], function(){ +var c$ = Clazz.declareType(J.jvxl.readers, "CifDensityReader", J.jvxl.readers.BCifDensityReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.CifDensityReader, []); +}); +Clazz.overrideMethod(c$, "getCifData", +function(fileName, data){ +this.cifData = this.sg.atomDataServer.readCifData(fileName, data, "CIF"); +}, "~S,~O"); +Clazz.overrideMethod(c$, "readCifP3", +function(key, p3){ +if (p3 == null) p3 = new JU.P3(); +var x = this.getCifFloat(key + "[0]"); +if (Float.isNaN(x)) { +p3.x = NaN; +} else { +p3.x = x; +p3.y = this.getCifFloat(key + "[1]"); +p3.z = this.getCifFloat(key + "[2]"); +}return p3; +}, "~S,JU.P3"); +Clazz.overrideMethod(c$, "getCifMap", +function(type){ +type = "data_" + type; +var list = this.cifData.get("models"); +for (var i = 0; i < list.size(); i++) { +var map = list.get(i); +if (type.equalsIgnoreCase(map.get("name").toString())) return this.thisData = map; +} +return null; +}, "~S"); +Clazz.overrideMethod(c$, "getCifFloat", +function(key){ +var o = this.thisData.get(key); +var x = NaN; +if (o != null) { +if ((typeof(o)=='string')) { +x = JU.PT.parseFloat(o); +} else if (Clazz.instanceOf(o, Number)) { +x = (o).floatValue(); +}}return x; +}, "~S"); +Clazz.overrideMethod(c$, "readCifFloats", +function(key, values){ +var list = this.thisData.get(key); +for (var i = 0, n = values.length; i < n; i++) values[i] = JU.PT.parseFloat(list.get(i)); + +return values; +}, "~S,~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/CubeReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/CubeReader.js new file mode 100755 index 000000000000..cfad7070cc82 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/CubeReader.js @@ -0,0 +1,37 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader"], "J.jvxl.readers.CubeReader", ["JU.PT", "$.SB", "JU.Logger"], function(){ +var c$ = Clazz.declareType(J.jvxl.readers, "CubeReader", J.jvxl.readers.VolumeFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.CubeReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2VFR(sg, br); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append(this.rd()).appendC('\n'); +this.jvxlFileHeaderBuffer.append(this.rd()).appendC('\n'); +var atomLine = this.rd(); +var tokens = JU.PT.getTokensAt(atomLine, 0); +this.ac = this.parseIntStr(tokens[0]); +this.negativeAtomCount = (this.ac < 0); +if (this.negativeAtomCount) this.ac = -this.ac; +this.volumetricOrigin.set(this.parseFloatStr(tokens[1]), this.parseFloatStr(tokens[2]), this.parseFloatStr(tokens[3])); +J.jvxl.readers.VolumeFileReader.checkAtomLine(this.isXLowToHigh, this.isAngstroms, tokens[0], atomLine, this.jvxlFileHeaderBuffer); +if (!this.isAngstroms) this.volumetricOrigin.scale(0.5291772); +for (var i = 0; i < 3; ++i) this.readVoxelVector(i); + +for (var i = 0; i < this.ac; ++i) this.jvxlFileHeaderBuffer.append(this.rd() + "\n"); + +if (!this.negativeAtomCount) { +this.nSurfaces = 1; +} else { +this.rd(); +JU.Logger.info("Reading extra CUBE information line: " + this.line); +this.nSurfaces = this.parseIntStr(this.line); +}}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/DelPhiBinaryReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/DelPhiBinaryReader.js new file mode 100755 index 000000000000..acf6849c43ad --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/DelPhiBinaryReader.js @@ -0,0 +1,79 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader"], "J.jvxl.readers.DelPhiBinaryReader", ["JU.SB", "$.V3", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.data = null; +this.pt = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "DelPhiBinaryReader", J.jvxl.readers.VolumeFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.DelPhiBinaryReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +var fileName = (sg.getReaderData())[0]; +this.init2VFR(sg, br); +this.binarydoc = this.newBinaryDocument(); +this.setStream(fileName, false); +this.nSurfaces = 1; +if (this.params.thePlane == null) this.params.insideOut = !this.params.insideOut; +this.allowSigma = false; +this.isAngstroms = true; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +var uplbl = this.readString(); +JU.Logger.info(uplbl); +var nxttoplbl = this.readString(); +JU.Logger.info(nxttoplbl); +this.data = this.readFloatArray(); +JU.Logger.info("DelPhi data length: " + this.data.length); +var botlbl = this.readString(); +JU.Logger.info(botlbl); +var scalemid = this.readFloatArray(); +var scale = scalemid[0]; +JU.Logger.info("DelPhi scale: " + scale); +var dx = (scale == 1 ? 0.84375 : 1 / scale); +this.volumetricVectors[0] = JU.V3.new3(0, 0, dx); +this.volumetricVectors[1] = JU.V3.new3(0, dx, 0); +this.volumetricVectors[2] = JU.V3.new3(dx, 0, 0); +JU.Logger.info("DelPhi resolution (pts/angstrom) set to: " + dx); +var nx = 65; +this.voxelCounts[0] = this.voxelCounts[1] = this.voxelCounts[2] = nx; +JU.Logger.info("DelPhi voxel counts: " + nx); +dx *= Clazz.doubleToInt((nx - 1) / 2); +this.volumetricOrigin.set(scalemid[1], scalemid[2], scalemid[3]); +JU.Logger.info("DelPhi center " + this.volumetricOrigin); +this.volumetricOrigin.x -= dx; +this.volumetricOrigin.y -= dx; +this.volumetricOrigin.z -= dx; +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append("DelPhi DATA ").append(nxttoplbl.$replace('\n', ' ').trim()).append("\n\n"); +}); +Clazz.defineMethod(c$, "readString", +function(){ +var n = this.binarydoc.readInt(); +var buf = Clazz.newByteArray (n, 0); +this.binarydoc.readByteArray(buf, 0, n); +this.binarydoc.readInt(); +return String.instantialize(buf); +}); +Clazz.defineMethod(c$, "readFloatArray", +function(){ +var n = this.binarydoc.readInt() >> 2; +var a = Clazz.newFloatArray (n, 0); +for (var i = 0; i < n; i++) a[i] = this.binarydoc.readFloat(); + +this.binarydoc.readInt(); +return a; +}); +Clazz.overrideMethod(c$, "nextVoxel", +function(){ +this.nBytes += 4; +return this.data[this.pt++]; +}); +Clazz.overrideMethod(c$, "skipData", +function(nPoints){ +this.pt += nPoints; +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Dsn6BinaryReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Dsn6BinaryReader.js new file mode 100755 index 000000000000..d2b1a92552e9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Dsn6BinaryReader.js @@ -0,0 +1,125 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.MapFileReader"], "J.jvxl.readers.Dsn6BinaryReader", ["java.io.DataInputStream", "JU.Rdr", "$.SB", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.byteFactor = 0; +this.xyCount = 0; +this.nBrickX = 0; +this.nBrickY = 0; +this.brickLayerVoxelCount = 0; +this.brickLayerByteCount = 0; +this.brickRowByteCount = 0; +this.brickLayer = null; +this.pt = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "Dsn6BinaryReader", J.jvxl.readers.MapFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.Dsn6BinaryReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, brNull){ +this.init2MFR(sg, this.br); +this.binarydoc = this.newBinaryDocument(); +var o2 = sg.getReaderData(); +var fileName = o2[0]; +var data = o2[1]; +if (data == null) this.binarydoc.setStream(sg.atomDataServer.getBufferedInputStream(fileName), true); + else this.binarydoc.setStreamData( new java.io.DataInputStream(JU.Rdr.getBIS(data.getBytes())), true); +if (this.params.thePlane == null) this.params.insideOut = !this.params.insideOut; +this.nSurfaces = 1; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +var header = Clazz.newShortArray (19, 0); +for (var i = 0; i < 19; i++) header[i] = this.binarydoc.readShort(); + +if (header[18] != 100) { +this.binarydoc.setStream(null, false); +for (var i = 0; i < 19; i++) header[i] = this.binarydoc.swapBytesS(header[i]); + +}this.xyzStart[0] = header[0]; +this.xyzStart[1] = header[1]; +this.xyzStart[2] = header[2]; +this.n0 = header[3]; +this.n1 = header[4]; +this.n2 = header[5]; +this.na = header[6]; +this.nb = header[7]; +this.nc = header[8]; +this.a = header[9]; +this.b = header[10]; +this.c = header[11]; +this.alpha = header[12]; +this.beta = header[13]; +this.gamma = header[14]; +var header16 = header[15]; +var header17 = header[16]; +var scalingFactor = header[17]; +var header19 = header[18]; +this.maps = 3; +this.mapr = 2; +this.mapc = 1; +this.dmin = (0 - header17) * header19 / header16; +this.dmax = (255 - header17) * header19 / header16; +this.drange = this.dmax - this.dmin; +this.byteFactor = this.drange / 255; +var dminError1 = (0 - header17 - 0.5) * header19 / (header16 - 0.5); +var dminError2 = (0 - header17 + 0.5) * header19 / (header16 + 0.5); +var dmaxError1 = (255 - header17 - 0.5) * header19 / (header16 - 0.5); +var dmaxError2 = (255 - header17 + 0.5) * header19 / (header16 + 0.5); +var dminError = Math.round((dminError2 - dminError1) / 0.002) * 0.001; +var dmaxError = Math.round((dmaxError2 - dmaxError1) / 0.002) * 0.001; +JU.Logger.info("DNS6 dmin,dmax = " + this.dmin + "+/-" + dminError + "," + this.dmax + "+/-" + dmaxError); +this.a /= scalingFactor; +this.b /= scalingFactor; +this.c /= scalingFactor; +this.alpha /= scalingFactor; +this.beta /= scalingFactor; +this.gamma /= scalingFactor; +this.binarydoc.seek(0x200); +this.getVectorsAndOrigin(); +this.setCutoffAutomatic(); +this.xyCount = this.n0 * this.n1; +this.brickLayerVoxelCount = this.xyCount * 8; +this.nBrickX = Clazz.doubleToInt((this.n0 + 7) / 8); +this.nBrickY = Clazz.doubleToInt((this.n1 + 7) / 8); +this.brickRowByteCount = this.nBrickX * 512; +this.brickLayerByteCount = this.brickRowByteCount * this.nBrickY; +this.brickLayer = Clazz.newByteArray (this.brickLayerByteCount, 0); +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append("DNS6/O progressive brick data reader\n"); +this.jvxlFileHeaderBuffer.append("see http://www.uoxray.uoregon.edu/tnt/manual/node104.html\n"); +}); +Clazz.defineMethod(c$, "readBrickLayer", +function(){ +this.binarydoc.readByteArray(this.brickLayer, 0, this.brickLayerByteCount); +this.pt = 0; +this.nBytes = this.binarydoc.getPosition(); +}); +Clazz.defineMethod(c$, "getBrickValue", +function(pt){ +var x = pt % this.n0; +var y = (Clazz.doubleToInt(pt / this.n0)) % this.n1; +var z = Clazz.doubleToInt(pt / this.xyCount); +var brickX = x % 8; +var brickY = y % 8; +var brickZ = z % 8; +var bX = Clazz.doubleToInt(x / 8); +var bY = Clazz.doubleToInt(y / 8); +var bPt = bY * 512 * this.nBrickX + bX * 512 + brickZ * 64 + brickY * 8 + brickX; +if (bPt % 2 == 0) bPt++; + else bPt--; +var value = (this.brickLayer[bPt] + 256) % 256; +return this.dmin + value * this.byteFactor; +}, "~N"); +Clazz.overrideMethod(c$, "nextVoxel", +function(){ +if ((this.pt % this.brickLayerVoxelCount) == 0) this.readBrickLayer(); +return this.getBrickValue(this.pt++); +}); +Clazz.overrideMethod(c$, "skipData", +function(nPoints){ +for (var i = 0; i < nPoints; i++) this.binarydoc.readByte(); + +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/EfvetReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/EfvetReader.js new file mode 100755 index 000000000000..d408ef41619b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/EfvetReader.js @@ -0,0 +1,80 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.PolygonFileReader"], "J.jvxl.readers.EfvetReader", ["JU.CU", "$.P3", "J.jvxl.data.JvxlCoder", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vertexMap = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "EfvetReader", J.jvxl.readers.PolygonFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.EfvetReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2PFR(sg, br); +this.jvxlFileHeaderBuffer.append("efvet file format\nvertices and triangles only\n"); +J.jvxl.data.JvxlCoder.jvxlCreateHeaderWithoutTitleOrAtoms(this.volumeData, this.jvxlFileHeaderBuffer); +this.hasColorData = true; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "getSurfaceData", +function(){ +this.getHeader(); +this.getVertices(); +this.getTriangles(); +JU.Logger.info("efvet file contains " + this.nVertices + " vertices and " + this.nTriangles + " triangles"); +}); +Clazz.defineMethod(c$, "getHeader", +function(){ +this.skipTo("\n"); + +}sb.append(" 0 && this.line.indexOf(">") < 0) this.jvxlFileHeaderBuffer.append("# " + this.line + "\n"); + +JU.Logger.info(this.jvxlFileHeaderBuffer.toString()); +}); +Clazz.defineMethod(c$, "getVertices", +function(){ +var pt = new JU.P3(); +var value = 0; +this.skipTo(" 0 && dataIndex < tokens.length) JU.Logger.info("property " + tokens[dataIndex]); + else JU.Logger.info(this.line); +for (var i = 0; i < this.nVertices; i++) { +this.skipTo(" "); +pt.set(values[0], values[1], values[2]); +this.skipTo(null, "property"); +for (var j = 0; j < dataIndex; j++) value = this.parseFloat(); + +if (this.isAnisotropic) this.setVertexAnisotropy(pt); +var v = this.vertexMap[i + 1] = this.addVC(pt, value, i, true); +if (v >= 0 && this.jvxlData.vertexColors != null) { +this.jvxlData.vertexColors[v] = JU.CU.colorTriadToFFRGB(values[6], values[7], values[8]); +this.jvxlData.nVertexColors++; +}} +}); +Clazz.defineMethod(c$, "getTriangles", +function(){ +this.skipTo(" = 0 && b >= 0 && c >= 0) this.addTriangleCheck(a, b, c, 7, 0, false, 0); +} +}); +Clazz.defineMethod(c$, "getInt", +function(){ +return this.vertexMap[this.parseInt()]; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoFxyReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoFxyReader.js new file mode 100755 index 000000000000..89cb8c795d9b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoFxyReader.js @@ -0,0 +1,99 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.AtomDataReader"], "J.jvxl.readers.IsoFxyReader", ["JU.SB", "J.jvxl.data.JvxlCoder"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.data = null; +this.isPlanarMapping = false; +this.func = null; +this.values = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "IsoFxyReader", J.jvxl.readers.AtomDataReader); +Clazz.prepareFields (c$, function(){ +this.values = Clazz.newFloatArray (3, 0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.IsoFxyReader, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initIFR(sg); +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.defineMethod(c$, "initIFR", +function(sg){ +this.initADR(sg); +this.isXLowToHigh = true; +this.precalculateVoxelData = false; +this.params.fullyLit = true; +this.isPlanarMapping = (this.params.thePlane != null || this.params.state == 3); +this.volumeData.sr = (this.params.func == null ? null : this); +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +if (this.params.functionInfo.size() > 5) this.data = this.params.functionInfo.get(5); +this.setupType("functionXY"); +}, "~B"); +Clazz.defineMethod(c$, "setupType", +function(type){ +this.func = this.params.func; +var functionName = this.params.functionInfo.get(0); +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append(type).append("\n").append(functionName).append("\n"); +if (this.params.thePlane != null || this.data == null && !this.useOriginStepsPoints) this.setVolumeForPlane(); + else if (this.data == null) this.setVolumeDataParams(); + else this.setVolumeData(); +J.jvxl.data.JvxlCoder.jvxlCreateHeaderWithoutTitleOrAtoms(this.volumeData, this.jvxlFileHeaderBuffer); +}, "~S"); +Clazz.overrideMethod(c$, "setVolumeData", +function(){ +if (this.data == null) { +this.setVolumeDataADR(); +return; +}this.volumetricOrigin.setT(this.params.functionInfo.get(1)); +for (var i = 0; i < 3; i++) { +var info = this.params.functionInfo.get(i + 2); +this.voxelCounts[i] = Math.abs(Clazz.floatToInt(info.x)); +this.volumetricVectors[i].set(info.y, info.z, info.w); +} +if (this.isAnisotropic) this.setVolumetricAnisotropy(); +}); +Clazz.overrideMethod(c$, "readSurfaceData", +function(isMapData){ +if (this.volumeData.sr != null) return; +this.readSurfaceDataVDR(isMapData); +}, "~B"); +Clazz.overrideMethod(c$, "getPlane", +function(x){ +var plane = this.getPlaneSR(x); +this.setPlane(x, plane); +return plane; +}, "~N"); +Clazz.defineMethod(c$, "setPlane", +function(x, plane){ +for (var y = 0, ptyz = 0; y < this.nPointsY; ++y) for (var z = 0; z < this.nPointsZ; ++z) plane[ptyz++] = this.getValue(x, y, z, 0); + + +}, "~N,~A"); +Clazz.overrideMethod(c$, "getValue", +function(x, y, z, pxyz){ +var value; +if (this.data == null) { +value = this.evaluateValue(x, y, z); +} else { +this.volumeData.voxelPtToXYZ(x, y, z, this.ptTemp); +value = this.data[x][y]; +}return (this.isPlanarMapping ? value : value - this.ptTemp.z); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "getValueAtPoint", +function(pt, getSource){ +if (this.params.func == null) return 0; +this.values[0] = pt.x; +this.values[1] = pt.y; +this.values[2] = pt.z; +return this.sg.atomDataServer.evalFunctionFloat(this.func[0], this.func[1], this.values); +}, "JU.T3,~B"); +Clazz.defineMethod(c$, "evaluateValue", +function(x, y, z){ +this.volumeData.voxelPtToXYZ(x, y, z, this.ptTemp); +return this.getValueAtPoint(this.ptTemp, false); +}, "~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoFxyzReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoFxyzReader.js new file mode 100755 index 000000000000..2ea3123f1920 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoFxyzReader.js @@ -0,0 +1,20 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.IsoFxyReader"], "J.jvxl.readers.IsoFxyzReader", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.$data = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "IsoFxyzReader", J.jvxl.readers.IsoFxyReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.IsoFxyzReader, []); +}); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +if (this.params.functionInfo.size() > 5) this.$data = this.params.functionInfo.get(5); +this.setupType("functionXYZ"); +}, "~B"); +Clazz.overrideMethod(c$, "getValue", +function(x, y, z, xyz){ +return (this.$data == null ? this.evaluateValue(x, y, z) : this.$data[x][y][z]); +}, "~N,~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoIntersectAtomReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoIntersectAtomReader.js new file mode 100755 index 000000000000..9926c80237e4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoIntersectAtomReader.js @@ -0,0 +1,136 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.AtomDataReader", "JU.BS"], "J.jvxl.readers.IsoIntersectAtomReader", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.myBsA = null; +this.myBsB = null; +this.bsAtomMinMax = null; +this.func = null; +this.funcType = 0; +this.thisPlaneB = null; +this.values = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "IsoIntersectAtomReader", J.jvxl.readers.AtomDataReader); +Clazz.prepareFields (c$, function(){ +this.myBsA = new JU.BS(); +this.myBsB = new JU.BS(); +this.bsAtomMinMax = new Array(2); +this.values = Clazz.newFloatArray (2, 0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.IsoIntersectAtomReader, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initADR(sg); +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.overrideMethod(c$, "readVolumeParameters", +function(isMapData){ +this.setup(isMapData); +if (isMapData) return false; +this.initializeVolumetricData(); +this.volumeData.setUnitVectors(); +this.thisPlaneB = Clazz.newFloatArray (this.volumeData.getYzCount(), 0); +this.voxelSource = Clazz.newIntArray (this.volumeData.nPoints, 0); +this.vl0 = this.volumeData.volumetricVectorLengths[0]; +this.vl1 = this.volumeData.volumetricVectorLengths[1]; +this.vl2 = this.volumeData.volumetricVectorLengths[2]; +this.getAtomMinMax(this.myBsA, this.bsAtomMinMax[0] = new Array(this.nPointsX)); +this.getAtomMinMax(this.myBsB, this.bsAtomMinMax[1] = new Array(this.nPointsX)); +return true; +}, "~B"); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +this.setup2(); +this.params.fullyLit = true; +this.point = this.params.point; +if ((typeof(this.params.func)=='string')) { +this.funcType = (this.params.func.equals("a-b") ? 2 : this.params.func.equals("a+b") ? 1 : 3); +} else if (this.params.func == null || this.sg.atomDataServer == null) { +this.funcType = 2; +} else { +this.func = this.params.func; +}if (this.contactPair == null) { +var bsA = this.params.intersection[0]; +var bsB = this.params.intersection[1]; +var bsSelected = new JU.BS(); +bsSelected.or(bsA); +bsSelected.or(bsB); +this.doUseIterator = true; +this.getAtoms(bsSelected, this.doAddHydrogens, true, true, false, false, false, NaN, null); +for (var i = bsA.nextSetBit(0); i >= 0; i = bsA.nextSetBit(i + 1)) this.myBsA.set(this.myIndex[i]); + +for (var i = bsB.nextSetBit(0); i >= 0; i = bsB.nextSetBit(i + 1)) this.myBsB.set(this.myIndex[i]); + +this.setHeader("VDW intersection surface", this.params.calculationType); +this.setRanges(this.params.solvent_ptsPerAngstrom, this.params.solvent_gridMax, 0); +this.margin = 5; +} else { +this.setVolumeData(); +}this.isProgressive = this.isXLowToHigh = true; +}, "~B"); +Clazz.overrideMethod(c$, "getPlane", +function(x){ +if (this.yzCount == 0) { +this.initPlanes(); +}this.thisX = x; +this.thisPlane = this.yzPlanes[x % 2]; +if (this.contactPair == null) { +this.thisAtomSet = this.bsAtomMinMax[0][x]; +this.resetPlane(3.4028235E38); +this.markSphereVoxels(0, this.params.distance); +this.thisPlane = this.thisPlaneB; +this.thisAtomSet = this.bsAtomMinMax[1][x]; +this.resetPlane(3.4028235E38); +this.markSphereVoxels(0, this.params.distance); +} else { +this.markPlaneVoxels(this.contactPair.myAtoms[0], this.contactPair.radii[0]); +this.thisPlane = this.thisPlaneB; +this.markPlaneVoxels(this.contactPair.myAtoms[1], this.contactPair.radii[1]); +}this.thisPlane = this.yzPlanes[x % 2]; +if (!this.setVoxels()) this.resetPlane(0); +if (this.contactPair == null) this.unsetVoxelData(); +return this.thisPlane; +}, "~N"); +Clazz.defineMethod(c$, "setVoxels", +function(){ +for (var i = 0; i < this.yzCount; i++) { +var va = this.thisPlane[i]; +var vb = this.thisPlaneB[i]; +var v = this.getValueAB(va, vb); +if (Float.isNaN(v)) return false; +this.thisPlane[i] = v; +} +return true; +}); +Clazz.defineMethod(c$, "getValueAB", +function(va, vb){ +if (va == 3.4028235E38 || vb == 3.4028235E38 || Float.isNaN(va) || Float.isNaN(vb)) return 3.4028235E38; +switch (this.funcType) { +case 1: +return (va + vb); +case 2: +case 4: +return (va - vb); +case 3: +return (va > vb ? va : vb); +default: +this.values[0] = va; +this.values[1] = vb; +return this.sg.atomDataServer.evalFunctionFloat(this.func[0], this.func[1], this.values); +} +}, "~N,~N"); +Clazz.overrideMethod(c$, "getValueAtPoint", +function(pt, getSource){ +return this.getValueAB(this.getValueAtPoint2(pt, this.myBsA), this.getValueAtPoint2(pt, this.myBsB)); +}, "JU.T3,~B"); +Clazz.defineMethod(c$, "getValueAtPoint2", +function(pt, bs){ +var value = 3.4028235E38; +for (var iAtom = bs.nextSetBit(0); iAtom >= 0; iAtom = bs.nextSetBit(iAtom + 1)) { +var r = pt.distance(this.atomXyzTruncated[iAtom]) - this.atomRadius[iAtom]; +if (r < value) value = r; +} +return (value == 3.4028235E38 ? NaN : value); +}, "JU.T3,JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoIntersectGridReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoIntersectGridReader.js new file mode 100755 index 000000000000..8d6cbc8bcbe9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoIntersectGridReader.js @@ -0,0 +1,41 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader"], "J.jvxl.readers.IsoIntersectGridReader", ["JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.readers = null; +this.factors = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "IsoIntersectGridReader", J.jvxl.readers.VolumeFileReader); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initSR(sg); +var data = sg.getReaderData(); +this.readers = data[0]; +this.factors = data[1]; +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.defineMethod(c$, "readVolumeParameters", +function(isMapData){ +for (var i = this.readers.length; --i >= 0; ) if (!this.readers[i].readVolumeParameters(isMapData)) return false; + +return true; +}, "~B"); +Clazz.defineMethod(c$, "getNextVoxelValue", +function(){ +var f = 0; +for (var i = this.readers.length; --i >= 0; ) f += this.factors[i] * this.readers[i].getNextVoxelValue(); + +return f; +}); +Clazz.overrideMethod(c$, "closeReader", +function(){ +if (this.readerClosed) return; +this.readerClosed = true; +for (var i = this.readers.length; --i >= 0; ) this.readers[i].closeReaderSFR(); + +if (this.nData == 0 || this.dataMax == -3.4028235E38) return; +this.dataMean /= this.nData; +JU.Logger.info("IsoIntersectFileReader closing file: " + this.nData + " points read \ndata min/max/mean = " + this.dataMin + "/" + this.dataMax + "/" + this.dataMean); +}); +Clazz.overrideMethod(c$, "readParameters", +function(){ +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoIntersectReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoIntersectReader.js new file mode 100755 index 000000000000..ccbfc6ab0ef4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoIntersectReader.js @@ -0,0 +1,136 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.AtomDataReader", "JU.BS"], "J.jvxl.readers.IsoIntersectReader", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.myBsA = null; +this.myBsB = null; +this.bsAtomMinMax = null; +this.func = null; +this.funcType = 0; +this.thisPlaneB = null; +this.values = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "IsoIntersectReader", J.jvxl.readers.AtomDataReader); +Clazz.prepareFields (c$, function(){ +this.myBsA = new JU.BS(); +this.myBsB = new JU.BS(); +this.bsAtomMinMax = new Array(2); +this.values = Clazz.newFloatArray (2, 0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.IsoIntersectReader, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initADR(sg); +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.overrideMethod(c$, "readVolumeParameters", +function(isMapData){ +this.setup(isMapData); +if (isMapData) return false; +this.initializeVolumetricData(); +this.volumeData.setUnitVectors(); +this.thisPlaneB = Clazz.newFloatArray (this.volumeData.getYzCount(), 0); +this.voxelSource = Clazz.newIntArray (this.volumeData.nPoints, 0); +this.vl0 = this.volumeData.volumetricVectorLengths[0]; +this.vl1 = this.volumeData.volumetricVectorLengths[1]; +this.vl2 = this.volumeData.volumetricVectorLengths[2]; +this.getAtomMinMax(this.myBsA, this.bsAtomMinMax[0] = new Array(this.nPointsX)); +this.getAtomMinMax(this.myBsB, this.bsAtomMinMax[1] = new Array(this.nPointsX)); +return true; +}, "~B"); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +this.setup2(); +this.params.fullyLit = true; +this.point = this.params.point; +if ((typeof(this.params.func)=='string')) { +this.funcType = (this.params.func.equals("a-b") ? 2 : this.params.func.equals("a+b") ? 1 : 3); +} else if (this.params.func == null || this.sg.atomDataServer == null) { +this.funcType = 2; +} else { +this.func = this.params.func; +}if (this.contactPair == null) { +var bsA = this.params.intersection[0]; +var bsB = this.params.intersection[1]; +var bsSelected = new JU.BS(); +bsSelected.or(bsA); +bsSelected.or(bsB); +this.doUseIterator = true; +this.getAtoms(bsSelected, this.doAddHydrogens, true, true, false, false, false, NaN, null); +for (var i = bsA.nextSetBit(0); i >= 0; i = bsA.nextSetBit(i + 1)) this.myBsA.set(this.myIndex[i]); + +for (var i = bsB.nextSetBit(0); i >= 0; i = bsB.nextSetBit(i + 1)) this.myBsB.set(this.myIndex[i]); + +this.setHeader("VDW intersection surface", this.params.calculationType); +this.setRanges(this.params.solvent_ptsPerAngstrom, this.params.solvent_gridMax, 0); +this.margin = 5; +} else { +this.setVolumeData(); +}this.isProgressive = this.isXLowToHigh = true; +}, "~B"); +Clazz.overrideMethod(c$, "getPlane", +function(x){ +if (this.yzCount == 0) { +this.initPlanes(); +}this.thisX = x; +this.thisPlane = this.yzPlanes[x % 2]; +if (this.contactPair == null) { +this.thisAtomSet = this.bsAtomMinMax[0][x]; +this.resetPlane(3.4028235E38); +this.markSphereVoxels(0, this.params.distance); +this.thisPlane = this.thisPlaneB; +this.thisAtomSet = this.bsAtomMinMax[1][x]; +this.resetPlane(3.4028235E38); +this.markSphereVoxels(0, this.params.distance); +} else { +this.markPlaneVoxels(this.contactPair.myAtoms[0], this.contactPair.radii[0]); +this.thisPlane = this.thisPlaneB; +this.markPlaneVoxels(this.contactPair.myAtoms[1], this.contactPair.radii[1]); +}this.thisPlane = this.yzPlanes[x % 2]; +if (!this.setVoxels()) this.resetPlane(0); +if (this.contactPair == null) this.unsetVoxelData(); +return this.thisPlane; +}, "~N"); +Clazz.defineMethod(c$, "setVoxels", +function(){ +for (var i = 0; i < this.yzCount; i++) { +var va = this.thisPlane[i]; +var vb = this.thisPlaneB[i]; +var v = this.getValueAB(va, vb); +if (Float.isNaN(v)) return false; +this.thisPlane[i] = v; +} +return true; +}); +Clazz.defineMethod(c$, "getValueAB", +function(va, vb){ +if (va == 3.4028235E38 || vb == 3.4028235E38 || Float.isNaN(va) || Float.isNaN(vb)) return 3.4028235E38; +switch (this.funcType) { +case 1: +return (va + vb); +case 2: +case 4: +return (va - vb); +case 3: +return (va > vb ? va : vb); +default: +this.values[0] = va; +this.values[1] = vb; +return this.sg.atomDataServer.evalFunctionFloat(this.func[0], this.func[1], this.values); +} +}, "~N,~N"); +Clazz.overrideMethod(c$, "getValueAtPoint", +function(pt, getSource){ +return this.getValueAB(this.getValueAtPoint2(pt, this.myBsA), this.getValueAtPoint2(pt, this.myBsB)); +}, "JU.T3,~B"); +Clazz.defineMethod(c$, "getValueAtPoint2", +function(pt, bs){ +var value = 3.4028235E38; +for (var iAtom = bs.nextSetBit(0); iAtom >= 0; iAtom = bs.nextSetBit(iAtom + 1)) { +var r = pt.distance(this.atomXyzTruncated[iAtom]) - this.atomRadius[iAtom]; +if (r < value) value = r; +} +return (value == 3.4028235E38 ? NaN : value); +}, "JU.T3,JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoMOReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoMOReader.js new file mode 100755 index 000000000000..44483970e71d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoMOReader.js @@ -0,0 +1,248 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.AtomDataReader"], "J.jvxl.readers.IsoMOReader", ["java.util.Random", "JU.AU", "$.Measure", "$.P3", "$.PT", "$.V3", "J.api.Interface", "J.quantum.QS", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.random = null; +this.points = null; +this.vTemp = null; +this.q = null; +this.mos = null; +this.isNci = false; +this.coef = null; +this.dfCoefMaps = null; +this.linearCombination = null; +this.coefs = null; +this.isElectronDensityCalc = false; +this.mo = null; +this.vDist = null; +this.qSetupDone = false; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "IsoMOReader", J.jvxl.readers.AtomDataReader); +Clazz.prepareFields (c$, function(){ +this.vDist = Clazz.newFloatArray (3, 0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.IsoMOReader, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initADR(sg); +this.isNci = (this.params.qmOrbitalType == 3); +if (this.isNci) { +this.isXLowToHigh = this.hasColorData = true; +this.precalculateVoxelData = false; +this.params.insideOut = !this.params.insideOut; +}}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +this.mos = this.params.moData.get("mos"); +this.linearCombination = this.params.qm_moLinearCombination; +this.mo = (this.mos != null && this.linearCombination == null ? this.mos.get(this.params.qm_moNumber - 1) : null); +var haveVolumeData = this.params.moData.containsKey("haveVolumeData"); +if (haveVolumeData && this.mo != null) this.params.volumeData = this.mo.get("volumeData"); +this.setup2(); +this.doAddHydrogens = false; +this.getAtoms(this.params.bsSelected, this.doAddHydrogens, !this.isNci, this.isNci, this.isNci, false, false, this.params.qm_marginAngstroms, (this.isNci ? null : this.params.modelInvRotation)); +var className; +if (this.isNci) { +className = "quantum.NciCalculation"; +this.setHeader("NCI (promolecular)", "see NCIPLOT: A Program for Plotting Noncovalent Interaction Regions, Julia Contreras-Garcia, et al., J. of Chemical Theory and Computation, 2011, 7, 625-632"); +} else { +className = "quantum.MOCalculation"; +this.setHeader("MO", "calculation type: " + this.params.moData.get("calculationType")); +}this.setRanges(this.params.qm_ptsPerAngstrom, this.params.qm_gridMax, 0); +if (haveVolumeData) { +for (var i = this.params.title.length; --i >= 0; ) this.fixTitleLine(i, this.mo); + +} else { +this.q = J.api.Interface.getOption(className, this.sg.atomDataServer, "file"); +if (this.isNci) { +this.qpc = this.q; +} else { +if (this.linearCombination == null) { +for (var i = this.params.title.length; --i >= 0; ) this.fixTitleLine(i, this.mo); + +this.coef = this.mo.get("coefficients"); +this.dfCoefMaps = this.mo.get("dfCoefMaps"); +} else { +this.coefs = JU.AU.newFloat2(this.mos.size()); +for (var i = 1; i < this.linearCombination.length; i += 2) { +var j = Clazz.floatToInt(this.linearCombination[i]); +if (j > this.mos.size() || j < 1) return; +this.coefs[j - 1] = this.mos.get(j - 1).get("coefficients"); +} +for (var i = this.params.title.length; --i >= 0; ) this.fixTitleLine(i, null); + +}}this.isElectronDensityCalc = (this.coef == null && this.linearCombination == null && !this.isNci); +}this.volumeData.sr = null; +if (isMapData && !this.isElectronDensityCalc && !haveVolumeData) { +this.volumeData.doIterate = false; +this.volumeData.setVoxelDataAsArray(this.voxelData = Clazz.newFloatArray (1, 1, 1, 0)); +this.volumeData.sr = this; +this.points = new Array(1); +this.points[0] = new JU.P3(); +if (!this.setupCalculation()) this.q = null; +} else if (this.params.psi_monteCarloCount > 0) { +this.vertexDataOnly = true; +this.random = new java.util.Random(this.params.randomSeed); +}}, "~B"); +Clazz.overrideMethod(c$, "readVolumeParameters", +function(isMapData){ +this.setup(isMapData); +if (this.volumeData.sr == null) this.initializeVolumetricData(); +return true; +}, "~B"); +Clazz.defineMethod(c$, "fixTitleLine", +function(iLine, mo){ +if (this.params.title == null) return; +var line = this.params.title[iLine]; +if (line.indexOf(" MO ") >= 0) { +var nboType = this.params.moData.get("nboType"); +if (nboType != null) line = JU.PT.rep(line, " MO ", " " + nboType + " "); +}if (line.indexOf("%M") >= 0) line = this.params.title[iLine] = JU.PT.formatStringS(line, "M", this.atomData.modelName); +if (line.indexOf("%F") >= 0) line = this.params.title[iLine] = JU.PT.formatStringS(line, "F", JU.PT.rep(this.params.fileName, "DROP_", "")); +var pt = line.indexOf("%"); +if (line.length == 0 || pt < 0) return; +var rep = 0; +if (line.indexOf("%I") >= 0) line = JU.PT.formatStringS(line, "I", this.params.qm_moLinearCombination == null ? "" + this.params.qm_moNumber : J.quantum.QS.getMOString(this.params.qm_moLinearCombination)); +if (line.indexOf("%N") >= 0) line = JU.PT.formatStringS(line, "N", "" + this.params.qmOrbitalCount); +var energy = null; +if (mo == null) { +for (var i = 0; i < this.linearCombination.length; i += 2) if (this.linearCombination[i] != 0) { +mo = this.mos.get(Clazz.floatToInt(this.linearCombination[i + 1]) - 1); +var e = mo.get("energy"); +if (energy == null) { +if (e == null) break; +energy = e; +} else if (!energy.equals(e)) { +energy = null; +break; +}} +} else { +if (mo.containsKey("energy")) energy = mo.get("energy"); +}if (line.indexOf("%E") >= 0) { +line = JU.PT.formatStringS(line, "E", energy != null && ++rep != 0 ? "" + energy : ""); +} else if (energy != null) { +var s = JU.PT.formatStringF(line, "E", energy.floatValue()); +if (s !== line) { +line = s; +rep++; +}}if (line.indexOf("%U") >= 0) line = JU.PT.formatStringS(line, "U", energy != null && this.params.moData.containsKey("energyUnits") && ++rep != 0 ? this.params.moData.get("energyUnits") : ""); +if (line.indexOf("%S") >= 0) line = JU.PT.formatStringS(line, "S", mo != null && mo.containsKey("symmetry") && ++rep != 0 ? "" + mo.get("symmetry") : ""); +if (line.indexOf("%O") >= 0) { +var obj = (mo == null ? null : mo.get("occupancy")); +var o = (obj == null ? 0 : obj.floatValue()); +line = JU.PT.formatStringS(line, "O", obj != null && this.params.qm_moLinearCombination == null && ++rep != 0 ? (o == Clazz.floatToInt(o) ? "" + Clazz.floatToInt(o) : JU.PT.formatF(o, 0, 4, false, false)) : ""); +}if (line.indexOf("%T") >= 0) line = JU.PT.formatStringS(line, "T", mo != null && mo.containsKey("type") ? (this.params.qm_moLinearCombination == null && ++rep != 0 ? "" + mo.get("type") : "") + ((this.params.isSquared || this.params.isSquaredLinear) && ++rep != 0 ? " ^2" : "") : ""); +if (line.equals("string")) { +this.params.title[iLine] = ""; +return; +}var isOptional = (line.indexOf("?") == 0); +this.params.title[iLine] = (!isOptional ? line : rep > 0 && !line.trim().endsWith("=") ? line.substring(1) : ""); +}, "~N,java.util.Map"); +Clazz.overrideMethod(c$, "readSurfaceData", +function(isMapData){ +if (this.volumeData.sr != null) return; +if (this.params.psi_monteCarloCount <= 0) { +this.readSurfaceDataVDR(isMapData); +return; +}if (this.points != null) return; +this.points = new Array(1000); +for (var j = 0; j < 1000; j++) this.points[j] = new JU.P3(); + +if (this.params.thePlane != null) this.vTemp = new JU.V3(); +for (var i = 0; i < 3; i++) this.vDist[i] = this.volumeData.volumetricVectorLengths[i] * this.volumeData.voxelCounts[i]; + +this.volumeData.setVoxelDataAsArray(this.voxelData = Clazz.newFloatArray (1000, 1, 1, 0)); +this.getValues(); +var value; +var f = 0; +for (var j = 0; j < 1000; j++) if ((value = Math.abs(this.voxelData[j][0][0])) > f) f = value; + +if (f < 0.0001) return; +for (var i = 0; i < this.params.psi_monteCarloCount; ) { +this.getValues(); +for (var j = 0; j < 1000; j++) { +value = this.voxelData[j][0][0]; +var absValue = Math.abs(value); +if (absValue <= this.getRnd(f)) continue; +this.addVC(this.points[j], value, 0, false); +if (++i == this.params.psi_monteCarloCount) break; +} +} +}, "~B"); +Clazz.overrideMethod(c$, "postProcessVertices", +function(){ +}); +Clazz.defineMethod(c$, "getValues", +function(){ +for (var j = 0; j < 1000; j++) { +this.voxelData[j][0][0] = 0; +this.points[j].set(this.volumeData.volumetricOrigin.x + this.getRnd(this.vDist[0]), this.volumeData.volumetricOrigin.y + this.getRnd(this.vDist[1]), this.volumeData.volumetricOrigin.z + this.getRnd(this.vDist[2])); +if (this.params.thePlane != null) JU.Measure.getPlaneProjection(this.points[j], this.params.thePlane, this.points[j], this.vTemp); +} +this.createOrbital(); +}); +Clazz.overrideMethod(c$, "getValueAtPoint", +function(pt, getSource){ +return (this.q == null ? 0 : this.q.processPt(pt)); +}, "JU.T3,~B"); +Clazz.defineMethod(c$, "getRnd", +function(f){ +return this.random.nextFloat() * f; +}, "~N"); +Clazz.overrideMethod(c$, "generateCube", +function(){ +if (this.params.volumeData != null) return; +this.newVoxelDataCube(); +this.createOrbital(); +}); +Clazz.defineMethod(c$, "createOrbital", +function(){ +var isMonteCarlo = (this.params.psi_monteCarloCount > 0); +if (this.isElectronDensityCalc) { +if (this.mos == null || isMonteCarlo) return; +System.out.println("createOrbital " + this.params.qm_moNumber); +for (var i = this.params.qm_moNumber; --i >= 0; ) { +JU.Logger.info(" generating isosurface data for MO " + (i + 1)); +var mo = this.mos.get(i); +this.coef = mo.get("coefficients"); +this.dfCoefMaps = mo.get("dfCoefMaps"); +if (!this.setupCalculation()) return; +this.q.createCube(); +} +} else { +if (!isMonteCarlo) JU.Logger.info("generating isosurface data for MO using cutoff " + this.params.cutoff); +if (!this.setupCalculation()) return; +this.q.createCube(); +this.jvxlData.integration = this.q.getIntegration(); +if (this.mo != null) this.mo.put("integration", Float.$valueOf(this.jvxlData.integration)); +}}); +Clazz.overrideMethod(c$, "getPlane", +function(x){ +if (!this.qSetupDone) this.setupCalculation(); +return this.getPlaneSR(x); +}, "~N"); +Clazz.defineMethod(c$, "setupCalculation", +function(){ +this.qSetupDone = true; +switch (this.params.qmOrbitalType) { +case 5: +break; +case 2: +case 1: +return (this.q).setupCalculation(this.params.moData, this.params.qmOrbitalType == 2, this.volumeData, this.bsMySelected, this.atomData.xyz, this.atomData.atoms, this.atomData.firstAtomIndex, this.dfCoefMaps, this.coef, this.linearCombination, this.params.isSquaredLinear, this.coefs, this.points); +case 3: +return (this.q).setupCalculation(this.volumeData, this.bsMySelected, this.params.bsSolvent, this.atomData.bsMolecules, this.atomData.atoms, this.atomData.firstAtomIndex, true, this.points, this.params.parameters, this.params.testFlags); +} +return false; +}); +Clazz.overrideMethod(c$, "getSurfacePointAndFraction", +function(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn){ +var zero = this.getSPF(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn); +if (this.q != null && !Float.isNaN(zero)) { +zero = this.q.processPt(ptReturn); +if (this.params.isSquared) zero *= zero; +}return zero; +}, "~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoMepReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoMepReader.js new file mode 100755 index 000000000000..4a252e7ca47f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoMepReader.js @@ -0,0 +1,34 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.AtomDataReader"], "J.jvxl.readers.IsoMepReader", ["J.api.Interface"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.type = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "IsoMepReader", J.jvxl.readers.AtomDataReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.IsoMepReader, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initIMR(sg); +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.defineMethod(c$, "initIMR", +function(sg){ +this.initADR(sg); +this.type = "Mep"; +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +this.setup2(); +this.doAddHydrogens = false; +this.getAtoms(this.params.bsSelected, this.doAddHydrogens, true, false, false, false, false, this.params.mep_marginAngstroms, null); +this.setHeader("MEP", ""); +this.setRanges(this.params.mep_ptsPerAngstrom, this.params.mep_gridMax, 0); +}, "~B"); +Clazz.overrideMethod(c$, "generateCube", +function(){ +this.newVoxelDataCube(); +var m = J.api.Interface.getOption("quantum." + this.type + "Calculation", this.sg.atomDataServer, "file"); +m.calculate(this.volumeData, this.bsMySelected, this.atomData.xyz, this.atomData.atoms, this.params.theProperty, this.params.mep_calcType); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoMlpReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoMlpReader.js new file mode 100755 index 000000000000..7dea26bb4df0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoMlpReader.js @@ -0,0 +1,14 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.IsoMepReader"], "J.jvxl.readers.IsoMlpReader", null, function(){ +var c$ = Clazz.declareType(J.jvxl.readers, "IsoMlpReader", J.jvxl.readers.IsoMepReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.IsoMlpReader, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initIMR(sg); +this.type = "Mlp"; +}, "J.jvxl.readers.SurfaceGenerator"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoPlaneReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoPlaneReader.js new file mode 100755 index 000000000000..2634aecb144d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoPlaneReader.js @@ -0,0 +1,21 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.AtomDataReader"], "J.jvxl.readers.IsoPlaneReader", null, function(){ +var c$ = Clazz.declareType(J.jvxl.readers, "IsoPlaneReader", J.jvxl.readers.AtomDataReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.IsoPlaneReader, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initADR(sg); +this.precalculateVoxelData = false; +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +this.setup2(); +this.setHeader("PLANE", this.params.thePlane.toString()); +this.params.cutoff = 0; +this.setVolumeForPlane(); +}, "~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoShapeReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoShapeReader.js new file mode 100755 index 000000000000..f1472bb32e3c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoShapeReader.js @@ -0,0 +1,375 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeDataReader", "JU.P3"], "J.jvxl.readers.IsoShapeReader", ["java.util.Random", "JU.Measure", "$.SB", "$.V3", "J.jvxl.data.JvxlCoder", "JU.Logger", "$.MeshSurface"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.psi_n = 2; +this.psi_l = 1; +this.psi_m = 1; +this.psi_Znuc = 1; +this.sphere_radiusAngstroms = 0; +this.monteCarloCount = 0; +this.random = null; +this.allowNegative = true; +this.rfactor = null; +this.pfactor = null; +this.radius = 0; +this.ptPsi = null; +this.psi_normalization = 0; +this.aoMax = 0; +this.aoMax2 = 0; +this.angMax2 = 0; +this.planeU = null; +this.planeV = null; +this.planeCenter = null; +this.planeRadius = 0; +this.rnl = 0; +this.surfaceDone = false; +this.nTries = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "IsoShapeReader", J.jvxl.readers.VolumeDataReader); +Clazz.prepareFields (c$, function(){ +this.rfactor = Clazz.newDoubleArray (10, 0); +this.pfactor = Clazz.newDoubleArray (10, 0); +this.ptPsi = new JU.P3(); +this.psi_normalization = 1 / (2 * Math.sqrt(3.141592653589793)); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.IsoShapeReader, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initVDR(sg); +var o = sg.getReaderData(); +if (Clazz.instanceOf(o, Float)) { +this.sphere_radiusAngstroms = (o).floatValue(); +} else { +this.sphere_radiusAngstroms = 0; +var data = o; +this.psi_n = Clazz.floatToInt(data[0]); +this.psi_l = Clazz.floatToInt(data[1]); +this.psi_m = Clazz.floatToInt(data[2]); +this.psi_Znuc = data[3]; +this.monteCarloCount = Clazz.floatToInt(data[4]); +}}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +this.volumeData.sr = this; +this.precalculateVoxelData = false; +this.isQuiet = true; +if (Float.isNaN(this.center.x)) this.center.set(0, 0, 0); +var type = "sphere"; +switch (this.dataType) { +case 1294: +this.calcFactors(this.psi_n, this.psi_l, this.psi_m); +this.autoScaleOrbital(); +this.ptsPerAngstrom = 5; +this.maxGrid = 40; +type = "hydrogen-like orbital"; +if (this.monteCarloCount > 0) { +this.vertexDataOnly = true; +this.random = new java.util.Random(this.params.randomSeed); +} else { +this.isQuiet = false; +}break; +case 70: +case 71: +type = "lp"; +this.vertexDataOnly = true; +this.radius = 0; +this.ptsPerAngstrom = 1; +this.maxGrid = 1; +break; +case 68: +this.allowNegative = false; +this.calcFactors(this.psi_n, this.psi_l, this.psi_m); +this.psi_normalization = 1; +this.radius = 1.1 * this.eccentricityRatio * this.eccentricityScale; +if (this.eccentricityScale > 0 && this.eccentricityScale < 1) this.radius /= this.eccentricityScale; +this.ptsPerAngstrom = 10; +this.maxGrid = 21; +type = "lobe"; +break; +case 67: +type = "ellipsoid(thermal)"; +this.radius = 3.0 * this.sphere_radiusAngstroms; +this.ptsPerAngstrom = 10; +this.maxGrid = 22; +break; +case 74: +if (!isMapData && this.monteCarloCount == 0) break; +type = "geodesic"; +case 66: +if (type.equals("sphere")) type = "ellipsoid"; +case 65: +default: +this.radius = 1.2 * this.sphere_radiusAngstroms * this.eccentricityScale; +this.ptsPerAngstrom = 10; +this.maxGrid = 22; +break; +} +if (this.monteCarloCount == 0) this.setVolumeData(); +this.setHeader(type + "\n"); +}, "~B"); +Clazz.overrideMethod(c$, "setVolumeData", +function(){ +this.setVoxelRange(0, -this.radius, this.radius, this.ptsPerAngstrom, this.maxGrid, 0); +this.setVoxelRange(1, -this.radius, this.radius, this.ptsPerAngstrom, this.maxGrid, 0); +if (this.allowNegative) this.setVoxelRange(2, -this.radius, this.radius, this.ptsPerAngstrom, this.maxGrid, 0); + else this.setVoxelRange(2, 0, this.radius / this.eccentricityRatio, this.ptsPerAngstrom, this.maxGrid, 0); +}); +Clazz.overrideMethod(c$, "getValue", +function(x, y, z, ptyz){ +this.volumeData.voxelPtToXYZ(x, y, z, this.ptPsi); +return this.getValueAtPoint(this.ptPsi, false); +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "getValueAtPoint", +function(pt, getSource){ +this.ptTemp.sub2(pt, this.center); +if (this.isEccentric) this.eccentricityMatrixInverse.rotate(this.ptTemp); +if (this.isAnisotropic) { +this.ptTemp.x /= this.anisotropy[0]; +this.ptTemp.y /= this.anisotropy[1]; +this.ptTemp.z /= this.anisotropy[2]; +}if (this.sphere_radiusAngstroms > 0) { +if (this.params.anisoB != null) { +return this.sphere_radiusAngstroms - Math.sqrt(this.ptTemp.x * this.ptTemp.x + this.ptTemp.y * this.ptTemp.y + this.ptTemp.z * this.ptTemp.z) / (Math.sqrt(this.params.anisoB[0] * this.ptTemp.x * this.ptTemp.x + this.params.anisoB[1] * this.ptTemp.y * this.ptTemp.y + this.params.anisoB[2] * this.ptTemp.z * this.ptTemp.z + this.params.anisoB[3] * this.ptTemp.x * this.ptTemp.y + this.params.anisoB[4] * this.ptTemp.x * this.ptTemp.z + this.params.anisoB[5] * this.ptTemp.y * this.ptTemp.z)); +}return this.sphere_radiusAngstroms - Math.sqrt(this.ptTemp.x * this.ptTemp.x + this.ptTemp.y * this.ptTemp.y + this.ptTemp.z * this.ptTemp.z); +}var value = this.hydrogenAtomPsi(this.ptTemp); +if (Math.abs(value) < 1.0E-7) value = 0; +return (this.allowNegative || value >= 0 ? value : 0); +}, "JU.T3,~B"); +Clazz.defineMethod(c$, "setHeader", +function(line1){ +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append(line1); +if (this.sphere_radiusAngstroms > 0) { +this.jvxlFileHeaderBuffer.append(" rad=").appendF(this.sphere_radiusAngstroms); +} else { +this.jvxlFileHeaderBuffer.append(" n=").appendI(this.psi_n).append(", l=").appendI(this.psi_l).append(", m=").appendI(this.psi_m).append(" Znuc=").appendF(this.psi_Znuc).append(" res=").appendF(this.ptsPerAngstrom).append(" rad=").appendF(this.radius); +}this.jvxlFileHeaderBuffer.append(this.isAnisotropic ? " anisotropy=(" + this.anisotropy[0] + "," + this.anisotropy[1] + "," + this.anisotropy[2] + ")\n" : "\n"); +J.jvxl.data.JvxlCoder.jvxlCreateHeaderWithoutTitleOrAtoms(this.volumeData, this.jvxlFileHeaderBuffer); +}, "~S"); +Clazz.defineMethod(c$, "calcFactors", +function(n, el, m){ +var abm = Math.abs(m); +var NnlLnl = Math.pow(2 * this.psi_Znuc / n / 0.52918, 1.5) * Math.sqrt(J.jvxl.readers.IsoShapeReader.fact[n - el - 1] * J.jvxl.readers.IsoShapeReader.fact[n + el] / 2 / n); +var Plm = Math.pow(2, -el) * J.jvxl.readers.IsoShapeReader.fact[el] * J.jvxl.readers.IsoShapeReader.fact[el + abm] * Math.sqrt((2 * el + 1) * J.jvxl.readers.IsoShapeReader.fact[el - abm] / 2 / J.jvxl.readers.IsoShapeReader.fact[el + abm]); +for (var p = 0; p <= n - el - 1; p++) this.rfactor[p] = NnlLnl / J.jvxl.readers.IsoShapeReader.fact[p] / J.jvxl.readers.IsoShapeReader.fact[n - el - p - 1] / J.jvxl.readers.IsoShapeReader.fact[2 * el + p + 1]; + +for (var p = abm; p <= el; p++) this.pfactor[p] = Math.pow(-1, el - p) * Plm / J.jvxl.readers.IsoShapeReader.fact[p] / J.jvxl.readers.IsoShapeReader.fact[el + abm - p] / J.jvxl.readers.IsoShapeReader.fact[el - p] / J.jvxl.readers.IsoShapeReader.fact[p - abm]; + +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "autoScaleOrbital", +function(){ +this.aoMax = 0; +var rmax = 0; +this.aoMax2 = 0; +var rmax2 = 0; +var d; +if (this.params.distance == 0) { +for (var ir = 0; ir < 1000; ir++) { +var r = ir / 10; +d = Math.abs(this.radialPart(r)); +if (JU.Logger.debugging) JU.Logger.debug("R\t" + r + "\t" + d); +if (d >= this.aoMax) { +rmax = r; +this.aoMax = d; +}d *= d * r * r; +if (d >= this.aoMax2) { +rmax2 = r; +this.aoMax2 = d; +}} +} else { +this.aoMax = Math.abs(this.radialPart(this.params.distance)); +this.aoMax2 = this.aoMax * this.aoMax * this.params.distance * this.params.distance; +rmax = rmax2 = this.params.distance; +}JU.Logger.info("Atomic Orbital radial max = " + this.aoMax + " at " + rmax); +JU.Logger.info("Atomic Orbital r2R2 max = " + this.aoMax2 + " at " + rmax2); +if (this.monteCarloCount >= 0) { +this.angMax2 = 0; +for (var ang = 0; ang < 180; ang += 1) { +var th = ang / (6.283185307179586); +d = Math.abs(this.angularPart(th, 0, 0)); +if (JU.Logger.debugging) JU.Logger.debug("A\t" + ang + "\t" + d); +if (d > this.angMax2) { +this.angMax2 = d; +}} +this.angMax2 *= this.angMax2; +if (this.psi_m != 0) { +this.angMax2 *= 2; +}JU.Logger.info("Atomic Orbital phi^2theta^2 max = " + this.angMax2); +}var min; +if (this.params.cutoff == 0) { +min = (this.monteCarloCount > 0 ? this.aoMax * 0.01 : 0.01); +} else if (this.monteCarloCount > 0) { +this.aoMax = Math.abs(this.params.cutoff); +min = this.aoMax * 0.01; +} else { +min = Math.abs(this.params.cutoff / 2); +if (this.params.isSquared) min = Math.sqrt(min / 2); +}var r0 = 0; +for (var ir = 1000; --ir >= 0; ir -= 1) { +var r = ir / 10; +d = Math.abs(this.radialPart(r)); +if (d >= min) { +r0 = r; +break; +}} +this.radius = r0 + (this.monteCarloCount == 0 ? 1 : 0); +if (this.isAnisotropic) { +var aMax = 0; +for (var i = 3; --i >= 0; ) if (this.anisotropy[i] > aMax) aMax = this.anisotropy[i]; + +this.radius *= aMax; +}JU.Logger.info("Atomic Orbital radial extent set to " + this.radius + " for cutoff " + this.params.cutoff); +if (this.params.thePlane != null && this.monteCarloCount > 0) { +this.planeCenter = new JU.P3(); +this.planeU = new JU.V3(); +JU.Measure.getPlaneProjection(this.center, this.params.thePlane, this.planeCenter, this.planeU); +this.planeU.set(this.params.thePlane.x, this.params.thePlane.y, this.params.thePlane.z); +this.planeU.normalize(); +this.planeV = JU.V3.new3(1, 0, 0); +if (Math.abs(this.planeU.dot(this.planeV)) > 0.5) this.planeV.set(0, 1, 0); +this.planeV.cross(this.planeU, this.planeV); +this.planeU.cross(this.planeU, this.planeV); +this.aoMax2 = 0; +d = this.center.distance(this.planeCenter); +if (d < this.radius) { +this.planeRadius = Math.sqrt(this.radius * this.radius - d * d); +var ir = Clazz.floatToInt(this.planeRadius * 10); +for (var ix = -ir; ix <= ir; ix++) for (var iy = -ir; iy <= ir; iy++) { +this.ptPsi.setT(this.planeU); +this.ptPsi.scale(ix / 10); +this.ptPsi.scaleAdd2(iy / 10, this.planeV, this.ptPsi); +d = this.hydrogenAtomPsi(this.ptPsi); +d = Math.abs(this.hydrogenAtomPsi(this.ptPsi)); +if (d > this.aoMax2) this.aoMax2 = d; +} + +if (this.aoMax2 < 0.001) this.aoMax2 = 0; + else this.aoMax2 *= this.aoMax2; +}}}); +Clazz.defineMethod(c$, "radialPart", +function(r){ +var rho = 2 * this.psi_Znuc * r / this.psi_n / 0.52918; +var sum = 0; +for (var p = 0; p <= this.psi_n - this.psi_l - 1; p++) sum += Math.pow(-rho, p) * this.rfactor[p]; + +return Math.exp(-rho / 2) * Math.pow(rho, this.psi_l) * sum; +}, "~N"); +Clazz.defineMethod(c$, "hydrogenAtomPsi", +function(pt){ +var x2y2 = pt.x * pt.x + pt.y * pt.y; +this.rnl = this.radialPart(Math.sqrt(x2y2 + pt.z * pt.z)); +var ph = Math.atan2(pt.y, pt.x); +var th = Math.atan2(Math.sqrt(x2y2), pt.z); +var theta_lm_phi_m = this.angularPart(th, ph, this.psi_m); +return this.rnl * theta_lm_phi_m; +}, "JU.P3"); +Clazz.defineMethod(c$, "angularPart", +function(th, ph, m){ +var cth = Math.cos(th); +var sth = Math.sin(th); +var isS = (m == 0 && this.psi_l == 0); +var abm = Math.abs(m); +var sum = 0; +if (isS) sum = this.pfactor[0]; + else for (var p = abm; p <= this.psi_l; p++) sum += (p == abm ? 1 : Math.pow(1 + cth, p - abm)) * (p == this.psi_l ? 1 : Math.pow(1 - cth, this.psi_l - p)) * this.pfactor[p]; + +var theta_lm = (abm == 0 ? sum : Math.abs(Math.pow(sth, abm)) * sum); +var phi_m; +if (m == 0) phi_m = 1; + else if (m > 0) phi_m = Math.cos(m * ph) * 1.414214; + else phi_m = Math.sin(m * ph) * 1.414214; +return (Math.abs(phi_m) < 0.0000000001 ? 0 : theta_lm * phi_m * this.psi_normalization); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "createMonteCarloOrbital", +function(){ +if (this.surfaceDone || this.aoMax2 == 0 || this.params.distance > this.radius) return; +var isS = (this.psi_m == 0 && this.psi_l == 0); +this.surfaceDone = true; +var value; +var rave = 0; +this.nTries = 0; +for (var i = 0; i < this.monteCarloCount; this.nTries++) { +if (this.params.thePlane == null) { +var r; +if (this.params.distance == 0) { +r = this.random.nextDouble() * this.radius; +var rp = r * this.radialPart(r); +if (rp * rp <= this.aoMax2 * this.random.nextDouble()) continue; +} else { +r = this.params.distance; +}var u = this.random.nextDouble(); +var v = this.random.nextDouble(); +var theta = 2 * 3.141592653589793 * u; +var cosPhi = 2 * v - 1; +if (!isS) { +var phi = Math.acos(cosPhi); +var ap = this.angularPart(phi, theta, this.psi_m); +if (ap * ap <= this.angMax2 * this.random.nextDouble()) continue; +}var sinPhi = Math.sin(Math.acos(cosPhi)); +var x = r * Math.cos(theta) * sinPhi; +var y = r * Math.sin(theta) * sinPhi; +var z = r * cosPhi; +this.ptPsi.set(x, y, z); +this.ptPsi.add(this.center); +value = this.getValueAtPoint(this.ptPsi, false); +} else { +this.ptPsi.setT(this.planeU); +this.ptPsi.scale(this.random.nextFloat() * this.planeRadius * 2 - this.planeRadius); +this.ptPsi.scaleAdd2(this.random.nextFloat() * this.planeRadius * 2 - this.planeRadius, this.planeV, this.ptPsi); +this.ptPsi.add(this.planeCenter); +value = this.getValueAtPoint(this.ptPsi, false); +if (value * value <= this.aoMax2 * this.random.nextFloat()) continue; +}rave += this.ptPsi.distance(this.center); +this.addVC(this.ptPsi, value, 0, true); +i++; +} +if (this.params.distance == 0) JU.Logger.info("Atomic Orbital mean radius = " + rave / this.monteCarloCount + " for " + this.monteCarloCount + " points (" + this.nTries + " tries)"); +}); +Clazz.overrideMethod(c$, "readSurfaceData", +function(isMapData){ +switch (this.params.dataType) { +case 1294: +if (this.monteCarloCount <= 0) break; +this.createMonteCarloOrbital(); +return; +case 70: +case 71: +this.ptPsi.set(0, 0, this.eccentricityScale / 2); +this.eccentricityMatrixInverse.rotate(this.ptPsi); +this.ptPsi.add(this.center); +this.addVC(this.center, 0, 0, true); +this.addVC(this.ptPsi, 0, 0, true); +this.addTriangleCheck(0, 0, 0, 0, 0, false, 0); +return; +case 74: +if (!isMapData) { +this.createGeodesic(); +return; +}} +this.readSurfaceDataVDR(isMapData); +}, "~B"); +Clazz.defineMethod(c$, "createGeodesic", +function(){ +var ms = JU.MeshSurface.getSphereData(4); +var pts = ms.altVertices; +for (var i = 0; i < pts.length; i++) { +var pt = JU.P3.newP(pts[i]); +pt.scale(this.params.distance); +pt.add(this.center); +this.addVC(pt, 0, i, false); +} +var faces = ms.pis; +for (var i = 0; i < faces.length; i++) { +var face = faces[i]; +this.addTriangleCheck(face[0], face[1], face[2], 7, 7, false, 0); +} +}); +c$.fact = Clazz.newFloatArray (20, 0); +{ +J.jvxl.readers.IsoShapeReader.fact[0] = 1; +for (var i = 1; i < 20; i++) J.jvxl.readers.IsoShapeReader.fact[i] = J.jvxl.readers.IsoShapeReader.fact[i - 1] * i; + +}}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoSolventReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoSolventReader.js new file mode 100755 index 000000000000..0cafd9467172 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/IsoSolventReader.js @@ -0,0 +1,633 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["JU.P3", "J.jvxl.readers.AtomDataReader", "JU.P4", "$.V3"], "J.jvxl.readers.IsoSolventReader", ["java.util.Hashtable", "JU.BS", "$.Lst", "$.Measure", "J.jvxl.data.MeshData", "JU.BSUtil", "$.Logger", "$.MeshSurface", "$.TempArray"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.cavityRadius = 0; +this.envelopeRadius = 0; +this.dots = null; +this.doCalculateTroughs = false; +this.isCavity = false; +this.isPocket = false; +this.iter = null; +this.bsSurfacePoints = null; +this.bsSurfaceDone = null; +this.bsLocale = null; +this.htEdges = null; +this.vEdges = null; +this.vFaces = null; +this.ptS1 = null; +this.ptS2 = null; +this.vTemp = null; +this.plane = null; +this.ptTemp2 = null; +this.vTemp2 = null; +this.p = null; +this.bsAtomMinMax = null; +this.isSurfacePoint = false; +this.iAtomSurface = 0; +this.nTest = 0; +if (!Clazz.isClassDefined("J.jvxl.readers.IsoSolventReader.Edge")) { +J.jvxl.readers.IsoSolventReader.$IsoSolventReader$Edge$ (); +} +if (!Clazz.isClassDefined("J.jvxl.readers.IsoSolventReader.Face")) { +J.jvxl.readers.IsoSolventReader.$IsoSolventReader$Face$ (); +} +this.rAS = 0; +this.rBS = 0; +this.rAS2 = 0; +this.rBS2 = 0; +this.dAB = 0; +this.dAB2 = 0; +this.ecosASB2 = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "IsoSolventReader", J.jvxl.readers.AtomDataReader); +Clazz.prepareFields (c$, function(){ +this.ptS1 = new JU.P3(); +this.ptS2 = new JU.P3(); +this.vTemp = new JU.V3(); +this.plane = new JU.P4(); +this.ptTemp2 = new JU.P3(); +this.vTemp2 = new JU.V3(); +this.p = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.IsoSolventReader, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initADR(sg); +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.overrideMethod(c$, "readVolumeParameters", +function(isMapData){ +this.setup(isMapData); +this.initializeVolumetricData(); +this.volumeData.setUnitVectors(); +this.vl0 = this.volumeData.volumetricVectorLengths[0]; +this.vl1 = this.volumeData.volumetricVectorLengths[1]; +this.vl2 = this.volumeData.volumetricVectorLengths[2]; +if (this.isProgressive) { +this.volumeData.getYzCount(); +this.bsAtomMinMax = new Array(this.nPointsX); +this.getAtomMinMax(null, this.bsAtomMinMax); +this.voxelSource = Clazz.newIntArray (this.volumeData.nPoints, 0); +}return true; +}, "~B"); +Clazz.overrideMethod(c$, "setup", +function(isMapData){ +this.setup2(); +if (this.contactPair == null) { +this.cavityRadius = this.params.cavityRadius; +this.envelopeRadius = this.params.envelopeRadius; +this.sr = this.params.solventRadius; +this.point = this.params.point; +this.isCavity = (this.params.isCavity && this.meshDataServer != null); +this.isPocket = (this.params.pocket != null && this.meshDataServer != null); +this.doCalculateTroughs = (!isMapData && this.sg.atomDataServer != null && !this.isCavity && this.sr > 0 && (this.dataType == 1195 || this.dataType == 1203)); +this.doUseIterator = this.doCalculateTroughs; +this.getAtoms(this.params.bsSelected, this.doAddHydrogens, true, false, false, true, false, NaN, null); +if (this.isCavity || this.isPocket) this.dots = this.meshDataServer.calculateGeodesicSurface(this.bsMySelected, this.envelopeRadius); +this.setHeader("solvent/molecular surface", this.params.calculationType); +if (this.havePlane || !isMapData) { +var r = Math.max(this.params.solventExtendedAtomRadius, this.params.solventRadius); +var minPtsPerAng = (r >= 1 ? 1.5 / r : 0); +if (minPtsPerAng > 0) System.out.println("IsoSolventReader.minPtsPerAng=" + minPtsPerAng); +this.setRanges(this.params.solvent_ptsPerAngstrom, this.params.solvent_gridMax, minPtsPerAng); +this.volumeData.getYzCount(); +this.margin = this.volumeData.maxGrid * 2.0; +}if (this.bsNearby != null) this.bsMySelected.or(this.bsNearby); +} else if (!isMapData) { +this.setVolumeData(); +}if (!this.doCalculateTroughs) { +if (isMapData) { +this.precalculateVoxelData = false; +this.volumeData.sr = this; +} else if (!this.isCavity) { +this.isProgressive = this.isXLowToHigh = true; +}}if (this.thisAtomSet == null) this.thisAtomSet = JU.BSUtil.setAll(this.myAtomCount); +}, "~B"); +Clazz.overrideMethod(c$, "generateCube", +function(){ +if (this.isCavity && this.params.theProperty != null) return; +if (this.isCavity && this.dataType != 1207 && this.dataType != 1208) { +this.params.vertexSource = null; +this.newVoxelDataCube(); +this.resetVoxelData(3.4028235E38); +this.markSphereVoxels(this.cavityRadius, this.params.distance); +this.generateSolventCavity(); +this.resetVoxelData(3.4028235E38); +this.markSphereVoxels(0, NaN); +} else { +this.voxelSource = Clazz.newIntArray (this.volumeData.nPoints, 0); +this.generateSolventCube(); +}this.unsetVoxelData(); +var info = this.params.slabInfo; +if (info != null) for (var i = 0; i < info.size(); i++) if ((info.get(i)[2]).booleanValue() && Clazz.instanceOf(info.get(i)[0],"JU.P4")) { +this.volumeData.capData(info.get(i)[0], this.params.cutoff); +info.removeItemAt(i--); +} +}); +Clazz.overrideMethod(c$, "getSurfacePointAndFraction", +function(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA0, vB0, fReturn, ptReturn){ +var vA = this.marchingCubes.getLinearOffset(x, y, z, vA0); +var vB = this.marchingCubes.getLinearOffset(x, y, z, vB0); +this.isSurfacePoint = (this.bsSurfaceVoxels != null && (this.bsSurfaceVoxels.get(vA) || this.bsSurfaceVoxels.get(vB))); +if (this.voxelSource != null) { +var vs = Math.abs(Float.isNaN(valueB) || valueA < valueB ? this.voxelSource[vA] : this.voxelSource[vB]); +if (vs > 0) this.iAtomSurface = this.atomIndex[vs - 1]; +}if (J.jvxl.readers.IsoSolventReader.testLinear || this.voxelSource == null || this.voxelSource[vA] == 0 || this.voxelSource[vA] != this.voxelSource[vB]) return this.getSPF(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn); +var fraction = fReturn[0] = JU.MeshSurface.getSphericalInterpolationFraction((this.voxelSource[vA] < 0 ? this.sr : this.atomRadius[this.voxelSource[vA] - 1]), valueA, valueB, edgeVector.length()); +ptReturn.scaleAdd2(fraction, edgeVector, pointA); +var diff = valueB - valueA; +return valueA + fraction * diff; +}, "~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3"); +Clazz.overrideMethod(c$, "addVertexCopy", +function(vertexXYZ, value, assocVertex, asCopy){ +var i = this.addVC(vertexXYZ, value, assocVertex, asCopy); +if (i < 0) return i; +if (this.isSurfacePoint) this.bsSurfacePoints.set(i); +if (this.params.vertexSource != null) this.params.vertexSource[i] = this.iAtomSurface; +return i; +}, "JU.T3,~N,~N,~B"); +Clazz.overrideMethod(c$, "selectPocket", +function(doExclude){ +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 1, null); +var v = this.meshData.vs; +var nVertices = this.meshData.vc; +var vv = this.meshData.vvs; +var nDots = this.dots.length; +for (var i = 0; i < nVertices; i++) { +for (var j = 0; j < nDots; j++) { +if (this.dots[j].distance(v[i]) < this.envelopeRadius) { +vv[i] = NaN; +continue; +}} +} +this.meshData.getSurfaceSet(); +var nSets = this.meshData.nSets; +var pocketSet = JU.BS.newN(nSets); +var ss; +for (var i = 0; i < nSets; i++) if ((ss = this.meshData.surfaceSet[i]) != null) for (var j = ss.nextSetBit(0); j >= 0; j = ss.nextSetBit(j + 1)) if (Float.isNaN(this.meshData.vvs[j])) { +pocketSet.set(i); +break; +} + +for (var i = 0; i < nSets; i++) if (this.meshData.surfaceSet[i] != null && pocketSet.get(i) == doExclude) this.meshData.invalidateSurfaceSet(i); + +this.updateSurfaceData(); +if (!doExclude) this.meshData.surfaceSet = null; +if (this.meshDataServer != null) { +this.meshDataServer.fillMeshData(this.meshData, 3, null); +this.meshData = new J.jvxl.data.MeshData(); +}}, "~B"); +Clazz.overrideMethod(c$, "postProcessVertices", +function(){ +this.setVertexSource(); +if (this.doCalculateTroughs && this.bsSurfacePoints != null) { +var bsAll = new JU.BS(); +var bsSurfaces = this.meshData.getSurfaceSet(); +var bsSources = null; +var volumes = (this.isPocket ? null : J.jvxl.data.MeshData.calculateVolumeOrArea(this.meshData, null, false, false)); +var minVolume = (this.isCavity ? (1.5 * 3.141592653589793 * Math.pow(this.sr, 3)) : 0); +var maxVolume = 0; +var maxIsNegative = false; +if (volumes != null && !this.isCavity) for (var i = 0; i < this.meshData.nSets; i++) { +var v = volumes[i]; +if (Math.abs(v) > maxVolume) { +maxVolume = Math.abs(v); +maxIsNegative = (v < 0); +}} +var factor = (maxIsNegative ? -1 : 1); +for (var i = 0; i < this.meshData.nSets; i++) { +var bss = bsSurfaces[i]; +if (bss.intersects(this.bsSurfacePoints)) { +if (volumes == null || volumes[i] * factor > minVolume) if (this.params.vertexSource != null) { +var bs = new JU.BS(); +if (bsSources == null) bsSources = new Array(bsSurfaces.length); +for (var j = bss.nextSetBit(0); j >= 0; j = bss.nextSetBit(j + 1)) { +var iatom = this.params.vertexSource[j]; +if (iatom < 0) continue; +if (bsAll.get(iatom)) { +this.meshData.invalidateSurfaceSet(i); +break; +}bs.set(iatom); +} +bsAll.or(bs); +continue; +}}this.meshData.invalidateSurfaceSet(i); +} +this.updateSurfaceData(); +if (this.meshDataServer != null) { +this.meshDataServer.fillMeshData(this.meshData, 3, null); +this.meshData = new J.jvxl.data.MeshData(); +}}if (this.params.thePlane != null && this.params.slabInfo == null) this.params.addSlabInfo(JU.TempArray.getSlabWithinRange(-100, 0)); +}); +Clazz.defineMethod(c$, "generateSolventCavity", +function(){ +var bs = JU.BS.newN(this.nPointsX * this.nPointsY * this.nPointsZ); +var i = 0; +var nDots = this.dots.length; +var n = 0; +var d; +var r2 = this.envelopeRadius; +for (var x = 0; x < this.nPointsX; ++x) for (var y = 0; y < this.nPointsY; ++y) { +out : for (var z = 0; z < this.nPointsZ; ++z, ++i) if ((d = this.voxelData[x][y][z]) < 3.4028235E38 && d >= this.cavityRadius) { +this.volumeData.voxelPtToXYZ(x, y, z, this.ptV); +for (var j = 0; j < nDots; j++) { +if (this.dots[j].distance(this.ptV) < r2) continue out; +} +bs.set(i); +n++; +} +} + +JU.Logger.info("cavities include " + n + " voxel points"); +this.atomRadius = Clazz.newFloatArray (n, 0); +this.atomXyzTruncated = new Array(n); +for (var x = 0, ipt = 0, apt = 0; x < this.nPointsX; ++x) for (var y = 0; y < this.nPointsY; ++y) for (var z = 0; z < this.nPointsZ; ++z) if (bs.get(ipt++)) { +this.volumeData.voxelPtToXYZ(x, y, z, (this.atomXyzTruncated[apt] = new JU.P3())); +this.atomRadius[apt++] = this.voxelData[x][y][z]; +} + + +this.myAtomCount = this.firstNearbyAtom = n; +this.thisAtomSet = JU.BSUtil.setAll(this.myAtomCount); +this.rs = null; +this.setRadii(); +}); +Clazz.defineMethod(c$, "generateSolventCube", +function(){ +if (this.dataType == 1207) return; +this.params.vertexSource = Clazz.newIntArray (this.volumeData.nPoints, 0); +this.bsSurfaceDone = new JU.BS(); +this.bsSurfaceVoxels = new JU.BS(); +this.bsSurfacePoints = new JU.BS(); +if (this.doCalculateTroughs) { +this.iter = this.sg.atomDataServer.getSelectedAtomIterator(this.bsMySelected, true, false, false); +this.vEdges = new JU.Lst(); +this.bsLocale = new Array(this.myAtomCount); +this.htEdges = new java.util.Hashtable(); +this.getEdges(); +JU.Logger.info(this.vEdges.size() + " edges"); +this.vFaces = new JU.Lst(); +this.getFaces(); +JU.Logger.info(this.vFaces.size() + " faces"); +this.bsLocale = null; +this.htEdges = null; +this.iter.release(); +this.iter = null; +this.newVoxelDataCube(); +this.resetVoxelData(3.4028235E38); +this.markFaceVoxels(true); +this.markToroidVoxels(); +this.validSpheres.or(this.noFaceSpheres); +this.vEdges = null; +this.markFaceVoxels(false); +this.vFaces = null; +} else { +this.newVoxelDataCube(); +this.resetVoxelData(3.4028235E38); +}this.markSphereVoxels(0, this.doCalculateTroughs ? 3.4028235E38 : this.params.distance); +this.noFaceSpheres = null; +this.validSpheres = null; +}); +Clazz.defineMethod(c$, "getEdges", +function(){ +for (var iatomA = 0; iatomA < this.myAtomCount; iatomA++) this.bsLocale[iatomA] = new JU.BS(); + +for (var iatomA = 0; iatomA < this.myAtomCount; iatomA++) { +var ptA = this.atomXyzTruncated[iatomA]; +var rA = this.rs[iatomA]; +this.sg.atomDataServer.setIteratorForAtom(this.iter, this.atomIndex[iatomA], rA + this.maxRS); +while (this.iter.hasNext()) { +var iB = this.iter.next(); +var iatomB = this.myIndex[iB]; +if (iatomA >= this.firstNearbyAtom && iatomB >= this.firstNearbyAtom) continue; +var ptB = this.atomXyzTruncated[iatomB]; +var rB = this.rs[iatomB]; +var dAB = ptA.distance(ptB); +if (dAB >= rA + rB) continue; +var edge = Clazz.innerTypeInstance(J.jvxl.readers.IsoSolventReader.Edge, this, null, this, iatomA, iatomB, dAB); +this.vEdges.addLast(edge); +this.bsLocale[iatomA].set(iatomB); +this.bsLocale[iatomB].set(iatomA); +this.htEdges.put(edge.toString(), edge); +} +} +}); +Clazz.defineMethod(c$, "findEdge", +function(i, j){ +return this.htEdges.get(i < j ? i + "_" + j : j + "_" + i); +}, "~N,~N"); +Clazz.defineMethod(c$, "getFaces", +function(){ +var bs = new JU.BS(); +this.params.surfaceAtoms = this.validSpheres = new JU.BS(); +this.noFaceSpheres = JU.BSUtil.setAll(this.myAtomCount); +for (var i = this.vEdges.size(); --i >= 0; ) { +var edge = this.vEdges.get(i); +var ia = edge.ia; +var ib = edge.ib; +bs.clearAll(); +bs.or(this.bsLocale[ia]); +bs.and(this.bsLocale[ib]); +for (var ic = bs.nextSetBit(ib + 1); ic >= 0; ic = bs.nextSetBit(ic + 1)) { +if (this.getSolventPoints(edge, ia, ib, ic)) { +var f; +var isOK = false; +if ((f = this.validateFace(ia, ib, ic, edge, this.ptS1)) != null) { +this.vFaces.addLast(f); +isOK = true; +}if ((f = this.validateFace(ia, ib, ic, edge, this.ptS2)) != null) { +this.vFaces.addLast(f); +isOK = true; +}if (isOK) { +this.noFaceSpheres.clear(ia); +this.noFaceSpheres.clear(ib); +this.noFaceSpheres.clear(ic); +}}} +} +}); +Clazz.defineMethod(c$, "validateFace", +function(ia, ib, ic, edge, ptS){ +this.sg.atomDataServer.setIteratorForPoint(this.iter, this.modelIndex, ptS, this.maxRS); +var isValid = true; +while (this.iter.hasNext()) { +var iia = this.iter.next(); +var iatom = this.myIndex[iia]; +if (iatom == ia || iatom == ib || iatom == ic) continue; +var d = this.atomData.atoms[iia].distance(ptS); +if (d < this.atomData.atomRadius[iia] + this.sr) { +isValid = false; +break; +}} +var bc = this.findEdge(ib, ic); +var ca = this.findEdge(ia, ic); +var f = (isValid ? Clazz.innerTypeInstance(J.jvxl.readers.IsoSolventReader.Face, this, null, ia, ib, ic, ptS) : null); +edge.addFace(f); +bc.addFace(f); +ca.addFace(f); +if (!isValid) return null; +this.validSpheres.set(ia); +this.validSpheres.set(ib); +this.validSpheres.set(ic); +return f; +}, "~N,~N,~N,J.jvxl.readers.IsoSolventReader.Edge,JU.P3"); +Clazz.defineMethod(c$, "markFaceVoxels", +function(firstPass){ +var bsThisPass = new JU.BS(); +var v0 = this.volumetricVectors[0]; +var v1 = this.volumetricVectors[1]; +var v2 = this.volumetricVectors[2]; +for (var fi = this.vFaces.size(); --fi >= 0; ) { +var f = this.vFaces.get(fi); +var ptA = this.atomXyzTruncated[f.ia]; +var ptB = this.atomXyzTruncated[f.ib]; +var ptC = this.atomXyzTruncated[f.ic]; +var ptS = f.pS; +this.setGridLimitsForAtom(ptS, this.sr, this.pt0, this.pt1); +this.volumeData.voxelPtToXYZ(this.pt0.x, this.pt0.y, this.pt0.z, this.ptV); +for (var i = this.pt0.x; i < this.pt1.x; i++, this.ptV.add2(v0, this.ptY0)) { +this.ptY0.setT(this.ptV); +for (var j = this.pt0.y; j < this.pt1.y; j++, this.ptV.add2(v1, this.ptZ0)) { +this.ptZ0.setT(this.ptV); +for (var k = this.pt0.z; k < this.pt1.z; k++, this.ptV.add(v2)) { +var value = this.sr - this.ptV.distance(ptS); +var v = this.voxelData[i][j][k]; +var ipt = this.volumeData.getPointIndex(i, j, k); +if (firstPass && value > 0) this.bsSurfaceDone.set(ipt); +if (JU.Measure.isInTetrahedron(this.ptV, ptA, ptB, ptC, ptS, this.plane, this.vTemp, this.vTemp2, false)) { +if (!firstPass ? !this.bsSurfaceDone.get(ipt) && value < 0 && value > -this.volumeData.maxGrid * 1.8 && (value > v) == bsThisPass.get(ipt) : (value > 0 && (v < 0 || v == 3.4028235E38 || (value > v) == bsThisPass.get(ipt)))) { +bsThisPass.set(ipt); +this.setVoxel(i, j, k, ipt, value); +if (this.voxelSource != null) this.voxelSource[ipt] = -1 - f.ia; +if (value > 0) { +this.bsSurfaceVoxels.set(ipt); +}}}} +} +} +} +}, "~B"); +Clazz.defineMethod(c$, "markToroidVoxels", +function(){ +var v0 = this.volumetricVectors[0]; +var v1 = this.volumetricVectors[1]; +var v2 = this.volumetricVectors[2]; +for (var ei = this.vEdges.size(); --ei >= 0; ) { +var edge = this.vEdges.get(ei); +if (!edge.isValid()) continue; +var ia = edge.ia; +var ib = edge.ib; +var ptA = this.atomXyzTruncated[ia]; +var ptB = this.atomXyzTruncated[ib]; +this.rAS = this.rs[ia]; +this.rBS = this.rs[ib]; +this.rAS2 = this.rs2[ia]; +this.rBS2 = this.rs2[ib]; +this.dAB = edge.d; +this.dAB2 = edge.d2; +this.ecosASB2 = edge.cosASB2; +this.setGridLimitsForAtom(edge, edge.maxr, this.pt0, this.pt1); +this.volumeData.voxelPtToXYZ(this.pt0.x, this.pt0.y, this.pt0.z, this.ptV); +for (var i = this.pt0.x; i < this.pt1.x; i++, this.ptV.add2(v0, this.ptY0)) { +this.ptY0.setT(this.ptV); +for (var j = this.pt0.y; j < this.pt1.y; j++, this.ptV.add2(v1, this.ptZ0)) { +this.ptZ0.setT(this.ptV); +for (var k = this.pt0.z; k < this.pt1.z; k++, this.ptV.add(v2)) { +var dVS = this.checkSpecialVoxel(ptA, ptB, this.ptV); +if (Float.isNaN(dVS)) continue; +var value = this.sr - dVS; +if (value < this.voxelData[i][j][k]) { +var ipt = this.volumeData.getPointIndex(i, j, k); +this.setVoxel(i, j, k, ipt, value); +if (this.voxelSource != null) this.voxelSource[ipt] = -1 - ia; +}} +} +} +} +}); +Clazz.overrideMethod(c$, "unsetVoxelData", +function(){ +if (!this.havePlane) { +this.unsetVoxelData2(); +return; +}if (this.isProgressive) for (var i = 0; i < this.yzCount; i++) { +if (this.thisPlane[i] < 0.001) { +} else { +this.thisPlane[i] = 0.001; +}} + else for (var x = 0; x < this.nPointsX; ++x) for (var y = 0; y < this.nPointsY; ++y) for (var z = 0; z < this.nPointsZ; ++z) if (this.voxelData[x][y][z] < 0.001) { +} else { +this.voxelData[x][y][z] = 0.001; +} + + +}); +Clazz.defineMethod(c$, "getSolventPoints", +function(edge, ia, ib, ic){ +var rAS = this.rs[ia]; +var v = edge.v; +var cosAngleBAS = (edge.d2 + this.rs2[ia] - this.rs2[ib]) / (2 * edge.d * rAS); +var angleBAS = Math.acos(cosAngleBAS); +this.p.scaleAdd2(cosAngleBAS * rAS, v, this.atomXyzTruncated[ia]); +JU.Measure.getPlaneThroughPoint(this.p, v, this.plane); +var dPS = (Math.sin(angleBAS) * rAS); +var ptC = this.atomXyzTruncated[ic]; +var rCS = this.rs[ic]; +var dCT = JU.Measure.distanceToPlane(this.plane, ptC); +if (Math.abs(dCT) >= rCS * 0.9) return false; +this.ptTemp.scaleAdd2(-dCT, v, ptC); +var dpT = this.p.distance(this.ptTemp); +var dsp2 = dPS * dPS; +var dST2 = this.rs2[ic] - dCT * dCT; +var cosTheta = (dsp2 + dpT * dpT - dST2) / (2 * dPS * dpT); +if (Math.abs(cosTheta) >= 0.99) return false; +var vXS = this.vTemp2; +vXS.sub2(this.ptTemp, this.p); +vXS.normalize(); +this.ptTemp.scaleAdd2(dPS * cosTheta, vXS, this.p); +vXS.cross(v, vXS); +vXS.normalize(); +vXS.scale((Math.sqrt(1 - cosTheta * cosTheta) * dPS)); +this.ptS1.add2(this.ptTemp, vXS); +this.ptS2.sub2(this.ptTemp, vXS); +return true; +}, "J.jvxl.readers.IsoSolventReader.Edge,~N,~N,~N"); +Clazz.defineMethod(c$, "checkSpecialVoxel", +function(ptA, ptB, ptV){ +var dAV = ptA.distance(ptV); +var dAV2 = ptA.distanceSquared(ptV); +var f = this.rAS / dAV; +if (f > 1) { +this.p.set(ptA.x + (ptV.x - ptA.x) * f, ptA.y + (ptV.y - ptA.y) * f, ptA.z + (ptV.z - ptA.z) * f); +return (ptB.distanceSquared(this.p) >= this.rBS2 ? NaN : this.solventDistance(this.rAS, this.rAS2, this.rBS2, dAV, dAV2, ptB.distanceSquared(ptV))); +}var dBV = ptB.distance(ptV); +if ((f = this.rBS / dBV) > 1) { +this.p.set(ptB.x + (ptV.x - ptB.x) * f, ptB.y + (ptV.y - ptB.y) * f, ptB.z + (ptV.z - ptB.z) * f); +return (ptA.distanceSquared(this.p) >= this.rAS2 ? NaN : this.solventDistance(this.rBS, this.rBS2, this.rAS2, dBV, dBV * dBV, dAV2)); +}return NaN; +}, "JU.P3,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "solventDistance", +function(rAS, rAS2, rBS2, dAV, dAV2, dBV2){ +var angleVAB = Math.acos((dAV2 + this.dAB2 - dBV2) / (2 * dAV * this.dAB)); +var angleSAB = Math.acos((rAS2 + this.dAB2 - rBS2) / (2 * rAS * this.dAB)); +var dVS2 = (rAS2 + dAV2 - 2 * rAS * dAV * Math.cos(angleSAB - angleVAB)); +var dVS = Math.sqrt(dVS2); +return (this.ecosASB2 < (rAS2 + dVS2 - dAV * dAV) / (dVS * rAS) ? dVS : NaN); +}, "~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "dumpLine", +function(pt1, pt2, label, color){ +this.sg.log("draw ID \"x" + label + (this.nTest++) + "\" " + JU.P3.newP(pt1) + " " + JU.P3.newP(pt2) + " color " + color); +}, "JU.P3,JU.T3,~S,~S"); +Clazz.defineMethod(c$, "dumpLine2", +function(pt1, pt2, label, d, color1, color2){ +var pt = new JU.V3(); +pt.setT(pt2); +pt.sub(pt1); +pt.normalize(); +pt.scale(d); +pt.add(pt1); +this.sg.log("draw ID \"" + label + (this.nTest++) + "\" " + JU.P3.newP(pt1) + " " + JU.P3.newP(pt) + " color " + color1); +this.sg.log("draw ID \"" + label + (this.nTest++) + "\"" + JU.P3.newP(pt) + " " + JU.P3.newP(pt2) + " color " + color2 + "\"" + label + "\""); +}, "JU.P3,JU.P3,~S,~N,~S,~S"); +Clazz.defineMethod(c$, "dumpPoint", +function(pt, label, color){ +this.sg.log("draw ID \"" + label + (this.nTest++) + "\"" + JU.P3.newP(pt) + " color " + color); +}, "JU.P3,~S,~S"); +Clazz.overrideMethod(c$, "getValueAtPoint", +function(pt, getSource){ +if (this.contactPair != null) return pt.distance(this.contactPair.myAtoms[1]) - this.contactPair.radii[1]; +var value = 3.4028235E38; +for (var iAtom = 0; iAtom < this.firstNearbyAtom; iAtom++) { +var r = pt.distance(this.atomXyzTruncated[iAtom]) - this.rs[iAtom]; +if (r < value) value = r; +} +return (value == 3.4028235E38 ? NaN : value); +}, "JU.T3,~B"); +Clazz.overrideMethod(c$, "discardTempData", +function(discardAll){ +this.rs = null; +this.rs2 = null; +this.discardTempDataSR(discardAll); +}, "~B"); +Clazz.overrideMethod(c$, "getPlane", +function(x){ +if (this.yzCount == 0) { +this.initPlanes(); +}this.thisX = x; +this.thisPlane = this.yzPlanes[x % 2]; +if (this.contactPair == null) { +this.resetPlane(3.4028235E38); +this.thisAtomSet = this.bsAtomMinMax[x]; +this.markSphereVoxels(0, this.params.distance); +this.unsetVoxelData(); +} else { +this.markPlaneVoxels(this.contactPair.myAtoms[0], this.contactPair.radii[0]); +}return this.thisPlane; +}, "~N"); +c$.$IsoSolventReader$Edge$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +this.ia = 0; +this.ib = 0; +this.nFaces = 0; +this.nInvalid = 0; +this.d = 0; +this.d2 = 0; +this.maxr = 0; +this.cosASB2 = 0; +this.v = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers.IsoSolventReader, "Edge", JU.P3); +Clazz.overrideConstructor(c$, +function(r, ia, ib, d){ +this.ia = Math.min(ia, ib); +this.ib = Math.max(ia, ib); +this.d = d; +this.d2 = d * d; +this.maxr = Math.sqrt(this.d2 / 4 + Math.max(r.rs2[ia], r.rs2[ib])); +this.ave(r.atomXyzTruncated[ia], r.atomXyzTruncated[ib]); +this.cosASB2 = (r.rs2[ia] + r.rs2[ib] - this.d2) / (r.rs[ib] * r.rs[ia]); +this.v = JU.V3.newVsub(r.atomXyzTruncated[ib], r.atomXyzTruncated[ia]); +this.v.normalize(); +}, "J.jvxl.readers.IsoSolventReader,~N,~N,~N"); +Clazz.defineMethod(c$, "addFace", +function(f){ +this.nFaces++; +if (f == null) { +this.nInvalid++; +return; +}}, "J.jvxl.readers.IsoSolventReader.Face"); +Clazz.defineMethod(c$, "isValid", +function(){ +return (this.nFaces == 0 || this.nInvalid != this.nFaces); +}); +Clazz.overrideMethod(c$, "toString", +function(){ +return this.ia + "_" + this.ib; +}); +/*eoif4*/})(); +}; +c$.$IsoSolventReader$Face$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +this.ia = 0; +this.ib = 0; +this.ic = 0; +this.pS = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers.IsoSolventReader, "Face", null); +Clazz.makeConstructor(c$, +function(ia, ib, ic, pS){ +this.ia = ia; +this.ib = ib; +this.ic = ic; +this.pS = JU.P3.newP(pS); +}, "~N,~N,~N,JU.P3"); +Clazz.overrideMethod(c$, "toString", +function(){ +return this.ia + "_" + this.ib + "_" + this.ic + "_" + this.pS; +}); +/*eoif4*/})(); +}; +c$.testLinear = false; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/JaguarReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/JaguarReader.js new file mode 100755 index 000000000000..085f348f2022 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/JaguarReader.js @@ -0,0 +1,56 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader"], "J.jvxl.readers.JaguarReader", ["JU.PT", "$.SB"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.extents = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "JaguarReader", J.jvxl.readers.VolumeFileReader); +Clazz.prepareFields (c$, function(){ +this.extents = Clazz.newFloatArray (3, 0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.JaguarReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2VFR(sg, br); +this.nSurfaces = 1; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append("Jaguar data\n"); +this.jvxlFileHeaderBuffer.append("\n"); +var atomLine; +while ((atomLine = this.rd()) != null && atomLine.indexOf("origin=") < 0) { +} +var tokens = JU.PT.getTokensAt(atomLine, 0); +if (tokens.length == 4 && tokens[0].equals("origin=")) { +this.volumetricOrigin.set(this.parseFloatStr(tokens[1]), this.parseFloatStr(tokens[2]), this.parseFloatStr(tokens[3])); +J.jvxl.readers.VolumeFileReader.checkAtomLine(this.isXLowToHigh, this.isAngstroms, "0", "0 " + tokens[1] + " " + tokens[2] + " " + tokens[3], this.jvxlFileHeaderBuffer); +if (!this.isAngstroms) this.volumetricOrigin.scale(0.5291772); +}this.readExtents(0); +this.readExtents(1); +this.readExtents(2); +tokens = JU.PT.getTokens(this.rd()); +this.voxelCounts[0] = this.parseIntStr(tokens[1]); +this.voxelCounts[1] = this.parseIntStr(tokens[2]); +this.voxelCounts[2] = this.parseIntStr(tokens[3]); +var factor = (this.isAngstroms ? 1 : 0.5291772); +var d = this.extents[0] / (this.voxelCounts[0] - 1); +this.volumetricVectors[0].set(d * factor, 0, 0); +this.jvxlFileHeaderBuffer.append(this.voxelCounts[0] + " " + d + " 0.0 0.0\n"); +d = this.extents[1] / (this.voxelCounts[1] - 1); +this.volumetricVectors[1].set(0, d * factor, 0); +this.jvxlFileHeaderBuffer.append(this.voxelCounts[1] + " 0.0 " + d + " 0.0\n"); +d = this.extents[2] / (this.voxelCounts[2] - 1); +this.volumetricVectors[2].set(0, 0, d * factor); +this.jvxlFileHeaderBuffer.append(this.voxelCounts[2] + " 0.0 0.0 " + d + "\n"); +this.rd(); +}); +Clazz.defineMethod(c$, "readExtents", +function(voxelVectorIndex){ +var tokens = JU.PT.getTokens(this.rd()); +this.extents[voxelVectorIndex] = this.parseFloatStr(tokens[voxelVectorIndex + 1]); +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/JvxlReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/JvxlReader.js new file mode 100755 index 000000000000..4995b5cb715b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/JvxlReader.js @@ -0,0 +1,195 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.JvxlXmlReader"], "J.jvxl.readers.JvxlReader", ["JU.P4", "$.PT", "$.SB", "J.jvxl.data.JvxlCoder", "J.jvxl.readers.VolumeFileReader", "JU.C", "$.Escape", "$.Logger"], function(){ +var c$ = Clazz.declareType(J.jvxl.readers, "JvxlReader", J.jvxl.readers.JvxlXmlReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.JvxlReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2JXR(sg, br); +this.isXmlFile = false; +this.JVXL_VERSION = "2.0"; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +this.jvxlFileHeaderBuffer = new JU.SB().append(this.skipComments(false)); +if (this.line == null || this.line.length == 0) this.line = "Line 1"; +this.jvxlFileHeaderBuffer.append(this.line).appendC('\n'); +if (this.rd() == null || this.line.length == 0) this.line = "Line 2"; +this.jvxlFileHeaderBuffer.append(this.line).appendC('\n'); +this.jvxlFileHeaderBuffer.append(this.skipComments(false)); +var atomLine = this.line; +var tokens = JU.PT.getTokensAt(atomLine, 0); +this.isXLowToHigh = false; +this.negativeAtomCount = true; +this.ac = 0; +if (tokens[0] === "-0") { +} else if (tokens[0].charAt(0) == '+') { +this.isXLowToHigh = true; +this.ac = this.parseIntStr(tokens[0].substring(1)); +} else { +this.ac = -this.parseIntStr(tokens[0]); +}if (this.ac == -2147483648) return; +this.volumetricOrigin.set(this.parseFloatStr(tokens[1]), this.parseFloatStr(tokens[2]), this.parseFloatStr(tokens[3])); +this.isAngstroms = J.jvxl.readers.VolumeFileReader.checkAtomLine(this.isXLowToHigh, this.isAngstroms, null, atomLine, this.jvxlFileHeaderBuffer); +if (!this.isAngstroms) this.volumetricOrigin.scale(0.5291772); +this.readVoxelVector(0); +this.readVoxelVector(1); +this.readVoxelVector(2); +for (var i = 0; i < this.ac; ++i) this.jvxlFileHeaderBuffer.append(this.rd() + "\n"); + +this.skipComments(true); +JU.Logger.info("Reading extra JVXL information line: " + this.line); +this.nSurfaces = this.parseIntStr(this.line); +if (!(this.isJvxl = (this.nSurfaces < 0))) return; +this.nSurfaces = -this.nSurfaces; +JU.Logger.info("jvxl file surfaces: " + this.nSurfaces); +var ich; +if ((ich = this.parseInt()) == -2147483648) { +JU.Logger.info("using default edge fraction base and range"); +} else { +this.edgeFractionBase = ich; +this.edgeFractionRange = this.parseInt(); +}if ((ich = this.parseInt()) == -2147483648) { +JU.Logger.info("using default color fraction base and range"); +} else { +this.colorFractionBase = ich; +this.colorFractionRange = this.parseInt(); +}this.cJvxlEdgeNaN = String.fromCharCode(this.edgeFractionBase + this.edgeFractionRange); +this.vertexDataOnly = this.jvxlData.vertexDataOnly = (this.volumetricVectors[0].length() == 0); +}); +Clazz.overrideMethod(c$, "jvxlReadFractionData", +function(type, nPoints){ +var str = ""; +try { +while (str.length < nPoints) { +this.rd(); +str += J.jvxl.data.JvxlCoder.jvxlDecompressString(this.line); +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Error reading " + type + " data " + e); +throw new NullPointerException(); +} else { +throw e; +} +} +return str; +}, "~S,~N"); +Clazz.overrideMethod(c$, "gotoData", +function(n, nPoints){ +if (n > 0) JU.Logger.info("skipping " + n + " data sets, " + nPoints + " points each"); +this.vertexDataOnly = this.jvxlData.vertexDataOnly = (nPoints == 0); +for (var i = 0; i < n; i++) { +this.jvxlReadDefinitionLine(true); +JU.Logger.info("JVXL skipping: jvxlSurfaceDataCount=" + this.surfaceDataCount + " jvxlEdgeDataCount=" + this.edgeDataCount + " jvxlDataIsColorMapped=" + this.jvxlDataIsColorMapped); +this.jvxlSkipData(nPoints, true); +} +this.jvxlReadDefinitionLine(true); +}, "~N,~N"); +Clazz.defineMethod(c$, "jvxlReadDefinitionLine", +function(showMsg){ +var comment = this.skipComments(true); +if (showMsg) JU.Logger.info("reading jvxl data set: " + comment + this.line); +this.haveContourData = (comment.indexOf("+contourlines") >= 0); +this.jvxlCutoff = this.parseFloatStr(this.line); +JU.Logger.info("JVXL read: cutoff " + this.jvxlCutoff); +this.jvxlCutoffRange = this.parseFloatArray( Clazz.newFloatArray (2, 0), "[", "]"); +var param1 = this.parseInt(); +var param2 = this.parseInt(); +var param3 = this.parseInt(); +if (param3 == -2147483648 || param3 == -1) param3 = 0; +if (param1 == -1) { +try { +this.params.thePlane = JU.P4.new4(this.parseFloat(), this.parseFloat(), this.parseFloat(), this.parseFloat()); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Error reading 4 floats for PLANE definition -- setting to 0 0 1 0 (z=0)"); +this.params.thePlane = JU.P4.new4(0, 0, 1, 0); +} else { +throw e; +} +} +JU.Logger.info("JVXL read: plane " + this.params.thePlane); +if (param2 == -1 && param3 < 0) param3 = -param3; +} else { +this.params.thePlane = null; +}if (param1 < 0 && param2 != -1) { +this.params.isContoured = (param3 != 0); +var nContoursRead = this.parseInt(); +if (nContoursRead == -2147483648) { +if (this.line.charAt(this.next[0]) == '[') { +this.jvxlData.contourValues = this.params.contoursDiscrete = this.parseFloatArray(null, null, null); +JU.Logger.info("JVXL read: contourValues " + JU.Escape.eAF(this.jvxlData.contourValues)); +this.jvxlData.contourColixes = this.params.contourColixes = JU.C.getColixArray(this.getQuotedStringNext()); +this.jvxlData.contourColors = JU.C.getHexCodes(this.jvxlData.contourColixes); +JU.Logger.info("JVXL read: contourColixes " + this.jvxlData.contourColors); +this.params.nContours = this.jvxlData.contourValues.length; +}} else { +if (nContoursRead < 0) { +nContoursRead = -1 - nContoursRead; +this.params.contourFromZero = false; +}if (nContoursRead != 0 && this.params.nContours == 0) { +this.params.nContours = nContoursRead; +JU.Logger.info("JVXL read: contours " + this.params.nContours); +}}} else { +this.params.isContoured = false; +}this.jvxlData.isJvxlPrecisionColor = (param1 == -1 && param2 == -2 || param3 < 0); +this.params.isBicolorMap = (param1 > 0 && param2 < 0); +this.jvxlDataIsColorMapped = (param3 != 0); +if (this.jvxlDataIsColorMapped) this.jvxlData.colorScheme = "RGB"; +this.jvxlDataIs2dContour = (this.jvxlDataIsColorMapped && this.params.isContoured); +if (this.params.isBicolorMap || this.params.colorBySign) this.jvxlCutoff = 0; +this.surfaceDataCount = (param1 < -1 ? -1 - param1 : param1 > 0 ? param1 : 0); +if (param1 == -1) this.edgeDataCount = 0; + else this.edgeDataCount = (param2 < -1 ? -param2 : param2 > 0 ? param2 : 0); +this.colorDataCount = (this.params.isBicolorMap ? -param2 : param3 < -1 ? -param3 : param3 > 0 ? param3 : 0); +if (this.params.colorBySign) this.params.isBicolorMap = true; +var dataMin = NaN; +var dataMax = NaN; +var red = NaN; +var blue = NaN; +var insideOut = (this.line.indexOf("insideOut") >= 0); +if (this.jvxlDataIsColorMapped) { +dataMin = this.parseFloat(); +dataMax = this.parseFloat(); +red = this.parseFloat(); +blue = this.parseFloat(); +}this.jvxlSetColorRanges(dataMin, dataMax, red, blue, insideOut); +}, "~B"); +Clazz.overrideMethod(c$, "readSurfaceData", +function(isMapDataIgnored){ +this.thisInside = !this.params.isContoured; +if (!this.readSurfaceDataXML()) this.readSurfaceDataJXR(); +}, "~B"); +Clazz.overrideMethod(c$, "jvxlSkipData", +function(nPoints, doSkipColorData){ +if (this.surfaceDataCount > 0) this.jvxlSkipDataBlock(nPoints, true); +if (this.edgeDataCount > 0) this.jvxlSkipDataBlock(this.edgeDataCount, false); +if (this.jvxlDataIsColorMapped && doSkipColorData) this.jvxlSkipDataBlock(this.colorDataCount, false); +}, "~N,~B"); +Clazz.defineMethod(c$, "jvxlSkipDataBlock", +function(nPoints, isInt){ +var n = 0; +while (n < nPoints) { +this.rd(); +n += (isInt ? this.countData(this.line) : J.jvxl.data.JvxlCoder.jvxlDecompressString(this.line).length); +} +}, "~N,~B"); +Clazz.defineMethod(c$, "countData", +function(str){ +var $private = Clazz.checkPrivateMethod (arguments); +if ($private != null) { +return $private.apply (this, arguments); +} +var count = 0; +var n = this.parseIntStr(str); +while (n != -2147483648) { +count += n; +n = this.parseIntNext(str); +} +return count; +}, "~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/JvxlXmlReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/JvxlXmlReader.js new file mode 100755 index 000000000000..fa35f9ebf95f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/JvxlXmlReader.js @@ -0,0 +1,700 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader"], "J.jvxl.readers.JvxlXmlReader", ["java.util.Hashtable", "JU.AU", "$.BS", "$.CU", "$.Lst", "$.P3", "$.P4", "$.PT", "$.SB", "J.jvxl.data.JvxlCoder", "$.MeshData", "J.jvxl.readers.XmlReader", "J.shapesurface.IsosurfaceMesh", "JU.C", "$.ColorEncoder", "$.Escape", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.JVXL_VERSION = "2.3"; +this.surfaceDataCount = 0; +this.edgeDataCount = 0; +this.colorDataCount = 0; +this.excludedTriangleCount = 0; +this.excludedVertexCount = 0; +this.invalidatedVertexCount = 0; +this.haveContourData = false; +this.xr = null; +this.isXmlFile = true; +this.thisInside = false; +this.tempDataXml = null; +this.bsVoxelBitSet = null; +this.includeValueNaN = true; +this.valueCount = 0; +this.valueMin = NaN; +this.valueRange = NaN; +this.fractionPtr = 0; +this.colorPtr = 0; +this.strFractionTemp = ""; +this.haveReadColorData = false; +this.jvxlColorEncodingRead = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "JvxlXmlReader", J.jvxl.readers.VolumeFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.JvxlXmlReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2JXR(sg, br); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "init2JXR", +function(sg, br){ +this.init2VFR(sg, br); +this.jvxlData.wasJvxl = this.isJvxl = true; +this.isXLowToHigh = this.canDownsample = false; +this.xr = new J.jvxl.readers.XmlReader(br); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readVolumeData", +function(isMapData){ +if (!this.readVolumeDataVFR(isMapData)) return false; +this.strFractionTemp = this.jvxlEdgeDataRead; +this.fractionPtr = 0; +return true; +}, "~B"); +Clazz.overrideMethod(c$, "gotoAndReadVoxelData", +function(isMapData){ +this.initializeVolumetricData(); +if (this.nPointsX < 0 || this.nPointsY < 0 || this.nPointsZ < 0) return true; +try { +this.gotoData(this.params.fileIndex - 1, this.nPointsX * this.nPointsY * this.nPointsZ); +if (this.vertexDataOnly) return true; +this.volumeData.setMappingPlane(this.params.thePlane); +this.readSurfaceData(isMapData); +this.volumeData.setMappingPlane(null); +if (this.edgeDataCount > 0) this.jvxlEdgeDataRead = this.jvxlReadFractionData("edge", this.edgeDataCount); +this.params.bsExcluded = this.jvxlData.jvxlExcluded = new Array(4); +this.hasColorData = (this.colorDataCount > 0); +if (this.hasColorData) this.jvxlColorDataRead = this.jvxlReadFractionData("color", this.colorDataCount); +if (this.excludedVertexCount > 0) { +this.jvxlData.jvxlExcluded[0] = J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlExcludedVertexData", null, false, false)); +if (this.xr.isNext("jvxlExcludedPlaneData")) this.jvxlData.jvxlExcluded[2] = J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlExcludedPlaneData", null, false, false)); +}if (this.excludedTriangleCount > 0) this.jvxlData.jvxlExcluded[3] = J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlExcludedTriangleData", null, false, false)); +if (this.invalidatedVertexCount > 0) this.jvxlData.jvxlExcluded[1] = J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlInvalidatedVertexData", null, false, false)); +if (this.haveContourData) this.jvxlDecodeContourData(this.jvxlData, this.xr.getXmlData("jvxlContourData", null, false, false)); +if (this.jvxlDataIsColorMapped && this.jvxlData.nVertexColors > 0) { +this.jvxlData.vertexColorMap = new java.util.Hashtable(); +var vdata = this.xr.getXmlData("jvxlVertexColorData", null, true, false); +var baseColor = J.jvxl.readers.XmlReader.getXmlAttrib(vdata, "baseColor"); +this.jvxlData.baseColor = (baseColor.length > 0 ? baseColor : null); +for (var i = 0; i < this.jvxlData.nVertexColors; i++) { +var s = this.xr.getXmlData("jvxlColorMap", vdata, true, false); +var color = J.jvxl.readers.XmlReader.getXmlAttrib(s, "color"); +var bs = J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlColorMap", s, false, false)); +this.jvxlData.vertexColorMap.put(color, bs); +} +}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error(e.toString()); +return false; +} else { +throw e; +} +} +return true; +}, "~B"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +var s = this.xr.getXmlDataLF("jvxlFileTitle", null, false, false, true); +this.jvxlFileHeaderBuffer = JU.SB.newS(s == null ? "" : s); +this.xr.toTag("jvxlVolumeData"); +var data = this.tempDataXml = this.xr.getXmlData("jvxlVolumeData", null, true, false); +this.volumetricOrigin.setT(this.xr.getXmlPoint(data, "origin")); +this.isAngstroms = true; +this.readVector(0); +this.readVector(1); +this.readVector(2); +this.line = this.xr.toTag("jvxlSurfaceSet"); +this.nSurfaces = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(this.line, "count")); +JU.Logger.info("jvxl file surfaces: " + this.nSurfaces); +JU.Logger.info("using default edge fraction base and range"); +JU.Logger.info("using default color fraction base and range"); +this.cJvxlEdgeNaN = String.fromCharCode(this.edgeFractionBase + this.edgeFractionRange); +}); +Clazz.overrideMethod(c$, "getJVXLCutoff", +function(){ +return this.params.cutoff; +}); +Clazz.defineMethod(c$, "readVector", +function(voxelVectorIndex){ +var data = this.xr.getXmlData("jvxlVolumeVector", this.tempDataXml, true, true); +this.tempDataXml = this.tempDataXml.substring(this.tempDataXml.indexOf(data) + data.length); +var n = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "count")); +if (n == -2147483648) this.vertexDataOnly = true; +this.voxelCounts[voxelVectorIndex] = (n < 0 ? 0 : n); +this.volumetricVectors[voxelVectorIndex].setT(this.xr.getXmlPoint(data, "vector")); +if (this.isAnisotropic) this.setVectorAnisotropy(this.volumetricVectors[voxelVectorIndex]); +}, "~N"); +Clazz.overrideMethod(c$, "gotoData", +function(n, nPoints){ +if (n > 0) JU.Logger.info("skipping " + n + " data sets, " + nPoints + " points each"); +this.vertexDataOnly = this.jvxlData.vertexDataOnly = (nPoints == 0); +for (var i = 0; i < n; i++) { +this.jvxlSkipData(nPoints, true); +} +this.xr.toTag("jvxlSurface"); +this.jvxlReadSurfaceInfo(); +}, "~N,~N"); +Clazz.defineMethod(c$, "jvxlSkipData", +function(nPoints, doSkipColorData){ +this.rd(); +this.xr.skipTag("jvxlSurface"); +}, "~N,~B"); +Clazz.defineMethod(c$, "jvxlReadSurfaceInfo", +function(){ +var data = this.xr.getXmlData("jvxlSurfaceInfo", null, true, true); +this.isXLowToHigh = J.jvxl.readers.XmlReader.getXmlAttrib(data, "isXLowToHigh").equals("true"); +var s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "cutoff"); +if (s.indexOf(" ") < 0) { +this.jvxlCutoff = this.parseFloatStr(s); +if (!Double.isNaN(this.jvxlCutoff)) JU.Logger.info("JVXL read: cutoff " + this.jvxlCutoff); +} else { +this.jvxlCutoffRange = this.parseFloatArrayStr(s); +this.jvxlCutoff = this.jvxlCutoffRange[0]; +JU.Logger.info("JVXL read: cutoff " + JU.Escape.eAF(this.jvxlCutoffRange)); +}this.params.cutoff = this.jvxlCutoff; +var nContourData = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "nContourData")); +this.haveContourData = (nContourData > 0); +this.params.isContoured = this.jvxlData.isModelConnected = J.jvxl.readers.XmlReader.getXmlAttrib(data, "contoured").equals("true"); +this.params.isModelConnected = J.jvxl.readers.XmlReader.getXmlAttrib(data, "isModelConnected").equals("true"); +if (this.params.isContoured) { +var nContoursRead = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "nContours")); +if (nContoursRead <= 0) { +nContoursRead = 0; +} else { +if (this.params.thisContour < 0) this.params.thisContour = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "thisContour")); +s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "contourValues"); +if (s.length > 0) { +s = s.$replace('[', ' ').$replace(']', ' '); +this.jvxlData.contourValues = this.params.contoursDiscrete = this.parseFloatArrayStr(s); +JU.Logger.info("JVXL read: contourValues " + JU.Escape.eAF(this.jvxlData.contourValues)); +}s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "contourColors"); +if (s.length > 0) { +this.jvxlData.contourColixes = this.params.contourColixes = JU.C.getColixArray(s); +this.jvxlData.contourColors = JU.C.getHexCodes(this.jvxlData.contourColixes); +JU.Logger.info("JVXL read: contourColixes " + JU.C.getHexCodes(this.jvxlData.contourColixes)); +}this.params.contourFromZero = J.jvxl.readers.XmlReader.getXmlAttrib(data, "contourFromZero").equals("true"); +}this.params.nContours = (this.haveContourData ? nContourData : nContoursRead); +}this.jvxlData.nVertexColors = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "nVertexColors")); +this.params.isBicolorMap = J.jvxl.readers.XmlReader.getXmlAttrib(data, "bicolorMap").equals("true"); +if (this.params.isBicolorMap) { +s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "colorPositive"); +if (s.length > 0 && this.params.colorRgb == -2147483648 && this.params.colorPos == -16776961) this.params.colorPos = JU.CU.getArgbFromString(s); +s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "colorNegative"); +if (s.length > 0 && this.params.colorRgb == -2147483648 && this.params.colorNeg == -65536) this.params.colorNeg = JU.CU.getArgbFromString(s); +}if (this.params.isBicolorMap || this.params.colorBySign) this.jvxlCutoff = 0; +this.jvxlDataIsColorMapped = ((this.params.colorRgb == -2147483648 || this.params.colorRgb == 2147483647) && (this.params.isBicolorMap || J.jvxl.readers.XmlReader.getXmlAttrib(data, "colorMapped").equals("true"))); +this.jvxlData.isJvxlPrecisionColor = J.jvxl.readers.XmlReader.getXmlAttrib(data, "precisionColor").equals("true"); +this.jvxlData.jvxlDataIsColorDensity = this.params.colorDensity = (this.params.colorRgb == -2147483648 && J.jvxl.readers.XmlReader.getXmlAttrib(data, "colorDensity").equals("true")); +if (this.jvxlData.jvxlDataIsColorDensity && Float.isNaN(this.params.pointSize)) { +s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "pointSize"); +if (s.length > 0) this.jvxlData.pointSize = this.params.pointSize = this.parseFloatStr(s); +}s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "allowVolumeRender"); +this.jvxlData.allowVolumeRender = this.params.allowVolumeRender = (s.length == 0 || s.equalsIgnoreCase("true")); +s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "plane"); +if (s.indexOf("{") >= 0) { +this.params.thePlane = null; +this.params.mapLattice = null; +try { +this.params.thePlane = JU.Escape.uP(s); +s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "maplattice"); +JU.Logger.info("JVXL read: plane " + this.params.thePlane); +if (s.indexOf("{") >= 0) { +this.params.mapLattice = JU.Escape.uP(s); +JU.Logger.info("JVXL read: mapLattice " + this.params.mapLattice); +}if (this.params.scale3d == 0) this.params.scale3d = this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "scale3d")); +if (Float.isNaN(this.params.scale3d)) this.params.scale3d = 0; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +if (this.params.thePlane == null) { +JU.Logger.error("JVXL Error reading plane definition -- setting to 0 0 1 0 (z=0)"); +this.params.thePlane = JU.P4.new4(0, 0, 1, 0); +} else { +JU.Logger.error("JVXL Error reading mapLattice definition -- ignored"); +}} else { +throw e; +} +} +this.surfaceDataCount = 0; +this.edgeDataCount = 0; +} else { +this.params.thePlane = null; +this.surfaceDataCount = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "nSurfaceInts")); +this.edgeDataCount = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "nBytesUncompressedEdgeData")); +s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "fixedLattice"); +if (s.indexOf("{") >= 0) this.jvxlData.fixedLattice = JU.Escape.uP(s); +}this.excludedVertexCount = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "nExcludedVertexes")); +this.excludedTriangleCount = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "nExcludedTriangles")); +this.invalidatedVertexCount = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "nInvalidatedVertexes")); +s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "slabInfo"); +if (s.length > 0) this.jvxlData.slabInfo = s; +this.colorDataCount = Math.max(0, this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "nBytesUncompressedColorData"))); +this.jvxlDataIs2dContour = (this.params.thePlane != null && this.jvxlDataIsColorMapped); +this.jvxlData.color = J.jvxl.readers.XmlReader.getXmlAttrib(data, "color"); +if (this.jvxlData.color.length == 0 || this.jvxlData.color.indexOf("null") >= 0) this.jvxlData.color = "orange"; +this.jvxlData.translucency = this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "translucency")); +if (Float.isNaN(this.jvxlData.translucency)) this.jvxlData.translucency = 0; +s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "meshColor"); +if (s.length > 0) this.jvxlData.meshColor = s; +s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "rendering"); +if (s.length > 0) this.jvxlData.rendering = s; +this.jvxlData.colorScheme = J.jvxl.readers.XmlReader.getXmlAttrib(data, "colorScheme"); +if (this.jvxlData.colorScheme.length == 0) this.jvxlData.colorScheme = (this.jvxlDataIsColorMapped ? "roygb" : null); +if (this.jvxlData.thisSet == null) { +var n = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "set")); +if (n > 0) { +this.jvxlData.thisSet = new JU.BS(); +this.jvxlData.thisSet.set(n - 1); +}var a = J.jvxl.readers.XmlReader.getXmlAttrib(data, "subset"); +if (a != null && a.length > 2) { +var sets = a.$replace('[', ' ').$replace(']', ' ').trim().$plit(" "); +if (sets.length > 0) { +this.jvxlData.thisSet = new JU.BS(); +for (var i = sets.length; --i >= 0; ) { +this.jvxlData.thisSet.set(JU.PT.parseInt(sets[i]) - 1); +} +}}}this.jvxlData.slabValue = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "slabValue")); +this.jvxlData.isSlabbable = (J.jvxl.readers.XmlReader.getXmlAttrib(data, "slabbable").equalsIgnoreCase("true")); +this.jvxlData.diameter = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "diameter")); +if (this.jvxlData.diameter == -2147483648) this.jvxlData.diameter = 0; +if (this.jvxlDataIs2dContour) this.params.isContoured = true; +if (this.params.colorBySign) this.params.isBicolorMap = true; +var insideOut = J.jvxl.readers.XmlReader.getXmlAttrib(data, "insideOut").equals("true"); +var dataMin = NaN; +var dataMax = NaN; +var red = NaN; +var blue = NaN; +if (this.jvxlDataIsColorMapped) { +dataMin = this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "dataMinimum")); +dataMax = this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "dataMaximum")); +red = this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "valueMappedToRed")); +blue = this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "valueMappedToBlue")); +if (Float.isNaN(dataMin)) { +dataMin = red = -1.0; +dataMax = blue = 1; +}}this.jvxlSetColorRanges(dataMin, dataMax, red, blue, insideOut); +}); +Clazz.defineMethod(c$, "jvxlSetColorRanges", +function(dataMin, dataMax, red, blue, insideOut){ +if (this.jvxlDataIsColorMapped) { +if (!Float.isNaN(dataMin) && !Float.isNaN(dataMax)) { +if (dataMax == 0 && dataMin == 0) { +dataMin = -1; +dataMax = 1; +}this.params.mappedDataMin = dataMin; +this.params.mappedDataMax = dataMax; +JU.Logger.info("JVXL read: data_min/max " + this.params.mappedDataMin + "/" + this.params.mappedDataMax); +}if (!this.params.rangeDefined) if (!Float.isNaN(red) && !Float.isNaN(blue)) { +if (red == 0 && blue == 0) { +red = -1; +blue = 1; +}this.params.valueMappedToRed = Math.min(red, blue); +this.params.valueMappedToBlue = Math.max(red, blue); +this.params.isColorReversed = (red > blue); +this.params.rangeDefined = true; +} else { +this.params.valueMappedToRed = 0; +this.params.valueMappedToBlue = 1; +this.params.rangeDefined = true; +}JU.Logger.info("JVXL read: color red/blue: " + this.params.valueMappedToRed + "/" + this.params.valueMappedToBlue); +}this.jvxlData.valueMappedToRed = this.params.valueMappedToRed; +this.jvxlData.valueMappedToBlue = this.params.valueMappedToBlue; +this.jvxlData.mappedDataMin = this.params.mappedDataMin; +this.jvxlData.mappedDataMax = this.params.mappedDataMax; +this.jvxlData.isColorReversed = this.params.isColorReversed; +if (this.params.insideOut) insideOut = !insideOut; +this.params.insideOut = this.jvxlData.insideOut = insideOut; +}, "~N,~N,~N,~N,~B"); +Clazz.overrideMethod(c$, "readSurfaceData", +function(isMapDataIgnored){ +this.thisInside = !this.params.isContoured; +if (this.readSurfaceDataXML()) return; +this.tempDataXml = this.xr.getXmlData("jvxlEdgeData", null, true, false); +this.bsVoxelBitSet = J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlEdgeData", this.tempDataXml, false, false)); +this.readSurfaceDataJXR(); +}, "~B"); +Clazz.defineMethod(c$, "readSurfaceDataXML", +function(){ +if (this.vertexDataOnly) { +this.getEncodedVertexData(); +return true; +}if (this.params.thePlane != null) { +this.volumeData.setDataDistanceToPlane(this.params.thePlane); +this.setVolumeDataV(this.volumeData); +this.params.cutoff = 0; +this.jvxlData.setSurfaceInfo(this.params.thePlane, this.params.mapLattice, 0, ""); +this.jvxlData.scale3d = this.params.scale3d; +return true; +}return false; +}); +Clazz.defineMethod(c$, "readSurfaceDataJXR", +function(){ +this.readSurfaceDataVFR(false); +this.volumeData.setMappingPlane(null); +}); +Clazz.defineMethod(c$, "jvxlReadFractionData", +function(type, nPoints){ +var str; +try { +if (type.equals("edge")) { +str = J.jvxl.data.JvxlCoder.jvxlDecompressString(J.jvxl.readers.XmlReader.getXmlAttrib(this.tempDataXml, "data")); +} else { +var data = this.xr.getXmlData("jvxlColorData", null, true, false); +this.jvxlData.isJvxlPrecisionColor = J.jvxl.readers.JvxlXmlReader.getEncoding(data).endsWith("2"); +str = J.jvxl.data.JvxlCoder.jvxlDecompressString(J.jvxl.readers.XmlReader.getXmlAttrib(data, "data")); +}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Error reading " + type + " data " + e); +throw new NullPointerException(); +} else { +throw e; +} +} +return str; +}, "~S,~N"); +Clazz.overrideMethod(c$, "getVoxelBitSet", +function(nPoints){ +if (this.bsVoxelBitSet != null) return this.bsVoxelBitSet; +var bs = new JU.BS(); +var bsVoxelPtr = 0; +if (this.surfaceDataCount <= 0) return bs; +var nThisValue = 0; +while (bsVoxelPtr < nPoints) { +nThisValue = this.parseInt(); +if (nThisValue == -2147483648) { +this.rd(); +if (this.line == null || (nThisValue = this.parseIntStr(this.line)) == -2147483648) { +if (!this.endOfData) JU.Logger.error("end of file in JvxlReader?" + " line=" + this.line); +this.endOfData = true; +nThisValue = 10000; +}}this.thisInside = !this.thisInside; +++this.jvxlNSurfaceInts; +if (this.thisInside) bs.setBits(bsVoxelPtr, bsVoxelPtr + nThisValue); +bsVoxelPtr += nThisValue; +} +return bs; +}, "~N"); +Clazz.overrideMethod(c$, "getSurfacePointAndFraction", +function(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn){ +if (this.edgeDataCount <= 0) return this.getSPFv(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn); +ptReturn.scaleAdd2(fReturn[0] = this.jvxlGetNextFraction(this.edgeFractionBase, this.edgeFractionRange, 0.5), edgeVector, pointA); +if (Float.isNaN(this.valueMin)) this.setValueMinMax(); +return (this.valueCount == 0 || this.includeValueNaN && Float.isNaN(fReturn[0]) ? fReturn[0] : this.getNextValue()); +}, "~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3"); +Clazz.defineMethod(c$, "getNextValue", +function(){ +var fraction = NaN; +while (this.colorPtr < this.valueCount && Float.isNaN(fraction)) { +if (this.jvxlData.isJvxlPrecisionColor) { +fraction = J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter2(this.jvxlColorDataRead.charAt(this.colorPtr).charCodeAt(0), this.jvxlColorDataRead.charAt((this.colorPtr++) + this.valueCount).charCodeAt(0), this.colorFractionBase, this.colorFractionRange); +} else { +fraction = J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(this.jvxlColorDataRead.charAt(this.colorPtr++).charCodeAt(0), this.colorFractionBase, this.colorFractionRange, 0.5); +}break; +} +return this.valueMin + fraction * this.valueRange; +}); +Clazz.defineMethod(c$, "setValueMinMax", +function(){ +this.valueCount = this.jvxlColorDataRead.length; +if (this.jvxlData.isJvxlPrecisionColor) this.valueCount /= 2; +this.includeValueNaN = (this.valueCount != this.jvxlEdgeDataRead.length); +this.valueMin = (!this.jvxlData.isJvxlPrecisionColor ? this.params.valueMappedToRed : this.params.mappedDataMin == 3.4028235E38 ? 0.0 : this.params.mappedDataMin); +this.valueRange = (!this.jvxlData.isJvxlPrecisionColor ? this.params.valueMappedToBlue : this.params.mappedDataMin == 3.4028235E38 ? 1.0 : this.params.mappedDataMax) - this.valueMin; +this.haveReadColorData = true; +}); +Clazz.defineMethod(c$, "jvxlGetNextFraction", +function(base, range, fracOffset){ +if (this.fractionPtr >= this.strFractionTemp.length) { +if (!this.endOfData) JU.Logger.error("end of file reading compressed fraction data"); +this.endOfData = true; +this.strFractionTemp = "" + String.fromCharCode(base); +this.fractionPtr = 0; +}return J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter(this.strFractionTemp.charAt(this.fractionPtr++).charCodeAt(0), base, range, fracOffset); +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "readColorData", +function(){ +if (!this.jvxlDataIsColorMapped) return ""; +var vertexCount = this.jvxlData.vertexCount = this.meshData.vc; +var colixes = this.meshData.vcs; +var vertexValues = this.meshData.vvs; +if ("none".equals(this.jvxlColorEncodingRead)) { +this.jvxlData.vertexColors = Clazz.newIntArray (vertexCount, 0); +var nextc = Clazz.newIntArray (1, 0); +var n = JU.PT.parseIntNext(this.jvxlColorDataRead, nextc); +n = Math.min(n, vertexCount); +var tokens = JU.PT.getTokens(this.jvxlColorDataRead.substring(nextc[0])); +var haveTranslucent = false; +var trans = this.jvxlData.translucency; +var lastColor = 0; +for (var i = 0; i < n; i++) try { +var c = J.jvxl.readers.JvxlXmlReader.getColor(tokens[i]); +if (c == 0) c = lastColor; + else lastColor = c; +colixes[i] = JU.C.getColixTranslucent(this.jvxlData.vertexColors[i] = c); +if (JU.C.isColixTranslucent(colixes[i])) haveTranslucent = true; + else if (trans != 0) colixes[i] = JU.C.getColixTranslucent3(colixes[i], true, trans); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.info("JvxlXmlReader: Cannot interpret color code: " + tokens[i]); +} else { +throw e; +} +} + +if (haveTranslucent && trans == 0) { +this.jvxlData.translucency = 0.5; +}return "-"; +}if (this.params.colorEncoder == null) this.params.colorEncoder = new JU.ColorEncoder(null, null); +this.params.colorEncoder.setColorScheme(null, false); +this.params.colorEncoder.setRange(this.params.valueMappedToRed, this.params.valueMappedToBlue, this.params.isColorReversed); +JU.Logger.info("JVXL reading color data mapped min/max: " + this.params.mappedDataMin + "/" + this.params.mappedDataMax + " for " + vertexCount + " vertices." + " using encoding keys " + this.colorFractionBase + " " + this.colorFractionRange); +JU.Logger.info("mapping red-->blue for " + this.params.valueMappedToRed + " to " + this.params.valueMappedToBlue + " colorPrecision:" + this.jvxlData.isJvxlPrecisionColor); +var getValues = (Float.isNaN(this.valueMin)); +if (getValues) this.setValueMinMax(); +var contourPlaneMinimumValue = 3.4028235E38; +var contourPlaneMaximumValue = -3.4028235E38; +if (colixes == null || colixes.length < vertexCount) this.meshData.vcs = colixes = Clazz.newShortArray (vertexCount, 0); +var colixNeg = 0; +var colixPos = 0; +if (this.params.colorBySign) { +colixPos = JU.C.getColix(this.params.isColorReversed ? this.params.colorNeg : this.params.colorPos); +colixNeg = JU.C.getColix(this.params.isColorReversed ? this.params.colorPos : this.params.colorNeg); +}var vertexIncrement = this.meshData.vertexIncrement; +var needContourMinMax = (this.params.mappedDataMin == 3.4028235E38); +for (var i = 0; i < vertexCount; i += vertexIncrement) { +var value; +if (getValues) value = vertexValues[i] = this.getNextValue(); + else value = vertexValues[i]; +if (needContourMinMax) { +if (value < contourPlaneMinimumValue) contourPlaneMinimumValue = value; +if (value > contourPlaneMaximumValue) contourPlaneMaximumValue = value; +}} +if (needContourMinMax) { +this.params.mappedDataMin = contourPlaneMinimumValue; +this.params.mappedDataMax = contourPlaneMaximumValue; +}if (this.jvxlData.colorScheme != null) { +var setContourValue = (this.marchingSquares != null && this.params.isContoured); +for (var i = 0; i < vertexCount; i += vertexIncrement) { +var value = vertexValues[i]; +if (setContourValue) { +this.marchingSquares.setContourData(i, value); +continue; +}var colix = (!this.params.colorBySign ? this.params.colorEncoder.getColorIndex(value) : (this.params.isColorReversed ? value > 0 : value <= 0) ? colixNeg : colixPos); +colixes[i] = JU.C.getColixTranslucent3(colix, true, this.jvxlData.translucency); +} +}return this.jvxlColorDataRead + "\n"; +}); +c$.getColor = Clazz.defineMethod(c$, "getColor", +function(c){ +var n = 0; +try { +switch ((c.charAt(0)).charCodeAt(0)) { +case 91: +n = JU.CU.getArgbFromString(c); +break; +case 48: +n = JU.PT.parseIntRadix(c.substring(2), 16); +break; +default: +n = JU.PT.parseIntRadix(c, 10); +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +return n; +}, "~S"); +Clazz.defineMethod(c$, "getEncodedVertexData", +function(){ +var sdata = this.xr.getXmlData("jvxlSurfaceData", null, true, false); +this.jvxlDecodeVertexData(this.xr.getXmlData("jvxlVertexData", sdata, true, false), false); +var tData = this.xr.getXmlData("jvxlTriangleData", sdata, true, false); +var edgeData = this.xr.getXmlData("jvxlTriangleEdgeData", sdata, true, false); +var polygonColorData = this.xr.getXmlData("jvxlPolygonColorData", sdata, false, false); +this.jvxlDecodeTriangleData(tData, edgeData, polygonColorData); +var cData = this.xr.getXmlData("jvxlColorData", sdata, true, false); +this.jvxlColorEncodingRead = J.jvxl.readers.JvxlXmlReader.getEncoding(cData); +this.jvxlData.isJvxlPrecisionColor = this.jvxlColorEncodingRead.endsWith("2"); +cData = this.getData(cData, "jvxlColorData"); +this.jvxlColorDataRead = (this.jvxlColorEncodingRead.equals("none") ? cData : J.jvxl.data.JvxlCoder.jvxlDecompressString(cData)); +this.jvxlDataIsColorMapped = ((this.params.colorRgb == -2147483648 || this.params.colorRgb == 2147483647) && this.jvxlColorDataRead.length > 0); +if (this.haveContourData) this.jvxlDecodeContourData(this.jvxlData, this.xr.getXmlData("jvxlContourData", null, false, false)); +}); +Clazz.defineMethod(c$, "getData", +function(sdata, name){ +var data = J.jvxl.readers.XmlReader.getXmlAttrib(sdata, "data"); +if (data.length == 0) data = this.xr.getXmlData(name, sdata, false, false); +return data; +}, "~S,~S"); +c$.getEncoding = Clazz.defineMethod(c$, "getEncoding", +function(data){ +if (J.jvxl.readers.XmlReader.getXmlAttrib(data, "len").length > 0) return ""; +var s = J.jvxl.readers.XmlReader.getXmlAttrib(data, "encoding"); +return (s.length == 0 ? "none" : s); +}, "~S"); +Clazz.defineMethod(c$, "jvxlDecodeVertexData", +function(data, asArray){ +var vertexCount = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(data, "count")); +if (!asArray) JU.Logger.info("Reading " + vertexCount + " vertices"); +var ptCount = vertexCount * 3; +var vertices = (asArray ? new Array(vertexCount) : null); +var fraction; +var vData = J.jvxl.readers.XmlReader.getXmlAttrib(data, "data"); +var encoding = J.jvxl.readers.JvxlXmlReader.getEncoding(data); +if ("none".equals(encoding)) { +if (vData.length == 0) vData = this.xr.getXmlData("jvxlVertexData", data, false, false); +var fdata = JU.PT.parseFloatArray(vData); +if (fdata[0] != vertexCount * 3) JU.Logger.info("JvxlXmlReader: vertexData count=" + (Clazz.floatToInt(fdata[0])) + "; expected " + (vertexCount * 3)); +for (var i = 0, pt = 1; i < vertexCount; i++) { +var p = JU.P3.new3(fdata[pt++], fdata[pt++], fdata[pt++]); +if (asArray) vertices[i] = p; + else this.addVertexCopy(p, 0, i, false); +} +} else { +var min = this.xr.getXmlPoint(data, "min"); +var range = this.xr.getXmlPoint(data, "max"); +range.sub(min); +var colorFractionBase = this.jvxlData.colorFractionBase; +var colorFractionRange = this.jvxlData.colorFractionRange; +var s = J.jvxl.data.JvxlCoder.jvxlDecompressString(vData); +if (s.length == 0) s = this.xr.getXmlData("jvxlVertexData", data, false, false); +for (var i = 0, pt = -1; i < vertexCount; i++) { +var p = new JU.P3(); +fraction = J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter2(s.charAt(++pt).charCodeAt(0), s.charAt(pt + ptCount).charCodeAt(0), colorFractionBase, colorFractionRange); +p.x = min.x + fraction * range.x; +fraction = J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter2(s.charAt(++pt).charCodeAt(0), s.charAt(pt + ptCount).charCodeAt(0), colorFractionBase, colorFractionRange); +p.y = min.y + fraction * range.y; +fraction = J.jvxl.data.JvxlCoder.jvxlFractionFromCharacter2(s.charAt(++pt).charCodeAt(0), s.charAt(pt + ptCount).charCodeAt(0), colorFractionBase, colorFractionRange); +p.z = min.z + fraction * range.z; +if (asArray) vertices[i] = p; + else this.addVertexCopy(p, 0, i, false); +} +}return vertices; +}, "~S,~B"); +Clazz.defineMethod(c$, "jvxlDecodeTriangleData", +function(tdata, edgeData, colorData){ +var nTriangles = this.parseIntStr(J.jvxl.readers.XmlReader.getXmlAttrib(tdata, "count")); +if (nTriangles < 0) return; +var nextc = Clazz.newIntArray (1, 0); +var nColors = (colorData == null ? -1 : 1); +var color = 0; +JU.Logger.info("Reading " + nTriangles + " triangles"); +var encoding = J.jvxl.readers.JvxlXmlReader.getEncoding(tdata); +tdata = this.getData(tdata, "jvxlTriangleData"); +var edata = this.getData(edgeData, "jvxlTriangleEdgeData"); +var vertex = Clazz.newIntArray (3, 0); +var nextp = Clazz.newIntArray (1, 0); +var nexte = null; +var edgeMask = 7; +var haveEdgeInfo; +var haveEncoding = !"none".equals(encoding); +if (haveEncoding) { +tdata = J.jvxl.data.JvxlCoder.jvxlDecompressString(tdata); +edata = J.jvxl.data.JvxlCoder.jvxlDecompressString(edata).trim(); +haveEdgeInfo = (edata.length == nTriangles); +} else { +var n = JU.PT.parseIntNext(tdata, nextp); +haveEdgeInfo = (edata.length > 0); +if (haveEdgeInfo) { +nexte = Clazz.newIntArray (1, 0); +JU.PT.parseIntNext(edata, nexte); +} else if (n > 0) { +JU.Logger.info("JvxlXmlReader: jvxlTriangleEdgeData count=" + n + "; expected " + nTriangles); +}}for (var i = 0, v = 0, p = 0, pt = -1; i < nTriangles; ) { +if (haveEncoding) { +var ch = tdata.charAt(++pt); +var diff; +switch ((ch).charCodeAt(0)) { +case 33: +diff = 0; +break; +case 43: +case 46: +case 32: +case 10: +case 13: +case 9: +case 44: +continue; +case 45: +case 48: +case 49: +case 50: +case 51: +case 52: +case 53: +case 54: +case 55: +case 56: +case 57: +nextp[0] = pt; +diff = JU.PT.parseIntNext(tdata, nextp); +pt = nextp[0] - 1; +break; +default: +diff = ch.charCodeAt(0) - 92; +} +v += diff; +} else { +v = JU.PT.parseIntNext(tdata, nextp) - 1; +}vertex[p] = v; +if (++p == 3) { +p = 0; +if (haveEdgeInfo) { +edgeMask = (nexte == null ? (edata.charAt(i)).charCodeAt(0) - 48 : JU.PT.parseIntNext(edata, nexte)); +if (edgeMask < 0 || edgeMask > 7) edgeMask = 7; +}if (--nColors == 0) { +nColors = (JU.PT.parseIntNext(colorData, nextc)); +var c = JU.PT.parseIntNext(colorData, nextc); +if (c == -2147483648) nColors = 0; + else color = c | 0xFF000000; +}this.addTriangleCheck(vertex[0], vertex[1], vertex[2], edgeMask, color, false, color); +i++; +}} +}, "~S,~S,~S"); +Clazz.defineMethod(c$, "jvxlDecodeContourData", +function(jvxlData, data){ +var vs = new JU.Lst(); +var values = new JU.SB(); +var colors = new JU.SB(); +var pt = -1; +jvxlData.vContours = null; +if (data == null) return; +while ((pt = data.indexOf(" = 0) { +var v = new JU.Lst(); +var s = this.xr.getXmlData("jvxlContour", data.substring(pt), true, false); +var value = this.parseFloatStr(J.jvxl.readers.XmlReader.getXmlAttrib(s, "value")); +values.append(" ").appendF(value); +var color = J.jvxl.readers.JvxlXmlReader.getColor(J.jvxl.readers.XmlReader.getXmlAttrib(s, "color")); +var colix = JU.C.getColix(color); +colors.append(" ").append(JU.Escape.escapeColor(color)); +var fData = J.jvxl.data.JvxlCoder.jvxlDecompressString(J.jvxl.readers.XmlReader.getXmlAttrib(s, "data")); +var bs = J.jvxl.data.JvxlCoder.jvxlDecodeBitSet(this.xr.getXmlData("jvxlContour", s, false, false)); +var n = bs.length(); +J.shapesurface.IsosurfaceMesh.setContourVector(v, n, bs, value, colix, color, JU.SB.newS(fData)); +vs.addLast(v); +} +var n = vs.size(); +if (n > 0) { +jvxlData.vContours = JU.AU.createArrayOfArrayList(n); +jvxlData.contourColixes = this.params.contourColixes = Clazz.newShortArray (n, 0); +jvxlData.contourValues = this.params.contoursDiscrete = Clazz.newFloatArray (n, 0); +for (var i = 0; i < n; i++) { +jvxlData.vContours[i] = vs.get(i); +jvxlData.contourValues[i] = (jvxlData.vContours[i].get(2)).floatValue(); +jvxlData.contourColixes[i] = (jvxlData.vContours[i].get(3))[0]; +} +jvxlData.contourColors = JU.C.getHexCodes(jvxlData.contourColixes); +JU.Logger.info("JVXL read: " + n + " discrete contours"); +JU.Logger.info("JVXL read: contour values: " + values); +JU.Logger.info("JVXL read: contour colors: " + colors); +}}, "J.jvxl.data.JvxlData,~S"); +Clazz.overrideMethod(c$, "postProcessVertices", +function(){ +var bsInvalid = this.params.bsExcluded[1]; +if (bsInvalid != null) { +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 1, null); +this.meshData.invalidateVertices(bsInvalid); +if (this.meshDataServer != null) { +this.meshDataServer.fillMeshData(this.meshData, 4, null); +this.meshData = new J.jvxl.data.MeshData(); +}this.updateTriangles(); +}}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/KinemageReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/KinemageReader.js new file mode 100755 index 000000000000..6aa0fe107c03 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/KinemageReader.js @@ -0,0 +1,122 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.PmeshReader"], "J.jvxl.readers.KinemageReader", ["JU.CU", "$.P3", "$.PT", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.nDots = 0; +this.vMin = -3.4028235E38; +this.vMax = 3.4028235E38; +this.pointType = 0; +this.findString = null; +this.lastAtom = ""; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "KinemageReader", J.jvxl.readers.PmeshReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.KinemageReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2PR(sg, br); +this.type = "kinemage"; +this.setHeader(); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readVolumeParameters", +function(isMapData){ +if (this.params.parameters != null && this.params.parameters.length >= 2) { +this.vMin = this.params.parameters[1]; +this.vMax = (this.params.parameters.length >= 3 ? this.params.parameters[2] : this.vMin); +this.pointType = (this.params.parameters.length >= 4 ? Clazz.floatToInt(this.params.parameters[3]) : 0); +this.findString = this.params.calculationType; +}return true; +}, "~B"); +Clazz.overrideMethod(c$, "readVertices", +function(){ +this.rd(); +var n0; +while (this.line != null) { +if (this.line.length != 0 && this.line.charAt(0) == '@') { +JU.Logger.info(this.line); +if (this.line.indexOf("contact}") >= 0 || this.line.indexOf("overlap}") >= 0 || this.line.indexOf("H-bonds}") >= 0) { +if (this.line.indexOf("@dotlist") == 0) { +n0 = this.nDots; +this.readDots(); +if (this.nDots > n0) JU.Logger.info("dots: " + (this.nDots - n0) + "/" + this.nDots); +continue; +} else if (this.line.indexOf("@vectorlist") == 0) { +n0 = this.nPolygons; +this.readVectors(); +if (this.nPolygons > n0) JU.Logger.info("lines: " + (this.nPolygons - n0) + "/" + this.nPolygons); +continue; +}}}this.rd(); +} +return true; +}); +Clazz.defineMethod(c$, "readDots", +function(){ +var color = Clazz.newIntArray (1, 0); +while (this.rd() != null && this.line.indexOf('@') < 0) { +var i = this.getPoint(this.line, 2, color, true); +if (i < 0) continue; +this.nDots++; +this.nTriangles = this.addTriangleCheck(i, i, i, 7, 0, false, color[0]); +} +}); +Clazz.defineMethod(c$, "readVectors", +function(){ +var color = Clazz.newIntArray (1, 0); +while (this.rd() != null && this.line.indexOf('@') < 0) { +var ia = this.getPoint(this.line, 3, color, true); +var ib = this.getPoint(this.line.substring(this.line.lastIndexOf('{')), 2, color, false); +if (ia < 0 || ib < 0) continue; +this.nPolygons++; +this.nTriangles = this.addTriangleCheck(ia, ib, ib, 7, 0, false, color[0]); +} +}); +Clazz.defineMethod(c$, "getPoint", +function(line, i, retColor, checkType){ +if (this.findString != null) { +var atom = line.substring(0, line.indexOf("}") + 1); +if (atom.length < 4) atom = this.lastAtom; + else this.lastAtom = atom; +if (atom.indexOf(this.findString) < 0) return -1; +}var tokens = JU.PT.getTokens(line.substring(line.indexOf("}") + 1)); +var value = this.assignValueFromGapColorForKin(tokens[0]); +if (Float.isNaN(value)) return -1; +if (checkType && this.pointType != 0) { +switch ((tokens[i - 1].charAt(1)).charCodeAt(0)) { +case 77: +if (this.pointType != 1) return -1; +break; +case 83: +if (this.pointType != 2) return -1; +break; +case 80: +if (this.pointType != 3) return -1; +break; +case 79: +if (this.pointType != 4) return -1; +break; +default: +return -1; +} +}retColor[0] = this.getColor(tokens[0]); +tokens = JU.PT.getTokens(tokens[i].$replace(',', ' ')); +var pt = JU.P3.new3(JU.PT.parseFloat(tokens[0]), JU.PT.parseFloat(tokens[1]), JU.PT.parseFloat(tokens[2])); +if (this.isAnisotropic) this.setVertexAnisotropy(pt); +return this.addVertexCopy(pt, value, this.nVertices++, false); +}, "~S,~N,~A,~B"); +Clazz.defineMethod(c$, "getColor", +function(color){ +if (color.equals("sky")) color = "skyblue"; + else if (color.equals("sea")) color = "seagreen"; +return JU.CU.getArgbFromString(color); +}, "~S"); +Clazz.defineMethod(c$, "assignValueFromGapColorForKin", +function(color){ +var value = (color.equals("greentint") ? 4 : color.equals("blue") ? 0.35 : color.equals("sky") ? 0.25 : color.equals("sea") ? 0.15 : color.equals("green") ? 0.0 : color.equals("yellowtint") ? -0.1 : color.equals("yellow") ? -0.2 : color.equals("orange") ? -0.3 : color.equals("red") ? -0.4 : -0.5); +return (value >= this.vMin && value <= this.vMax ? value : NaN); +}, "~S"); +Clazz.overrideMethod(c$, "readPolygons", +function(){ +return true; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/MapFileReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/MapFileReader.js new file mode 100755 index 000000000000..f1e8ed831d77 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/MapFileReader.js @@ -0,0 +1,108 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader", "JU.P3"], "J.jvxl.readers.MapFileReader", ["JU.Logger", "$.SimpleUnitCell"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.dmin = 3.4028235E38; +this.dmax = 0; +this.dmean = 0; +this.drange = 0; +this.mapc = 0; +this.mapr = 0; +this.maps = 0; +this.n0 = 0; +this.n1 = 0; +this.n2 = 0; +this.mode = 0; +this.xyzStart = null; +this.na = 0; +this.nb = 0; +this.nc = 0; +this.a = 0; +this.b = 0; +this.c = 0; +this.alpha = 0; +this.beta = 0; +this.gamma = 0; +this.origin = null; +this.vectors = null; +this.xIndex = -1; +this.yIndex = 0; +this.zIndex = 0; +this.p3 = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "MapFileReader", J.jvxl.readers.VolumeFileReader); +Clazz.prepareFields (c$, function(){ +this.xyzStart = Clazz.newFloatArray (3, 0); +this.origin = new JU.P3(); +this.vectors = new Array(3); +this.p3 = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.MapFileReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2MFR(sg, br); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "init2MFR", +function(sg, br){ +this.init2VFR(sg, br); +this.isAngstroms = true; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "checkInsideOut", +function(mapc, mapr, maps){ +if (this.params.thePlane == null) this.params.insideOut = (";123;231;312;".indexOf(";" + mapc + mapr + maps) >= 0); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "getVectorsAndOrigin", +function(){ +this.checkInsideOut(this.mapc, this.mapr, this.maps); +JU.Logger.info("grid parameters: nx,ny,nz: " + this.n0 + "," + this.n1 + "," + this.n2); +JU.Logger.info("grid parameters: nxStart,nyStart,nzStart: " + this.xyzStart[0] + "," + this.xyzStart[1] + "," + this.xyzStart[2]); +JU.Logger.info("grid parameters: mx,my,mz: " + this.na + "," + this.nb + "," + this.nc); +JU.Logger.info("grid parameters: a,b,c,alpha,beta,gamma: " + this.a + "," + this.b + "," + this.c + "," + this.alpha + "," + this.beta + "," + this.gamma); +JU.Logger.info("grid parameters: mapc,mapr,maps: " + this.mapc + "," + this.mapr + "," + this.maps); +JU.Logger.info("grid parameters: originX,Y,Z: " + this.origin); +var unitCell = JU.SimpleUnitCell.newA( Clazz.newFloatArray(-1, [this.a / this.na, this.b / this.nb, this.c / this.nc, this.alpha, this.beta, this.gamma])); +this.vectors[0] = JU.P3.new3(1, 0, 0); +this.vectors[1] = JU.P3.new3(0, 1, 0); +this.vectors[2] = JU.P3.new3(0, 0, 1); +unitCell.toCartesian(this.vectors[0], false); +unitCell.toCartesian(this.vectors[1], false); +unitCell.toCartesian(this.vectors[2], false); +JU.Logger.info("Jmol unit cell vectors:"); +JU.Logger.info(" a: " + this.vectors[0]); +JU.Logger.info(" b: " + this.vectors[1]); +JU.Logger.info(" c: " + this.vectors[2]); +this.voxelCounts[0] = this.n2; +this.voxelCounts[1] = this.n1; +this.voxelCounts[2] = this.n0; +this.volumetricVectors[0].setT(this.vectors[this.maps - 1]); +this.volumetricVectors[1].setT(this.vectors[this.mapr - 1]); +this.volumetricVectors[2].setT(this.vectors[this.mapc - 1]); +if (this.origin.x == 0 && this.origin.y == 0 && this.origin.z == 0) { +if (this.xIndex == -1) { +var xyz2crs = Clazz.newIntArray (3, 0); +xyz2crs[this.mapc - 1] = 0; +xyz2crs[this.mapr - 1] = 1; +xyz2crs[this.maps - 1] = 2; +this.xIndex = xyz2crs[0]; +this.yIndex = xyz2crs[1]; +this.zIndex = xyz2crs[2]; +}this.origin.scaleAdd2(this.xyzStart[this.xIndex], this.vectors[0], this.origin); +this.origin.scaleAdd2(this.xyzStart[this.yIndex], this.vectors[1], this.origin); +this.origin.scaleAdd2(this.xyzStart[this.zIndex], this.vectors[2], this.origin); +}this.volumetricOrigin.setT(this.origin); +JU.Logger.info("Jmol grid origin in Cartesian coordinates: " + this.origin); +JU.Logger.info("Use isosurface OFFSET {x y z} if you want to shift it.\n"); +this.p3.set(this.na, this.nb, this.nc); +unitCell.toCartesian(this.p3, true); +this.p3.add(this.origin); +JU.Logger.info("boundbox corners " + this.origin + " " + this.p3 + ";draw bbox boundbox mesh nofill"); +}); +Clazz.defineMethod(c$, "setCutoffAutomatic", +function(){ +if (this.params.thePlane == null && this.params.cutoffAutomatic) { +this.params.cutoff = -1.0; +JU.Logger.info("MapReader: setting cutoff to default value of " + this.params.cutoff + (this.boundingBox == null ? " (no BOUNDBOX parameter)\n" : "\n")); +}}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/MrcBinaryReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/MrcBinaryReader.js new file mode 100755 index 000000000000..8ceaf1bd45d7 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/MrcBinaryReader.js @@ -0,0 +1,178 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.MapFileReader"], "J.jvxl.readers.MrcBinaryReader", ["JU.SB", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.labels = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "MrcBinaryReader", J.jvxl.readers.MapFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.MrcBinaryReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +var fileName = (sg.getReaderData())[0]; +this.init2MFR(sg, br); +this.binarydoc = this.newBinaryDocument(); +this.setStream(fileName, true); +this.nSurfaces = 1; +if (this.params.thePlane == null) this.params.insideOut = !this.params.insideOut; +this.allowSigma = true; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +var ispg; +var nsymbt; +var extra = Clazz.newByteArray (100, 0); +var map = Clazz.newByteArray (4, 0); +var machst = Clazz.newByteArray (4, 0); +var rmsDeviation; +var nlabel; +this.n0 = this.binarydoc.readInt(); +if (this.n0 < 0 || this.n0 > 256) { +this.setStream(null, false); +this.n0 = this.binarydoc.swapBytesI(this.n0); +if (this.n0 < 0 || this.n0 > 1000) { +JU.Logger.info("nx=" + this.n0 + " not displayable as MRC file"); +throw new Exception("MRC file type not readable"); +}JU.Logger.info("reading little-endian MRC file"); +}this.n1 = this.binarydoc.readInt(); +this.n2 = this.binarydoc.readInt(); +this.mode = this.binarydoc.readInt(); +if (this.mode < 0 || this.mode > 6) { +this.setStream(null, false); +this.n0 = this.binarydoc.swapBytesI(this.n0); +this.n1 = this.binarydoc.swapBytesI(this.n1); +this.n2 = this.binarydoc.swapBytesI(this.n2); +this.mode = this.binarydoc.swapBytesI(this.mode); +}JU.Logger.info("MRC header: mode: " + this.mode); +JU.Logger.info("MRC header: nx ny nz: " + this.n0 + " " + this.n1 + " " + this.n2); +this.xyzStart[0] = this.binarydoc.readInt(); +this.xyzStart[1] = this.binarydoc.readInt(); +this.xyzStart[2] = this.binarydoc.readInt(); +JU.Logger.info("MRC header: nxyzStart: " + this.xyzStart[0] + " " + this.xyzStart[1] + " " + this.xyzStart[2]); +this.na = this.binarydoc.readInt(); +this.nb = this.binarydoc.readInt(); +this.nc = this.binarydoc.readInt(); +if (this.na == 0) this.na = this.n0 - 1; +if (this.nb == 0) this.nb = this.n1 - 1; +if (this.nc == 0) this.nc = this.n2 - 1; +JU.Logger.info("MRC header: na nb nc: " + this.na + " " + this.nb + " " + this.nc); +this.a = this.binarydoc.readFloat(); +this.b = this.binarydoc.readFloat(); +this.c = this.binarydoc.readFloat(); +this.alpha = this.binarydoc.readFloat(); +this.beta = this.binarydoc.readFloat(); +this.gamma = this.binarydoc.readFloat(); +if (this.alpha == 0) { +this.alpha = this.beta = this.gamma = 90; +JU.Logger.info("MRC header: alpha,beta,gamma 0 changed to 90,90,90"); +JU.Logger.info("MRC header: alpha,beta,gamma 0 reversing insideOut sense"); +if (this.params.thePlane == null) this.params.insideOut = !this.params.insideOut; +}this.mapc = this.binarydoc.readInt(); +this.mapr = this.binarydoc.readInt(); +this.maps = this.binarydoc.readInt(); +if (this.mapc == 2 && this.mapr == 1 && this.params.thePlane == null) this.params.insideOut = !this.params.insideOut; +var s = "" + this.mapc + this.mapr + this.maps; +JU.Logger.info("MRC header: mapc mapr maps: " + s); +if (this.params.thePlane == null && "21321".indexOf(s) >= 1) { +JU.Logger.info("MRC header: data are xy-reversed"); +this.params.dataXYReversed = true; +}this.dmin = this.binarydoc.readFloat(); +this.dmax = this.binarydoc.readFloat(); +this.dmean = this.binarydoc.readFloat(); +JU.Logger.info("MRC header: dmin,dmax,dmean: " + this.dmin + "," + this.dmax + "," + this.dmean); +ispg = this.binarydoc.readInt(); +nsymbt = this.binarydoc.readInt(); +JU.Logger.info("MRC header: ispg,nsymbt: " + ispg + "," + nsymbt); +this.binarydoc.readByteArray(extra, 0, extra.length); +this.origin.x = this.binarydoc.readFloat(); +this.origin.y = this.binarydoc.readFloat(); +this.origin.z = this.binarydoc.readFloat(); +JU.Logger.info("MRC header: origin: " + this.origin); +this.binarydoc.readByteArray(map, 0, map.length); +this.binarydoc.readByteArray(machst, 0, machst.length); +rmsDeviation = this.binarydoc.readFloat(); +JU.Logger.info("MRC header: rms: " + rmsDeviation); +nlabel = this.binarydoc.readInt(); +JU.Logger.info("MRC header: labels: " + nlabel); +this.labels = new Array(nlabel); +if (nlabel > 0) this.labels[0] = "Jmol MrcBinaryReader"; +for (var i = 0; i < 10; i++) { +s = this.binarydoc.readString(80).trim(); +if (i < nlabel) { +this.labels[i] = s; +JU.Logger.info(this.labels[i]); +}} +for (var i = 0; i < nsymbt; i += 80) { +var position = this.binarydoc.getPosition(); +s = this.binarydoc.readString(80).trim(); +if (s.indexOf('\0') != s.lastIndexOf('\0')) { +JU.Logger.error("File indicates " + nsymbt + " symmetry lines, but " + i + " found!"); +this.binarydoc.seek(position); +break; +}JU.Logger.info("MRC file symmetry information: " + s); +} +JU.Logger.info("MRC header: bytes read: " + this.binarydoc.getPosition() + "\n"); +this.getVectorsAndOrigin(); +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append("MRC DATA ").append(nlabel > 0 ? this.labels[0] : "").append("\n"); +this.jvxlFileHeaderBuffer.append("see http://ami.scripps.edu/software/mrctools/mrc_specification.php\n"); +if (this.params.thePlane == null && (this.params.cutoffAutomatic || !Float.isNaN(this.params.sigma))) { +var sigma = (this.params.sigma < 0 || Float.isNaN(this.params.sigma) ? 1 : this.params.sigma); +this.params.cutoff = rmsDeviation * sigma + this.dmean; +s = "cutoff set to " + this.params.cutoff + " (mean + rmsDeviation*sigma = " + this.dmean + " + " + rmsDeviation + "*" + sigma + ")"; +JU.Logger.info(s); +this.jvxlFileHeaderBuffer.append(s + "\n"); +}}); +Clazz.overrideMethod(c$, "nextVoxel", +function(){ +var voxelValue; +switch (this.mode) { +case 0: +voxelValue = this.binarydoc.readByte(); +break; +case 1: +voxelValue = this.binarydoc.readShort(); +break; +default: +case 2: +voxelValue = this.binarydoc.readFloat(); +break; +case 3: +voxelValue = this.binarydoc.readShort(); +this.binarydoc.readShort(); +break; +case 4: +voxelValue = this.binarydoc.readFloat(); +this.binarydoc.readFloat(); +break; +case 6: +voxelValue = this.binarydoc.readUnsignedShort(); +break; +} +this.nBytes = this.binarydoc.getPosition(); +return voxelValue; +}); +Clazz.overrideMethod(c$, "skipData", +function(nPoints){ +for (var i = 0; i < nPoints; i++) switch (this.mode) { +case 0: +this.binarydoc.readByte(); +break; +case 1: +case 6: +this.binarydoc.readByteArray(J.jvxl.readers.MrcBinaryReader.b8, 0, 2); +break; +default: +case 2: +case 3: +this.binarydoc.readByteArray(J.jvxl.readers.MrcBinaryReader.b8, 0, 4); +break; +case 4: +this.binarydoc.readByteArray(J.jvxl.readers.MrcBinaryReader.b8, 0, 8); +break; +} + +}, "~N"); +c$.b8 = Clazz.newByteArray (8, 0); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/MsmsReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/MsmsReader.js new file mode 100755 index 000000000000..f08b414b3ff9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/MsmsReader.js @@ -0,0 +1,54 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.PmeshReader"], "J.jvxl.readers.MsmsReader", ["JU.PT", "$.Rdr", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.fileName = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "MsmsReader", J.jvxl.readers.PmeshReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.MsmsReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2PFR(sg, br); +this.fileName = (sg.getReaderData())[0]; +if (this.fileName == null) return; +this.type = "msms"; +this.onePerLine = true; +this.fixedCount = 3; +this.vertexBase = 1; +this.setHeader(); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readVertices", +function(){ +this.skipHeader(); +return this.readVerticesPM(); +}); +Clazz.overrideMethod(c$, "readPolygons", +function(){ +this.br.close(); +this.fileName = JU.PT.rep(this.fileName, ".vert", ".face"); +JU.Logger.info("reading from file " + this.fileName); +try { +this.br = JU.Rdr.getBufferedReader(this.sg.atomDataServer.getBufferedInputStream(this.fileName), null); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.info("Note: file " + this.fileName + " was not found"); +this.br = null; +return true; +} else { +throw e; +} +} +this.sg.addRequiredFile(this.fileName); +this.skipHeader(); +return this.readPolygonsPM(); +}); +Clazz.defineMethod(c$, "skipHeader", +function(){ +while (this.rd() != null && this.line.indexOf("#") >= 0) { +} +this.tokens = this.getTokens(); +this.iToken = 0; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/NffReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/NffReader.js new file mode 100755 index 000000000000..32225a0547d9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/NffReader.js @@ -0,0 +1,75 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.PolygonFileReader", "java.util.Hashtable", "JU.P3"], "J.jvxl.readers.NffReader", ["JU.CU", "J.jvxl.data.JvxlCoder", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.nPolygons = 0; +this.vertexMap = null; +this.pt = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "NffReader", J.jvxl.readers.PolygonFileReader); +Clazz.prepareFields (c$, function(){ +this.vertexMap = new java.util.Hashtable(); +this.pt = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.NffReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2PFR(sg, br); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "setHeader", +function(){ +this.jvxlFileHeaderBuffer.append("NFF file format\nvertices and triangles only\n"); +J.jvxl.data.JvxlCoder.jvxlCreateHeaderWithoutTitleOrAtoms(this.volumeData, this.jvxlFileHeaderBuffer); +}); +Clazz.overrideMethod(c$, "getSurfaceData", +function(){ +if (this.readVerticesAndPolygons()) JU.Logger.info("NFF file contains " + this.nVertices + " vertices and " + this.nTriangles + " triangles"); + else JU.Logger.error(this.params.fileName + ": Error reading Nff data "); +}); +Clazz.defineMethod(c$, "readVerticesAndPolygons", +function(){ +var color = 0xFF0000; +try { +while (this.rd() != null) { +if (this.line.length == 0) continue; +var tokens = this.getTokens(); +switch ((this.line.charAt(0)).charCodeAt(0)) { +case 35: +this.vertexMap.clear(); +continue; +case 102: +color = JU.CU.colorTriadToFFRGB(this.parseFloatStr(tokens[1]), this.parseFloatStr(tokens[2]), this.parseFloatStr(tokens[3])); +continue; +case 112: +if (this.line.equals("pp 3")) { +var i1 = this.getVertex(); +var i2 = this.getVertex(); +var i3 = this.getVertex(); +this.nTriangles++; +this.addTriangleCheck(i1, i2, i3, 7, 0, false, color); +}continue; +} +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +return true; +}); +Clazz.defineMethod(c$, "getVertex", +function(){ +var i = this.vertexMap.get(this.rd()); +if (i == null) { +var tokens = this.getTokens(); +this.pt.set(this.parseFloatStr(tokens[0]), this.parseFloatStr(tokens[1]), this.parseFloatStr(tokens[2])); +if (!Float.isNaN(this.params.scale)) this.pt.scale(this.params.scale); +if (this.isAnisotropic) this.setVertexAnisotropy(this.pt); +i = Integer.$valueOf(this.addVertexCopy(this.pt, 0, this.nVertices++, true)); +this.vertexMap.put(this.line, i); +}return i.intValue(); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/ObjReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/ObjReader.js new file mode 100755 index 000000000000..05bed82d8a9f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/ObjReader.js @@ -0,0 +1,100 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.PmeshReader"], "J.jvxl.readers.ObjReader", ["java.util.Hashtable", "JU.BS", "$.CU", "$.P3", "$.PT"], function(){ +var c$ = Clazz.declareType(J.jvxl.readers, "ObjReader", J.jvxl.readers.PmeshReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.ObjReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2PR(sg, br); +this.type = "obj"; +this.setHeader(); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readVertices", +function(){ +this.pmeshError = "pmesh ERROR: invalid vertex/face list"; +var pt = new JU.P3(); +var color = 0; +var ia; +var ib; +var ic; +var id = 0; +var i = 0; +var nPts = 0; +var htPymol = new java.util.Hashtable(); +var ipt = null; +var spt = null; +var pymolMap = Clazz.newIntArray (3, 0); +var bsOK = new JU.BS(); +while (this.rd() != null) { +if (this.line.length < 2 || this.line.charAt(1) != ' ') { +if (this.params.readAllData && this.line.startsWith("usemtl")) color = JU.CU.getArgbFromString("[x" + this.line.substring(8) + "]"); +continue; +}switch ((this.line.charAt(0)).charCodeAt(0)) { +case 118: +this.next[0] = 2; +pt.set(JU.PT.parseFloatNext(this.line, this.next), JU.PT.parseFloatNext(this.line, this.next), JU.PT.parseFloatNext(this.line, this.next)); +var addHt = false; +if (htPymol == null) { +i = this.nVertices; +} else if ((ipt = htPymol.get(spt = "" + pt)) == null) { +addHt = true; +i = this.nVertices; +} else { +i = ipt.intValue(); +}var j = i; +if (i == this.nVertices) { +if (this.isAnisotropic) this.setVertexAnisotropy(pt); +j = this.addVertexCopy(pt, 0, this.nVertices++, true); +if (j >= 0) bsOK.set(i); +}pymolMap[nPts % 3] = j; +if (addHt) htPymol.put(spt, Integer.$valueOf(i)); +nPts++; +if (htPymol != null && nPts > 3) htPymol = null; +break; +case 102: +if (nPts == 3 && this.line.indexOf("//") < 0) htPymol = null; +nPts = 0; +this.nPolygons++; +var tokens = JU.PT.getTokens(this.line); +var vertexCount = tokens.length - 1; +if (vertexCount == 4) htPymol = null; +if (htPymol == null) { +ia = JU.PT.parseInt(tokens[1]) - 1; +ib = JU.PT.parseInt(tokens[2]) - 1; +ic = JU.PT.parseInt(tokens[3]) - 1; +this.pmeshError = " " + ia + " " + ib + " " + ic + " " + this.line; +if (!bsOK.get(ia) || !bsOK.get(ib) || !bsOK.get(ic)) continue; +if (vertexCount == 4) { +id = JU.PT.parseInt(tokens[4]) - 1; +var isOK = (bsOK.get(id)); +this.nTriangles = this.addTriangleCheck(ia, ib, ic, (isOK ? 3 : 7), 0, false, color); +if (isOK) this.nTriangles = this.addTriangleCheck(ia, ic, id, 6, 0, false, color); +continue; +}} else { +ia = pymolMap[0]; +ib = pymolMap[1]; +ic = pymolMap[2]; +if (ia < 0 || ib < 0 || ic < 0) continue; +}this.nTriangles = this.addTriangleCheck(ia, ib, ic, 7, 0, false, color); +break; +case 103: +htPymol = null; +if (this.params.readAllData) try { +color = JU.PT.parseIntRadix(this.line.substring(3), 16); +} catch (e) { +color = 0; +} +break; +} +} +this.pmeshError = null; +return true; +}); +Clazz.overrideMethod(c$, "readPolygons", +function(){ +return true; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Parameters.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Parameters.js new file mode 100755 index 000000000000..d5110f73d9a4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Parameters.js @@ -0,0 +1,549 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(null, "J.jvxl.readers.Parameters", ["java.util.Hashtable", "JU.A4", "$.Lst", "$.M3", "$.P3", "$.P4", "$.V3", "JU.Escape", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.state = 0; +this.testFlags = 0; +this.logMessages = false; +this.logCompression = false; +this.logCube = false; +this.isSilent = false; +this.assocCutoff = 0.3; +this.dataType = 0; +this.surfaceType = 0; +this.calculationType = ""; +this.atomRadiusData = null; +this.addHydrogens = false; +this.solventRadius = 0; +this.solventExtendedAtomRadius = 0; +this.propertySmoothing = false; +this.propertySmoothingPower = 4; +this.envelopeRadius = 0; +this.cavityRadius = 0; +this.isCavity = false; +this.pocket = null; +this.minSet = 0; +this.slabInfo = null; +this.slabPlaneOffset = NaN; +this.theProperty = null; +this.solvent_ptsPerAngstrom = 4; +this.solvent_gridMax = 60; +this.plane_ptsPerAngstrom = 4; +this.plane_gridMax = 81; +this.colorBySign = false; +this.colorByPhase = false; +this.colorBySets = false; +this.colorRgb = 0; +this.colorNeg = 0; +this.colorPos = 0; +this.colorPosLCAO = 0; +this.colorNegLCAO = 0; +this.colorPhase = 0; +this.colorDensity = false; +this.iAddGridPoints = false; +this.atomIndex = 0; +this.isAngstroms = false; +this.scale = 0; +this.scale3d = 0; +this.anisotropy = null; +this.isAnisotropic = false; +this.eccentricityMatrix = null; +this.eccentricityMatrixInverse = null; +this.isEccentric = false; +this.eccentricityScale = 0; +this.eccentricityRatio = 0; +this.aniosU = null; +this.anisoB = null; +this.lcaoType = null; +this.functionInfo = null; +this.psi_n = 2; +this.psi_l = 1; +this.psi_m = 1; +this.psi_Znuc = 1; +this.psi_ptsPerAngstrom = 5; +this.psi_monteCarloCount = 0; +this.mep_gridMax = 40; +this.mep_ptsPerAngstrom = 3; +this.mep_marginAngstroms = 1; +this.mep_calcType = -1; +this.qmOrbitalType = 0; +this.qmOrbitalCount = 0; +this.moData = null; +this.qm_gridMax = 80; +this.qm_ptsPerAngstrom = 10; +this.qm_marginAngstroms = 1; +this.qm_nAtoms = 0; +this.qm_moNumber = 2147483647; +this.qm_moLinearCombination = null; +this.center = null; +this.point = null; +this.distance = 0; +this.allowVolumeRender = false; +this.script = null; +this.bsSelected = null; +this.bsIgnore = null; +this.bsSolvent = null; +this.func = null; +this.title = null; +this.blockCubeData = false; +this.readAllData = false; +this.fileIndex = -1; +this.fileName = null; +this.modelIndex = -1; +this.modelInvRotation = null; +this.isXLowToHigh = false; +this.insideOut = false; +this.dataXYReversed = false; +this.cutoff = 3.4028235E38; +this.cutoffRange = null; +this.sigma = 3.4028235E38; +this.cutoffAutomatic = true; +this.isCutoffAbsolute = false; +this.isPositiveOnly = false; +this.rangeAll = false; +this.rangeSelected = false; +this.rangeDefined = false; +this.valueMappedToRed = 0; +this.valueMappedToBlue = 0; +this.mappedDataMin = 0; +this.mappedDataMax = 0; +this.isColorReversed = false; +this.isBicolorMap = false; +this.isSquared = false; +this.isSquaredLinear = false; +this.thePlane = null; +this.isContoured = false; +this.nContours = 0; +this.thisContour = 0; +this.contourFromZero = false; +this.parameters = null; +this.resolution = 0; +this.downsampleFactor = 0; +this.maxSet = 0; +this.contoursDiscrete = null; +this.contourColixes = null; +this.contourIncrements = null; +this.boundingBox = null; +this.bsExcluded = null; +this.contourType = 0; +this.colorSchemeTranslucent = false; +this.colorEncoder = null; +this.usePropertyForColorRange = true; +this.isPeriodic = false; +this.doFullMolecular = false; +this.propertyDistanceMax = 2147483647; +this.randomSeed = 0; +this.fullyLit = false; +this.vertexSource = null; +this.intersection = null; +this.origin = null; +this.steps = null; +this.points = null; +this.volumeData = null; +this.contactPair = null; +this.mapLattice = null; +this.extendGrid = 0; +this.isMapped = false; +this.showTiming = false; +this.pointSize = 0; +this.probes = null; +this.isModelConnected = false; +this.surfaceAtoms = null; +this.filesData = null; +this.probeValues = null; +this.sbOut = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "Parameters", null); +Clazz.prepareFields (c$, function(){ +this.anisotropy = Clazz.newFloatArray (3, 0); +}); +Clazz.defineMethod(c$, "initialize", +function(){ +this.addHydrogens = false; +this.allowVolumeRender = true; +this.atomRadiusData = null; +this.atomIndex = -1; +this.blockCubeData = false; +this.boundingBox = null; +this.bsExcluded = new Array(4); +this.bsIgnore = null; +this.bsSelected = null; +this.bsSolvent = null; +this.calculationType = ""; +this.center = new JU.P3(); +this.resetForMapping(true); +this.colorBySign = this.colorByPhase = this.colorBySets = false; +this.colorEncoder = null; +this.colorNeg = -65536; +this.colorNegLCAO = -8388480; +this.colorPos = -16776961; +this.colorPosLCAO = -23296; +this.colorRgb = -2147483648; +this.colorSchemeTranslucent = false; +this.contactPair = null; +this.contourIncrements = null; +this.contoursDiscrete = null; +this.contourColixes = null; +this.contourFromZero = true; +this.cutoff = 3.4028235E38; +this.cutoffAutomatic = true; +this.dataXYReversed = false; +this.distance = 3.4028235E38; +this.doFullMolecular = false; +this.envelopeRadius = 10; +this.extendGrid = 0; +this.fileIndex = 1; +this.readAllData = true; +this.fileName = ""; +this.filesData = null; +this.fullyLit = false; +this.functionInfo = null; +this.iAddGridPoints = false; +this.insideOut = false; +this.isAngstroms = false; +this.isBicolorMap = this.isCutoffAbsolute = this.isPositiveOnly = false; +this.isCavity = false; +this.isColorReversed = false; +this.isModelConnected = false; +this.isSquared = false; +this.isSquaredLinear = false; +this.isContoured = false; +this.isEccentric = false; +this.isMapped = false; +this.isPeriodic = false; +this.isSilent = false; +this.logCube = this.logCompression = false; +this.logMessages = JU.Logger.debugging; +this.mapLattice = null; +this.mep_calcType = -1; +this.minSet = 0; +this.modelIndex = -1; +this.modelInvRotation = null; +this.nContours = 0; +this.pocket = null; +this.pointSize = NaN; +this.probes = null; +this.probeValues = null; +this.propertyDistanceMax = 2147483647; +this.propertySmoothing = false; +this.propertySmoothingPower = 4; +this.rangeDefined = false; +this.rangeAll = false; +this.rangeSelected = false; +this.resolution = 3.4028235E38; +this.scale = NaN; +this.scale3d = 0; +this.sigma = NaN; +this.slabInfo = null; +this.solventExtendedAtomRadius = 0; +this.state = 1; +this.testFlags = 0; +this.thePlane = null; +this.theProperty = null; +this.thisContour = -1; +this.title = null; +this.usePropertyForColorRange = true; +this.vertexSource = null; +}); +Clazz.defineMethod(c$, "resetForMapping", +function(haveSurface){ +if (!haveSurface) this.state = 2; +this.center.x = NaN; +this.colorDensity = false; +this.func = null; +this.intersection = null; +this.isAnisotropic = false; +this.isMapped = true; +this.mappedDataMin = 3.4028235E38; +this.origin = null; +this.parameters = null; +this.points = null; +this.qmOrbitalType = 0; +this.steps = null; +this.volumeData = null; +}, "~B"); +Clazz.defineMethod(c$, "setAnisotropy", +function(pt){ +this.anisotropy[0] = pt.x; +this.anisotropy[1] = pt.y; +this.anisotropy[2] = pt.z; +this.isAnisotropic = true; +if (Float.isNaN(this.center.x)) this.center.set(0, 0, 0); +}, "JU.P3"); +Clazz.defineMethod(c$, "setEccentricity", +function(info){ +var ecc = JU.V3.new3(info.x, info.y, info.z); +var c = (this.scale > 0 ? this.scale : info.w < 0 ? 1 : ecc.length()); +var fab_c = Math.abs(info.w); +ecc.normalize(); +var z = JU.V3.new3(0, 0, 1); +ecc.add(z); +ecc.normalize(); +if (Float.isNaN(ecc.x)) ecc.set(1, 0, 0); +this.eccentricityMatrixInverse = new JU.M3(); +this.eccentricityMatrixInverse.invertM(this.eccentricityMatrix = new JU.M3().setAA(JU.A4.newVA(ecc, 3.141592653589793))); +this.isEccentric = this.isAnisotropic = true; +this.eccentricityScale = c; +this.eccentricityRatio = fab_c; +if (fab_c > 1) this.eccentricityScale *= fab_c; +this.anisotropy[0] = fab_c * c; +this.anisotropy[1] = fab_c * c; +this.anisotropy[2] = c; +if (Float.isNaN(this.center.x)) this.center.set(0, 0, 0); +}, "JU.P4"); +Clazz.defineMethod(c$, "setPlane", +function(plane){ +this.thePlane = plane; +if (this.thePlane.x == 0 && this.thePlane.y == 0 && this.thePlane.z == 0) this.thePlane.z = 1; +this.isContoured = true; +}, "JU.P4"); +Clazz.defineMethod(c$, "setSphere", +function(radius, isGeodesic){ +this.dataType = (isGeodesic ? 74 : 65); +this.distance = radius; +this.setEccentricity(JU.P4.new4(0, 0, 1, 1)); +this.cutoff = 1.4E-45; +this.isCutoffAbsolute = false; +this.isSilent = !this.logMessages; +this.script = this.getScriptParams() + " SPHERE " + radius + ";"; +}, "~N,~B"); +Clazz.defineMethod(c$, "setEllipsoidP4", +function(v){ +this.dataType = 66; +this.distance = 1; +this.setEccentricity(v); +this.cutoff = 1.4E-45; +this.isCutoffAbsolute = false; +this.isSilent = !this.logMessages; +}, "JU.P4"); +Clazz.defineMethod(c$, "setEllipsoidAF", +function(bList){ +this.anisoB = bList; +this.dataType = 67; +this.distance = 0.3 * (Float.isNaN(this.scale) ? 1 : this.scale); +this.cutoff = 1.4E-45; +this.isCutoffAbsolute = false; +this.isSilent = !this.logMessages; +if (Float.isNaN(this.center.x)) this.center.set(0, 0, 0); +if (this.resolution == 3.4028235E38) this.resolution = 6; +}, "~A"); +Clazz.defineMethod(c$, "setLobe", +function(v){ +this.dataType = 68; +this.setEccentricity(v); +if (this.cutoff == 3.4028235E38) { +this.cutoff = 0.14; +if (this.isSquared) this.cutoff = this.cutoff * this.cutoff; +}this.isSilent = !this.logMessages; +this.script = this.getScriptParams() + " LOBE {" + v.x + " " + v.y + " " + v.z + " " + v.w + "};"; +}, "JU.P4"); +Clazz.defineMethod(c$, "getScriptParams", +function(){ +return " center " + JU.Escape.eP(this.center) + (Float.isNaN(this.scale) ? "" : " scale " + this.scale); +}); +Clazz.defineMethod(c$, "setLp", +function(v){ +this.dataType = 70; +this.setEccentricity(v); +if (this.cutoff == 3.4028235E38) { +this.cutoff = 0.14; +if (this.isSquared) this.cutoff = this.cutoff * this.cutoff; +}this.isSilent = !this.logMessages; +this.script = " center " + JU.Escape.eP(this.center) + (Float.isNaN(this.scale) ? "" : " scale " + this.scale) + " LP {" + v.x + " " + v.y + " " + v.z + " " + v.w + "};"; +}, "JU.P4"); +Clazz.defineMethod(c$, "setRadical", +function(v){ +this.dataType = 71; +this.setEccentricity(v); +if (this.cutoff == 3.4028235E38) { +this.cutoff = 0.14; +if (this.isSquared) this.cutoff = this.cutoff * this.cutoff; +}this.isSilent = !this.logMessages; +this.script = " center " + JU.Escape.eP(this.center) + (Float.isNaN(this.scale) ? "" : " scale " + this.scale) + " RAD {" + v.x + " " + v.y + " " + v.z + " " + v.w + "};"; +}, "JU.P4"); +Clazz.defineMethod(c$, "setLcao", +function(type, colorPtr){ +this.lcaoType = type; +if (colorPtr == 1) this.colorPosLCAO = this.colorNegLCAO; +this.isSilent = !this.logMessages; +}, "~S,~N"); +Clazz.defineMethod(c$, "setSolvent", +function(propertyName, radius){ +this.isEccentric = this.isAnisotropic = false; +this.solventRadius = Math.abs(radius); +this.dataType = (this.intersection != null ? 1333 : "nomap" === propertyName ? 1207 : "molecular" === propertyName ? 1203 : "sasurface" === propertyName || this.solventRadius == 0 ? 1196 : 1195); +if (this.state < 2 && (this.cutoffAutomatic || !this.colorDensity) && (this.intersection == null || this.cutoff == 3.4028235E38)) this.cutoff = 0.0; +switch (this.dataType) { +case 1333: +this.calculationType = "VDW intersection"; +break; +case 1207: +this.calculationType = "unmapped plane"; +break; +case 1203: +this.calculationType = "molecular surface with radius " + this.solventRadius; +if (this.minSet == 0) this.minSet = 50; +break; +case 1195: +this.calculationType = "solvent-excluded surface with radius " + this.solventRadius; +if (this.minSet == 0) this.minSet = 50; +break; +case 1196: +this.calculationType = "solvent-accessible surface with radius " + this.solventRadius; +if (this.minSet == 0) this.minSet = 50; +break; +} +switch (this.dataType) { +case 1207: +this.solventExtendedAtomRadius = this.solventRadius; +this.solventRadius = 0; +this.isContoured = false; +break; +case 1203: +this.solventExtendedAtomRadius = 0; +break; +case 1195: +this.solventExtendedAtomRadius = 0; +if (this.bsIgnore == null) this.bsIgnore = this.bsSolvent; + else if (this.bsSolvent != null) this.bsIgnore.or(this.bsSolvent); +break; +case 1196: +this.solventExtendedAtomRadius = this.solventRadius; +this.solventRadius = 0; +if (this.bsIgnore == null) this.bsIgnore = this.bsSolvent; + else if (this.bsSolvent != null) this.bsIgnore.or(this.bsSolvent); +break; +} +}, "~S,~N"); +Clazz.defineMethod(c$, "setFunctionXY", +function(value){ +this.dataType = 8; +this.functionInfo = value; +this.cutoff = 1.4E-45; +this.isEccentric = this.isAnisotropic = false; +}, "JU.Lst"); +Clazz.defineMethod(c$, "setFunctionXYZ", +function(value){ +this.dataType = 9; +this.functionInfo = value; +if (this.cutoff == 3.4028235E38) this.cutoff = 1.4E-45; +this.isEccentric = this.isAnisotropic = false; +}, "JU.Lst"); +Clazz.defineMethod(c$, "setAtomicOrbital", +function(nlmZprs){ +this.dataType = 1294; +this.setEccentricity(JU.P4.new4(0, 0, 1, 1)); +this.psi_n = Clazz.floatToInt(nlmZprs[0]); +this.psi_l = Clazz.floatToInt(nlmZprs[1]); +this.psi_m = Clazz.floatToInt(nlmZprs[2]); +this.psi_Znuc = nlmZprs[3]; +this.psi_monteCarloCount = Clazz.floatToInt(nlmZprs[4]); +this.distance = nlmZprs[5]; +if (this.distance != 0 || this.thePlane != null) this.allowVolumeRender = false; +this.randomSeed = Clazz.floatToInt(nlmZprs[6]); +this.psi_ptsPerAngstrom = 10; +if (this.cutoff == 3.4028235E38 || this.cutoff == 0.14) { +this.cutoff = (this.psi_monteCarloCount > 0 ? 0 : 0.04); +if (this.isSquared) this.cutoff = this.cutoff * this.cutoff; +}this.isCutoffAbsolute = true; +if (this.state < 2 && this.thePlane == null && this.colorBySign) this.isBicolorMap = true; +return (this.psi_Znuc > 0 && Math.abs(this.psi_m) <= this.psi_l && this.psi_l < this.psi_n); +}, "~A"); +Clazz.defineMethod(c$, "setMep", +function(charges, isMLP){ +this.dataType = (isMLP ? 1329 : 1328); +this.theProperty = charges; +this.usePropertyForColorRange = false; +this.isEccentric = this.isAnisotropic = false; +if (this.cutoff == 3.4028235E38) { +this.cutoff = 0.1; +if (this.isSquared) this.cutoff = this.cutoff * this.cutoff; +}this.isCutoffAbsolute = (this.cutoff > 0 && !this.isPositiveOnly); +this.contourFromZero = false; +if (this.state >= 2 || this.thePlane != null) { +if (!this.rangeDefined && !this.rangeAll) { +this.valueMappedToRed = -0.1; +this.valueMappedToBlue = 0.1; +this.rangeDefined = true; +}} else { +this.colorBySign = true; +this.isBicolorMap = true; +}}, "~A,~B"); +Clazz.defineMethod(c$, "setNci", +function(isPromolecular){ +this.fullyLit = true; +this.qm_gridMax = 200; +if (isPromolecular) this.dataType = 1844; +this.qm_marginAngstroms = 2; +this.qmOrbitalType = (isPromolecular ? 3 : 4); +if (isPromolecular) { +if (this.parameters == null || this.parameters.length < 2) this.parameters = Clazz.newFloatArray(-1, [this.cutoff, 2]); +}if (this.cutoff == 3.4028235E38 || this.cutoff == 0) this.cutoff = 0.3; +if (this.isSquared) this.cutoff *= this.cutoff; +if (this.title == null) this.title = new Array(0); +this.moData = new java.util.Hashtable(); +}, "~B"); +Clazz.defineMethod(c$, "setMO", +function(iMo, linearCombination){ +this.isModelConnected = true; +this.qm_moLinearCombination = linearCombination; +this.qm_moNumber = (linearCombination == null ? Math.abs(iMo) : Clazz.floatToInt(linearCombination[1])); +this.qmOrbitalType = (this.moData.containsKey("haveVolumeData") ? 5 : this.moData.containsKey("gaussians") ? 1 : this.moData.containsKey("slaters") ? 2 : 0); +var isElectronDensity = (iMo <= 0 && linearCombination == null); +if (this.qmOrbitalType == 0) { +JU.Logger.error("MO ERROR: No basis functions found in file for MO calculation. (GAUSSIAN 'gfprint' keyword may be missing?)"); +this.title = Clazz.newArray(-1, ["no basis functions found in file"]); +} else { +var mos = this.moData.get("mos"); +this.qmOrbitalCount = mos.size(); +this.calculationType = this.moData.get("calculationType"); +this.calculationType = "Molecular orbital #" + this.qm_moNumber + "/" + this.qmOrbitalCount + " " + (this.calculationType == null ? "" : this.calculationType); +if (!isElectronDensity) { +if (this.title == null) { +this.title = new Array(5); +this.title[0] = "%F"; +this.title[1] = "Model %M MO %I/%N %T"; +this.title[2] = "?Energy = %E %U"; +this.title[3] = "?Symmetry = %S"; +this.title[4] = "?Occupancy = %O"; +}}}this.dataType = 1837; +if (this.cutoff == 3.4028235E38) { +this.cutoff = (isElectronDensity ? 0.01 : 0.05); +}if (this.isSquared || this.isSquaredLinear) this.cutoff = this.cutoff * this.cutoff; +this.isEccentric = this.isAnisotropic = false; +this.isCutoffAbsolute = (this.cutoff > 0 && !this.isPositiveOnly); +if (this.state >= 2 || this.thePlane != null) return; +this.colorBySign = true; +if (this.colorByPhase && this.colorPhase == 0) this.colorByPhase = false; +this.isBicolorMap = true; +}, "~N,~A"); +Clazz.defineMethod(c$, "setMapRanges", +function(surfaceReader, haveData){ +if (!this.colorDensity) if (this.colorByPhase || this.colorBySign || (this.thePlane != null || this.isBicolorMap) && !this.isContoured) { +this.mappedDataMin = -1; +this.mappedDataMax = 1; +}if (this.mappedDataMin == 3.4028235E38 || this.mappedDataMin == this.mappedDataMax) { +var minMax = surfaceReader.getMinMaxMappedValues(haveData); +System.out.println("parameters - setmapranges " + minMax[0] + " " + minMax[1]); +this.mappedDataMin = minMax[0]; +this.mappedDataMax = minMax[1]; +}if (this.mappedDataMin == 0 && this.mappedDataMax == 0) { +this.mappedDataMin = -1; +this.mappedDataMax = 1; +}if (!this.rangeDefined) { +this.valueMappedToRed = this.mappedDataMin; +this.valueMappedToBlue = this.mappedDataMax; +}}, "J.jvxl.readers.SurfaceReader,~B"); +Clazz.defineMethod(c$, "addSlabInfo", +function(slabObject){ +if (this.slabInfo == null) this.slabInfo = new JU.Lst(); +this.slabInfo.addLast(slabObject); +}, "~A"); +Clazz.defineMethod(c$, "isInsideOut", +function(){ +return this.insideOut != this.dataXYReversed; +}); +Clazz.defineMethod(c$, "isFullyLit", +function(){ +return (this.thePlane != null || this.fullyLit); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PeriodicVolumeFileReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PeriodicVolumeFileReader.js new file mode 100755 index 000000000000..62390a42e831 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PeriodicVolumeFileReader.js @@ -0,0 +1,62 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader"], "J.jvxl.readers.PeriodicVolumeFileReader", null, function(){ +var c$ = Clazz.declareType(J.jvxl.readers, "PeriodicVolumeFileReader", J.jvxl.readers.VolumeFileReader); +Clazz.overrideMethod(c$, "readSurfaceData", +function(isMapData){ +this.initializeSurfaceData(); +this.newVoxelDataCube(); +this.getPeriodicVoxels(); +if (this.params.extendGrid != 0) { +var n = Clazz.newIntArray (3, 0); +var nx = this.nPointsX - 1; +var ny = this.nPointsY - 1; +var nz = this.nPointsZ - 1; +for (var i = 0; i < 3; i++) { +var vi = this.voxelCounts[i] - 1; +n[i] = Clazz.floatToInt(vi * this.params.extendGrid); +this.volumetricOrigin.scaleAdd2(-n[i], this.volumetricVectors[i], this.volumetricOrigin); +vi += 2 * n[i]; +while (n[i] > 0) n[i] -= this.voxelCounts[i] - 1; + +this.voxelCounts[i] = vi + 1; +} +this.nPointsX = this.voxelCounts[0]; +this.nPointsY = this.voxelCounts[1]; +this.nPointsZ = this.voxelCounts[2]; +var vd = Clazz.newFloatArray (this.nPointsX, this.nPointsY, this.nPointsZ, 0); +for (var i = this.nPointsX; --i >= 0; ) for (var j = this.nPointsY; --j >= 0; ) for (var k = this.nPointsZ; --k >= 0; ) { +vd[i][j][k] = this.voxelData[(i - n[0]) % nx][(j - n[1]) % ny][(k - n[2]) % nz]; +} + + +this.voxelData = vd; +} else { +var n; +n = this.nPointsX - 1; +for (var i = 0; i < this.nPointsY; ++i) for (var j = 0; j < this.nPointsZ; ++j) this.voxelData[n][i][j] = this.voxelData[0][i][j]; + + +n = this.nPointsY - 1; +for (var i = 0; i < this.nPointsX; ++i) for (var j = 0; j < this.nPointsZ; ++j) this.voxelData[i][n][j] = this.voxelData[i][0][j]; + + +n = this.nPointsZ - 1; +for (var i = 0; i < this.nPointsX; ++i) for (var j = 0; j < this.nPointsY; ++j) this.voxelData[i][j][n] = this.voxelData[i][j][0]; + + +}if (isMapData && this.volumeData.hasPlane()) { +this.volumeData.setVoxelMap(); +for (var x = 0; x < this.nPointsX; ++x) { +for (var y = 0; y < this.nPointsY; ++y) { +for (var z = 0; z < this.nPointsZ; ++z) { +var f = this.volumeData.getToPlaneParameter(); +if (this.volumeData.isNearPlane(x, y, z, f)) this.volumeData.setVoxelMapValue(x, y, z, this.voxelData[x][y][z]); +} +} +} +this.voxelData = null; +}this.volumeData.setVoxelDataAsArray(this.voxelData); +if (this.dataMin > this.params.cutoff) this.params.cutoff = 2 * this.dataMin; +}, "~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PltFormattedReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PltFormattedReader.js new file mode 100755 index 000000000000..b1db471fef75 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PltFormattedReader.js @@ -0,0 +1,40 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader"], "J.jvxl.readers.PltFormattedReader", ["JU.SB", "JV.Viewer"], function(){ +var c$ = Clazz.declareType(J.jvxl.readers, "PltFormattedReader", J.jvxl.readers.VolumeFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.PltFormattedReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2VFR(sg, br); +this.isAngstroms = true; +this.jvxlData.wasCubic = true; +this.jvxlFileHeaderBuffer = new JU.SB(); +this.nSurfaces = 1; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +var n1 = this.parseIntStr(this.rd()); +var n2 = this.parseInt(); +this.nPointsX = this.parseIntStr(this.rd()); +this.nPointsY = this.parseInt(); +this.nPointsZ = this.parseInt(); +this.jvxlFileHeaderBuffer.append("Plt formatted data (" + n1 + "," + n2 + ") " + this.nPointsX + " x " + this.nPointsY + " x " + this.nPointsZ + " \nJmol " + JV.Viewer.getJmolVersion() + '\n'); +this.volumetricOrigin.set(0, 0, 0); +var xmin = this.parseFloatStr(this.rd().substring(0, 12)); +var xmax = this.parseFloatRange(this.line, 12, 24); +var ymin = this.parseFloatRange(this.line, 24, 36); +var ymax = this.parseFloatRange(this.line, 36, 48); +var zmin = this.parseFloatRange(this.line, 48, 60); +var zmax = this.parseFloatRange(this.line, 60, 72); +this.volumetricOrigin.set(xmin, ymin, zmin); +this.voxelCounts[0] = this.nPointsX; +this.voxelCounts[1] = this.nPointsY; +this.voxelCounts[2] = this.nPointsZ; +this.volumetricVectors[0].set(0, 0, (xmax - xmin) / this.nPointsX); +this.volumetricVectors[1].set(0, (ymax - ymin) / this.nPointsY, 0); +this.volumetricVectors[2].set((zmax - zmin) / this.nPointsZ, 0, 0); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Pmesh4Reader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Pmesh4Reader.js new file mode 100755 index 000000000000..4e3b68b015b2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Pmesh4Reader.js @@ -0,0 +1,102 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.PolygonFileReader"], "J.jvxl.readers.Pmesh4Reader", ["JU.CU", "$.P4", "J.jvxl.data.JvxlCoder", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.nPolygons = 0; +this.pmeshError = null; +this.type = null; +this.color = 0; +this.transparency = 0; +this.nX = 0; +this.nY = 0; +this.tokens = null; +this.iToken = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "Pmesh4Reader", J.jvxl.readers.PolygonFileReader); +Clazz.prepareFields (c$, function(){ +this.tokens = new Array(0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.Pmesh4Reader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2PFR(sg, br); +var fileName = (sg.getReaderData())[0]; +if (fileName == null) return; +this.params.fullyLit = true; +this.type = "pmesh4"; +this.jvxlFileHeaderBuffer.append(this.type + " file format\nvertices and triangles only\n"); +J.jvxl.data.JvxlCoder.jvxlCreateHeaderWithoutTitleOrAtoms(this.volumeData, this.jvxlFileHeaderBuffer); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "getSurfaceData", +function(){ +this.rd(); +if (this.readVerticesAndPolygons()) JU.Logger.info(this.type + " file contains " + this.nVertices + " 4D vertices and " + this.nPolygons + " polygons for " + this.nTriangles + " triangles"); + else JU.Logger.error(this.params.fileName + ": " + (this.pmeshError == null ? "Error reading pmesh4 data " : this.pmeshError)); +}); +Clazz.defineMethod(c$, "readVerticesAndPolygons", +function(){ +try { +this.readColor(); +this.nY = this.getInt(); +this.nX = this.getInt(); +this.readVertices(); +this.createMesh(); +return true; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +if (this.pmeshError == null) this.pmeshError = this.type + " ERROR: " + e; +} else { +throw e; +} +} +return false; +}); +Clazz.defineMethod(c$, "readColor", +function(){ +this.color = JU.CU.colorTriadToFFRGB(this.getFloat(), this.getFloat(), this.getFloat()); +this.transparency = this.getFloat(); +}); +Clazz.defineMethod(c$, "readVertices", +function(){ +this.nVertices = this.nX * this.nY; +this.iToken = 2147483647; +this.pmeshError = this.type + " ERROR: invalid vertex list"; +for (var i = 0; i < this.nVertices; i++) { +var pt = JU.P4.new4(this.getFloat(), this.getFloat(), this.getFloat(), this.getFloat()); +if (JU.Logger.debugging) JU.Logger.debug(i + ": " + pt); +this.addVertexCopy(pt, 0, i, false); +this.iToken = 2147483647; +} +this.pmeshError = null; +return true; +}); +Clazz.defineMethod(c$, "createMesh", +function(){ +for (var i = 0; i < this.nX - 1; i++) { +for (var j = 0; j < this.nY - 1; j++) { +this.nTriangles += 2; +this.addTriangleCheck(i * this.nY + j, (i + 1) * this.nY + j, (i + 1) * this.nY + j + 1, 3, 0, false, this.color); +this.addTriangleCheck((i + 1) * this.nY + j + 1, i * this.nY + j + 1, i * this.nY + j, 3, 0, false, this.color); +} +} +}); +Clazz.defineMethod(c$, "nextToken", +function(){ +while (this.iToken >= this.tokens.length) { +this.iToken = 0; +this.rd(); +this.tokens = this.getTokens(); +} +return this.tokens[this.iToken++]; +}); +Clazz.defineMethod(c$, "getInt", +function(){ +return this.parseIntStr(this.nextToken()); +}); +Clazz.defineMethod(c$, "getFloat", +function(){ +return this.parseFloatStr(this.nextToken()); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PmeshReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PmeshReader.js new file mode 100755 index 000000000000..f8067324569b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PmeshReader.js @@ -0,0 +1,205 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.PolygonFileReader"], "J.jvxl.readers.PmeshReader", ["JU.CU", "$.P3", "$.PT", "J.jvxl.data.JvxlCoder", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isBinary = false; +this.nPolygons = 0; +this.pmeshError = null; +this.type = null; +this.isClosedFace = false; +this.fixedCount = 0; +this.onePerLine = false; +this.vertexBase = 0; +this.vertexMap = null; +this.tokens = null; +this.iToken = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "PmeshReader", J.jvxl.readers.PolygonFileReader); +Clazz.prepareFields (c$, function(){ +this.tokens = new Array(0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.PmeshReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2PR(sg, br); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "init2PR", +function(sg, br){ +this.init2PFR(sg, br); +var fileName = (sg.getReaderData())[0]; +if (fileName == null) return; +this.type = "pmesh"; +this.setHeader(); +this.isBinary = this.checkBinary(fileName); +this.isClosedFace = !this.isBinary; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "setHeader", +function(){ +this.jvxlFileHeaderBuffer.append(this.type + " file format\nvertices and triangles only\n"); +J.jvxl.data.JvxlCoder.jvxlCreateHeaderWithoutTitleOrAtoms(this.volumeData, this.jvxlFileHeaderBuffer); +}); +Clazz.defineMethod(c$, "checkBinary", +function(fileName){ +try { +this.br.mark(4); +var buf = Clazz.newCharArray (5, '\0'); +this.br.read(buf, 0, 5); +if (( String.instantialize(buf)).startsWith("PM\u0001\u0000")) { +this.br.close(); +this.binarydoc = this.newBinaryDocument(); +this.setStream(fileName, (buf[4] == '\0')); +return true; +}this.br.reset(); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println(e); +} else { +throw e; +} +} +return false; +}, "~S"); +Clazz.overrideMethod(c$, "getSurfaceData", +function(){ +if (this.readVerticesAndPolygons()) JU.Logger.info((this.isBinary ? "binary " : "") + this.type + " file contains " + this.nVertices + " vertices and " + this.nPolygons + " polygons for " + this.nTriangles + " triangles"); + else JU.Logger.error(this.params.fileName + ": " + (this.pmeshError == null ? "Error reading pmesh data " : this.pmeshError)); +}); +Clazz.defineMethod(c$, "readVerticesAndPolygons", +function(){ +try { +if (this.isBinary && !this.readBinaryHeader()) return false; +if (this.readVertices() && this.readPolygons()) return true; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +if (this.pmeshError == null) this.pmeshError = this.type + " ERROR: " + e; +} else { +throw e; +} +} +return false; +}); +Clazz.defineMethod(c$, "readBinaryHeader", +function(){ +this.pmeshError = "could not read binary Pmesh file header"; +try { +var ignored = Clazz.newByteArray (64, 0); +this.binarydoc.readByteArray(ignored, 0, 8); +this.nVertices = this.binarydoc.readInt(); +this.nPolygons = this.binarydoc.readInt(); +this.binarydoc.readByteArray(ignored, 0, 64); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +this.pmeshError += " " + e.toString(); +this.binarydoc.close(); +return false; +} else { +throw e; +} +} +this.pmeshError = null; +return true; +}); +Clazz.defineMethod(c$, "readVertices", +function(){ +return this.readVerticesPM(); +}); +Clazz.defineMethod(c$, "readVerticesPM", +function(){ +this.pmeshError = this.type + " ERROR: vertex count must be positive"; +if (!this.isBinary) { +this.nVertices = this.getInt(); +if (this.nVertices == -2147483648) this.nVertices = this.getInt(); +}if (this.onePerLine) this.iToken = 2147483647; +if (this.nVertices <= 0) { +this.pmeshError += " (" + this.nVertices + ")"; +return false; +}this.pmeshError = this.type + " ERROR: invalid vertex list"; +this.vertexMap = Clazz.newIntArray (this.nVertices, 0); +for (var i = 0; i < this.nVertices; i++) { +var pt = JU.P3.new3(this.getFloat(), this.getFloat(), this.getFloat()); +if (this.isAnisotropic) this.setVertexAnisotropy(pt); +if (JU.Logger.debugging) JU.Logger.debug(i + ": " + pt); +this.vertexMap[i] = this.addVertexCopy(pt, 0, i, false); +if (this.onePerLine) this.iToken = 2147483647; +} +this.pmeshError = null; +return true; +}); +Clazz.defineMethod(c$, "readPolygons", +function(){ +return this.readPolygonsPM(); +}); +Clazz.defineMethod(c$, "readPolygonsPM", +function(){ +this.pmeshError = this.type + " ERROR: polygon count must be zero or positive"; +if (!this.isBinary) this.nPolygons = this.getInt(); +if (this.onePerLine) this.iToken = 2147483647; +var vertices = Clazz.newIntArray (5, 0); +if (this.nPolygons == -1) this.nPolygons = 2147483647; +var nread = 0; +for (var iPoly = 0; iPoly < this.nPolygons; iPoly++) { +var intCount = (this.fixedCount == 0 ? this.getInt() : this.fixedCount); +if (intCount == 0) break; +nread++; +var haveColor = (intCount < 0); +if (haveColor) intCount = -intCount; +var vertexCount = intCount - (intCount > 3 && this.isClosedFace ? 1 : 0); +if (vertexCount < 1 || vertexCount > 4) { +this.pmeshError = this.type + " ERROR: bad polygon (must have 1-4 vertices) at #" + (iPoly + 1); +return false; +}var isOK = true; +for (var i = 0; i < intCount; ++i) { +if ((vertices[i] = this.getInt() - this.vertexBase) < 0 || vertices[i] >= this.nVertices) { +this.pmeshError = this.type + " ERROR: invalid vertex index: " + vertices[i]; +return false; +}if ((vertices[i] = this.vertexMap[vertices[i]]) < 0) isOK = false; +} +if (this.onePerLine) this.iToken = 2147483647; +if (!isOK) continue; +if (vertexCount < 3) for (var i = vertexCount; i < 3; ++i) vertices[i] = vertices[i - 1]; + +var color = 0; +if (haveColor) { +if (this.isBinary) { +color = this.getInt(); +} else { +var c = this.nextToken(); +try { +color = (c.startsWith("0x") ? JU.PT.parseIntRadix(c.substring(2), 16) : this.parseIntStr(c)); +} catch (e) { +color = -2147483648; +} +if (color == -2147483648) color = JU.CU.getArgbFromString(c); +}color |= 0xFF000000; +}if (vertexCount == 4) { +this.nTriangles += 2; +this.addTriangleCheck(vertices[0], vertices[1], vertices[3], 5, 0, false, color); +this.addTriangleCheck(vertices[1], vertices[2], vertices[3], 3, 0, false, color); +} else { +this.nTriangles++; +this.addTriangleCheck(vertices[0], vertices[1], vertices[2], 7, 0, false, color); +}} +if (this.isBinary) this.nBytes = this.binarydoc.getPosition(); +this.nPolygons = nread; +return true; +}); +Clazz.defineMethod(c$, "nextToken", +function(){ +while (this.iToken >= this.tokens.length) { +this.iToken = 0; +this.rd(); +this.tokens = this.getTokens(); +} +return this.tokens[this.iToken++]; +}); +Clazz.defineMethod(c$, "getInt", +function(){ +return (this.isBinary ? this.binarydoc.readInt() : this.parseIntStr(this.nextToken())); +}); +Clazz.defineMethod(c$, "getFloat", +function(){ +return (this.isBinary ? this.binarydoc.readFloat() : this.parseFloatStr(this.nextToken())); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PolygonFileReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PolygonFileReader.js new file mode 100755 index 000000000000..0b408295fc68 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PolygonFileReader.js @@ -0,0 +1,31 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.SurfaceFileReader"], "J.jvxl.readers.PolygonFileReader", ["java.util.Date", "JU.SB"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.nVertices = 0; +this.nTriangles = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "PolygonFileReader", J.jvxl.readers.SurfaceFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.PolygonFileReader, []); +}); +Clazz.defineMethod(c$, "init2PFR", +function(sg, br){ +this.init2SFR(sg, br); +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append("#created ").append("" + new java.util.Date()).append("\n"); +this.vertexDataOnly = true; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readVolumeParameters", +function(isMapData){ +return true; +}, "~B"); +Clazz.overrideMethod(c$, "readVolumeData", +function(isMapData){ +return true; +}, "~B"); +Clazz.overrideMethod(c$, "readSurfaceData", +function(isMapData){ +this.getSurfaceData(); +}, "~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PyMOLMeshReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PyMOLMeshReader.js new file mode 100755 index 000000000000..2ca1e15f6633 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/PyMOLMeshReader.js @@ -0,0 +1,127 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.MapFileReader"], "J.jvxl.readers.PyMOLMeshReader", ["JU.SB", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.data = null; +this.voxelList = null; +this.surfaceName = null; +this.pymolType = 0; +this.isMesh = false; +this.pt = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "PyMOLMeshReader", J.jvxl.readers.MapFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.PyMOLMeshReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, brNull){ +this.init2MFR(sg, null); +this.allowSigma = true; +this.nSurfaces = 1; +var map = sg.getReaderData(); +this.data = map.get(this.params.calculationType); +if (this.data == null) return; +this.pymolType = Clazz.floatToInt(this.getFloat(J.jvxl.readers.PyMOLMeshReader.getList(this.data, 0), 0)); +this.isMesh = (this.pymolType == 3); +this.surfaceName = this.data.get(this.data.size() - 1); +JU.Logger.info("PyMOLMeshReader for " + this.params.calculationType + " pymolType=" + this.pymolType + "; isMesh=" + this.isMesh + " surfaceName=" + this.surfaceName); +this.data = J.jvxl.readers.PyMOLMeshReader.getList(J.jvxl.readers.PyMOLMeshReader.getList(this.data, 2), 0); +if (this.isMesh && this.params.thePlane == null && this.params.cutoffAutomatic) { +this.params.cutoff = this.getFloat(this.data, 8); +this.params.cutoffAutomatic = false; +}if (this.isMesh) this.data = J.jvxl.readers.PyMOLMeshReader.getList(J.jvxl.readers.PyMOLMeshReader.getList(map.get(this.surfaceName), 2), 0); +this.voxelList = J.jvxl.readers.PyMOLMeshReader.getList(J.jvxl.readers.PyMOLMeshReader.getList(J.jvxl.readers.PyMOLMeshReader.getList(this.data, 14), 2), 6); +JU.Logger.info("PyMOLMeshReader: Number of grid points = " + this.voxelList.size()); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +c$.getList = Clazz.defineMethod(c$, "getList", +function(list, i){ +return list.get(i); +}, "JU.Lst,~N"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +var t; +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append("PyMOL surface reader\n"); +this.jvxlFileHeaderBuffer.append(this.surfaceName + " (" + this.params.calculationType + ")\n"); +var s = J.jvxl.readers.PyMOLMeshReader.getList(this.data, 1); +t = J.jvxl.readers.PyMOLMeshReader.getList(s, 0); +var haveUnitCell = false; +if (t != null) { +if (t.size() < 3) t = J.jvxl.readers.PyMOLMeshReader.getList(s = J.jvxl.readers.PyMOLMeshReader.getList(s, 0), 0); +this.a = this.getFloat(t, 0); +haveUnitCell = (this.a != 1); +if (haveUnitCell) { +this.b = this.getFloat(t, 1); +this.c = this.getFloat(t, 2); +t = J.jvxl.readers.PyMOLMeshReader.getList(s, 1); +this.alpha = this.getFloat(t, 0); +this.beta = this.getFloat(t, 1); +this.gamma = this.getFloat(t, 2); +}}t = J.jvxl.readers.PyMOLMeshReader.getList(this.data, 7); +this.origin.set(this.getFloat(t, 0), this.getFloat(t, 1), this.getFloat(t, 2)); +t = J.jvxl.readers.PyMOLMeshReader.getList(this.data, 10); +this.na = Clazz.floatToInt(this.getFloat(t, 0)); +this.nb = Clazz.floatToInt(this.getFloat(t, 1)); +this.nc = Clazz.floatToInt(this.getFloat(t, 2)); +t = J.jvxl.readers.PyMOLMeshReader.getList(this.data, 11); +this.xyzStart[0] = this.getFloat(t, 0); +this.xyzStart[1] = this.getFloat(t, 1); +this.xyzStart[2] = this.getFloat(t, 2); +t = J.jvxl.readers.PyMOLMeshReader.getList(this.data, 13); +this.n2 = Clazz.floatToInt(this.getFloat(t, 0)); +this.n1 = Clazz.floatToInt(this.getFloat(t, 1)); +this.n0 = Clazz.floatToInt(this.getFloat(t, 2)); +if (!haveUnitCell) { +this.na = this.n2 - 1; +this.nb = this.n1 - 1; +this.nc = this.n0 - 1; +t = J.jvxl.readers.PyMOLMeshReader.getList(this.data, 8); +this.a = this.getFloat(t, 0) - this.origin.x; +this.b = this.getFloat(t, 1) - this.origin.y; +this.c = this.getFloat(t, 2) - this.origin.z; +this.alpha = this.beta = this.gamma = 90; +}this.mapc = 3; +this.mapr = 2; +this.maps = 1; +this.getVectorsAndOrigin(); +this.setCutoffAutomatic(); +}); +Clazz.overrideMethod(c$, "nextVoxel", +function(){ +return this.getFloat(this.voxelList, this.pt++); +}); +Clazz.defineMethod(c$, "getFloat", +function(list, i){ +return (list.get(i)).floatValue(); +}, "JU.Lst,~N"); +Clazz.overrideMethod(c$, "skipData", +function(nPoints){ +}, "~N"); +Clazz.overrideMethod(c$, "setCutoffAutomatic", +function(){ +if (this.params.thePlane != null) return; +if (Float.isNaN(this.params.sigma)) { +if (!this.params.cutoffAutomatic) return; +this.params.cutoff = (this.boundingBox == null ? 3.0 : 1.6); +if (this.dmin != 3.4028235E38) { +if (this.params.cutoff > this.dmax) this.params.cutoff = this.dmax / 4; +}} else { +this.params.cutoff = this.calculateCutoff(); +}JU.Logger.info("MapReader: setting cutoff to default value of " + this.params.cutoff + (this.boundingBox == null ? " (no BOUNDBOX parameter)\n" : "\n")); +}); +Clazz.defineMethod(c$, "calculateCutoff", +function(){ +var n = this.voxelList.size(); +var sum = 0; +var sum2 = 0; +for (var i = 0; i < n; i++) { +var v = this.getFloat(this.voxelList, i); +sum += v; +sum2 += v * v; +} +var mean = sum / n; +var rmsd = Math.sqrt(sum2 / n); +JU.Logger.info("PyMOLMeshReader rmsd=" + rmsd + " mean=" + mean); +return this.params.sigma * rmsd + mean; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Ras3DReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Ras3DReader.js new file mode 100755 index 000000000000..c5b266743214 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/Ras3DReader.js @@ -0,0 +1,97 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.PolygonFileReader"], "J.jvxl.readers.Ras3DReader", ["java.util.Hashtable", "JU.CU", "$.P3", "J.jvxl.data.JvxlCoder", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.pmeshError = null; +this.type = null; +this.asQuads = false; +this.nPolygons = 0; +this.htVertices = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "Ras3DReader", J.jvxl.readers.PolygonFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.Ras3DReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2PR(sg, br); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "init2PR", +function(sg, br){ +this.init2PFR(sg, br); +var fileName = (sg.getReaderData())[0]; +if (fileName == null) return; +this.type = "ras3d"; +this.setHeader(); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "setHeader", +function(){ +this.jvxlFileHeaderBuffer.append(this.type + " file format\nvertices and triangles only\n"); +J.jvxl.data.JvxlCoder.jvxlCreateHeaderWithoutTitleOrAtoms(this.volumeData, this.jvxlFileHeaderBuffer); +}); +Clazz.overrideMethod(c$, "getSurfaceData", +function(){ +if (this.readVerticesAndPolygons()) JU.Logger.info(this.type + " file contains " + this.nVertices + " vertices and " + this.nPolygons + " polygons for " + this.nTriangles + " triangles"); + else JU.Logger.error(this.params.fileName + ": " + (this.pmeshError == null ? "Error reading pmesh data " : this.pmeshError)); +}); +Clazz.defineMethod(c$, "readVerticesAndPolygons", +function(){ +try { +if (this.readVertices()) return true; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +if (this.pmeshError == null) this.pmeshError = this.type + " ERROR: " + e; +} else { +throw e; +} +} +return false; +}); +Clazz.defineMethod(c$, "readVertices", +function(){ +this.htVertices = new java.util.Hashtable(); +var v0 = Clazz.newIntArray (3, 0); +var v1 = Clazz.newIntArray (3, 0); +var v2; +var c0 = 0; +var c1 = 0; +var c2; +if (this.rd().indexOf("DSSR") >= 0) this.asQuads = true; +while (this.rd() != null) { +while (!this.line.equals("1")) { +this.rd(); +} +this.rd(); +var tokens = this.getTokens(); +v0[0] = this.getPoint(tokens, 0); +v0[1] = this.getPoint(tokens, 3); +v0[2] = this.getPoint(tokens, 6); +this.nTriangles++; +c0 = JU.CU.colorTriadToFFRGB(this.parseFloatStr(tokens[9]), this.parseFloatStr(tokens[10]), this.parseFloatStr(tokens[11])); +if (this.asQuads) { +if (this.nTriangles % 2 == 1) { +v2 = v1; +v1 = v0; +v0 = v2; +c2 = c1; +c1 = c0; +c0 = c2; +continue; +}this.addTriangleCheck(v0[0], v0[1], v0[2], 6, 0, false, c0); +this.addTriangleCheck(v1[0], v1[1], v1[2], 3, 0, false, c1); +} else { +this.addTriangleCheck(v0[0], v0[1], v0[2], 7, 0, false, c0); +}this.nPolygons++; +} +return true; +}); +Clazz.defineMethod(c$, "getPoint", +function(tokens, i){ +var key = tokens[i] + ";" + tokens[i + 1] + ";" + tokens[i + 2]; +var v = this.htVertices.get(key); +if (v == null) { +this.addVertexCopy(JU.P3.new3(this.parseFloatStr(tokens[i]), this.parseFloatStr(tokens[i + 1]), this.parseFloatStr(tokens[i + 2])), 0, this.nVertices, false); +this.htVertices.put(key, v = Integer.$valueOf(this.nVertices++)); +}return v.intValue(); +}, "~A,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/SurfaceFileReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/SurfaceFileReader.js new file mode 100755 index 000000000000..46d6ef833c96 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/SurfaceFileReader.js @@ -0,0 +1,140 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.SurfaceReader"], "J.jvxl.readers.SurfaceFileReader", ["JU.PT", "$.Rdr", "J.api.Interface"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.br = null; +this.binarydoc = null; +this.out = null; +this.line = null; +this.next = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "SurfaceFileReader", J.jvxl.readers.SurfaceReader); +Clazz.prepareFields (c$, function(){ +this.next = Clazz.newIntArray (1, 0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.SurfaceFileReader, []); +}); +Clazz.defineMethod(c$, "setStream", +function(fileName, isBigEndian){ +if (fileName == null) this.binarydoc.setStream(null, isBigEndian); + else try { +if (Clazz.instanceOf(this.br,"JU.Rdr.StreamReader")) { +var stream = (this.br).getStream(); +stream.reset(); +this.binarydoc.setStream(stream, true); +}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println("BCifDensityReader " + e); +this.binarydoc.setStream(this.sg.atomDataServer.getBufferedInputStream(fileName), isBigEndian); +} else { +throw e; +} +} +}, "~S,~B"); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initSR(sg); +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.defineMethod(c$, "init2", +function(sg, br){ +this.init2SFR(sg, br); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "init2SFR", +function(sg, br){ +this.br = br; +this.init(sg); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "newBinaryDocument", +function(){ +return J.api.Interface.getInterface("JU.BinaryDocument", this.sg.atomDataServer, "file"); +}); +Clazz.overrideMethod(c$, "setOutputChannel", +function(out){ +if (this.binarydoc == null) this.out = out; + else this.sg.setOutputChannel(this.binarydoc, out); +}, "JU.OC"); +Clazz.overrideMethod(c$, "closeReader", +function(){ +this.closeReaderSFR(); +}); +Clazz.defineMethod(c$, "closeReaderSFR", +function(){ +if (this.br != null) try { +this.br.close(); +} catch (e) { +if (Clazz.exceptionOf(e,"java.io.IOException")){ +} else { +throw e; +} +} +if (this.out != null) this.out.closeChannel(); +if (this.binarydoc != null) this.binarydoc.close(); +}); +Clazz.overrideMethod(c$, "discardTempData", +function(discardAll){ +this.closeReader(); +this.discardTempDataSR(discardAll); +}, "~B"); +Clazz.defineMethod(c$, "getTokens", +function(){ +return JU.PT.getTokensAt(this.line, 0); +}); +Clazz.defineMethod(c$, "parseFloat", +function(){ +return JU.PT.parseFloatNext(this.line, this.next); +}); +Clazz.defineMethod(c$, "parseFloatStr", +function(s){ +this.next[0] = 0; +return JU.PT.parseFloatNext(s, this.next); +}, "~S"); +Clazz.defineMethod(c$, "parseFloatRange", +function(s, iStart, iEnd){ +this.next[0] = iStart; +return JU.PT.parseFloatRange(s, iEnd, this.next); +}, "~S,~N,~N"); +Clazz.defineMethod(c$, "parseInt", +function(){ +return JU.PT.parseIntNext(this.line, this.next); +}); +Clazz.defineMethod(c$, "parseIntStr", +function(s){ +this.next[0] = 0; +return JU.PT.parseIntNext(s, this.next); +}, "~S"); +Clazz.defineMethod(c$, "parseIntNext", +function(s){ +return JU.PT.parseIntNext(s, this.next); +}, "~S"); +Clazz.defineMethod(c$, "parseFloatArrayStr", +function(s){ +this.next[0] = 0; +return JU.PT.parseFloatArrayNext(s, this.next, null, null, null); +}, "~S"); +Clazz.defineMethod(c$, "parseFloatArray", +function(a, strStart, strEnd){ +return JU.PT.parseFloatArrayNext(this.line, this.next, a, strStart, strEnd); +}, "~A,~S,~S"); +Clazz.defineMethod(c$, "getQuotedStringNext", +function(){ +return JU.PT.getQuotedStringNext(this.line, this.next); +}); +Clazz.defineMethod(c$, "skipTo", +function(info, what){ +if (info != null) while (this.rd().indexOf(info) < 0) { +} +if (what != null) this.next[0] = this.line.indexOf(what) + what.length + 2; +}, "~S,~S"); +Clazz.defineMethod(c$, "rd", +function(){ +this.line = this.br.readLine(); +if (this.line != null) { +this.nBytes += this.line.length; +if (this.out != null) { +var b = this.line.getBytes(); +this.out.write(b, 0, b.length); +this.out.writeByteAsInt(0x0A); +}}return this.line; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/SurfaceGenerator.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/SurfaceGenerator.js new file mode 100755 index 000000000000..a9baf010d6ed --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/SurfaceGenerator.js @@ -0,0 +1,866 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["JU.P3", "$.V3"], "J.jvxl.readers.SurfaceGenerator", ["JU.AU", "$.BS", "$.Measure", "$.P4", "$.PT", "$.Rdr", "$.SB", "J.jvxl.data.JvxlCoder", "$.JvxlData", "$.MeshData", "$.VolumeData", "J.jvxl.readers.Parameters", "$.SurfaceReader", "JU.Logger", "JV.FileManager"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.params = null; +this.jvxlData = null; +this.meshData = null; +this.volumeDataTemp = null; +this.meshDataServer = null; +this.atomDataServer = null; +this.marchingSquares = null; +this.version = null; +this.isValid = true; +this.fileType = null; +this.bsVdw = null; +this.colorPtr = 0; +this.surfaceReader = null; +this.out = null; +this.readerData = null; +this.vAB = null; +this.vNorm = null; +this.ptRef = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "SurfaceGenerator", null); +Clazz.prepareFields (c$, function(){ +this.vAB = new JU.V3(); +this.vNorm = new JU.V3(); +this.ptRef = JU.P3.new3(0, 0, 1e15); +}); +Clazz.makeConstructor(c$, +function(atomDataServer, meshDataServer, meshData, jvxlData){ +this.atomDataServer = atomDataServer; +this.meshDataServer = meshDataServer; +this.params = new J.jvxl.readers.Parameters(); +this.meshData = (meshData == null ? new J.jvxl.data.MeshData() : meshData); +this.jvxlData = (jvxlData == null ? new J.jvxl.data.JvxlData() : jvxlData); +this.volumeDataTemp = new J.jvxl.data.VolumeData(); +this.initializeIsosurface(); +}, "J.atomdata.AtomDataServer,J.jvxl.api.MeshDataServer,J.jvxl.data.MeshData,J.jvxl.data.JvxlData"); +Clazz.defineMethod(c$, "setJvxlData", +function(jvxlData){ +this.jvxlData = jvxlData; +if (jvxlData != null) jvxlData.version = this.version; +}, "J.jvxl.data.JvxlData"); +Clazz.defineMethod(c$, "setProp", +function(propertyName, value, bs){ +if ("debug" === propertyName) { +var TF = (value).booleanValue(); +this.params.logMessages = TF; +this.params.logCube = TF; +return true; +}if ("init" === propertyName) { +this.initializeIsosurface(); +if (Clazz.instanceOf(value,"J.jvxl.readers.Parameters")) { +this.params = value; +} else { +this.params.script = value; +if (this.params.script != null && this.params.script.indexOf(";#") >= 0) { +this.params.script = JU.PT.rep(this.params.script, ";#", "; #"); +}}return false; +}if ("silent" === propertyName) { +this.params.isSilent = true; +return true; +}if ("map" === propertyName) { +this.params.resetForMapping((value).booleanValue()); +if (this.surfaceReader != null) this.surfaceReader.minMax = null; +return true; +}if ("finalize" === propertyName) { +this.initializeIsosurface(); +return true; +}if ("clear" === propertyName) { +if (this.surfaceReader != null) this.surfaceReader.discardTempData(true); +return false; +}if ("fileIndex" === propertyName) { +this.params.fileIndex = (value).intValue(); +if (this.params.fileIndex < 0) this.params.fileIndex = 0; +this.params.readAllData = false; +return true; +}if ("blockData" === propertyName) { +this.params.blockCubeData = (value).booleanValue(); +return true; +}if ("withinPoints" === propertyName) { +this.params.boundingBox = (value)[1]; +return true; +}if ("boundingBox" === propertyName) { +var pts = value; +this.params.boundingBox = Clazz.newArray(-1, [JU.P3.newP(pts[0]), JU.P3.newP(pts[pts.length - 1])]); +return true; +}if ("func" === propertyName) { +this.params.func = value; +return true; +}if ("intersection" === propertyName) { +this.params.intersection = value; +return true; +}if ("bsSolvent" === propertyName) { +this.params.bsSolvent = value; +return true; +}if ("select" === propertyName) { +this.params.bsSelected = value; +return true; +}if ("ignore" === propertyName) { +this.params.bsIgnore = value; +return true; +}if ("propertySmoothing" === propertyName) { +this.params.propertySmoothing = (value).booleanValue(); +return true; +}if ("propertyDistanceMax" === propertyName) { +this.params.propertyDistanceMax = (value).floatValue(); +return true; +}if ("propertySmoothingPower" === propertyName) { +this.params.propertySmoothingPower = (value).intValue(); +return true; +}if ("title" === propertyName) { +if (value == null) { +this.params.title = null; +return true; +} else if (JU.AU.isAS(value)) { +this.params.title = value; +if (JU.Logger.debugging) for (var i = 0; i < this.params.title.length; i++) if (this.params.title[i].length > 0) JU.Logger.info(this.params.title[i]); + +}return true; +}if ("sigma" === propertyName) { +this.params.cutoff = this.params.sigma = (value).floatValue(); +this.params.cutoffRange = null; +this.params.cutoffAutomatic = false; +return true; +}if ("cutoff" === propertyName) { +this.params.cutoff = (value).floatValue(); +this.params.cutoffRange = null; +this.params.isPositiveOnly = false; +this.params.cutoffAutomatic = false; +return true; +}if ("cutoffPositive" === propertyName) { +this.params.cutoff = (value).floatValue(); +this.params.cutoffRange = null; +this.params.isPositiveOnly = true; +this.params.isCutoffAbsolute = false; +this.params.cutoffAutomatic = false; +return true; +}if ("cutoffRange" === propertyName) { +this.params.cutoffRange = value; +this.params.cutoff = this.params.cutoffRange[0]; +this.params.isPositiveOnly = false; +this.params.cutoffAutomatic = false; +return true; +}if ("parameters" === propertyName) { +this.params.parameters = JU.AU.ensureLengthA(value, 2); +if (this.params.parameters.length > 0 && this.params.parameters[0] != 0) this.params.cutoff = this.params.parameters[0]; +return true; +}if ("cap" === propertyName || "slab" === propertyName) { +if (value != null) this.params.addSlabInfo(value); +return true; +}if ("scale" === propertyName) { +this.params.scale = (value).floatValue(); +return true; +}if ("scale3d" === propertyName) { +this.params.scale3d = (value).floatValue(); +return true; +}if ("angstroms" === propertyName) { +this.params.isAngstroms = true; +return true; +}if ("resolution" === propertyName) { +var resolution = (value).floatValue(); +this.params.resolution = (resolution > 0 ? resolution : 3.4028235E38); +return true; +}if ("downsample" === propertyName) { +var rate = (value).intValue(); +this.params.downsampleFactor = (rate >= 0 ? rate : 0); +return true; +}if ("anisotropy" === propertyName) { +if ((this.params.dataType & 32) == 0) this.params.setAnisotropy(value); +return true; +}if ("eccentricity" === propertyName) { +this.params.setEccentricity(value); +return true; +}if ("addHydrogens" === propertyName) { +this.params.addHydrogens = (value).booleanValue(); +return true; +}if ("squareData" === propertyName) { +this.params.isSquared = (value == null ? false : (value).booleanValue()); +return true; +}if ("squareLinear" === propertyName) { +this.params.isSquaredLinear = (value == null ? false : (value).booleanValue()); +return true; +}if ("gridPoints" === propertyName) { +this.params.iAddGridPoints = true; +return true; +}if ("atomIndex" === propertyName) { +this.params.atomIndex = (value).intValue(); +return true; +}if ("insideOut" === propertyName) { +this.params.insideOut = true; +return true; +}if ("sign" === propertyName) { +this.params.isCutoffAbsolute = !this.params.isPositiveOnly; +this.params.colorBySign = true; +this.colorPtr = 0; +return true; +}if ("colorRGB" === propertyName) { +var rgb = (value).intValue(); +this.params.colorRgb = this.params.colorPos = this.params.colorPosLCAO = rgb; +if (this.colorPtr++ == 0) { +this.params.colorNeg = this.params.colorNegLCAO = rgb; +} else { +this.params.colorRgb = 2147483647; +}return true; +}if ("monteCarloCount" === propertyName) { +this.params.psi_monteCarloCount = (value).intValue(); +return true; +}if ("rangeAll" === propertyName) { +this.params.rangeAll = true; +return true; +}if ("rangeSelected" === propertyName) { +this.params.rangeSelected = true; +return true; +}if ("red" === propertyName) { +this.params.valueMappedToRed = (value).floatValue(); +return true; +}if ("blue" === propertyName) { +this.params.valueMappedToBlue = (value).floatValue(); +if (this.params.valueMappedToRed > this.params.valueMappedToBlue) { +var f = this.params.valueMappedToRed; +this.params.valueMappedToRed = this.params.valueMappedToBlue; +this.params.valueMappedToBlue = f; +this.params.isColorReversed = !this.params.isColorReversed; +}this.params.rangeDefined = true; +this.params.rangeAll = false; +return true; +}if ("reverseColor" === propertyName) { +this.params.isColorReversed = true; +return true; +}if ("setColorScheme" === propertyName) { +this.getSurfaceSets(); +this.params.colorBySets = true; +this.mapSurface(); +return true; +}if ("center" === propertyName) { +this.params.center.setT(value); +return true; +}if ("origin" === propertyName) { +this.params.origin = value; +return true; +}if ("step" === propertyName) { +this.params.steps = value; +return true; +}if ("modelInvRotation" === propertyName) { +this.params.modelInvRotation = value; +return true; +}if ("point" === propertyName) { +this.params.points = value; +return true; +}if ("withinDistance" === propertyName) { +this.params.distance = (value).floatValue(); +return true; +}if ("withinPoint" === propertyName) { +this.params.point = value; +return true; +}if ("progressive" === propertyName) { +this.params.isXLowToHigh = true; +return true; +}if ("phase" === propertyName) { +var color = value; +this.params.isCutoffAbsolute = true; +this.params.colorBySign = true; +this.params.colorByPhase = true; +this.params.colorPhase = J.jvxl.readers.SurfaceReader.getColorPhaseIndex(color); +if (this.params.colorPhase < 0) { +JU.Logger.warn(" invalid color phase: " + color); +this.params.colorPhase = 0; +}this.params.colorByPhase = this.params.colorPhase != 0; +if (this.params.state >= 2) { +this.params.dataType = this.params.surfaceType; +this.params.state = 3; +this.params.isBicolorMap = true; +this.surfaceReader.applyColorScale(); +}return true; +}if ("radius" === propertyName) { +JU.Logger.info("solvent probe radius set to " + value); +this.params.atomRadiusData = value; +return true; +}if ("envelopeRadius" === propertyName) { +this.params.envelopeRadius = (value).floatValue(); +return true; +}if ("cavityRadius" === propertyName) { +this.params.cavityRadius = (value).floatValue(); +return true; +}if ("cavity" === propertyName) { +this.params.isCavity = true; +return true; +}if ("doFullMolecular" === propertyName) { +this.params.doFullMolecular = true; +return true; +}if ("pocket" === propertyName) { +this.params.pocket = value; +this.params.fullyLit = this.params.pocket.booleanValue(); +return true; +}if ("minset" === propertyName) { +this.params.minSet = (value).intValue(); +return true; +}if ("maxset" === propertyName) { +this.params.maxSet = (value).intValue(); +return true; +}if ("plane" === propertyName) { +this.params.setPlane(value); +return true; +}if ("contour" === propertyName) { +this.params.isContoured = true; +var n; +if (JU.AU.isAF(value)) { +this.params.contoursDiscrete = value; +this.params.nContours = this.params.contoursDiscrete.length; +} else if (Clazz.instanceOf(value,"JU.P3")) { +var pt = this.params.contourIncrements = value; +var from = pt.x; +var to = pt.y; +var step = pt.z; +if (step <= 0) step = 1; +n = 0; +for (var p = from; p <= to + step / 10; p += step, n++) { +} +this.params.contoursDiscrete = Clazz.newFloatArray (n, 0); +var p = from; +for (var i = 0; i < n; i++, p += step) { +this.params.contoursDiscrete[i] = p; +} +this.params.nContours = n; +} else { +n = (value).intValue(); +this.params.thisContour = 0; +if (n == 0) this.params.nContours = 9; + else if (n > 0) this.params.nContours = n; + else this.params.thisContour = -n; +}return true; +}if ("colorDiscrete" === propertyName) { +this.params.contourColixes = value; +return true; +}if ("colorDensity" === propertyName) { +this.params.colorDensity = true; +if (value != null) this.params.pointSize = (value).floatValue(); +return false; +}if ("fullPlane" === propertyName) { +this.params.contourFromZero = !(value).booleanValue(); +return true; +}if ("mapLattice" === propertyName) { +this.params.mapLattice = value; +return true; +}if ("extendGrid" === propertyName) { +this.params.extendGrid = (value).floatValue(); +return true; +}if ("property" === propertyName) { +this.params.dataType = 1208; +this.params.theProperty = value; +this.mapSurface(); +return true; +}if ("sphere" === propertyName) { +this.params.setSphere((value).floatValue(), false); +this.readerData = Float.$valueOf(this.params.distance); +this.surfaceReader = this.newReader("IsoShapeReader"); +this.generateSurface(); +return true; +}if ("geodesic" === propertyName) { +this.params.setSphere((value).floatValue(), true); +this.readerData = Float.$valueOf(this.params.distance); +this.surfaceReader = this.newReader("IsoShapeReader"); +this.generateSurface(); +return true; +}if ("ellipsoid" === propertyName) { +if (Clazz.instanceOf(value,"JU.P4")) this.params.setEllipsoidP4(value); + else if (JU.AU.isAF(value)) this.params.setEllipsoidAF(value); + else return true; +this.readerData = Float.$valueOf(this.params.distance); +this.surfaceReader = this.newReader("IsoShapeReader"); +this.generateSurface(); +return true; +}if ("ellipsoid3" === propertyName) { +this.params.setEllipsoidAF(value); +this.readerData = Float.$valueOf(this.params.distance); +this.surfaceReader = this.newReader("IsoShapeReader"); +this.generateSurface(); +return true; +}if ("lp" === propertyName) { +this.params.setLp(value); +this.readerData = Clazz.newFloatArray(-1, [3, 2, 0, 15, 0]); +this.surfaceReader = this.newReader("IsoShapeReader"); +this.generateSurface(); +return true; +}if ("rad" === propertyName) { +this.params.setRadical(value); +this.readerData = Clazz.newFloatArray(-1, [3, 2, 0, 15, 0]); +this.surfaceReader = this.newReader("IsoShapeReader"); +this.generateSurface(); +return true; +}if ("lobe" === propertyName) { +this.params.setLobe(value); +this.readerData = Clazz.newFloatArray(-1, [3, 2, 0, 15, 0]); +this.surfaceReader = this.newReader("IsoShapeReader"); +this.generateSurface(); +return true; +}if ("hydrogenOrbital" === propertyName) { +if (!this.params.setAtomicOrbital(value)) { +this.isValid = false; +return true; +}this.readerData = Clazz.newFloatArray(-1, [this.params.psi_n, this.params.psi_l, this.params.psi_m, this.params.psi_Znuc, this.params.psi_monteCarloCount]); +this.surfaceReader = this.newReader("IsoShapeReader"); +this.processState(); +return true; +}if ("functionXY" === propertyName) { +this.params.setFunctionXY(value); +if (this.params.isContoured) this.volumeDataTemp.setPlaneParameters(this.params.thePlane == null ? this.params.thePlane = JU.P4.new4(0, 0, 1, 0) : this.params.thePlane); +if ((this.params.functionInfo.get(0)).indexOf("_xyz") >= 0) this.getFunctionZfromXY(); +this.processState(); +return true; +}if ("functionXYZ" === propertyName) { +this.params.setFunctionXYZ(value); +this.processState(); +return true; +}if ("lcaoType" === propertyName) { +this.params.setLcao(value, this.colorPtr); +return true; +}if ("lcaoCartoonCenter" === propertyName) { +if (++this.params.state != 2) return true; +if (Float.isNaN(this.params.center.x)) this.params.center.setT(value); +return false; +}if ("molecular" === propertyName || "solvent" === propertyName || "sasurface" === propertyName || "nomap" === propertyName) { +this.params.setSolvent(propertyName, (value).floatValue()); +if (!this.params.isSilent) JU.Logger.info(this.params.calculationType); +this.processState(); +return true; +}if ("moData" === propertyName) { +this.params.moData = value; +return true; +}if ("mepCalcType" === propertyName) { +this.params.mep_calcType = (value).intValue(); +return true; +}if ("mep" === propertyName) { +this.params.setMep(value, false); +this.processState(); +return true; +}if ("mlp" === propertyName) { +this.params.setMep(value, true); +this.processState(); +return true; +}if ("nci" === propertyName) { +var isPromolecular = (value).booleanValue(); +this.params.setNci(isPromolecular); +if (isPromolecular) this.processState(); +return true; +}if ("calculationType" === propertyName) { +this.params.calculationType = value; +return true; +}if ("charges" === propertyName) { +this.params.theProperty = value; +return true; +}if ("randomSeed" === propertyName) { +this.params.randomSeed = (value).intValue(); +return true; +}if ("molecularOrbital" === propertyName) { +var iMo = 0; +var linearCombination = null; +if (Clazz.instanceOf(value, Integer)) { +iMo = (value).intValue(); +} else { +linearCombination = value; +}this.params.setMO(iMo, linearCombination); +JU.Logger.info(this.params.calculationType); +this.processState(); +return true; +}if ("fileType" === propertyName) { +this.fileType = value; +return true; +}if ("fileName" === propertyName) { +this.params.fileName = value; +return true; +}if ("filesData" === propertyName) { +this.params.filesData = value; +return true; +}if ("outputChannel" === propertyName) { +this.out = value; +return true; +}if ("readFile" === propertyName) { +if ((this.surfaceReader = this.setFileData(this.atomDataServer, value)) == null) { +JU.Logger.error("Could not set the surface data"); +return true; +}this.surfaceReader.setOutputChannel(this.out); +this.generateSurface(); +return true; +}if ("mapColor" === propertyName) { +if ((this.surfaceReader = this.setFileData(this.atomDataServer, value)) == null) { +JU.Logger.error("Could not set the mapping data"); +return true; +}this.surfaceReader.setOutputChannel(this.out); +this.mapSurface(); +return true; +}if ("getSurfaceSets" === propertyName) { +this.getSurfaceSets(); +return true; +}if ("periodic" === propertyName) { +this.params.isPeriodic = true; +}return false; +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "newReader", +function(name){ +var sr = J.jvxl.readers.SurfaceGenerator.getInterface(name); +if (sr != null) sr.init(this); +return sr; +}, "~S"); +Clazz.defineMethod(c$, "newReaderBr", +function(name, br){ +var sr = J.jvxl.readers.SurfaceGenerator.getInterface(name); +if (sr != null) sr.init2(this, br); +return sr; +}, "~S,java.io.BufferedReader"); +c$.getInterface = Clazz.defineMethod(c$, "getInterface", +function(name){ +try { +var x = Clazz._4Name("J.jvxl.readers." + name); +return (x == null ? null : x.newInstance()); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Interface.java Error creating instance for " + name + ": \n" + e.toString()); +return null; +} else { +throw e; +} +} +}, "~S"); +Clazz.defineMethod(c$, "getSurfaceSets", +function(){ +if (this.meshDataServer == null) { +this.meshData.getSurfaceSet(); +} else { +this.meshDataServer.fillMeshData(this.meshData, 1, null); +this.meshData.getSurfaceSet(); +this.meshDataServer.fillMeshData(this.meshData, 3, null); +}}); +Clazz.defineMethod(c$, "processState", +function(){ +if (this.params.state == 1 && this.params.thePlane != null) this.params.state++; +if (this.params.state >= 2) { +this.mapSurface(); +} else { +this.generateSurface(); +}}); +Clazz.defineMethod(c$, "setReader", +function(){ +this.readerData = null; +if (this.surfaceReader != null) return !this.surfaceReader.vertexDataOnly; +switch (this.params.dataType) { +case 1207: +this.surfaceReader = this.newReader("IsoPlaneReader"); +break; +case 1208: +this.surfaceReader = this.newReader("AtomPropertyMapper"); +break; +case 1328: +case 1329: +this.readerData = (this.params.dataType == 1328 ? "Mep" : "Mlp"); +if (this.params.state == 3) { +this.surfaceReader = this.newReader("AtomPropertyMapper"); +} else { +this.surfaceReader = this.newReader("Iso" + this.readerData + "Reader"); +}break; +case 1334: +this.surfaceReader = this.newReader("IsoIntersectFileReader"); +break; +case 1333: +this.surfaceReader = this.newReader("IsoIntersectAtomReader"); +break; +case 1195: +case 1203: +case 1196: +this.surfaceReader = this.newReader("IsoSolventReader"); +break; +case 1844: +case 1837: +this.surfaceReader = this.newReader("IsoMOReader"); +break; +case 8: +this.surfaceReader = this.newReader("IsoFxyReader"); +break; +case 9: +this.surfaceReader = this.newReader("IsoFxyzReader"); +break; +} +if (JU.Logger.debugging) JU.Logger.info("Using surface reader " + this.surfaceReader); +if (this.params.isSilent && this.surfaceReader != null) this.surfaceReader.isQuiet = true; +return true; +}); +Clazz.defineMethod(c$, "generateSurface", +function(){ +if (++this.params.state != 2) return; +this.setReader(); +if (this.params.sbOut == null) this.params.sbOut = new JU.SB(); +this.jvxlData.sbOut = this.params.sbOut; +var haveMeshDataServer = (this.meshDataServer != null); +if (this.params.colorBySign) this.params.isBicolorMap = true; +if (this.surfaceReader == null) { +JU.Logger.error("surfaceReader is null for " + this.params.dataType); +return; +}if (!this.surfaceReader.createIsosurface(false)) { +JU.Logger.error("Could not create isosurface"); +this.params.cutoff = NaN; +this.params.cutoffRange = null; +this.surfaceReader.closeReader(); +return; +}if (this.params.probes != null) { +for (var i = this.params.probeValues.length; --i >= 0; ) { +this.params.probeValues[i] = this.surfaceReader.getValueAtPoint(this.params.probes[i], false); +} +}if (this.params.pocket != null && haveMeshDataServer) this.surfaceReader.selectPocket(!this.params.pocket.booleanValue()); +if (this.params.minSet > 0) this.surfaceReader.excludeMinimumSet(); +if (this.params.maxSet > 0) this.surfaceReader.excludeMaximumSet(); +if (this.params.slabInfo != null) this.surfaceReader.slabIsosurface(this.params.slabInfo); +if (haveMeshDataServer && this.meshDataServer.notifySurfaceGenerationCompleted()) this.surfaceReader.hasColorData = false; +if (this.jvxlData.thisSet != null) this.getSurfaceSets(); +if (this.jvxlData.jvxlDataIs2dContour) { +this.surfaceReader.colorIsosurface(); +this.params.state = 3; +}if (this.jvxlData.jvxlDataIsColorDensity) { +this.params.state = 3; +}if (this.params.colorBySign || this.params.isBicolorMap) { +this.params.state = 3; +this.surfaceReader.applyColorScale(); +}if (this.jvxlData.vertexColorMap != null) { +this.jvxlData.vertexColorMap = null; +this.surfaceReader.hasColorData = false; +}this.surfaceReader.jvxlUpdateInfo(); +this.marchingSquares = this.surfaceReader.marchingSquares; +this.surfaceReader.discardTempData(false); +this.params.mappedDataMin = 3.4028235E38; +this.surfaceReader.closeReader(); +if (this.params.state != 3 && (this.surfaceReader.hasColorData || this.params.colorDensity)) { +this.params.state = 3; +this.colorIsosurface(); +}this.surfaceReader = null; +}); +Clazz.defineMethod(c$, "mapSurface", +function(){ +if (this.params.state == 1 && this.params.thePlane != null) this.params.state++; +if (++this.params.state < 3) return; +if (!this.setReader()) return; +if (this.params.isPeriodic) this.surfaceReader.volumeData.isPeriodic = true; +if (this.params.thePlane != null) { +var isSquared = this.params.isSquared; +this.params.isSquared = false; +this.params.cutoff = 0; +this.params.cutoffRange = null; +this.surfaceReader.volumeData.setMappingPlane(this.params.thePlane); +this.surfaceReader.createIsosurface(!this.params.isPeriodic); +this.surfaceReader.volumeData.setMappingPlane(null); +if (this.meshDataServer != null) this.meshDataServer.notifySurfaceGenerationCompleted(); +if (this.params.dataType == 1207) { +this.surfaceReader.discardTempData(true); +return; +}this.params.isSquared = isSquared; +this.params.mappedDataMin = 3.4028235E38; +this.surfaceReader.readVolumeData(true); +if (this.params.mapLattice != null) this.surfaceReader.volumeData.isPeriodic = true; +} else if (!this.params.colorBySets && !this.params.colorDensity) { +this.surfaceReader.readAndSetVolumeParameters(true); +this.params.mappedDataMin = 3.4028235E38; +this.surfaceReader.readVolumeData(true); +}this.colorIsosurface(); +this.surfaceReader.closeReader(); +this.surfaceReader = null; +}); +Clazz.defineMethod(c$, "colorIsosurface", +function(){ +this.surfaceReader.colorIsosurface(); +this.surfaceReader.jvxlUpdateInfo(); +this.surfaceReader.updateTriangles(); +this.surfaceReader.discardTempData(true); +if (this.meshDataServer != null) this.meshDataServer.notifySurfaceMappingCompleted(); +}); +Clazz.defineMethod(c$, "getProperty", +function(property, index){ +if (property === "jvxlFileData") return J.jvxl.data.JvxlCoder.jvxlGetFile(this.jvxlData, null, this.params.title, "", true, index, null, null); +if (property === "jvxlFileInfo") return J.jvxl.data.JvxlCoder.jvxlGetInfo(this.jvxlData); +return null; +}, "~S,~N"); +Clazz.defineMethod(c$, "setFileData", +function(vwr, value){ +var fileType = this.fileType; +this.fileType = null; +if (Clazz.instanceOf(value,"java.util.Map")) { +var map = value; +if (map.containsKey("__pymolSurfaceData__")) { +this.readerData = map; +return this.newReaderBr("PyMOLMeshReader", null); +}value = map.get("volumeData"); +}if (Clazz.instanceOf(value,"J.jvxl.data.VolumeData")) { +this.volumeDataTemp = value; +return this.newReader("VolumeDataReader"); +}var data = null; +if ((typeof(value)=='string')) { +data = value; +value = JU.Rdr.getBR(value); +}if (Clazz.instanceOf(value,Array)) { +var a = (value)[0]; +var b = new Array(a.length); +for (var i = 0; i < a.length; i++) { +this.fileType = fileType; +b[i] = this.setFileData(vwr, a[i]); +} +(value)[0] = b; +this.readerData = value; +return this.newReader("IsoIntersectGridReader"); +}var br = value; +if (fileType == null) fileType = JV.FileManager.determineSurfaceFileType(br); +if (fileType != null && fileType.startsWith("UPPSALA")) { +var fname = this.params.fileName; +fname = fname.substring(0, fname.indexOf("/", 10)); +fname += JU.PT.getQuotedStringAt(fileType, fileType.indexOf("A HREF") + 1); +this.params.fileName = fname; +value = this.atomDataServer.getBufferedInputStream(fname); +if (value == null) { +JU.Logger.error("Isosurface: could not open file " + fname); +return null; +}try { +br = JU.Rdr.getBufferedReader(value, null); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +fileType = JV.FileManager.determineSurfaceFileType(br); +}if (fileType == null) fileType = "UNKNOWN"; +JU.Logger.info("data file type was determined to be " + fileType); +if (fileType.equals("Jvxl+")) return this.newReaderBr("JvxlReader", br); +this.readerData = Clazz.newArray(-1, [this.params.fileName, data]); +if ("MRC DELPHI DSN6".indexOf(fileType.toUpperCase()) >= 0) { +fileType += "Binary"; +}return this.newReaderBr(fileType + "Reader", br); +}, "JV.Viewer,~O"); +Clazz.defineMethod(c$, "getReaderData", +function(){ +var o = this.readerData; +this.readerData = null; +return o; +}); +Clazz.defineMethod(c$, "initializeIsosurface", +function(){ +this.params.initialize(); +this.colorPtr = 0; +this.surfaceReader = null; +this.marchingSquares = null; +this.initState(); +}); +Clazz.defineMethod(c$, "initState", +function(){ +this.params.state = 1; +this.params.dataType = this.params.surfaceType = 0; +}); +Clazz.defineMethod(c$, "setLcao", +function(){ +this.params.colorPos = this.params.colorPosLCAO; +this.params.colorNeg = this.params.colorNegLCAO; +return this.params.lcaoType; +}); +Clazz.defineMethod(c$, "getFunctionZfromXY", +function(){ +var origin = this.params.functionInfo.get(1); +var counts = Clazz.newIntArray (3, 0); +var nearest = Clazz.newIntArray (3, 0); +var vectors = new Array(3); +for (var i = 0; i < 3; i++) { +var info = this.params.functionInfo.get(i + 2); +counts[i] = Math.abs(Clazz.floatToInt(info.x)); +vectors[i] = JU.V3.new3(info.y, info.z, info.w); +} +var nx = counts[0]; +var ny = counts[1]; +var pt = new JU.P3(); +var pta = new JU.P3(); +var ptb = new JU.P3(); +var ptc = new JU.P3(); +var data = this.params.functionInfo.get(5); +var data2 = Clazz.newFloatArray (nx, ny, 0); +var d; +for (var i = 0; i < nx; i++) for (var j = 0; j < ny; j++) { +pt.scaleAdd2(i, vectors[0], origin); +pt.scaleAdd2(j, vectors[1], pt); +var dist = J.jvxl.readers.SurfaceGenerator.findNearestThreePoints(pt.x, pt.y, data, nearest); +pta.set((d = data[nearest[0]])[0], d[1], d[2]); +if (dist < 0.00001) { +pt.z = d[2]; +} else { +ptb.set((d = data[nearest[1]])[0], d[1], d[2]); +ptc.set((d = data[nearest[2]])[0], d[1], d[2]); +pt.z = this.distanceVerticalToPlane(pt.x, pt.y, pta, ptb, ptc); +}data2[i][j] = pt.z; +} + +this.params.functionInfo.set(5, data2); +}); +Clazz.defineMethod(c$, "distanceVerticalToPlane", +function(x, y, pta, ptb, ptc){ +var d = JU.Measure.getDirectedNormalThroughPoints(pta, ptb, ptc, this.ptRef, this.vNorm, this.vAB); +return (this.vNorm.x * x + this.vNorm.y * y + d) / -this.vNorm.z; +}, "~N,~N,JU.P3,JU.P3,JU.P3"); +c$.findNearestThreePoints = Clazz.defineMethod(c$, "findNearestThreePoints", +function(x, y, xyz, result){ +var d; +var dist1; +var dist2; +var dist3; +var i1; +var i2; +var i3; +i1 = i2 = i3 = -1; +dist1 = dist2 = dist3 = 3.4028235E38; +for (var i = xyz.length; --i >= 0; ) { +d = (d = xyz[i][0] - x) * d + (d = xyz[i][1] - y) * d; +if (d < dist1) { +dist3 = dist2; +dist2 = dist1; +dist1 = d; +i3 = i2; +i2 = i1; +i1 = i; +} else if (d < dist2) { +dist3 = dist2; +dist2 = d; +i3 = i2; +i2 = i; +} else if (d < dist3) { +dist3 = d; +i3 = i; +}} +result[0] = i1; +result[1] = i2; +result[2] = i3; +return dist1; +}, "~N,~N,~A,~A"); +Clazz.defineMethod(c$, "addRequiredFile", +function(fileName){ +if (this.meshDataServer == null) return; +this.meshDataServer.addRequiredFile(fileName); +}, "~S"); +Clazz.defineMethod(c$, "setRequiredFile", +function(oldName, fileName){ +if (this.meshDataServer == null) return; +this.meshDataServer.setRequiredFile(oldName, fileName); +}, "~S,~S"); +Clazz.defineMethod(c$, "log", +function(msg){ +if (this.atomDataServer == null) System.out.println(msg); + else this.atomDataServer.log(msg); +}, "~S"); +Clazz.defineMethod(c$, "setOutputChannel", +function(binaryDoc, out){ +if (this.meshDataServer == null) return; +this.meshDataServer.setOutputChannel(binaryDoc, out); +}, "javajs.api.GenericBinaryDocument,JU.OC"); +Clazz.defineMethod(c$, "fillAtomData", +function(atomData, mode){ +if ((mode & 2) != 0 && atomData.bsSelected != null) { +if (this.bsVdw == null) this.bsVdw = new JU.BS(); +this.bsVdw.or(atomData.bsSelected); +}this.atomDataServer.fillAtomData(atomData, mode); +}, "J.atomdata.AtomData,~N"); +Clazz.defineMethod(c$, "getOriginVaVbVc", +function(){ +return (this.surfaceReader.volumeData == null ? null : this.surfaceReader.volumeData.oabc); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/SurfaceReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/SurfaceReader.js new file mode 100755 index 000000000000..14aaf0e698d7 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/SurfaceReader.js @@ -0,0 +1,649 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.api.VertexDataServer", "JU.P3"], "J.jvxl.readers.SurfaceReader", ["JU.AU", "$.BS", "J.jvxl.calc.MarchingCubes", "$.MarchingSquares", "J.jvxl.data.JvxlCoder", "$.MeshData", "JU.BoxInfo", "$.C", "$.ColorEncoder", "$.Escape", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.sg = null; +this.meshDataServer = null; +this.params = null; +this.meshData = null; +this.jvxlData = null; +this.volumeData = null; +this.edgeData = null; +this.haveSurfaceAtoms = false; +this.allowSigma = false; +this.isProgressive = false; +this.isXLowToHigh = false; +this.assocCutoff = 0.3; +this.isQuiet = false; +this.isPeriodic = false; +this.vertexDataOnly = false; +this.hasColorData = false; +this.dataMin = 3.4028235E38; +this.dataMax = -3.4028235E38; +this.dataMean = 0; +this.xyzMin = null; +this.xyzMax = null; +this.center = null; +this.anisotropy = null; +this.isAnisotropic = false; +this.eccentricityMatrix = null; +this.eccentricityMatrixInverse = null; +this.isEccentric = false; +this.eccentricityScale = 0; +this.eccentricityRatio = 0; +this.edgeCount = 0; +this.volumetricOrigin = null; +this.volumetricVectors = null; +this.voxelCounts = null; +this.voxelData = null; +this.nBytes = 0; +this.nDataPoints = 0; +this.nPointsX = 0; +this.nPointsY = 0; +this.nPointsZ = 0; +this.isJvxl = false; +this.edgeFractionBase = 0; +this.edgeFractionRange = 0; +this.colorFractionBase = 0; +this.colorFractionRange = 0; +this.jvxlFileHeaderBuffer = null; +this.fractionData = null; +this.jvxlEdgeDataRead = ""; +this.jvxlColorDataRead = ""; +this.jvxlVoxelBitSet = null; +this.jvxlDataIsColorMapped = false; +this.jvxlDataIsPrecisionColor = false; +this.jvxlDataIs2dContour = false; +this.jvxlDataIsColorDensity = false; +this.jvxlCutoff = 0; +this.jvxlCutoffRange = null; +this.jvxlNSurfaceInts = 0; +this.cJvxlEdgeNaN = '\0'; +this.contourVertexCount = 0; +this.marchingSquares = null; +this.marchingCubes = null; +this.yzPlanes = null; +this.yzCount = 0; +this.qpc = null; +this.ptTemp = null; +this.minMax = null; +this.haveSetAnisotropy = false; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "SurfaceReader", null, J.jvxl.api.VertexDataServer); +Clazz.prepareFields (c$, function(){ +this.ptTemp = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.defineMethod(c$, "initSR", +function(sg){ +this.sg = sg; +this.params = sg.params; +this.assocCutoff = this.params.assocCutoff; +this.isXLowToHigh = this.params.isXLowToHigh; +this.center = this.params.center; +this.anisotropy = this.params.anisotropy; +this.isAnisotropic = this.params.isAnisotropic; +this.eccentricityMatrix = this.params.eccentricityMatrix; +this.eccentricityMatrixInverse = this.params.eccentricityMatrixInverse; +this.isEccentric = this.params.isEccentric; +this.eccentricityScale = this.params.eccentricityScale; +this.eccentricityRatio = this.params.eccentricityRatio; +this.marchingSquares = sg.marchingSquares; +this.meshData = sg.meshData; +this.jvxlData = sg.jvxlData; +this.setVolumeDataV(sg.volumeDataTemp); +this.meshDataServer = sg.meshDataServer; +this.cJvxlEdgeNaN = String.fromCharCode(125); +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.defineMethod(c$, "setOutputChannel", +function(out){ +}, "JU.OC"); +Clazz.defineMethod(c$, "newVoxelDataCube", +function(){ +this.volumeData.setVoxelDataAsArray(this.voxelData = Clazz.newFloatArray (this.nPointsX, this.nPointsY, this.nPointsZ, 0)); +}); +Clazz.defineMethod(c$, "setVolumeDataV", +function(v){ +this.nBytes = 0; +this.volumetricOrigin = v.volumetricOrigin; +this.volumetricVectors = v.volumetricVectors; +this.voxelCounts = v.voxelCounts; +this.voxelData = v.getVoxelData(); +this.volumeData = v; +}, "J.jvxl.data.VolumeData"); +Clazz.defineMethod(c$, "jvxlUpdateInfo", +function(){ +this.jvxlData.jvxlUpdateInfo(this.params.title, this.nBytes); +}); +Clazz.defineMethod(c$, "readAndSetVolumeParameters", +function(isMapData){ +if (!this.readVolumeParameters(isMapData)) return false; +if (this.vertexDataOnly) return true; +return (this.volumeData.setUnitVectors()); +}, "~B"); +Clazz.defineMethod(c$, "createIsosurface", +function(justForPlane){ +this.resetIsosurface(); +if (this.params.showTiming) JU.Logger.startTimer("isosurface creation"); +this.jvxlData.cutoff = NaN; +this.jvxlData.cutoffRange = null; +if (!this.readAndSetVolumeParameters(justForPlane)) return false; +if (!justForPlane && !Float.isNaN(this.params.sigma) && !this.allowSigma) { +if (this.params.sigma > 0) JU.Logger.error("Reader does not support SIGMA option -- using cutoff 1.6"); +this.params.cutoff = 1.6; +}if (this.params.sigma < 0) this.params.sigma = -this.params.sigma; +this.nPointsX = this.voxelCounts[0]; +this.nPointsY = this.voxelCounts[1]; +this.nPointsZ = this.voxelCounts[2]; +this.jvxlData.isSlabbable = ((this.params.dataType & 1024) != 0); +this.jvxlData.insideOut = this.params.isInsideOut(); +this.jvxlData.isBicolorMap = this.params.isBicolorMap; +this.jvxlData.nPointsX = this.nPointsX; +this.jvxlData.nPointsY = this.nPointsY; +this.jvxlData.nPointsZ = this.nPointsZ; +this.jvxlData.jvxlVolumeDataXml = this.volumeData.xmlData; +this.jvxlData.voxelVolume = this.volumeData.voxelVolume; +if (justForPlane) { +this.volumeData.setMappingPlane(this.params.thePlane); +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 1, null); +this.params.setMapRanges(this, false); +this.generateSurfaceData(); +this.volumeData.setMappingPlane(null); +} else { +if (!this.readVolumeData(false)) return false; +this.generateSurfaceData(); +}if (this.jvxlFileHeaderBuffer == null) { +this.jvxlData.jvxlFileTitle = ""; +this.jvxlData.jvxlFileSource = null; +this.jvxlData.jvxlFileMessage = null; +} else { +var s = this.jvxlFileHeaderBuffer.toString(); +var i = s.indexOf('\n', s.indexOf('\n', s.indexOf('\n') + 1) + 1) + 1; +this.jvxlData.jvxlFileTitle = s.substring(0, i); +this.jvxlData.jvxlFileSource = this.params.fileName; +}if (this.params.contactPair == null) this.setBBoxAll(); +this.jvxlData.isValid = (this.xyzMin.x != 3.4028235E38); +if (!this.params.isSilent) { +if (!this.jvxlData.isValid) JU.Logger.error("no isosurface points were found!"); + else JU.Logger.info("boundbox corners " + JU.Escape.eP(this.xyzMin) + " " + JU.Escape.eP(this.xyzMax)); +}this.jvxlData.boundingBox = Clazz.newArray(-1, [this.xyzMin, this.xyzMax]); +this.jvxlData.dataMin = this.dataMin; +this.jvxlData.dataMax = this.dataMax; +this.jvxlData.cutoffRange = (this.isJvxl ? this.jvxlCutoffRange : this.params.cutoffRange); +this.jvxlData.cutoff = (this.jvxlCutoffRange != null ? this.jvxlData.cutoffRange[0] : this.isJvxl ? this.jvxlCutoff : this.params.cutoff); +this.jvxlData.isCutoffAbsolute = this.params.isCutoffAbsolute; +this.jvxlData.isModelConnected = this.params.isModelConnected; +this.jvxlData.pointsPerAngstrom = 1 / this.volumeData.volumetricVectorLengths[0]; +this.jvxlData.jvxlColorData = ""; +this.jvxlData.jvxlPlane = this.params.thePlane; +this.jvxlData.jvxlEdgeData = this.edgeData; +this.jvxlData.isBicolorMap = this.params.isBicolorMap; +this.jvxlData.isContoured = this.params.isContoured; +this.jvxlData.colorDensity = this.params.colorDensity; +this.jvxlData.pointSize = this.params.pointSize; +if (this.jvxlData.vContours != null) this.params.nContours = this.jvxlData.vContours.length; +this.jvxlData.nContours = (this.params.contourFromZero ? this.params.nContours : -1 - this.params.nContours); +this.jvxlData.thisContour = this.params.thisContour; +this.jvxlData.nEdges = this.edgeCount; +this.jvxlData.edgeFractionBase = this.edgeFractionBase; +this.jvxlData.edgeFractionRange = this.edgeFractionRange; +this.jvxlData.colorFractionBase = this.colorFractionBase; +this.jvxlData.colorFractionRange = this.colorFractionRange; +this.jvxlData.jvxlDataIs2dContour = this.jvxlDataIs2dContour; +this.jvxlData.jvxlDataIsColorMapped = this.jvxlDataIsColorMapped; +this.jvxlData.jvxlDataIsColorDensity = this.jvxlDataIsColorDensity; +this.jvxlData.isXLowToHigh = this.isXLowToHigh; +this.jvxlData.vertexDataOnly = this.vertexDataOnly; +this.jvxlData.saveVertexCount = 0; +if (this.jvxlDataIsColorMapped || this.jvxlData.nVertexColors > 0) { +if (this.meshDataServer != null) { +this.meshDataServer.fillMeshData(this.meshData, 1, null); +this.meshDataServer.fillMeshData(this.meshData, 2, null); +}this.jvxlData.jvxlColorData = this.readColorData(); +this.updateSurfaceData(); +if (this.meshDataServer != null) this.meshDataServer.notifySurfaceMappingCompleted(); +}if (this.params.showTiming) JU.Logger.checkTimer("isosurface creation", false); +return true; +}, "~B"); +Clazz.defineMethod(c$, "resetIsosurface", +function(){ +this.meshData = new J.jvxl.data.MeshData(); +this.xyzMin = this.xyzMax = null; +this.jvxlData.isBicolorMap = this.params.isBicolorMap; +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(null, 0, null); +this.contourVertexCount = 0; +if (this.params.cutoff == 3.4028235E38) this.params.cutoff = 0.02; +this.jvxlData.jvxlSurfaceData = ""; +this.jvxlData.jvxlEdgeData = ""; +this.jvxlData.jvxlColorData = ""; +this.edgeCount = 0; +this.edgeFractionBase = 35; +this.edgeFractionRange = 90; +this.colorFractionBase = 35; +this.colorFractionRange = 90; +this.params.mappedDataMin = 3.4028235E38; +}); +Clazz.defineMethod(c$, "discardTempData", +function(discardAll){ +this.discardTempDataSR(discardAll); +}, "~B"); +Clazz.defineMethod(c$, "discardTempDataSR", +function(discardAll){ +if (!discardAll) return; +this.voxelData = null; +this.sg.marchingSquares = this.marchingSquares = null; +this.marchingCubes = null; +}, "~B"); +Clazz.defineMethod(c$, "initializeVolumetricData", +function(){ +this.nPointsX = this.voxelCounts[0]; +this.nPointsY = this.voxelCounts[1]; +this.nPointsZ = this.voxelCounts[2]; +this.setVolumeDataV(this.volumeData); +}); +Clazz.defineMethod(c$, "gotoAndReadVoxelData", +function(isMapData){ +this.initializeVolumetricData(); +if (this.nPointsX > 0 && this.nPointsY > 0 && this.nPointsZ > 0) try { +this.gotoData(this.params.fileIndex - 1, this.nPointsX * this.nPointsY * this.nPointsZ); +this.readSurfaceData(isMapData); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error(e.toString()); +return false; +} else { +throw e; +} +} +return true; +}, "~B"); +Clazz.defineMethod(c$, "gotoData", +function(n, nPoints){ +}, "~N,~N"); +Clazz.defineMethod(c$, "readColorData", +function(){ +if (this.jvxlData.vertexColors == null) return ""; +var vertexCount = this.jvxlData.vertexCount; +var colixes = this.meshData.vcs; +var vertexValues = this.meshData.vvs; +if (colixes == null || colixes.length < vertexCount) this.meshData.vcs = colixes = Clazz.newShortArray (vertexCount, 0); +if (vertexValues == null || vertexValues.length < vertexCount) this.meshData.vvs = vertexValues = Clazz.newFloatArray (vertexCount, 0); +for (var i = 0; i < vertexCount; i++) colixes[i] = JU.C.getColix(this.jvxlData.vertexColors[i]); + +return "-"; +}); +Clazz.overrideMethod(c$, "getPlane", +function(x){ +return this.getPlaneSR(x); +}, "~N"); +Clazz.defineMethod(c$, "getPlaneSR", +function(x){ +if (this.yzCount == 0) this.initPlanes(); +if (this.qpc != null) this.qpc.getPlane(x, this.yzPlanes[x % 2]); +return this.yzPlanes[x % 2]; +}, "~N"); +Clazz.defineMethod(c$, "initPlanes", +function(){ +this.yzCount = this.nPointsY * this.nPointsZ; +if (!this.isQuiet) JU.Logger.info("reading data progressively -- yzCount = " + this.yzCount); +this.yzPlanes = JU.AU.newFloat2(2); +this.yzPlanes[0] = Clazz.newFloatArray (this.yzCount, 0); +this.yzPlanes[1] = Clazz.newFloatArray (this.yzCount, 0); +}); +Clazz.overrideMethod(c$, "getValue", +function(x, y, z, ptyz){ +return this.getValue2(x, y, z, ptyz); +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "getValue2", +function(x, y, z, ptyz){ +return (this.yzPlanes == null ? this.voxelData[x][y][z] : this.yzPlanes[x % 2][ptyz]); +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "generateSurfaceData", +function(){ +this.edgeData = ""; +if (this.vertexDataOnly) { +try { +this.readSurfaceData(false); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println(e.toString()); +JU.Logger.error("Exception in SurfaceReader::readSurfaceData: " + e.toString()); +} else { +throw e; +} +} +return; +}this.contourVertexCount = 0; +var contourType = -1; +this.marchingSquares = null; +if (this.params.thePlane != null || this.params.isContoured) { +this.marchingSquares = new J.jvxl.calc.MarchingSquares(this, this.volumeData, this.params.thePlane, this.params.contoursDiscrete, this.params.nContours, this.params.thisContour, this.params.contourFromZero); +contourType = this.marchingSquares.contourType; +this.marchingSquares.setMinMax(this.params.valueMappedToRed, this.params.valueMappedToBlue); +}this.params.contourType = contourType; +this.params.isXLowToHigh = this.isXLowToHigh; +this.marchingCubes = new J.jvxl.calc.MarchingCubes(this, this.volumeData, this.params, this.jvxlVoxelBitSet); +var data = this.marchingCubes.getEdgeData(); +if (this.params.thePlane == null) this.edgeData = data; +this.jvxlData.setSurfaceInfoFromBitSetPts(this.marchingCubes.bsVoxels, this.params.thePlane, this.params.mapLattice); +this.jvxlData.jvxlExcluded = this.params.bsExcluded; +if (this.isJvxl) this.edgeData = this.jvxlEdgeDataRead; +this.postProcessVertices(); +}); +Clazz.defineMethod(c$, "postProcessVertices", +function(){ +}); +Clazz.overrideMethod(c$, "getSurfacePointIndexAndFraction", +function(cutoff, isCutoffAbsolute, x, y, z, offset, vA, vB, valueA, valueB, pointA, edgeVector, isContourType, fReturn){ +var thisValue = this.getSurfacePointAndFraction(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, this.ptTemp); +if (this.marchingSquares != null && this.params.isContoured) return this.marchingSquares.addContourVertex(this.ptTemp, cutoff); +var assocVertex = (this.assocCutoff > 0 ? (fReturn[0] < this.assocCutoff ? vA : fReturn[0] > 1 - this.assocCutoff ? vB : -1) : -1); +if (assocVertex >= 0) assocVertex = this.marchingCubes.getLinearOffset(x, y, z, assocVertex); +var n = this.addVertexCopy(this.ptTemp, thisValue, assocVertex, true); +if (n >= 0 && this.params.iAddGridPoints) { +this.marchingCubes.calcVertexPoint(x, y, z, vB, this.ptTemp); +this.addVertexCopy(valueA < valueB ? pointA : this.ptTemp, Math.min(valueA, valueB), -3, true); +this.addVertexCopy(valueA < valueB ? this.ptTemp : pointA, Math.max(valueA, valueB), -3, true); +}return n; +}, "~N,~B,~N,~N,~N,JU.P3i,~N,~N,~N,~N,JU.T3,JU.V3,~B,~A"); +Clazz.defineMethod(c$, "getSurfacePointAndFraction", +function(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn){ +return this.getSPF(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn); +}, "~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3"); +Clazz.defineMethod(c$, "getSPF", +function(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn){ +var diff = valueB - valueA; +var fraction = (cutoff - valueA) / diff; +if (isCutoffAbsolute && (fraction < 0 || fraction > 1)) fraction = (-cutoff - valueA) / diff; +if (fraction < 0 || fraction > 1) { +fraction = NaN; +}fReturn[0] = fraction; +ptReturn.scaleAdd2(fraction, edgeVector, pointA); +return valueA + fraction * diff; +}, "~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3"); +Clazz.defineMethod(c$, "addVertexCopy", +function(vertexXYZ, value, assocVertex, asCopy){ +return this.addVC(vertexXYZ, value, assocVertex, asCopy); +}, "JU.T3,~N,~N,~B"); +Clazz.defineMethod(c$, "addVC", +function(vertexXYZ, value, assocVertex, asCopy){ +return (Float.isNaN(value) && assocVertex != -3 ? -1 : this.meshDataServer == null ? this.meshData.addVertexCopy(vertexXYZ, value, assocVertex, asCopy) : this.meshDataServer.addVertexCopy(vertexXYZ, value, assocVertex, asCopy)); +}, "JU.T3,~N,~N,~B"); +Clazz.defineMethod(c$, "addTriangleCheck", +function(iA, iB, iC, check, iContour, isAbsolute, color){ +if (this.marchingSquares != null && this.params.isContoured) { +if (color == 0) return this.marchingSquares.addTriangle(iA, iB, iC, check, iContour); +color = 0; +}return (this.meshDataServer != null ? this.meshDataServer.addTriangleCheck(iA, iB, iC, check, iContour, isAbsolute, color) : isAbsolute && !J.jvxl.data.MeshData.checkCutoff(iA, iB, iC, this.meshData.vvs) ? -1 : this.meshData.addTriangleCheck(iA, iB, iC, check, iContour, color)); +}, "~N,~N,~N,~N,~N,~B,~N"); +Clazz.defineMethod(c$, "colorIsosurface", +function(){ +if (this.params.isSquared && this.volumeData != null) this.volumeData.filterData(true, NaN); +if (this.meshDataServer != null) { +this.meshDataServer.fillMeshData(this.meshData, 1, null); +}this.jvxlData.saveVertexCount = 0; +if (this.params.isContoured && this.marchingSquares != null) { +this.initializeMapping(); +this.params.setMapRanges(this, false); +this.marchingSquares.setMinMax(this.params.valueMappedToRed, this.params.valueMappedToBlue); +this.jvxlData.saveVertexCount = this.marchingSquares.contourVertexCount; +this.contourVertexCount = this.marchingSquares.generateContourData(this.jvxlDataIs2dContour, (this.params.isSquared ? 1e-8 : 1e-4)); +this.jvxlData.contourValuesUsed = this.marchingSquares.contourValuesUsed; +this.minMax = this.marchingSquares.getMinMax(); +if (this.meshDataServer != null) this.meshDataServer.notifySurfaceGenerationCompleted(); +this.finalizeMapping(); +}this.applyColorScale(); +this.jvxlData.nContours = (this.params.contourFromZero ? this.params.nContours : -1 - this.params.nContours); +this.jvxlData.thisContour = this.params.thisContour; +this.jvxlData.jvxlFileMessage = "mapped: min = " + this.params.valueMappedToRed + "; max = " + this.params.valueMappedToBlue; +}); +Clazz.defineMethod(c$, "applyColorScale", +function(){ +this.colorFractionBase = this.jvxlData.colorFractionBase = 35; +this.colorFractionRange = this.jvxlData.colorFractionRange = 90; +if (this.params.colorPhase == 0) this.params.colorPhase = 1; +if (this.meshDataServer == null) { +this.meshData.vcs = Clazz.newShortArray (this.meshData.vc, 0); +} else { +this.meshDataServer.fillMeshData(this.meshData, 1, null); +if (this.params.contactPair == null) this.meshDataServer.fillMeshData(this.meshData, 2, null); +}var saveColorData = (this.params.colorDensity || this.params.isBicolorMap || this.params.colorBySign || !this.params.colorByPhase); +if (this.params.contactPair != null) saveColorData = false; +this.jvxlData.isJvxlPrecisionColor = true; +this.jvxlData.vertexCount = (this.contourVertexCount > 0 ? this.contourVertexCount : this.meshData.vc); +this.jvxlData.minColorIndex = -1; +this.jvxlData.maxColorIndex = 0; +this.jvxlData.contourValues = this.params.contoursDiscrete; +this.jvxlData.isColorReversed = this.params.isColorReversed; +if (!this.params.colorDensity) if (this.params.isBicolorMap && !this.params.isContoured || this.params.colorBySign) { +this.jvxlData.minColorIndex = JU.C.getColixTranslucent3(JU.C.getColix(this.params.isColorReversed ? this.params.colorPos : this.params.colorNeg), this.jvxlData.translucency != 0, this.jvxlData.translucency); +this.jvxlData.maxColorIndex = JU.C.getColixTranslucent3(JU.C.getColix(this.params.isColorReversed ? this.params.colorNeg : this.params.colorPos), this.jvxlData.translucency != 0, this.jvxlData.translucency); +}this.jvxlData.isTruncated = (this.jvxlData.minColorIndex >= 0 && !this.params.isContoured); +var useMeshDataValues = this.jvxlDataIs2dContour || this.hasColorData || this.vertexDataOnly || this.params.colorDensity || this.params.isBicolorMap && !this.params.isContoured; +if (!useMeshDataValues) { +if (this.haveSurfaceAtoms && this.meshData.vertexSource == null) this.meshData.vertexSource = Clazz.newIntArray (this.meshData.vc, 0); +var min = 3.4028235E38; +var max = -3.4028235E38; +var value; +this.initializeMapping(); +for (var i = this.meshData.vc; --i >= this.meshData.mergeVertexCount0; ) { +if (this.params.colorBySets) { +value = this.meshData.vertexSets[i]; +} else if (this.params.colorByPhase) { +value = this.getPhase(this.meshData.vs[i]); +} else { +var needSource = this.haveSurfaceAtoms; +value = this.volumeData.lookupInterpolatedVoxelValue(this.meshData.vs[i], needSource); +if (needSource) this.meshData.vertexSource[i] = this.getSurfaceAtomIndex(); +}if (value < min) min = value; +if (value > max && value != 3.4028235E38) max = value; +this.meshData.vvs[i] = value; +} +if (this.params.rangeSelected && this.minMax == null) this.minMax = Clazz.newFloatArray(-1, [min, max]); +this.finalizeMapping(); +}this.params.setMapRanges(this, true); +this.jvxlData.mappedDataMin = this.params.mappedDataMin; +this.jvxlData.mappedDataMax = this.params.mappedDataMax; +this.jvxlData.valueMappedToRed = this.params.valueMappedToRed; +this.jvxlData.valueMappedToBlue = this.params.valueMappedToBlue; +if (this.params.contactPair == null && this.jvxlData.vertexColors == null) this.colorData(); +J.jvxl.data.JvxlCoder.jvxlCreateColorData(this.jvxlData, (saveColorData ? this.meshData.vvs : null)); +if (this.haveSurfaceAtoms && this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 4, null); +if (this.meshDataServer != null && this.params.colorBySets) this.meshDataServer.fillMeshData(this.meshData, 3, null); +}); +Clazz.defineMethod(c$, "colorData", +function(){ +var vertexValues = this.meshData.vvs; +var vertexColixes = this.meshData.vcs; +this.meshData.pcs = null; +var valueBlue = this.jvxlData.valueMappedToBlue; +var valueRed = this.jvxlData.valueMappedToRed; +var minColorIndex = this.jvxlData.minColorIndex; +var maxColorIndex = this.jvxlData.maxColorIndex; +if (this.params.colorEncoder == null) this.params.colorEncoder = new JU.ColorEncoder(null, null); +this.params.colorEncoder.setRange(this.params.valueMappedToRed, this.params.valueMappedToBlue, this.params.isColorReversed); +for (var i = this.meshData.vc; --i >= 0; ) { +var value = vertexValues[i]; +if (minColorIndex >= 0) { +if (value <= 0) vertexColixes[i] = minColorIndex; + else if (value > 0) vertexColixes[i] = maxColorIndex; +} else { +if (value <= valueRed) value = valueRed; +if (value >= valueBlue) value = valueBlue; +vertexColixes[i] = this.params.colorEncoder.getColorIndex(value); +}} +if ((this.params.nContours > 0 || this.jvxlData.contourValues != null) && this.jvxlData.contourColixes == null) { +var n = (this.jvxlData.contourValues == null ? this.params.nContours : this.jvxlData.contourValues.length); +var colors = this.jvxlData.contourColixes = Clazz.newShortArray (n, 0); +var values = this.jvxlData.contourValues; +if (values == null) values = this.jvxlData.contourValuesUsed; +if (this.jvxlData.contourValuesUsed == null) this.jvxlData.contourValuesUsed = (values == null ? Clazz.newFloatArray (n, 0) : values); +var dv = (valueBlue - valueRed) / (n + 1); +this.params.colorEncoder.setRange(this.params.valueMappedToRed, this.params.valueMappedToBlue, this.params.isColorReversed); +for (var i = 0; i < n; i++) { +var v = (values == null ? valueRed + (i + 1) * dv : values[i]); +this.jvxlData.contourValuesUsed[i] = v; +colors[i] = JU.C.getColixTranslucent(this.params.colorEncoder.getArgb(v)); +} +this.jvxlData.contourColors = JU.C.getHexCodes(colors); +}}); +c$.getColorPhaseIndex = Clazz.defineMethod(c$, "getColorPhaseIndex", +function(color){ +var colorPhase = -1; +for (var i = 0; i < J.jvxl.readers.SurfaceReader.colorPhases.length; i++) if (color.equalsIgnoreCase(J.jvxl.readers.SurfaceReader.colorPhases[i])) { +colorPhase = i; +break; +} +return colorPhase; +}, "~S"); +Clazz.defineMethod(c$, "getPhase", +function(pt){ +switch (this.params.colorPhase) { +case 0: +case -1: +case 1: +return (pt.x > 0 ? 1 : -1); +case 2: +return (pt.y > 0 ? 1 : -1); +case 3: +return (pt.z > 0 ? 1 : -1); +case 4: +return (pt.x * pt.y > 0 ? 1 : -1); +case 5: +return (pt.y * pt.z > 0 ? 1 : -1); +case 6: +return (pt.x * pt.z > 0 ? 1 : -1); +case 7: +return (pt.x * pt.x - pt.y * pt.y > 0 ? 1 : -1); +case 8: +return (pt.z * pt.z * 2 - pt.x * pt.x - pt.y * pt.y > 0 ? 1 : -1); +} +return 1; +}, "JU.T3"); +Clazz.defineMethod(c$, "getMinMaxMappedValues", +function(haveData){ +if (this.minMax != null && this.minMax[0] != 3.4028235E38) return this.minMax; +if (this.params.colorBySets) return (this.minMax = Clazz.newFloatArray(-1, [0, Math.max(this.meshData.nSets - 1, 0)])); +var min = 3.4028235E38; +var max = -3.4028235E38; +if (this.params.usePropertyForColorRange && this.params.theProperty != null) { +for (var i = this.params.theProperty.length; --i >= 0; ) { +if (this.params.rangeSelected && !this.params.bsSelected.get(i)) continue; +var p = this.params.theProperty[i]; +if (Float.isNaN(p)) continue; +if (p < min) min = p; +if (p > max) max = p; +} +return (this.minMax = Clazz.newFloatArray(-1, [min, max])); +}var vertexCount = (this.contourVertexCount > 0 ? this.contourVertexCount : this.meshData.vc); +var vertexes = this.meshData.vs; +var useVertexValue = (haveData || this.jvxlDataIs2dContour || this.vertexDataOnly || this.params.colorDensity); +for (var i = this.meshData.mergeVertexCount0; i < vertexCount; i++) { +var v; +if (useVertexValue) v = this.meshData.vvs[i]; + else v = this.volumeData.lookupInterpolatedVoxelValue(vertexes[i], false); +if (v < min) min = v; +if (v > max && v != 3.4028235E38) max = v; +} +return (this.minMax = Clazz.newFloatArray(-1, [min, max])); +}, "~B"); +Clazz.defineMethod(c$, "updateTriangles", +function(){ +if (this.meshDataServer == null) { +this.meshData.invalidatePolygons(); +} else { +this.meshDataServer.invalidateTriangles(); +}}); +Clazz.defineMethod(c$, "updateSurfaceData", +function(){ +this.meshData.setVertexSets(true); +this.updateTriangles(); +if (this.params.bsExcluded[1] == null) this.params.bsExcluded[1] = new JU.BS(); +this.meshData.updateInvalidatedVertices(this.params.bsExcluded[1]); +}); +Clazz.defineMethod(c$, "selectPocket", +function(doExclude){ +}, "~B"); +Clazz.defineMethod(c$, "excludeMinimumSet", +function(){ +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 1, null); +this.meshData.getSurfaceSet(); +var bs; +for (var i = this.meshData.nSets; --i >= 0; ) if ((bs = this.meshData.surfaceSet[i]) != null && bs.cardinality() < this.params.minSet) this.meshData.invalidateSurfaceSet(i); + +this.updateSurfaceData(); +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 3, null); +}); +Clazz.defineMethod(c$, "excludeMaximumSet", +function(){ +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 1, null); +this.meshData.getSurfaceSet(); +var bs; +for (var i = this.meshData.nSets; --i >= 0; ) if ((bs = this.meshData.surfaceSet[i]) != null && bs.cardinality() > this.params.maxSet) this.meshData.invalidateSurfaceSet(i); + +this.updateSurfaceData(); +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 3, null); +}); +Clazz.defineMethod(c$, "slabIsosurface", +function(slabInfo){ +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 1, null); +this.meshData.slabPolygonsList(slabInfo, true); +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 4, null); +}, "JU.Lst"); +Clazz.defineMethod(c$, "setVertexAnisotropy", +function(pt){ +pt.x *= this.anisotropy[0]; +pt.y *= this.anisotropy[1]; +pt.z *= this.anisotropy[2]; +pt.add(this.center); +}, "JU.T3"); +Clazz.defineMethod(c$, "setVectorAnisotropy", +function(v){ +this.haveSetAnisotropy = true; +v.x *= this.anisotropy[0]; +v.y *= this.anisotropy[1]; +v.z *= this.anisotropy[2]; +}, "JU.T3"); +Clazz.defineMethod(c$, "setVolumetricAnisotropy", +function(){ +if (this.haveSetAnisotropy) return; +this.setVolumetricOriginAnisotropy(); +this.setVectorAnisotropy(this.volumetricVectors[0]); +this.setVectorAnisotropy(this.volumetricVectors[1]); +this.setVectorAnisotropy(this.volumetricVectors[2]); +}); +Clazz.defineMethod(c$, "setVolumetricOriginAnisotropy", +function(){ +this.volumetricOrigin.setT(this.center); +}); +Clazz.defineMethod(c$, "setBBoxAll", +function(){ +if (this.meshDataServer != null) this.meshDataServer.fillMeshData(this.meshData, 1, null); +this.xyzMin = new JU.P3(); +this.xyzMax = new JU.P3(); +this.meshData.setBox(this.xyzMin, this.xyzMax); +}); +Clazz.defineMethod(c$, "setBBox", +function(pt, margin){ +if (this.xyzMin == null) { +this.xyzMin = JU.P3.new3(3.4028235E38, 3.4028235E38, 3.4028235E38); +this.xyzMax = JU.P3.new3(-3.4028235E38, -3.4028235E38, -3.4028235E38); +}JU.BoxInfo.addPoint(pt, this.xyzMin, this.xyzMax, margin); +}, "JU.T3,~N"); +Clazz.defineMethod(c$, "getValueAtPoint", +function(pt, getSource){ +return 0; +}, "JU.T3,~B"); +Clazz.defineMethod(c$, "initializeMapping", +function(){ +}); +Clazz.defineMethod(c$, "finalizeMapping", +function(){ +}); +Clazz.defineMethod(c$, "getSurfaceAtomIndex", +function(){ +return -1; +}); +c$.colorPhases = Clazz.newArray(-1, ["_orb", "x", "y", "z", "xy", "yz", "xz", "x2-y2", "z2"]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/UhbdReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/UhbdReader.js new file mode 100755 index 000000000000..1566603341d4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/UhbdReader.js @@ -0,0 +1,53 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader"], "J.jvxl.readers.UhbdReader", ["JU.SB"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.planeCount = 0; +this.voxelCount = 0; +this.pt = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "UhbdReader", J.jvxl.readers.VolumeFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.UhbdReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2VFR(sg, br); +if (this.params.thePlane == null) this.params.insideOut = !this.params.insideOut; +this.isAngstroms = true; +this.nSurfaces = 1; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +this.rd(); +this.jvxlFileHeaderBuffer = JU.SB.newS(this.line); +this.jvxlFileHeaderBuffer.append("UHBD format ").append(this.line).append("\n"); +this.jvxlFileHeaderBuffer.append("see http://sourceforge.net/p/apbs/code/ci/9527462a39126fb6cd880924b3cc4880ec4b78a9/tree/src/mg/vgrid.c\n"); +this.rd(); +this.rd(); +this.voxelCounts[0] = this.parseIntStr(this.line.substring(0, 7)); +this.voxelCounts[1] = this.parseIntStr(this.line.substring(7, 14)); +this.voxelCounts[2] = this.parseIntStr(this.line.substring(14, 21)); +var dx = this.parseFloatStr(this.line.substring(21, 33)); +this.volumetricOrigin.set(this.parseFloatStr(this.line.substring(33, 45)), this.parseFloatStr(this.line.substring(45, 57)), this.parseFloatStr(this.line.substring(57, 69))); +this.volumetricVectors[0].set(0, 0, dx); +this.volumetricVectors[1].set(0, dx, 0); +this.volumetricVectors[2].set(dx, 0, 0); +this.planeCount = this.voxelCounts[0] * this.voxelCounts[1]; +this.rd(); +this.rd(); +}); +Clazz.overrideMethod(c$, "nextVoxel", +function(){ +if (this.voxelCount % this.planeCount == 0) { +this.rd(); +this.pt = 0; +}if (this.pt % 78 == 0) { +this.rd(); +this.pt = 0; +}this.voxelCount++; +var voxelValue = this.parseFloatStr(this.line.substring(this.pt, this.pt + 13)); +this.pt += 13; +return voxelValue; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/VaspChgcarReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/VaspChgcarReader.js new file mode 100755 index 000000000000..9163233819d7 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/VaspChgcarReader.js @@ -0,0 +1,74 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.PeriodicVolumeFileReader"], "J.jvxl.readers.VaspChgcarReader", ["JU.PT", "$.SB", "JU.Logger", "$.SimpleUnitCell"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.volume = 0; +this.pt = 0; +this.nPerLine = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "VaspChgcarReader", J.jvxl.readers.PeriodicVolumeFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.VaspChgcarReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2VFR(sg, br); +this.isAngstroms = true; +this.isPeriodic = true; +this.isProgressive = false; +this.nSurfaces = 1; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append("Vasp CHGCAR format\n\n\n"); +this.rd(); +var scale = this.parseFloatStr(this.rd()); +var data = Clazz.newFloatArray (15, 0); +data[0] = -1; +for (var i = 0, pt = 6; i < 3; ++i) this.volumetricVectors[i].set(data[pt++] = this.parseFloatStr(this.rd()) * scale, data[pt++] = this.parseFloat() * scale, data[pt++] = this.parseFloat() * scale); + +this.volume = JU.SimpleUnitCell.newA(data).volume; +while (this.rd().length > 2) { +} +this.rd(); +var counts = this.getTokens(); +for (var i = 0; i < 3; ++i) { +this.volumetricVectors[i].scale(1 / ((this.voxelCounts[i] = this.parseIntStr(counts[i]) + 1) - 1)); +if (this.isAnisotropic) this.setVectorAnisotropy(this.volumetricVectors[i]); +} +this.swapXZ(); +this.volumetricOrigin.set(0, 0, 0); +if (this.params.thePlane == null && (this.params.cutoffAutomatic || !Float.isNaN(this.params.sigma))) { +this.params.cutoff = 0.5; +JU.Logger.info("Cutoff set to " + this.params.cutoff); +}}); +Clazz.overrideMethod(c$, "nextVoxel", +function(){ +if (this.pt++ % this.nPerLine == 0 && this.nData > 0) { +this.rd(); +this.next[0] = 0; +}return this.parseFloat() / this.volume; +}); +Clazz.overrideMethod(c$, "getPeriodicVoxels", +function(){ +var ni = this.voxelCounts[0] - 1; +var nj = this.voxelCounts[1] - 1; +var nk = this.voxelCounts[2] - 1; +var downSampling = (this.nSkipX > 0); +this.nPerLine = JU.PT.countTokens(this.rd(), 0); +for (var i = 0; i < ni; i++) { +for (var j = 0; j < nj; j++) { +for (var k = 0; k < nk; k++) { +this.voxelData[i][j][k] = this.recordData(this.nextVoxel()); +if (downSampling) for (var m = this.nSkipX; --m >= 0; ) this.nextVoxel(); + +} +if (downSampling) for (var m = this.nSkipY; --m >= 0; ) this.nextVoxel(); + +} +if (downSampling) for (var m = this.nSkipZ; --m >= 0; ) this.nextVoxel(); + +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/VolumeDataReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/VolumeDataReader.js new file mode 100755 index 000000000000..d8f53bcbe70f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/VolumeDataReader.js @@ -0,0 +1,181 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.SurfaceReader"], "J.jvxl.readers.VolumeDataReader", ["JU.AU", "$.SB", "J.jvxl.data.JvxlCoder", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.dataType = 0; +this.precalculateVoxelData = false; +this.allowMapData = false; +this.point = null; +this.ptsPerAngstrom = 0; +this.maxGrid = 0; +this.useOriginStepsPoints = false; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "VolumeDataReader", J.jvxl.readers.SurfaceReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.VolumeDataReader, []); +}); +Clazz.overrideMethod(c$, "init", +function(sg){ +this.initVDR(sg); +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.defineMethod(c$, "initVDR", +function(sg){ +this.initSR(sg); +this.useOriginStepsPoints = (this.params.origin != null && this.params.points != null && this.params.steps != null); +this.dataType = this.params.dataType; +this.precalculateVoxelData = true; +this.allowMapData = true; +}, "J.jvxl.readers.SurfaceGenerator"); +Clazz.defineMethod(c$, "setup", +function(isMapData){ +this.jvxlFileHeaderBuffer = new JU.SB().append("volume data read from file\n\n"); +J.jvxl.data.JvxlCoder.jvxlCreateHeaderWithoutTitleOrAtoms(this.volumeData, this.jvxlFileHeaderBuffer); +}, "~B"); +Clazz.overrideMethod(c$, "readVolumeParameters", +function(isMapData){ +this.setup(isMapData); +this.initializeVolumetricData(); +return true; +}, "~B"); +Clazz.overrideMethod(c$, "readVolumeData", +function(isMapData){ +try { +this.readSurfaceData(isMapData); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println(e.toString()); +{ +}return false; +} else { +throw e; +} +} +return true; +}, "~B"); +Clazz.defineMethod(c$, "readVoxelDataIndividually", +function(isMapData){ +if (isMapData && !this.allowMapData) return; +if (!isMapData || this.volumeData.sr != null) { +this.volumeData.setVoxelDataAsArray(this.voxelData = null); +return; +}this.newVoxelDataCube(); +for (var x = 0; x < this.nPointsX; ++x) { +var plane = JU.AU.newFloat2(this.nPointsY); +this.voxelData[x] = plane; +var ptyz = 0; +for (var y = 0; y < this.nPointsY; ++y) { +var strip = plane[y] = Clazz.newFloatArray (this.nPointsZ, 0); +for (var z = 0; z < this.nPointsZ; ++z, ++ptyz) { +strip[z] = this.getValue(x, y, z, ptyz); +} +} +} +}, "~B"); +Clazz.defineMethod(c$, "setVolumeData", +function(){ +}); +Clazz.defineMethod(c$, "setVolumeDataParams", +function(){ +if (this.params.volumeData != null) { +this.setVolumeDataV(this.params.volumeData); +return true; +}if (!this.useOriginStepsPoints) { +return false; +}this.volumetricOrigin.setT(this.params.origin); +this.volumetricVectors[0].set(this.params.steps.x, 0, 0); +this.volumetricVectors[1].set(0, this.params.steps.y, 0); +this.volumetricVectors[2].set(0, 0, this.params.steps.z); +this.voxelCounts[0] = Clazz.floatToInt(this.params.points.x); +this.voxelCounts[1] = Clazz.floatToInt(this.params.points.y); +this.voxelCounts[2] = Clazz.floatToInt(this.params.points.z); +if (this.voxelCounts[0] < 1 || this.voxelCounts[1] < 1 || this.voxelCounts[2] < 1) return false; +this.showGridInfo(); +return true; +}); +Clazz.defineMethod(c$, "showGridInfo", +function(){ +JU.Logger.info("grid origin = " + this.params.origin); +JU.Logger.info("grid steps = " + this.params.steps); +JU.Logger.info("grid points = " + this.params.points); +this.ptTemp.x = this.params.steps.x * this.params.points.x; +this.ptTemp.y = this.params.steps.y * this.params.points.y; +this.ptTemp.z = this.params.steps.z * this.params.points.z; +JU.Logger.info("grid lengths = " + this.ptTemp); +this.ptTemp.add(this.params.origin); +JU.Logger.info("grid max xyz = " + this.ptTemp); +}); +Clazz.defineMethod(c$, "setVoxelRange", +function(index, min, max, ptsPerAngstrom, gridMax, minPointsPerAngstrom){ +var nGrid; +var d; +if (min - max >= -1.0E-4) { +min = -10; +max = 10; +}var range = max - min; +var resolution = this.params.resolution; +if (resolution != 3.4028235E38) { +ptsPerAngstrom = resolution; +minPointsPerAngstrom = 0; +}nGrid = Clazz.doubleToInt(Math.floor(range * ptsPerAngstrom)) + 1; +if (nGrid > gridMax) { +if ((this.dataType & 256) > 0) { +if (resolution == 3.4028235E38) { +if (!this.isQuiet) JU.Logger.info("Maximum number of voxels for index=" + index + " exceeded (" + nGrid + ") -- set to " + gridMax); +nGrid = gridMax; +} else { +if (!this.isQuiet) JU.Logger.info("Warning -- high number of grid points: " + nGrid); +}} else if (resolution == 3.4028235E38) { +nGrid = gridMax; +}}if (nGrid == 1) nGrid = 2; +ptsPerAngstrom = (nGrid - 1) / range; +if (ptsPerAngstrom < minPointsPerAngstrom) { +ptsPerAngstrom = minPointsPerAngstrom; +nGrid = Clazz.doubleToInt(Math.floor(ptsPerAngstrom * range + 1)); +ptsPerAngstrom = (nGrid - 1) / range; +}d = this.volumeData.volumetricVectorLengths[index] = 1 / ptsPerAngstrom; +this.voxelCounts[index] = nGrid; +if (this.params.sbOut != null) this.params.sbOut.append("isosurface resolution for axis " + (index + 1) + " set to " + ptsPerAngstrom + " points/Angstrom; " + this.voxelCounts[index] + " voxels\n"); +switch (index) { +case 0: +this.volumetricVectors[0].set(d, 0, 0); +this.volumetricOrigin.x = min; +break; +case 1: +this.volumetricVectors[1].set(0, d, 0); +this.volumetricOrigin.y = min; +break; +case 2: +this.volumetricVectors[2].set(0, 0, d); +this.volumetricOrigin.z = min; +if (this.isEccentric) this.eccentricityMatrix.rotate(this.volumetricOrigin); +if (this.center != null && !Float.isNaN(this.center.x)) this.volumetricOrigin.add(this.center); +if (this.params.sbOut != null) this.params.sbOut.append((this.voxelCounts[0] * this.voxelCounts[1] * this.voxelCounts[2]) + " voxels total\n"); +} +if (this.isEccentric) this.eccentricityMatrix.rotate(this.volumetricVectors[index]); +return this.voxelCounts[index]; +}, "~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "readSurfaceData", +function(isMapData){ +this.readSurfaceDataVDR(isMapData); +}, "~B"); +Clazz.defineMethod(c$, "readSurfaceDataVDR", +function(isMapData){ +if (this.isProgressive && !isMapData) { +this.nDataPoints = this.volumeData.setVoxelCounts(this.nPointsX, this.nPointsY, this.nPointsZ); +this.voxelData = null; +return; +}if (this.precalculateVoxelData) this.generateCube(); + else this.readVoxelDataIndividually(isMapData); +}, "~B"); +Clazz.defineMethod(c$, "generateCube", +function(){ +JU.Logger.info("data type: user volumeData"); +JU.Logger.info("voxel grid origin:" + this.volumetricOrigin); +for (var i = 0; i < 3; ++i) JU.Logger.info("voxel grid vector:" + this.volumetricVectors[i]); + +JU.Logger.info("Read " + this.nPointsX + " x " + this.nPointsY + " x " + this.nPointsZ + " data points"); +}); +Clazz.overrideMethod(c$, "closeReader", +function(){ +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/VolumeFileReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/VolumeFileReader.js new file mode 100755 index 000000000000..aa72e126c55e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/VolumeFileReader.js @@ -0,0 +1,411 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.SurfaceFileReader"], "J.jvxl.readers.VolumeFileReader", ["JU.AU", "$.PT", "$.SB", "J.api.Interface", "J.atomdata.AtomData", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.endOfData = false; +this.negativeAtomCount = false; +this.ac = 0; +this.nSurfaces = 0; +this.isAngstroms = false; +this.canDownsample = false; +this.downsampleRemainders = null; +this.getNCIPlanes = false; +this.nData = 0; +this.readerClosed = false; +this.downsampleFactor = 0; +this.nSkipX = 0; +this.nSkipY = 0; +this.nSkipZ = 0; +this.yzPlanesRaw = null; +this.iPlaneNCI = 0; +this.boundingBox = null; +this.isScaledAlready = false; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "VolumeFileReader", J.jvxl.readers.SurfaceFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.VolumeFileReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2VFR(sg, br); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "init2VFR", +function(sg, br){ +this.init2SFR(sg, br); +this.canDownsample = this.isProgressive = this.isXLowToHigh = true; +this.jvxlData.wasCubic = true; +this.boundingBox = this.params.boundingBox; +if (this.params.qmOrbitalType == 4) { +this.hasColorData = (this.params.parameters == null || this.params.parameters[1] >= 0); +this.getNCIPlanes = true; +this.params.insideOut = !this.params.insideOut; +}}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.defineMethod(c$, "recordData", +function(value){ +if (Float.isNaN(value)) return value; +if (value < this.dataMin) this.dataMin = value; +if (value > this.dataMax) this.dataMax = value; +this.dataMean += value; +this.nData++; +return value; +}, "~N"); +Clazz.overrideMethod(c$, "closeReader", +function(){ +if (this.readerClosed) return; +this.readerClosed = true; +this.closeReaderSFR(); +if (this.nData == 0 || this.dataMax == -3.4028235E38) return; +this.dataMean /= this.nData; +JU.Logger.info("VolumeFileReader closing file: " + this.nData + " points read \ndata min/max/mean = " + this.dataMin + "/" + this.dataMax + "/" + this.dataMean); +}); +Clazz.overrideMethod(c$, "readVolumeParameters", +function(isMapData){ +this.endOfData = false; +this.nSurfaces = this.readVolumetricHeader(); +if (this.nSurfaces == 0) return false; +if (this.nSurfaces < this.params.fileIndex) { +JU.Logger.warn("not enough surfaces in file -- resetting params.fileIndex to " + this.nSurfaces); +this.params.fileIndex = this.nSurfaces; +}return true; +}, "~B"); +Clazz.overrideMethod(c$, "readVolumeData", +function(isMapData){ +return this.readVolumeDataVFR(isMapData); +}, "~B"); +Clazz.defineMethod(c$, "readVolumeDataVFR", +function(isMapData){ +if (!this.gotoAndReadVoxelData(isMapData)) return false; +if (!this.vertexDataOnly) JU.Logger.info("JVXL read: " + this.nPointsX + " x " + this.nPointsY + " x " + this.nPointsZ + " data points"); +return true; +}, "~B"); +Clazz.defineMethod(c$, "readVolumetricHeader", +function(){ +try { +this.readParameters(); +if (this.ac == -2147483648) return 0; +if (!this.vertexDataOnly) JU.Logger.info("voxel grid origin:" + this.volumetricOrigin); +var downsampleFactor = this.params.downsampleFactor; +var downsampling = (this.canDownsample && downsampleFactor > 1); +if (downsampleFactor > 1 && !this.canDownsample) this.jvxlData.msg += "\ncannot downsample this file type"; +if (downsampling) { +this.downsampleRemainders = Clazz.newIntArray (3, 0); +JU.Logger.info("downsample factor = " + downsampleFactor); +for (var i = 0; i < 3; ++i) { +var n = this.voxelCounts[i]; +this.downsampleRemainders[i] = n % downsampleFactor; +this.voxelCounts[i] /= downsampleFactor; +if (this.isPeriodic) { +this.voxelCounts[i]++; +this.downsampleRemainders[i]--; +}this.volumetricVectors[i].scale(downsampleFactor); +JU.Logger.info("downsampling axis " + (i + 1) + " from " + n + " to " + this.voxelCounts[i]); +} +}if (!this.vertexDataOnly) for (var i = 0; i < 3; ++i) { +if (!this.isAngstroms) this.volumetricVectors[i].scale(0.5291772); +this.line = this.voxelCounts[i] + " " + this.volumetricVectors[i].x + " " + this.volumetricVectors[i].y + " " + this.volumetricVectors[i].z; +JU.Logger.info("voxel grid count/vector:" + this.line); +} +this.scaleIsosurface(this.params.scale); +this.volumeData.setVolumetricXml(); +return this.nSurfaces; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error(e.toString()); +return 0; +} else { +throw e; +} +} +}); +Clazz.defineMethod(c$, "skipComments", +function(allowBlankLines){ +var sb = new JU.SB(); +while (this.rd() != null && (allowBlankLines && this.line.length == 0 || this.line.indexOf("#") == 0)) sb.append(this.line).appendC('\n'); + +return sb.toString(); +}, "~B"); +Clazz.defineMethod(c$, "readVoxelVector", +function(voxelVectorIndex){ +this.rd(); +var voxelVector = this.volumetricVectors[voxelVectorIndex]; +if ((this.voxelCounts[voxelVectorIndex] = this.parseIntStr(this.line)) == -2147483648) this.next[0] = this.line.indexOf(" "); +voxelVector.set(this.parseFloat(), this.parseFloat(), this.parseFloat()); +if (this.isAnisotropic) this.setVectorAnisotropy(voxelVector); +}, "~N"); +Clazz.defineMethod(c$, "initializeSurfaceData", +function(){ +this.downsampleFactor = this.params.downsampleFactor; +this.nSkipX = 0; +this.nSkipY = 0; +this.nSkipZ = 0; +if (this.canDownsample && this.downsampleFactor > 0) { +this.nSkipX = this.downsampleFactor - 1; +this.nSkipY = this.downsampleRemainders[2] + (this.downsampleFactor - 1) * (this.nSkipZ = ((this.nPointsZ - (this.isPeriodic ? 1 : 0)) * this.downsampleFactor + this.downsampleRemainders[2])); +this.nSkipZ = this.downsampleRemainders[1] * this.nSkipZ + (this.downsampleFactor - 1) * this.nSkipZ * ((this.nPointsY - (this.isPeriodic ? 1 : 0)) * this.downsampleFactor + this.downsampleRemainders[1]); +}if (this.params.thePlane != null) { +this.params.cutoff = 0; +} else if (this.isJvxl) { +this.params.cutoff = (this.params.isBicolorMap || this.params.colorBySign ? 0.01 : this.getJVXLCutoff()); +}this.nDataPoints = 0; +this.next[0] = 0; +this.line = ""; +this.jvxlNSurfaceInts = 0; +}); +Clazz.defineMethod(c$, "getJVXLCutoff", +function(){ +return 0.5; +}); +Clazz.overrideMethod(c$, "readSurfaceData", +function(isMapData){ +this.readSurfaceDataVFR(isMapData); +}, "~B"); +Clazz.defineMethod(c$, "readSurfaceDataVFR", +function(isMapData){ +this.initializeSurfaceData(); +if (this.isProgressive && !isMapData || this.isJvxl) { +this.nDataPoints = this.volumeData.setVoxelCounts(this.nPointsX, this.nPointsY, this.nPointsZ); +this.voxelData = null; +if (this.isJvxl) this.jvxlVoxelBitSet = this.getVoxelBitSet(this.nDataPoints); +} else if (isMapData && this.volumeData.hasPlane()) { +this.volumeData.setVoxelMap(); +var f = this.volumeData.getToPlaneParameter(); +for (var x = 0; x < this.nPointsX; ++x) { +for (var y = 0; y < this.nPointsY; ++y) { +for (var z = 0; z < this.nPointsZ; ++z) { +var v = this.recordData(this.getNextVoxelValue()); +if (this.volumeData.isNearPlane(x, y, z, f)) this.volumeData.setVoxelMapValue(x, y, z, v); +if (this.nSkipX != 0) this.skipVoxels(this.nSkipX); +} +if (this.nSkipY != 0) this.skipVoxels(this.nSkipY); +} +if (this.nSkipZ != 0) this.skipVoxels(this.nSkipZ); +} +} else { +this.voxelData = JU.AU.newFloat3(this.nPointsX, -1); +for (var x = 0; x < this.nPointsX; ++x) { +var plane = JU.AU.newFloat2(this.nPointsY); +this.voxelData[x] = plane; +for (var y = 0; y < this.nPointsY; ++y) { +var strip = Clazz.newFloatArray (this.nPointsZ, 0); +plane[y] = strip; +for (var z = 0; z < this.nPointsZ; ++z) { +strip[z] = this.recordData(this.getNextVoxelValue()); +if (this.nSkipX != 0) this.skipVoxels(this.nSkipX); +} +if (this.nSkipY != 0) this.skipVoxels(this.nSkipY); +} +if (this.nSkipZ != 0) this.skipVoxels(this.nSkipZ); +} +}this.volumeData.setVoxelDataAsArray(this.voxelData); +}, "~B"); +Clazz.overrideMethod(c$, "getPlane", +function(x){ +if (x == 0) this.initPlanes(); +if (this.getNCIPlanes) return this.getPlaneNCI(x); +var plane = this.getPlaneSR(x); +if (this.qpc == null) this.getPlaneVFR(plane, true); +return plane; +}, "~N"); +Clazz.defineMethod(c$, "getPlaneNCI", +function(x){ +var plane; +if (this.iPlaneNCI == 0) { +this.qpc = J.api.Interface.getOption("quantum.NciCalculation", this.sg.atomDataServer, null); +var atomData = new J.atomdata.AtomData(); +atomData.modelIndex = -1; +atomData.bsSelected = this.params.bsSelected; +this.sg.fillAtomData(atomData, 1); +(this.qpc).setupCalculation(this.volumeData, this.sg.params.bsSelected, null, null, atomData.atoms, -1, true, null, this.params.parameters, this.params.testFlags); +this.iPlaneNCI = 1; +this.qpc.setPlanes(this.yzPlanesRaw = Clazz.newFloatArray (4, this.yzCount, 0)); +if (this.hasColorData) { +this.getPlaneVFR(this.yzPlanesRaw[0], false); +this.getPlaneVFR(this.yzPlanesRaw[1], false); +plane = this.yzPlanes[0]; +for (var i = 0; i < this.yzCount; i++) plane[i] = NaN; + +return plane; +}this.iPlaneNCI = -1; +}var nan = this.qpc.getNoValue(); +var x1 = this.nPointsX - 1; +switch (this.iPlaneNCI) { +case -1: +plane = this.yzPlanes[x % 2]; +x1++; +break; +case 3: +plane = this.yzPlanesRaw[0]; +this.yzPlanesRaw[0] = this.yzPlanesRaw[1]; +this.yzPlanesRaw[1] = this.yzPlanesRaw[2]; +this.yzPlanesRaw[2] = this.yzPlanesRaw[3]; +this.yzPlanesRaw[3] = plane; +plane = this.yzPlanesRaw[this.iPlaneNCI]; +break; +default: +this.iPlaneNCI++; +plane = this.yzPlanesRaw[this.iPlaneNCI]; +} +if (x < x1) { +this.getPlaneVFR(plane, false); +this.qpc.calcPlane(x, plane = this.yzPlanes[x % 2]); +for (var i = 0; i < this.yzCount; i++) if (plane[i] != nan) this.recordData(plane[i]); + +} else { +for (var i = 0; i < this.yzCount; i++) plane[i] = NaN; + +}return plane; +}, "~N"); +Clazz.defineMethod(c$, "getPlaneVFR", +function(plane, doRecord){ +try { +for (var y = 0, ptyz = 0; y < this.nPointsY; ++y) { +for (var z = 0; z < this.nPointsZ; ++z) { +var v = this.getNextVoxelValue(); +if (doRecord) this.recordData(v); +plane[ptyz++] = v; +if (this.nSkipX != 0) this.skipVoxels(this.nSkipX); +} +if (this.nSkipY != 0) this.skipVoxels(this.nSkipY); +} +if (this.nSkipZ != 0) this.skipVoxels(this.nSkipZ); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +}, "~A,~B"); +Clazz.overrideMethod(c$, "getValue", +function(x, y, z, ptyz){ +if (this.boundingBox != null) { +this.volumeData.voxelPtToXYZ(x, y, z, this.ptTemp); +if (this.ptTemp.x < this.boundingBox[0].x || this.ptTemp.x > this.boundingBox[1].x || this.ptTemp.y < this.boundingBox[0].y || this.ptTemp.y > this.boundingBox[1].y || this.ptTemp.z < this.boundingBox[0].z || this.ptTemp.z > this.boundingBox[1].z) return NaN; +}return this.getValue2(x, y, z, ptyz); +}, "~N,~N,~N,~N"); +Clazz.defineMethod(c$, "skipVoxels", +function(n){ +for (var i = n; --i >= 0; ) this.getNextVoxelValue(); + +}, "~N"); +Clazz.defineMethod(c$, "getVoxelBitSet", +function(nPoints){ +return null; +}, "~N"); +Clazz.defineMethod(c$, "getNextVoxelValue", +function(){ +var voxelValue = 0; +if (this.nSurfaces > 1 && !this.params.blockCubeData) { +for (var i = 1; i < this.params.fileIndex; i++) this.nextVoxel(); + +voxelValue = this.nextVoxel(); +for (var i = this.params.fileIndex; i < this.nSurfaces; i++) this.nextVoxel(); + +} else { +voxelValue = this.nextVoxel(); +}return voxelValue; +}); +Clazz.defineMethod(c$, "nextVoxel", +function(){ +var voxelValue = this.parseFloat(); +if (Float.isNaN(voxelValue)) { +while (this.rd() != null && Float.isNaN(voxelValue = this.parseFloatStr(this.line))) { +} +if (this.line == null) { +if (!this.endOfData) JU.Logger.warn("end of file reading cube voxel data? nBytes=" + this.nBytes + " nDataPoints=" + this.nDataPoints + " (line):" + this.line); +this.endOfData = true; +this.line = "0 0 0 0 0 0 0 0 0 0"; +}}return voxelValue; +}); +Clazz.overrideMethod(c$, "gotoData", +function(n, nPoints){ +if (!this.params.blockCubeData) return; +if (n > 0) JU.Logger.info("skipping " + n + " data sets, " + nPoints + " points each"); +for (var i = 0; i < n; i++) this.skipData(nPoints); + +}, "~N,~N"); +Clazz.defineMethod(c$, "skipData", +function(nPoints){ +this.skipDataVFR(nPoints); +}, "~N"); +Clazz.defineMethod(c$, "skipDataVFR", +function(nPoints){ +var iV = 0; +while (iV < nPoints) iV += this.countData(this.rd()); + +}, "~N"); +Clazz.defineMethod(c$, "countData", +function(str){ +var count = 0; +var ich = 0; +var ichMax = str.length; +var ch; +while (ich < ichMax) { +while (ich < ichMax && ((ch = str.charAt(ich)) == ' ' || ch == '\t')) ++ich; + +if (ich < ichMax) ++count; +while (ich < ichMax && ((ch = str.charAt(ich)) != ' ' && ch != '\t')) ++ich; + +} +return count; +}, "~S"); +c$.checkAtomLine = Clazz.defineMethod(c$, "checkAtomLine", +function(isXLowToHigh, isAngstroms, strAtomCount, atomLine, bs){ +if (atomLine.indexOf("ANGSTROMS") >= 0) isAngstroms = true; +var ac = (strAtomCount == null ? 2147483647 : JU.PT.parseInt(strAtomCount)); +switch (ac) { +case -2147483648: +ac = 0; +atomLine = " " + atomLine.substring(atomLine.indexOf(" ") + 1); +break; +case 2147483647: +ac = -2147483648; +break; +default: +var s = "" + ac; +atomLine = atomLine.substring(atomLine.indexOf(s) + s.length); +} +if (isAngstroms) { +if (atomLine.indexOf("ANGSTROM") < 0) atomLine += " ANGSTROMS"; +} else { +if (atomLine.indexOf("BOHR") < 0) atomLine += " BOHR"; +}atomLine = (ac == -2147483648 ? "" : (isXLowToHigh ? "+" : "-") + Math.abs(ac)) + atomLine + "\n"; +bs.append(atomLine); +return isAngstroms; +}, "~B,~B,~S,~S,JU.SB"); +Clazz.overrideMethod(c$, "getSurfacePointAndFraction", +function(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn){ +return this.getSPFv(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn); +}, "~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3"); +Clazz.defineMethod(c$, "getSPFv", +function(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn){ +var zero = this.getSPF(cutoff, isCutoffAbsolute, valueA, valueB, pointA, edgeVector, x, y, z, vA, vB, fReturn, ptReturn); +if (this.qpc == null || Float.isNaN(zero) || !this.hasColorData) return zero; +vA = this.marchingCubes.getLinearOffset(x, y, z, vA); +vB = this.marchingCubes.getLinearOffset(x, y, z, vB); +return this.qpc.process(vA, vB, fReturn[0]); +}, "~N,~B,~N,~N,JU.T3,JU.V3,~N,~N,~N,~N,~N,~A,JU.T3"); +Clazz.defineMethod(c$, "scaleIsosurface", +function(scale){ +if (this.isScaledAlready) return; +this.isScaledAlready = true; +if (this.isAnisotropic) this.setVolumetricAnisotropy(); +if (Float.isNaN(scale)) return; +JU.Logger.info("applying scaling factor of " + scale); +this.volumetricOrigin.scaleAdd2((1 - scale) / 2, this.volumetricVectors[0], this.volumetricOrigin); +this.volumetricOrigin.scaleAdd2((1 - scale) / 2, this.volumetricVectors[1], this.volumetricOrigin); +this.volumetricOrigin.scaleAdd2((1 - scale) / 2, this.volumetricVectors[2], this.volumetricOrigin); +this.volumetricVectors[0].scale(scale); +this.volumetricVectors[1].scale(scale); +this.volumetricVectors[2].scale(scale); +}, "~N"); +Clazz.defineMethod(c$, "swapXZ", +function(){ +var v = this.volumetricVectors[0]; +this.volumetricVectors[0] = this.volumetricVectors[2]; +this.volumetricVectors[2] = v; +var n = this.voxelCounts[0]; +this.voxelCounts[0] = this.voxelCounts[2]; +this.voxelCounts[2] = n; +this.params.insideOut = !this.params.insideOut; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/XmlReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/XmlReader.js new file mode 100755 index 000000000000..422a9f20d733 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/XmlReader.js @@ -0,0 +1,132 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(null, "J.jvxl.readers.XmlReader", ["JU.P3", "$.PT", "$.SB", "JU.Escape"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.br = null; +this.line = null; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "XmlReader", null); +Clazz.makeConstructor(c$, +function(br){ +this.br = br; +}, "java.io.BufferedReader"); +Clazz.defineMethod(c$, "getLine", +function(){ +return this.line; +}); +Clazz.defineMethod(c$, "toTag", +function(name){ +this.skipTo("<" + name); +if (this.line == null) return ""; +var i = this.line.indexOf("<" + name) + name.length + 1; +if (i == this.line.length) return this.line; +if (this.line.charAt(i) == ' ' || this.line.charAt(i) == '>') return this.line; +this.line = null; +return this.toTag(name); +}, "~S"); +Clazz.defineMethod(c$, "skipTag", +function(name){ +this.skipTo("" + name + ">"); +}, "~S"); +Clazz.defineMethod(c$, "getXmlData", +function(name, data, withTag, allowSelfCloseOption){ +return this.getXmlDataLF(name, data, withTag, allowSelfCloseOption, false); +}, "~S,~S,~B,~B"); +Clazz.defineMethod(c$, "getXmlDataLF", +function(name, data, withTag, allowSelfCloseOption, addLF){ +var closer = "" + name + ">"; +var tag = "<" + name; +if (data == null) { +var sb = new JU.SB(); +try { +if (this.line == null) this.line = this.br.readLine(); +while (this.line.indexOf(tag) < 0) { +this.line = this.br.readLine(); +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return null; +} else { +throw e; +} +} +sb.append(this.line); +if (addLF) sb.append("\n"); +var selfClosed = false; +var pt = this.line.indexOf("/>"); +var pt1 = this.line.indexOf(">"); +if (pt1 < 0 || pt == pt1 - 1) selfClosed = allowSelfCloseOption; +while (this.line.indexOf(closer) < 0 && (!selfClosed || this.line.indexOf("/>") < 0)) { +sb.append(this.line = this.br.readLine()); +if (addLF) sb.append("\n"); +} +data = sb.toString(); +}return J.jvxl.readers.XmlReader.extractTag(data, tag, closer, withTag); +}, "~S,~S,~B,~B,~B"); +c$.extractTagOnly = Clazz.defineMethod(c$, "extractTagOnly", +function(data, tag){ +return J.jvxl.readers.XmlReader.extractTag(data, "<" + tag + ">", "" + tag + ">", false); +}, "~S,~S"); +c$.extractTag = Clazz.defineMethod(c$, "extractTag", +function(data, tag, closer, withTag){ +var pt1 = data.indexOf(tag); +if (pt1 < 0) return ""; +var pt2 = data.indexOf(closer, pt1); +if (pt2 < 0) { +pt2 = data.indexOf("/>", pt1); +closer = "/>"; +}if (pt2 < 0) return ""; +if (withTag) { +pt2 += closer.length; +return data.substring(pt1, pt2); +}var quoted = false; +for (; pt1 < pt2; pt1++) { +var ch; +if ((ch = data.charAt(pt1)) == '"') quoted = !quoted; + else if (quoted && ch == '\\') pt1++; + else if (!quoted && (ch == '>' || ch == '/')) break; +} +if (pt1 >= pt2) return ""; +while (JU.PT.isWhitespace(data.charAt(++pt1))) { +} +return J.jvxl.readers.XmlReader.unwrapCdata(data.substring(pt1, pt2)); +}, "~S,~S,~S,~B"); +c$.unwrapCdata = Clazz.defineMethod(c$, "unwrapCdata", +function(s){ +return (s.startsWith("") ? JU.PT.rep(s.substring(9, s.length - 3), "]]]]>", "]]>") : s); +}, "~S"); +c$.getXmlAttrib = Clazz.defineMethod(c$, "getXmlAttrib", +function(data, what){ +var nexta = Clazz.newIntArray (1, 0); +var pt = J.jvxl.readers.XmlReader.setNext(data, what, nexta, 1); +if (pt < 2 || (pt = J.jvxl.readers.XmlReader.setNext(data, "\"", nexta, 0)) < 2) return ""; +var pt1 = J.jvxl.readers.XmlReader.setNext(data, "\"", nexta, -1); +return (pt1 <= 0 ? "" : data.substring(pt, pt1)); +}, "~S,~S"); +Clazz.defineMethod(c$, "getXmlPoint", +function(data, key){ +var spt = J.jvxl.readers.XmlReader.getXmlAttrib(data, key).$replace('(', '{').$replace(')', '}'); +var value = JU.Escape.uP(spt); +if (Clazz.instanceOf(value,"JU.P3")) return value; +return new JU.P3(); +}, "~S,~S"); +c$.setNext = Clazz.defineMethod(c$, "setNext", +function(data, what, next, offset){ +var ipt = next[0]; +if (ipt < 0 || (ipt = data.indexOf(what, next[0])) < 0) return -1; +ipt += what.length; +next[0] = ipt + offset; +if (offset > 0 && ipt < data.length && data.charAt(ipt) != '=') return J.jvxl.readers.XmlReader.setNext(data, what, next, offset); +return next[0]; +}, "~S,~S,~A,~N"); +Clazz.defineMethod(c$, "skipTo", +function(key){ +if (this.line == null) this.line = this.br.readLine(); +while (this.line != null && this.line.indexOf(key) < 0) this.line = this.br.readLine(); + +}, "~S"); +Clazz.defineMethod(c$, "isNext", +function(name){ +if (this.line == null || this.line.indexOf("") >= 0 && this.line.indexOf("") == this.line.indexOf("<")) this.line = this.br.readLine(); +return (this.line.indexOf("<" + name) >= 0); +}, "~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/XplorReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/XplorReader.js new file mode 100755 index 000000000000..aa48fde51b1d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/XplorReader.js @@ -0,0 +1,72 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.MapFileReader"], "J.jvxl.readers.XplorReader", ["JU.SB", "JU.Logger", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.nBlock = 0; +this.linePt = 2147483647; +this.nRead = 0; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "XplorReader", J.jvxl.readers.MapFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.XplorReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2MFR(sg, br); +if (this.params.thePlane == null) this.params.insideOut = !this.params.insideOut; +this.nSurfaces = 1; +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +this.jvxlFileHeaderBuffer = new JU.SB(); +var nLines = this.parseIntStr(this.getLine()); +for (var i = nLines; --i >= 0; ) { +this.line = this.br.readLine().trim(); +JU.Logger.info("XplorReader: " + this.line); +this.jvxlFileHeaderBuffer.append("# ").append(this.line).appendC('\n'); +} +this.jvxlFileHeaderBuffer.append("Xplor data\nJmol " + JV.Viewer.getJmolVersion() + '\n'); +this.na = this.parseIntStr(this.getLine()); +this.xyzStart[0] = this.parseInt(); +this.n0 = Clazz.floatToInt(this.parseInt() - this.xyzStart[0] + 1); +this.nb = this.parseInt(); +this.xyzStart[1] = this.parseInt(); +this.n1 = Clazz.floatToInt(this.parseInt() - this.xyzStart[1] + 1); +this.nc = this.parseInt(); +this.xyzStart[2] = this.parseInt(); +this.n2 = Clazz.floatToInt(this.parseInt() - this.xyzStart[2] + 1); +this.a = this.parseFloatStr(this.getLine()); +this.b = this.parseFloat(); +this.c = this.parseFloat(); +this.alpha = this.parseFloat(); +this.beta = this.parseFloat(); +this.gamma = this.parseFloat(); +this.getLine(); +this.maps = 3; +this.mapr = 2; +this.mapc = 1; +this.getVectorsAndOrigin(); +this.setCutoffAutomatic(); +this.nBlock = this.voxelCounts[2] * this.voxelCounts[1]; +}); +Clazz.defineMethod(c$, "getLine", +function(){ +this.rd(); +while (this.line != null && (this.line.length == 0 || this.line.indexOf("REMARKS") >= 0 || this.line.indexOf("XPLOR:") >= 0)) this.rd(); + +return this.line; +}); +Clazz.overrideMethod(c$, "nextVoxel", +function(){ +if (this.linePt >= this.line.length) { +this.rd(); +this.linePt = 0; +if ((this.nRead % this.nBlock) == 0) { +this.rd(); +}}if (this.line == null) return 0; +var val = this.parseFloatRange(this.line, this.linePt, this.linePt + 12); +this.linePt += 12; +this.nRead++; +return val; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/XsfReader.js b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/XsfReader.js new file mode 100755 index 000000000000..1d3a1a84a6b7 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/jvxl/readers/XsfReader.js @@ -0,0 +1,62 @@ +Clazz.declarePackage("J.jvxl.readers"); +Clazz.load(["J.jvxl.readers.VolumeFileReader"], "J.jvxl.readers.XsfReader", ["JU.SB", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isBXSF = false; +Clazz.instantialize(this, arguments);}, J.jvxl.readers, "XsfReader", J.jvxl.readers.VolumeFileReader); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.jvxl.readers.XsfReader, []); +}); +Clazz.overrideMethod(c$, "init2", +function(sg, br){ +this.init2VFR(sg, br); +}, "J.jvxl.readers.SurfaceGenerator,java.io.BufferedReader"); +Clazz.overrideMethod(c$, "readParameters", +function(){ +this.isAngstroms = false; +this.params.blockCubeData = true; +this.jvxlFileHeaderBuffer = new JU.SB(); +this.jvxlFileHeaderBuffer.append("XsfReader file\n"); +var needCutoff = this.params.cutoffAutomatic; +this.isAngstroms = true; +var beginKey = "BEGIN_DATAGRID_3D"; +this.nSurfaces = 1; +while (this.rd() != null && this.line.indexOf(beginKey) < 0) { +JU.Logger.info(this.line); +if (this.line.indexOf("Fermi Energy:") >= 0) { +this.isBXSF = true; +beginKey = "BEGIN_BANDGRID_3D"; +if (needCutoff) { +this.params.cutoff = this.parseFloatStr(this.getTokens()[2]); +needCutoff = false; +}}continue; +} +if (needCutoff) this.params.cutoff = 0.05; +if (this.isBXSF) this.nSurfaces = this.parseIntStr(this.rd()); +this.voxelCounts[0] = this.parseIntStr(this.rd()); +this.voxelCounts[1] = this.parseInt(); +this.voxelCounts[2] = this.parseInt(); +this.volumetricOrigin.set(this.parseFloatStr(this.rd()), this.parseFloat(), this.parseFloat()); +for (var i = 0; i < 3; ++i) { +this.volumetricVectors[i].set(this.parseFloatStr(this.rd()), this.parseFloat(), this.parseFloat()); +this.volumetricVectors[i].scale(1.0 / (this.voxelCounts[i] - 1)); +} +if (this.isBXSF) { +} else { +this.swapXZ(); +}}); +Clazz.overrideMethod(c$, "gotoData", +function(n, nPoints){ +if (!this.params.blockCubeData) return; +if (n > 0) JU.Logger.info("skipping " + n + " data sets, " + nPoints + " points each"); +if (this.isBXSF) JU.Logger.info(this.rd()); +for (var i = 0; i < n; i++) this.skipData(nPoints); + +}, "~N,~N"); +Clazz.overrideMethod(c$, "skipData", +function(nPoints){ +this.skipDataVFR(nPoints); +if (this.isBXSF) JU.Logger.info(this.rd()); +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/modelkit/ModelKit.js b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/ModelKit.js new file mode 100755 index 000000000000..aca6f14deec3 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/ModelKit.js @@ -0,0 +1,2797 @@ +Clazz.declarePackage("J.modelkit"); +Clazz.load(["JU.Vibration", "JU.BS", "$.P3", "J.i18n.GT"], "J.modelkit.ModelKit", ["java.util.Arrays", "$.Hashtable", "JU.AU", "$.Lst", "$.M4", "$.Measure", "$.PT", "$.Quat", "$.SB", "$.V3", "JS.SV", "JU.BSUtil", "$.Edge", "$.Elements", "$.Logger", "$.SimpleUnitCell", "JV.JC", "$.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.menu = null; +this.state = 0; +this.atomHoverLabel = "C"; +this.bondHoverLabel = J.i18n.GT.$("increase order"); +this.allOperators = null; +this.currentModelIndex = -1; +this.lastModelSet = null; +this.lastElementType = "C"; +this.bsHighlight = null; +this.bondIndex = -1; +this.bondAtomIndex1 = -1; +this.bondAtomIndex2 = -1; +this.bsRotateBranch = null; +this.branchAtomIndex = 0; +this.screenXY = null; +this.$isPickAtomAssignCharge = false; +this.isRotateBond = false; +this.showSymopInfo = true; +this.hasUnitCell = false; +this.alertedNoEdit = false; +this.$wasRotating = false; +this.addHydrogens = true; +this.clickToSetElement = true; +this.autoBond = false; +this.centerPoint = null; +this.pickAtomAssignType = "C"; +this.pickBondAssignType = 'p'; +this.viewOffset = null; +this.centerDistance = 0; +this.symop = null; +this.centerAtomIndex = -1; +this.secondAtomIndex = -1; +this.drawData = null; +this.drawScript = null; +this.iatom0 = 0; +this.lastCenter = "0 0 0"; +this.lastOffset = "0 0 0"; +this.a0 = null; +this.a3 = null; +this.constraint = null; +this.atomConstraints = null; +this.minBasisAtoms = null; +this.modelSyms = null; +this.minBasis = null; +this.minBasisFixed = null; +this.minBasisModelAtoms = null; +this.minBasisModel = 0; +this.minSelectionSaved = null; +this.minTempFixed = null; +this.minTempModelAtoms = null; +this.$setElementKeys = false; +this.bsElementKeyModels = null; +this.bsElementKeyModelsOFF = null; +this.haveElementKeys = false; +if (!Clazz.isClassDefined("J.modelkit.ModelKit.DrawAtomSet")) { +J.modelkit.ModelKit.$ModelKit$DrawAtomSet$ (); +} +this.drawAtomSymmetry = null; +Clazz.instantialize(this, arguments);}, J.modelkit, "ModelKit", null); +Clazz.prepareFields (c$, function(){ +this.bsHighlight = new JU.BS(); +this.screenXY = Clazz.newIntArray (2, 0); +this.bsElementKeyModels = new JU.BS(); +this.bsElementKeyModelsOFF = new JU.BS(); +}); +Clazz.makeConstructor(c$, +function(){ +}); +c$.getText = Clazz.defineMethod(c$, "getText", +function(key){ +switch (("invSter delAtom dragBon dragAto dragMin dragMol dragMMo incChar decChar rotBond bondTo0 bondTo1 bondTo2 bondTo3 incBond decBond").indexOf(key.substring(0, 7))) { +case 0: +return J.i18n.GT.$("invert ring stereochemistry"); +case 8: +return J.i18n.GT.$("delete atom"); +case 16: +return J.i18n.GT.$("drag to bond"); +case 24: +return J.i18n.GT.$("drag atom"); +case 32: +return J.i18n.GT.$("drag atom (and minimize)"); +case 40: +return J.i18n.GT.$("drag molecule (ALT to rotate)"); +case 48: +return J.i18n.GT.$("drag and minimize molecule (docking)"); +case 56: +return J.i18n.GT.$("increase charge"); +case 64: +return J.i18n.GT.$("decrease charge"); +case 72: +return J.i18n.GT.$("rotate bond"); +case 80: +return J.i18n.GT.$("delete bond"); +case 88: +return J.i18n.GT.$("single"); +case 96: +return J.i18n.GT.$("double"); +case 104: +return J.i18n.GT.$("triple"); +case 112: +return J.i18n.GT.$("increase order"); +case 120: +return J.i18n.GT.$("decrease order"); +} +return key; +}, "~S"); +c$.getTransform = Clazz.defineMethod(c$, "getTransform", +function(sym, a, b){ +var fa = JU.P3.newP(a); +sym.toFractional(fa, false); +var fb = JU.P3.newP(b); +sym.toFractional(fb, false); +return sym.getTransform(fa, fb, true); +}, "J.api.SymmetryInterface,JM.Atom,JM.Atom"); +c$.getElementKey = Clazz.defineMethod(c$, "getElementKey", +function(modelIndex){ +return "_!_elkey_" + (modelIndex < 0 ? "" : modelIndex + "_"); +}, "~N"); +c$.isTrue = Clazz.defineMethod(c$, "isTrue", +function(value){ +return (Boolean.$valueOf(value.toString()) === Boolean.TRUE); +}, "~O"); +c$.keyToElement = Clazz.defineMethod(c$, "keyToElement", +function(key){ +var ch1 = (key & 0xFF); +var ch2 = (key >> 8) & 0xFF; +var element = "" + String.fromCharCode(ch1) + (ch2 == 0 ? "" : ("" + String.fromCharCode(ch2)).toLowerCase()); +var n = JU.Elements.elementNumberFromSymbol(element, true); +return (n == 0 ? null : element); +}, "~N"); +c$.notImplemented = Clazz.defineMethod(c$, "notImplemented", +function(action){ +System.err.println("ModelKit.notImplemented(" + action + ")"); +}, "~S"); +c$.pointFromTriad = Clazz.defineMethod(c$, "pointFromTriad", +function(pos){ +var a = JU.PT.parseFloatArray(JU.PT.replaceAllCharacters(pos, "{,}", " ")); +return (a.length == 3 && !Float.isNaN(a[2]) ? JU.P3.new3(a[0], a[1], a[2]) : null); +}, "~S"); +Clazz.defineMethod(c$, "actionRotateBond", +function(deltaX, deltaY, x, y, forceFull){ +if (this.bondIndex < 0) return; +var bsBranch = this.bsRotateBranch; +var atomFix; +var atomMove; +var ms = this.vwr.ms; +var b = ms.bo[this.bondIndex]; +if (forceFull) { +bsBranch = null; +this.branchAtomIndex = -1; +}if (bsBranch == null) { +atomMove = (this.branchAtomIndex == b.atom1.i ? b.atom1 : b.atom2); +atomFix = (atomMove === b.atom1 ? b.atom2 : b.atom1); +this.vwr.undoMoveActionClear(atomFix.i, 2, true); +if (this.branchAtomIndex >= 0) bsBranch = this.vwr.getBranchBitSet(atomMove.i, atomFix.i, true); +if (bsBranch != null) for (var n = 0, i = atomFix.bonds.length; --i >= 0; ) { +if (bsBranch.get(atomFix.getBondedAtomIndex(i)) && ++n == 2) { +bsBranch = null; +break; +}} +if (bsBranch == null) { +bsBranch = ms.getMoleculeBitSetForAtom(atomFix.i); +forceFull = true; +}this.bsRotateBranch = bsBranch; +this.bondAtomIndex1 = atomFix.i; +this.bondAtomIndex2 = atomMove.i; +} else { +atomFix = ms.at[this.bondAtomIndex1]; +atomMove = ms.at[this.bondAtomIndex2]; +}if (forceFull) this.bsRotateBranch = null; +var v1 = JU.V3.new3(atomMove.sX - atomFix.sX, atomMove.sY - atomFix.sY, 0); +v1.scale(1 / v1.length()); +var v2 = JU.V3.new3(deltaX, deltaY, 0); +v1.cross(v1, v2); +var f = (v1.z > 0 ? 1 : -1); +var degrees = f * (Clazz.doubleToInt(Clazz.floatToInt(v2.length()) / 2) + 1); +if (!forceFull && this.a0 != null) { +var ang0 = JU.Measure.computeTorsion(this.a0, b.atom1, b.atom2, this.a3, true); +var ang1 = Math.round(ang0 + degrees); +degrees = ang1 - ang0; +}var bs = JU.BSUtil.copy(bsBranch); +bs.andNot(this.vwr.slm.getMotionFixedAtoms()); +this.vwr.rotateAboutPointsInternal(null, atomFix, atomMove, 0, degrees, false, bs, null, null, null, null, true); +}, "~N,~N,~N,~N,~B"); +Clazz.defineMethod(c$, "addLockedAtoms", +function(sg, bsLocked){ +if (this.vwr.am.cmi < 0 || bsLocked.cardinality() == 0) return; +var bsm = this.vwr.getThisModelAtoms(); +var i0 = bsLocked.nextSetBit(0); +if (sg == null && (sg = this.getSym(i0)) == null) return; +for (var i = bsm.nextSetBit(0); i >= 0; i = bsm.nextSetBit(i + 1)) { +if (this.setConstraint(sg, i, J.modelkit.ModelKit.GET_CREATE).type == 6) { +bsLocked.set(i); +}} +}, "J.api.SymmetryInterface,JU.BS"); +Clazz.defineMethod(c$, "checkMovedAtoms", +function(bsFixed, bsAtoms, apos0){ +var i0 = bsAtoms.nextSetBit(0); +var n = bsAtoms.cardinality(); +var apos = new Array(n); +try { +var atoms = this.vwr.ms.at; +for (var ip = 0, i = i0; i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +apos[ip++] = JU.P3.newP(atoms[i]); +atoms[i].setT(apos0[i]); +} +var maxSite = 0; +for (var i = i0; i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var s = this.vwr.ms.at[i].getAtomSite(); +if (s > maxSite) maxSite = s; +} +var sites = Clazz.newIntArray (maxSite, 0); +var p1 = new JU.P3(); +var bsModelAtoms = this.vwr.getModelUndeletedAtomsBitSet(this.vwr.ms.at[i0].mi); +var bsMoved = new JU.BS(); +for (var ip = 0, i = i0; i >= 0; i = bsAtoms.nextSetBit(i + 1), ip++) { +p1.setT(apos[ip]); +var s = this.vwr.ms.at[i].getAtomSite() - 1; +if (sites[s] == 0) { +sites[s] = i + 1; +bsMoved = this.moveConstrained(i, bsFixed, bsModelAtoms, p1, true, false, bsMoved); +if (bsMoved == null) { +n = 0; +break; +}}} +return (n != 0 && this.checkAtomPositions(apos0, apos, bsAtoms) ? n : 0); +} finally { +if (n == 0) { +this.vwr.ms.restoreAtomPositions(apos0); +bsAtoms.clearAll(); +} else { +this.updateDrawAtomSymmetry("atomsMoved", bsAtoms); +}} +}, "JU.BS,JU.BS,~A"); +Clazz.defineMethod(c$, "checkOption", +function(type, key){ +var check = null; +switch ((type).charCodeAt(0)) { +case 77: +check = ";view;edit;molecular;"; +break; +case 83: +check = ";none;applylocal;retainlocal;applyfull;"; +break; +case 85: +check = ";packed;extend;"; +break; +case 66: +check = ";key;elementkey;autobond;hidden;showsymopinfo;clicktosetelement;addhydrogen;addhydrogens;"; +break; +} +return (check != null && JU.PT.isOneOf(key.toLowerCase(), check)); +}, "~S,~S"); +Clazz.defineMethod(c$, "clearAtomConstraints", +function(){ +this.modelSyms = null; +this.minBasisAtoms = null; +if (this.atomConstraints != null) { +for (var i = this.atomConstraints.length; --i >= 0; ) this.atomConstraints[i] = null; + +}}); +Clazz.defineMethod(c$, "clickAssignAtom", +function(atomIndex, element, ptNew){ +var n = this.addAtomType(element, Clazz.newArray(-1, [(ptNew == null ? null : ptNew)]), JU.BSUtil.newAndSetBit(atomIndex), "", null, "click"); +if (n > 0) this.vwr.setPickingMode("dragAtom", 0); +}, "~N,~S,JU.P3"); +Clazz.defineMethod(c$, "cmdAssignAddAtoms", +function(type, pts, bsAtoms, packing, cmd){ +if (type.startsWith("_")) type = type.substring(1); +return Math.abs(this.addAtomType(type, pts, bsAtoms, packing, null, cmd)); +}, "~S,~A,JU.BS,~S,~S"); +Clazz.defineMethod(c$, "cmdAssignAtom", +function(bs, pt, type, cmd){ +if (pt != null && bs != null && bs.cardinality() > 1) bs = JU.BSUtil.newAndSetBit(bs.nextSetBit(0)); +if (type.startsWith("_")) type = type.substring(1); +this.assignAtomNoAddedSymmetry(pt, -1, bs, type, (pt != null), cmd, 0); +}, "JU.BS,JU.P3,~S,~S"); +Clazz.defineMethod(c$, "cmdAssignBond", +function(bondIndex, type, cmd){ +this.assignBondAndType(bondIndex, this.getBondOrder(type, this.vwr.ms.bo[bondIndex]), type, cmd); +}, "~N,~S,~S"); +Clazz.defineMethod(c$, "cmdAssignConnect", +function(index, index2, type, cmd){ +var atoms = this.vwr.ms.at; +var a; +var b; +if (index < 0 || index2 < 0 || index >= atoms.length || index2 >= atoms.length || (a = atoms[index]) == null || (b = atoms[index2]) == null) return; +var state = this.getMKState(); +try { +var bond = null; +if (type != '1') { +var bs = new JU.BS(); +bs.set(index); +bs.set(index2); +bs = this.vwr.getBondsForSelectedAtoms(bs); +bond = this.vwr.ms.bo[bs.nextSetBit(0)]; +}var bondOrder = this.getBondOrder(type, bond); +var bs1 = this.vwr.ms.getSymmetryEquivAtoms(JU.BSUtil.newAndSetBit(index), null, null); +var bs2 = this.vwr.ms.getSymmetryEquivAtoms(JU.BSUtil.newAndSetBit(index2), null, null); +this.connectAtoms(a.distance(b), bondOrder, bs1, bs2); +if (this.vwr.getOperativeSymmetry() == null) { +bond = a.getBond(b); +if (bond != null) { +bs1.or(bs2); +this.assignBond(bond.index, 1, bs1); +}}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +} else { +throw e; +} +} finally { +this.setMKState(state); +} +}, "~N,~N,~S,~S"); +Clazz.defineMethod(c$, "cmdAssignDeleteAtoms", +function(bs){ +this.clearAtomConstraints(); +bs.and(this.vwr.getThisModelAtoms()); +bs = this.vwr.ms.getSymmetryEquivAtoms(bs, null, null); +if (!bs.isEmpty()) { +this.vwr.deleteAtoms(bs, false); +}return bs.cardinality(); +}, "JU.BS"); +Clazz.defineMethod(c$, "cmdAssignMoveAtoms", +function(bsSelected, iatom, p, pts, allowProjection, isMolecule){ +var sym = this.getSym(iatom); +var n; +if (sym != null) { +if (this.addHydrogens) this.vwr.ms.addConnectedHAtoms(this.vwr.ms.at[iatom], bsSelected); +n = this.assignMoveAtoms(sym, bsSelected, null, null, iatom, p, pts, allowProjection, isMolecule); +} else { +n = this.vwr.moveAtomWithHydrogens(iatom, this.addHydrogens ? 1 : 0, 0, 0, p, null); +}if (n == 0) this.vwr.showString("could not move atoms!", false); +return n; +}, "JU.BS,~N,JU.P3,~A,~B,~B"); +Clazz.defineMethod(c$, "cmdAssignSpaceGroup", +function(bs, name, paramsOrUC, isPacked, doDraw, cmd){ +var sym0 = this.vwr.getCurrentUnitCell(); +var sym = this.vwr.getOperativeSymmetry(); +if (sym0 != null && sym !== sym0) sym.getUnitCell(sym0.getV0abc(null, null), false, "modelkit"); +var sb = new JU.SB(); +var ret = this.assignSpaceGroup(sym, null, bs, paramsOrUC, JU.PT.split(name, ">"), 0, null, null, sb); +if (ret.endsWith("!")) return ret; +if (isPacked) { +var n; +if (doDraw) { +n = this.cmdAssignAddAtoms("N:G", null, null, "packed", cmd); +} else { +var transform = ret; +var bsModelAtoms = this.vwr.getThisModelAtoms(); +n = this.cmdAssignSpaceGroupPacked(bsModelAtoms, transform, cmd); +}sb.append("\n").append(J.i18n.GT.i(J.i18n.GT.$("{0} atoms added"), n)); +}var msg = sb.toString(); +var isError = msg.endsWith("!"); +if (doDraw && !isError) { +var s = this.drawSymmetry("sym", false, -1, null, 2147483647, null, null, null, 0, -2, 0, null, true); +this.appRunScript(s); +}return msg; +}, "JU.BS,~S,~O,~B,~B,~S"); +Clazz.defineMethod(c$, "cmdAssignSpaceGroupPacked", +function(bsAtoms, transform, cmd){ +var sym = this.vwr.getOperativeSymmetry(); +if (sym == null) return 0; +var opsCtr = sym.getSpaceGroupInfoObj("opsCtr", transform, false, false); +var n0 = bsAtoms.cardinality(); +this.addAtoms(null, null, bsAtoms, "packed", opsCtr, cmd); +bsAtoms = this.vwr.getThisModelAtoms(); +this.vwr.ms.setSpaceGroup(this.vwr.am.cmi, sym, new JU.BS()); +return bsAtoms.cardinality() - n0; +}, "JU.BS,~S,~S"); +Clazz.defineMethod(c$, "cmdMinimize", +function(eval, bsBasis, steps, crit, rangeFixed, flags){ +var wasAppend = this.vwr.getBoolean(603979792); +try { +this.vwr.setBooleanProperty("appendNew", true); +this.minimizeXtal(eval, bsBasis, steps, crit, rangeFixed, flags); +} finally { +this.vwr.setBooleanProperty("appendNew", wasAppend); +} +}, "J.api.JmolScriptEvaluator,JU.BS,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "cmdRotateAtoms", +function(bsAtoms, points, endDegrees){ +return this.rotateAtoms(bsAtoms, points, endDegrees); +}, "JU.BS,~A,~N"); +Clazz.defineMethod(c$, "dispose", +function(){ +this.menu.jpiDispose(); +this.menu.modelkit = null; +this.menu = null; +this.vwr = null; +}); +Clazz.defineMethod(c$, "getActiveMenu", +function(){ +return this.menu.activeMenu; +}); +Clazz.defineMethod(c$, "getDefaultModel", +function(){ +return (this.addHydrogens ? "5\n\nC 0 0 0\nH .63 .63 .63\nH -.63 -.63 .63\nH -.63 .63 -.63\nH .63 -.63 -.63" : "1\n\nC 0 0 0\n"); +}); +Clazz.defineMethod(c$, "getProperty", +function(name){ +name = name.toLowerCase().intern(); +if (name === "exists") return Boolean.TRUE; +if (name === "constraint") { +return this.constraint; +}if (name === "ismolecular") { +return Boolean.$valueOf(this.getMKState() == 0); +}if (name === "key" || name === "elementkey") { +return Boolean.$valueOf(this.isElementKeyOn(this.vwr.am.cmi)); +}if (name === "minimizing") return Boolean.$valueOf(this.minBasis != null); +if (name === "alloperators") { +return this.allOperators; +}if (name === "data") { +return this.getinfo(); +}return this.setProperty(name, null); +}, "~S"); +Clazz.defineMethod(c$, "getRotateBondIndex", +function(){ +return (this.getMKState() == 0 && this.isRotateBond ? this.bondIndex : -1); +}); +Clazz.defineMethod(c$, "getSym", +function(iatom){ +var modelIndex = this.vwr.ms.at[iatom].mi; +if (this.modelSyms == null || modelIndex >= this.modelSyms.length) { +this.modelSyms = new Array(this.vwr.ms.mc); +for (var imodel = this.modelSyms.length; --imodel >= 0; ) { +var sym = this.vwr.ms.getUnitCell(imodel); +if (sym == null || sym.getSymmetryOperations() != null) this.modelSyms[imodel] = sym; +} +}return (iatom < 0 ? null : this.modelSyms[modelIndex]); +}, "~N"); +Clazz.defineMethod(c$, "handleAssignNew", +function(pressed, dragged, mp, dragAtomIndex, key){ +var inRange = pressed.inRange(10, dragged.x, dragged.y); +if (mp != null && this.handleAtomDragging(mp.countPlusIndices)) return true; +var atomType = (key < 0 ? this.pickAtomAssignType : J.modelkit.ModelKit.keyToElement(key)); +if (atomType == null) return false; +var x = (inRange ? pressed.x : dragged.x); +var y = (inRange ? pressed.y : dragged.y); +if (this.vwr.antialiased) { +x <<= 1; +y <<= 1; +}return this.handleAtomOrBondPicked(x, y, mp, dragAtomIndex, atomType, inRange); +}, "JV.MouseState,JV.MouseState,JM.MeasurementPending,~N,~N"); +Clazz.defineMethod(c$, "hasConstraint", +function(iatom, ignoreGeneral, addNew){ +var c = this.setConstraint(this.getSym(iatom), iatom, addNew ? J.modelkit.ModelKit.GET_CREATE : J.modelkit.ModelKit.GET); +return (c != null && (!ignoreGeneral || c.type != 7)); +}, "~N,~B,~B"); +Clazz.defineMethod(c$, "initializeForModel", +function(isZap){ +this.resetBondFields(); +this.allOperators = null; +this.currentModelIndex = -999; +this.iatom0 = 0; +this.centerAtomIndex = this.secondAtomIndex = -1; +this.centerPoint = null; +this.symop = null; +this.setDefaultState(0); +if (isZap) { +if (this.$setElementKeys) { +this.updateModelElementKey(this.vwr.am.cmi, true); +}this.bsElementKeyModels.clearAll(); +this.bsElementKeyModelsOFF.clearAll(); +}}, "~B"); +Clazz.defineMethod(c$, "isHidden", +function(){ +return this.menu.hidden; +}); +Clazz.defineMethod(c$, "isPickAtomAssignCharge", +function(){ +return this.$isPickAtomAssignCharge; +}); +Clazz.defineMethod(c$, "minimizeEnd", +function(bsBasis2, isEnd){ +this.minimizeXtalEnd(bsBasis2, isEnd); +this.vwr.refresh(1, "modelkit minimize"); +}, "JU.BS,~B"); +Clazz.defineMethod(c$, "moveMinConstrained", +function(iatom, p, bsAtoms){ +var bsMoved = this.moveConstrained(iatom, null, bsAtoms, p, true, true, null); +return (bsMoved == null ? 0 : bsMoved.cardinality()); +}, "~N,JU.P3,JU.BS"); +Clazz.defineMethod(c$, "setBondMeasure", +function(bi, mp){ +if (this.branchAtomIndex < 0) return null; +var b = this.vwr.ms.bo[bi]; +var a1 = b.atom1; +var a2 = b.atom2; +this.a0 = this.a3 = null; +if (a1.getCovalentBondCount() == 1 || a2.getCovalentBondCount() == 1) return null; +mp.addPoint((this.a0 = J.modelkit.ModelKit.getNearestBondedAtom(a1, a2)).i, null, true); +mp.addPoint(a1.i, null, true); +mp.addPoint(a2.i, null, true); +mp.addPoint((this.a3 = J.modelkit.ModelKit.getNearestBondedAtom(a2, a1)).i, null, true); +mp.mad = 50; +mp.inFront = true; +return mp; +}, "~N,JM.MeasurementPending"); +Clazz.defineMethod(c$, "setMenu", +function(menu){ +this.menu = menu; +this.vwr = menu.vwr; +menu.modelkit = this; +this.initializeForModel(false); +}, "J.modelkit.ModelKitPopup"); +Clazz.defineMethod(c$, "setProperty", +function(key, value){ +try { +if (this.vwr == null) return null; +key = key.toLowerCase().intern(); +if (key === "hoverlabel") { +return this.getHoverLabel((value).intValue()); +}if (key === "initializemodel") { +this.initializeForModel(true); +return null; +}if (key === "atomset") { +this.addAtomSet(value); +return null; +}if (key === "atomsMoved") { +if (this.drawAtomSymmetry != null) { +this.updateDrawAtomSymmetry(key, (value)[0]); +}return null; +}if (key === "updatemodelkeys") { +if (this.haveElementKeys) this.updateModelElementKeys(value == null ? null : (value)[1], true); +if (this.drawAtomSymmetry != null && value != null) { +this.updateDrawAtomSymmetry("atomsDeleted", (value)[0]); +}return null; +}if (key === "updatekeysfromstate") { +this.updateElementKeyFromStateScript(); +return null; +}if (key === "updateatomkeys") { +var bsAtoms = value; +this.updateElementKey(bsAtoms); +return null; +}if (key === "setelementkey") { +this.setElementKeys(J.modelkit.ModelKit.isTrue(value)); +return null; +}if (key === "frameresized") { +this.clearElementKey(-2); +this.updateModelElementKeys(null, true); +return null; +}if (key === "key" || key === "elementkey") { +var mi = this.vwr.am.cmi; +var isOn = J.modelkit.ModelKit.isTrue(value); +this.bsElementKeyModelsOFF.setBitTo(mi, !isOn); +this.bsElementKeyModels.setBitTo(mi, false); +this.setElementKey(mi, isOn); +return isOn ? "true" : "false"; +}if (key === "branchatomclicked") { +if (this.isRotateBond && !this.vwr.acm.isHoverable()) this.setBranchAtom((value).intValue(), true); +return null; +}if (key === "branchatomdragged") { +if (this.isRotateBond) this.setBranchAtom((value).intValue(), true); +return null; +}if (key === "hidemenu") { +this.menu.hidePopup(); +return null; +}if (key === "constraint") { +this.constraint = null; +this.clearAtomConstraints(); +var o = value; +if (o != null) { +var v1 = o[0]; +var v2 = o[1]; +var plane = o[2]; +if (v1 != null && v2 != null) { +this.constraint = new J.modelkit.ModelKit.Constraint(null, 4, Clazz.newArray(-1, [v1, v2])); +} else if (plane != null) { +this.constraint = new J.modelkit.ModelKit.Constraint(null, 5, Clazz.newArray(-1, [plane])); +} else if (v1 != null) this.constraint = new J.modelkit.ModelKit.Constraint(null, 6, null); +}return null; +}if (key === "reset") { +return null; +}if (key === "atompickingmode") { +if (JU.PT.isOneOf(value, ";identify;off;")) { +this.exitBondRotation(null); +this.vwr.setBooleanProperty("bondPicking", false); +this.vwr.acm.exitMeasurementMode("modelkit"); +}if ("dragatom".equals(value)) { +this.setHoverLabel("atomMenu", J.modelkit.ModelKit.getText("dragAtom")); +}return null; +}if (key === "bondpickingmode") { +if (value.equals("deletebond")) { +this.exitBondRotation(J.modelkit.ModelKit.getText("bondTo0")); +} else if (value.equals("identifybond")) { +this.exitBondRotation(""); +}return null; +}if (key === "rotateBond") { +var i = (value).intValue(); +if (i != this.bondAtomIndex2) this.bondAtomIndex1 = i; +this.bsRotateBranch = null; +return null; +}if (key === "bondindex") { +if (value != null) { +this.setBondIndex((value).intValue(), false); +}return (this.bondIndex < 0 ? null : Integer.$valueOf(this.bondIndex)); +}if (key === "rotatebondindex") { +if (value != null) { +this.setBondIndex((value).intValue(), true); +}return (this.bondIndex < 0 ? null : Integer.$valueOf(this.bondIndex)); +}if (key === "highlight") { +this.bsHighlight.clearAll(); +if (value != null) this.bsHighlight.or(value); +return null; +}if (key === "mode") { +var isEdit = ("edit".equals(value)); +this.setMKState("view".equals(value) ? 1 : isEdit ? 2 : 0); +if (isEdit) this.addHydrogens = false; +return null; +}if (key === "symmetry") { +this.setDefaultState(2); +key = (value).toLowerCase().intern(); +this.setSymEdit(key === "applylocal" ? 32 : key === "retainlocal" ? 64 : key === "applyfull" ? 128 : 0); +this.showXtalSymmetry(); +return null; +}if (key === "unitcell") { +var isPacked = "packed".equals(value); +this.setUnitCell(isPacked ? 0 : 256); +this.viewOffset = (isPacked ? J.modelkit.ModelKit.Pt000 : null); +return null; +}if (key === "center") { +this.setDefaultState(1); +this.centerPoint = value; +this.lastCenter = this.centerPoint.x + " " + this.centerPoint.y + " " + this.centerPoint.z; +this.centerAtomIndex = (Clazz.instanceOf(this.centerPoint,"JM.Atom") ? (this.centerPoint).i : -1); +this.secondAtomIndex = -1; +this.clickProcessAtom(this.centerAtomIndex); +return null; +}if (key === "assignBond") { +this.cmdAssignBond((value).intValue(), this.pickBondAssignType, "click"); +return null; +}if (key === "addhydrogen" || key === "addhydrogens") { +if (value != null) this.addHydrogens = J.modelkit.ModelKit.isTrue(value); +return Boolean.$valueOf(this.addHydrogens); +}if (key === "autobond") { +if (value != null) this.autoBond = J.modelkit.ModelKit.isTrue(value); +return Boolean.$valueOf(this.autoBond); +}if (key === "clicktosetelement") { +if (value != null) this.clickToSetElement = J.modelkit.ModelKit.isTrue(value); +return Boolean.$valueOf(this.clickToSetElement); +}if (key === "hidden") { +if (value != null) { +this.menu.hidden = J.modelkit.ModelKit.isTrue(value); +if (this.menu.hidden) this.menu.hidePopup(); +this.vwr.setBooleanProperty("modelkitMode", true); +}return Boolean.$valueOf(this.menu.hidden); +}if (key === "showsymopinfo") { +if (value != null) this.showSymopInfo = J.modelkit.ModelKit.isTrue(value); +return Boolean.$valueOf(this.showSymopInfo); +}if (key === "symop") { +this.setDefaultState(1); +if (value != null) { +if (key === "hoverlabel") { +return this.getHoverLabel((value).intValue()); +}this.symop = value; +this.showSymop(this.symop); +}return this.symop; +}if (key === "atomtype") { +this.$wasRotating = this.isRotateBond; +this.isRotateBond = false; +if (value != null) { +this.pickAtomAssignType = value; +this.$isPickAtomAssignCharge = (this.pickAtomAssignType.equalsIgnoreCase("pl") || this.pickAtomAssignType.equalsIgnoreCase("mi")); +if (this.$isPickAtomAssignCharge) { +this.setHoverLabel("atomMenu", J.modelkit.ModelKit.getText(this.pickAtomAssignType.equalsIgnoreCase("mi") ? "decCharge" : "incCharge")); +} else if ("X".equals(this.pickAtomAssignType)) { +this.setHoverLabel("atomMenu", J.modelkit.ModelKit.getText("delAtom")); +} else if (this.pickAtomAssignType.equals("Xx")) { +this.setHoverLabel("atomMenu", J.modelkit.ModelKit.getText("dragBond")); +} else { +this.setHoverLabel("atomMenu", "Click or click+drag to bond or for a new " + this.pickAtomAssignType); +this.lastElementType = this.pickAtomAssignType; +}}return this.pickAtomAssignType; +}if (key === "bondtype") { +if (value != null) { +var s = (value).substring(0, 1).toLowerCase(); +if (" 0123456pm".indexOf(s) > 0) { +this.pickBondAssignType = s.charAt(0); +this.setHoverLabel("bondMenu", J.modelkit.ModelKit.getText(this.pickBondAssignType == 'm' ? "decBond" : this.pickBondAssignType == 'p' ? "incBond" : "bondTo" + s)); +}this.isRotateBond = false; +}return "" + this.pickBondAssignType; +}if (key === "offset") { +if (value === "none") { +this.viewOffset = null; +} else if (value != null) { +this.viewOffset = (Clazz.instanceOf(value,"JU.P3") ? value : J.modelkit.ModelKit.pointFromTriad(value.toString())); +if (this.viewOffset != null) this.setSymViewState(8); +}this.showXtalSymmetry(); +return this.viewOffset; +}if (key === "screenxy") { +if (value != null) { +this.screenXY = value; +this.vwr.acm.exitMeasurementMode("modelkit"); +}return this.screenXY; +}if (key === "invariant") { +var iatom = (Clazz.instanceOf(value,"JU.BS") ? (value).nextSetBit(0) : -1); +var atom = this.vwr.ms.getAtom(iatom); +return (atom == null ? null : this.vwr.getSymmetryInfo(iatom, null, -1, null, atom, atom, 1275068418, null, 0, 0, 0, null)); +}if (key === "distance") { +this.setDefaultState(2); +var d = (value == null ? NaN : Clazz.instanceOf(value, Float) ? (value).floatValue() : JU.PT.parseFloat(value)); +if (!Float.isNaN(d)) { +J.modelkit.ModelKit.notImplemented("setProperty: distance"); +this.centerDistance = d; +}return Float.$valueOf(this.centerDistance); +}if (key === "addconstraint") { +J.modelkit.ModelKit.notImplemented("setProperty: addConstraint"); +return null; +}if (key === "removeconstraint") { +J.modelkit.ModelKit.notImplemented("setProperty: removeConstraint"); +return null; +}if (key === "removeallconstraints") { +J.modelkit.ModelKit.notImplemented("setProperty: removeAllConstraints"); +return null; +}if (key === "vibration") { +J.modelkit.ModelKit.WyckoffModulation.setVibrationMode(this, value); +return null; +}System.err.println("ModelKit.setProperty? " + key + " " + value); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return "?"; +} else { +throw e; +} +} +return null; +}, "~S,~O"); +Clazz.defineMethod(c$, "showMenu", +function(x, y){ +this.menu.jpiShow(x, y); +}, "~N,~N"); +Clazz.defineMethod(c$, "updateMenu", +function(){ +this.menu.jpiUpdateComputedMenus(); +}); +Clazz.defineMethod(c$, "wasRotating", +function(){ +var b = this.$wasRotating; +this.$wasRotating = false; +return b; +}); +Clazz.defineMethod(c$, "checkNewModel", +function(){ +var isNew = false; +if (this.vwr.ms !== this.lastModelSet) { +this.lastModelSet = this.vwr.ms; +isNew = true; +}this.currentModelIndex = Math.max(this.vwr.am.cmi, 0); +this.iatom0 = this.vwr.ms.am[this.currentModelIndex].firstAtomIndex; +return isNew; +}); +Clazz.defineMethod(c$, "clickProcessXtal", +function(id, action){ +if (this.processSymop(id, false)) return; +action = action.intern(); +if (action.startsWith("mkmode_")) { +if (!this.alertedNoEdit && action === "mkmode_edit") { +this.alertedNoEdit = true; +this.vwr.alert("ModelKit xtal edit has not been implemented"); +return; +}this.clickProcessMode(action); +} else if (action.startsWith("mksel_")) { +this.clickProcessSel(action); +} else if (action.startsWith("mkselop_")) { +while (action != null) action = this.clickProcessSelOp(action); + +} else if (action.startsWith("mksymmetry_")) { +this.clickProcessSym(action); +} else if (action.startsWith("mkunitcell_")) { +this.clickProcessUC(action); +} else { +J.modelkit.ModelKit.notImplemented("XTAL click " + action); +}this.menu.updateAllXtalMenuOptions(); +}, "~S,~S"); +Clazz.defineMethod(c$, "exitBondRotation", +function(text){ +this.$wasRotating = this.isRotateBond; +this.isRotateBond = false; +if (text != null) this.bondHoverLabel = text; +this.vwr.highlight(null); +}, "~S"); +Clazz.defineMethod(c$, "getAllOperators", +function(){ +if (this.allOperators != null) return this.allOperators; +var data = this.runScriptBuffered("show symop"); +this.allOperators = JU.PT.split(data.trim().$replace('\t', ' '), "\n"); +return this.allOperators; +}); +Clazz.defineMethod(c$, "getBasisAtom", +function(iatom){ +if (this.minBasisAtoms == null) { +this.minBasisAtoms = new Array(this.vwr.ms.ac + 10); +}if (this.minBasisAtoms.length < iatom + 10) { +var a = new Array(this.vwr.ms.ac + 10); +System.arraycopy(this.minBasisAtoms, 0, a, 0, this.minBasisAtoms.length); +this.minBasisAtoms = a; +}var b = this.minBasisAtoms[iatom]; +return (b == null ? (this.minBasisAtoms[iatom] = this.vwr.ms.getBasisAtom(iatom, false)) : b); +}, "~N"); +Clazz.defineMethod(c$, "getCenterText", +function(){ +return (this.centerAtomIndex < 0 && this.centerPoint == null ? null : this.centerAtomIndex >= 0 ? this.vwr.getAtomInfo(this.centerAtomIndex) : this.centerPoint.toString()); +}); +Clazz.defineMethod(c$, "getElementFromUser", +function(){ +var element = this.promptUser(J.i18n.GT.$("Element?"), ""); +return (element == null || JU.Elements.elementNumberFromSymbol(element, true) == 0 ? null : element); +}); +Clazz.defineMethod(c$, "getMKState", +function(){ +return this.state & 3; +}); +Clazz.defineMethod(c$, "getSymEditState", +function(){ +return this.state & 224; +}); +Clazz.defineMethod(c$, "getSymopText", +function(){ +return (this.symop == null || this.allOperators == null ? null : Clazz.instanceOf(this.symop, Integer) ? this.allOperators[(this.symop).intValue() - 1] : this.symop.toString()); +}); +Clazz.defineMethod(c$, "getSymViewState", +function(){ +return this.state & 28; +}); +Clazz.defineMethod(c$, "getUnitCellState", +function(){ +return this.state & 1792; +}); +Clazz.defineMethod(c$, "isXtalState", +function(){ +return ((this.state & 3) != 0); +}); +Clazz.defineMethod(c$, "processMKPropertyItem", +function(name, TF){ +name = name.substring(2); +var pt = name.indexOf("_"); +if (pt > 0) { +this.setProperty(name.substring(0, pt), name.substring(pt + 1)); +} else { +this.setProperty(name, Boolean.$valueOf(TF)); +}}, "~S,~B"); +Clazz.defineMethod(c$, "processSymop", +function(id, isFocus){ +var pt = id.indexOf(".mkop_"); +if (pt >= 0) { +var op = this.symop; +this.symop = Integer.$valueOf(id.substring(pt + 6)); +this.showSymop(this.symop); +if (isFocus) this.symop = op; +return true; +}return false; +}, "~S,~B"); +Clazz.defineMethod(c$, "resetAtomPickType", +function(){ +this.setProperty("atomtype", this.lastElementType); +}); +Clazz.defineMethod(c$, "setConstraint", +function(sym, ia, mode){ +if (ia < 0) return null; +var a = this.getBasisAtom(ia); +var iatom = a.i; +var ac = (this.atomConstraints != null && iatom < this.atomConstraints.length ? this.atomConstraints[iatom] : null); +if (ac != null || mode != J.modelkit.ModelKit.GET_CREATE) { +if (ac != null && mode == J.modelkit.ModelKit.GET_DELETE) { +this.atomConstraints[iatom] = null; +}return ac; +}if (sym == null) return this.addConstraint(iatom, new J.modelkit.ModelKit.Constraint(a, 0, null)); +var ops = sym.getInvariantSymops(a, null); +if (JU.Logger.debugging) System.out.println("MK.getConstraint atomIndex=" + iatom + " symops=" + java.util.Arrays.toString(ops)); +if (ops.length == 0) return this.addConstraint(iatom, new J.modelkit.ModelKit.Constraint(a, 7, null)); +var plane1 = null; +var line1 = null; +for (var i = ops.length; --i >= 0; ) { +var line2 = null; +var c = sym.getSymmetryInfoAtom(this.vwr.ms, iatom, null, ops[i], null, a, null, "invariant", 1275068418, 0, -1, 0, null); +if ((typeof(c)=='string')) { +continue; +} else if (Clazz.instanceOf(c,"JU.P4")) { +var plane = c; +if (plane1 == null) { +plane1 = plane; +continue; +}var line = JU.Measure.getIntersectionPP(plane1, plane); +if (line == null || line.size() == 0) { +return J.modelkit.ModelKit.locked; +}line2 = Clazz.newArray(-1, [line.get(0), line.get(1)]); +} else if (Clazz.instanceOf(c,"JU.P3")) { +return J.modelkit.ModelKit.locked; +} else { +line2 = c; +}if (line2 != null) { +if (line1 == null) { +line1 = line2; +} else { +var v1 = line1[1]; +if (Math.abs(v1.dot(line2[1])) < 0.999) return J.modelkit.ModelKit.locked; +}if (plane1 != null) { +if (Math.abs(plane1.dot(line2[1])) > 0.001) return J.modelkit.ModelKit.locked; +}}} +if (line1 != null) { +line1[0] = JU.P3.newP(a); +}return this.addConstraint(iatom, line1 != null ? new J.modelkit.ModelKit.Constraint(a, 4, line1) : plane1 != null ? new J.modelkit.ModelKit.Constraint(a, 5, Clazz.newArray(-1, [plane1])) : new J.modelkit.ModelKit.Constraint(a, 7, null)); +}, "J.api.SymmetryInterface,~N,~N"); +Clazz.defineMethod(c$, "setHasUnitCell", +function(){ +return this.hasUnitCell = (this.vwr.getOperativeSymmetry() != null); +}); +Clazz.defineMethod(c$, "setHoverLabel", +function(mode, text){ +if (text == null) return; +if (mode === "bondMenu") { +this.bondHoverLabel = text; +} else if (mode === "atomMenu") { +this.atomHoverLabel = text; +} else if (mode === "xtalMenu") { +this.atomHoverLabel = text; +}}, "~S,~S"); +Clazz.defineMethod(c$, "setMKState", +function(bits){ +this.state = (this.state & -4) | (this.hasUnitCell ? bits : 0); +}, "~N"); +Clazz.defineMethod(c$, "addAtomType", +function(type, pts, bsAtoms, packing, opsCtr, cmd){ +var sym = this.vwr.getOperativeSymmetry(); +var ipt = type.indexOf(":"); +var wyckoff = (ipt > 0 && ipt == type.length - 2 ? type.substring(ipt + 1) : null); +if (wyckoff != null) { +type = type.substring(0, ipt); +if (sym != null) { +var o = sym.getWyckoffPosition(this.vwr, null, wyckoff); +if (!(Clazz.instanceOf(o,"JU.P3"))) return 0; +pts = Clazz.newArray(-1, [o]); +}}return this.addAtoms(type, pts, bsAtoms, packing, opsCtr, cmd); +}, "~S,~A,JU.BS,~S,~A,~S"); +Clazz.defineMethod(c$, "addAtoms", +function(type, pts, bsAtoms, packing, opsCtr, cmd){ +try { +this.vwr.pushHoldRepaintWhy("modelkit"); +var sym = this.vwr.getOperativeSymmetry(); +if (type != null) { +var ipt = type.indexOf(":"); +var wyckoff = (ipt > 0 && ipt == type.length - 2 ? type.substring(ipt + 1) : null); +if (wyckoff != null) { +type = type.substring(0, ipt); +if (sym != null) { +var o = sym.getWyckoffPosition(this.vwr, null, wyckoff); +if (!(Clazz.instanceOf(o,"JU.P3"))) return 0; +pts = Clazz.newArray(-1, [o]); +}}}var isPoint = (bsAtoms == null); +var atomIndex = (isPoint ? -1 : bsAtoms.nextSetBit(0)); +if (!isPoint && atomIndex < 0 || sym == null && type == null) return 0; +var n = 0; +if (sym == null) { +if (isPoint) { +for (var i = 0; i < pts.length; i++) this.assignAtomNoAddedSymmetry(pts[i], -1, null, type, true, cmd, -1); + +n = -pts.length; +} else { +this.assignAtomNoAddedSymmetry(pts[0], atomIndex, null, type, true, cmd, -1); +n = -1; +}} else { +n = this.addAtomsWithSymmetry(sym, bsAtoms, type, atomIndex, isPoint, pts, packing, opsCtr); +}return n; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +return 0; +} else { +throw e; +} +} finally { +this.vwr.popHoldRepaint("modelkit"); +} +}, "~S,~A,JU.BS,~S,~A,~S"); +Clazz.defineMethod(c$, "addAtomsWithSymmetry", +function(sym, bsAtoms, type, atomIndex, isPoint, pts, packing, opsCtr){ +var bsM = this.vwr.getThisModelAtoms(); +var n = bsM.cardinality(); +if (n == 0) packing = "zapped;" + packing; +var stype = "" + type; +var points = new JU.Lst(); +var site = 0; +var pf = null; +if (pts != null && pts.length == 1 && pts[0] != null) { +pf = JU.P3.newP(pts[0]); +sym.toFractional(pf, false); +isPoint = true; +}for (var i = bsM.nextSetBit(0); i >= 0; i = bsM.nextSetBit(i + 1)) { +var p = JU.P3.newP(this.vwr.ms.at[i]); +sym.toFractional(p, false); +if (pf != null && pf.distanceSquared(p) < 1.96E-6) { +site = this.vwr.ms.at[i].getAtomSite(); +if (type == null || pts == null) type = this.vwr.ms.at[i].getElementSymbolIso(true); +}points.addLast(p); +} +var nInitial = points.size(); +packing = "fromfractional;tocartesian;" + packing; +if (isPoint) { +var bsEquiv = (bsAtoms == null ? null : this.vwr.ms.getSymmetryEquivAtoms(bsAtoms, null, null)); +for (var i = 0; i < pts.length; i++) { +this.assignAtoms(JU.P3.newP(pts[i]), atomIndex, bsEquiv, stype, true, null, false, site, sym, points, packing, null); +} +} else { +var sites = new JU.BS(); +for (var i = bsAtoms.nextSetBit(0); i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var a = this.vwr.ms.at[i]; +site = a.getAtomSite(); +if (sites.get(site)) continue; +sites.set(site); +stype = (type == null ? a.getElementSymbolIso(true) : stype); +this.assignAtoms(JU.P3.newP(a), -1, null, stype, false, null, false, site, sym, points, packing, opsCtr); +if (opsCtr == null) { +for (var j = points.size(); --j >= nInitial; ) points.removeItemAt(j); + +} else { +for (var j = points.size(); --j >= nInitial; ) { +var p = points.get(j); +sym.toFractional(p, false); +} +nInitial = points.size(); +}} +}return this.vwr.getThisModelAtoms().cardinality() - n; +}, "J.api.SymmetryInterface,JU.BS,~S,~N,~B,~A,~S,~A"); +Clazz.defineMethod(c$, "addConstraint", +function(iatom, c){ +if (c == null) { +if (this.atomConstraints != null && this.atomConstraints.length > iatom) { +this.atomConstraints[iatom] = null; +}return null; +}if (this.atomConstraints == null) { +this.atomConstraints = new Array(this.vwr.ms.ac + 10); +}if (this.atomConstraints.length < iatom + 10) { +var a = new Array(this.vwr.ms.ac + 10); +System.arraycopy(this.atomConstraints, 0, a, 0, this.atomConstraints.length); +this.atomConstraints = a; +}return this.atomConstraints[iatom] = c; +}, "~N,J.modelkit.ModelKit.Constraint"); +Clazz.defineMethod(c$, "addInfo", +function(info, key, value){ +if (value != null) info.put(key, value); +}, "java.util.Map,~S,~O"); +Clazz.defineMethod(c$, "addOccupiedAtomsToBitset", +function(bsSelected){ +var bs = new JU.BS(); +for (var iatom = bsSelected.nextSetBit(0); iatom >= 0; iatom = bsSelected.nextSetBit(iatom + 1)) { +var a = this.vwr.ms.at[iatom]; +if (this.vwr.ms.getOccupancyFloat(a.i) == 100) { +bsSelected.set(a.i); +} else { +bs.clearAll(); +this.vwr.ms.getAtomsWithin(0.0001, a, bs, a.mi); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +if (this.vwr.ms.getOccupancyFloat(i) == 100) { +bs.clear(i); +bsSelected.clear(i); +}} +bsSelected.or(bs); +}} +}, "JU.BS"); +Clazz.defineMethod(c$, "appRunScript", +function(script){ +this.vwr.runScript(script); +}, "~S"); +Clazz.defineMethod(c$, "assignAtomNoAddedSymmetry", +function(pt, atomIndex, bs, type, newPoint, cmd, site){ +this.assignAtoms(pt, atomIndex, bs, type, newPoint, cmd, false, site, null, null, null, null); +}, "JU.P3,~N,JU.BS,~S,~B,~S,~N"); +Clazz.defineMethod(c$, "assignAtoms", +function(pt, atomIndex, bs, type, newPoint, cmd, isClick, site, sym, points, packing, opsCtr){ +if (sym == null) sym = this.vwr.getOperativeSymmetry(); +var haveAtomByIndex = (atomIndex >= 0); +var isMultipleAtoms = (bs != null && bs.cardinality() > 1); +var nIgnored = 0; +var np = 0; +if (!haveAtomByIndex) atomIndex = (bs == null ? -1 : bs.nextSetBit(0)); +var atom = (atomIndex < 0 ? null : this.vwr.ms.at[atomIndex]); +var bd = (pt != null && atom != null ? pt.distance(atom) : -1); +if (points != null) { +np = nIgnored = points.size(); +sym.toFractional(pt, false); +points.addLast(pt); +if (newPoint && haveAtomByIndex) nIgnored++; +sym.getEquivPointList(points, nIgnored, packing + (newPoint && atomIndex < 0 ? "newpt" : ""), opsCtr); +}var bsEquiv = (atom == null ? null : sym != null ? this.vwr.ms.getSymmetryEquivAtoms(bs, sym, null) : bs == null || bs.cardinality() == 0 ? JU.BSUtil.newAndSetBit(atomIndex) : bs); +var bs0 = (bsEquiv == null ? null : sym == null ? JU.BSUtil.newAndSetBit(atomIndex) : JU.BSUtil.copy(bsEquiv)); +var mi = (atom == null ? this.vwr.am.cmi : atom.mi); +var ac = this.vwr.ms.ac; +var state = this.getMKState(); +var isDelete = type.equals("X"); +try { +if (isDelete) { +if (isClick) { +this.setProperty("rotatebondindex", Integer.$valueOf(-1)); +}this.setConstraint(null, atomIndex, J.modelkit.ModelKit.GET_DELETE); +}if (pt == null && points == null) { +if (atom == null) return; +this.vwr.sm.setStatusStructureModified(atomIndex, mi, 1, cmd, 1, bsEquiv); +for (var i = bsEquiv.nextSetBit(0); i >= 0; i = bsEquiv.nextSetBit(i + 1)) { +this.assignAtom(i, type, this.autoBond, sym == null, isClick); +} +if (!JU.PT.isOneOf(type, ";Mi;Pl;X;")) this.vwr.ms.setAtomNamesAndNumbers(atomIndex, -ac, null, true); +this.vwr.sm.setStatusStructureModified(atomIndex, mi, -1, "OK", 1, bsEquiv); +this.vwr.refresh(3, "assignAtom"); +this.updateElementKey(null); +return; +}this.setMKState(0); +var pts; +if (points == null) { +pts = Clazz.newArray(-1, [pt]); +} else { +pts = new Array(Math.max(0, points.size() - np)); +for (var i = pts.length; --i >= 0; ) { +pts[i] = points.get(np + i); +} +}var vConnections = new JU.Lst(); +var isConnected = false; +if (site == 0) { +if (atom != null) { +if (!isMultipleAtoms) { +vConnections.addLast(atom); +isConnected = true; +} else if (sym != null) { +var p = JU.P3.newP(atom); +sym.toFractional(p, false); +bs.or(bsEquiv); +var list = sym.getEquivPoints(null, p, packing); +for (var j = 0, n = list.size(); j < n; j++) { +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +if (this.vwr.ms.at[i].distanceSquared(list.get(j)) < 0.001) { +vConnections.addLast(this.vwr.ms.at[i]); +bs.clear(i); +}} +} +}isConnected = (vConnections.size() == pts.length); +if (isConnected) { +var d = 3.4028235E38; +for (var i = pts.length; --i >= 0; ) { +var d1 = vConnections.get(i).distance(pts[i]); +if (d == 3.4028235E38) d1 = d; + else if (Math.abs(d1 - d) > 0.001) { +isConnected = false; +break; +}} +}if (!isConnected) { +vConnections.clear(); +}this.vwr.sm.setStatusStructureModified(atomIndex, mi, 3, cmd, 1, null); +}if (pt != null || points != null) { +var bsM = this.vwr.getThisModelAtoms(); +for (var i = bsM.nextSetBit(0); i >= 0; i = bsM.nextSetBit(i + 1)) { +var as = this.vwr.ms.at[i].getAtomSite(); +if (as > site) site = as; +} +site++; +}}var pickingMode = this.vwr.acm.getAtomPickingMode(); +var wasHidden = this.menu.hidden; +var isMK = this.vwr.getBoolean(603983903); +if (!isMK && sym == null) { +this.vwr.setBooleanProperty("modelkitmode", true); +this.menu.hidden = true; +this.menu.allowPopup = false; +}var htParams = new java.util.Hashtable(); +if (site > 0) htParams.put("fixedSite", Integer.$valueOf(site)); +htParams.put("element", type); +bs = this.vwr.addHydrogensInline(bs, vConnections, pts, htParams); +if (bd > 0 && !isConnected && vConnections.isEmpty()) { +this.connectAtoms(bd, 1, bs0, bs); +}if (!isMK) { +this.vwr.setBooleanProperty("modelkitmode", false); +this.menu.hidden = wasHidden; +this.menu.allowPopup = true; +this.vwr.acm.setPickingMode(pickingMode); +this.menu.hidePopup(); +}var atomIndexNew = bs.nextSetBit(0); +if (points == null) { +this.assignAtom(atomIndexNew, type, false, atomIndex >= 0 && sym == null, true); +if (atomIndex >= 0) { +var doAutobond = (sym == null && !"H".equals(type)); +this.assignAtom(atomIndex, ".", false, doAutobond, isClick); +}this.vwr.ms.setAtomNamesAndNumbers(atomIndexNew, -ac, null, true); +this.vwr.sm.setStatusStructureModified(atomIndexNew, mi, -3, "OK", 1, bs); +return; +}if (atomIndexNew >= 0) { +for (var i = atomIndexNew; i >= 0; i = bs.nextSetBit(i + 1)) { +this.assignAtom(i, type, false, false, true); +this.vwr.ms.setSite(this.vwr.ms.at[i], -1, false); +this.vwr.ms.setSite(this.vwr.ms.at[i], site, true); +} +this.vwr.ms.updateBasisFromSite(mi); +}var firstAtom = this.vwr.ms.am[mi].firstAtomIndex; +this.vwr.ms.setAtomNamesAndNumbers(firstAtom, -ac, null, true); +this.vwr.sm.setStatusStructureModified(-1, mi, -3, "OK", 1, bs); +this.updateModelElementKey(mi, true); +} catch (ex) { +if (Clazz.exceptionOf(ex, Exception)){ +ex.printStackTrace(); +} else { +throw ex; +} +} finally { +this.setMKState(state); +} +}, "JU.P3,~N,JU.BS,~S,~B,~S,~B,~N,J.api.SymmetryInterface,JU.Lst,~S,~A"); +Clazz.defineMethod(c$, "assignAtom", +function(atomIndex, type, autoBond, addHsAndBond, isClick){ +if (isClick) { +if (this.vwr.isModelkitPickingRotateBond()) { +this.bondAtomIndex1 = atomIndex; +return -1; +}if (this.clickProcessAtom(atomIndex) || !this.clickToSetElement && this.vwr.ms.getAtom(atomIndex).getElementNumber() != 1) return -1; +}var atom = this.vwr.ms.at[atomIndex]; +if (atom == null) return -1; +this.vwr.ms.clearDB(atomIndex); +if (type == null) type = "C"; +var bs = new JU.BS(); +var wasH = (atom.getElementNumber() == 1); +var atomicNumber = ("PPlMiX".indexOf(type) > 0 ? -1 : type.equals("Xx") ? 0 : JU.PT.isUpperCase(type.charAt(0)) ? JU.Elements.elementNumberFromSymbol(type, true) : -1); +var isDelete = false; +if (atomicNumber >= 0) { +var doTaint = (atomicNumber > 1 || !addHsAndBond); +this.vwr.ms.setElement(atom, atomicNumber, doTaint); +this.vwr.shm.setShapeSizeBs(0, 0, this.vwr.rd, JU.BSUtil.newAndSetBit(atomIndex)); +this.vwr.ms.setAtomName(atomIndex, type + atom.getAtomNumber(), doTaint); +if (this.vwr.getBoolean(603983903)) this.vwr.ms.am[atom.mi].isModelKit = true; +if (!this.vwr.ms.am[atom.mi].isModelKit || atomicNumber > 1) this.vwr.ms.taintAtom(atomIndex, 0); +} else if (type.toLowerCase().equals("pl")) { +atom.setFormalCharge(atom.getFormalCharge() + 1); +} else if (type.toLowerCase().equals("mi")) { +atom.setFormalCharge(atom.getFormalCharge() - 1); +} else if (type.equals("X")) { +isDelete = true; +} else if (!type.equals(".") || !this.addHydrogens) { +return -1; +}if (!addHsAndBond && !isDelete) return atomicNumber; +if (!wasH) this.vwr.ms.removeUnnecessaryBonds(atom, isDelete); +var dx = 0; +if (atom.getCovalentBondCount() == 1) { +if (atomicNumber == 1) { +dx = 1.0; +} else { +dx = 1.5; +}}if (dx != 0) { +var v = JU.V3.newVsub(atom, this.vwr.ms.at[atom.getBondedAtomIndex(0)]); +var d = v.length(); +v.normalize(); +v.scale(dx - d); +this.vwr.ms.setAtomCoordRelative(atomIndex, v.x, v.y, v.z); +}var bsA = JU.BSUtil.newAndSetBit(atomIndex); +if (isDelete) { +this.vwr.deleteAtoms(bsA, false); +}if (atomicNumber != 1 && autoBond) { +this.vwr.ms.validateBspf(false); +bs = this.vwr.ms.getAtomsWithinRadius(1.0, bsA, false, null, null); +bs.andNot(bsA); +if (bs.nextSetBit(0) >= 0) this.vwr.deleteAtoms(bs, false); +bs = this.vwr.getModelUndeletedAtomsBitSet(atom.mi); +bs.andNot(this.vwr.ms.getAtomBitsMDa(1612709900, null, new JU.BS())); +this.vwr.ms.makeConnections2(0.1, 1.8, 1, 1073741904, bsA, bs, null, false, false, 0, null); +}if (this.addHydrogens) this.vwr.addHydrogens(bsA, 1); +return atomicNumber; +}, "~N,~S,~B,~B,~B"); +Clazz.defineMethod(c$, "assignBond", +function(bondIndex, bondOrder, bsAtoms){ +var bond = this.vwr.ms.bo[bondIndex]; +this.vwr.ms.clearDB(bond.atom1.i); +if (bondOrder < 0) return false; +try { +var a1H = (bond.atom1.getElementNumber() == 1); +var isH = (a1H || bond.atom2.getElementNumber() == 1); +if (isH && bondOrder > 1) { +this.vwr.deleteAtoms(JU.BSUtil.newAndSetBit(a1H ? bond.atom1.i : bond.atom2.i), false); +return true; +}if (bondOrder == 0) { +this.vwr.deleteBonds(JU.BSUtil.newAndSetBit(bond.index)); +} else { +bond.setOrder(bondOrder | 131072); +if (!isH) { +this.vwr.ms.removeUnnecessaryBonds(bond.atom1, false); +this.vwr.ms.removeUnnecessaryBonds(bond.atom2, false); +}}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Exception in seBondOrder: " + e.toString()); +} else { +throw e; +} +} +if (bondOrder != 0 && this.addHydrogens) this.vwr.addHydrogens(bsAtoms, 1); +return true; +}, "~N,~N,JU.BS"); +Clazz.defineMethod(c$, "assignBondAndType", +function(bondIndex, bondOrder, type, cmd){ +var modelIndex = -1; +var state = this.getMKState(); +try { +this.setMKState(0); +var a1 = this.vwr.ms.bo[bondIndex].atom1; +modelIndex = a1.mi; +var ac = this.vwr.ms.ac; +var bsAtoms = JU.BSUtil.newAndSetBit(a1.i); +bsAtoms.set(this.vwr.ms.bo[bondIndex].atom2.i); +this.vwr.sm.setStatusStructureModified(bondIndex, modelIndex, 6, cmd, 1, bsAtoms); +this.assignBond(bondIndex, bondOrder, bsAtoms); +this.vwr.ms.setAtomNamesAndNumbers(a1.i, -ac, null, true); +this.vwr.refresh(3, "setBondOrder"); +this.vwr.sm.setStatusStructureModified(bondIndex, modelIndex, -6, "" + type, 1, bsAtoms); +} catch (ex) { +if (Clazz.exceptionOf(ex, Exception)){ +JU.Logger.error("assignBond failed"); +this.vwr.sm.setStatusStructureModified(bondIndex, modelIndex, -6, "ERROR " + ex, 1, null); +} else { +throw ex; +} +} finally { +this.setMKState(state); +} +}, "~N,~N,~S,~S"); +Clazz.defineMethod(c$, "assignMoveAtom", +function(iatom, pt, bsFixed, bsModelAtoms, bsMoved){ +if (Float.isNaN(pt.x) || iatom < 0) return 0; +var bs = JU.BSUtil.newAndSetBit(iatom); +if (bsModelAtoms == null) bsModelAtoms = this.vwr.getThisModelAtoms(); +bs.and(bsModelAtoms); +if (bs.isEmpty()) return 0; +var state = this.getMKState(); +this.setMKState(0); +var n = 0; +try { +var sym = this.getSym(iatom); +var bseq = new JU.BS(); +this.vwr.ms.getSymmetryEquivAtomsForAtom(iatom, null, bsModelAtoms, bseq); +if (this.setConstraint(sym, bseq.nextSetBit(0), J.modelkit.ModelKit.GET_CREATE).type == 6) { +return 0; +}if (bsFixed != null && !bsFixed.isEmpty()) bseq.andNot(bsFixed); +n = bseq.cardinality(); +if (n == 0) { +return 0; +}var a = this.vwr.ms.at[iatom]; +var v0 = sym.getInvariantSymops(a, null); +var v1 = sym.getInvariantSymops(pt, v0); +if ((v1 == null) != (v0 == null) || !java.util.Arrays.equals(v0, v1)) return 0; +var points = new Array(n); +var ia0 = bseq.nextSetBit(0); +if (!this.fillPointsForMove(sym, bseq, ia0, a, pt, points)) { +return 0; +}bsMoved.or(bseq); +var mi = this.vwr.ms.at[ia0].mi; +this.vwr.sm.setStatusStructureModified(ia0, mi, 3, "dragatom", n, bseq); +for (var k = 0, ia = bseq.nextSetBit(0); ia >= 0; ia = bseq.nextSetBit(ia + 1)) { +var p = points[k++]; +this.vwr.ms.setAtomCoord(ia, p.x, p.y, p.z); +} +this.vwr.sm.setStatusStructureModified(ia0, mi, -3, "dragatom", n, bseq); +return n; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.err.println("Modelkit err" + e); +return 0; +} else { +throw e; +} +} finally { +this.setMKState(state); +if (n > 0) { +this.updateDrawAtomSymmetry("atomsMoved", bsMoved); +}} +}, "~N,JU.P3,JU.BS,JU.BS,JU.BS"); +Clazz.defineMethod(c$, "assignMoveAtoms", +function(sym, bsSelected, bsFixed, bsModelAtoms, iatom, p, pts, allowProjection, isMolecule){ +if (sym == null) sym = this.getSym(iatom); +var npts = bsSelected.cardinality(); +if (npts == 0) return 0; +var n = 0; +var i0 = bsSelected.nextSetBit(0); +if (bsFixed == null) bsFixed = this.vwr.getMotionFixedAtoms(sym, null); +if (bsModelAtoms == null) bsModelAtoms = this.vwr.getModelUndeletedAtomsBitSet(this.vwr.ms.at[i0].mi); +if (pts != null) { +if (npts != pts.length) return 0; +var bs = new JU.BS(); +for (var ip = 0, i = bsSelected.nextSetBit(0); i >= 0; i = bsSelected.nextSetBit(i + 1)) { +bs.clearAll(); +bs.set(i); +n += this.assignMoveAtoms(sym, bs, bsFixed, bsModelAtoms, i, pts[ip++], null, true, isMolecule); +} +return n; +}var nAtoms = bsSelected.cardinality(); +if (bsSelected.intersects(bsFixed)) { +p.x = NaN; +return 0; +}this.addOccupiedAtomsToBitset(bsSelected); +nAtoms = bsSelected.cardinality(); +if (nAtoms == 1 && !isMolecule) { +var bsMoved = this.moveConstrained(iatom, bsFixed, bsModelAtoms, p, true, allowProjection, null); +return (bsMoved == null ? 0 : bsMoved.cardinality()); +}var p1 = JU.P3.newP(p); +p.x = NaN; +if (this.moveConstrained(iatom, bsFixed, bsModelAtoms, p1, false, true, null) == null) { +return 0; +}var vrel = JU.V3.newV(p1); +vrel.sub(this.vwr.ms.at[iatom]); +var apos0 = this.vwr.ms.saveAtomPositions(); +var bsAll = JU.BSUtil.copy(bsSelected); +if (isMolecule) { +var bsTest = JU.BSUtil.copy(bsModelAtoms); +bsTest.andNot(bsSelected); +var bsSites = new JU.BS(); +for (var i = bsSelected.nextSetBit(0); i >= 0; i = bsSelected.nextSetBit(i + 1)) { +bsSites.set(this.vwr.ms.at[i].getAtomSite()); +} +for (var i = bsTest.nextSetBit(0); i >= 0; i = bsTest.nextSetBit(i + 1)) { +if (bsSites.get(this.vwr.ms.at[i].getAtomSite())) { +var bs = this.vwr.ms.getMoleculeBitSetForAtom(i); +n = bs.cardinality(); +if (n > nAtoms) { +nAtoms = n; +bsTest.andNot(bs); +bsAll = bs; +}}} +if (!bsAll.equals(bsSelected)) this.vwr.select(bsAll, false, 0, true); +}var apos = new Array(bsAll.cardinality()); +var maxSite = 0; +for (var i = bsAll.nextSetBit(0); i >= 0; i = bsAll.nextSetBit(i + 1)) { +var s = this.vwr.ms.at[i].getAtomSite(); +if (s > maxSite) maxSite = s; +} +var sites = Clazz.newIntArray (maxSite, 0); +pts = new Array(maxSite); +var bsMoved = new JU.BS(); +for (var ip = 0, i = bsAll.nextSetBit(0); i >= 0; i = bsAll.nextSetBit(i + 1), ip++) { +p1.setT(this.vwr.ms.at[i]); +p1.add(vrel); +apos[ip] = JU.P3.newP(p1); +var s = this.vwr.ms.at[i].getAtomSite() - 1; +if (sites[s] == 0) { +if (this.moveConstrained(i, bsFixed, bsModelAtoms, p1, false, true, bsMoved) == null) { +return 0; +}p1.sub(this.vwr.ms.at[i]); +p1.sub(vrel); +pts[s] = JU.P3.newP(p1); +sites[s] = i + 1; +}} +bsMoved.clearAll(); +for (var i = sites.length; --i >= 0; ) { +var ia = sites[i] - 1; +if (ia >= 0) { +p1.setT(this.vwr.ms.at[ia]); +p1.add(vrel); +if (this.moveConstrained(ia, bsFixed, bsModelAtoms, p1, true, true, bsMoved) == null) { +bsMoved = null; +break; +}}} +n = (bsMoved == null ? 0 : bsMoved.cardinality()); +if (n == 0) { +this.vwr.ms.restoreAtomPositions(apos0); +return 0; +}return (this.checkAtomPositions(apos0, apos, bsAll) ? n : 0); +}, "J.api.SymmetryInterface,JU.BS,JU.BS,JU.BS,~N,JU.P3,~A,~B,~B"); +Clazz.defineMethod(c$, "assignSpaceGroup", +function(sym00, ita00, bs, paramsOrUC, tokens, index, trm, prevNode, sb){ +if (index >= tokens.length) return "invalid CLEG expression!"; +var haveUCParams = (paramsOrUC != null); +if (tokens.length > 1 && haveUCParams) { +return "invalid syntax - can't mix transformations and UNITCELL option!"; +}var token = tokens[index].trim(); +var isSubgroupCalc = token.length == 0 || token.equals("sub") || token.equals("super"); +var calcNext = (isSubgroupCalc ? token : null); +if (isSubgroupCalc) { +token = tokens[++index].trim(); +}var isFinal = (index == tokens.length - 1); +var pt = token.lastIndexOf(":"); +var haveUnitCell = (sym00 != null); +var isUnknown = false; +var haveTransform = (token.length == 0 || token.indexOf(',') > 0 || "!r!h".indexOf(token) >= 0); +var haveJmolSetting = (!haveTransform && pt > 0 && pt < token.length - 1); +var isTransformOnly = (haveTransform && pt < 0); +var transform = (haveTransform ? token.substring(pt + 1) : null); +var trTemp = new JU.M4(); +var restarted = false; +var sym = this.vwr.getSymTemp(); +if (prevNode == null) { +if (!J.modelkit.ModelKit.ClegNode.checkSyntax(tokens, sym)) return "invalid CLEG expression!"; +if (!haveUnitCell && !haveUCParams && (haveTransform || (pt = token.indexOf('.')) > 0)) { +var ita = token.substring(0, pt); +var err = this.assignSpaceGroup(null, null, null, null, Clazz.newArray(-1, [ita]), 0, null, null, sb); +if (err.endsWith("!")) return err; +sym00 = this.vwr.getOperativeSymmetry(); +if (sym00 == null) return "modelkit spacegroup initialization error!"; +haveUnitCell = true; +restarted = true; +}var ita0 = (haveUnitCell ? sym00.getIntTableNumber() : null); +var trm0 = null; +if (haveUnitCell) { +if (ita0 == null || ita0.equals("0")) ita0 = sym00.getClegId(); + else trm0 = sym00.getSpaceGroupInfoObj("itaTransform", null, false, false); +}trm = new JU.M4(); +trm.setIdentity(); +prevNode = new J.modelkit.ModelKit.ClegNode(-1, ita0, trm0); +if (!prevNode.update(this.vwr, null, trm, trTemp, sym)) return prevNode.errString; +}if (isSubgroupCalc) { +prevNode.calcNext = calcNext; +}if (transform != null) { +switch (transform) { +case "r": +case "!h": +transform = "2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c"; +break; +case "h": +case "!r": +transform = "!2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c"; +break; +default: +if (haveJmolSetting) { +pt = 0; +haveTransform = false; +transform = null; +}} +if (pt > 0) token = token.substring(0, pt); +}if (isTransformOnly) { +if (isFinal) { +isUnknown = true; +return "CLEG pathway is incomplete!"; +}if (transform == null || transform.length == 0) transform = "a,b,c"; +sym.convertTransform(transform, trTemp); +if (trm == null) trm = trTemp; + else trm.mul(trTemp); +if (token.length != 0) { +prevNode.addTransform(trTemp); +System.out.println("ModelKit.assignSpaceGroup index=" + index + " trm=" + trm); +}return this.assignSpaceGroup(sym00, ita00, bs, null, tokens, ++index, trm, prevNode, sb); +}var node = new J.modelkit.ModelKit.ClegNode(index, token, transform); +if (!node.update(this.vwr, prevNode, trm, trTemp, sym)) return node.errString; +node.updateTokens(tokens, index); +if (!isFinal) return this.assignSpaceGroup(sym00, ita00, bs, null, tokens, ++index, trm, node, sb); +var params = null; +var oabc = null; +var origin = null; +params = (!haveUCParams || !JU.AU.isAD(paramsOrUC) ? null : paramsOrUC); +if (!haveUnitCell) { +sym.setUnitCellFromParams(params == null ? Clazz.newFloatArray(-1, [10, 10, 10, 90, 90, 90]) : params, false, NaN); +paramsOrUC = null; +haveUCParams = false; +}if (haveUCParams) { +if (JU.AU.isAD(paramsOrUC)) { +params = paramsOrUC; +} else { +oabc = paramsOrUC; +origin = oabc[0]; +}} else if (haveUnitCell) { +sym = sym00; +if (trm == null) { +trm = new JU.M4(); +trm.setIdentity(); +}oabc = sym.getV0abc( Clazz.newArray(-1, [trm]), null); +origin = oabc[0]; +}if (oabc != null) { +params = sym.getUnitCell(oabc, false, "assign").getUnitCellParams(); +if (origin == null) origin = oabc[0]; +}var isP1 = (token.equalsIgnoreCase("P1") || token.equals("ITA/1.1")); +this.clearAtomConstraints(); +try { +if (bs != null && bs.isEmpty()) return "no atoms specified!"; +var bsAtoms = this.vwr.getThisModelAtoms(); +var bsCell = (isP1 ? bsAtoms : JS.SV.getBitSet(this.vwr.evaluateExpressionAsVariable("{within(unitcell)}"), true)); +if (bs == null) { +bs = bsAtoms; +}if (bs != null) { +bsAtoms.and(bs); +if (!isP1) bsAtoms.and(bsCell); +}var noAtoms = bsAtoms.isEmpty(); +var mi = (noAtoms && this.vwr.am.cmi < 0 ? 0 : noAtoms ? this.vwr.am.cmi : this.vwr.ms.at[bsAtoms.nextSetBit(0)].getModelIndex()); +this.vwr.ms.getModelAuxiliaryInfo(mi).remove("spaceGroupInfo"); +if (haveUnitCell) { +sym.replaceTransformMatrix(trm); +}if (params == null) params = sym.getUnitCellMultiplied().getUnitCellParams(); +var sgInfo = (noAtoms && isUnknown ? null : this.vwr.findSpaceGroup(sym, isUnknown ? bsAtoms : null, isUnknown ? null : node.name, params, origin, oabc, 2 | (haveUnitCell ? 0 : 4))); +if (sgInfo == null) { +return "Space group " + node.name + " is unknown or not compatible!"; +}if (oabc == null || !haveUnitCell) oabc = sgInfo.get("unitcell"); +token = sgInfo.get("name"); +var jmolId = sgInfo.get("jmolId"); +var basis = sgInfo.get("basis"); +var sg = sgInfo.remove("sg"); +sym.getUnitCell(oabc, false, null); +sym.setSpaceGroupTo(sg == null ? jmolId : sg); +sym.setSpaceGroupName(token); +if (basis == null) { +basis = sym.removeDuplicates(this.vwr.ms, bsAtoms, true); +}this.vwr.ms.setSpaceGroup(mi, sym, basis); +if (!haveUnitCell || restarted) { +this.appRunScript("unitcell on; center unitcell;axes unitcell; axes 0.1; axes on;set perspectivedepth false;moveto 0 axis c1;draw delete;show spacegroup"); +}transform = sym.staticGetTransformABC(trm, false); +var msg = transform + "\n" + JU.PT.join(tokens, '>', 0) + (basis.isEmpty() ? "" : "\n basis=" + basis); +System.out.println("ModelKit trm=" + msg); +sb.append(msg).append("\n"); +return transform; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +if (!JV.Viewer.isJS) e.printStackTrace(); +return e.getMessage() + "!"; +} else { +throw e; +} +} +}, "J.api.SymmetryInterface,~S,JU.BS,~O,~A,~N,JU.M4,J.modelkit.ModelKit.ClegNode,JU.SB"); +c$.addSGTransform = Clazz.defineMethod(c$, "addSGTransform", +function(sym, tr, trm0, temp){ +if (trm0 == null) { +trm0 = new JU.M4(); +trm0.setIdentity(); +}if (tr != null) { +sym.convertTransform(tr, temp); +trm0.mul(temp); +}return trm0; +}, "J.api.SymmetryInterface,~S,JU.M4,JU.M4"); +Clazz.defineMethod(c$, "checkAtomPositions", +function(apos0, apos, bs){ +var ok = true; +for (var ip = 0, i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1), ip++) { +if (this.vwr.ms.at[i].distanceSquared(apos[ip]) > 0.00000001) { +ok = false; +break; +}} +if (ok) return true; +this.vwr.ms.restoreAtomPositions(apos0); +return false; +}, "~A,~A,JU.BS"); +Clazz.defineMethod(c$, "clearElementKey", +function(modelIndex){ +if (!this.haveElementKeys) return; +var key = J.modelkit.ModelKit.getElementKey(modelIndex) + "*"; +var val = Clazz.newArray(-1, [ Clazz.newArray(-1, ["thisID", key]), Clazz.newArray(-1, ["delete", null])]); +this.vwr.shm.setShapeProperties(22, val); +this.vwr.shm.setShapeProperties(31, val); +switch (modelIndex) { +case -2: +break; +case -1: +this.bsElementKeyModels.clearAll(); +break; +default: +this.bsElementKeyModels.clear(modelIndex); +break; +} +this.haveElementKeys = !this.bsElementKeyModels.isEmpty(); +}, "~N"); +Clazz.defineMethod(c$, "clickProcessAtom", +function(atomIndex){ +switch (this.getMKState()) { +case 0: +return this.vwr.isModelkitPickingRotateBond(); +case 1: +this.centerAtomIndex = atomIndex; +if (this.getSymViewState() == 0) this.setSymViewState(8); +this.showXtalSymmetry(); +return true; +case 2: +if (atomIndex == this.centerAtomIndex) return true; +J.modelkit.ModelKit.notImplemented("edit click"); +return false; +} +J.modelkit.ModelKit.notImplemented("atom click unknown XTAL state"); +return false; +}, "~N"); +Clazz.defineMethod(c$, "clickProcessMode", +function(action){ +this.processMKPropertyItem(action, false); +}, "~S"); +Clazz.defineMethod(c$, "clickProcessSel", +function(action){ +if (action === "mksel_atom") { +this.centerPoint = null; +this.centerAtomIndex = -1; +this.secondAtomIndex = -1; +} else if (action === "mksel_position") { +var pos = this.promptUser("Enter three fractional coordinates", this.lastCenter); +if (pos == null) return; +this.lastCenter = pos; +var p = J.modelkit.ModelKit.pointFromTriad(pos); +if (p == null) { +this.clickProcessSel(action); +return; +}this.centerAtomIndex = -2147483647; +this.centerPoint = p; +this.showXtalSymmetry(); +}}, "~S"); +Clazz.defineMethod(c$, "clickProcessSelOp", +function(action){ +this.secondAtomIndex = -1; +if (action === "mkselop_addoffset") { +var pos = this.promptUser("Enter i j k for an offset for viewing the operator - leave blank to clear", this.lastOffset); +if (pos == null) return null; +this.lastOffset = pos; +if (pos.length == 0 || pos === "none") { +this.setProperty("offset", "none"); +return null; +}var p = J.modelkit.ModelKit.pointFromTriad(pos); +if (p == null) { +return action; +}this.setProperty("offset", p); +} else if (action === "mkselop_atom2") { +J.modelkit.ModelKit.notImplemented(action); +}return null; +}, "~S"); +Clazz.defineMethod(c$, "clickProcessSym", +function(action){ +if (action === "mksymmetry_none") { +this.setSymEdit(0); +} else { +this.processMKPropertyItem(action, false); +}}, "~S"); +Clazz.defineMethod(c$, "clickProcessUC", +function(action){ +this.processMKPropertyItem(action, false); +this.showXtalSymmetry(); +}, "~S"); +Clazz.defineMethod(c$, "connectAtoms", +function(bd, bondOrder, bs1, bs2){ +this.vwr.makeConnections((bd - 0.01), (bd + 0.01), bondOrder, 1073742026, bs1, bs2, new JU.BS(), false, false, 0); +}, "~N,~N,JU.BS,JU.BS"); +Clazz.defineMethod(c$, "fillPointsForMove", +function(sg, bseq, i0, a, pt, points){ +var d = a.distance(pt); +var fa = JU.P3.newP(a); +var fb = JU.P3.newP(pt); +sg.toFractional(fa, false); +sg.toFractional(fb, false); +for (var k = 0, i = i0; i >= 0; i = bseq.nextSetBit(i + 1)) { +var p = JU.P3.newP(this.vwr.ms.at[i]); +var p0 = JU.P3.newP(p); +sg.toFractional(p, false); +var m = sg.getTransform(fa, p, false); +if (m == null) { +return false; +}var p2 = JU.P3.newP(fb); +m.rotTrans(p2); +sg.toCartesian(p2, false); +if (Math.abs(d - p0.distance(p2)) > 0.001) return false; +points[k++] = p2; +} +fa.setT(points[0]); +sg.toFractional(fa, false); +for (var k = points.length; --k >= 0; ) { +fb.setT(points[k]); +sg.toFractional(fb, false); +var m = sg.getTransform(fa, fb, false); +if (m == null) { +return false; +}for (var i = points.length; --i > k; ) { +if (points[i].distance(points[k]) < 0.1) return false; +} +} +return true; +}, "J.api.SymmetryInterface,JU.BS,~N,JU.P3,JU.P3,~A"); +Clazz.defineMethod(c$, "getBondLabel", +function(atoms){ +return atoms[Math.min(this.bondAtomIndex1, this.bondAtomIndex2)].getAtomName() + "-" + atoms[Math.max(this.bondAtomIndex1, this.bondAtomIndex2)].getAtomName(); +}, "~A"); +Clazz.defineMethod(c$, "getBondOrder", +function(type, bond){ +if (type == '-') type = this.pickBondAssignType; +var bondOrder = type.charCodeAt(0) - 48; +switch ((type).charCodeAt(0)) { +case 48: +case 49: +case 50: +case 51: +case 52: +case 53: +break; +case 112: +case 109: +bondOrder = (JU.Edge.getBondOrderNumberFromOrder(bond.getCovalentOrder()).charAt(0)).charCodeAt(0) - 48 + (type == 'p' ? 1 : -1); +if (bondOrder > 3) bondOrder = 1; + else if (bondOrder < 0) bondOrder = 3; +break; +default: +return -1; +} +return bondOrder; +}, "~S,JM.Bond"); +Clazz.defineMethod(c$, "getHoverLabel", +function(atomIndex){ +var state = this.getMKState(); +var msg = null; +switch (state) { +case 1: +if (this.symop == null) this.symop = Integer.$valueOf(1); +msg = "view symop " + this.symop + " for " + this.vwr.getAtomInfo(atomIndex); +break; +case 2: +msg = "start editing for " + this.vwr.getAtomInfo(atomIndex); +break; +case 0: +var atoms = this.vwr.ms.at; +if (this.isRotateBond) { +this.setBranchAtom(atomIndex, false); +msg = (this.branchAtomIndex >= 0 ? "rotate branch " + atoms[atomIndex].getAtomName() : "rotate bond for " + this.getBondLabel(atoms)); +}if (this.bondIndex < 0) { +if (this.atomHoverLabel.length <= 2) { +msg = this.atomHoverLabel = "Click to change to " + this.atomHoverLabel + " or drag to add " + this.atomHoverLabel; +} else { +msg = atoms[atomIndex].getAtomName() + ": " + this.atomHoverLabel; +this.vwr.highlight(JU.BSUtil.newAndSetBit(atomIndex)); +}} else { +if (msg == null) { +switch (this.isRotateBond ? this.bsHighlight.cardinality() : atomIndex >= 0 ? 1 : -1) { +case 0: +this.vwr.highlight(JU.BSUtil.newAndSetBit(atomIndex)); +case 1: +case 2: +var a = this.vwr.ms.at[atomIndex]; +if (!this.isRotateBond) { +this.menu.setActiveMenu("atomMenu"); +if (this.vwr.acm.getAtomPickingMode() == 1) return null; +}if (this.atomHoverLabel.indexOf("charge") >= 0) { +var ch = a.getFormalCharge(); +ch += (this.atomHoverLabel.indexOf("increase") >= 0 ? 1 : -1); +msg = this.atomHoverLabel + " to " + (ch > 0 ? "+" : "") + ch; +} else { +msg = this.atomHoverLabel; +}msg = atoms[atomIndex].getAtomName() + ": " + msg; +break; +case -1: +msg = (this.bondHoverLabel.length == 0 ? "" : this.bondHoverLabel + " for ") + this.getBondLabel(atoms); +break; +} +}}break; +} +return msg; +}, "~N"); +Clazz.defineMethod(c$, "getinfo", +function(){ +var info = new java.util.Hashtable(); +this.addInfo(info, "addHydrogens", Boolean.$valueOf(this.addHydrogens)); +this.addInfo(info, "autobond", Boolean.$valueOf(this.autoBond)); +this.addInfo(info, "clickToSetElement", Boolean.$valueOf(this.clickToSetElement)); +this.addInfo(info, "hidden", Boolean.$valueOf(this.menu.hidden)); +this.addInfo(info, "showSymopInfo", Boolean.$valueOf(this.showSymopInfo)); +this.addInfo(info, "centerPoint", this.centerPoint); +this.addInfo(info, "centerAtomIndex", Integer.$valueOf(this.centerAtomIndex)); +this.addInfo(info, "secondAtomIndex", Integer.$valueOf(this.secondAtomIndex)); +this.addInfo(info, "symop", this.symop); +this.addInfo(info, "offset", this.viewOffset); +this.addInfo(info, "drawData", this.drawData); +this.addInfo(info, "drawScript", this.drawScript); +this.addInfo(info, "isMolecular", Boolean.$valueOf(this.getMKState() == 0)); +return info; +}); +c$.getNearestBondedAtom = Clazz.defineMethod(c$, "getNearestBondedAtom", +function(a1, butNotThis){ +var b = a1.bonds; +var a2; +var ret = null; +var zmin = 2147483647; +for (var i = a1.getBondCount(); --i >= 0; ) { +if (b[i] != null && b[i].isCovalent() && (a2 = b[i].getOtherAtom(a1)) !== butNotThis && a2.sZ < zmin) { +zmin = a2.sZ; +ret = a2; +}} +return ret; +}, "JM.Atom,JM.Atom"); +Clazz.defineMethod(c$, "handleAtomDragging", +function(countPlusIndices){ +switch (this.getMKState()) { +case 0: +return false; +case 2: +if (countPlusIndices[0] > 2) return true; +J.modelkit.ModelKit.notImplemented("drag atom for XTAL edit"); +break; +case 1: +if (this.getSymViewState() == 0) this.setSymViewState(8); +switch (countPlusIndices[0]) { +case 1: +this.centerAtomIndex = countPlusIndices[1]; +this.secondAtomIndex = -1; +break; +case 2: +this.centerAtomIndex = countPlusIndices[1]; +this.secondAtomIndex = countPlusIndices[2]; +break; +} +this.showXtalSymmetry(); +return true; +} +return true; +}, "~A"); +Clazz.defineMethod(c$, "handleAtomOrBondPicked", +function(x, y, mp, dragAtomIndex, atomType, inRange){ +var isCharge = this.$isPickAtomAssignCharge; +if (mp != null && mp.count == 2) { +this.vwr.undoMoveActionClear(-1, 4146, true); +var a = mp.getAtom(1); +var b = mp.getAtom(2); +var bond = a.getBond(b); +if (bond == null) { +this.cmdAssignConnect(a.i, b.i, '1', "click"); +} else { +this.cmdAssignBond(bond.index, 'p', "click"); +}} else { +if (atomType.equals("Xx")) { +atomType = this.lastElementType; +}if (inRange) { +this.vwr.undoMoveActionClear(dragAtomIndex, 4, true); +} else { +this.vwr.undoMoveActionClear(-1, 4146, true); +}var a = this.vwr.ms.at[dragAtomIndex]; +var wasH = (a != null && a.getElementNumber() == 1); +this.clickAssignAtom(dragAtomIndex, atomType, null); +if (isCharge) { +this.appRunScript("{atomindex=" + dragAtomIndex + "}.label='%C'"); +} else { +this.vwr.undoMoveActionClear(-1, 4146, true); +if (a == null || inRange) return false; +if (wasH) { +this.clickAssignAtom(dragAtomIndex, "X", null); +} else { +var ptNew = JU.P3.new3(x, y, a.sZ); +this.vwr.tm.unTransformPoint(ptNew, ptNew); +this.clickAssignAtom(dragAtomIndex, atomType, ptNew); +}}}return true; +}, "~N,~N,JM.MeasurementPending,~N,~S,~B"); +Clazz.defineMethod(c$, "minimizeXtal", +function(eval, bsBasis, steps, crit, rangeFixed, flags){ +this.minBasisModel = this.vwr.am.cmi; +this.minSelectionSaved = this.vwr.bsA(); +this.vwr.am.setFrame(this.minBasisModel); +this.minBasis = bsBasis; +this.minBasisFixed = this.vwr.getMotionFixedAtoms(null, null); +this.minBasisModelAtoms = this.vwr.getModelUndeletedAtomsBitSet(this.minBasisModel); +var cif = this.vwr.getModelExtract(bsBasis, false, false, "cif"); +var tempModelIndex = this.vwr.ms.mc; +var htParams = new java.util.Hashtable(); +htParams.put("eval", eval); +htParams.put("lattice", JU.P3.new3(444, 666, 1)); +htParams.put("fileData", cif); +htParams.put("loadScript", new JU.SB()); +if (this.vwr.loadModelFromFile(null, " ", null, null, true, htParams, null, null, 0, " ") != null) return; +var bsBasis2 = JU.BSUtil.copy(this.vwr.ms.am[tempModelIndex].bsAsymmetricUnit); +this.minTempModelAtoms = this.vwr.getModelUndeletedAtomsBitSet(tempModelIndex); +this.vwr.am.setFrame(tempModelIndex); +this.minTempFixed = JU.BSUtil.copy(this.minTempModelAtoms); +this.minTempFixed.andNot(bsBasis2); +this.vwr.getMotionFixedAtoms(null, this.minTempFixed); +this.vwr.minimize(eval, steps, crit, JU.BSUtil.copy(bsBasis2), this.minTempFixed, this.minTempModelAtoms, rangeFixed, flags & -257); +}, "J.api.JmolScriptEvaluator,JU.BS,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "minimizeXtalEnd", +function(bsBasis2, isEnd){ +if (this.minBasis == null) return; +if (bsBasis2 != null) { +var pts = new Array(bsBasis2.cardinality()); +for (var p = 0, j = this.minBasis.nextSetBit(0), i = bsBasis2.nextSetBit(0); i >= 0; i = bsBasis2.nextSetBit(i + 1), j = this.minBasis.nextSetBit(j + 1)) { +pts[p++] = JU.P3.newP(this.vwr.ms.at[i].getXYZ()); +} +var bs = JU.BSUtil.copy(this.minBasis); +bs.andNot(this.minBasisFixed); +this.assignMoveAtoms(null, bs, this.minBasisFixed, this.minBasisModelAtoms, this.minBasis.nextSetBit(0), null, pts, true, false); +}if (isEnd) { +this.minSelectionSaved = null; +this.minBasis = null; +this.minBasisFixed = null; +this.minTempFixed = null; +this.minTempModelAtoms = null; +this.minBasisModelAtoms = null; +this.minBasisAtoms = null; +this.modelSyms = null; +this.vwr.deleteModels(this.vwr.ms.mc - 1, null); +this.vwr.setSelectionSet(this.minSelectionSaved); +this.vwr.setCurrentModelIndex(this.minBasisModel); +}}, "JU.BS,~B"); +Clazz.defineMethod(c$, "moveConstrained", +function(iatom, bsFixed, bsModelAtoms, ptNew, doAssign, allowProjection, bsMoved){ +var sym = this.getSym(iatom); +if (sym == null) { +return null; +}if (bsMoved == null) bsMoved = JU.BSUtil.newAndSetBit(iatom); +var a = this.vwr.ms.at[iatom]; +var c = this.constraint; +var minv = null; +if (c == null) { +c = this.setConstraint(sym, iatom, J.modelkit.ModelKit.GET_CREATE); +if (c.type == 6) { +iatom = -1; +} else { +var b = this.getBasisAtom(iatom); +if (a !== b) { +var m = J.modelkit.ModelKit.getTransform(sym, a, b); +if (m == null) { +System.err.println("ModelKit - null matrix for " + iatom + " " + a + " to " + b); +iatom = -1; +} else { +if (!doAssign) { +minv = JU.M4.newM4(m); +minv.invert(); +}iatom = b.i; +var p = JU.P3.newP(ptNew); +sym.toFractional(p, false); +m.rotTrans(p); +sym.toCartesian(p, false); +ptNew.setT(p); +}}if (iatom >= 0) c.constrain(b, ptNew, allowProjection); +}} else { +c.constrain(a, ptNew, allowProjection); +}if (iatom >= 0 && !Float.isNaN(ptNew.x)) { +if (!doAssign) { +if (minv != null) { +var p = JU.P3.newP(ptNew); +sym.toFractional(p, false); +minv.rotTrans(p); +sym.toCartesian(p, false); +ptNew.setP(p); +}return bsMoved; +}if (this.assignMoveAtom(iatom, ptNew, bsFixed, bsModelAtoms, bsMoved) == 0) bsMoved = null; +}ptNew.x = NaN; +return bsMoved; +}, "~N,JU.BS,JU.BS,JU.P3,~B,~B,JU.BS"); +Clazz.defineMethod(c$, "promptUser", +function(msg, def){ +return this.vwr.prompt(msg, def, null, false); +}, "~S,~S"); +Clazz.defineMethod(c$, "resetBondFields", +function(){ +this.bsRotateBranch = null; +this.branchAtomIndex = this.bondAtomIndex1 = this.bondAtomIndex2 = -1; +}); +Clazz.defineMethod(c$, "rotateAtoms", +function(bsAtoms, points, endDegrees){ +var center = points[0]; +var p = new JU.P3(); +var i0 = bsAtoms.nextSetBit(0); +var sg = this.getSym(i0); +var bsAU = new JU.BS(); +var bsToMove = new JU.BS(); +for (var i = i0; i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var bai = this.getBasisAtom(i).i; +if (bsAU.get(bai)) { +continue; +}if (this.setConstraint(sg, bai, J.modelkit.ModelKit.GET_CREATE).type == 6) { +return 0; +}bsAU.set(bai); +bsToMove.set(i); +} +var nAtoms = bsAtoms.cardinality(); +var apos0 = this.vwr.ms.saveAtomPositions(); +var m = JU.Quat.newVA(JU.V3.newVsub(points[1], points[0]), endDegrees).getMatrix(); +var vt = new JU.V3(); +var apos = new Array(nAtoms); +for (var ip = 0, i = i0; i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var a = this.vwr.ms.at[i]; +p = apos[ip++] = JU.P3.newP(a); +vt.sub2(p, center); +m.rotate(vt); +p.add2(center, vt); +this.setConstraint(sg, i, J.modelkit.ModelKit.GET_CREATE).constrain(a, p, false); +if (Float.isNaN(p.x)) return 0; +} +nAtoms = 0; +var bsFixed = this.vwr.getMotionFixedAtoms(sg, null); +var bsModelAtoms = this.vwr.getModelUndeletedAtomsBitSet(this.vwr.ms.at[i0].mi); +var bsMoved = new JU.BS(); +for (var ip = 0, i = i0; i >= 0; i = bsToMove.nextSetBit(i + 1), ip++) { +nAtoms += this.assignMoveAtom(i, apos[ip], bsFixed, bsModelAtoms, bsMoved); +} +var bs = JU.BSUtil.copy(bsAtoms); +bs.andNot(bsToMove); +return (this.checkAtomPositions(apos0, apos, bs) ? nAtoms : 0); +}, "JU.BS,~A,~N"); +Clazz.defineMethod(c$, "runScriptBuffered", +function(script){ +var sb = new JU.SB(); +try { +(this.vwr.eval).runBufferedSafely(script, sb); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +} else { +throw e; +} +} +return sb.toString(); +}, "~S"); +Clazz.defineMethod(c$, "setBondIndex", +function(index, isRotate){ +if (!isRotate && this.vwr.isModelkitPickingRotateBond()) { +this.setProperty("rotatebondindex", Integer.$valueOf(index)); +return; +}var haveBond = (this.bondIndex >= 0); +if (!haveBond && index < 0) return; +if (index < 0) { +this.resetBondFields(); +return; +}this.bsRotateBranch = null; +this.branchAtomIndex = -1; +this.bondIndex = index; +this.isRotateBond = isRotate; +this.bondAtomIndex1 = this.vwr.ms.bo[index].getAtomIndex1(); +this.bondAtomIndex2 = this.vwr.ms.bo[index].getAtomIndex2(); +this.menu.setActiveMenu("bondMenu"); +}, "~N,~B"); +Clazz.defineMethod(c$, "setBranchAtom", +function(atomIndex, isClick){ +var isBondedAtom = (atomIndex == this.bondAtomIndex1 || atomIndex == this.bondAtomIndex2); +if (isBondedAtom) { +this.branchAtomIndex = atomIndex; +this.bsRotateBranch = null; +} else { +this.bsRotateBranch = null; +this.branchAtomIndex = -1; +}}, "~N,~B"); +Clazz.defineMethod(c$, "setDefaultState", +function(mode){ +if (!this.hasUnitCell) mode = 0; +if (!this.hasUnitCell || this.isXtalState() != this.hasUnitCell) { +this.setMKState(mode); +switch (mode) { +case 0: +break; +case 1: +if (this.getSymViewState() == 0) this.setSymViewState(8); +break; +case 2: +break; +} +}}, "~N"); +Clazz.defineMethod(c$, "isElementKeyOn", +function(modelIndex){ +var data = Clazz.newArray(-1, [J.modelkit.ModelKit.getElementKey(modelIndex) + "*", null]); +this.vwr.shm.getShapePropertyData(31, "checkID", data); +return (data[1] != null); +}, "~N"); +Clazz.defineMethod(c$, "updateElementKeyFromStateScript", +function(){ +for (var i = this.vwr.ms.mc; --i >= 0; ) { +if (this.isElementKeyOn(i)) { +this.bsElementKeyModels.set(i); +this.haveElementKeys = true; +}} +}); +Clazz.defineMethod(c$, "setElementKey", +function(modelIndex, isOn){ +if (isOn && (modelIndex >= 0 && this.bsElementKeyModels.get(modelIndex))) return; +this.clearElementKey(modelIndex); +if (!isOn || modelIndex < 0) return; + new J.modelkit.ModelKit.EKey(this.vwr, modelIndex).draw(this.vwr); +this.bsElementKeyModels.set(modelIndex); +this.haveElementKeys = true; +}, "~N,~B"); +Clazz.defineMethod(c$, "setSymEdit", +function(bits){ +this.state = (this.state & -225) | bits; +}, "~N"); +Clazz.defineMethod(c$, "setSymViewState", +function(bits){ +this.state = (this.state & -29) | bits; +}, "~N"); +Clazz.defineMethod(c$, "setUnitCell", +function(bits){ +this.state = (this.state & -1793) | bits; +}, "~N"); +Clazz.defineMethod(c$, "showSymop", +function(symop){ +this.secondAtomIndex = -1; +this.symop = symop; +this.showXtalSymmetry(); +}, "~O"); +Clazz.defineMethod(c$, "showXtalSymmetry", +function(){ +var script = null; +switch (this.getSymViewState()) { +case 0: +script = "draw * delete"; +break; +case 8: +default: +var offset = null; +if (this.secondAtomIndex >= 0) { +script = "draw ID sym symop " + (this.centerAtomIndex < 0 ? this.centerPoint : " {atomindex=" + this.centerAtomIndex + "}") + " {atomindex=" + this.secondAtomIndex + "}"; +} else { +offset = this.viewOffset; +if (this.symop == null) this.symop = Integer.$valueOf(1); +var iatom = (this.centerAtomIndex >= 0 ? this.centerAtomIndex : this.centerPoint != null ? -1 : this.iatom0); +script = "draw ID sym symop " + (this.symop == null ? "1" : (typeof(this.symop)=='string') ? "'" + this.symop + "'" : JU.PT.toJSON(null, this.symop)) + (iatom < 0 ? this.centerPoint : " {atomindex=" + iatom + "}") + (offset == null ? "" : " offset " + offset); +}this.drawData = this.runScriptBuffered(script); +this.drawScript = script; +this.drawData = (this.showSymopInfo ? this.drawData.substring(0, this.drawData.indexOf("\n") + 1) : ""); +this.appRunScript(";refresh;set echo top right;echo " + this.drawData.$replace('\t', ' ')); +break; +} +}); +Clazz.defineMethod(c$, "updateElementKey", +function(bsAtoms){ +if (bsAtoms == null) { +this.updateModelElementKey(this.vwr.am.cmi, true); +return; +}if (bsAtoms.cardinality() == 1) { +this.updateModelElementKey(this.vwr.ms.at[bsAtoms.nextSetBit(0)].mi, true); +return; +}for (var i = this.vwr.ms.mc; --i >= 0; ) { +if (this.vwr.ms.am[i].bsAtoms.intersects(bsAtoms)) { +this.updateModelElementKey(i, true); +}} +}, "JU.BS"); +Clazz.defineMethod(c$, "updateModelElementKeys", +function(bsModels, forceNew){ +if (bsModels == null) bsModels = JU.BSUtil.newBitSet2(0, this.vwr.ms.mc); +for (var i = bsModels.nextSetBit(0); i >= 0; i = bsModels.nextSetBit(i + 1)) { +this.updateModelElementKey(i, forceNew); +} +}, "JU.BS,~B"); +Clazz.defineMethod(c$, "updateModelElementKey", +function(modelIndex, forceNew){ +if (this.doUpdateElementKey(modelIndex)) { +if (forceNew) this.clearElementKey(modelIndex); +this.setElementKey(modelIndex, true); +}}, "~N,~B"); +Clazz.defineMethod(c$, "doUpdateElementKey", +function(modelIndex){ +return modelIndex >= 0 && !this.vwr.ms.isJmolDataFrameForModel(modelIndex) && !this.bsElementKeyModelsOFF.get(modelIndex) && (this.$setElementKeys || this.bsElementKeyModels.get(modelIndex) || this.isElementKeyOn(modelIndex)); +}, "~N"); +Clazz.defineMethod(c$, "setElementKeys", +function(isOn){ +this.$setElementKeys = isOn; +if (isOn) { +this.clearElementKeysOFF(); +}this.clearElementKey(-1); +if (isOn) { +this.updateModelElementKeys(null, false); +}}, "~B"); +Clazz.defineMethod(c$, "clearElementKeysOFF", +function(){ +this.bsElementKeyModelsOFF.clearAll(); +}); +Clazz.defineMethod(c$, "transformAtomsToUnitCell", +function(sym, oabc, ucname){ +var bsAtoms = this.vwr.getThisModelAtoms(); +var n = bsAtoms.cardinality(); +var isReset = (sym == null || n == 0); +if (!isReset) { +var a = this.vwr.ms.at; +var fxyz = this.getFractionalCoordinates(sym, bsAtoms); +this.vwr.ms.setModelCagePts(-1, oabc, ucname); +sym = this.vwr.getCurrentUnitCell(); +for (var j = bsAtoms.nextSetBit(0), k = 0; j >= 0; j = bsAtoms.nextSetBit(j + 1), k++) { +a[j].setT(fxyz[k]); +this.vwr.toCartesianUC(sym, a[j], false); +} +this.vwr.ms.setTaintedAtoms(bsAtoms, 2); +}return isReset; +}, "J.api.SymmetryInterface,~A,~S"); +Clazz.defineMethod(c$, "getFractionalCoordinates", +function(sym, bsAtoms){ +var n = bsAtoms.cardinality(); +var a = this.vwr.ms.at; +var fxyz = new Array(n); +for (var j = bsAtoms.nextSetBit(0), k = 0; j >= 0; j = bsAtoms.nextSetBit(j + 1), k++) { +fxyz[k] = JU.P3.newP(a[j]); +this.vwr.toFractionalUC(sym, fxyz[k], false); +} +return fxyz; +}, "J.api.SymmetryInterface,JU.BS"); +Clazz.defineMethod(c$, "updateDrawAtomSymmetry", +function(mode, atoms){ +if (this.drawAtomSymmetry == null) return; +var cmd = ""; +for (var i = this.drawAtomSymmetry.size(); --i >= 0; ) { +var a = this.drawAtomSymmetry.get(i); +if (mode === "deleteModelAtoms" ? atoms.get(a.bsAtoms.nextSetBit(0)) : atoms.intersects(a.bsAtoms)) { +switch (mode) { +case "deleteModelAtoms": +case "atomsDeleted": +System.out.println("remove deleteatoms " + atoms + " " + a.bsAtoms + a.id); +this.drawAtomSymmetry.removeItemAt(i); +break; +case "atomsMoved": +try { +if (!this.checkDrawID(a.id)) { +this.drawAtomSymmetry.removeItemAt(i); +} else { +cmd += a.cmd + "#quiet" + "\n"; +}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +} else { +throw e; +} +} +break; +} +if (this.drawAtomSymmetry.size() == 0) this.drawAtomSymmetry = null; +}if (cmd.length > 0) this.vwr.evalStringGUI(cmd); +} +}, "~S,JU.BS"); +Clazz.defineMethod(c$, "checkDrawID", +function(id){ +var o = Clazz.newArray(-1, [id + "*", null]); +var exists = this.vwr.shm.getShapePropertyData(22, "checkID", o); +return (exists && o[1] != null); +}, "~S"); +Clazz.defineMethod(c$, "drawSymop", +function(a1, a2){ +var s = "({" + a1 + "}) ({" + a2 + "}) "; +var cmd = "draw ID 'sym' symop " + s; +this.vwr.evalStringGUI(cmd); +}, "~N,~N"); +Clazz.defineMethod(c$, "addAtomSet", +function(data){ +var tokens = JU.PT.split(data, "|"); +var id = tokens[0]; +this.clearAtomSets(id); +var a1 = JU.PT.parseInt(tokens[1]); +var a2 = JU.PT.parseInt(tokens[2]); +var cmd = tokens[3]; +var bs = JU.BSUtil.newAndSetBit(a1); +bs.set(a2); +if (this.drawAtomSymmetry == null) { +this.drawAtomSymmetry = new JU.Lst(); +}this.drawAtomSymmetry.addLast(Clazz.innerTypeInstance(J.modelkit.ModelKit.DrawAtomSet, this, null, bs, id, cmd)); +}, "~S"); +Clazz.defineMethod(c$, "clearAtomSets", +function(id){ +if (this.drawAtomSymmetry == null) return; +for (var i = this.drawAtomSymmetry.size(); --i >= 0; ) { +var a = this.drawAtomSymmetry.get(i); +if (a.id.equals(id)) { +this.drawAtomSymmetry.remove(i); +return; +}} +}, "~S"); +Clazz.defineMethod(c$, "drawUnitCell", +function(id, ucLattice, swidth){ +var sym = this.vwr.getOperativeSymmetry(); +if (sym == null) return; +var uc = this.vwr.getSymTemp().getUnitCell(sym.getUnitCellVectors(), false, "draw"); +uc.setOffsetPt(ucLattice); +var cellRange = Clazz.newArray(-1, [ new JU.P3(), new JU.P3()]); +var s = ""; +if (id == null) id = "uclat"; +var val = Clazz.newArray(-1, [ Clazz.newArray(-1, ["thisID", id + "*"]), Clazz.newArray(-1, ["delete", null])]); +this.vwr.shm.setShapeProperties(22, val); +JU.SimpleUnitCell.getCellRange(ucLattice, cellRange); +for (var p = 1, x = Clazz.floatToInt(cellRange[0].x); x < cellRange[1].x; x++) { +for (var y = Clazz.floatToInt(cellRange[0].y); y < cellRange[1].y; y++) { +for (var z = Clazz.floatToInt(cellRange[0].z); z < cellRange[1].z; z++, p++) { +s += "\ndraw ID " + JU.PT.esc(id + "_" + p) + " " + swidth + " unitcell \"a,b,c;" + x + "," + y + "," + z + "\""; +} +} +} +s += this.getDrawAxes(id, swidth); +this.appRunScript(s); +}, "~S,JU.T3,~S"); +Clazz.defineMethod(c$, "drawAxes", +function(id, swidth){ +var s = this.getDrawAxes(id, swidth); +if (s.length > 0) this.appRunScript(s); +}, "~S,~S"); +Clazz.defineMethod(c$, "getDrawAxes", +function(id, swidth){ +if (this.vwr.g.axesMode != 603979808 || this.vwr.shm.getShapePropertyIndex(34, "axesTypeXY", 0) === Boolean.TRUE) return ""; +if (id == null) id = "uca"; +if (swidth.indexOf(".") > 0) swidth += "05"; +var origin = this.vwr.shm.getShapePropertyIndex(34, "originPoint", 0); +var axisPoints = this.vwr.shm.getShapePropertyIndex(34, "axisPoints", 0); +var s = ""; +var colors = Clazz.newArray(-1, ["red", "green", "blue"]); +for (var i = 0, a = 6; i < 3; i++, a++) { +s += "\ndraw ID " + JU.PT.esc(id + "_axis_" + JV.JC.axisLabels[a]) + " " + swidth + " line " + origin + " " + axisPoints[i] + " color " + colors[i]; +} +return s; +}, "~S,~S"); +Clazz.defineMethod(c$, "drawSymmetry", +function(thisId, isSymop, iatom, xyz, iSym, trans, center, target, intScale, nth, options, opList, isModelkit){ +var s = null; +if (options != 0) { +var o = this.vwr.getSymmetryInfo(iatom, xyz, iSym, trans, center, target, 134217751, null, intScale / 100, nth, options, opList); +if (Clazz.instanceOf(o,"JU.P3")) target = o; + else s = ""; +}if (thisId == null) thisId = (isSymop ? "sym" : "sg"); +if (s == null) s = this.vwr.getSymmetryInfo(iatom, xyz, iSym, trans, center, target, 135176, thisId, Clazz.doubleToInt(intScale / 100), nth, options, opList); +if (s != null) { +s = "draw ID " + (isSymop ? "sg" : "sym") + "* delete;" + s; +s = "draw ID " + thisId + "* delete;" + s; +}if (isModelkit) s += ";draw ID sg_xes axes 0.05;"; +return s; +}, "~S,~B,~N,~S,~N,JU.P3,JU.P3,JU.P3,~N,~N,~N,~A,~B"); +c$.$ModelKit$DrawAtomSet$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +this.bsAtoms = null; +this.cmd = null; +this.id = null; +Clazz.instantialize(this, arguments);}, J.modelkit.ModelKit, "DrawAtomSet", null); +Clazz.makeConstructor(c$, +function(bs, id, cmd){ +this.bsAtoms = bs; +this.cmd = cmd; +this.id = id; +}, "JU.BS,~S,~S"); +/*eoif4*/})(); +}; +/*if3*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.name = null; +this.setting = null; +this.myTrm = null; +this.myIta = null; +this.isITA = false; +this.isHM = false; +this.hallSymbol = null; +this.errString = null; +this.trLink = null; +this.index = 0; +this.calcNext = null; +this.calculated = null; +Clazz.instantialize(this, arguments);}, J.modelkit.ModelKit, "ClegNode", null); +Clazz.makeConstructor(c$, +function(index, name, setting){ +if (name == null) return; +this.index = index; +this.setting = (setting == null ? "a,b,c" : setting); +var pt; +this.isITA = name.startsWith("ITA/"); +if (this.isITA) { +name = name.substring(4); +}this.isHM = false; +this.hallSymbol = null; +if (name.charAt(0) == '[') { +pt = name.indexOf(']'); +if (pt < 0) { +this.errString = "invalid Hall symbol: " + name + "!"; +return; +}this.hallSymbol = name.substring(1, pt); +name = "Hall:" + this.hallSymbol; +} else if (name.startsWith("HM:")) { +this.isHM = true; +} else if (name.length <= 3) { +this.isITA = true; +for (var i = name.length; --i >= 0; ) { +if (!JU.PT.isDigit(name.charAt(i))) { +this.isITA = false; +break; +}} +if (this.isITA) { +name += ".1"; +}}if (!this.isITA && this.hallSymbol == null && !this.isHM) { +pt = (JU.PT.isDigit(name.charAt(0)) ? name.indexOf(" ") : -1); +if (pt > 0) name = name.substring(0, pt); +if (name.indexOf('.') > 0 && !Float.isNaN(JU.PT.parseFloat(name))) { +this.isITA = true; +if (!name.endsWith(".1") && setting != null) { +this.errString = "Space group ITA/" + name + " n.m syntax cannot be used with a setting!"; +return; +}}}this.name = name; +}, "~N,~S,~S"); +Clazz.defineMethod(c$, "addTransform", +function(trm){ +if (this.trLink == null) { +this.trLink = new JU.M4(); +this.trLink.setIdentity(); +}this.trLink.mul(trm); +}, "JU.M4"); +Clazz.defineMethod(c$, "update", +function(vwr, prevNode, trm, trTemp, sym){ +if (this.errString != null) return false; +if (this.name == null) return true; +if (this.isITA) { +this.myTrm = (this.name.endsWith(".1") ? "a,b,c" : sym.getITASettingValue(vwr, this.name, "trm")); +if (this.myTrm == null) { +this.errString = "Unknown ITA setting: " + this.name + "!"; +return false; +}var tokens = JU.PT.split(this.name, "."); +this.myIta = tokens[0]; +this.name = "ITA/" + this.myIta + ":" + (this.myTrm == null || this.myTrm.equals("a,b,c") ? this.setting : this.myTrm); +} else if (this.hallSymbol != null) { +if (sym.getSpaceGroupInfoObj("nameToXYZList", "Hall:" + this.hallSymbol, false, false) == null) { +this.errString = "Invalid Hall notation: " + this.hallSymbol; +return false; +}var pt = this.hallSymbol.indexOf("("); +if (pt > 0) { +var vabc = JU.PT.split(this.hallSymbol.substring(pt + 1, this.hallSymbol.length - 1), " "); +this.hallSymbol = this.hallSymbol.substring(0, pt).trim(); +var v = JU.P3.new3(-JU.PT.parseFloat(vabc[0]) / 12, -JU.PT.parseFloat(vabc[1]) / 12, -JU.PT.parseFloat(vabc[2]) / 12); +this.setting = "a,b,c;" + sym.staticToRationalXYZ(v, ","); +}this.name = "[" + this.hallSymbol + "]" + (this.setting.equals("a,b,c") ? "" : ":" + this.setting); +} else { +this.myTrm = sym.getSpaceGroupInfoObj("itaTransform", this.name, false, false); +this.myIta = sym.getSpaceGroupInfoObj("itaNumber", this.name, false, false); +}var trm0 = null; +var haveCalc = false; +var haveReferenceCell = (prevNode != null && this.trLink == null && (this.hallSymbol != null || this.myIta != null && (this.myIta.equals(prevNode.myIta) || prevNode.calcNext != null))); +if (haveReferenceCell) { +trm0 = JU.M4.newM4(trm); +if (prevNode != null && prevNode.myTrm != null) { +J.modelkit.ModelKit.addSGTransform(sym, "!" + prevNode.setting, trm, trTemp); +J.modelkit.ModelKit.addSGTransform(sym, "!" + prevNode.myTrm, trm, trTemp); +}var trCalc = null; +if (prevNode.calcNext != null) { +var isSub = true; +var isImplicit = false; +switch (prevNode.calcNext) { +case "super": +isSub = false; +break; +case "sub": +break; +case "": +case "set": +prevNode.calcNext = "set"; +isImplicit = true; +break; +} +var ita1 = JU.PT.parseInt(prevNode.myIta); +var ita2 = JU.PT.parseInt(this.myIta); +var isSetting = (isImplicit && ita1 == ita2); +if (!isSetting) { +trCalc = sym.getSubgroupJSON(vwr, (isSub ? ita1 : ita2), (isSub ? ita2 : ita1), 0, 1); +haveCalc = (trCalc != null); +if (haveCalc && !isSub) trCalc = "!" + trCalc; +var calc = prevNode.myIta + ">" + trCalc + ">" + this.myIta; +if (!haveCalc) throw new RuntimeException(calc); +System.out.println("sub := " + calc); +J.modelkit.ModelKit.addSGTransform(sym, trCalc, trm, trTemp); +}}J.modelkit.ModelKit.addSGTransform(sym, this.myTrm, trm, trTemp); +J.modelkit.ModelKit.addSGTransform(sym, this.setting, trm, trTemp); +System.out.println("ClegNode " + this + "\n" + trm); +if (haveCalc) { +trm0.invert(); +var trm1 = JU.M4.newM4(trm); +trm1.mul(trm0); +this.calculated = sym.convertTransform(null, trm1); +}}return true; +}, "JV.Viewer,J.modelkit.ModelKit.ClegNode,JU.M4,JU.M4,J.api.SymmetryInterface"); +Clazz.overrideMethod(c$, "toString", +function(){ +return "[ClegNode #" + this.index + " " + this.name + " " + this.myIta + ":" + this.setting + " " + this.myTrm + "]"; +}); +c$.checkSyntax = Clazz.defineMethod(c$, "checkSyntax", +function(tokens, sym){ +for (var i = 0; i < tokens.length; i++) { +var s = tokens[i].trim(); +if (s.length == 0) continue; +var pt = s.indexOf(":"); +var transform; +if (pt > 0) { +transform = s.substring(pt + 1); +s = s.substring(0, pt); +} else if (s.indexOf(",") >= 0) { +transform = s; +s = null; +} else { +transform = ""; +}if (s != null) { +var itno = JU.PT.parseFloatStrict(s); +if (itno < 1 || itno >= 231) return false; +if (Float.isNaN(itno)) transform = s; +}switch (transform) { +case "": +case "sub": +case "r": +case "h": +case "!r": +case "!h": +break; +default: +if (transform.indexOf(",") >= 0) { +if ((sym.convertTransform(transform, null)).determinant3() == 0) return false; +}break; +} +} +return true; +}, "~A,J.api.SymmetryInterface"); +Clazz.defineMethod(c$, "updateTokens", +function(tokens, i){ +if (this.myIta != null && this.myTrm != null) tokens[i] = this.myIta + (this.myTrm.equals("a,b,c") ? "" : ":" + this.myTrm); +if (this.calculated != null) tokens[i - 1] = this.calculated; +}, "~A,~N"); +/*eoif3*/})(); +/*if3*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.type = 0; +this.pt = null; +this.offset = null; +this.plane = null; +this.unitVector = null; +Clazz.instantialize(this, arguments);}, J.modelkit.ModelKit, "Constraint", null); +Clazz.makeConstructor(c$, +function(pt, type, params){ +this.pt = pt; +this.type = type; +switch (type) { +case 0: +case 7: +case 6: +break; +case 4: +this.offset = params[0]; +this.unitVector = JU.V3.newV(params[1]); +this.unitVector.normalize(); +break; +case 5: +this.plane = params[0]; +break; +default: +throw new IllegalArgumentException(); +} +}, "JU.P3,~N,~A"); +Clazz.defineMethod(c$, "constrain", +function(ptOld, ptNew, allowProjection){ +var v = new JU.V3(); +var p = JU.P3.newP(ptOld); +var d = 0; +switch (this.type) { +case 0: +return; +case 7: +return; +case 6: +ptNew.x = NaN; +return; +case 4: +if (this.pt == null) { +d = JU.Measure.projectOntoAxis(p, this.offset, this.unitVector, v); +if (d * d >= 1.96E-6) { +ptNew.x = NaN; +break; +}}d = JU.Measure.projectOntoAxis(ptNew, this.offset, this.unitVector, v); +break; +case 5: +if (this.pt == null) { +if (Math.abs(JU.Measure.getPlaneProjection(p, this.plane, v, v)) > 0.01) { +ptNew.x = NaN; +break; +}}d = JU.Measure.getPlaneProjection(ptNew, this.plane, v, v); +ptNew.setT(v); +break; +} +if (!allowProjection && Math.abs(d) > 1e-10) { +ptNew.x = NaN; +}}, "JU.P3,JU.P3,~B"); +/*eoif3*/})(); +/*if3*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.bsElements = null; +this.nAtoms = 0; +this.elementStrings = null; +this.colors = null; +this.isotopeCounts = null; +this.modelIndex = 0; +Clazz.instantialize(this, arguments);}, J.modelkit.ModelKit, "EKey", null); +Clazz.prepareFields (c$, function(){ +this.bsElements = new JU.BS(); +this.elementStrings = Clazz.newArray(120, 10, null); +this.colors = Clazz.newIntArray (120, 10, 0); +this.isotopeCounts = Clazz.newIntArray (120, 0); +}); +Clazz.makeConstructor(c$, +function(vwr, modelIndex){ +var bsAtoms = vwr.getModelUndeletedAtomsBitSet(modelIndex); +this.nAtoms = (bsAtoms == null ? 0 : bsAtoms.cardinality()); +this.modelIndex = modelIndex; +if (this.nAtoms == 0) return; +var a = vwr.ms.at; +for (var i = bsAtoms.nextSetBit(0); i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var elem = a[i].getElementSymbol(); +var elemno = a[i].getElementNumber(); +var color = a[i].atomPropertyInt(1765808134); +var j = 0; +var niso = this.isotopeCounts[elemno]; +for (; j < niso; j++) { +if (this.elementStrings[elemno][j].equals(elem)) { +if (this.colors[elemno][j] != color) { +this.nAtoms = 0; +return; +}break; +}} +if (j < niso) { +continue; +}this.bsElements.set(elemno); +this.isotopeCounts[elemno]++; +this.elementStrings[elemno][j] = elem; +this.colors[elemno][j] = color; +} +}, "JV.Viewer,~N"); +Clazz.defineMethod(c$, "draw", +function(vwr){ +if (this.nAtoms == 0) return; +var key = J.modelkit.ModelKit.getElementKey(this.modelIndex); +var h = vwr.getScreenHeight(); +var font = vwr.getFont3D("SansSerif", "Bold", Clazz.doubleToInt(h * 20 / 400)); +for (var y = 90, elemno = this.bsElements.nextSetBit(0); elemno >= 0; elemno = this.bsElements.nextSetBit(elemno + 1)) { +var n = this.isotopeCounts[elemno]; +if (n == 0) continue; +var elem = this.elementStrings[elemno]; +for (var j = 0; j < n; j++) { +var label = elem[j]; +var color = this.colors[elemno][j]; +vwr.shm.setShapeProperties(22, [ Clazz.newArray(-1, ["init", "elementKey"]), Clazz.newArray(-1, ["thisID", key + "d_" + label]), Clazz.newArray(-1, ["diameter", Float.$valueOf(2)]), Clazz.newArray(-1, ["modelIndex", Integer.$valueOf(this.modelIndex)]), Clazz.newArray(-1, ["points", Integer.$valueOf(0)]), Clazz.newArray(-1, ["coord", JU.P3.new3(90, y, -3.4028235E38)]), Clazz.newArray(-1, ["set", null]), Clazz.newArray(-1, ["color", Integer.$valueOf(color)]), Clazz.newArray(-1, ["thisID", null])]); +vwr.shm.setShapeProperties(31, [ Clazz.newArray(-1, ["thisID", null]), Clazz.newArray(-1, ["target", key + "e_" + label]), Clazz.newArray(-1, ["model", Integer.$valueOf(this.modelIndex)]), Clazz.newArray(-1, ["xypos", JU.P3.new3(91, y - 2, -3.4028235E38)]), Clazz.newArray(-1, ["text", label]), Clazz.newArray(-1, ["font", font]), Clazz.newArray(-1, ["color", Integer.$valueOf(-74566)]), Clazz.newArray(-1, ["thisID", null])]); +y -= 5; +} +} +var bs = vwr.getVisibleFramesBitSet(); +vwr.shm.getShape(22).setModelVisibilityFlags(bs); +vwr.shm.getShape(31).setModelVisibilityFlags(bs); +}, "JV.Viewer"); +/*eoif3*/})(); +/*if3*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.oldVib = null; +this.atom = null; +this.t = 0; +this.baseAtom = null; +this.pt0 = null; +this.ptf = null; +this.sym = null; +this.c = null; +Clazz.instantialize(this, arguments);}, J.modelkit.ModelKit, "WyckoffModulation", JU.Vibration); +Clazz.prepareFields (c$, function(){ +this.pt0 = new JU.P3(); +this.ptf = new JU.P3(); +}); +Clazz.makeConstructor(c$, +function(sym, c, atom, baseAtom){ +Clazz.superConstructor (this, J.modelkit.ModelKit.WyckoffModulation, []); +this.setType(-3); +this.sym = sym; +this.c = c; +this.atom = atom; +this.baseAtom = baseAtom; +this.x = 1; +}, "J.api.SymmetryInterface,J.modelkit.ModelKit.Constraint,JM.Atom,JM.Atom"); +c$.setVibrationMode = Clazz.defineMethod(c$, "setVibrationMode", +function(mk, value){ +var atoms = mk.vwr.ms.at; +var bsAtoms = mk.vwr.getThisModelAtoms(); +if (("off").equals(value)) { +for (var i = bsAtoms.nextSetBit(0); i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var v = atoms[i].getVibrationVector(); +if (v != null && v.modDim != -3) continue; +mk.vwr.ms.setVibrationVector(i, (v).oldVib); +} +} else if (("wyckoff").equals(value)) { +for (var i = bsAtoms.nextSetBit(0); i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var v = atoms[i].getVibrationVector(); +if (v != null && v.modDim != -3) continue; +var sym = mk.getSym(i); +var wv = null; +if (sym != null) { +var c = mk.setConstraint(sym, i, J.modelkit.ModelKit.GET_CREATE); +if (c.type != 6) wv = new J.modelkit.ModelKit.WyckoffModulation(sym, c, atoms[i], mk.getBasisAtom(i)); +}mk.vwr.ms.setVibrationVector(i, wv); +} +}mk.vwr.setVibrationPeriod(NaN); +}, "J.modelkit.ModelKit,~O"); +Clazz.overrideMethod(c$, "setCalcPoint", +function(pt, t456, scale, modulationScale){ +var v = this.baseAtom.getVibrationVector(); +if (v == null || v.modDim != -3) return pt; +var wv = (v); +if (this.sym == null) return pt; +var m = null; +if (wv.atom !== this.atom) { +m = J.modelkit.ModelKit.getTransform(this.sym, wv.atom, this.atom); +if (m == null) return pt; +}if (wv.t != t456.x && (Clazz.floatToInt(t456.x * 10)) % 2 == 0) { +if (this.c.type != 6) { +wv.setPos(this.sym, this.c, scale); +}wv.t = t456.x; +}if (m == null) pt.setT(wv.ptf); + else m.rotTrans2(wv.ptf, pt); +this.sym.toCartesian(pt, false); +return pt; +}, "JU.T3,JU.T3,~N,~N"); +Clazz.defineMethod(c$, "setPos", +function(sym, c, scale){ +this.x = (Math.random() - 0.5) / 10 * scale; +this.y = (Math.random() - 0.5) / 10 * scale; +this.z = (Math.random() - 0.5) / 10 * scale; +this.pt0.setT(this.atom); +this.ptf.setT(this.pt0); +this.ptf.add(this); +c.constrain(this.pt0, this.ptf, true); +sym.toFractional(this.ptf, false); +}, "J.api.SymmetryInterface,J.modelkit.ModelKit.Constraint,~N"); +/*eoif3*/})(); +c$.locked = new J.modelkit.ModelKit.Constraint(null, 6, null); +c$.none = new J.modelkit.ModelKit.Constraint(null, 0, null); +c$.Pt000 = new JU.P3(); +c$.GET = 0; +c$.GET_CREATE = 1; +c$.GET_DELETE = 2; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/modelkit/ModelKitPopup.js b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/ModelKitPopup.js new file mode 100755 index 000000000000..908b47844458 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/ModelKitPopup.js @@ -0,0 +1,221 @@ +Clazz.declarePackage("J.modelkit"); +Clazz.load(["J.popup.JmolGenericPopup", "J.modelkit.ModelKitPopupResourceBundle"], "J.modelkit.ModelKitPopup", ["J.i18n.GT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.modelkit = null; +this.hidden = false; +this.allowPopup = true; +this.activeMenu = null; +this.bondRotationCheckBox = null; +this.prevBondCheckBox = null; +this.bondRotationName = ".modelkitMenu.bondMenu.rotateBondP!RD"; +this.haveOperators = false; +Clazz.instantialize(this, arguments);}, J.modelkit, "ModelKitPopup", J.popup.JmolGenericPopup); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.modelkit.ModelKitPopup, []); +}); +Clazz.overrideMethod(c$, "getBundle", +function(menu){ +return J.modelkit.ModelKitPopup.bundle; +}, "~S"); +Clazz.defineMethod(c$, "jpiShow", +function(x, y){ +if (!this.hidden) { +this.updateCheckBoxesForModelKit(null); +Clazz.superCall(this, J.modelkit.ModelKitPopup, "jpiShow", [x, y]); +}}, "~N,~N"); +Clazz.overrideMethod(c$, "jpiUpdateComputedMenus", +function(){ +this.htMenus.get("xtalMenu").setEnabled(this.modelkit.setHasUnitCell()); +if (this.modelkit.checkNewModel()) { +this.haveOperators = false; +this.updateOperatorMenu(); +}this.updateAllXtalMenuOptions(); +}); +Clazz.overrideMethod(c$, "appUpdateForShow", +function(){ +this.jpiUpdateComputedMenus(); +}); +Clazz.defineMethod(c$, "hidePopup", +function(){ +this.menuHidePopup(this.popupMenu); +}); +Clazz.defineMethod(c$, "clearLastModelSet", +function(){ +this.modelkit.lastModelSet = null; +}); +Clazz.defineMethod(c$, "updateOperatorMenu", +function(){ +if (this.haveOperators) return; +this.haveOperators = true; +var menu = this.htMenus.get("xtalOp!PersistMenu"); +if (menu != null) this.addAllCheckboxItems(menu, this.modelkit.getAllOperators()); +}); +Clazz.defineMethod(c$, "addAllCheckboxItems", +function(menu, labels){ +this.menuRemoveAll(menu, 0); +var subMenu = menu; +var pt = (labels.length > 32 ? 0 : -2147483648); +for (var i = 0; i < labels.length; i++) { +if (pt >= 0 && (pt++ % 32) == 0) { +var id = "mtsymop" + pt + "Menu"; +subMenu = this.menuNewSubMenu((i + 1) + "..." + Math.min(i + 32, labels.length), this.menuGetId(menu) + "." + id); +this.menuAddSubMenu(menu, subMenu); +this.htMenus.put(id, subMenu); +pt = 1; +}if (i == 0) this.menuEnable(this.menuCreateItem(subMenu, J.i18n.GT.$("none"), "draw sym_* delete", null), true); +var sym = labels[i]; +this.menuEnable(this.menuCreateItem(subMenu, sym, sym, subMenu.getName() + "." + "mkop_" + (i + 1)), true); +} +}, "J.api.SC,~A"); +Clazz.defineMethod(c$, "updateAllXtalMenuOptions", +function(){ +var text = ""; +switch (this.modelkit.getMKState()) { +case 0: +text = " (not enabled)"; +break; +case 1: +text = " (view)"; +break; +case 2: +text = " (edit)"; +break; +} +this.setLabel("xtalModePersistMenu", "Crystal Mode: " + text); +text = this.modelkit.getCenterText(); +this.setLabel("xtalSelPersistMenu", "Center: " + (text == null ? "(not selected)" : text)); +text = this.modelkit.getSymopText(); +this.setLabel("operator", text == null ? "(no operator selected)" : text); +switch (this.modelkit.getSymEditState()) { +case 0: +text = "do not apply symmetry"; +break; +case 64: +text = "retain local symmetry"; +break; +case 32: +text = "apply local symmetry"; +break; +case 128: +text = "apply full symmetry"; +break; +} +this.setLabel("xtalEditOptPersistMenu", "Edit option: " + text); +switch (this.modelkit.getUnitCellState()) { +case 0: +text = "packed"; +break; +case 256: +text = "unpacked" + (this.modelkit.viewOffset == null ? "(no view offset)" : "(view offset=" + this.modelkit.viewOffset + ")"); +break; +} +this.setLabel("xtalPackingPersistMenu", "Packing: " + text); +}); +Clazz.defineMethod(c$, "setLabel", +function(key, label){ +this.menuSetLabel(this.htMenus.get(key), label); +}, "~S,~S"); +Clazz.defineMethod(c$, "setActiveMenu", +function(name){ +var active = (name.indexOf("xtalMenu") >= 0 ? "xtalMenu" : name.indexOf("atomMenu") >= 0 ? "atomMenu" : name.indexOf("bondMenu") >= 0 ? "bondMenu" : null); +if (active != null) { +this.activeMenu = active; +if ((active === "xtalMenu") == (this.modelkit.getMKState() == 0)) this.modelkit.setMKState(active === "xtalMenu" ? 1 : 0); +this.vwr.refresh(1, "modelkit"); +if (active === "bondMenu" && this.prevBondCheckBox == null) this.prevBondCheckBox = this.htMenus.get("assignBond_pP!RD"); +} else if (name.indexOf("optionsMenu") >= 0) { +this.htMenus.get("undo").setEnabled(this.vwr.undoMoveAction(4165, 1275068425) > 0); +this.htMenus.get("redo").setEnabled(this.vwr.undoMoveAction(4140, 1275068425) > 0); +}return active; +}, "~S"); +Clazz.overrideMethod(c$, "appUpdateSpecialCheckBoxValue", +function(source, actionCommand, selected){ +if (source == null || !selected) return; +var name = source.getName(); +var mode; +if (!this.updatingForShow && (mode = this.setActiveMenu(name)) != null) { +var text = source.getText(); +if (mode === "bondMenu") { +if (name.equals(this.bondRotationName)) { +this.bondRotationCheckBox = source; +} else { +this.prevBondCheckBox = source; +}}this.modelkit.setHoverLabel(this.activeMenu, text); +}}, "J.api.SC,~S,~B"); +Clazz.defineMethod(c$, "exitBondRotation", +function(){ +this.modelkit.exitBondRotation(this.prevBondCheckBox == null ? null : this.prevBondCheckBox.getText()); +this.vwr.setPickingMode(null, 33); +if (this.bondRotationCheckBox != null) this.bondRotationCheckBox.setSelected(false); +if (this.prevBondCheckBox != null) this.prevBondCheckBox.setSelected(true); +}); +Clazz.overrideMethod(c$, "appGetBooleanProperty", +function(name){ +if (name.startsWith("mk")) { +return (this.modelkit.getProperty(name.substring(2))).booleanValue(); +}return this.vwr.getBooleanProperty(name); +}, "~S"); +Clazz.overrideMethod(c$, "getUnknownCheckBoxScriptToRun", +function(item, name, what, TF){ +if (name.startsWith("mk")) { +this.modelkit.processMKPropertyItem(name, TF); +return null; +}var element = this.modelkit.getElementFromUser(); +if (element == null) return null; +this.menuSetLabel(item, element); +item.setActionCommand("assignAtom_" + element + "P!:??"); +return "set picking assignAtom_" + element; +}, "J.api.SC,~S,~S,~B"); +Clazz.overrideMethod(c$, "menuFocusCallback", +function(name, actionCommand, gained){ +if (gained && !this.modelkit.processSymop(name, true)) { +this.setActiveMenu(name); +}}, "~S,~S,~B"); +Clazz.overrideMethod(c$, "menuClickCallback", +function(source, script){ +if (this.modelkit.processSymop(source.getName(), false)) return; +if (script.equals("clearQPersist")) { +for (var item, $item = this.htCheckbox.values().iterator (); $item.hasNext()&& ((item = $item.next ()) || true);) { +if (item.getActionCommand().indexOf(":??") < 0) continue; +this.menuSetLabel(item, "??"); +item.setActionCommand("_??P!:"); +} +this.appRunScript("set picking assignAtom_C"); +return; +}this.doMenuClickCallback(source, script); +}, "J.api.SC,~S"); +Clazz.overrideMethod(c$, "getScriptForCallback", +function(source, id, script){ +if (script.startsWith("mk")) { +this.modelkit.clickProcessXtal(id, script); +script = null; +}return script; +}, "J.api.SC,~S,~S"); +Clazz.defineMethod(c$, "appRunSpecialCheckBox", +function(item, basename, script, TF){ +if (basename.indexOf("assignAtom_Xx") == 0) { +this.modelkit.resetAtomPickType(); +}if (TF && !this.updatingForShow && basename.indexOf("Bond") < 0) { +this.updatingForShow = true; +this.exitBondRotation(); +this.updatingForShow = false; +}return Clazz.superCall(this, J.modelkit.ModelKitPopup, "appRunSpecialCheckBox", [item, basename, script, TF]); +}, "J.api.SC,~S,~S,~B"); +Clazz.defineMethod(c$, "updateCheckBoxesForModelKit", +function(menuName){ +var thisAtomType = "assignAtom_" + this.modelkit.pickAtomAssignType + "P"; +var thisBondType = "assignBond_" + this.modelkit.pickBondAssignType; +for (var entry, $entry = this.htCheckbox.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +var item = entry.getValue(); +var key = item.getActionCommand(); +if (key.startsWith(thisBondType) || key.startsWith(thisAtomType)) { +this.updatingForShow = true; +item.setSelected(false); +item.setSelected(true); +this.updatingForShow = false; +}} +}, "~S"); +c$.bundle = new J.modelkit.ModelKitPopupResourceBundle(null, null); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/modelkit/ModelKitPopupResourceBundle.js b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/ModelKitPopupResourceBundle.js new file mode 100755 index 000000000000..bafd5306ea53 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/ModelKitPopupResourceBundle.js @@ -0,0 +1,28 @@ +Clazz.declarePackage("J.modelkit"); +Clazz.load(["J.popup.PopupResource"], "J.modelkit.ModelKitPopupResourceBundle", ["J.i18n.GT", "J.modelkit.ModelKit"], function(){ +var c$ = Clazz.declareType(J.modelkit, "ModelKitPopupResourceBundle", J.popup.PopupResource); +Clazz.overrideMethod(c$, "getMenuName", +function(){ +return "modelkitMenu"; +}); +Clazz.overrideMethod(c$, "buildStructure", +function(menuStructure){ +this.addItems(J.modelkit.ModelKitPopupResourceBundle.menuContents); +this.addItems(J.modelkit.ModelKitPopupResourceBundle.structureContents); +if (menuStructure != null) this.setStructure(menuStructure, new J.i18n.GT()); +}, "~S"); +Clazz.overrideMethod(c$, "getWordContents", +function(){ +var wasTranslating = J.i18n.GT.setDoTranslate(true); +var words = Clazz.newArray(-1, ["atomMenu", " ", "moreAtomMenu", " ", "bondMenu", " ", "optionsMenu", " ", "operator", "(no operator selected)", "xtalMenu", " ", "xtalModePersistMenu", "mode", "xtalSelPersistMenu", "select atom or position", "xtalSelOpPersistMenu", "select operator", "xtalOp!PersistMenu", "from list...", "xtalEditOptPersistMenu", "edit options", "xtalOptionsPersistMenu", "more options...", "xtalPackingPersistMenu", "packing", "mkshowSymopInfoCB", "show symmetry operator info", "mkaddHydrogensCB", "add hydrogens on new atoms", "mkclicktosetelementCB", "allow clicking to set atom element", "mkselop_byop", "from list", "mkselop_addOffset", "add/remove lattice offset", "mkselop_atom2", "to second atom", "mksel_atom", "select atom", "mksel_position", "select position", "mkmode_molecular", J.i18n.GT.$("disabled"), "mkmode_view", J.i18n.GT.$("View"), "mkmode_edit", J.i18n.GT.$("Edit"), "mksymmetry_none", J.i18n.GT.$("do not apply"), "mksymmetry_retainLocal", J.i18n.GT.$("retain local"), "mksymmetry_applyLocal", J.i18n.GT.$("apply local"), "mksymmetry_applyFull", J.i18n.GT.$("apply full"), "mkunitcell_extend", J.i18n.GT.$("this operator"), "mkunitcell_packed", J.i18n.GT.$("add translation"), "mkasymmetricUnit", J.i18n.GT.$("asymmetric unit"), "mkallAtoms", J.i18n.GT.$("all atoms"), "new", J.i18n.GT.$("new"), "undo", J.i18n.GT.$("undo (CTRL-Z)"), "redo", J.i18n.GT.$("redo (CTRL-Y)"), "center", J.i18n.GT.$("center"), "ekey", J.i18n.GT.$("element key"), "addh", J.i18n.GT.$("add hydrogens"), "minimize", J.i18n.GT.$("minimize"), "hmin", J.i18n.GT.$("fix hydrogens and minimize"), "clearQPersist", J.i18n.GT.$("clear"), "SIGNEDsaveFile", J.i18n.GT.$("save file"), "SIGNEDsaveState", J.i18n.GT.$("save state"), "invertStereoP!RD", J.modelkit.ModelKit.getText("invStereo"), "assignAtom_XP!RD", J.modelkit.ModelKit.getText("delAtom"), "assignAtom_XxP!RD", J.modelkit.ModelKit.getText("dragBond"), "dragAtomP!RD", J.modelkit.ModelKit.getText("dragAtom"), "dragMinimizeP!RD", J.modelkit.ModelKit.getText("dragMinimize"), "dragMoleculeP!RD", J.modelkit.ModelKit.getText("dragMolecule"), "dragMinimizeMoleculeP!RD", J.modelkit.ModelKit.getText("dragMMol"), "assignAtom_CP!RD", "C", "assignAtom_HP!RD", "H", "assignAtom_NP!RD", "N", "assignAtom_OP!RD", "O", "assignAtom_FP!RD", "F", "assignAtom_ClP!RD", "Cl", "assignAtom_BrP!RD", "Br", "_??P!RD", "??", "assignAtom_plP!RD", J.modelkit.ModelKit.getText("incCharge"), "assignAtom_miP!RD", J.modelkit.ModelKit.getText("decCharge"), "assignBond_0P!RD", J.modelkit.ModelKit.getText("bondTo0"), "assignBond_1P!RD", J.modelkit.ModelKit.getText("bondTo1"), "assignBond_2P!RD", J.modelkit.ModelKit.getText("bondTo2"), "assignBond_3P!RD", J.modelkit.ModelKit.getText("bondTo3"), "assignBond_pP!RD", J.modelkit.ModelKit.getText("incBond"), "assignBond_mP!RD", J.modelkit.ModelKit.getText("decBond"), "rotateBondP!RD", J.modelkit.ModelKit.getText("rotBond"), "exit!Persist", J.i18n.GT.$("exit modelkit mode")]); +J.i18n.GT.setDoTranslate(wasTranslating); +return words; +}); +Clazz.overrideMethod(c$, "getMenuAsText", +function(title){ +return this.getStuctureAsText(title, J.modelkit.ModelKitPopupResourceBundle.menuContents, J.modelkit.ModelKitPopupResourceBundle.structureContents); +}, "~S"); +c$.menuContents = Clazz.newArray(-1, [ Clazz.newArray(-1, ["modelkitMenu", "atomMenu bondMenu xtalMenu optionsMenu"]), Clazz.newArray(-1, ["optionsMenu", "new ekey center addh minimize hmin - undo redo - SIGNEDsaveFile SIGNEDsaveState exit!Persist"]), Clazz.newArray(-1, ["atomMenu", "assignAtom_XxP!RD dragAtomP!RD dragMinimizeP!RD dragMoleculeP!RD dragMinimizeMoleculeP!RD invertStereoP!RD - assignAtom_XP!RD assignAtom_CP!RD assignAtom_HP!RD assignAtom_NP!RD assignAtom_OP!RD assignAtom_FP!RD assignAtom_ClP!RD assignAtom_BrP!RD _??P!RD _??P!RD _??P!RD moreAtomMenu assignAtom_plP!RD assignAtom_miP!RD"]), Clazz.newArray(-1, ["moreAtomMenu", "clearQPersist , _??P!RD _??P!RD _??P!RD _??P!RD _??P!RD _??P!RD "]), Clazz.newArray(-1, ["bondMenu", "assignBond_0P!RD assignBond_1P!RD assignBond_2P!RD assignBond_3P!RD assignBond_pP!RD assignBond_mP!RD rotateBondP!RD"]), Clazz.newArray(-1, ["xtalMenu", "xtalSelOpPersistMenu operator "]), Clazz.newArray(-1, ["xtalModePersistMenu", "mkmode_molecular mkmode_view mkmode_edit"]), Clazz.newArray(-1, ["xtalSelPersistMenu", "mksel_atom mksel_position"]), Clazz.newArray(-1, ["xtalSelOpPersistMenu", "xtalOp!PersistMenu "]), Clazz.newArray(-1, ["xtalEditOptPersistMenu", "mksymmetry_none mksymmetry_retainLocal mksymmetry_applyLocal mksymmetry_applyFull"]), Clazz.newArray(-1, ["xtalPackingPersistMenu", "mkunitcell_packed mkunitcell_extend"]), Clazz.newArray(-1, ["xtalOptionsPersistMenu", "mkshowSymopInfoCB mkclicktosetelementCB mkaddHydrogensCB"])]); +c$.structureContents = Clazz.newArray(-1, [ Clazz.newArray(-1, ["new", "zap"]), Clazz.newArray(-1, ["ekey", "set elementkey= @{!elementkey}"]), Clazz.newArray(-1, ["center", "zoomto 0 {visible} 0/1.5"]), Clazz.newArray(-1, ["addh", "calculate hydrogens {model=_lastframe}"]), Clazz.newArray(-1, ["minimize", "minimize"]), Clazz.newArray(-1, ["hmin", "delete hydrogens and model=_lastframe; minimize addhydrogens"]), Clazz.newArray(-1, ["SIGNEDsaveFile", "select visible;write COORD '?jmol.mol'"]), Clazz.newArray(-1, ["SIGNEDsaveState", "write '?jmol.jpg'"]), Clazz.newArray(-1, ["clearQ", "clearQ"]), Clazz.newArray(-1, ["undo", "!undoMove"]), Clazz.newArray(-1, ["redo", "!redoMove"]), Clazz.newArray(-1, ["operator", ""]), Clazz.newArray(-1, ["exit!Persist", "set modelkitMode false"])]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/atoms.png b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/atoms.png new file mode 100755 index 000000000000..12bb8e0b80b3 Binary files /dev/null and b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/atoms.png differ diff --git a/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/bonds.png b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/bonds.png new file mode 100755 index 000000000000..3053ba4d1d9b Binary files /dev/null and b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/bonds.png differ diff --git a/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/dotdotdot.png b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/dotdotdot.png new file mode 100755 index 000000000000..6d8062163b5a Binary files /dev/null and b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/dotdotdot.png differ diff --git a/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/undoButton.gif b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/undoButton.gif new file mode 100755 index 000000000000..721dd587eefd Binary files /dev/null and b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/undoButton.gif differ diff --git a/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/xtal.png b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/xtal.png new file mode 100755 index 000000000000..9c31226a760e Binary files /dev/null and b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/xtal.png differ diff --git a/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/xtal_pngj.png b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/xtal_pngj.png new file mode 100755 index 000000000000..20b37d2850cf Binary files /dev/null and b/config/plugins/visualizations/jmol/static/j2s/J/modelkit/images/xtal_pngj.png differ diff --git a/config/plugins/visualizations/jmol/static/j2s/J/navigate/Navigator.js b/config/plugins/visualizations/jmol/static/j2s/J/navigate/Navigator.js new file mode 100755 index 000000000000..3ed702127bbe --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/navigate/Navigator.js @@ -0,0 +1,538 @@ +Clazz.declarePackage("J.navigate"); +Clazz.load(["J.api.JmolNavigatorInterface", "J.thread.JmolThread"], "J.navigate.Navigator", ["JU.P3", "$.V3", "JU.Escape", "$.GData"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.tm = null; +this.nHits = 0; +this.multiplier = 1; +this.isPathGuide = false; +this.points = null; +this.pointGuides = null; +this.frameTimeMillis = 0; +this.floatSecondsTotal = 0; +this.axis = null; +this.degrees = 0; +this.center = null; +this.depthPercent = 0; +this.xTrans = 0; +this.yTrans = 0; +this.depthStart = 0; +this.depthDelta = 0; +this.xTransStart = 0; +this.xTransDelta = 0; +this.yTransStart = 0; +this.yTransDelta = 0; +this.degreeStep = 0; +this.centerStart = null; +this.totalSteps = 0; +this.aaStepCenter = null; +this.isNavTo = false; +this.iStep = 0; +this.navigationList = null; +this.iList = 0; +this.isStep = false; +Clazz.instantialize(this, arguments);}, J.navigate, "Navigator", J.thread.JmolThread, J.api.JmolNavigatorInterface); +Clazz.overrideMethod(c$, "set", +function(tm, vwr){ +this.tm = tm; +this.setViewer(vwr, "navigator"); +}, "JV.TransformManager,JV.Viewer"); +Clazz.overrideMethod(c$, "navigateList", +function(eval, list){ +this.setEval(eval); +this.navigationList = list; +this.iList = 0; +this.isStep = false; +this.stopped = false; +if (this.isJS) this.useTimeout = true; +this.run(); +}, "J.api.JmolScriptEvaluator,JU.Lst"); +Clazz.overrideMethod(c$, "run1", +function(mode){ +var ptTemp = new JU.P3(); +while (this.isJS || this.vwr.isScriptExecuting()) switch (mode) { +case -1: +if (this.isStep) { +this.targetTime = this.startTime; +this.iStep = 0; +mode = (this.totalSteps <= 0 && this.isNavTo ? 1 : 0); +break; +}mode = 2; +break; +case 2: +this.nextList(this.navigationList.get(this.iList), ptTemp); +return; +case 0: +if (this.stopped || this.iStep >= this.totalSteps) { +mode = -2; +break; +}this.doNavStep(this.iStep++); +this.vwr.requestRepaintAndWait("navigatorThread"); +var sleepTime = (this.targetTime - System.currentTimeMillis()); +if (!this.runSleep(sleepTime, 0)) return; +mode = 0; +break; +case 1: +if (!this.runSleep(Clazz.floatToInt(this.floatSecondsTotal * 1000) - 30, -2)) return; +mode = -2; +break; +case -2: +if (this.isNavTo) { +if (!Float.isNaN(this.xTrans) || !Float.isNaN(this.yTrans)) this.navTranslatePercentOrTo(-1, this.xTrans, this.yTrans); +if (!Float.isNaN(this.depthPercent)) this.setNavigationDepthPercent(this.depthPercent); +}this.vwr.setInMotion(false); +this.vwr.moveUpdate(this.floatSecondsTotal); +if (!this.stopped && ++this.iList < this.navigationList.size()) { +mode = 2; +break; +}this.resumeEval(); +return; +} + +}, "~N"); +Clazz.defineMethod(c$, "nextList", +function(o, ptTemp){ +var tok = (o[0]).intValue(); +var seconds = (o[1]).floatValue(); +switch (tok) { +case 134217751: +var pt = o[2]; +if (seconds == 0) { +this.tm.setNavigatePt(pt); +this.vwr.moveUpdate(0); +return; +}this.navigateTo(seconds, null, NaN, pt, NaN, NaN, NaN); +break; +case 1073742084: +var path = o[2]; +var theta = o[3]; +var indexStart = (o[4])[0]; +var indexEnd = (o[4])[1]; +this.navigate(seconds, null, path, theta, indexStart, indexEnd); +break; +case 1112152078: +var pathGuide = (o[2]); +this.navigate(seconds, pathGuide, null, null, 0, 2147483647); +break; +case 528432: +var rotAxis = o[2]; +var degrees = (o[3]).floatValue(); +if (seconds == 0) { +this.navigateAxis(rotAxis, degrees); +this.vwr.moveUpdate(0); +return; +}this.navigateTo(seconds, rotAxis, degrees, null, NaN, NaN, NaN); +break; +case 4160: +case 268441090: +if (tok == 4160) { +this.tm.transformPt3f(o[2], ptTemp); +} else { +ptTemp.x = (o[2]).floatValue(); +ptTemp.y = (o[3]).floatValue(); +this.setNavPercent(ptTemp); +}if (seconds == 0) { +this.navTranslatePercentOrTo(-1, ptTemp.x, ptTemp.y); +this.vwr.moveUpdate(0); +return; +}this.navigateTo(seconds, null, NaN, null, NaN, ptTemp.x, ptTemp.y); +break; +case 554176526: +var percent = (o[2]).floatValue(); +this.navigateTo(seconds, null, NaN, null, percent, NaN, NaN); +break; +} +}, "~A,JU.P3"); +Clazz.defineMethod(c$, "navigate", +function(seconds, pathGuide, path, theta, indexStart, indexEnd){ +this.floatSecondsTotal = seconds; +this.setupNav(seconds, pathGuide, path, indexStart, indexEnd); +this.isStep = true; +this.run(); +}, "~N,~A,~A,~A,~N,~N"); +Clazz.defineMethod(c$, "navigateTo", +function(seconds, axis, degrees, center, depthPercent, xTrans, yTrans){ +this.floatSecondsTotal = seconds; +this.axis = axis; +this.degrees = degrees; +this.center = center; +this.depthPercent = depthPercent; +this.xTrans = xTrans; +this.yTrans = yTrans; +this.setupNavTo(); +this.isStep = true; +this.run(); +}, "~N,JU.V3,~N,JU.P3,~N,~N,~N"); +Clazz.defineMethod(c$, "setNavPercent", +function(pt1){ +this.tm.transformPt3f(this.tm.navigationCenter, this.tm.navigationOffset); +var x = pt1.x; +var y = pt1.y; +if (!Float.isNaN(x)) x = this.tm.width * x / 100 + (Float.isNaN(y) ? this.tm.navigationOffset.x : (this.tm.width / 2)); +if (!Float.isNaN(y)) y = this.tm.height * y / 100 + (Float.isNaN(x) ? this.tm.navigationOffset.y : this.tm.getNavPtHeight()); +pt1.x = x; +pt1.y = y; +}, "JU.P3"); +Clazz.defineMethod(c$, "doNavStep", +function(iStep){ +if (!this.isNavTo) { +this.tm.setNavigatePt(this.points[iStep]); +if (this.isPathGuide) { +this.alignZX(this.points[iStep], this.points[iStep + 1], this.pointGuides[iStep]); +}this.targetTime += this.frameTimeMillis; +return; +}this.tm.navigating = true; +var fStep = (iStep + 1) / this.totalSteps; +if (!Float.isNaN(this.degrees)) this.tm.navigateAxis(this.axis, this.degreeStep); +if (this.center != null) { +this.centerStart.add(this.aaStepCenter); +this.tm.setNavigatePt(this.centerStart); +}if (!Float.isNaN(this.xTrans) || !Float.isNaN(this.yTrans)) { +var x = NaN; +var y = NaN; +if (!Float.isNaN(this.xTrans)) x = this.xTransStart + this.xTransDelta * fStep; +if (!Float.isNaN(this.yTrans)) y = this.yTransStart + this.yTransDelta * fStep; +this.navTranslatePercentOrTo(-1, x, y); +}if (!Float.isNaN(this.depthPercent)) { +this.setNavigationDepthPercent(this.depthStart + this.depthDelta * fStep); +}this.tm.navigating = false; +this.targetTime += this.frameTimeMillis; +}, "~N"); +Clazz.defineMethod(c$, "setupNavTo", +function(){ +this.isNavTo = true; +if (!this.vwr.haveDisplay) this.floatSecondsTotal = 0; +var fps = 30; +this.totalSteps = Clazz.floatToInt(this.floatSecondsTotal * fps) - 1; +if (this.floatSecondsTotal > 0) this.vwr.setInMotion(true); +if (this.degrees == 0) this.degrees = NaN; +if (this.totalSteps > 0) { +this.frameTimeMillis = Clazz.doubleToInt(1000 / fps); +this.depthStart = this.tm.navigationDepthPercent; +this.depthDelta = this.depthPercent - this.depthStart; +this.xTransStart = this.tm.navigationOffset.x; +this.xTransDelta = this.xTrans - this.xTransStart; +this.yTransStart = this.tm.navigationOffset.y; +this.yTransDelta = this.yTrans - this.yTransStart; +this.degreeStep = this.degrees / (this.totalSteps + 1); +this.aaStepCenter = JU.V3.newVsub(this.center == null ? this.tm.navigationCenter : this.center, this.tm.navigationCenter); +this.aaStepCenter.scale(1 / (this.totalSteps + 1)); +this.centerStart = JU.P3.newP(this.tm.navigationCenter); +}}); +Clazz.defineMethod(c$, "setupNav", +function(seconds, pathGuide, path, indexStart, indexEnd){ +this.isNavTo = false; +if (seconds <= 0) seconds = 2; +if (!this.vwr.haveDisplay) seconds = 0; +this.isPathGuide = (pathGuide != null); +var nSegments = Math.min((this.isPathGuide ? pathGuide.length : path.length) - 1, indexEnd); +if (!this.isPathGuide) while (nSegments > 0 && path[nSegments] == null) nSegments--; + +nSegments -= indexStart; +if (nSegments < 1) return; +var nPer = Clazz.doubleToInt(Math.floor(10 * seconds)); +var nSteps = nSegments * nPer + 1; +this.points = new Array(nSteps + 2); +this.pointGuides = new Array(this.isPathGuide ? nSteps + 2 : 0); +for (var i = 0; i < nSegments; i++) { +var iPrev = Math.max(i - 1, 0) + indexStart; +var pt = i + indexStart; +var iNext = Math.min(i + 1, nSegments) + indexStart; +var iNext2 = Math.min(i + 2, nSegments) + indexStart; +var iNext3 = Math.min(i + 3, nSegments) + indexStart; +if (this.isPathGuide) { +JU.GData.getHermiteList(7, pathGuide[iPrev][0], pathGuide[pt][0], pathGuide[iNext][0], pathGuide[iNext2][0], pathGuide[iNext3][0], this.points, i * nPer, nPer + 1, true); +JU.GData.getHermiteList(7, pathGuide[iPrev][1], pathGuide[pt][1], pathGuide[iNext][1], pathGuide[iNext2][1], pathGuide[iNext3][1], this.pointGuides, i * nPer, nPer + 1, true); +} else { +JU.GData.getHermiteList(7, path[iPrev], path[pt], path[iNext], path[iNext2], path[iNext3], this.points, i * nPer, nPer + 1, true); +}} +this.vwr.setInMotion(true); +this.frameTimeMillis = Clazz.floatToInt(1000 / this.tm.navFps); +this.totalSteps = nSteps; +}, "~N,~A,~A,~N,~N"); +Clazz.defineMethod(c$, "alignZX", +function(pt0, pt1, ptVectorWing){ +var pt0s = new JU.P3(); +var pt1s = new JU.P3(); +var m = this.tm.matrixRotate; +m.rotate2(pt0, pt0s); +m.rotate2(pt1, pt1s); +var vPath = JU.V3.newVsub(pt0s, pt1s); +var v = JU.V3.new3(0, 0, 1); +var angle = vPath.angle(v); +v.cross(vPath, v); +if (angle != 0) this.tm.navigateAxis(v, (angle * 57.29577951308232)); +m.rotate2(pt0, pt0s); +var pt2 = JU.P3.newP(ptVectorWing); +pt2.add(pt0); +var pt2s = new JU.P3(); +m.rotate2(pt2, pt2s); +vPath.sub2(pt2s, pt0s); +vPath.z = 0; +v.set(-1, 0, 0); +angle = vPath.angle(v); +if (vPath.y < 0) angle = -angle; +v.set(0, 0, 1); +if (angle != 0) this.tm.navigateAxis(v, (angle * 57.29577951308232)); +m.rotate2(pt0, pt0s); +m.rotate2(pt1, pt1s); +m.rotate2(ptVectorWing, pt2s); +}, "JU.P3,JU.P3,JU.P3"); +Clazz.overrideMethod(c$, "zoomByFactor", +function(factor, x, y){ +var navZ = this.tm.navZ; +if (navZ > 0) { +navZ /= factor; +if (navZ < 5) navZ = -5; + else if (navZ > 200) navZ = 200; +} else if (navZ == 0) { +navZ = (factor < 1 ? 5 : -5); +} else { +navZ *= factor; +if (navZ > -5) navZ = 5; + else if (navZ < -200) navZ = -200; +}this.tm.navZ = navZ; +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "calcNavigationPoint", +function(){ +this.calcNavigationDepthPercent(); +if (!this.tm.navigating && this.tm.navMode != 1) { +if (this.tm.navigationDepthPercent < 100 && this.tm.navigationDepthPercent > 0 && !Float.isNaN(this.tm.previousX) && this.tm.previousX == this.tm.fixedTranslation.x && this.tm.previousY == this.tm.fixedTranslation.y && this.tm.navMode != -1) this.tm.navMode = 3; + else this.tm.navMode = 0; +}switch (this.tm.navMode) { +case 1: +this.tm.navigationOffset.set(this.tm.width / 2, this.tm.getNavPtHeight(), this.tm.referencePlaneOffset); +this.tm.zoomFactor = 3.4028235E38; +this.tm.calcCameraFactors(); +this.tm.calcTransformMatrix(); +this.newNavigationCenter(); +break; +case 0: +case -1: +this.tm.fixedRotationOffset.setT(this.tm.fixedTranslation); +this.newNavigationCenter(); +break; +case 2: +this.newNavigationCenter(); +break; +case -2: +case 3: +var pt1 = this.tm.matrixTransform.rotTrans2(this.tm.navigationCenter, new JU.P3()); +var z = pt1.z; +this.tm.matrixTransform.rotTrans2(this.tm.fixedRotationCenter, pt1); +this.tm.modelCenterOffset = this.tm.referencePlaneOffset + (pt1.z - z); +this.tm.calcCameraFactors(); +this.tm.calcTransformMatrix(); +break; +case 4: +this.tm.navigationOffset.z = this.tm.referencePlaneOffset; +this.tm.unTransformPoint(this.tm.navigationOffset, this.tm.navigationCenter); +break; +} +this.tm.matrixTransform.rotTrans2(this.tm.navigationCenter, this.tm.navigationShiftXY); +if (this.vwr.getBoolean(603979890)) { +var pt = JU.P3.newP(this.tm.navigationCenter); +this.vwr.toUnitCell(this.tm.navigationCenter, null); +if (pt.distance(this.tm.navigationCenter) > 0.01) { +this.tm.matrixTransform.rotTrans2(this.tm.navigationCenter, pt); +var dz = this.tm.navigationShiftXY.z - pt.z; +this.tm.modelCenterOffset += dz; +this.tm.calcCameraFactors(); +this.tm.calcTransformMatrix(); +this.tm.matrixTransform.rotTrans2(this.tm.navigationCenter, this.tm.navigationShiftXY); +}}this.tm.transformPt3f(this.tm.fixedRotationCenter, this.tm.fixedTranslation); +this.tm.fixedRotationOffset.setT(this.tm.fixedTranslation); +this.tm.previousX = this.tm.fixedTranslation.x; +this.tm.previousY = this.tm.fixedTranslation.y; +this.tm.transformPt3f(this.tm.navigationCenter, this.tm.navigationOffset); +this.tm.navigationOffset.z = this.tm.referencePlaneOffset; +this.tm.navMode = 0; +this.calcNavSlabAndDepthValues(); +}); +Clazz.defineMethod(c$, "calcNavSlabAndDepthValues", +function(){ +this.tm.calcSlabAndDepthValues(); +if (this.tm.slabEnabled) { +this.tm.slabValue = (this.tm.mode == 1 ? -100 : 0) + Clazz.floatToInt(this.tm.referencePlaneOffset - this.tm.navigationSlabOffset); +if (this.tm.zSlabPercentSetting == this.tm.zDepthPercentSetting) this.tm.zSlabValue = this.tm.slabValue; +}}); +Clazz.defineMethod(c$, "newNavigationCenter", +function(){ +this.tm.mode = this.tm.defaultMode; +var pt = new JU.P3(); +this.tm.transformPt3f(this.tm.fixedRotationCenter, pt); +pt.x -= this.tm.navigationOffset.x; +pt.y -= this.tm.navigationOffset.y; +var f = -this.tm.getPerspectiveFactor(pt.z); +pt.x /= f; +pt.y /= f; +pt.z = this.tm.referencePlaneOffset; +this.tm.matrixTransformInv.rotTrans2(pt, this.tm.navigationCenter); +this.tm.mode = 1; +}); +Clazz.overrideMethod(c$, "setNavigationOffsetRelative", +function(){ +if (this.tm.navigationDepthPercent < 0 && this.tm.navZ > 0 || this.tm.navigationDepthPercent > 100 && this.tm.navZ < 0) { +this.tm.navZ = 0; +}this.tm.rotateXRadians((0.017453292519943295 * -0.02 * this.tm.navY), null); +this.tm.rotateYRadians((0.017453292519943295 * .02 * this.tm.navX), null); +var pt = this.tm.navigationCenter; +var pts = new JU.P3(); +this.tm.transformPt3f(pt, pts); +pts.z += this.tm.navZ; +this.tm.unTransformPoint(pts, pt); +this.tm.setNavigatePt(pt); +}); +Clazz.overrideMethod(c$, "navigateKey", +function(keyCode, modifiers){ +var key = null; +var value = 0; +if (this.tm.mode != 1) return; +if (keyCode == 0) { +this.nHits = 0; +this.multiplier = 1; +if (!this.tm.navigating) return; +this.tm.navigating = false; +return; +}this.nHits++; +if (this.nHits % 10 == 0) this.multiplier *= (this.multiplier == 4 ? 1 : 2); +var isShiftKey = ((modifiers & 1) > 0); +var isAltKey = ((modifiers & 8) > 0); +var isCtrlKey = ((modifiers & 2) > 0); +var speed = this.vwr.getFloat(570425374) * (isCtrlKey ? 10 : 1); +switch (keyCode) { +case 46: +this.tm.navX = this.tm.navY = this.tm.navZ = 0; +this.tm.homePosition(true); +return; +case 32: +if (!this.tm.navOn) return; +this.tm.navX = this.tm.navY = this.tm.navZ = 0; +return; +case 38: +if (this.tm.navOn) { +if (isAltKey) { +this.tm.navY += this.multiplier; +value = this.tm.navY; +key = "navY"; +} else { +this.tm.navZ += this.multiplier; +value = this.tm.navZ; +key = "navZ"; +}break; +}if (isShiftKey) { +this.tm.navigationOffset.y -= 2 * this.multiplier; +this.tm.navMode = 2; +break; +}if (isAltKey) { +this.tm.rotateXRadians((0.017453292519943295 * -0.2 * this.multiplier), null); +this.tm.navMode = 3; +break; +}this.tm.modelCenterOffset -= speed * (this.vwr.getBoolean(603979890) ? 1 : this.multiplier); +this.tm.navMode = 4; +break; +case 40: +if (this.tm.navOn) { +if (isAltKey) { +this.tm.navY -= this.multiplier; +value = this.tm.navY; +key = "navY"; +} else { +this.tm.navZ -= this.multiplier; +value = this.tm.navZ; +key = "navZ"; +}break; +}if (isShiftKey) { +this.tm.navigationOffset.y += 2 * this.multiplier; +this.tm.navMode = 2; +break; +}if (isAltKey) { +this.tm.rotateXRadians((0.017453292519943295 * .2 * this.multiplier), null); +this.tm.navMode = 3; +break; +}this.tm.modelCenterOffset += speed * (this.vwr.getBoolean(603979890) ? 1 : this.multiplier); +this.tm.navMode = 4; +break; +case 37: +if (this.tm.navOn) { +this.tm.navX -= this.multiplier; +value = this.tm.navX; +key = "navX"; +break; +}if (isShiftKey) { +this.tm.navigationOffset.x -= 2 * this.multiplier; +this.tm.navMode = 2; +break; +}this.tm.rotateYRadians((0.017453292519943295 * 3 * -0.2 * this.multiplier), null); +this.tm.navMode = 3; +break; +case 39: +if (this.tm.navOn) { +this.tm.navX += this.multiplier; +value = this.tm.navX; +key = "navX"; +break; +}if (isShiftKey) { +this.tm.navigationOffset.x += 2 * this.multiplier; +this.tm.navMode = 2; +break; +}this.tm.rotateYRadians((0.017453292519943295 * 3 * .2 * this.multiplier), null); +this.tm.navMode = 3; +break; +default: +this.tm.navigating = false; +this.tm.navMode = 0; +return; +} +if (key != null) this.vwr.g.setF(key, value); +this.tm.navigating = true; +this.tm.finalizeTransformParameters(); +}, "~N,~N"); +Clazz.overrideMethod(c$, "setNavigationDepthPercent", +function(percent){ +this.vwr.g.setF("navigationDepth", percent); +this.tm.calcCameraFactors(); +this.tm.modelCenterOffset = this.tm.referencePlaneOffset - (1 - percent / 50) * this.tm.modelRadiusPixels; +this.tm.calcCameraFactors(); +this.tm.navMode = -1; +}, "~N"); +Clazz.defineMethod(c$, "calcNavigationDepthPercent", +function(){ +this.tm.calcCameraFactors(); +this.tm.navigationDepthPercent = (this.tm.modelRadiusPixels == 0 ? 50 : 50 * (1 + (this.tm.modelCenterOffset - this.tm.referencePlaneOffset) / this.tm.modelRadiusPixels)); +}); +Clazz.overrideMethod(c$, "getNavigationState", +function(){ +return "# navigation state;\nnavigate 0 center " + JU.Escape.eP(this.tm.navigationCenter) + ";\nnavigate 0 translate " + this.tm.getNavigationOffsetPercent('X') + " " + this.tm.getNavigationOffsetPercent('Y') + ";\nset navigationDepth " + this.tm.navigationDepthPercent + ";\nset navigationSlab " + this.getNavigationSlabOffsetPercent() + ";\n\n"; +}); +Clazz.defineMethod(c$, "getNavigationSlabOffsetPercent", +function(){ +this.tm.calcCameraFactors(); +return 50 * this.tm.navigationSlabOffset / this.tm.modelRadiusPixels; +}); +Clazz.overrideMethod(c$, "navigateAxis", +function(rotAxis, degrees){ +if (degrees == 0) return; +this.tm.rotateAxisAngle(rotAxis, (degrees / 57.29577951308232)); +this.tm.navMode = 3; +this.tm.navigating = true; +this.tm.finalizeTransformParameters(); +this.tm.navigating = false; +}, "JU.V3,~N"); +Clazz.overrideMethod(c$, "navTranslatePercentOrTo", +function(seconds, x, y){ +var pt1 = JU.P3.new3(x, y, 0); +if (seconds >= 0) this.setNavPercent(pt1); +if (!Float.isNaN(pt1.x)) this.tm.navigationOffset.x = pt1.x; +if (!Float.isNaN(pt1.y)) this.tm.navigationOffset.y = pt1.y; +this.tm.navMode = 2; +this.tm.navigating = true; +this.tm.finalizeTransformParameters(); +this.tm.navigating = false; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "oops", +function(e){ +Clazz.superCall(this, J.navigate.Navigator, "oops", [e]); +this.tm.navigating = false; +}, "Exception"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/popup/GenericPopup.js b/config/plugins/visualizations/jmol/static/j2s/J/popup/GenericPopup.js new file mode 100755 index 000000000000..c47bb97124d9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/popup/GenericPopup.js @@ -0,0 +1,375 @@ +Clazz.declarePackage("J.popup"); +Clazz.load(["J.api.GenericMenuInterface", "java.util.Hashtable", "JU.Lst"], "J.popup.GenericPopup", ["java.util.StringTokenizer", "JU.PT", "$.SB", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.helper = null; +this.strMenuStructure = null; +this.allowSignedFeatures = false; +this.isJS = false; +this.isApplet = false; +this.isSigned = false; +this.isWebGL = false; +this.thisx = 0; +this.thisy = 0; +this.isTainted = true; +this.menuName = null; +this.popupMenu = null; +this.thisPopup = null; +this.htCheckbox = null; +this.buttonGroup = null; +this.currentMenuItemId = null; +this.htMenus = null; +this.SignedOnly = null; +this.updatingForShow = false; +Clazz.instantialize(this, arguments);}, J.popup, "GenericPopup", null, J.api.GenericMenuInterface); +Clazz.prepareFields (c$, function(){ +this.htCheckbox = new java.util.Hashtable(); +this.htMenus = new java.util.Hashtable(); +this.SignedOnly = new JU.Lst(); +}); +Clazz.defineMethod(c$, "appCheckItem", +function(item, newMenu){ +}, "~S,J.api.SC"); +Clazz.defineMethod(c$, "appCheckSpecialMenu", +function(item, subMenu, word){ +}, "~S,J.api.SC,~S"); +Clazz.defineMethod(c$, "initSwing", +function(title, bundle, applet, isJS, isSigned, isWebGL){ +this.isJS = isJS; +this.isApplet = (applet != null); +this.isSigned = isSigned; +this.isWebGL = isWebGL; +this.allowSignedFeatures = (!this.isApplet || isSigned); +this.menuName = title; +this.popupMenu = this.helper.menuCreatePopup(title, applet); +this.thisPopup = this.popupMenu; +this.htMenus.put(title, this.popupMenu); +this.addMenuItems("", title, this.popupMenu, bundle); +}, "~S,J.popup.PopupResource,~O,~B,~B,~B"); +Clazz.defineMethod(c$, "addMenuItems", +function(parentId, key, menu, popupResourceBundle){ +var id = parentId + "." + key; +var value = popupResourceBundle.getStructure(key); +if (JU.Logger.debugging) JU.Logger.debug(id + " --- " + value); +if (value == null) { +this.menuCreateItem(menu, "#" + key, "", ""); +return; +}var st = new java.util.StringTokenizer(value); +var item; +while (value.indexOf("@") >= 0) { +var s = ""; +while (st.hasMoreTokens()) s += " " + ((item = st.nextToken()).startsWith("@") ? popupResourceBundle.getStructure(item) : item); + +value = s.substring(1); +st = new java.util.StringTokenizer(value); +} +while (st.hasMoreTokens()) { +item = st.nextToken(); +if (!this.checkKey(item)) continue; +if ("-".equals(item)) { +this.menuAddSeparator(menu); +this.helper.menuAddButtonGroup(null); +continue; +}if (",".equals(item)) { +this.menuAddSeparator(menu); +continue; +}var label = popupResourceBundle.getWord(item); +var newItem = null; +var script = ""; +var isCB = false; +label = this.appFixLabel(label == null ? item : label); +if (label.equals("null")) { +continue; +}if (item.indexOf("Menu") >= 0) { +if (item.indexOf("more") < 0) this.helper.menuAddButtonGroup(null); +var subMenu = this.menuNewSubMenu(label, id + "." + item); +this.menuAddSubMenu(menu, subMenu); +this.addMenu(id, item, subMenu, label, popupResourceBundle); +newItem = subMenu; +} else if (item.endsWith("Checkbox") || (isCB = (item.endsWith("CB") || item.endsWith("RD")))) { +script = popupResourceBundle.getStructure(item); +var basename = item.substring(0, item.length - (!isCB ? 8 : 2)); +var isRadio = (isCB && item.endsWith("RD")); +if (script == null || script.length == 0 && !isRadio) script = "set " + basename + " T/F"; +newItem = this.menuCreateCheckboxItem(menu, label, basename + ":" + script, id + "." + item, false, isRadio); +this.rememberCheckbox(basename, newItem); +if (isRadio) this.helper.menuAddButtonGroup(newItem); +} else { +script = popupResourceBundle.getStructure(item); +if (script == null) script = item; +newItem = this.menuCreateItem(menu, label, script, id + "." + item); +}this.htMenus.put(item, newItem); +if (item.startsWith("SIGNED")) { +this.SignedOnly.addLast(newItem); +if (!this.allowSignedFeatures) this.menuEnable(newItem, false); +}this.appCheckItem(item, newItem); +} +}, "~S,~S,J.api.SC,J.popup.PopupResource"); +Clazz.defineMethod(c$, "addMenu", +function(id, item, subMenu, label, popupResourceBundle){ +if (item.indexOf("Computed") < 0) this.addMenuItems(id, item, subMenu, popupResourceBundle); +this.appCheckSpecialMenu(item, subMenu, label); +}, "~S,~S,J.api.SC,~S,J.popup.PopupResource"); +Clazz.defineMethod(c$, "updateSignedAppletItems", +function(){ +for (var i = this.SignedOnly.size(); --i >= 0; ) this.menuEnable(this.SignedOnly.get(i), this.allowSignedFeatures); + +}); +Clazz.defineMethod(c$, "checkKey", +function(key){ +return (key.indexOf(this.isApplet ? "JAVA" : "APPLET") < 0 && (!this.isWebGL || key.indexOf("NOGL") < 0)); +}, "~S"); +Clazz.defineMethod(c$, "rememberCheckbox", +function(key, checkboxMenuItem){ +this.htCheckbox.put(key + "::" + this.htCheckbox.size(), checkboxMenuItem); +}, "~S,J.api.SC"); +Clazz.defineMethod(c$, "updateButton", +function(b, entry, script){ +var ret = Clazz.newArray(-1, [entry]); +var icon = this.getEntryIcon(ret); +entry = ret[0]; +b.init(entry, icon, script, this.thisPopup); +this.isTainted = true; +}, "J.api.SC,~S,~S"); +Clazz.defineMethod(c$, "getEntryIcon", +function(ret){ +var entry = ret[0]; +if (!entry.startsWith("<")) return null; +var pt = entry.indexOf(">"); +ret[0] = entry.substring(pt + 1); +var fileName = entry.substring(1, pt); +return this.getImageIcon(fileName); +}, "~A"); +Clazz.defineMethod(c$, "addMenuItem", +function(menuItem, entry){ +return this.menuCreateItem(menuItem, entry, "", null); +}, "J.api.SC,~S"); +Clazz.defineMethod(c$, "menuSetLabel", +function(m, entry){ +if (m == null) return; +m.setText(entry); +this.isTainted = true; +}, "J.api.SC,~S"); +Clazz.defineMethod(c$, "menuClickCallback", +function(source, script){ +this.doMenuClickCallback(source, script); +}, "J.api.SC,~S"); +Clazz.defineMethod(c$, "doMenuClickCallback", +function(source, script){ +this.appRestorePopupMenu(); +if (script == null || script.length == 0) return; +if (script.equals("MAIN")) { +this.show(this.thisx, this.thisy, true); +return; +}var id = this.menuGetId(source); +if (id != null) { +script = this.getScriptForCallback(source, id, script); +this.currentMenuItemId = id; +}if (script != null) this.appRunScript(script); +}, "J.api.SC,~S"); +Clazz.defineMethod(c$, "menuCheckBoxCallback", +function(source){ +this.doMenuCheckBoxCallback(source); +}, "J.api.SC"); +Clazz.defineMethod(c$, "doMenuCheckBoxCallback", +function(source){ +this.appRestorePopupMenu(); +var isSelected = source.isSelected(); +var what = source.getActionCommand(); +this.runCheckBoxScript(source, what, isSelected); +this.appUpdateSpecialCheckBoxValue(source, what, isSelected); +this.isTainted = true; +var id = this.menuGetId(source); +if (id != null) { +this.currentMenuItemId = id; +}}, "J.api.SC"); +Clazz.defineMethod(c$, "runCheckBoxScript", +function(item, what, TF){ +if (!item.isEnabled()) return; +if (what.indexOf("##") < 0) { +var pt = what.indexOf(":"); +if (pt < 0) { +JU.Logger.error("check box " + item + " IS " + what); +return; +}var basename = what.substring(0, pt); +if (this.appRunSpecialCheckBox(item, basename, what, TF)) return; +what = what.substring(pt + 1); +if ((pt = what.indexOf("|")) >= 0) what = (TF ? what.substring(0, pt) : what.substring(pt + 1)).trim(); +what = JU.PT.rep(what, "T/F", (TF ? " TRUE" : " FALSE")); +}this.appRunScript(what); +}, "J.api.SC,~S,~B"); +Clazz.defineMethod(c$, "menuCreateItem", +function(menu, entry, script, id){ +var item = this.helper.getMenuItem(entry); +item.addActionListener(this.helper); +return this.newMenuItem(item, menu, entry, script, id); +}, "J.api.SC,~S,~S,~S"); +Clazz.defineMethod(c$, "menuCreateCheckboxItem", +function(menu, entry, basename, id, state, isRadio){ +var jmi = (isRadio ? this.helper.getRadio(entry) : this.helper.getCheckBox(entry)); +jmi.setSelected(state); +jmi.addItemListener(this.helper); +return this.newMenuItem(jmi, menu, entry, basename, id); +}, "J.api.SC,~S,~S,~S,~B,~B"); +Clazz.defineMethod(c$, "menuAddSeparator", +function(menu){ +menu.add(this.helper.getMenuItem(null)); +this.isTainted = true; +}, "J.api.SC"); +Clazz.defineMethod(c$, "menuNewSubMenu", +function(entry, id){ +var jm = this.helper.getMenu(entry); +jm.addMouseListener(this.helper); +this.updateButton(jm, entry, null); +jm.setName(id); +jm.setAutoscrolls(true); +return jm; +}, "~S,~S"); +Clazz.defineMethod(c$, "menuRemoveAll", +function(menu, indexFrom){ +if (indexFrom <= 0) menu.removeAll(); + else for (var i = menu.getComponentCount(); --i >= indexFrom; ) menu.remove(i); + +this.isTainted = true; +}, "J.api.SC,~N"); +Clazz.defineMethod(c$, "newMenuItem", +function(item, menu, text, script, id){ +this.updateButton(item, text, script); +item.addMouseListener(this.helper); +item.setName(id == null ? menu.getName() + "." : id); +this.menuAddItem(menu, item); +return item; +}, "J.api.SC,J.api.SC,~S,~S,~S"); +Clazz.defineMethod(c$, "setText", +function(item, text){ +var m = this.htMenus.get(item); +if (m != null) m.setText(text); +return m; +}, "~S,~S"); +Clazz.defineMethod(c$, "menuAddItem", +function(menu, item){ +menu.add(item); +this.isTainted = true; +}, "J.api.SC,J.api.SC"); +Clazz.defineMethod(c$, "menuAddSubMenu", +function(menu, subMenu){ +subMenu.addMouseListener(this.helper); +this.menuAddItem(menu, subMenu); +}, "J.api.SC,J.api.SC"); +Clazz.defineMethod(c$, "menuEnable", +function(component, enable){ +if (component == null || component.isEnabled() == enable) return; +component.setEnabled(enable); +}, "J.api.SC,~B"); +Clazz.defineMethod(c$, "menuGetId", +function(menu){ +return menu.getName(); +}, "J.api.SC"); +Clazz.defineMethod(c$, "menuSetAutoscrolls", +function(menu){ +menu.setAutoscrolls(true); +this.isTainted = true; +}, "J.api.SC"); +Clazz.defineMethod(c$, "menuGetListPosition", +function(item){ +var p = item.getParent(); +var i; +for (i = p.getComponentCount(); --i >= 0; ) if (this.helper.getSwingComponent(p.getComponent(i)) === item) break; + +return i; +}, "J.api.SC"); +Clazz.defineMethod(c$, "show", +function(x, y, doPopup){ +this.appUpdateForShow(); +this.updateCheckBoxesForShow(); +if (doPopup) this.menuShowPopup(this.popupMenu, this.thisx, this.thisy); +}, "~N,~N,~B"); +Clazz.defineMethod(c$, "updateCheckBoxesForShow", +function(){ +for (var entry, $entry = this.htCheckbox.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +var key = entry.getKey(); +var item = entry.getValue(); +var basename = key.substring(0, key.indexOf(":")); +var b = this.appGetBooleanProperty(basename); +var updateShow = this.updatingForShow; +this.updatingForShow = true; +if (item.isSelected() != b) { +item.setSelected(b); +this.isTainted = true; +}this.updatingForShow = updateShow; +} +}); +Clazz.overrideMethod(c$, "jpiGetMenuAsString", +function(title){ +this.appUpdateForShow(); +var pt = title.indexOf("|"); +if (pt >= 0) { +var type = title.substring(pt); +title = title.substring(0, pt); +if (type.indexOf("current") >= 0) { +var sb = new JU.SB(); +var menu = this.htMenus.get(this.menuName); +this.menuGetAsText(sb, 0, menu, "PopupMenu"); +return sb.toString(); +}}return this.appGetMenuAsString(title); +}, "~S"); +Clazz.defineMethod(c$, "appGetMenuAsString", +function(title){ +return null; +}, "~S"); +Clazz.defineMethod(c$, "menuGetAsText", +function(sb, level, menu, menuName){ +var name = menuName; +var subMenus = menu.getComponents(); +var flags = null; +var script = null; +var text = null; +var key = 'S'; +for (var i = 0; i < subMenus.length; i++) { +var source = this.helper.getSwingComponent(subMenus[i]); +var type = this.helper.getItemType(source); +switch (type) { +case 4: +key = 'M'; +name = source.getName(); +flags = "enabled:" + source.isEnabled(); +text = source.getText(); +script = null; +break; +case 0: +key = 'S'; +flags = script = text = null; +break; +default: +key = 'I'; +flags = "enabled:" + source.isEnabled(); +if (type == 2 || type == 3) flags += ";checked:" + source.isSelected(); +script = this.getScriptForCallback(source, source.getName(), source.getActionCommand()); +name = source.getName(); +text = source.getText(); +break; +} +J.popup.GenericPopup.addItemText(sb, key, level, name, text, script, flags); +if (type == 2) this.menuGetAsText(sb, level + 1, this.helper.getSwingComponent(source.getPopupMenu()), name); +} +}, "JU.SB,~N,J.api.SC,~S"); +c$.addItemText = Clazz.defineMethod(c$, "addItemText", +function(sb, type, level, name, label, script, flags){ +sb.appendC(type).appendI(level).appendC('\t').append(name); +if (label == null) { +sb.append(".\n"); +return; +}sb.append("\t").append(label).append("\t").append(script == null || script.length == 0 ? "-" : script).append("\t").append(flags).append("\n"); +}, "JU.SB,~S,~N,~S,~S,~S,~S"); +c$.convertToMegabytes = Clazz.defineMethod(c$, "convertToMegabytes", +function(num){ +if (num <= 9223372036854251519) num += 524288; +return (Clazz.doubleToInt(num / (1048576))); +}, "~N"); +Clazz.overrideMethod(c$, "jpiDispose", +function(){ +this.popupMenu = this.thisPopup = null; +this.helper.dispose(this.popupMenu); +this.helper = null; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/popup/JmolGenericPopup.js b/config/plugins/visualizations/jmol/static/j2s/J/popup/JmolGenericPopup.js new file mode 100755 index 000000000000..1381f1acb2d2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/popup/JmolGenericPopup.js @@ -0,0 +1,76 @@ +Clazz.declarePackage("J.popup"); +Clazz.load(["J.popup.GenericPopup", "java.util.Properties"], "J.popup.JmolGenericPopup", ["J.i18n.GT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.frankPopup = null; +this.nFrankList = 0; +this.vwr = null; +this.menuText = null; +Clazz.instantialize(this, arguments);}, J.popup, "JmolGenericPopup", J.popup.GenericPopup); +Clazz.prepareFields (c$, function(){ +this.menuText = new java.util.Properties(); +}); +Clazz.overrideMethod(c$, "jpiInitialize", +function(vwr, menu){ +var doTranslate = J.i18n.GT.setDoTranslate(true); +var bundle = this.getBundle(menu); +this.initialize(vwr, bundle, bundle.getMenuName()); +J.i18n.GT.setDoTranslate(doTranslate); +}, "J.api.PlatformViewer,~S"); +Clazz.defineMethod(c$, "initialize", +function(vwr, bundle, title){ +this.vwr = vwr; +this.initSwing(title, bundle, vwr.isJSNoAWT ? vwr.html5Applet : null, vwr.isJSNoAWT, vwr.getBooleanProperty("_signedApplet"), vwr.isWebGL); +}, "JV.Viewer,J.popup.PopupResource,~S"); +Clazz.overrideMethod(c$, "jpiShow", +function(x, y){ +if (!this.vwr.haveDisplay) return; +this.thisx = x; +this.thisy = y; +this.show(x, y, false); +if (x < 0 && this.showFrankMenu()) return; +this.appRestorePopupMenu(); +this.menuShowPopup(this.popupMenu, this.thisx, this.thisy); +}, "~N,~N"); +Clazz.defineMethod(c$, "showFrankMenu", +function(){ +return true; +}); +Clazz.defineMethod(c$, "jpiDispose", +function(){ +this.vwr = null; +Clazz.superCall(this, J.popup.JmolGenericPopup, "jpiDispose", []); +}); +Clazz.overrideMethod(c$, "jpiGetMenuAsObject", +function(){ +return this.popupMenu; +}); +Clazz.overrideMethod(c$, "appFixLabel", +function(label){ +return label; +}, "~S"); +Clazz.overrideMethod(c$, "appGetBooleanProperty", +function(name){ +return this.vwr.getBooleanProperty(name); +}, "~S"); +Clazz.overrideMethod(c$, "appRunSpecialCheckBox", +function(item, basename, script, TF){ +if (this.appGetBooleanProperty(basename) == TF) return true; +if (basename.indexOf("mk") < 0 && !basename.endsWith("P!")) return false; +if (basename.indexOf("mk") >= 0 || basename.indexOf("??") >= 0) { +script = this.getUnknownCheckBoxScriptToRun(item, basename, script, TF); +} else { +if (!TF) return true; +script = "set picking " + basename.substring(0, basename.length - 2); +}if (script != null) this.appRunScript(script); +return true; +}, "J.api.SC,~S,~S,~B"); +Clazz.overrideMethod(c$, "appRestorePopupMenu", +function(){ +this.thisPopup = this.popupMenu; +}); +Clazz.overrideMethod(c$, "appRunScript", +function(script){ +this.vwr.evalStringGUI(script); +}, "~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/popup/JmolPopup.js b/config/plugins/visualizations/jmol/static/j2s/J/popup/JmolPopup.js new file mode 100755 index 000000000000..34fb53f4e928 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/popup/JmolPopup.js @@ -0,0 +1,712 @@ +Clazz.declarePackage("J.popup"); +Clazz.load(["J.popup.JmolGenericPopup", "JU.Lst"], "J.popup.JmolPopup", ["java.util.Arrays", "$.Hashtable", "JU.PT", "J.i18n.GT", "JM.Group", "J.popup.MainPopupResourceBundle", "JU.Elements", "JV.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.updateMode = 0; +this.titleWidthMax = 20; +this.nullModelSetName = null; +this.modelSetName = null; +this.modelSetFileName = null; +this.modelSetRoot = null; +this.currentFrankId = null; +this.configurationSelected = ""; +this.altlocs = null; +this.frankList = null; +this.modelSetInfo = null; +this.modelInfo = null; +this.NotPDB = null; +this.PDBOnly = null; +this.FileUnitOnly = null; +this.FileMolOnly = null; +this.UnitcellOnly = null; +this.SingleModelOnly = null; +this.FramesOnly = null; +this.VibrationOnly = null; +this.Special = null; +this.SymmetryOnly = null; +this.ChargesOnly = null; +this.TemperatureOnly = null; +this.fileHasUnitCell = false; +this.haveBFactors = false; +this.haveCharges = false; +this.isLastFrame = false; +this.isMultiConfiguration = false; +this.isMultiFrame = false; +this.isPDB = false; +this.hasSymmetry = false; +this.isUnitCell = false; +this.isVibration = false; +this.isZapped = false; +this.modelIndex = 0; +this.modelCount = 0; +this.ac = 0; +this.group3List = null; +this.group3Counts = null; +this.cnmrPeaks = null; +this.hnmrPeaks = null; +this.noZapped = null; +Clazz.instantialize(this, arguments);}, J.popup, "JmolPopup", J.popup.JmolGenericPopup); +Clazz.prepareFields (c$, function(){ +this.frankList = new Array(10); +this.NotPDB = new JU.Lst(); +this.PDBOnly = new JU.Lst(); +this.FileUnitOnly = new JU.Lst(); +this.FileMolOnly = new JU.Lst(); +this.UnitcellOnly = new JU.Lst(); +this.SingleModelOnly = new JU.Lst(); +this.FramesOnly = new JU.Lst(); +this.VibrationOnly = new JU.Lst(); +this.Special = new JU.Lst(); +this.SymmetryOnly = new JU.Lst(); +this.ChargesOnly = new JU.Lst(); +this.TemperatureOnly = new JU.Lst(); +this.noZapped = Clazz.newArray(-1, ["surfaceMenu", "measureMenu", "pickingMenu", "computationMenu", "SIGNEDJAVAcaptureMenuSPECIAL"]); +}); +Clazz.defineMethod(c$, "jpiDispose", +function(){ +this.helper.menuClearListeners(this.frankPopup); +this.frankPopup = null; +Clazz.superCall(this, J.popup.JmolPopup, "jpiDispose", []); +}); +Clazz.overrideMethod(c$, "getBundle", +function(menu){ +return new J.popup.MainPopupResourceBundle(this.strMenuStructure = menu, this.menuText); +}, "~S"); +Clazz.overrideMethod(c$, "showFrankMenu", +function(){ +this.getViewerData(); +this.setFrankMenu(this.currentMenuItemId); +this.thisx = -this.thisx - 50; +if (this.nFrankList > 1) { +this.thisy -= this.nFrankList * 20; +this.menuShowPopup(this.frankPopup, this.thisx, this.thisy); +return true; +}return false; +}); +Clazz.overrideMethod(c$, "jpiUpdateComputedMenus", +function(){ +if (this.updateMode == -1) return; +this.isTainted = true; +this.getViewerData(); +this.updateMode = 0; +this.updateMenus(); +}); +Clazz.defineMethod(c$, "updateMenus", +function(){ +this.updateSelectMenu(); +this.updateModelSetComputedMenu(); +this.updateAboutSubmenu(); +if (this.updateMode == 0) { +this.updateFileMenu(); +this.updateElementsComputedMenu(this.vwr.getElementsPresentBitSet(this.modelIndex)); +this.updateHeteroComputedMenu(this.vwr.ms.getHeteroList(this.modelIndex)); +this.updateSurfMoComputedMenu(this.modelInfo.get("moData")); +this.updateFileTypeDependentMenus(); +this.updatePDBResidueComputedMenus(); +this.updateMode = 1; +this.updateConfigurationComputedMenu(); +this.updateSYMMETRYComputedMenus(); +this.updateFRAMESbyModelComputedMenu(); +this.updateLanguageSubmenu(); +} else { +this.updateSpectraMenu(); +this.updateFRAMESbyModelComputedMenu(); +this.updateSceneComputedMenu(); +for (var i = this.Special.size(); --i >= 0; ) this.updateSpecialMenuItem(this.Special.get(i)); + +}}); +Clazz.overrideMethod(c$, "appCheckItem", +function(item, newMenu){ +if (item.indexOf("!PDB") >= 0) { +this.NotPDB.addLast(newMenu); +} else if (item.indexOf("PDB") >= 0) { +this.PDBOnly.addLast(newMenu); +}if (item.indexOf("CHARGE") >= 0) { +this.ChargesOnly.addLast(newMenu); +} else if (item.indexOf("BFACTORS") >= 0) { +this.TemperatureOnly.addLast(newMenu); +} else if (item.indexOf("UNITCELL") >= 0) { +this.UnitcellOnly.addLast(newMenu); +} else if (item.indexOf("FILEUNIT") >= 0) { +this.FileUnitOnly.addLast(newMenu); +} else if (item.indexOf("FILEMOL") >= 0) { +this.FileMolOnly.addLast(newMenu); +}if (item.indexOf("!FRAMES") >= 0) { +this.SingleModelOnly.addLast(newMenu); +} else if (item.indexOf("FRAMES") >= 0) { +this.FramesOnly.addLast(newMenu); +}if (item.indexOf("VIBRATION") >= 0) { +this.VibrationOnly.addLast(newMenu); +} else if (item.indexOf("SYMMETRY") >= 0) { +this.SymmetryOnly.addLast(newMenu); +}if (item.indexOf("SPECIAL") >= 0) this.Special.addLast(newMenu); +}, "~S,J.api.SC"); +Clazz.overrideMethod(c$, "appGetMenuAsString", +function(title){ +return ( new J.popup.MainPopupResourceBundle(this.strMenuStructure, null)).getMenuAsText(title); +}, "~S"); +Clazz.overrideMethod(c$, "getScriptForCallback", +function(source, id, script){ +var pt; +if (script === "" || id.endsWith("Checkbox")) return script; +if (script.indexOf("SELECT") == 0) { +return "select thisModel and (" + script.substring(6) + ")"; +}if ((pt = id.lastIndexOf("[")) >= 0) { +id = id.substring(pt + 1); +if ((pt = id.indexOf("]")) >= 0) id = id.substring(0, pt); +id = id.$replace('_', ' '); +if (script.indexOf("[]") < 0) script = "[] " + script; +script = script.$replace('_', ' '); +return JU.PT.rep(script, "[]", id); +} else if (script.indexOf("?FILEROOT?") >= 0) { +script = JU.PT.rep(script, "FILEROOT?", this.modelSetRoot); +} else if (script.indexOf("?FILE?") >= 0) { +script = JU.PT.rep(script, "FILE?", this.modelSetFileName); +} else if (script.indexOf("?PdbId?") >= 0) { +script = JU.PT.rep(script, "PdbId?", "=xxxx"); +}return script; +}, "J.api.SC,~S,~S"); +Clazz.overrideMethod(c$, "appRestorePopupMenu", +function(){ +this.thisPopup = this.popupMenu; +if (this.vwr.isJSNoAWT || this.nFrankList < 2) return; +for (var i = this.nFrankList; --i > 0; ) { +var f = this.frankList[i]; +this.helper.menuInsertSubMenu(f[0], f[1], (f[2]).intValue()); +} +this.nFrankList = 1; +}); +Clazz.overrideMethod(c$, "appUpdateSpecialCheckBoxValue", +function(item, what, TF){ +if (!this.updatingForShow && what.indexOf("#CONFIG") >= 0) { +this.configurationSelected = what; +this.updateConfigurationComputedMenu(); +this.updateModelSetComputedMenu(); +}}, "J.api.SC,~S,~B"); +Clazz.defineMethod(c$, "setFrankMenu", +function(id){ +if (this.currentFrankId != null && this.currentFrankId === id && this.nFrankList > 0) return; +if (this.frankPopup == null) this.frankPopup = this.helper.menuCreatePopup("Frank", this.vwr.html5Applet); +this.thisPopup = this.frankPopup; +this.menuRemoveAll(this.frankPopup, 0); +this.menuCreateItem(this.frankPopup, this.getMenuText("mainMenuText"), "MAIN", ""); +this.currentFrankId = id; +this.nFrankList = 0; +this.frankList[this.nFrankList++] = Clazz.newArray(-1, [null, null, null]); +if (id != null) for (var i = id.indexOf(".", 2) + 1; ; ) { +var iNew = id.indexOf(".", i); +if (iNew < 0) break; +var menu = this.htMenus.get(id.substring(i, iNew)); +this.frankList[this.nFrankList++] = Clazz.newArray(-1, [menu.getParent(), menu, Integer.$valueOf(this.vwr.isJSNoAWT ? 0 : this.menuGetListPosition(menu))]); +this.menuAddSubMenu(this.frankPopup, menu); +i = iNew + 1; +} +this.thisPopup = this.popupMenu; +}, "~S"); +Clazz.defineMethod(c$, "checkBoolean", +function(key){ +return (this.modelSetInfo != null && this.modelSetInfo.get(key) === Boolean.TRUE); +}, "~S"); +Clazz.defineMethod(c$, "getViewerData", +function(){ +this.modelSetName = this.vwr.ms.modelSetName; +this.modelSetFileName = this.vwr.getModelSetFileName(); +var i = this.modelSetFileName.lastIndexOf("."); +this.isZapped = ("zapped".equals(this.modelSetName)); +if (this.isZapped || "string".equals(this.modelSetFileName) || "String[]".equals(this.modelSetFileName)) this.modelSetFileName = ""; +this.modelSetRoot = this.modelSetFileName.substring(0, i < 0 ? this.modelSetFileName.length : i); +if (this.modelSetRoot.length == 0) this.modelSetRoot = "Jmol"; +this.modelIndex = this.vwr.am.cmi; +this.modelCount = this.vwr.ms.mc; +this.ac = this.vwr.ms.getAtomCountInModel(this.modelIndex); +this.modelSetInfo = this.vwr.getModelSetAuxiliaryInfo(); +this.modelInfo = this.vwr.ms.getModelAuxiliaryInfo(this.modelIndex); +if (this.modelInfo == null) this.modelInfo = new java.util.Hashtable(); +this.isPDB = this.checkBoolean(JV.JC.getBoolName(4)); +this.isMultiFrame = (this.modelCount > 1); +this.hasSymmetry = !this.isPDB && this.modelInfo.containsKey("hasSymmetry"); +this.isUnitCell = this.modelInfo.containsKey("unitCellParams"); +this.fileHasUnitCell = (this.isPDB && this.isUnitCell || this.checkBoolean("fileHasUnitCell")); +this.isLastFrame = (this.modelIndex == this.modelCount - 1); +this.altlocs = this.vwr.ms.getAltLocListInModel(this.modelIndex); +this.isMultiConfiguration = (this.altlocs.length > 0); +this.isVibration = (this.vwr.modelHasVibrationVectors(this.modelIndex)); +this.haveCharges = (this.vwr.ms.getPartialCharges() != null); +this.haveBFactors = (this.vwr.getBooleanProperty("haveBFactors")); +this.cnmrPeaks = this.modelInfo.get("jdxAtomSelect_13CNMR"); +this.hnmrPeaks = this.modelInfo.get("jdxAtomSelect_1HNMR"); +}); +Clazz.overrideMethod(c$, "appCheckSpecialMenu", +function(item, subMenu, word){ +if ("modelSetMenu".equals(item)) { +this.nullModelSetName = word; +this.menuEnable(subMenu, false); +}}, "~S,J.api.SC,~S"); +Clazz.overrideMethod(c$, "appUpdateForShow", +function(){ +if (this.updateMode == -1) return; +this.isTainted = true; +this.getViewerData(); +this.updateMode = 2; +this.updateMenus(); +}); +Clazz.defineMethod(c$, "updateFileMenu", +function(){ +var menu = this.htMenus.get("fileMenu"); +if (menu == null) return; +var text = this.getMenuText("writeFileTextVARIABLE"); +menu = this.htMenus.get("writeFileTextVARIABLE"); +if (menu == null) return; +var ignore = (this.modelSetFileName.equals("zapped") || this.modelSetFileName.equals("")); +if (ignore) { +this.menuSetLabel(menu, ""); +this.menuEnable(menu, false); +} else { +this.menuSetLabel(menu, J.i18n.GT.o(J.i18n.GT.$(text), this.modelSetFileName)); +this.menuEnable(menu, true); +}}); +Clazz.defineMethod(c$, "getMenuText", +function(key){ +var str = this.menuText.getProperty(key); +return (str == null ? key : str); +}, "~S"); +Clazz.defineMethod(c$, "updateSelectMenu", +function(){ +var menu = this.htMenus.get("selectMenuText"); +if (menu == null) return; +this.menuEnable(menu, this.ac != 0); +this.menuSetLabel(menu, this.gti("selectMenuText", this.vwr.slm.getSelectionCount())); +}); +Clazz.defineMethod(c$, "updateElementsComputedMenu", +function(elementsPresentBitSet){ +var menu = this.htMenus.get("elementsComputedMenu"); +if (menu == null) return; +this.menuRemoveAll(menu, 0); +this.menuEnable(menu, false); +if (elementsPresentBitSet == null) return; +for (var i = elementsPresentBitSet.nextSetBit(0); i >= 0; i = elementsPresentBitSet.nextSetBit(i + 1)) { +var elementName = JU.Elements.elementNameFromNumber(i); +var elementSymbol = JU.Elements.elementSymbolFromNumber(i); +var entryName = elementSymbol + " - " + elementName; +this.menuCreateItem(menu, entryName, "SELECT " + elementName, null); +} +for (var i = 4; i < JU.Elements.altElementMax; ++i) { +var n = JU.Elements.elementNumberMax + i; +if (elementsPresentBitSet.get(n)) { +n = JU.Elements.altElementNumberFromIndex(i); +var elementName = JU.Elements.elementNameFromNumber(n); +var elementSymbol = JU.Elements.elementSymbolFromNumber(n); +var entryName = elementSymbol + " - " + elementName; +this.menuCreateItem(menu, entryName, "SELECT " + elementName, null); +}} +this.menuEnable(menu, true); +}, "JU.BS"); +Clazz.defineMethod(c$, "updateSpectraMenu", +function(){ +var menu = this.htMenus.get("spectraMenu"); +if (menu == null) return; +var menuh = this.htMenus.get("hnmrMenu"); +if (menuh != null) this.menuRemoveAll(menuh, 0); +var menuc = this.htMenus.get("cnmrMenu"); +if (menuc != null) this.menuRemoveAll(menuc, 0); +this.menuRemoveAll(menu, 0); +var isOK = new Boolean (this.setSpectraMenu(menuh, this.hnmrPeaks) | this.setSpectraMenu(menuc, this.cnmrPeaks)).valueOf(); +if (isOK) { +if (menuh != null) this.menuAddSubMenu(menu, menuh); +if (menuc != null) this.menuAddSubMenu(menu, menuc); +}this.menuEnable(menu, isOK); +}); +Clazz.defineMethod(c$, "setSpectraMenu", +function(menu, peaks){ +var n = (peaks == null ? 0 : peaks.size()); +if (n == 0) return false; +if (menu == null) return false; +this.menuEnable(menu, false); +for (var i = 0; i < n; i++) { +var peak = peaks.get(i); +var title = JU.PT.getQuotedAttribute(peak, "title"); +var atoms = JU.PT.getQuotedAttribute(peak, "atoms"); +if (atoms != null) this.menuCreateItem(menu, title, "select visible & (@" + JU.PT.rep(atoms, ",", " or @") + ")", "Focus" + i); +} +this.menuEnable(menu, true); +return true; +}, "J.api.SC,JU.Lst"); +Clazz.defineMethod(c$, "updateHeteroComputedMenu", +function(htHetero){ +var menu = this.htMenus.get("PDBheteroComputedMenu"); +if (menu == null) return; +this.menuRemoveAll(menu, 0); +this.menuEnable(menu, false); +if (htHetero == null) return; +var n = 0; +for (var hetero, $hetero = htHetero.entrySet().iterator (); $hetero.hasNext()&& ((hetero = $hetero.next ()) || true);) { +var heteroCode = hetero.getKey(); +var heteroName = hetero.getValue(); +if (heteroName.length > 20) heteroName = heteroName.substring(0, 20) + "..."; +var entryName = heteroCode + " - " + heteroName; +this.menuCreateItem(menu, entryName, "SELECT [" + heteroCode + "]", null); +n++; +} +this.menuEnable(menu, (n > 0)); +}, "java.util.Map"); +Clazz.defineMethod(c$, "updateSurfMoComputedMenu", +function(moData){ +var menu = this.htMenus.get("surfMoComputedMenuText"); +if (menu == null) return; +this.menuRemoveAll(menu, 0); +var mos = (moData == null ? null : (moData.get("mos"))); +var nOrb = (mos == null ? 0 : mos.size()); +var text = this.getMenuText("surfMoComputedMenuText"); +if (nOrb == 0) { +this.menuSetLabel(menu, J.i18n.GT.o(J.i18n.GT.$(text), "")); +this.menuEnable(menu, false); +return; +}this.menuSetLabel(menu, J.i18n.GT.i(J.i18n.GT.$(text), nOrb)); +this.menuEnable(menu, true); +var subMenu = menu; +var nmod = (nOrb % 25); +if (nmod == 0) nmod = 25; +var pt = (nOrb > 25 ? 0 : -2147483648); +for (var i = nOrb; --i >= 0; ) { +if (pt >= 0 && (pt++ % nmod) == 0) { +if (pt == nmod + 1) nmod = 25; +var id = "mo" + pt + "Menu"; +subMenu = this.menuNewSubMenu(Math.max(i + 2 - nmod, 1) + "..." + (i + 1), this.menuGetId(menu) + "." + id); +this.menuAddSubMenu(menu, subMenu); +this.htMenus.put(id, subMenu); +pt = 1; +}var mo = mos.get(i); +var entryName = "#" + (i + 1) + " " + (mo.containsKey("type") ? mo.get("type") + " " : "") + (mo.containsKey("symmetry") ? mo.get("symmetry") + " " : "") + (mo.containsKey("occupancy") ? "(" + mo.get("occupancy") + ") " : "") + (mo.containsKey("energy") ? mo.get("energy") : ""); +var script = "mo " + (i + 1); +this.menuCreateItem(subMenu, entryName, script, null); +} +}, "java.util.Map"); +Clazz.defineMethod(c$, "updateFileTypeDependentMenus", +function(){ +for (var i = this.NotPDB.size(); --i >= 0; ) this.menuEnable(this.NotPDB.get(i), !this.isPDB); + +for (var i = this.PDBOnly.size(); --i >= 0; ) this.menuEnable(this.PDBOnly.get(i), this.isPDB); + +for (var i = this.UnitcellOnly.size(); --i >= 0; ) this.menuEnable(this.UnitcellOnly.get(i), this.isUnitCell); + +for (var i = this.FileUnitOnly.size(); --i >= 0; ) this.menuEnable(this.FileUnitOnly.get(i), this.isUnitCell || this.fileHasUnitCell); + +for (var i = this.FileMolOnly.size(); --i >= 0; ) this.menuEnable(this.FileMolOnly.get(i), this.isUnitCell || this.fileHasUnitCell); + +for (var i = this.SingleModelOnly.size(); --i >= 0; ) this.menuEnable(this.SingleModelOnly.get(i), this.isLastFrame); + +for (var i = this.FramesOnly.size(); --i >= 0; ) this.menuEnable(this.FramesOnly.get(i), this.isMultiFrame); + +for (var i = this.VibrationOnly.size(); --i >= 0; ) this.menuEnable(this.VibrationOnly.get(i), this.isVibration); + +for (var i = this.SymmetryOnly.size(); --i >= 0; ) this.menuEnable(this.SymmetryOnly.get(i), this.hasSymmetry && this.isUnitCell); + +for (var i = this.ChargesOnly.size(); --i >= 0; ) this.menuEnable(this.ChargesOnly.get(i), this.haveCharges); + +for (var i = this.TemperatureOnly.size(); --i >= 0; ) this.menuEnable(this.TemperatureOnly.get(i), this.haveBFactors); + +this.updateSignedAppletItems(); +}); +Clazz.defineMethod(c$, "updateSceneComputedMenu", +function(){ +var menu = this.htMenus.get("sceneComputedMenu"); +if (menu == null) return; +this.menuRemoveAll(menu, 0); +this.menuEnable(menu, false); +var scenes = this.vwr.ms.getInfoM("scenes"); +if (scenes == null) return; +for (var i = 0; i < scenes.length; i++) this.menuCreateItem(menu, scenes[i], "restore scene " + JU.PT.esc(scenes[i]) + " 1.0", null); + +this.menuEnable(menu, true); +}); +Clazz.defineMethod(c$, "updatePDBResidueComputedMenus", +function(){ +var haveMenu = false; +var menu3 = this.htMenus.get("PDBaaResiduesComputedMenu"); +if (menu3 != null) { +this.menuRemoveAll(menu3, 0); +this.menuEnable(menu3, false); +haveMenu = true; +}var menu1 = this.htMenus.get("PDBnucleicResiduesComputedMenu"); +if (menu1 != null) { +this.menuRemoveAll(menu1, 0); +this.menuEnable(menu1, false); +haveMenu = true; +}var menu2 = this.htMenus.get("PDBcarboResiduesComputedMenu"); +if (menu2 != null) { +this.menuRemoveAll(menu2, 0); +this.menuEnable(menu2, false); +haveMenu = true; +}if (this.modelSetInfo == null || !haveMenu) return; +var n = (this.modelIndex < 0 ? 0 : this.modelIndex + 1); +var lists = (this.modelSetInfo.get("group3Lists")); +this.group3List = (lists == null ? null : lists[n]); +this.group3Counts = (lists == null ? null : (this.modelSetInfo.get("group3Counts"))[n]); +if (this.group3List == null) return; +var nItems = 0; +var groupList = JM.Group.standardGroupList; +if (menu3 != null) { +for (var i = 1; i < 24; ++i) nItems += this.updateGroup3List(menu3, groupList.substring(i * 6 - 4, i * 6 - 1).trim()); + +nItems += this.augmentGroup3List(menu3, "p>", true); +this.menuEnable(menu3, (nItems > 0)); +this.menuEnable(this.htMenus.get("PDBproteinMenu"), (nItems > 0)); +}if (menu1 != null) { +nItems = this.augmentGroup3List(menu1, "n>", false); +this.menuEnable(menu1, nItems > 0); +this.menuEnable(this.htMenus.get("PDBnucleicMenu"), (nItems > 0)); +var dssr = (nItems > 0 && this.modelIndex >= 0 ? this.vwr.ms.getInfo(this.modelIndex, "dssr") : null); +if (dssr != null) this.setSecStrucMenu(this.htMenus.get("aaStructureMenu"), dssr); +}if (menu2 != null) { +nItems = this.augmentGroup3List(menu2, "c>", false); +this.menuEnable(menu2, nItems > 0); +this.menuEnable(this.htMenus.get("PDBcarboMenu"), (nItems > 0)); +}}); +Clazz.defineMethod(c$, "setSecStrucMenu", +function(menu, dssr){ +var counts = dssr.get("counts"); +if (counts == null) return false; +var keys = new Array(counts.size()); +counts.keySet().toArray(keys); +java.util.Arrays.sort(keys); +if (keys.length == 0) return false; +menu.removeAll(); +for (var i = 0; i < keys.length; i++) this.menuCreateItem(menu, keys[i] + " (" + counts.get(keys[i]) + ")", "select modelIndex=" + this.modelIndex + " && within('dssr', '" + keys[i] + "');", null); + +return true; +}, "J.api.SC,java.util.Map"); +Clazz.defineMethod(c$, "updateGroup3List", +function(menu, name){ +var nItems = 0; +var n = this.group3Counts[Clazz.doubleToInt(this.group3List.indexOf(name) / 6)]; +name = name.trim(); +var script = null; +if (n > 0) { +script = "SELECT " + name; +name += " (" + n + ")"; +nItems++; +}var item = this.menuCreateItem(menu, name, script, this.menuGetId(menu) + "." + name); +if (n == 0) this.menuEnable(item, false); +return nItems; +}, "J.api.SC,~S"); +Clazz.defineMethod(c$, "augmentGroup3List", +function(menu, type, addSeparator){ +var pt = 138; +var nItems = 0; +while (true) { +pt = this.group3List.indexOf(type, pt); +if (pt < 0) break; +if (nItems++ == 0 && addSeparator) this.menuAddSeparator(menu); +var n = this.group3Counts[Clazz.doubleToInt(pt / 6)]; +var heteroCode = this.group3List.substring(pt + 2, pt + 5); +var name = heteroCode + " (" + n + ")"; +this.menuCreateItem(menu, name, "SELECT [" + heteroCode + "]", this.menuGetId(menu) + "." + name); +pt++; +} +return nItems; +}, "J.api.SC,~S,~B"); +Clazz.defineMethod(c$, "updateSYMMETRYComputedMenus", +function(){ +this.updateSYMMETRYSelectComputedMenu(); +this.updateSYMMETRYShowComputedMenu(); +}); +Clazz.defineMethod(c$, "updateSYMMETRYShowComputedMenu", +function(){ +var menu = this.htMenus.get("SYMMETRYShowComputedMenu"); +if (menu == null) return; +this.menuRemoveAll(menu, 0); +this.menuEnable(menu, false); +if (!this.hasSymmetry || this.modelIndex < 0) return; +var info = this.vwr.getProperty("DATA_API", "spaceGroupInfo", null); +if (info == null) return; +var infolist = info.get("operations"); +if (infolist == null) return; +var name = info.get("spaceGroupName"); +this.menuSetLabel(menu, name == null ? J.i18n.GT.$("Space Group") : name); +var subMenu = menu; +var pt = (infolist.length > 25 ? 0 : -2147483648); +for (var i = 0; i < infolist.length; i++) { +if (pt >= 0 && (pt++ % 25) == 0) { +var id = "drawsymop" + pt + "Menu"; +subMenu = this.menuNewSubMenu((i + 1) + "..." + Math.min(i + 25, infolist.length), this.menuGetId(menu) + "." + id); +this.menuAddSubMenu(menu, subMenu); +this.htMenus.put(id, subMenu); +pt = 1; +}if (i == 0) this.menuEnable(this.menuCreateItem(subMenu, J.i18n.GT.$("none"), "draw sym_* delete", null), true); +var sym = infolist[i][1]; +if (sym.indexOf("x1") < 0) sym = infolist[i][0]; +var entryName = (i + 1) + " " + infolist[i][2] + " (" + sym + ")"; +this.menuEnable(this.menuCreateItem(subMenu, entryName, "draw SYMOP " + (i + 1), null), true); +} +this.menuEnable(menu, true); +}); +Clazz.defineMethod(c$, "updateSYMMETRYSelectComputedMenu", +function(){ +var menu = this.htMenus.get("SYMMETRYSelectComputedMenu"); +if (menu == null) return; +this.menuRemoveAll(menu, 0); +this.menuEnable(menu, false); +if (!this.hasSymmetry || this.modelIndex < 0) return; +var list = this.modelInfo.get("symmetryOperations"); +if (list == null) return; +var enableSymop = (this.vwr.getOperativeSymmetry() != null); +var subMenu = menu; +var nmod = 25; +var pt = (list.length > 25 ? 0 : -2147483648); +for (var i = 0; i < list.length; i++) { +if (pt >= 0 && (pt++ % nmod) == 0) { +var id = "symop" + pt + "Menu"; +subMenu = this.menuNewSubMenu((i + 1) + "..." + Math.min(i + 25, list.length), this.menuGetId(menu) + "." + id); +this.menuAddSubMenu(menu, subMenu); +this.htMenus.put(id, subMenu); +pt = 1; +}var entryName = "symop=" + (i + 1) + " # " + list[i]; +this.menuEnable(this.menuCreateItem(subMenu, entryName, "SELECT symop=" + (i + 1), null), enableSymop); +} +this.menuEnable(menu, true); +}); +Clazz.defineMethod(c$, "updateFRAMESbyModelComputedMenu", +function(){ +var menu = this.htMenus.get("FRAMESbyModelComputedMenu"); +if (menu == null) return; +this.menuEnable(menu, (this.modelCount > 0)); +this.menuSetLabel(menu, (this.modelIndex < 0 ? this.gti("allModelsText", this.modelCount) : this.gto("modelMenuText", (this.modelIndex + 1) + "/" + this.modelCount))); +this.menuRemoveAll(menu, 0); +if (this.modelCount < 1) return; +if (this.modelCount > 1) this.menuCreateCheckboxItem(menu, J.i18n.GT.$("All"), "frame 0 ##", null, (this.modelIndex < 0), false); +var subMenu = menu; +var pt = (this.modelCount > 25 ? 0 : -2147483648); +for (var i = 0; i < this.modelCount; i++) { +if (pt >= 0 && (pt++ % 25) == 0) { +var id = "model" + pt + "Menu"; +subMenu = this.menuNewSubMenu((i + 1) + "..." + Math.min(i + 25, this.modelCount), this.menuGetId(menu) + "." + id); +this.menuAddSubMenu(menu, subMenu); +this.htMenus.put(id, subMenu); +pt = 1; +}var script = "" + this.vwr.getModelNumberDotted(i); +var entryName = this.vwr.getModelName(i); +var spectrumTypes = this.vwr.ms.getInfo(i, "spectrumTypes"); +if (spectrumTypes != null && entryName.startsWith(spectrumTypes)) spectrumTypes = null; +if (!entryName.equals(script)) { +var ipt = entryName.indexOf(";PATH"); +if (ipt >= 0) entryName = entryName.substring(0, ipt); +if (entryName.indexOf("Model[") == 0 && (ipt = entryName.indexOf("]:")) >= 0) entryName = entryName.substring(ipt + 2); +entryName = script + ": " + entryName; +}if (entryName.length > 60) entryName = entryName.substring(0, 55) + "..."; +if (spectrumTypes != null) entryName += " (" + spectrumTypes + ")"; +this.menuCreateCheckboxItem(subMenu, entryName, "model " + script + " ##", null, (this.modelIndex == i), false); +} +}); +Clazz.defineMethod(c$, "updateConfigurationComputedMenu", +function(){ +var menu = this.htMenus.get("configurationComputedMenu"); +if (menu == null) return; +this.menuEnable(menu, this.isMultiConfiguration); +if (!this.isMultiConfiguration) return; +var nAltLocs = this.altlocs.length; +this.menuSetLabel(menu, this.gti("configurationMenuText", nAltLocs)); +this.menuRemoveAll(menu, 0); +var script = "hide none ##CONFIG"; +this.menuCreateCheckboxItem(menu, J.i18n.GT.$("All"), script, null, (this.updateMode == 1 && this.configurationSelected.equals(script)), false); +for (var i = 0; i < nAltLocs; i++) { +script = "configuration " + (i + 1) + "; hide thisModel and not selected ##CONFIG"; +var entryName = "" + (i + 1) + " -- \"" + this.altlocs.charAt(i) + "\""; +this.menuCreateCheckboxItem(menu, entryName, script, null, (this.updateMode == 1 && this.configurationSelected.equals(script)), false); +} +}); +Clazz.defineMethod(c$, "updateModelSetComputedMenu", +function(){ +var menu = this.htMenus.get("modelSetMenu"); +if (menu == null) return; +this.menuRemoveAll(menu, 0); +this.menuSetLabel(menu, this.nullModelSetName); +this.menuEnable(menu, false); +for (var i = this.noZapped.length; --i >= 0; ) this.menuEnable(this.htMenus.get(this.noZapped[i]), !this.isZapped); + +if (this.modelSetName == null || this.isZapped) return; +if (this.isMultiFrame) { +this.modelSetName = this.gti("modelSetCollectionText", this.modelCount); +if (this.modelSetName.length > this.titleWidthMax) this.modelSetName = this.modelSetName.substring(0, this.titleWidthMax) + "..."; +} else if (this.vwr.getBooleanProperty("hideNameInPopup")) { +this.modelSetName = this.getMenuText("hiddenModelSetText"); +} else if (this.modelSetName.length > this.titleWidthMax) { +this.modelSetName = this.modelSetName.substring(0, this.titleWidthMax) + "..."; +}this.menuSetLabel(menu, this.modelSetName); +this.menuEnable(menu, true); +this.menuEnable(this.htMenus.get("computationMenu"), this.ac <= 100); +this.addMenuItem(menu, this.gti("atomsText", this.ac)); +this.addMenuItem(menu, this.gti("bondsText", this.vwr.ms.getBondCountInModel(this.modelIndex))); +if (this.isPDB) { +this.menuAddSeparator(menu); +this.addMenuItem(menu, this.gti("groupsText", this.vwr.ms.getGroupCountInModel(this.modelIndex))); +this.addMenuItem(menu, this.gti("chainsText", this.vwr.ms.getChainCountInModelWater(this.modelIndex, false))); +this.addMenuItem(menu, this.gti("polymersText", this.vwr.ms.getBioPolymerCountInModel(this.modelIndex))); +var submenu = this.htMenus.get("BiomoleculesMenu"); +if (submenu == null) { +submenu = this.menuNewSubMenu(J.i18n.GT.$(this.getMenuText("biomoleculesMenuText")), this.menuGetId(menu) + ".biomolecules"); +this.menuAddSubMenu(menu, submenu); +}this.menuRemoveAll(submenu, 0); +this.menuEnable(submenu, false); +var biomolecules; +if (this.modelIndex >= 0 && (biomolecules = this.vwr.ms.getInfo(this.modelIndex, "biomolecules")) != null) { +this.menuEnable(submenu, true); +var nBiomolecules = biomolecules.size(); +for (var i = 0; i < nBiomolecules; i++) { +var script = (this.isMultiFrame ? "" : "save orientation;load \"\" FILTER \"biomolecule " + (i + 1) + "\";restore orientation;"); +var nAtoms = (biomolecules.get(i).get("atomCount")).intValue(); +var entryName = this.gto(this.isMultiFrame ? "biomoleculeText" : "loadBiomoleculeText", Clazz.newArray(-1, [Integer.$valueOf(i + 1), Integer.$valueOf(nAtoms)])); +this.menuCreateItem(submenu, entryName, script, null); +} +}}if (this.isApplet && !this.vwr.getBooleanProperty("hideNameInPopup")) { +this.menuAddSeparator(menu); +this.menuCreateItem(menu, this.gto("viewMenuText", this.modelSetFileName), "show url", null); +}}); +Clazz.defineMethod(c$, "gti", +function(s, n){ +return J.i18n.GT.i(J.i18n.GT.$(this.getMenuText(s)), n); +}, "~S,~N"); +Clazz.defineMethod(c$, "gto", +function(s, o){ +return J.i18n.GT.o(J.i18n.GT.$(this.getMenuText(s)), o); +}, "~S,~O"); +Clazz.defineMethod(c$, "updateAboutSubmenu", +function(){ +if (this.isApplet) this.setText("APPLETid", this.vwr.appletName); +{ +}}); +Clazz.defineMethod(c$, "updateLanguageSubmenu", +function(){ +var menu = this.htMenus.get("languageComputedMenu"); +if (menu == null) return; +this.menuRemoveAll(menu, 0); +var language = J.i18n.GT.getLanguage(); +var id = this.menuGetId(menu); +var languages = J.i18n.GT.getLanguageList(null); +for (var i = 0, p = 0; i < languages.length; i++) { +if (language.equals(languages[i].code)) languages[i].display = true; +if (languages[i].display) { +var code = languages[i].code; +var name = languages[i].language; +var nativeName = languages[i].nativeLanguage; +var menuLabel = code + " - " + J.i18n.GT.$(name); +if ((nativeName != null) && (!nativeName.equals(J.i18n.GT.$(name)))) { +menuLabel += " - " + nativeName; +}if (p++ > 0 && (p % 4 == 1)) this.menuAddSeparator(menu); +this.menuCreateCheckboxItem(menu, menuLabel, "language = \"" + code + "\" ##" + name, id + "." + code, language.equals(code), false); +}} +}); +Clazz.defineMethod(c$, "updateSpecialMenuItem", +function(m){ +m.setText(this.getSpecialLabel(m.getName(), m.getText())); +}, "J.api.SC"); +Clazz.defineMethod(c$, "getSpecialLabel", +function(name, text){ +var pt = text.indexOf(" ("); +if (pt < 0) pt = text.length; +var info = null; +if (name.indexOf("captureLooping") >= 0) info = (this.vwr.am.animationReplayMode == 1073742070 ? "ONCE" : "LOOP"); + else if (name.indexOf("captureFps") >= 0) info = "" + this.vwr.getInt(553648132); + else if (name.indexOf("captureMenu") >= 0) info = (this.vwr.captureParams == null ? J.i18n.GT.$("not capturing") : this.vwr.fm.getFilePath(this.vwr.captureParams.get("captureFileName"), false, true) + " " + this.vwr.captureParams.get("captureCount")); +return (info == null ? text : text.substring(0, pt) + " (" + info + ")"); +}, "~S,~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/popup/MainPopupResourceBundle.js b/config/plugins/visualizations/jmol/static/j2s/J/popup/MainPopupResourceBundle.js new file mode 100755 index 000000000000..c57a7236fab2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/popup/MainPopupResourceBundle.js @@ -0,0 +1,41 @@ +Clazz.declarePackage("J.popup"); +Clazz.load(["J.popup.PopupResource", "JV.JC"], "J.popup.MainPopupResourceBundle", ["JU.PT", "J.i18n.GT", "JV.Viewer"], function(){ +var c$ = Clazz.declareType(J.popup, "MainPopupResourceBundle", J.popup.PopupResource); +Clazz.overrideMethod(c$, "getMenuName", +function(){ +return "popupMenu"; +}); +Clazz.overrideMethod(c$, "buildStructure", +function(menuStructure){ +this.addItems(J.popup.MainPopupResourceBundle.menuContents); +this.addItems(J.popup.MainPopupResourceBundle.structureContents); +if (menuStructure != null) this.setStructure(menuStructure, new J.i18n.GT()); +}, "~S"); +c$.Box = Clazz.defineMethod(c$, "Box", +function(cmd){ +return "if (showBoundBox or showUnitcell) {" + cmd + "} else {boundbox on;" + cmd + ";boundbox off}"; +}, "~S"); +Clazz.overrideMethod(c$, "getWordContents", +function(){ +var wasTranslating = J.i18n.GT.setDoTranslate(true); +var vdw = J.i18n.GT.$("{0}% van der Waals"); +var exm = J.i18n.GT.$("Export {0} 3D model"); +var exi = J.i18n.GT.$("Export {0} image"); +var rld = J.i18n.GT.$("Reload {0}"); +var scl = J.i18n.GT.$("Scale {0}"); +var ang = J.i18n.GT.$("{0} \u00C5"); +var pxl = J.i18n.GT.$("{0} px"); +var words = Clazz.newArray(-1, ["cnmrMenu", J.i18n.GT.$("13C-NMR"), "hnmrMenu", J.i18n.GT.$("1H-NMR"), "aboutMenu", J.i18n.GT.$("About..."), "negativeCharge", J.i18n.GT.$("Acidic Residues (-)"), "allModelsText", J.i18n.GT.$("All {0} models"), "allHetero", J.i18n.GT.$("All PDB \"HETATM\""), "Solvent", J.i18n.GT.$("All Solvent"), "Water", J.i18n.GT.$("All Water"), "selectAll", J.i18n.GT.$("All"), "allProtein", null, "allNucleic", null, "allCarbo", null, "altloc#PDB", J.i18n.GT.$("Alternative Location"), "amino#PDB", J.i18n.GT.$("Amino Acid"), "byAngstromMenu", J.i18n.GT.$("Angstrom Width"), "animModeMenu", J.i18n.GT.$("Animation Mode"), "FRAMESanimateMenu", J.i18n.GT.$("Animation"), "atPairs", J.i18n.GT.$("AT pairs"), "atomMenu", J.i18n.GT.$("Atoms"), "[color_atoms]Menu", null, "atomsText", J.i18n.GT.$("atoms: {0}"), "auPairs", J.i18n.GT.$("AU pairs"), "[color_axes]Menu", J.i18n.GT.$("Axes"), "showAxesCB", null, "[set_axes]Menu", null, "axisA", J.i18n.GT.$("Axis a"), "axisB", J.i18n.GT.$("Axis b"), "axisC", J.i18n.GT.$("Axis c"), "axisX", J.i18n.GT.$("Axis x"), "axisY", J.i18n.GT.$("Axis y"), "axisZ", J.i18n.GT.$("Axis z"), "back", J.i18n.GT.$("Back"), "proteinBackbone", J.i18n.GT.$("Backbone"), "nucleicBackbone", null, "backbone", null, "[color_backbone]Menu", null, "[color_background]Menu", J.i18n.GT.$("Background"), "renderBallAndStick", J.i18n.GT.$("Ball and Stick"), "nucleicBases", J.i18n.GT.$("Bases"), "positiveCharge", J.i18n.GT.$("Basic Residues (+)"), "best", J.i18n.GT.$("Best"), "biomoleculeText", J.i18n.GT.$("biomolecule {0} ({1} atoms)"), "biomoleculesMenuText", J.i18n.GT.$("Biomolecules"), "black", J.i18n.GT.$("Black"), "blue", J.i18n.GT.$("Blue"), "bondMenu", J.i18n.GT.$("Bonds"), "[color_bonds]Menu", null, "bondsText", J.i18n.GT.$("bonds: {0}"), "bottom", J.i18n.GT.$("Bottom"), "[color_boundbox]Menu", J.i18n.GT.$("Boundbox"), "[set_boundbox]Menu", null, "showBoundBoxCB", null, "PDBheteroComputedMenu", J.i18n.GT.$("By HETATM"), "PDBaaResiduesComputedMenu", J.i18n.GT.$("By Residue Name"), "PDBnucleicResiduesComputedMenu", null, "PDBcarboResiduesComputedMenu", null, "schemeMenu", J.i18n.GT.$("By Scheme"), "[color_]schemeMenu", null, "hbondCalc", J.i18n.GT.$("Calculate"), "SIGNEDJAVAcaptureRock", J.i18n.GT.$("Capture rock"), "SIGNEDJAVAcaptureSpin", J.i18n.GT.$("Capture spin"), "SIGNEDJAVAcaptureMenuSPECIAL", J.i18n.GT.$("Capture"), "PDBcarboMenu", J.i18n.GT.$("Carbohydrate"), "cartoonRockets", J.i18n.GT.$("Cartoon Rockets"), "PDBrenderCartoonsOnly", J.i18n.GT.$("Cartoon"), "cartoon", null, "[color_cartoon]sMenu", null, "pickCenter", J.i18n.GT.$("Center"), "labelCentered", J.i18n.GT.$("Centered"), "chain#PDB", J.i18n.GT.$("Chain"), "chainsText", J.i18n.GT.$("chains: {0}"), "colorChargeMenu", J.i18n.GT.$("Charge"), "measureAngle", J.i18n.GT.$("Click for angle measurement"), "measureDistance", J.i18n.GT.$("Click for distance measurement"), "measureTorsion", J.i18n.GT.$("Click for torsion (dihedral) measurement"), "PDBmeasureSequence", J.i18n.GT.$("Click two atoms to display a sequence in the console"), "modelSetCollectionText", J.i18n.GT.$("Collection of {0} models"), "colorMenu", J.i18n.GT.$("Color"), "computationMenu", J.i18n.GT.$("Computation"), "configurationMenuText", J.i18n.GT.$("Configurations ({0})"), "configurationComputedMenu", J.i18n.GT.$("Configurations"), "showConsole", J.i18n.GT.$("Console"), "renderCpkSpacefill", J.i18n.GT.$("CPK Spacefill"), "stereoCrossEyed", J.i18n.GT.$("Cross-eyed viewing"), "showState", J.i18n.GT.$("Current state"), "cyan", J.i18n.GT.$("Cyan"), "darkgray", J.i18n.GT.$("Dark Gray"), "measureDelete", J.i18n.GT.$("Delete measurements"), "SIGNEDJAVAcaptureOff", J.i18n.GT.$("Disable capturing"), "hideNotSelectedCB", J.i18n.GT.$("Display Selected Only"), "distanceAngstroms", J.i18n.GT.$("Distance units Angstroms"), "distanceNanometers", J.i18n.GT.$("Distance units nanometers"), "distancePicometers", J.i18n.GT.$("Distance units picometers"), "distanceHz", J.i18n.GT.$("Distance units hz (NMR J-coupling)"), "ssbondMenu", J.i18n.GT.$("Disulfide Bonds"), "[color_ssbonds]Menu", null, "DNA", J.i18n.GT.$("DNA"), "surfDots", J.i18n.GT.$("Dot Surface"), "dotted", J.i18n.GT.$("Dotted"), "measureOff", J.i18n.GT.$("Double-Click begins and ends all measurements"), "cpk", J.i18n.GT.$("Element (CPK)"), "elementsComputedMenu", J.i18n.GT.$("Element"), "SIGNEDJAVAcaptureEnd", J.i18n.GT.$("End capturing"), "exportMenu", J.i18n.GT.$("Export"), "extractMOL", J.i18n.GT.$("Extract MOL data"), "showFile", J.i18n.GT.$("File Contents"), "showFileHeader", J.i18n.GT.$("File Header"), "fileMenu", J.i18n.GT.$("File"), "formalcharge", J.i18n.GT.$("Formal Charge"), "front", J.i18n.GT.$("Front"), "gcPairs", J.i18n.GT.$("GC pairs"), "gold", J.i18n.GT.$("Gold"), "gray", J.i18n.GT.$("Gray"), "green", J.i18n.GT.$("Green"), "group#PDB", J.i18n.GT.$("Group"), "groupsText", J.i18n.GT.$("groups: {0}"), "PDBheteroMenu", J.i18n.GT.$("Hetero"), "off#axes", J.i18n.GT.$("Hide"), "showHistory", J.i18n.GT.$("History"), "hbondMenu", J.i18n.GT.$("Hydrogen Bonds"), "[color_hbonds]Menu", null, "pickIdent", J.i18n.GT.$("Identity"), "indigo", J.i18n.GT.$("Indigo"), "none", J.i18n.GT.$("Inherit"), "invertSelection", J.i18n.GT.$("Invert Selection"), "showIsosurface", J.i18n.GT.$("Isosurface JVXL data"), "help", J.i18n.GT.$("Jmol Script Commands"), "pickLabel", J.i18n.GT.$("Label"), "labelMenu", J.i18n.GT.$("Labels"), "[color_labels]Menu", null, "languageComputedMenu", J.i18n.GT.$("Language"), "left", J.i18n.GT.$("Left"), "Ligand", J.i18n.GT.$("Ligand"), "lightgray", J.i18n.GT.$("Light Gray"), "measureList", J.i18n.GT.$("List measurements"), "loadBiomoleculeText", J.i18n.GT.$("load biomolecule {0} ({1} atoms)"), "SIGNEDloadFileUnitCell", J.i18n.GT.$("Load full unit cell"), "loadMenu", J.i18n.GT.$("Load"), "loop", J.i18n.GT.$("Loop"), "labelLowerLeft", J.i18n.GT.$("Lower Left"), "labelLowerRight", J.i18n.GT.$("Lower Right"), "mainMenuText", J.i18n.GT.$("Main Menu"), "opaque", J.i18n.GT.$("Make Opaque"), "surfOpaque", null, "translucent", J.i18n.GT.$("Make Translucent"), "surfTranslucent", null, "maroon", J.i18n.GT.$("Maroon"), "measureMenu", J.i18n.GT.$("Measurements"), "showMeasure", null, "modelMenuText", J.i18n.GT.$("model {0}"), "hiddenModelSetText", J.i18n.GT.$("Model information"), "modelkit", J.i18n.GT.$("Model kit"), "showModel", J.i18n.GT.$("Model"), "FRAMESbyModelComputedMenu", J.i18n.GT.$("Model/Frame"), "modelKitMode", J.i18n.GT.$("modelKitMode"), "surf2MEP", J.i18n.GT.$("Molecular Electrostatic Potential (range -0.1 0.1)"), "surfMEP", J.i18n.GT.$("Molecular Electrostatic Potential (range ALL)"), "showMo", J.i18n.GT.$("Molecular orbital JVXL data"), "surfMoComputedMenuText", J.i18n.GT.$("Molecular Orbitals ({0})"), "surfMolecular", J.i18n.GT.$("Molecular Surface"), "molecule", J.i18n.GT.$("Molecule"), "monomer#PDB", J.i18n.GT.$("Monomer"), "mouse", J.i18n.GT.$("Mouse Manual"), "nextframe", J.i18n.GT.$("Next Frame"), "modelSetMenu", J.i18n.GT.$("No atoms loaded"), "exceptWater", J.i18n.GT.$("Nonaqueous HETATM") + " (hetero and not water)", "nonWaterSolvent", J.i18n.GT.$("Nonaqueous Solvent") + " (solvent and not water)", "PDBnoneOfTheAbove", J.i18n.GT.$("None of the above"), "selectNone", J.i18n.GT.$("None"), "stereoNone", null, "labelNone", null, "nonpolar", J.i18n.GT.$("Nonpolar Residues"), "PDBnucleicMenu", J.i18n.GT.$("Nucleic"), "atomNone", J.i18n.GT.$("Off"), "bondNone", null, "hbondNone", null, "ssbondNone", null, "structureNone", null, "vibrationOff", null, "vectorOff", null, "spinOff", null, "pickOff", null, "surfOff", null, "olive", J.i18n.GT.$("Olive"), "bondWireframe", J.i18n.GT.$("On"), "hbondWireframe", null, "ssbondWireframe", null, "vibrationOn", null, "vectorOn", null, "spinOn", null, "on", null, "SIGNEDloadPdb", J.i18n.GT.$("Get PDB file"), "SIGNEDloadMol", J.i18n.GT.$("Get MOL file"), "SIGNEDloadFile", J.i18n.GT.$("Open local file"), "SIGNEDloadScript", J.i18n.GT.$("Open script"), "SIGNEDloadUrl", J.i18n.GT.$("Open URL"), "minimize", J.i18n.GT.$("Optimize structure"), "orange", J.i18n.GT.$("Orange"), "orchid", J.i18n.GT.$("Orchid"), "showOrient", J.i18n.GT.$("Orientation"), "palindrome", J.i18n.GT.$("Palindrome"), "partialcharge", J.i18n.GT.$("Partial Charge"), "pause", J.i18n.GT.$("Pause"), "perspectiveDepthCB", J.i18n.GT.$("Perspective Depth"), "byPixelMenu", J.i18n.GT.$("Pixel Width"), "onceThrough", J.i18n.GT.$("Play Once"), "play", J.i18n.GT.$("Play"), "polar", J.i18n.GT.$("Polar Residues"), "polymersText", J.i18n.GT.$("polymers: {0}"), "labelPositionMenu", J.i18n.GT.$("Position Label on Atom"), "prevframe", J.i18n.GT.$("Previous Frame"), "PDBproteinMenu", J.i18n.GT.$("Protein"), "colorrasmolCB", J.i18n.GT.$("RasMol Colors"), "red", J.i18n.GT.$("Red"), "stereoRedBlue", J.i18n.GT.$("Red+Blue glasses"), "stereoRedCyan", J.i18n.GT.$("Red+Cyan glasses"), "stereoRedGreen", J.i18n.GT.$("Red+Green glasses"), "SIGNEDJAVAcaptureOn", J.i18n.GT.$("Re-enable capturing"), "FILEUNITninePoly", J.i18n.GT.$("Reload + Polyhedra"), "reload", J.i18n.GT.$("Reload"), "restart", J.i18n.GT.$("Restart"), "resume", J.i18n.GT.$("Resume"), "playrev", J.i18n.GT.$("Reverse"), "rewind", J.i18n.GT.$("Rewind"), "ribbons", J.i18n.GT.$("Ribbons"), "[color_ribbon]sMenu", null, "right", J.i18n.GT.$("Right"), "RNA", J.i18n.GT.$("RNA"), "rockets", J.i18n.GT.$("Rockets"), "[color_rockets]Menu", null, "salmon", J.i18n.GT.$("Salmon"), "writeFileTextVARIABLE", J.i18n.GT.$("Save a copy of {0}"), "SIGNEDwriteJmol", J.i18n.GT.$("Save as PNG/JMOL (image+zip)"), "SIGNEDwriteIsosurface", J.i18n.GT.$("Save JVXL isosurface"), "writeHistory", J.i18n.GT.$("Save script with history"), "writeState", J.i18n.GT.$("Save script with state"), "saveMenu", J.i18n.GT.$("Save"), "sceneComputedMenu", J.i18n.GT.$("Scenes"), "renderSchemeMenu", J.i18n.GT.$("Scheme"), "aaStructureMenu", J.i18n.GT.$("Secondary Structure"), "structure#PDB", null, "selectMenuText", J.i18n.GT.$("Select ({0})"), "pickAtom", J.i18n.GT.$("Select atom"), "dragAtom", J.i18n.GT.$("Drag atom"), "dragMolecule", J.i18n.GT.$("Drag molecule"), "PDBpickChain", J.i18n.GT.$("Select chain"), "pickElement", J.i18n.GT.$("Select element"), "PDBpickGroup", J.i18n.GT.$("Select group"), "pickMolecule", J.i18n.GT.$("Select molecule"), "SYMMETRYpickSite", J.i18n.GT.$("Select site"), "showSelectionsCB", J.i18n.GT.$("Selection Halos"), "SIGNEDJAVAcaptureFpsSPECIAL", J.i18n.GT.$("Set capture replay rate"), "[set_spin_FPS]Menu", J.i18n.GT.$("Set FPS"), "FRAMESanimFpsMenu", null, "PDBhbondBackbone", J.i18n.GT.$("Set H-Bonds Backbone"), "PDBhbondSidechain", J.i18n.GT.$("Set H-Bonds Side Chain"), "pickingMenu", J.i18n.GT.$("Set picking"), "PDBssbondBackbone", J.i18n.GT.$("Set SS-Bonds Backbone"), "PDBssbondSidechain", J.i18n.GT.$("Set SS-Bonds Side Chain"), "[set_spin_X]Menu", J.i18n.GT.$("Set X Rate"), "[set_spin_Y]Menu", J.i18n.GT.$("Set Y Rate"), "[set_spin_Z]Menu", J.i18n.GT.$("Set Z Rate"), "shapely#PDB", J.i18n.GT.$("Shapely"), "showHydrogensCB", J.i18n.GT.$("Show Hydrogens"), "showMeasurementsCB", J.i18n.GT.$("Show Measurements"), "SYMMETRYpickSymmetry", J.i18n.GT.$("Show symmetry operation"), "showMenu", J.i18n.GT.$("Show"), "proteinSideChains", J.i18n.GT.$("Side Chains"), "slateblue", J.i18n.GT.$("Slate Blue"), "SYMMETRYShowComputedMenu", J.i18n.GT.$("Space Group"), "showSpacegroup", null, "spectraMenu", J.i18n.GT.$("Spectra"), "spinMenu", J.i18n.GT.$("Spin"), "pickSpin", null, "SIGNEDJAVAcaptureBegin", J.i18n.GT.$("Start capturing"), "stereoMenu", J.i18n.GT.$("Stereographic"), "renderSticks", J.i18n.GT.$("Sticks"), "stop", J.i18n.GT.$("Stop"), "strands", J.i18n.GT.$("Strands"), "[color_strands]Menu", null, "PDBstructureMenu", J.i18n.GT.$("Structures"), "colorPDBStructuresMenu", null, "renderMenu", J.i18n.GT.$("Style"), "[color_isosurface]Menu", J.i18n.GT.$("Surfaces"), "surfaceMenu", null, "SYMMETRYSelectComputedMenu", J.i18n.GT.$("Symmetry"), "SYMMETRYshowSymmetry", null, "FILEUNITMenu", null, "systemMenu", J.i18n.GT.$("System"), "relativeTemperature#BFACTORS", J.i18n.GT.$("Temperature (Relative)"), "fixedTemperature#BFACTORS", J.i18n.GT.$("Temperature (Fixed)"), "SIGNEDJAVAcaptureLoopingSPECIAL", J.i18n.GT.$("Toggle capture looping"), "top", JU.PT.split(J.i18n.GT.$("Top[as in \"view from the top, from above\" - (translators: remove this bracketed part]"), "[")[0], "PDBrenderTraceOnly", J.i18n.GT.$("Trace"), "trace", null, "[color_trace]Menu", null, "translations", J.i18n.GT.$("Translations"), "noCharge", J.i18n.GT.$("Uncharged Residues"), "[color_UNITCELL]Menu", J.i18n.GT.$("Unit cell"), "UNITCELLshow", null, "[set_UNITCELL]Menu", null, "showUNITCELLCB", null, "labelUpperLeft", J.i18n.GT.$("Upper Left"), "labelUpperRight", J.i18n.GT.$("Upper Right"), "surfVDW", J.i18n.GT.$("van der Waals Surface"), "VIBRATIONvectorMenu", J.i18n.GT.$("Vectors"), "property_vxyz#VIBRATION", null, "[color_vectors]Menu", null, "VIBRATIONMenu", J.i18n.GT.$("Vibration"), "viewMenuText", J.i18n.GT.$("View {0}"), "viewMenu", J.i18n.GT.$("View"), "violet", J.i18n.GT.$("Violet"), "stereoWallEyed", J.i18n.GT.$("Wall-eyed viewing"), "white", J.i18n.GT.$("White"), "renderWireframe", J.i18n.GT.$("Wireframe"), "labelName", J.i18n.GT.$("With Atom Name"), "labelNumber", J.i18n.GT.$("With Atom Number"), "labelSymbol", J.i18n.GT.$("With Element Symbol"), "yellow", J.i18n.GT.$("Yellow"), "zoomIn", J.i18n.GT.$("Zoom In"), "zoomOut", J.i18n.GT.$("Zoom Out"), "zoomMenu", J.i18n.GT.$("Zoom"), "vector005", J.i18n.GT.o(ang, "0.05"), "bond100", J.i18n.GT.o(ang, "0.10"), "hbond100", null, "ssbond100", null, "vector01", null, "10a", null, "bond150", J.i18n.GT.o(ang, "0.15"), "hbond150", null, "ssbond150", null, "bond200", J.i18n.GT.o(ang, "0.20"), "hbond200", null, "ssbond200", null, "20a", null, "bond250", J.i18n.GT.o(ang, "0.25"), "hbond250", null, "ssbond250", null, "25a", null, "bond300", J.i18n.GT.o(ang, "0.30"), "hbond300", null, "ssbond300", null, "50a", J.i18n.GT.o(ang, "0.50"), "100a", J.i18n.GT.o(ang, "1.0"), "1p", J.i18n.GT.i(pxl, 1), "10p", J.i18n.GT.i(pxl, 10), "3p", J.i18n.GT.i(pxl, 3), "vector3", null, "5p", J.i18n.GT.i(pxl, 5), "atom100", J.i18n.GT.i(vdw, 100), "atom15", J.i18n.GT.i(vdw, 15), "atom20", J.i18n.GT.i(vdw, 20), "atom25", J.i18n.GT.i(vdw, 25), "atom50", J.i18n.GT.i(vdw, 50), "atom75", J.i18n.GT.i(vdw, 75), "SIGNEDNOGLwriteIdtf", J.i18n.GT.o(exm, "IDTF"), "SIGNEDNOGLwriteMaya", J.i18n.GT.o(exm, "Maya"), "SIGNEDNOGLwriteVrml", J.i18n.GT.o(exm, "VRML"), "SIGNEDNOGLwriteX3d", J.i18n.GT.o(exm, "X3D"), "SIGNEDNOGLwriteSTL", J.i18n.GT.o(exm, "STL"), "SIGNEDNOGLwriteGif", J.i18n.GT.o(exi, "GIF"), "SIGNEDNOGLwriteJpg", J.i18n.GT.o(exi, "JPG"), "SIGNEDNOGLwritePng", J.i18n.GT.o(exi, "PNG"), "SIGNEDNOGLwritePngJmol", J.i18n.GT.o(exi, "PNG+JMOL"), "SIGNEDNOGLwritePovray", J.i18n.GT.o(exi, "POV-Ray"), "FILEUNITnineRestricted", J.i18n.GT.o(J.i18n.GT.$("Reload {0} + Display {1}"), Clazz.newArray(-1, ["{444 666 1}", "555"])), "FILEMOLload", J.i18n.GT.o(rld, "(molecular)"), "FILEUNITone", J.i18n.GT.o(rld, "{1 1 1}"), "FILEUNITnine", J.i18n.GT.o(rld, "{444 666 1}"), "vectorScale02", J.i18n.GT.o(scl, "0.2"), "vectorScale05", J.i18n.GT.o(scl, "0.5"), "vectorScale1", J.i18n.GT.o(scl, "1"), "vectorScale2", J.i18n.GT.o(scl, "2"), "vectorScale5", J.i18n.GT.o(scl, "5"), "surfSolvent14", J.i18n.GT.o(J.i18n.GT.$("Solvent Surface ({0}-Angstrom probe)"), "1.4"), "surfSolventAccessible14", J.i18n.GT.o(J.i18n.GT.$("Solvent-Accessible Surface (VDW + {0} Angstrom)"), "1.4"), "vibration20", "*2", "vibration05", "/2", "JAVAmemTotal", "?", "JAVAmemMax", null, "JAVAprocessors", null, "s0", "0", "animfps10", "10", "s10", null, "zoom100", "100%", "zoom150", "150%", "animfps20", "20", "s20", null, "zoom200", "200%", "animfps30", "30", "s30", null, "s40", "40", "zoom400", "400%", "animfps5", "5", "s5", null, "animfps50", "50", "s50", null, "zoom50", "50%", "zoom800", "800%", "JSConsole", J.i18n.GT.$("JavaScript Console"), "jmolMenu", "Jmol", "date", JV.JC.date, "version", JV.JC.version, "javaVender", JV.Viewer.strJavaVendor, "javaVersion", JV.Viewer.strJavaVersion, "os", JV.Viewer.strOSName, "jmolorg", "http://www.jmol.org"]); +J.i18n.GT.setDoTranslate(wasTranslating); +for (var i = 1, n = words.length; i < n; i += 2) if (words[i] == null) words[i] = words[i - 2]; + +return words; +}); +Clazz.overrideMethod(c$, "getMenuAsText", +function(title){ +return this.getStuctureAsText(title, J.popup.MainPopupResourceBundle.menuContents, J.popup.MainPopupResourceBundle.structureContents); +}, "~S"); +c$.menuContents = Clazz.newArray(-1, [ Clazz.newArray(-1, ["@COLOR", "black darkgray lightgray white - red orange yellow green cyan blue indigo violet"]), Clazz.newArray(-1, ["@AXESCOLOR", "gray salmon maroon olive slateblue gold orchid"]), Clazz.newArray(-1, ["popupMenu", "fileMenu modelSetMenu FRAMESbyModelComputedMenu configurationComputedMenu - selectMenuText viewMenu renderMenu colorMenu - surfaceMenu FILEUNITMenu - sceneComputedMenu zoomMenu spinMenu VIBRATIONMenu spectraMenu FRAMESanimateMenu - measureMenu pickingMenu - showConsole JSConsole showMenu computationMenu - languageComputedMenu aboutMenu"]), Clazz.newArray(-1, ["fileMenu", "loadMenu saveMenu exportMenu SIGNEDJAVAcaptureMenuSPECIAL "]), Clazz.newArray(-1, ["loadMenu", "SIGNEDloadFile SIGNEDloadUrl SIGNEDloadPdb SIGNEDloadMol SIGNEDloadScript - reload SIGNEDloadFileUnitCell"]), Clazz.newArray(-1, ["saveMenu", "writeFileTextVARIABLE writeState writeHistory SIGNEDwriteJmol SIGNEDwriteIsosurface "]), Clazz.newArray(-1, ["exportMenu", "SIGNEDNOGLwriteGif SIGNEDNOGLwriteJpg SIGNEDNOGLwritePng SIGNEDNOGLwritePngJmol SIGNEDNOGLwritePovray - SIGNEDNOGLwriteVrml SIGNEDNOGLwriteX3d SIGNEDNOGLwriteSTL"]), Clazz.newArray(-1, ["selectMenuText", "hideNotSelectedCB showSelectionsCB - selectAll selectNone invertSelection - elementsComputedMenu SYMMETRYSelectComputedMenu - PDBproteinMenu PDBnucleicMenu PDBheteroMenu PDBcarboMenu PDBnoneOfTheAbove"]), Clazz.newArray(-1, ["PDBproteinMenu", "PDBaaResiduesComputedMenu - allProtein proteinBackbone proteinSideChains - polar nonpolar - positiveCharge negativeCharge noCharge"]), Clazz.newArray(-1, ["PDBcarboMenu", "PDBcarboResiduesComputedMenu - allCarbo"]), Clazz.newArray(-1, ["PDBnucleicMenu", "PDBnucleicResiduesComputedMenu - allNucleic nucleicBackbone nucleicBases - DNA RNA - atPairs auPairs gcPairs - aaStructureMenu"]), Clazz.newArray(-1, ["PDBheteroMenu", "PDBheteroComputedMenu - allHetero Solvent Water - Ligand exceptWater nonWaterSolvent"]), Clazz.newArray(-1, ["viewMenu", "best front left right top bottom back - axisX axisY axisZ - axisA axisB axisC"]), Clazz.newArray(-1, ["renderMenu", "renderSchemeMenu - atomMenu labelMenu bondMenu hbondMenu ssbondMenu - PDBstructureMenu - [set_axes]Menu [set_boundbox]Menu [set_UNITCELL]Menu - perspectiveDepthCB stereoMenu"]), Clazz.newArray(-1, ["renderSchemeMenu", "renderCpkSpacefill renderBallAndStick renderSticks renderWireframe PDBrenderCartoonsOnly PDBrenderTraceOnly"]), Clazz.newArray(-1, ["atomMenu", "showHydrogensCB - atomNone - atom15 atom20 atom25 atom50 atom75 atom100"]), Clazz.newArray(-1, ["bondMenu", "bondNone bondWireframe - bond100 bond150 bond200 bond250 bond300"]), Clazz.newArray(-1, ["hbondMenu", "hbondCalc hbondNone hbondWireframe - PDBhbondSidechain PDBhbondBackbone - hbond100 hbond150 hbond200 hbond250 hbond300"]), Clazz.newArray(-1, ["ssbondMenu", "ssbondNone ssbondWireframe - PDBssbondSidechain PDBssbondBackbone - ssbond100 ssbond150 ssbond200 ssbond250 ssbond300"]), Clazz.newArray(-1, ["PDBstructureMenu", "structureNone - backbone cartoon cartoonRockets ribbons rockets strands trace"]), Clazz.newArray(-1, ["VIBRATIONvectorMenu", "vectorOff vectorOn vibScale20 vibScale05 vector3 vector005 vector01 - vectorScale02 vectorScale05 vectorScale1 vectorScale2 vectorScale5"]), Clazz.newArray(-1, ["stereoMenu", "stereoNone stereoRedCyan stereoRedBlue stereoRedGreen stereoCrossEyed stereoWallEyed"]), Clazz.newArray(-1, ["labelMenu", "labelNone - labelSymbol labelName labelNumber - labelPositionMenu"]), Clazz.newArray(-1, ["labelPositionMenu", "labelCentered labelUpperRight labelLowerRight labelUpperLeft labelLowerLeft"]), Clazz.newArray(-1, ["colorMenu", "colorrasmolCB [color_]schemeMenu - [color_atoms]Menu [color_bonds]Menu [color_hbonds]Menu [color_ssbonds]Menu colorPDBStructuresMenu [color_isosurface]Menu - [color_labels]Menu [color_vectors]Menu - [color_axes]Menu [color_boundbox]Menu [color_UNITCELL]Menu [color_background]Menu"]), Clazz.newArray(-1, ["[color_atoms]Menu", "schemeMenu - @COLOR - opaque translucent"]), Clazz.newArray(-1, ["[color_bonds]Menu", "none - @COLOR - opaque translucent"]), Clazz.newArray(-1, ["[color_hbonds]Menu", null]), Clazz.newArray(-1, ["[color_ssbonds]Menu", null]), Clazz.newArray(-1, ["[color_labels]Menu", null]), Clazz.newArray(-1, ["[color_vectors]Menu", null]), Clazz.newArray(-1, ["[color_backbone]Menu", "none - schemeMenu - @COLOR - opaque translucent"]), Clazz.newArray(-1, ["[color_cartoon]sMenu", null]), Clazz.newArray(-1, ["[color_ribbon]sMenu", null]), Clazz.newArray(-1, ["[color_rockets]Menu", null]), Clazz.newArray(-1, ["[color_strands]Menu", null]), Clazz.newArray(-1, ["[color_trace]Menu", null]), Clazz.newArray(-1, ["[color_background]Menu", "@COLOR"]), Clazz.newArray(-1, ["[color_isosurface]Menu", "@COLOR - opaque translucent"]), Clazz.newArray(-1, ["[color_axes]Menu", "@AXESCOLOR"]), Clazz.newArray(-1, ["[color_boundbox]Menu", null]), Clazz.newArray(-1, ["[color_UNITCELL]Menu", null]), Clazz.newArray(-1, ["colorPDBStructuresMenu", "[color_backbone]Menu [color_cartoon]sMenu [color_ribbon]sMenu [color_rockets]Menu [color_strands]Menu [color_trace]Menu"]), Clazz.newArray(-1, ["schemeMenu", "cpk molecule formalcharge partialcharge - altloc#PDB amino#PDB chain#PDB group#PDB monomer#PDB shapely#PDB structure#PDB relativeTemperature#BFACTORS fixedTemperature#BFACTORS property_vxyz#VIBRATION"]), Clazz.newArray(-1, ["[color_]schemeMenu", null]), Clazz.newArray(-1, ["zoomMenu", "zoom50 zoom100 zoom150 zoom200 zoom400 zoom800 - zoomIn zoomOut"]), Clazz.newArray(-1, ["spinMenu", "spinOn spinOff - [set_spin_X]Menu [set_spin_Y]Menu [set_spin_Z]Menu - [set_spin_FPS]Menu"]), Clazz.newArray(-1, ["VIBRATIONMenu", "vibrationOff vibrationOn vibration20 vibration05 VIBRATIONvectorMenu"]), Clazz.newArray(-1, ["spectraMenu", "hnmrMenu cnmrMenu"]), Clazz.newArray(-1, ["FRAMESanimateMenu", "animModeMenu - play pause resume stop - nextframe prevframe rewind - playrev restart - FRAMESanimFpsMenu"]), Clazz.newArray(-1, ["FRAMESanimFpsMenu", "animfps5 animfps10 animfps20 animfps30 animfps50"]), Clazz.newArray(-1, ["measureMenu", "showMeasurementsCB - measureOff measureDistance measureAngle measureTorsion PDBmeasureSequence - measureDelete measureList - distanceNanometers distanceAngstroms distancePicometers distanceHz"]), Clazz.newArray(-1, ["pickingMenu", "pickOff pickCenter pickIdent pickLabel pickAtom pickMolecule pickElement - dragAtom dragMolecule - pickSpin - modelKitMode - PDBpickChain PDBpickGroup SYMMETRYpickSite"]), Clazz.newArray(-1, ["computationMenu", "minimize"]), Clazz.newArray(-1, ["showMenu", "showHistory showFile showFileHeader - showOrient showMeasure - showSpacegroup showState SYMMETRYshowSymmetry UNITCELLshow - showIsosurface showMo - modelkit extractMOL"]), Clazz.newArray(-1, ["SIGNEDJAVAcaptureMenuSPECIAL", "SIGNEDJAVAcaptureRock SIGNEDJAVAcaptureSpin - SIGNEDJAVAcaptureBegin SIGNEDJAVAcaptureEnd SIGNEDJAVAcaptureOff SIGNEDJAVAcaptureOn SIGNEDJAVAcaptureFpsSPECIAL SIGNEDJAVAcaptureLoopingSPECIAL"]), Clazz.newArray(-1, ["[set_spin_X]Menu", "s0 s5 s10 s20 s30 s40 s50"]), Clazz.newArray(-1, ["[set_spin_Y]Menu", null]), Clazz.newArray(-1, ["[set_spin_Z]Menu", null]), Clazz.newArray(-1, ["[set_spin_FPS]Menu", null]), Clazz.newArray(-1, ["animModeMenu", "onceThrough palindrome loop"]), Clazz.newArray(-1, ["surfaceMenu", "surfDots surfVDW surfSolventAccessible14 surfSolvent14 surfMolecular surf2MEP surfMEP surfMoComputedMenuText - surfOpaque surfTranslucent surfOff"]), Clazz.newArray(-1, ["FILEUNITMenu", "SYMMETRYShowComputedMenu FILEMOLload FILEUNITone FILEUNITnine FILEUNITnineRestricted FILEUNITninePoly"]), Clazz.newArray(-1, ["[set_axes]Menu", "on off#axes dotted - byPixelMenu byAngstromMenu"]), Clazz.newArray(-1, ["[set_boundbox]Menu", null]), Clazz.newArray(-1, ["[set_UNITCELL]Menu", null]), Clazz.newArray(-1, ["byPixelMenu", "1p 3p 5p 10p"]), Clazz.newArray(-1, ["byAngstromMenu", "10a 20a 25a 50a 100a"]), Clazz.newArray(-1, ["aboutMenu", "jmolMenu systemMenu"]), Clazz.newArray(-1, ["jmolMenu", "APPLETid version date - help - mouse translations jmolorg"]), Clazz.newArray(-1, ["systemMenu", "os javaVender javaVersion JAVAprocessors JAVAmemMax JAVAmemTotal"])]); +c$.structureContents = Clazz.newArray(-1, [ Clazz.newArray(-1, ["jmolorg", "show url \"http://www.jmol.org\""]), Clazz.newArray(-1, ["help", "help"]), Clazz.newArray(-1, ["mouse", "show url \"http://wiki.jmol.org/index.php/Mouse_Manual\""]), Clazz.newArray(-1, ["translations", "show url \"http://wiki.jmol.org/index.php/Internationalisation\""]), Clazz.newArray(-1, ["colorrasmolCB", ""]), Clazz.newArray(-1, ["hideNotSelectedCB", "set hideNotSelected true | set hideNotSelected false; hide(none)"]), Clazz.newArray(-1, ["perspectiveDepthCB", ""]), Clazz.newArray(-1, ["showAxesCB", "set showAxes true | set showAxes false;set axesMolecular"]), Clazz.newArray(-1, ["showBoundBoxCB", ""]), Clazz.newArray(-1, ["showHydrogensCB", ""]), Clazz.newArray(-1, ["showMeasurementsCB", ""]), Clazz.newArray(-1, ["showSelectionsCB", ""]), Clazz.newArray(-1, ["showUNITCELLCB", ""]), Clazz.newArray(-1, ["selectAll", "SELECT all"]), Clazz.newArray(-1, ["selectNone", "SELECT none"]), Clazz.newArray(-1, ["invertSelection", "SELECT not selected"]), Clazz.newArray(-1, ["allProtein", "SELECT protein"]), Clazz.newArray(-1, ["proteinBackbone", "SELECT protein and backbone"]), Clazz.newArray(-1, ["proteinSideChains", "SELECT protein and not backbone"]), Clazz.newArray(-1, ["polar", "SELECT protein and polar"]), Clazz.newArray(-1, ["nonpolar", "SELECT protein and not polar"]), Clazz.newArray(-1, ["positiveCharge", "SELECT protein and basic"]), Clazz.newArray(-1, ["negativeCharge", "SELECT protein and acidic"]), Clazz.newArray(-1, ["noCharge", "SELECT protein and not (acidic,basic)"]), Clazz.newArray(-1, ["allCarbo", "SELECT carbohydrate"]), Clazz.newArray(-1, ["allNucleic", "SELECT nucleic"]), Clazz.newArray(-1, ["DNA", "SELECT dna"]), Clazz.newArray(-1, ["RNA", "SELECT rna"]), Clazz.newArray(-1, ["nucleicBackbone", "SELECT nucleic and backbone"]), Clazz.newArray(-1, ["nucleicBases", "SELECT nucleic and not backbone"]), Clazz.newArray(-1, ["atPairs", "SELECT a,t"]), Clazz.newArray(-1, ["gcPairs", "SELECT g,c"]), Clazz.newArray(-1, ["auPairs", "SELECT a,u"]), Clazz.newArray(-1, ["A", "SELECT a"]), Clazz.newArray(-1, ["C", "SELECT c"]), Clazz.newArray(-1, ["G", "SELECT g"]), Clazz.newArray(-1, ["T", "SELECT t"]), Clazz.newArray(-1, ["U", "SELECT u"]), Clazz.newArray(-1, ["allHetero", "SELECT hetero"]), Clazz.newArray(-1, ["Solvent", "SELECT solvent"]), Clazz.newArray(-1, ["Water", "SELECT water"]), Clazz.newArray(-1, ["nonWaterSolvent", "SELECT solvent and not water"]), Clazz.newArray(-1, ["exceptWater", "SELECT hetero and not water"]), Clazz.newArray(-1, ["Ligand", "SELECT ligand"]), Clazz.newArray(-1, ["PDBnoneOfTheAbove", "SELECT not(hetero,protein,nucleic,carbohydrate)"]), Clazz.newArray(-1, ["best", "rotate best -1.0"]), Clazz.newArray(-1, ["front", J.popup.MainPopupResourceBundle.Box("moveto 2.0 front;delay 1")]), Clazz.newArray(-1, ["left", J.popup.MainPopupResourceBundle.Box("moveto 1.0 front;moveto 2.0 left;delay 1")]), Clazz.newArray(-1, ["right", J.popup.MainPopupResourceBundle.Box("moveto 1.0 front;moveto 2.0 right;delay 1")]), Clazz.newArray(-1, ["top", J.popup.MainPopupResourceBundle.Box("moveto 1.0 front;moveto 2.0 top;delay 1")]), Clazz.newArray(-1, ["bottom", J.popup.MainPopupResourceBundle.Box("moveto 1.0 front;moveto 2.0 bottom;delay 1")]), Clazz.newArray(-1, ["back", J.popup.MainPopupResourceBundle.Box("moveto 1.0 front;moveto 2.0 back;delay 1")]), Clazz.newArray(-1, ["axisA", "moveto axis a"]), Clazz.newArray(-1, ["axisB", "moveto axis b"]), Clazz.newArray(-1, ["axisC", "moveto axis c"]), Clazz.newArray(-1, ["axisX", "moveto axis x"]), Clazz.newArray(-1, ["axisY", "moveto axis y"]), Clazz.newArray(-1, ["axisZ", "moveto axis z"]), Clazz.newArray(-1, ["renderCpkSpacefill", "restrict bonds not selected;select not selected;spacefill 100%;color cpk"]), Clazz.newArray(-1, ["renderBallAndStick", "restrict bonds not selected;select not selected;spacefill 23%AUTO;wireframe 0.15;color cpk"]), Clazz.newArray(-1, ["renderSticks", "restrict bonds not selected;select not selected;wireframe 0.3;color cpk"]), Clazz.newArray(-1, ["renderWireframe", "restrict bonds not selected;select not selected;wireframe on;color cpk"]), Clazz.newArray(-1, ["PDBrenderCartoonsOnly", "restrict bonds not selected;select not selected;cartoons on;color structure"]), Clazz.newArray(-1, ["PDBrenderTraceOnly", "restrict bonds not selected;select not selected;trace on;color structure"]), Clazz.newArray(-1, ["atomNone", "cpk off"]), Clazz.newArray(-1, ["atom15", "cpk 15%"]), Clazz.newArray(-1, ["atom20", "cpk 20%"]), Clazz.newArray(-1, ["atom25", "cpk 25%"]), Clazz.newArray(-1, ["atom50", "cpk 50%"]), Clazz.newArray(-1, ["atom75", "cpk 75%"]), Clazz.newArray(-1, ["atom100", "cpk on"]), Clazz.newArray(-1, ["bondNone", "wireframe off"]), Clazz.newArray(-1, ["bondWireframe", "wireframe on"]), Clazz.newArray(-1, ["bond100", "wireframe .1"]), Clazz.newArray(-1, ["bond150", "wireframe .15"]), Clazz.newArray(-1, ["bond200", "wireframe .2"]), Clazz.newArray(-1, ["bond250", "wireframe .25"]), Clazz.newArray(-1, ["bond300", "wireframe .3"]), Clazz.newArray(-1, ["hbondCalc", "hbonds calculate"]), Clazz.newArray(-1, ["hbondNone", "hbonds off"]), Clazz.newArray(-1, ["hbondWireframe", "hbonds on"]), Clazz.newArray(-1, ["PDBhbondSidechain", "set hbonds sidechain"]), Clazz.newArray(-1, ["PDBhbondBackbone", "set hbonds backbone"]), Clazz.newArray(-1, ["hbond100", "hbonds .1"]), Clazz.newArray(-1, ["hbond150", "hbonds .15"]), Clazz.newArray(-1, ["hbond200", "hbonds .2"]), Clazz.newArray(-1, ["hbond250", "hbonds .25"]), Clazz.newArray(-1, ["hbond300", "hbonds .3"]), Clazz.newArray(-1, ["ssbondNone", "ssbonds off"]), Clazz.newArray(-1, ["ssbondWireframe", "ssbonds on"]), Clazz.newArray(-1, ["PDBssbondSidechain", "set ssbonds sidechain"]), Clazz.newArray(-1, ["PDBssbondBackbone", "set ssbonds backbone"]), Clazz.newArray(-1, ["ssbond100", "ssbonds .1"]), Clazz.newArray(-1, ["ssbond150", "ssbonds .15"]), Clazz.newArray(-1, ["ssbond200", "ssbonds .2"]), Clazz.newArray(-1, ["ssbond250", "ssbonds .25"]), Clazz.newArray(-1, ["ssbond300", "ssbonds .3"]), Clazz.newArray(-1, ["structureNone", "backbone off;cartoons off;ribbons off;rockets off;strands off;trace off;"]), Clazz.newArray(-1, ["backbone", "restrict not selected;select not selected;backbone 0.3"]), Clazz.newArray(-1, ["cartoon", "restrict not selected;select not selected;set cartoonRockets false;cartoons on"]), Clazz.newArray(-1, ["cartoonRockets", "restrict not selected;select not selected;set cartoonRockets;cartoons on"]), Clazz.newArray(-1, ["ribbons", "restrict not selected;select not selected;ribbons on"]), Clazz.newArray(-1, ["rockets", "restrict not selected;select not selected;rockets on"]), Clazz.newArray(-1, ["strands", "restrict not selected;select not selected;strands on"]), Clazz.newArray(-1, ["trace", "restrict not selected;select not selected;trace 0.3"]), Clazz.newArray(-1, ["vibrationOff", "vibration off"]), Clazz.newArray(-1, ["vibrationOn", "vibration on"]), Clazz.newArray(-1, ["vibration20", "vibrationScale *= 2"]), Clazz.newArray(-1, ["vibration05", "vibrationScale /= 2"]), Clazz.newArray(-1, ["vectorOff", "vectors off"]), Clazz.newArray(-1, ["vectorOn", "vectors on"]), Clazz.newArray(-1, ["vector3", "vectors 3"]), Clazz.newArray(-1, ["vector005", "vectors 0.05"]), Clazz.newArray(-1, ["vector01", "vectors 0.1"]), Clazz.newArray(-1, ["vectorScale02", "vector scale 0.2"]), Clazz.newArray(-1, ["vectorScale05", "vector scale 0.5"]), Clazz.newArray(-1, ["vectorScale1", "vector scale 1"]), Clazz.newArray(-1, ["vectorScale2", "vector scale 2"]), Clazz.newArray(-1, ["vectorScale5", "vector scale 5"]), Clazz.newArray(-1, ["stereoNone", "stereo off"]), Clazz.newArray(-1, ["stereoRedCyan", "stereo redcyan 3"]), Clazz.newArray(-1, ["stereoRedBlue", "stereo redblue 3"]), Clazz.newArray(-1, ["stereoRedGreen", "stereo redgreen 3"]), Clazz.newArray(-1, ["stereoCrossEyed", "stereo -5"]), Clazz.newArray(-1, ["stereoWallEyed", "stereo 5"]), Clazz.newArray(-1, ["labelNone", "label off"]), Clazz.newArray(-1, ["labelSymbol", "label %e"]), Clazz.newArray(-1, ["labelName", "label %a"]), Clazz.newArray(-1, ["labelNumber", "label %i"]), Clazz.newArray(-1, ["labelCentered", "set labeloffset 0 0"]), Clazz.newArray(-1, ["labelUpperRight", "set labeloffset 4 4"]), Clazz.newArray(-1, ["labelLowerRight", "set labeloffset 4 -4"]), Clazz.newArray(-1, ["labelUpperLeft", "set labeloffset -4 4"]), Clazz.newArray(-1, ["labelLowerLeft", "set labeloffset -4 -4"]), Clazz.newArray(-1, ["zoom50", "zoom 50"]), Clazz.newArray(-1, ["zoom100", "zoom 100"]), Clazz.newArray(-1, ["zoom150", "zoom 150"]), Clazz.newArray(-1, ["zoom200", "zoom 200"]), Clazz.newArray(-1, ["zoom400", "zoom 400"]), Clazz.newArray(-1, ["zoom800", "zoom 800"]), Clazz.newArray(-1, ["zoomIn", "move 0 0 0 40 0 0 0 0 1"]), Clazz.newArray(-1, ["zoomOut", "move 0 0 0 -40 0 0 0 0 1"]), Clazz.newArray(-1, ["spinOn", "spin on"]), Clazz.newArray(-1, ["spinOff", "spin off"]), Clazz.newArray(-1, ["s0", "0"]), Clazz.newArray(-1, ["s5", "5"]), Clazz.newArray(-1, ["s10", "10"]), Clazz.newArray(-1, ["s20", "20"]), Clazz.newArray(-1, ["s30", "30"]), Clazz.newArray(-1, ["s40", "40"]), Clazz.newArray(-1, ["s50", "50"]), Clazz.newArray(-1, ["onceThrough", "anim mode once#"]), Clazz.newArray(-1, ["palindrome", "anim mode palindrome#"]), Clazz.newArray(-1, ["loop", "anim mode loop#"]), Clazz.newArray(-1, ["play", "anim play#"]), Clazz.newArray(-1, ["pause", "anim pause#"]), Clazz.newArray(-1, ["resume", "anim resume#"]), Clazz.newArray(-1, ["stop", "anim off#"]), Clazz.newArray(-1, ["nextframe", "frame next#"]), Clazz.newArray(-1, ["prevframe", "frame prev#"]), Clazz.newArray(-1, ["playrev", "anim playrev#"]), Clazz.newArray(-1, ["rewind", "anim rewind#"]), Clazz.newArray(-1, ["restart", "anim on#"]), Clazz.newArray(-1, ["animfps5", "anim fps 5#"]), Clazz.newArray(-1, ["animfps10", "anim fps 10#"]), Clazz.newArray(-1, ["animfps20", "anim fps 20#"]), Clazz.newArray(-1, ["animfps30", "anim fps 30#"]), Clazz.newArray(-1, ["animfps50", "anim fps 50#"]), Clazz.newArray(-1, ["measureOff", "set pickingstyle MEASURE OFF; set picking OFF"]), Clazz.newArray(-1, ["measureDistance", "set pickingstyle MEASURE; set picking MEASURE DISTANCE"]), Clazz.newArray(-1, ["measureAngle", "set pickingstyle MEASURE; set picking MEASURE ANGLE"]), Clazz.newArray(-1, ["measureTorsion", "set pickingstyle MEASURE; set picking MEASURE TORSION"]), Clazz.newArray(-1, ["PDBmeasureSequence", "set pickingstyle MEASURE; set picking MEASURE SEQUENCE"]), Clazz.newArray(-1, ["measureDelete", "measure delete"]), Clazz.newArray(-1, ["measureList", "console on;show measurements"]), Clazz.newArray(-1, ["distanceNanometers", "select *; set measure nanometers"]), Clazz.newArray(-1, ["distanceAngstroms", "select *; set measure angstroms"]), Clazz.newArray(-1, ["distancePicometers", "select *; set measure picometers"]), Clazz.newArray(-1, ["distanceHz", "select *; set measure hz"]), Clazz.newArray(-1, ["pickOff", "set picking off"]), Clazz.newArray(-1, ["pickCenter", "set picking center"]), Clazz.newArray(-1, ["pickIdent", "set picking ident"]), Clazz.newArray(-1, ["pickLabel", "set picking label"]), Clazz.newArray(-1, ["pickAtom", "set picking atom"]), Clazz.newArray(-1, ["dragAtom", "set picking dragAtom"]), Clazz.newArray(-1, ["dragMolecule", "set picking dragMolecule"]), Clazz.newArray(-1, ["PDBpickChain", "set picking chain"]), Clazz.newArray(-1, ["pickElement", "set picking element"]), Clazz.newArray(-1, ["modelKitMode", "set modelKitMode"]), Clazz.newArray(-1, ["PDBpickGroup", "set picking group"]), Clazz.newArray(-1, ["pickMolecule", "set picking molecule"]), Clazz.newArray(-1, ["SYMMETRYpickSite", "set picking site"]), Clazz.newArray(-1, ["pickSpin", "set picking spin"]), Clazz.newArray(-1, ["SYMMETRYpickSymmetry", "set picking symmetry"]), Clazz.newArray(-1, ["showConsole", "console"]), Clazz.newArray(-1, ["JSConsole", "JSCONSOLE"]), Clazz.newArray(-1, ["showFile", "console on;show file"]), Clazz.newArray(-1, ["showFileHeader", "console on;getProperty FileHeader"]), Clazz.newArray(-1, ["showHistory", "console on;show history"]), Clazz.newArray(-1, ["showIsosurface", "console on;show isosurface"]), Clazz.newArray(-1, ["showMeasure", "console on;show measure"]), Clazz.newArray(-1, ["showMo", "console on;show mo"]), Clazz.newArray(-1, ["showModel", "console on;show model"]), Clazz.newArray(-1, ["showOrient", "console on;show orientation"]), Clazz.newArray(-1, ["showSpacegroup", "console on;show spacegroup"]), Clazz.newArray(-1, ["showState", "console on;show state"]), Clazz.newArray(-1, ["reload", "load \"\""]), Clazz.newArray(-1, ["SIGNEDloadPdb", JV.JC.getMenuScript("openPDB")]), Clazz.newArray(-1, ["SIGNEDloadMol", JV.JC.getMenuScript("openMOL")]), Clazz.newArray(-1, ["SIGNEDloadFile", "load ?"]), Clazz.newArray(-1, ["SIGNEDloadUrl", "load http://?"]), Clazz.newArray(-1, ["SIGNEDloadFileUnitCell", "load ? {1 1 1}"]), Clazz.newArray(-1, ["SIGNEDloadScript", "script ?.spt"]), Clazz.newArray(-1, ["SIGNEDJAVAcaptureRock", "animation mode loop;capture '?Jmol.gif' rock y 10"]), Clazz.newArray(-1, ["SIGNEDJAVAcaptureSpin", "animation mode loop;capture '?Jmol.gif' spin y"]), Clazz.newArray(-1, ["SIGNEDJAVAcaptureBegin", "capture '?Jmol.gif'"]), Clazz.newArray(-1, ["SIGNEDJAVAcaptureEnd", "capture ''"]), Clazz.newArray(-1, ["SIGNEDJAVAcaptureOff", "capture off"]), Clazz.newArray(-1, ["SIGNEDJAVAcaptureOn", "capture on"]), Clazz.newArray(-1, ["SIGNEDJAVAcaptureFpsSPECIAL", "animation fps @{0+prompt('Capture replay frames per second?', animationFPS)};prompt 'animation FPS ' + animationFPS"]), Clazz.newArray(-1, ["SIGNEDJAVAcaptureLoopingSPECIAL", "animation mode @{(animationMode=='ONCE' ? 'LOOP':'ONCE')};prompt 'animation MODE ' + animationMode"]), Clazz.newArray(-1, ["writeFileTextVARIABLE", "if (_applet && !_signedApplet) { console;show file } else { write file \"?FILE?\"}"]), Clazz.newArray(-1, ["writeState", "if (_applet && !_signedApplet) { console;show state } else { write state \"?FILEROOT?.spt\"}"]), Clazz.newArray(-1, ["writeHistory", "if (_applet && !_signedApplet) { console;show history } else { write history \"?FILEROOT?.his\"}"]), Clazz.newArray(-1, ["SIGNEDwriteJmol", "write PNGJ \"?FILEROOT?.png\""]), Clazz.newArray(-1, ["SIGNEDwriteIsosurface", "write isosurface \"?FILEROOT?.jvxl\""]), Clazz.newArray(-1, ["SIGNEDNOGLwriteGif", "write image \"?FILEROOT?.gif\""]), Clazz.newArray(-1, ["SIGNEDNOGLwriteJpg", "write image \"?FILEROOT?.jpg\""]), Clazz.newArray(-1, ["SIGNEDNOGLwritePng", "write image \"?FILEROOT?.png\""]), Clazz.newArray(-1, ["SIGNEDNOGLwritePngJmol", "write PNGJ \"?FILEROOT?.png\""]), Clazz.newArray(-1, ["SIGNEDNOGLwritePovray", "write POVRAY \"?FILEROOT?.pov\""]), Clazz.newArray(-1, ["SIGNEDNOGLwriteVrml", "write VRML \"?FILEROOT?.wrl\""]), Clazz.newArray(-1, ["SIGNEDNOGLwriteX3d", "write X3D \"?FILEROOT?.x3d\""]), Clazz.newArray(-1, ["SIGNEDNOGLwriteSTL", "write STL \"?FILEROOT?.stl\""]), Clazz.newArray(-1, ["SIGNEDNOGLwriteIdtf", "write IDTF \"?FILEROOT?.idtf\""]), Clazz.newArray(-1, ["SIGNEDNOGLwriteMaya", "write MAYA \"?FILEROOT?.ma\""]), Clazz.newArray(-1, ["SYMMETRYshowSymmetry", "console on;show symmetry"]), Clazz.newArray(-1, ["UNITCELLshow", "console on;show unitcell"]), Clazz.newArray(-1, ["extractMOL", "console on;getproperty extractModel \"visible\" "]), Clazz.newArray(-1, ["minimize", "minimize"]), Clazz.newArray(-1, ["modelkit", "set modelkitmode"]), Clazz.newArray(-1, ["surfDots", "dots on"]), Clazz.newArray(-1, ["surfVDW", "isosurface delete resolution 0 solvent 0 translucent"]), Clazz.newArray(-1, ["surfMolecular", "isosurface delete resolution 0 molecular translucent"]), Clazz.newArray(-1, ["surfSolvent14", "isosurface delete resolution 0 solvent 1.4 translucent"]), Clazz.newArray(-1, ["surfSolventAccessible14", "isosurface delete resolution 0 sasurface 1.4 translucent"]), Clazz.newArray(-1, ["surfMEP", "isosurface delete resolution 0 vdw color range all map MEP translucent"]), Clazz.newArray(-1, ["surf2MEP", "isosurface delete resolution 0 vdw color range -0.1 0.1 map MEP translucent"]), Clazz.newArray(-1, ["surfOpaque", "mo opaque;isosurface opaque"]), Clazz.newArray(-1, ["surfTranslucent", "mo translucent;isosurface translucent"]), Clazz.newArray(-1, ["surfOff", "mo delete;isosurface delete;var ~~sel = {selected};select *;dots off;select ~~sel"]), Clazz.newArray(-1, ["FILEMOLload", "save orientation;load \"\";restore orientation;center"]), Clazz.newArray(-1, ["FILEUNITone", "save orientation;load \"\" {1 1 1} ;restore orientation;center"]), Clazz.newArray(-1, ["FILEUNITnine", "save orientation;load \"\" {444 666 1} ;restore orientation;center"]), Clazz.newArray(-1, ["FILEUNITnineRestricted", "save orientation;load \"\" {444 666 1} ;restore orientation; unitcell on; display cell=555;center visible;zoom 200"]), Clazz.newArray(-1, ["FILEUNITninePoly", "save orientation;load \"\" {444 666 1} ;restore orientation; unitcell on; display cell=555; polyhedra 4,6 (displayed);center (visible);zoom 200"]), Clazz.newArray(-1, ["1p", "on"]), Clazz.newArray(-1, ["3p", "3"]), Clazz.newArray(-1, ["5p", "5"]), Clazz.newArray(-1, ["10p", "10"]), Clazz.newArray(-1, ["10a", "0.1"]), Clazz.newArray(-1, ["20a", "0.20"]), Clazz.newArray(-1, ["25a", "0.25"]), Clazz.newArray(-1, ["50a", "0.50"]), Clazz.newArray(-1, ["100a", "1.0"])]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/popup/PopupHelper.js b/config/plugins/visualizations/jmol/static/j2s/J/popup/PopupHelper.js new file mode 100755 index 000000000000..14cbd988dd4a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/popup/PopupHelper.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.popup"); +Clazz.declareInterface(J.popup, "PopupHelper"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/popup/PopupResource.js b/config/plugins/visualizations/jmol/static/j2s/J/popup/PopupResource.js new file mode 100755 index 000000000000..1f2f8c9316dd --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/popup/PopupResource.js @@ -0,0 +1,109 @@ +Clazz.declarePackage("J.popup"); +Clazz.load(null, "J.popup.PopupResource", ["java.io.BufferedReader", "$.StringReader", "java.util.Properties", "JU.SB"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.structure = null; +this.words = null; +Clazz.instantialize(this, arguments);}, J.popup, "PopupResource", null); +Clazz.makeConstructor(c$, +function(menuStructure, menuText){ +this.structure = new java.util.Properties(); +this.words = new java.util.Properties(); +this.buildStructure(menuStructure); +this.localize(menuStructure != null, menuText); +}, "~S,java.util.Properties"); +Clazz.defineMethod(c$, "getStructure", +function(key){ +return this.structure.getProperty(key); +}, "~S"); +Clazz.defineMethod(c$, "getWord", +function(key){ +var str = this.words.getProperty(key); +return (str == null ? key : str); +}, "~S"); +Clazz.defineMethod(c$, "setStructure", +function(slist, gt){ +var br = new java.io.BufferedReader( new java.io.StringReader(slist)); +var line; +var pt; +try { +while ((line = br.readLine()) != null) { +if (line.length == 0 || line.charAt(0) == '#') continue; +pt = line.indexOf("="); +if (pt < 0) { +pt = line.length; +line += "="; +}var name = line.substring(0, pt).trim(); +var value = line.substring(pt + 1).trim(); +var label = null; +if ((pt = name.indexOf("|")) >= 0) { +label = name.substring(pt + 1).trim(); +name = name.substring(0, pt).trim(); +}if (name.length == 0) continue; +if (value.length > 0) this.structure.setProperty(name, value); +if (label != null && label.length > 0) this.words.setProperty(name, (gt == null ? label : gt.translate(label))); +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +try { +br.close(); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +}, "~S,J.api.Translator"); +Clazz.defineMethod(c$, "addItems", +function(itemPairs){ +var previous = ""; +for (var i = 0; i < itemPairs.length; i++) { +var pair = itemPairs[i]; +var str = pair[1]; +if (str == null) str = previous; +previous = str; +this.structure.setProperty(pair[0], str); +} +}, "~A"); +Clazz.defineMethod(c$, "localize", +function(haveUserMenu, menuText){ +var wordContents = this.getWordContents(); +for (var i = 0; i < wordContents.length; i++) { +var item = wordContents[i++]; +var word = this.words.getProperty(item); +if (word == null) word = wordContents[i]; +this.words.setProperty(item, word); +if (menuText != null && item.indexOf("Text") >= 0) menuText.setProperty(item, word); +} +}, "~B,java.util.Properties"); +Clazz.defineMethod(c$, "getStuctureAsText", +function(title, menuContents, structureContents){ +return "# " + this.getMenuName() + ".mnu " + title + "\n\n" + "# Part I -- Menu Structure\n" + "# ------------------------\n\n" + this.dumpStructure(menuContents) + "\n\n" + "# Part II -- Key Definitions\n" + "# --------------------------\n\n" + this.dumpStructure(structureContents) + "\n\n" + "# Part III -- Word Translations\n" + "# -----------------------------\n\n" + this.dumpWords(); +}, "~S,~A,~A"); +Clazz.defineMethod(c$, "dumpWords", +function(){ +var wordContents = this.getWordContents(); +var s = new JU.SB(); +for (var i = 0; i < wordContents.length; i++) { +var key = wordContents[i++]; +if (this.structure.getProperty(key) == null) s.append(key).append(" | ").append(wordContents[i]).appendC('\n'); +} +return s.toString(); +}); +Clazz.defineMethod(c$, "dumpStructure", +function(items){ +var previous = ""; +var s = new JU.SB(); +for (var i = 0; i < items.length; i++) { +var key = items[i][0]; +var label = this.words.getProperty(key); +if (label != null) key += " | " + label; +s.append(key).append(" = ").append(items[i][1] == null ? previous : (previous = items[i][1])).appendC('\n'); +} +return s.toString(); +}, "~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/MOCalculation.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/MOCalculation.js new file mode 100755 index 000000000000..52f313b1a8f8 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/MOCalculation.js @@ -0,0 +1,764 @@ +Clazz.declarePackage("J.quantum"); +Clazz.load(["J.quantum.QuantumCalculation"], "J.quantum.MOCalculation", ["javajs.api.Interface", "J.quantum.QS", "JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.CX = null; +this.CY = null; +this.CZ = null; +this.DXY = null; +this.DXZ = null; +this.DYZ = null; +this.EX = null; +this.EY = null; +this.EZ = null; +this.calculationType = null; +this.shells = null; +this.gaussians = null; +this.slaters = null; +this.moCoefficients = null; +this.moCoeff = 0; +this.gaussianPtr = 0; +this.normType = 0; +this.dfCoefMaps = null; +this.linearCombination = null; +this.coefs = null; +this.moFactor = 1; +this.havePoints = false; +this.testing = true; +this.highLEnabled = null; +this.sum = -1; +this.nGaussians = 0; +this.doShowShellType = false; +this.warned = null; +this.dataAdders = null; +this.dataAdderOK = null; +this.coeffs = null; +this.map = null; +this.lastGaussianPtr = -1; +this.isSquaredLinear = false; +Clazz.instantialize(this, arguments);}, J.quantum, "MOCalculation", J.quantum.QuantumCalculation); +Clazz.prepareFields (c$, function(){ +this.dataAdders = new Array(20); +this.dataAdderOK = Clazz.newIntArray (20, 0); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.quantum.MOCalculation, []); +}); +Clazz.defineMethod(c$, "setupCalculation", +function(moData, isSlaters, volumeData, bsSelected, xyz, atoms, firstAtomOffset, dfCoefMaps, moCoefficients, linearCombination, isSquaredLinear, coefs, points){ +var calculationType = moData.get("calculationType"); +var shells = moData.get("shells"); +var gaussians = moData.get("gaussians"); +var slaters = moData.get("slaters"); +this.highLEnabled = moData.get("highLEnabled"); +this.havePoints = (points != null); +this.calculationType = calculationType; +this.firstAtomOffset = firstAtomOffset; +this.shells = shells; +this.gaussians = gaussians; +this.dfCoefMaps = (dfCoefMaps == null ? J.quantum.QS.getNewDfCoefMap() : dfCoefMaps); +this.coeffs = Clazz.newDoubleArray (this.dfCoefMaps[this.dfCoefMaps.length - 1].length, 0); +this.slaters = slaters; +this.moCoefficients = moCoefficients; +this.linearCombination = linearCombination; +this.isSquaredLinear = isSquaredLinear; +this.coefs = coefs; +var doNormalize = (isSlaters || moData.get("isNormalized") !== Boolean.TRUE); +if (doNormalize) this.setNormalization(moData.get("nboType")); +this.countsXYZ = volumeData.getVoxelCounts(); +this.initialize(this.countsXYZ[0], this.countsXYZ[1], this.countsXYZ[2], points); +this.voxelData = volumeData.getVoxelData(); +this.voxelDataTemp = (isSquaredLinear ? Clazz.newFloatArray (this.nX, this.nY, this.nZ, 0) : this.voxelData); +this.setupCoordinates(volumeData.getOriginFloat(), volumeData.getVolumetricVectorLengths(), bsSelected, xyz, atoms, points, false); +this.doDebug = (JU.Logger.debugging); +return !bsSelected.isEmpty() && (slaters != null || this.checkCalculationType()); +}, "java.util.Map,~B,J.jvxl.data.VolumeData,JU.BS,~A,~A,~N,~A,~A,~A,~B,~A,~A"); +Clazz.defineMethod(c$, "setNormalization", +function(nboType){ +var type = "standard"; +this.normType = 1; +if (nboType != null) { +this.normType = 3; +type = "NBO-AO"; +} else if (this.calculationType != null) { +if (this.calculationType.indexOf("NWCHEM") >= 0) { +this.normType = 2; +type = "NWCHEM"; +JU.Logger.info("Normalization of contractions (NWCHEM)"); +}}}, "~O"); +Clazz.overrideMethod(c$, "initialize", +function(nX, nY, nZ, points){ +this.initialize0(nX, nY, nZ, points); +this.CX = Clazz.newDoubleArray (this.nX, 0); +this.CY = Clazz.newDoubleArray (this.nY, 0); +this.CZ = Clazz.newDoubleArray (this.nZ, 0); +this.DXY = Clazz.newDoubleArray (this.nX, 0); +this.DXZ = Clazz.newDoubleArray (this.nX, 0); +this.DYZ = Clazz.newDoubleArray (this.nY, 0); +this.EX = Clazz.newDoubleArray (this.nX, 0); +this.EY = Clazz.newDoubleArray (this.nY, 0); +this.EZ = Clazz.newDoubleArray (this.nZ, 0); +}, "~N,~N,~N,~A"); +Clazz.overrideMethod(c$, "createCube", +function(){ +this.setXYZBohr(this.points); +this.processPoints(); +if (!this.isSquaredLinear && (this.doDebug || this.testing)) this.calculateElectronDensity(); +}); +Clazz.overrideMethod(c$, "processPoints", +function(){ +if (this.linearCombination == null) { +this.process(); +} else { +if (this.sum < 0) { +this.sum = 0; +for (var i = 0; i < this.linearCombination.length; i += 2) this.sum += this.linearCombination[i] * this.linearCombination[i]; + +this.sum = Math.sqrt(this.sum); +}if (this.sum == 0) return; +for (var i = 0; i < this.linearCombination.length; i += 2) { +this.moFactor = this.linearCombination[i] / this.sum; +if (this.moFactor == 0) continue; +this.moCoefficients = this.coefs[Clazz.floatToInt(this.linearCombination[i + 1]) - 1]; +this.process(); +if (this.isSquaredLinear) this.addValuesSquared(1); +} +}}); +Clazz.overrideMethod(c$, "process", +function(){ +this.atomIndex = this.firstAtomOffset - 1; +this.moCoeff = 0; +if (this.slaters == null) { +var nShells = this.shells.size(); +for (var i = 0; i < nShells; i++) this.processShell(i); + +return; +}for (var i = 0; i < this.slaters.length; i++) { +if (!this.processSlater(i)) break; +} +}); +Clazz.defineMethod(c$, "checkCalculationType", +function(){ +if (this.calculationType == null) { +JU.Logger.warn("calculation type not identified -- continuing"); +return true; +}if (this.calculationType.indexOf("+") >= 0 || this.calculationType.indexOf("*") >= 0) { +JU.Logger.warn("polarization/diffuse wavefunctions have not been tested fully: " + this.calculationType + " -- continuing"); +}if (this.calculationType.indexOf("?") >= 0) { +JU.Logger.warn("unknown calculation type may not render correctly -- continuing"); +} else if (this.points == null) { +JU.Logger.info("calculation type: " + this.calculationType + " OK."); +}return true; +}); +Clazz.defineMethod(c$, "processShell", +function(iShell){ +var lastAtom = this.atomIndex; +var shell = this.shells.get(iShell); +this.atomIndex = shell[0] - 1 + this.firstAtomOffset; +var basisType = shell[1]; +this.gaussianPtr = shell[2] - 1; +this.nGaussians = shell[3]; +this.doShowShellType = this.doDebug; +if (this.atomIndex != lastAtom && (this.thisAtom = this.qmAtoms[this.atomIndex]) != null) this.thisAtom.setXYZ(this, true); +if (!this.allowType(basisType) || !this.setCoeffs(shell[1], true)) return; +if (this.havePoints) this.setMinMax(-1); +switch (basisType) { +case 0: +this.addDataS(); +break; +case 1: +this.addDataP(); +break; +case 2: +this.addDataSP(); +break; +case 3: +this.addData5D(); +break; +case 4: +this.addData6D(); +break; +default: +if (this.addHighL(basisType)) return; +if (this.warned == null) this.warned = ""; +var key = "=" + (this.atomIndex + 1) + ": " + J.quantum.QS.getQuantumShellTag(basisType); +if (this.warned.indexOf(key) < 0) { +this.warned += key; +JU.Logger.warn(" Unsupported basis type for atomno" + key); +}break; +} +}, "~N"); +Clazz.defineMethod(c$, "addHighL", +function(basisType){ +if (!this.allowType(basisType)) return false; +var adder = this.dataAdders[basisType]; +switch (this.dataAdderOK[basisType]) { +case 0: +this.dataAdders[basisType] = adder = (javajs.api.Interface.getInterface("J.quantum.mo.DataAdder" + J.quantum.QS.getQuantumShellTag(basisType))); +this.dataAdderOK[basisType] = (adder == null ? -1 : 1); +if (adder != null) break; +case -1: +return false; +} +if (adder.addData(this, this.havePoints)) return true; +this.dataAdders[basisType] = null; +this.dataAdderOK[basisType] = -1; +return false; +}, "~N"); +Clazz.defineMethod(c$, "allowType", +function(basisType){ +return (basisType < 7 || this.highLEnabled[basisType] != 0); +}, "~N"); +Clazz.defineMethod(c$, "addValuesSquared", +function(occupancy){ +for (var ix = this.nX; --ix >= 0; ) { +for (var iy = this.nY; --iy >= 0; ) { +for (var iz = this.nZ; --iz >= 0; ) { +var value = this.voxelDataTemp[ix][iy][iz]; +if (value == 0) continue; +this.voxelData[ix][iy][iz] += value * value * occupancy; +this.voxelDataTemp[ix][iy][iz] = 0; +} +} +} +}, "~N"); +Clazz.defineMethod(c$, "getContractionNormalization", +function(el, cpt){ +var sum; +var df = (el == 3 ? 15 : el == 2 ? 3 : 1); +var f = df * Math.pow(3.141592653589793, 1.5) / Math.pow(2, el); +var p = 0.75 + el / 2.0; +if (this.nGaussians == 1) { +sum = Math.pow(2, -2 * p) * Math.pow(this.gaussians[this.gaussianPtr][cpt], 2); +} else { +sum = 0; +for (var ig1 = 0; ig1 < this.nGaussians; ig1++) { +var alpha1 = this.gaussians[this.gaussianPtr + ig1][0]; +var c1 = this.gaussians[this.gaussianPtr + ig1][cpt]; +var f1 = Math.pow(alpha1, p); +for (var ig2 = 0; ig2 < this.nGaussians; ig2++) { +var alpha2 = this.gaussians[this.gaussianPtr + ig2][0]; +var c2 = this.gaussians[this.gaussianPtr + ig2][cpt]; +var f2 = Math.pow(alpha2, p); +sum += c1 * f1 * c2 * f2 / Math.pow(alpha1 + alpha2, 2 * p); +} +} +}sum = 1 / Math.sqrt(f * sum); +if (JU.Logger.debuggingHigh) JU.Logger.debug("\t\t\tnormalization for l=" + el + " nGaussians=" + this.nGaussians + " is " + sum); +return sum; +}, "~N,~N"); +Clazz.defineMethod(c$, "setCoeffs", +function(type, isProcess){ +var isOK = false; +this.map = this.dfCoefMaps[type]; +if (isProcess && this.thisAtom == null) { +this.moCoeff += this.map.length; +return false; +}for (var i = 0; i < this.map.length; i++) isOK = new Boolean (isOK | ((this.coeffs[i] = this.moCoefficients[this.map[i] + this.moCoeff++]) != 0)).valueOf(); + +isOK = new Boolean (isOK & (this.coeffs[0] != -2147483648)).valueOf(); +if (isOK && this.doDebug && isProcess) this.dumpInfo(type); +return isOK; +}, "~N,~B"); +Clazz.defineMethod(c$, "addDataS", +function(){ +var norm; +var c1; +var normalizeAlpha = false; +switch (this.normType) { +case 0: +case 3: +default: +norm = 1; +break; +case 1: +norm = 0.712705470; +normalizeAlpha = true; +break; +case 2: +norm = this.getContractionNormalization(0, 1); +normalizeAlpha = true; +break; +} +var m1 = this.coeffs[0]; +for (var ig = 0; ig < this.nGaussians; ig++) { +var alpha = this.gaussians[this.gaussianPtr + ig][0]; +c1 = this.gaussians[this.gaussianPtr + ig][1]; +var a = norm * m1 * c1 * this.moFactor; +if (normalizeAlpha) a *= Math.pow(alpha, 0.75); +for (var i = this.xMax; --i >= this.xMin; ) { +this.EX[i] = a * Math.exp(-this.X2[i] * alpha); +} +for (var i = this.yMax; --i >= this.yMin; ) { +this.EY[i] = Math.exp(-this.Y2[i] * alpha); +} +for (var i = this.zMax; --i >= this.zMin; ) { +this.EZ[i] = Math.exp(-this.Z2[i] * alpha); +} +for (var ix = this.xMax; --ix >= this.xMin; ) { +var eX = this.EX[ix]; +if (this.havePoints) this.setMinMax(ix); +for (var iy = this.yMax; --iy >= this.yMin; ) { +var eXY = eX * this.EY[iy]; +var vd = this.voxelDataTemp[ix][(this.havePoints ? 0 : iy)]; +for (var iz = this.zMax; --iz >= this.zMin; ) vd[(this.havePoints ? 0 : iz)] += eXY * this.EZ[iz]; + +} +} +} +}); +Clazz.defineMethod(c$, "addDataP", +function(){ +var mx = this.coeffs[0]; +var my = this.coeffs[1]; +var mz = this.coeffs[2]; +var norm; +var normalizeAlpha = false; +switch (this.normType) { +case 0: +case 3: +default: +norm = 1; +break; +case 1: +norm = 1.42541094; +normalizeAlpha = true; +break; +case 2: +norm = this.getContractionNormalization(1, 1); +normalizeAlpha = true; +break; +} +for (var ig = 0; ig < this.nGaussians; ig++) { +var alpha = this.gaussians[this.gaussianPtr + ig][0]; +var c1 = this.gaussians[this.gaussianPtr + ig][1]; +var a = c1; +if (normalizeAlpha) a *= Math.pow(alpha, 1.25) * norm; +this.calcSP(alpha, 0, a * mx, a * my, a * mz); +} +}); +Clazz.defineMethod(c$, "addDataSP", +function(){ +var isP = (this.map.length == 3); +var pPt = (isP ? 0 : 1); +var ms = (isP ? 0 : this.coeffs[0]); +var mx = this.coeffs[pPt++]; +var my = this.coeffs[pPt++]; +var mz = this.coeffs[pPt++]; +var norm1; +var norm2; +var doNormalize = false; +switch (this.normType) { +case 0: +case 3: +default: +norm1 = norm2 = 1; +break; +case 1: +norm1 = 0.712705470; +norm2 = 1.42541094; +doNormalize = true; +break; +case 2: +norm1 = this.getContractionNormalization(0, 1); +norm2 = this.getContractionNormalization(1, 2); +doNormalize = true; +break; +} +var a1; +var a2; +var c1; +var c2; +var alpha; +for (var ig = 0; ig < this.nGaussians; ig++) { +alpha = this.gaussians[this.gaussianPtr + ig][0]; +c1 = this.gaussians[this.gaussianPtr + ig][1]; +c2 = this.gaussians[this.gaussianPtr + ig][2]; +a1 = c1; +a2 = c2; +if (doNormalize) { +a1 *= Math.pow(alpha, 0.75) * norm1; +a2 *= Math.pow(alpha, 1.25) * norm2; +}this.calcSP(alpha, a1 * ms, a2 * mx, a2 * my, a2 * mz); +} +}); +Clazz.defineMethod(c$, "setCE", +function(alpha, as, ax, ay, az){ +for (var i = this.xMax; --i >= this.xMin; ) { +this.CX[i] = as + ax * this.X[i]; +this.EX[i] = Math.exp(-this.X2[i] * alpha) * this.moFactor; +} +for (var i = this.yMax; --i >= this.yMin; ) { +this.CY[i] = ay * this.Y[i]; +this.EY[i] = Math.exp(-this.Y2[i] * alpha); +} +for (var i = this.zMax; --i >= this.zMin; ) { +this.CZ[i] = az * this.Z[i]; +this.EZ[i] = Math.exp(-this.Z2[i] * alpha); +} +}, "~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "setE", +function(EX, alpha){ +for (var i = this.xMax; --i >= this.xMin; ) EX[i] = Math.exp(-this.X2[i] * alpha) * this.moFactor; + +for (var i = this.yMax; --i >= this.yMin; ) this.EY[i] = Math.exp(-this.Y2[i] * alpha); + +for (var i = this.zMax; --i >= this.zMin; ) this.EZ[i] = Math.exp(-this.Z2[i] * alpha); + +}, "~A,~N"); +Clazz.defineMethod(c$, "calcSP", +function(alpha, as, ax, ay, az){ +this.setCE(alpha, as, ax, ay, az); +for (var ix = this.xMax; --ix >= this.xMin; ) { +var eX = this.EX[ix]; +var cX = this.CX[ix]; +if (this.havePoints) this.setMinMax(ix); +for (var iy = this.yMax; --iy >= this.yMin; ) { +var eXY = eX * this.EY[iy]; +var cXY = cX + this.CY[iy]; +var vd = this.voxelDataTemp[ix][(this.havePoints ? 0 : iy)]; +for (var iz = this.zMax; --iz >= this.zMin; ) { +vd[(this.havePoints ? 0 : iz)] += (cXY + this.CZ[iz]) * eXY * this.EZ[iz]; +} +} +} +}, "~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "addData6D", +function(){ +var mxx = this.coeffs[0]; +var myy = this.coeffs[1]; +var mzz = this.coeffs[2]; +var mxy = this.coeffs[3]; +var mxz = this.coeffs[4]; +var myz = this.coeffs[5]; +var norm1; +var norm2; +var normalizeAlpha = false; +switch (this.normType) { +case 0: +default: +norm1 = 1; +norm2 = 0.5773502795520422; +break; +case 1: +norm1 = 2.8508219178923; +norm2 = norm1 / 1.7320507764816284; +normalizeAlpha = true; +break; +case 2: +norm1 = norm2 = this.getContractionNormalization(2, 1); +normalizeAlpha = true; +break; +case 3: +norm1 = 1.7320507764816284; +norm2 = 1; +} +for (var ig = 0; ig < this.nGaussians; ig++) { +var alpha = this.gaussians[this.gaussianPtr + ig][0]; +var c1 = this.gaussians[this.gaussianPtr + ig][1]; +var a = c1; +if (normalizeAlpha) a *= Math.pow(alpha, 1.75); +var axy = a * norm1 * mxy; +var axz = a * norm1 * mxz; +var ayz = a * norm1 * myz; +var axx = a * norm2 * mxx; +var ayy = a * norm2 * myy; +var azz = a * norm2 * mzz; +this.setCE(alpha, 0, axx, ayy, azz); +for (var i = this.xMax; --i >= this.xMin; ) { +this.DXY[i] = axy * this.X[i]; +this.DXZ[i] = axz * this.X[i]; +} +for (var i = this.yMax; --i >= this.yMin; ) { +this.DYZ[i] = ayz * this.Y[i]; +} +for (var ix = this.xMax; --ix >= this.xMin; ) { +var axx_x2 = this.CX[ix] * this.X[ix]; +var axy_x = this.DXY[ix]; +var axz_x = this.DXZ[ix]; +var eX = this.EX[ix]; +if (this.havePoints) this.setMinMax(ix); +for (var iy = this.yMax; --iy >= this.yMin; ) { +var axx_x2__ayy_y2__axy_xy = axx_x2 + (this.CY[iy] + axy_x) * this.Y[iy]; +var axz_x__ayz_y = axz_x + this.DYZ[iy]; +var eXY = eX * this.EY[iy]; +var vd = this.voxelDataTemp[ix][(this.havePoints ? 0 : iy)]; +for (var iz = this.zMax; --iz >= this.zMin; ) { +vd[(this.havePoints ? 0 : iz)] += (axx_x2__ayy_y2__axy_xy + (this.CZ[iz] + axz_x__ayz_y) * this.Z[iz]) * eXY * this.EZ[iz]; +} +} +} +} +}); +Clazz.defineMethod(c$, "addData5D", +function(){ +var alpha; +var c1; +var a; +var x; +var y; +var z; +var cxx; +var cyy; +var czz; +var cxy; +var cxz; +var cyz; +var ad0; +var ad1p; +var ad1n; +var ad2p; +var ad2n; +var norm1; +var norm2; +var norm3; +var norm4; +var norm5; +var normalizeAlpha = false; +switch (this.normType) { +case 0: +default: +norm1 = norm2 = norm3 = norm4 = norm5 = 1; +break; +case 3: +norm2 = norm4 = 1; +norm1 = 3.464101552963257; +norm3 = 1.7320507764816284; +norm5 = 2; +break; +case 1: +norm1 = Math.pow(66.05114251919257, 0.25); +norm2 = norm1 / 1.7320507764816284; +norm3 = 0.8660253882408142; +norm4 = norm5 = 1; +normalizeAlpha = true; +break; +case 2: +norm2 = this.getContractionNormalization(2, 1); +norm1 = norm2 * 1.7320507764816284; +norm3 = 0.8660253882408142; +norm4 = -1; +norm5 = 1; +normalizeAlpha = true; +break; +} +var m0 = this.coeffs[0]; +var m1p = this.coeffs[1]; +var m1n = this.coeffs[2]; +var m2p = this.coeffs[3]; +var m2n = this.coeffs[4]; +for (var ig = 0; ig < this.nGaussians; ig++) { +alpha = this.gaussians[this.gaussianPtr + ig][0]; +c1 = this.gaussians[this.gaussianPtr + ig][1]; +a = c1; +if (normalizeAlpha) a *= Math.pow(alpha, 1.75); +ad0 = a * m0; +ad1p = norm4 * a * m1p; +ad1n = a * m1n; +ad2p = a * m2p; +ad2n = a * m2n; +this.setE(this.EX, alpha); +for (var ix = this.xMax; --ix >= this.xMin; ) { +x = this.X[ix]; +var eX = this.EX[ix]; +cxx = norm2 * x * x; +if (this.havePoints) this.setMinMax(ix); +for (var iy = this.yMax; --iy >= this.yMin; ) { +y = this.Y[iy]; +var eXY = eX * this.EY[iy]; +cyy = norm2 * y * y; +cxy = norm1 * x * y; +var vd = this.voxelDataTemp[ix][(this.havePoints ? 0 : iy)]; +for (var iz = this.zMax; --iz >= this.zMin; ) { +z = this.Z[iz]; +czz = norm2 * z * z; +cxz = norm1 * x * z; +cyz = norm1 * y * z; +vd[(this.havePoints ? 0 : iz)] += (ad0 * norm5 * (czz - 0.5 * (cxx + cyy)) + ad1p * cxz + ad1n * cyz + ad2p * norm3 * (cxx - cyy) + ad2n * cxy) * eXY * this.EZ[iz]; +} +} +} +} +}); +Clazz.defineMethod(c$, "processSlater", +function(slaterIndex){ +var lastAtom = this.atomIndex; +var slater = this.slaters[slaterIndex]; +this.atomIndex = slater.atomNo - 1; +var minuszeta = -slater.zeta; +if ((this.thisAtom = this.qmAtoms[this.atomIndex]) == null) { +if (minuszeta <= 0) this.moCoeff++; +return true; +}if (minuszeta > 0) { +minuszeta = -minuszeta; +this.moCoeff--; +}if (this.moCoeff >= this.moCoefficients.length) return false; +var coef = slater.coef * this.moCoefficients[this.moCoeff++]; +if (coef == 0) { +this.atomIndex = -1; +return true; +}coef *= this.moFactor; +if (this.atomIndex != lastAtom) this.thisAtom.setXYZ(this, true); +var a = slater.x; +var b = slater.y; +var c = slater.z; +var d = slater.r; +if (a == -2) for (var ix = this.xMax; --ix >= this.xMin; ) { +var dx2 = this.X2[ix]; +if (this.havePoints) this.setMinMax(ix); +for (var iy = this.yMax; --iy >= this.yMin; ) { +var dy2 = this.Y2[iy]; +var dx2y2 = dx2 + dy2; +var vd = this.voxelDataTemp[ix][(this.havePoints ? 0 : iy)]; +for (var iz = this.zMax; --iz >= this.zMin; ) { +var dz2 = this.Z2[iz]; +var r2 = dx2y2 + dz2; +var r = Math.sqrt(r2); +var exponent = minuszeta * r; +if (exponent < -50.0) continue; +var value = (coef * Math.exp(exponent) * (3 * dz2 - r2)); +switch (d) { +case 3: +value *= r; +case 2: +value *= r2; +break; +case 1: +value *= r; +break; +} +vd[(this.havePoints ? 0 : iz)] += value; +} +} +} + else if (b == -2) for (var ix = this.xMax; --ix >= this.xMin; ) { +var dx2 = this.X2[ix]; +if (this.havePoints) this.setMinMax(ix); +for (var iy = this.yMax; --iy >= this.yMin; ) { +var dy2 = this.Y2[iy]; +var dx2y2 = dx2 + dy2; +var dx2my2 = coef * (dx2 - dy2); +var vd = this.voxelDataTemp[ix][(this.havePoints ? 0 : iy)]; +for (var iz = this.zMax; --iz >= this.zMin; ) { +var dz2 = this.Z2[iz]; +var r2 = dx2y2 + dz2; +var r = Math.sqrt(r2); +var exponent = minuszeta * r; +if (exponent < -50.0) continue; +var value = dx2my2 * Math.exp(exponent); +switch (d) { +case 3: +value *= r; +case 2: +value *= r2; +break; +case 1: +value *= r; +break; +} +vd[(this.havePoints ? 0 : iz)] += value; +} +} +} + else for (var ix = this.xMax; --ix >= this.xMin; ) { +var dx2 = this.X2[ix]; +var vdx = coef; +switch (a) { +case 3: +vdx *= this.X[ix]; +case 2: +vdx *= dx2; +break; +case 1: +vdx *= this.X[ix]; +break; +} +if (this.havePoints) this.setMinMax(ix); +for (var iy = this.yMax; --iy >= this.yMin; ) { +var dy2 = this.Y2[iy]; +var dx2y2 = dx2 + dy2; +var vdy = vdx; +switch (b) { +case 3: +vdy *= this.Y[iy]; +case 2: +vdy *= dy2; +break; +case 1: +vdy *= this.Y[iy]; +break; +} +var vd = this.voxelDataTemp[ix][(this.havePoints ? 0 : iy)]; +for (var iz = this.zMax; --iz >= this.zMin; ) { +var dz2 = this.Z2[iz]; +var r2 = dx2y2 + dz2; +var r = Math.sqrt(r2); +var exponent = minuszeta * r; +if (exponent < -50.0) continue; +var value = vdy * Math.exp(exponent); +switch (c) { +case 3: +value *= this.Z[iz]; +case 2: +value *= dz2; +break; +case 1: +value *= this.Z[iz]; +break; +} +switch (d) { +case 3: +value *= r; +case 2: +value *= r2; +break; +case 1: +value *= r; +break; +} +vd[(this.havePoints ? 0 : iz)] += value; +} +} +} +return true; +}, "~N"); +Clazz.defineMethod(c$, "dumpInfo", +function(shell){ +if (this.doShowShellType) { +if (JU.Logger.debugging) JU.Logger.debug("\n\t\t\tprocessShell: " + shell + " type=" + J.quantum.QS.getQuantumShellTag(shell) + " nGaussians=" + this.nGaussians + " atom=" + this.atomIndex); +this.doShowShellType = false; +}if (JU.Logger.isActiveLevel(6) && this.gaussianPtr != this.lastGaussianPtr) { +this.lastGaussianPtr = this.gaussianPtr; +for (var ig = 0; ig < this.nGaussians; ig++) { +var alpha = this.gaussians[this.gaussianPtr + ig][0]; +var c1 = this.gaussians[this.gaussianPtr + ig][1]; +if (JU.Logger.debugging) JU.Logger.debug("\t\t\tGaussian " + (ig + 1) + " alpha=" + alpha + " c=" + c1); +} +}var so = J.quantum.MOCalculation.getShellOrder(shell); +for (var i = 0; i < this.map.length; i++) { +var n = this.map[i] + this.moCoeff - this.map.length + i + 1; +var c = this.coeffs[i]; +if (JU.Logger.debugging) JU.Logger.debug("MO coeff " + (so == null ? "?" : so[i]) + " " + n + "\t" + c + "\t" + this.thisAtom.atom); +} +}, "~N"); +c$.getShellOrder = Clazz.defineMethod(c$, "getShellOrder", +function(i){ +return (i < 0 || i >= J.quantum.MOCalculation.shellOrder.length ? null : J.quantum.MOCalculation.shellOrder[i]); +}, "~N"); +Clazz.defineMethod(c$, "calculateElectronDensity", +function(){ +if (this.points != null) return; +this.integration = 0; +for (var ix = this.nX; --ix >= 0; ) for (var iy = this.nY; --iy >= 0; ) for (var iz = this.nZ; --iz >= 0; ) { +var x = this.voxelData[ix][iy][iz]; +this.integration += x * x; +} + + +var volume = this.stepBohr[0] * this.stepBohr[1] * this.stepBohr[2]; +this.integration *= volume; +JU.Logger.info("Integrated density = " + this.integration + " for volume " + (volume * this.nX * this.nY * this.nZ / 1.8897161 / 1.8897161 / 1.8897161) + " Ang^3 steps " + this.nX + " " + this.nY + " " + this.nZ); +}); +c$.shellOrder = Clazz.newArray(-1, [ Clazz.newArray(-1, ["S"]), Clazz.newArray(-1, ["X", "Y", "Z"]), Clazz.newArray(-1, ["S", "X", "Y", "Z"]), Clazz.newArray(-1, ["d0/z2", "d1+/xz", "d1-/yz", "d2+/x2-y2", "d2-/xy"]), Clazz.newArray(-1, ["XX", "YY", "ZZ", "XY", "XZ", "YZ"]), Clazz.newArray(-1, ["f0/2z3-3x2z-3y2z", "f1+/4xz2-x3-xy2", "f1-/4yz2-x2y-y3", "f2+/x2z-y2z", "f2-/xyz", "f3+/x3-3xy2", "f3-/3x2y-y3"]), Clazz.newArray(-1, ["XXX", "YYY", "ZZZ", "XYY", "XXY", "XXZ", "XZZ", "YZZ", "YYZ", "XYZ"])]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/MepCalculation.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/MepCalculation.js new file mode 100755 index 000000000000..6c31a9e2b012 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/MepCalculation.js @@ -0,0 +1,144 @@ +Clazz.declarePackage("J.quantum"); +Clazz.load(["J.quantum.QuantumCalculation"], "J.quantum.MepCalculation", ["java.util.Hashtable", "JU.PT", "$.Rdr", "JU.Logger", "JV.FileManager"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.distanceMode = 0; +this.potentials = null; +this.atomCoordAngstroms = null; +this.bsSelected = null; +this.vwr = null; +this.htAtomicPotentials = null; +this.resourceName = null; +Clazz.instantialize(this, arguments);}, J.quantum, "MepCalculation", J.quantum.QuantumCalculation); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.quantum.MepCalculation, []); +this.rangeBohrOrAngstroms = 8; +this.distanceMode = 0; +this.unitFactor = 1; +}); +Clazz.defineMethod(c$, "set", +function(vwr){ +this.vwr = vwr; +}, "JV.Viewer"); +Clazz.defineMethod(c$, "assignPotentials", +function(atoms, potentials, bsAromatic, bsCarbonyl, bsIgnore, data){ +this.getAtomicPotentials(data, null); +for (var i = 0; i < atoms.length; i++) { +var f; +if (bsIgnore != null && bsIgnore.get(i)) { +f = NaN; +} else { +f = this.getTabulatedPotential(atoms[i]); +if (Float.isNaN(f)) f = 0; +}if (JU.Logger.debugging) JU.Logger.debug(atoms[i].getInfo() + " " + f); +potentials[i] = f; +} +}, "~A,~A,JU.BS,JU.BS,JU.BS,~S"); +Clazz.defineMethod(c$, "setup", +function(calcType, potentials, atomCoordAngstroms, bsSelected){ +if (calcType >= 0) this.distanceMode = calcType; +this.potentials = potentials; +this.atomCoordAngstroms = atomCoordAngstroms; +this.bsSelected = bsSelected; +}, "~N,~A,~A,JU.BS"); +Clazz.defineMethod(c$, "calculate", +function(volumeData, bsSelected, xyz, atoms, potentials, calcType){ +this.setup(calcType, potentials, atoms, bsSelected); +this.voxelData = volumeData.getVoxelData(); +this.countsXYZ = volumeData.getVoxelCounts(); +this.initialize(this.countsXYZ[0], this.countsXYZ[1], this.countsXYZ[2], null); +this.setupCoordinates(volumeData.getOriginFloat(), volumeData.getVolumetricVectorLengths(), bsSelected, xyz, atoms, null, false); +this.setXYZBohr(this.points); +this.process(); +}, "J.jvxl.data.VolumeData,JU.BS,~A,~A,~A,~N"); +Clazz.defineMethod(c$, "getValueAtPoint", +function(pt){ +var value = 0; +for (var i = this.bsSelected.nextSetBit(0); i >= 0; i = this.bsSelected.nextSetBit(i + 1)) { +var x = this.potentials[i]; +var d2 = pt.distanceSquared(this.atomCoordAngstroms[i]); +value += this.valueFor(x, d2, this.distanceMode); +} +return value; +}, "JU.P3"); +Clazz.overrideMethod(c$, "process", +function(){ +for (var atomIndex = this.qmAtoms.length; --atomIndex >= 0; ) { +if ((this.thisAtom = this.qmAtoms[atomIndex]) == null) continue; +var x0 = this.potentials[atomIndex]; +if (JU.Logger.debugging) JU.Logger.debug("process map for atom " + atomIndex + this.thisAtom + " charge=" + x0); +this.thisAtom.setXYZ(this, true); +for (var ix = this.xMax; --ix >= this.xMin; ) { +var dX = this.X2[ix]; +for (var iy = this.yMax; --iy >= this.yMin; ) { +var dXY = dX + this.Y2[iy]; +for (var iz = this.zMax; --iz >= this.zMin; ) { +this.voxelData[ix][iy][iz] += this.valueFor(x0, dXY + this.Z2[iz], this.distanceMode); +} +} +} +} +}); +Clazz.defineMethod(c$, "valueFor", +function(x0, d2, distanceMode){ +switch (distanceMode) { +case 0: +return (d2 == 0 ? x0 * Infinity : x0 / Math.sqrt(d2)); +case 2: +return x0 / (1 + Math.sqrt(d2)); +case 1: +return x0 * Math.exp(-Math.sqrt(d2) / 2); +case 3: +return x0 * Math.exp(-Math.sqrt(d2)); +} +return x0; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "getTabulatedPotential", +function(atom){ +var name = atom.getAtomType(); +var g1 = atom.getGroup1('\0'); +var type = atom.getBioStructureTypeName(); +if (g1.length == 0) { +g1 = atom.getGroup3(true); +if (g1 == null) g1 = ""; +}var key = g1 + name; +var o = this.htAtomicPotentials.get(key); +if (o == null && type.length > 0) o = this.htAtomicPotentials.get("_" + type.charAt(0) + name); +return (Clazz.instanceOf(o, Float) ? (o).floatValue() : NaN); +}, "JM.Atom"); +Clazz.defineMethod(c$, "getAtomicPotentials", +function(data, resourceName){ +var br = null; +this.htAtomicPotentials = new java.util.Hashtable(); +try { +br = (data == null ? JV.FileManager.getBufferedReaderForResource(this.vwr, this, "J/quantum/", resourceName) : JU.Rdr.getBR(data)); +var line; +while ((line = br.readLine()) != null) { +if (line.startsWith("#")) continue; +var vs = JU.PT.getTokens(line); +if (vs.length < 2) continue; +if (JU.Logger.debugging) JU.Logger.debug(line); +this.htAtomicPotentials.put(vs[0], Float.$valueOf(JU.PT.parseFloat(vs[1]))); +} +br.close(); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Exception " + e.toString() + " in getResource " + resourceName); +try { +br.close(); +} catch (ee) { +if (Clazz.exceptionOf(ee, Exception)){ +} else { +throw ee; +} +} +} else { +throw e; +} +} +}, "~S,~S"); +Clazz.overrideMethod(c$, "createCube", +function(){ +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/MlpCalculation.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/MlpCalculation.js new file mode 100755 index 000000000000..10c0185bb4af --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/MlpCalculation.js @@ -0,0 +1,37 @@ +Clazz.declarePackage("J.quantum"); +Clazz.load(["J.quantum.MepCalculation"], "J.quantum.MlpCalculation", ["JU.Logger"], function(){ +var c$ = Clazz.declareType(J.quantum, "MlpCalculation", J.quantum.MepCalculation); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor(this, J.quantum.MlpCalculation); +this.distanceMode = 3; +}); +Clazz.overrideMethod(c$, "assignPotentials", +function(atoms, potentials, bsAromatic, bsCarbonyl, bsIgnore, data){ +this.getAtomicPotentials(data, "atomicLipophilicity.txt"); +for (var i = 0; i < atoms.length; i++) { +var f = Math.abs(atoms[i].getFormalCharge()); +if (f == 0) { +if (bsIgnore != null && bsIgnore.get(i)) { +f = NaN; +} else { +f = this.getTabulatedPotential(atoms[i]); +if (Float.isNaN(f)) switch (atoms[i].getElementNumber()) { +case 6: +f = (bsAromatic.get(i) ? 0.31 : bsCarbonyl.get(i) ? -0.54 : 0.45); +break; +case 7: +f = (bsAromatic.get(i) ? -0.6 : bsCarbonyl.get(i) ? -0.44 : -1.0); +break; +case 8: +f = (bsCarbonyl.get(i) ? -0.9 : -0.17); +break; +default: +f = NaN; +} +}}if (JU.Logger.debugging) JU.Logger.debug(atoms[i].getInfo() + " " + f); +potentials[i] = f; +} +}, "~A,~A,JU.BS,JU.BS,JU.BS,~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/NMRCalculation.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/NMRCalculation.js new file mode 100755 index 000000000000..ca57177cb56b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/NMRCalculation.js @@ -0,0 +1,585 @@ +Clazz.declarePackage("J.quantum"); +Clazz.load(["J.api.JmolNMRInterface", "java.util.Hashtable"], "J.quantum.NMRCalculation", ["JU.BS", "$.Lst", "$.Measure", "$.PT", "$.V3", "J.quantum.NMRNoeMatrix", "JU.Escape", "$.Logger", "$.Tensor", "JV.FileManager"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.isotopeData = null; +this.shiftRefsPPM = null; +Clazz.instantialize(this, arguments);}, J.quantum, "NMRCalculation", null, J.api.JmolNMRInterface); +Clazz.prepareFields (c$, function(){ +this.shiftRefsPPM = new java.util.Hashtable(); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.overrideMethod(c$, "setViewer", +function(vwr){ +this.vwr = vwr; +this.getData(); +return this; +}, "JV.Viewer"); +Clazz.overrideMethod(c$, "getQuadrupolarConstant", +function(efg){ +if (efg == null) return 0; +var a = this.vwr.ms.at[efg.atomIndex1]; +return (this.getIsotopeData(a, 2) * efg.eigenValues[2] * 2.349647144641375E8); +}, "JU.Tensor"); +Clazz.defineMethod(c$, "getInteractionTensorList", +function(type, bsA){ +if (type != null) type = type.toLowerCase(); +var bsModels = this.vwr.ms.getModelBS(bsA, false); +var bs1 = this.getAtomSiteBS(bsA); +var iAtom = (bs1.cardinality() == 1 ? bs1.nextSetBit(0) : -1); +var list = new JU.Lst(); +for (var i = bsModels.nextSetBit(0); i >= 0; i = bsModels.nextSetBit(i + 1)) { +var tensors = this.vwr.ms.getInfo(i, "interactionTensors"); +if (tensors == null) continue; +var n = tensors.size(); +for (var j = 0; j < n; j++) { +var t = tensors.get(j); +if (type == null || t.type.equals(type) && t.isSelected(bs1, iAtom)) list.addLast(t); +} +} +return list; +}, "~S,JU.BS"); +Clazz.defineMethod(c$, "getAtomSiteBS", +function(bsA){ +if (bsA == null) return null; +var bs = new JU.BS(); +var atoms = this.vwr.ms.at; +var models = this.vwr.ms.am; +for (var i = bsA.nextSetBit(0); i >= 0; i = bsA.nextSetBit(i + 1)) { +if (!bsA.get(i)) continue; +var a = atoms[i]; +bs.set(models[a.mi].firstAtomIndex - 1 + a.getAtomSite()); +} +return bs; +}, "JU.BS"); +Clazz.overrideMethod(c$, "getUniqueTensorSet", +function(bsAtoms){ +var bs = new JU.BS(); +var atoms = this.vwr.ms.at; +for (var mi = this.vwr.ms.mc; --mi >= 0; ) { +var bsModelAtoms = this.vwr.restrictToModel(bsAtoms, mi); +if (this.vwr.ms.getUnitCell(mi) == null) continue; +for (var i = bsModelAtoms.nextSetBit(0); i >= 0; i = bsModelAtoms.nextSetBit(i + 1)) if (atoms[i].getAtomSite() != atoms[i].i + 1) bsModelAtoms.clear(i); + +bs.or(bsModelAtoms); +for (var i = bsModelAtoms.nextSetBit(0); i >= 0; i = bsModelAtoms.nextSetBit(i + 1)) { +var ta = atoms[i].getTensors(); +if (ta == null) continue; +for (var jj = ta.length; --jj >= 0; ) { +var t = ta[jj]; +if (t == null) continue; +for (var k = bsModelAtoms.nextSetBit(i + 1); k >= 0; k = bsModelAtoms.nextSetBit(k + 1)) { +var tb = atoms[k].getTensors(); +if (tb == null) continue; +for (var kk = tb.length; --kk >= 0; ) { +if (t.isEquiv(tb[kk])) { +bsModelAtoms.clear(k); +bs.clear(k); +break; +}} +} +} +} +} +return bs; +}, "JU.BS"); +Clazz.defineMethod(c$, "getJCouplingHz", +function(a1, a2, type, isc){ +return this.getIsoOrAnisoHz(true, a1, a2, type, isc); +}, "JM.Atom,JM.Atom,~S,JU.Tensor"); +Clazz.overrideMethod(c$, "getIsoOrAnisoHz", +function(isIso, a1, a2, units, isc){ +if (isc == null) { +var type = this.getISCtype(a1, units); +if (type == null || a1.mi != a2.mi) { +if (!units.equals("hz")) return 0; +var data = J.quantum.NMRCalculation.calc2or3JorNOE(this.vwr, Clazz.newArray(-1, [a1, null, null, a2]), null, 3); +return (data == null ? NaN : data[1]); +}var bs = new JU.BS(); +bs.set(a1.i); +bs.set(a2.i); +var list = this.getInteractionTensorList(type, bs); +if (list.size() == 0) return NaN; +isc = list.get(0); +} else { +a1 = this.vwr.ms.at[isc.atomIndex1]; +a2 = this.vwr.ms.at[isc.atomIndex2]; +}return (this.getIsotopeData(a1, 1) * this.getIsotopeData(a2, 1) * (isIso ? isc.isotropy() : isc.anisotropy()) * 0.0167840302932219); +}, "~B,JM.Atom,JM.Atom,~S,JU.Tensor"); +Clazz.defineMethod(c$, "getISCtype", +function(a1, type){ +var tensors = this.vwr.ms.getInfo(a1.mi, "interactionTensors"); +if (tensors == null) return null; +type = (type == null ? "" : type.toLowerCase()); +var pt = -1; +if ((pt = type.indexOf("_hz")) >= 0 || (pt = type.indexOf("_khz")) >= 0 || (pt = type.indexOf("hz")) >= 0 || (pt = type.indexOf("khz")) >= 0) type = type.substring(0, pt); +if (type.length == 0) type = "isc"; +return type; +}, "JM.Atom,~S"); +Clazz.overrideMethod(c$, "getDipolarConstantHz", +function(a1, a2){ +if (JU.Logger.debugging) JU.Logger.debug(a1 + " g=" + this.getIsotopeData(a1, 1) + "; " + a2 + " g=" + this.getIsotopeData(a2, 1)); +var v = (-this.getIsotopeData(a1, 1) * this.getIsotopeData(a2, 1) / Math.pow(a1.distance(a2), 3) * 1054.5717253362893); +return (v == 0 || a1 === a2 ? NaN : v); +}, "JM.Atom,JM.Atom"); +Clazz.overrideMethod(c$, "getDipolarCouplingHz", +function(a1, a2, vField){ +var v12 = JU.V3.newVsub(a2, a1); +var r = v12.length(); +var costheta = v12.dot(vField) / r / vField.length(); +return (this.getDipolarConstantHz(a1, a2) * (3 * costheta - 1) / 2); +}, "JM.Atom,JM.Atom,JU.V3"); +Clazz.defineMethod(c$, "getIsotopeData", +function(a, iType){ +var iso = a.getIsotopeNumber(); +var sym = a.getElementSymbolIso(false); +var d = this.isotopeData.get(iso == 0 ? sym : "" + iso + sym); +return (d == null ? 0 : d[iType]); +}, "JM.Atom,~N"); +Clazz.defineMethod(c$, "getData", +function(){ +var br = null; +try { +var debugging = JU.Logger.debugging; +br = JV.FileManager.getBufferedReaderForResource(this.vwr, this, "J/quantum/", "nmr_data.txt"); +this.isotopeData = new java.util.Hashtable(); +var line; +while ((line = br.readLine()) != null) { +if (debugging) JU.Logger.info(line); +if (line.indexOf("#") >= 0) continue; +var tokens = JU.PT.getTokens(line); +var name = tokens[0]; +var defaultIso = tokens[2] + name; +if (debugging) JU.Logger.info(name + " default isotope " + defaultIso); +for (var i = 3; i < tokens.length; i += 3) { +var n = Integer.parseInt(tokens[i]); +var isoname = n + name; +var dataGQ = Clazz.newDoubleArray(-1, [n, Double.parseDouble(tokens[i + 1]), Double.parseDouble(tokens[i + 2])]); +if (debugging) JU.Logger.info(isoname + " " + JU.Escape.eAD(dataGQ)); +this.isotopeData.put(isoname, dataGQ); +} +var defdata = this.isotopeData.get(defaultIso); +if (defdata == null) { +JU.Logger.error("Cannot find default NMR data in nmr_data.txt for " + defaultIso); +throw new NullPointerException(); +}defdata[0] = -defdata[0]; +this.isotopeData.put(name, defdata); +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Exception " + e.toString() + " reading " + "nmr_data.txt"); +} else { +throw e; +} +} finally { +try { +br.close(); +} catch (ee) { +if (Clazz.exceptionOf(ee, Exception)){ +} else { +throw ee; +} +} +} +}); +Clazz.overrideMethod(c$, "getInfo", +function(what){ +if (what.equals("all")) { +var map = new java.util.Hashtable(); +map.put("isotopes", this.isotopeData); +map.put("shiftRefsPPM", this.shiftRefsPPM); +return map; +}if (JU.PT.isDigit(what.charAt(0))) return this.isotopeData.get(what); +var info = new JU.Lst(); +for (var e, $e = this.isotopeData.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var key = e.getKey(); +if (JU.PT.isDigit(key.charAt(0)) && key.endsWith(what)) info.addLast(e.getValue()); +} +return info; +}, "~S"); +Clazz.overrideMethod(c$, "getChemicalShift", +function(atom){ +var v = this.getMagneticShielding(atom); +if (Float.isNaN(v)) return v; +var ref = this.shiftRefsPPM.get(atom.getElementSymbol()); +return (ref == null ? 0 : ref.floatValue()) - v; +}, "JM.Atom"); +Clazz.overrideMethod(c$, "getMagneticShielding", +function(atom){ +var t = this.vwr.ms.getAtomTensor(atom.i, "ms"); +return (t == null ? NaN : t.isotropy()); +}, "JM.Atom"); +Clazz.overrideMethod(c$, "getState", +function(sb){ +if (this.shiftRefsPPM.isEmpty()) return false; +for (var nuc, $nuc = this.shiftRefsPPM.entrySet().iterator (); $nuc.hasNext()&& ((nuc = $nuc.next ()) || true);) sb.append(" set shift_").append(nuc.getKey()).append(" ").appendO(nuc.getValue()).append("\n"); + +return true; +}, "JU.SB"); +Clazz.overrideMethod(c$, "setChemicalShiftReference", +function(element, value){ +if (element == null) { +this.shiftRefsPPM.clear(); +return false; +}element = element.substring(0, 1).toUpperCase() + element.substring(1); +this.shiftRefsPPM.put(element, Float.$valueOf(value)); +return true; +}, "~S,~N"); +Clazz.overrideMethod(c$, "getTensorInfo", +function(tensorType, infoType, bs){ +if ("".equals(tensorType)) tensorType = null; +infoType = (infoType == null ? ";all." : ";" + infoType + "."); +var data = new JU.Lst(); +var list1; +if (";dc.".equals(infoType)) { +var atoms = this.vwr.ms.at; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) for (var j = bs.nextSetBit(i + 1); j >= 0; j = bs.nextSetBit(j + 1)) { +list1 = new JU.Lst(); +list1.addLast(Integer.$valueOf(atoms[i].i)); +list1.addLast(Integer.$valueOf(atoms[j].i)); +list1.addLast(Float.$valueOf(this.getDipolarConstantHz(atoms[i], atoms[j]))); +data.addLast(list1); +} + +return data; +}if (tensorType == null || tensorType.startsWith("isc")) { +var isJ = infoType.equals(";j."); +var isEta = infoType.equals(";eta."); +var list = this.getInteractionTensorList(tensorType, bs); +var n = (list == null ? 0 : list.size()); +for (var i = 0; i < n; i++) { +var t = list.get(i); +list1 = new JU.Lst(); +list1.addLast(Integer.$valueOf(t.atomIndex1)); +list1.addLast(Integer.$valueOf(t.atomIndex2)); +list1.addLast(isEta || isJ ? Float.$valueOf(this.getIsoOrAnisoHz(isJ, null, null, null, t)) : t.getInfo(infoType)); +data.addLast(list1); +} +if (tensorType != null) return data; +}var isChi = tensorType != null && tensorType.startsWith("efg") && infoType.equals(";chi."); +var isFloat = (isChi || JU.Tensor.isFloatInfo(infoType)); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +if (tensorType == null) { +var a = this.vwr.ms.getAtomTensorList(i); +if (a != null) for (var j = 0; j < a.length; j++) data.addLast((a[j]).getInfo(infoType)); + +} else { +var t = this.vwr.ms.getAtomTensor(i, tensorType); +data.addLast(t == null ? (isFloat ? Float.$valueOf(0) : "") : isChi ? Float.$valueOf(this.getQuadrupolarConstant(t)) : t.getInfo(infoType)); +}} +return data; +}, "~S,~S,JU.BS"); +Clazz.overrideMethod(c$, "getMinDistances", +function(md){ +var bsPoints1 = md.points.get(0); +var n1 = bsPoints1.cardinality(); +if (n1 == 0 || !(Clazz.instanceOf(md.points.get(1),"JU.BS"))) return null; +var bsPoints2 = md.points.get(1); +var n2 = bsPoints2.cardinality(); +if (n1 < 2 && n2 < 2) return null; +var htMin = new java.util.Hashtable(); +var atoms = this.vwr.ms.at; +for (var i = bsPoints1.nextSetBit(0); i >= 0; i = bsPoints1.nextSetBit(i + 1)) { +var a1 = atoms[i]; +var name = a1.getAtomName(); +for (var j = bsPoints2.nextSetBit(0); j >= 0; j = bsPoints2.nextSetBit(j + 1)) { +var a2 = atoms[j]; +var d = Clazz.floatToInt(a2.distanceSquared(a1) * 100); +if (d == 0) continue; +var name1 = a2.getAtomName(); +var key = (name.compareTo(name1) < 0 ? name + name1 : name1 + name); +var min = htMin.get(key); +if (min == null) { +min = Integer.$valueOf(d); +htMin.put(key, min); +continue; +}if (d < min.intValue()) htMin.put(key, Integer.$valueOf(d)); +} +} +return htMin; +}, "JM.MeasurementData"); +c$.calcJKarplus = Clazz.defineMethod(c$, "calcJKarplus", +function(theta){ +var j0 = 8.5; +var j180 = 9.5; +var jconst = 0.28; +var cos = Math.cos(theta); +var jab = 0; +if (theta >= -90.0 && theta < 90.0) { +jab = j0 * cos * cos - jconst; +} else { +jab = j180 * cos * cos - jconst; +}return jab; +}, "~N"); +c$.getInitialJValue = Clazz.defineMethod(c$, "getInitialJValue", +function(nNonH, theta){ +var p = J.quantum.NMRCalculation.pAltona[nNonH]; +var cos = Math.cos(theta); +return p[1] * cos * cos + p[2] * cos + p[3]; +}, "~N,~N"); +c$.getIncrementalJValue = Clazz.defineMethod(c$, "getIncrementalJValue", +function(nNonH, element, sA_cA, v21, v23, theta, f){ +if (nNonH < 0 || nNonH > 5) return 0; +var de = J.quantum.NMRCalculation.deltaElectro.get(element); +if (de == null) return 0; +var e = de.doubleValue(); +var sign = J.quantum.NMRCalculation.getSubSign(sA_cA, v21, v23, f); +var p = J.quantum.NMRCalculation.pAltona[nNonH]; +var cos = Math.cos(sign * theta + p[6] * Math.abs(e)); +return e * (p[4] + p[5] * cos * cos); +}, "~N,~S,JU.V3,JU.V3,JU.V3,~N,~N"); +c$.getSubSign = Clazz.defineMethod(c$, "getSubSign", +function(sA_cA, v21, v23, f){ +var cross = new JU.V3(); +cross.cross(v23, v21); +return (cross.dot(sA_cA) > 0 ? f : -f); +}, "JU.V3,JU.V3,JU.V3,~N"); +c$.calc3JHHOnly = Clazz.defineMethod(c$, "calc3JHHOnly", +function(subElements, subVectors, v21, v34, v23, theta, is23Double){ +var nNonH = 0; +for (var i = 0, n = (is23Double ? 2 : 3); i < n; i++) { +if (!subElements[0][i].equals("H")) { +nNonH++; +}if (!subElements[1][i].equals("H")) { +nNonH++; +}} +var jvalue = J.quantum.NMRCalculation.getInitialJValue(nNonH, theta); +for (var i = 0, n = (is23Double ? 2 : 3); i < n; i++) { +var element = subElements[0][i]; +if (!element.equals("H")) { +jvalue += J.quantum.NMRCalculation.getIncrementalJValue(nNonH, element, subVectors[0][i], v21, v23, theta, 1); +}element = subElements[1][i]; +if (!element.equals("H")) { +jvalue += J.quantum.NMRCalculation.getIncrementalJValue(nNonH, element, subVectors[1][i], v34, v23, theta, -1); +}} +if (is23Double) { +if (Math.abs(theta) < 1.5707963267948966) jvalue *= 0.75; + else jvalue *= 1.33; +}return jvalue; +}, "~A,~A,JU.V3,JU.V3,JU.V3,~N,~B"); +c$.calc3JCH = Clazz.defineMethod(c$, "calc3JCH", +function(CHequation, theta, is23Double){ +if (CHequation == null) CHequation = "was"; +if (!JU.PT.isOneOf(CHequation, ";was;tva;ayd;")) throw new IllegalArgumentException("Equation must be one of was, tva, or ayd"); +if (CHequation.equals("was")) { +var A = 3.56; +var C = 4.26; +var j = 3.56 * Math.cos(2 * theta) - Math.cos(theta) + 4.26; +return j; +} else if (CHequation.equals("tva")) { +var j = 4.5 - 0.87 * Math.cos(theta) + Math.cos(2.0 * theta); +return j; +} else if (CHequation.equals("ayd")) { +var j = 5.8 * Math.pow(Math.cos(theta), 2) - 1.6 * Math.cos(theta) + 0.28 * Math.sin(2.0 * theta) - 0.02 * Math.sin(theta) + 0.52; +return j; +} else { +return 0.0; +}}, "~S,~N,~B"); +c$.calcNOE = Clazz.defineMethod(c$, "calcNOE", +function(viewer, atom1, atom2){ +return J.quantum.NMRCalculation.calc2or3JorNOE(viewer, Clazz.newArray(-1, [atom1, null, null, atom2]), null, 7); +}, "JV.Viewer,JM.Atom,JM.Atom"); +c$.calc2or3JorNOE = Clazz.defineMethod(c$, "calc2or3JorNOE", +function(viewer, atoms, CHEquation, mode){ +if (CHEquation == null || CHEquation.equals("none")) mode &= -5; +var elements = new Array(4); +mode = J.quantum.NMRCalculation.getCalcType(atoms, elements, mode); +switch (mode) { +default: +case 0: +return null; +case 8: +return J.quantum.NMRCalculation.calcNOEImpl(viewer, atoms[0], atoms[3]); +case 1: +return J.quantum.NMRCalculation.calc2JHH(atoms[0], atoms[1], atoms[3]); +case 4: +case 2: +break; +} +var subElements = Clazz.newArray(2, 3, null); +var subVectors = Clazz.newArray(2, 3, null); +var v23 = JU.V3.newVsub(atoms[2], atoms[1]); +var v21 = JU.V3.newVsub(atoms[0], atoms[1]); +var v34 = JU.V3.newVsub(atoms[3], atoms[2]); +var subs = new JU.Lst(); +var bonds = atoms[1].bonds; +var is23Double = false; +for (var pt = 0, i = Math.min(bonds.length, 4); --i >= 0; ) { +var sub = bonds[i].getOtherAtom(atoms[1]); +if (sub === atoms[2]) { +is23Double = (bonds[i].order == 2); +continue; +}subElements[0][pt] = sub.getElementSymbol(); +subVectors[0][pt] = JU.V3.newVsub(sub, atoms[1]); +pt++; +} +subs.clear(); +bonds = atoms[2].bonds; +for (var pt = 0, i = Math.min(bonds.length, 4); --i >= 0; ) { +var sub = bonds[i].getOtherAtom(atoms[2]); +if (sub === atoms[1]) continue; +subElements[1][pt] = sub.getElementSymbol(); +subVectors[1][pt] = JU.V3.newVsub(sub, atoms[2]); +pt++; +} +var theta = JU.Measure.computeTorsion(atoms[0], atoms[1], atoms[2], atoms[3], false); +var jvalue = NaN; +if (is23Double || subElements[0][2] != null && subElements[1][2] != null) { +switch (mode) { +case 2: +jvalue = J.quantum.NMRCalculation.calc3JHHOnly(subElements, subVectors, v21, v34, v23, theta, is23Double); +break; +case 4: +if (is23Double) return null; +jvalue = J.quantum.NMRCalculation.calc3JCH(CHEquation, theta, is23Double); +break; +} +} else { +jvalue = J.quantum.NMRCalculation.calcJKarplus(theta); +}return Clazz.newDoubleArray(-1, [theta, jvalue, atoms[1].i, atoms[2].i]); +}, "JV.Viewer,~A,~S,~N"); +c$.getCalcType = Clazz.defineMethod(c$, "getCalcType", +function(atoms, elementsToFill, mode){ +var atom1 = atoms[0]; +var atom4 = atoms[3]; +var bonds1 = atom1.bonds; +var bonds4 = atom4.bonds; +if (bonds1 == null || bonds4 == null || atom1.isCovalentlyBonded(atom4)) return 0; +var allowNOE = ((mode & 8) == 8); +var allow3JHH = ((mode & 2) == 2); +var allow2JHH = ((mode & 1) == 1); +var allow3JCH = ((mode & 4) == 4); +var isGeminal = false; +var atom2 = atoms[1]; +var atom3 = atoms[2]; +if (atom2 == null) { +for (var i = 0; i < bonds1.length; i++) { +atom2 = bonds1[i].getOtherAtom(atom1); +if (atom2.isCovalentlyBonded(atom4)) { +isGeminal = true; +break; +}for (var j = 0; j < bonds4.length; j++) { +atom3 = bonds4[j].getOtherAtom(atom4); +if (atom2.isCovalentlyBonded(atom3)) break; +atom3 = null; +} +} +atoms[1] = atom2; +atoms[2] = atom3; +} else if (atom2.isCovalentlyBonded(atom4)) { +isGeminal = true; +}var e1 = atom4.getElementSymbol(); +var e2 = (atom2 == null ? null : atom2.getElementSymbol()); +var e3 = (atom3 == null ? null : atom3.getElementSymbol()); +var e4 = atom1.getElementSymbol(); +var isHH = e1.equals("H") && e4.equals("H"); +if (isGeminal) { +mode = (allow2JHH && isHH && e2.equals("C") ? 1 : 0); +} else if (atom3 == null) { +mode = (allowNOE && isHH ? 8 : 0); +} else if (allow3JHH && isHH) { +mode = 2; +} else if (allow3JCH && e2.equals("C") && e3.equals("C") && (e1.equals("H") && e4.equals("C") || e1.equals("C") && e4.equals("H"))) { +mode = 4; +} else { +mode = 0; +}if (mode != 0 && elementsToFill != null) { +elementsToFill[0] = e1; +elementsToFill[1] = e2; +elementsToFill[2] = e3; +elementsToFill[3] = e4; +}return mode; +}, "~A,~A,~N"); +c$.calc2JHH = Clazz.defineMethod(c$, "calc2JHH", +function(h1, c, h2){ +var val = NaN; +switch (c.getCovalentBondCount()) { +case 3: +val = 1.5; +break; +case 4: +val = 12.0; +break; +default: +return null; +} +var angle = JU.Measure.computeAngle(h1, c, h2, new JU.V3(), new JU.V3(), false); +return Clazz.newDoubleArray(-1, [angle, val, c.i]); +}, "JM.Atom,JM.Atom,JM.Atom"); +c$.calcNOEImpl = Clazz.defineMethod(c$, "calcNOEImpl", +function(viewer, atom1, atom2){ +try { +var noeMatrix = viewer.ms.getInfo(atom1.mi, "noeMatrix"); +var dist = 0; +var noe = NaN; +if (noeMatrix == null) { +noeMatrix = J.quantum.NMRNoeMatrix.createMatrix(viewer, viewer.getModelUndeletedAtomsBitSet(atom1.mi), viewer.ms.getInfo(atom1.mi, "noeLabels"), viewer.ms.getInfo(atom1.mi, "noeParams")); +}dist = noeMatrix.getJmolDistance(atom1.i, atom2.i); +noe = noeMatrix.getJmolNoe(atom1.i, atom2.i); +return (Double.isNaN(noe) ? null : Clazz.newDoubleArray(-1, [dist, noe])); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +return null; +} else { +throw e; +} +} +}, "JV.Viewer,JM.Atom,JM.Atom"); +Clazz.overrideMethod(c$, "getNOEorJHH", +function(atoms, mode){ +return J.quantum.NMRCalculation.calc2or3JorNOE(this.vwr, atoms, null, mode); +}, "~A,~N"); +c$.deltaElectro = new java.util.Hashtable(); +{ +var enegH = 2.20; +J.quantum.NMRCalculation.deltaElectro.put("C", new Double(2.60 - enegH)); +J.quantum.NMRCalculation.deltaElectro.put("O", new Double(3.50 - enegH)); +J.quantum.NMRCalculation.deltaElectro.put("N", new Double(3.05 - enegH)); +J.quantum.NMRCalculation.deltaElectro.put("F", new Double(3.90 - enegH)); +J.quantum.NMRCalculation.deltaElectro.put("Cl", new Double(3.15 - enegH)); +J.quantum.NMRCalculation.deltaElectro.put("Br", new Double(2.95 - enegH)); +J.quantum.NMRCalculation.deltaElectro.put("I", new Double(2.65 - enegH)); +J.quantum.NMRCalculation.deltaElectro.put("S", new Double(2.58 - enegH)); +J.quantum.NMRCalculation.deltaElectro.put("Si", new Double(1.90 - enegH)); +}c$.pAltona = Clazz.newDoubleArray (5, 8, 0); +{ +for (var nNonH = 0; nNonH < 5; nNonH++) { +var p = J.quantum.NMRCalculation.pAltona[nNonH]; +switch (nNonH) { +case 0: +case 1: +case 2: +p[1] = 13.7; +p[2] = -0.73; +p[3] = 0; +p[4] = 0.56; +p[5] = -2.47; +p[6] = 16.9; +p[7] = 0.14; +break; +case 3: +p[1] = 13.22; +p[2] = -0.99; +p[3] = 0; +p[4] = 0.87; +p[5] = -2.46; +p[6] = 19.9; +p[7] = 0; +break; +case 4: +p[1] = 13.24; +p[2] = -0.91; +p[3] = 0; +p[4] = 0.53; +p[5] = -2.41; +p[6] = 15.5; +p[7] = 0.19; +break; +} +p[6] = p[6] * 3.141592653589793 / 180.0; +} +}}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/NMRNoeMatrix.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/NMRNoeMatrix.js new file mode 100755 index 000000000000..9f96343f1b0d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/NMRNoeMatrix.js @@ -0,0 +1,650 @@ +Clazz.declarePackage("J.quantum"); +Clazz.load(["java.text.NumberFormat"], "J.quantum.NMRNoeMatrix", ["java.io.BufferedReader", "$.File", "$.FileReader", "java.util.Hashtable", "JU.BS", "$.Lst", "$.SB"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.eigenValues = null; +this.eigenVectors = null; +this.relaxMatrix = null; +this.noeM = null; +this.distanceMatrix = null; +this.atoms = null; +this.nHAtoms = 0; +this.atomCounter = 0; +this.i = 0; +this.j = 0; +this.k = 0; +this.m = 0; +this.n = 0; +this.p = 0; +this.q = 0; +this.atomMap = null; +this.baseIndex = 0; +this.params = null; +Clazz.instantialize(this, arguments);}, J.quantum, "NMRNoeMatrix", null); +Clazz.makeConstructor(c$, +function(params){ +this.params = params; +params.id = ++J.quantum.NMRNoeMatrix.staticid; +}, "J.quantum.NMRNoeMatrix.NOEParams"); +c$.createMatrix = Clazz.defineMethod(c$, "createMatrix", +function(viewer, bsMol, labelArray, params){ +var bsH = null; +try { +bsH = (bsMol.isEmpty() ? new JU.BS() : viewer.getSmartsMatch("[H]", bsMol)); +} catch (e1) { +if (Clazz.exceptionOf(e1, Exception)){ +} else { +throw e1; +} +} +var labels = new java.util.Hashtable(); +var indexAtomInMol = new java.util.Hashtable(); +var labelMap = J.quantum.NMRNoeMatrix.createLabelMapAndIndex(viewer, bsMol, labelArray, bsH, labels, indexAtomInMol); +var hAtoms = J.quantum.NMRNoeMatrix.createHAtomList(viewer, bsMol, bsH, labels, labelMap); +var noeMatrix = J.quantum.NMRNoeMatrix.createNOEMatrix(hAtoms, indexAtomInMol, bsMol.cardinality(), bsMol.nextSetBit(0), (params == null ? new J.quantum.NMRNoeMatrix.NOEParams() : params)); +if (!bsMol.isEmpty()) { +viewer.getCurrentModelAuxInfo().put("noeMatrix", noeMatrix); +}return noeMatrix; +}, "JV.Viewer,JU.BS,~A,J.quantum.NMRNoeMatrix.NOEParams"); +Clazz.defineMethod(c$, "getParams", +function(){ +return this.params; +}); +c$.createNOEMatrix = Clazz.defineMethod(c$, "createNOEMatrix", +function(hAtoms, indexAtomInMol, atomCount, baseIndex, params){ +var map = Clazz.newIntArray (atomCount, 0); +var nHAtoms = hAtoms.size(); +var noeMatrix = new J.quantum.NMRNoeMatrix(params); +noeMatrix.baseIndex = baseIndex; +noeMatrix.initArrays(nHAtoms); +for (var i = 0; i < nHAtoms; i++) { +var aobj = hAtoms.get(i); +if (Clazz.instanceOf(aobj,"JM.Atom")) { +var a = hAtoms.get(i); +map[(indexAtomInMol.get(a)).intValue()] = i; +noeMatrix.addAtom(a.x, a.y, a.z); +} else if (Clazz.instanceOf(aobj,"JU.Lst")) { +var lst = aobj; +var nEquiv = lst.size(); +for (var j = 0; j < nEquiv; j++) { +map[(indexAtomInMol.get(lst.get(j))).intValue()] = i; +} +var xa = Clazz.newDoubleArray (nEquiv, 0); +var ya = Clazz.newDoubleArray (nEquiv, 0); +var za = Clazz.newDoubleArray (nEquiv, 0); +for (var j = 0; j < nEquiv; j++) { +var a = lst.get(j); +xa[j] = a.x; +ya[j] = a.y; +za[j] = a.z; +} +noeMatrix.addEquiv(xa, ya, za); +} else { +var a = aobj; +map[(indexAtomInMol.get(a[0])).intValue()] = i; +map[(indexAtomInMol.get(a[1])).intValue()] = i; +map[(indexAtomInMol.get(a[2])).intValue()] = i; +noeMatrix.addMethyl(a[0].x, a[0].y, a[0].z, a[1].x, a[1].y, a[1].z, a[2].x, a[2].y, a[2].z); +}} +noeMatrix.atomMap = map; +return noeMatrix; +}, "JU.Lst,java.util.Map,~N,~N,J.quantum.NMRNoeMatrix.NOEParams"); +Clazz.defineMethod(c$, "calcNOEs", +function(){ +if (this.nHAtoms == 0 || this.atoms == null) { +this.noeM = Clazz.newDoubleArray (0, 0, 0); +return; +}if (this.nHAtoms != this.atomCounter) { +throw new Exception("Not all atoms have been read in yet!"); +}if (this.params.tainted) { +this.calcRelaxMatrix(); +this.Diagonalise(); +}if (this.params.tainted || this.params.mixingChanged) { +this.calcNoeMatrix(); +this.params.mixingChanged = false; +}this.params.tainted = false; +}); +Clazz.defineMethod(c$, "initArrays", +function(n){ +this.nHAtoms = n; +this.atoms = new Array(this.nHAtoms); +this.atomCounter = 0; +this.relaxMatrix = Clazz.newDoubleArray (this.nHAtoms, this.nHAtoms, 0); +this.eigenValues = Clazz.newDoubleArray (this.nHAtoms, this.nHAtoms, 0); +this.eigenVectors = Clazz.newDoubleArray (this.nHAtoms, this.nHAtoms, 0); +this.noeM = Clazz.newDoubleArray (this.nHAtoms, this.nHAtoms, 0); +this.distanceMatrix = Clazz.newDoubleArray (this.nHAtoms, this.nHAtoms, 0); +}, "~N"); +Clazz.defineMethod(c$, "addAtom", +function(x, y, z){ +this.atoms[this.atomCounter] = new J.quantum.NMRNoeMatrix.NOEAtom(); +this.atoms[this.atomCounter].x = x; +this.atoms[this.atomCounter].y = y; +this.atoms[this.atomCounter].z = z; +this.atoms[this.atomCounter].methyl = false; +this.atomCounter++; +this.params.tainted = true; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "addMethyl", +function(x, y, z, x1, y1, z1, x2, y2, z2){ +this.atoms[this.atomCounter] = new J.quantum.NMRNoeMatrix.NOEAtom(); +this.atoms[this.atomCounter].x = x; +this.atoms[this.atomCounter].y = y; +this.atoms[this.atomCounter].z = z; +this.atoms[this.atomCounter].x1 = x1; +this.atoms[this.atomCounter].y1 = y1; +this.atoms[this.atomCounter].z1 = z1; +this.atoms[this.atomCounter].x2 = x2; +this.atoms[this.atomCounter].y2 = y2; +this.atoms[this.atomCounter].z2 = z2; +this.atoms[this.atomCounter].methyl = true; +this.atomCounter++; +this.params.tainted = true; +}, "~N,~N,~N,~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "addEquiv", +function(xa, ya, za){ +this.atoms[this.atomCounter] = new J.quantum.NMRNoeMatrix.NOEAtom(); +this.atoms[this.atomCounter].xa = xa; +this.atoms[this.atomCounter].ya = ya; +this.atoms[this.atomCounter].za = za; +this.atoms[this.atomCounter].equiv = true; +this.atomCounter++; +this.params.tainted = true; +}, "~A,~A,~A"); +Clazz.defineMethod(c$, "calcRelaxMatrix", +function(){ +var alpha = 5.6965E10; +var rho; +var JValSigma; +var JValRho; +var rhoStar = this.params.rhoStar; +var freq = this.params.freq; +var cutoff2 = this.params.cutoff * this.params.cutoff; +var tau = this.params.tau; +if (this.params.noesy) { +JValSigma = 6.0 * J.quantum.NMRNoeMatrix.J(2 * freq, tau) - J.quantum.NMRNoeMatrix.J(0, tau); +JValRho = 6.0 * J.quantum.NMRNoeMatrix.J(2 * freq, tau) + 3.0 * J.quantum.NMRNoeMatrix.J(freq, tau) + J.quantum.NMRNoeMatrix.J(0, tau); +} else { +JValSigma = 3.0 * J.quantum.NMRNoeMatrix.J(freq, tau) + 2.0 * J.quantum.NMRNoeMatrix.J(0, tau); +JValRho = 3.0 * J.quantum.NMRNoeMatrix.J(2 * freq, tau) + 4.5 * J.quantum.NMRNoeMatrix.J(freq, tau) + 2.5 * J.quantum.NMRNoeMatrix.J(0, tau); +}for (this.i = 0; this.i < this.nHAtoms; this.i++) { +rho = 0.0; +for (this.j = 0; this.j < this.nHAtoms; this.j++) { +var distSqrd = this.distanceSqrd(this.atoms[this.i], this.atoms[this.j]); +this.distanceMatrix[this.i][this.j] = Math.sqrt(distSqrd); +var aOverR6; +if (distSqrd < cutoff2) { +aOverR6 = alpha / (distSqrd * distSqrd * distSqrd); +} else { +aOverR6 = 0; +}if (this.i < this.j) { +this.relaxMatrix[this.i][this.j] = aOverR6 * JValSigma; +this.relaxMatrix[this.j][this.i] = this.relaxMatrix[this.i][this.j]; +}if (this.i != this.j) { +rho = rho + aOverR6 * JValRho; +}} +this.relaxMatrix[this.i][this.i] = rho + rhoStar; +} +}); +c$.J = Clazz.defineMethod(c$, "J", +function(w, tau){ +return tau / (1 + (w * w * tau * tau)); +}, "~N,~N"); +Clazz.defineMethod(c$, "sign", +function(x){ +if (x < 0) { +return -1; +}return 1; +}, "~N"); +Clazz.defineMethod(c$, "calcNoeMatrix", +function(){ +var tempEVs = Clazz.newDoubleArray (this.nHAtoms, 0); +var tMix = this.params.tMix; +for (this.i = 0; this.i < this.nHAtoms; this.i++) { +tempEVs[this.i] = Math.exp(-this.eigenValues[this.i][this.i] * tMix); +} +for (this.i = 0; this.i < this.nHAtoms; this.i++) { +for (this.j = 0; this.j <= this.i; this.j++) { +var sum = 0; +for (this.k = 0; this.k < this.nHAtoms; this.k++) { +sum += this.eigenVectors[this.i][this.k] * this.eigenVectors[this.j][this.k] * tempEVs[this.k]; +} +this.noeM[this.i][this.j] = sum; +this.noeM[this.j][this.i] = sum; +} +} +}); +Clazz.defineMethod(c$, "Diagonalise", +function(){ +var iter = 0; +for (var i = 0; i < this.nHAtoms; i++) { +for (var z = 0; z < this.nHAtoms; z++) { +this.eigenVectors[i][z] = 0.0; +this.eigenValues[i][z] = this.relaxMatrix[i][z]; +} +} +for (var i = 0; i < this.nHAtoms; i++) { +this.eigenVectors[i][i] = 1.0; +} +var state = "ITERATING"; +var maxIter = 100000; +while (state === "ITERATING") { +var max = this.maxOffDiag(); +if (max > 0.0) { +this.rotate(); +iter++; +if (iter >= maxIter) { +state = "STOP"; +System.out.println("maximum iteration reached"); +}} else { +state = "SUCCESS"; +}} +return iter; +}); +Clazz.defineMethod(c$, "maxOffDiag", +function(){ +var max = 0.0; +for (var i = 0; i < this.nHAtoms - 1; i++) { +for (var j = i + 1; j < this.nHAtoms; j++) { +var aij = Math.abs(this.eigenValues[i][j]); +if (aij > max) { +max = aij; +this.p = i; +this.q = j; +}} +} +return max; +}); +Clazz.defineMethod(c$, "rotate", +function(){ +var d = (this.eigenValues[this.p][this.p] - this.eigenValues[this.q][this.q]) / (2.0 * this.eigenValues[this.p][this.q]); +var t = this.sign(d) / (Math.abs(d) + Math.sqrt(d * d + 1)); +var c = 1.0 / Math.sqrt(t * t + 1); +var s = t * c; +this.eigenValues[this.p][this.p] += t * this.eigenValues[this.p][this.q]; +this.eigenValues[this.q][this.q] -= t * this.eigenValues[this.p][this.q]; +this.eigenValues[this.p][this.q] = this.eigenValues[this.q][this.p] = 0.0; +for (var k = 0; k < this.nHAtoms; k++) { +if (k != this.p && k != this.q) { +var akp = c * this.eigenValues[k][this.p] + s * this.eigenValues[k][this.q]; +var akq = -s * this.eigenValues[k][this.p] + c * this.eigenValues[k][this.q]; +this.eigenValues[k][this.p] = this.eigenValues[this.p][k] = akp; +this.eigenValues[k][this.q] = this.eigenValues[this.q][k] = akq; +}} +for (var k = 0; k < this.nHAtoms; k++) { +var rkp = c * this.eigenVectors[k][this.p] + s * this.eigenVectors[k][this.q]; +var rkq = -s * this.eigenVectors[k][this.p] + c * this.eigenVectors[k][this.q]; +this.eigenVectors[k][this.p] = rkp; +this.eigenVectors[k][this.q] = rkq; +} +}); +Clazz.overrideMethod(c$, "toString", +function(){ +var sb; +sb = new JU.SB(); +for (this.i = 0; this.i < this.nHAtoms; this.i++) { +for (this.j = 0; this.j < this.nHAtoms; this.j++) { +sb.append(J.quantum.NMRNoeMatrix.nf.format(this.noeM[this.i][this.j]) + "\t"); +} +sb.append("\n"); +} +sb.append(this.params.toString()); +return sb.toString(); +}); +Clazz.defineMethod(c$, "toStringNormRow", +function(){ +var nf = java.text.NumberFormat.getInstance(); +nf.setMinimumFractionDigits(4); +nf.setMaximumFractionDigits(4); +var sb = new JU.SB(); +for (this.i = 0; this.i < this.nHAtoms; this.i++) { +for (this.j = 0; this.j < this.nHAtoms; this.j++) { +var val = this.noeM[this.i][this.j] / this.noeM[this.i][this.i]; +sb.append(nf.format(val) + "\t"); +} +sb.append("\n"); +} +return sb.toString(); +}); +Clazz.defineMethod(c$, "distanceSqrd", +function(a, b){ +var atom1; +var atom2; +var d; +var d1; +var d2; +var d3; +var prod12; +var prod13; +var prod23; +var d15; +var d25; +var d35; +if (b.methyl && !a.methyl) { +atom1 = b; +atom2 = a; +} else if (b.equiv && !a.equiv) { +atom1 = b; +atom2 = a; +} else { +atom1 = a; +atom2 = b; +}if (atom1.methyl) { +var a2x; +var a2y; +var a2z; +if (atom2.methyl) { +a2x = (atom2.x + atom2.x1 + atom2.x2) / 3.0; +a2y = (atom2.y + atom2.y1 + atom2.y2) / 3.0; +a2z = (atom2.z + atom2.z1 + atom2.z2) / 3.0; +} else if (atom2.equiv) { +a2x = 0.0; +a2y = 0.0; +a2z = 0.0; +for (var j = 0; j < atom2.xa.length; j++) { +a2x += atom2.xa[j] / atom2.xa.length; +a2y += atom2.ya[j] / atom2.xa.length; +a2z += atom2.za[j] / atom2.xa.length; +} +} else { +a2x = atom2.x; +a2y = atom2.y; +a2z = atom2.z; +}var x1 = atom1.x - a2x; +var y1 = atom1.y - a2y; +var z1 = atom1.z - a2z; +var x2 = atom1.x1 - a2x; +var y2 = atom1.y1 - a2y; +var z2 = atom1.z1 - a2z; +var x3 = atom1.x2 - a2x; +var y3 = atom1.y2 - a2y; +var z3 = atom1.z2 - a2z; +d1 = (x1 * x1) + (y1 * y1) + (z1 * z1); +d2 = (x2 * x2) + (y2 * y2) + (z2 * z2); +d3 = (x3 * x3) + (y3 * y3) + (z3 * z3); +d15 = d1 * d1 * Math.sqrt(d1); +d25 = d2 * d2 * Math.sqrt(d2); +d35 = d3 * d3 * Math.sqrt(d3); +prod12 = x1 * x2 + y1 * y2 + z1 * z2; +prod13 = x1 * x3 + y1 * y3 + z1 * z3; +prod23 = x2 * x3 + y2 * y3 + z2 * z3; +d = (2 * d1 * d1) / (d15 * d15); +d += ((3 * (prod12 * prod12)) - (d1 * d2)) / (d15 * d25); +d += ((3 * (prod13 * prod13)) - (d1 * d3)) / (d15 * d35); +d += ((3 * (prod12 * prod12)) - (d2 * d1)) / (d25 * d15); +d += (2 * d2 * d2) / (d25 * d25); +d += ((3 * (prod23 * prod23)) - (d2 * d3)) / (d25 * d35); +d += ((3 * (prod13 * prod13)) - (d3 * d1)) / (d35 * d15); +d += ((3 * (prod23 * prod23)) - (d3 * d2)) / (d35 * d25); +d += (2 * d3 * d3) / (d35 * d35); +return (Math.pow(d / 18.0, -0.3333333333333333)); +} else if (atom1.equiv) { +if (atom2.equiv) { +var dd = 0.0; +for (var i = 0; i < atom1.xa.length; i++) { +for (var j = 0; j < atom2.xa.length; j++) { +var x1 = atom1.xa[i] - atom2.xa[j]; +var y1 = atom1.ya[i] - atom2.ya[j]; +var z1 = atom1.za[i] - atom2.za[j]; +dd += Math.pow((x1 * x1) + (y1 * y1) + (z1 * z1), -3.0); +} +} +return Math.pow(dd / (atom1.xa.length * atom2.xa.length), -0.3333333333333333); +}var dd = 0.0; +for (var i = 0; i < atom1.xa.length; i++) { +var x1 = atom1.xa[i] - atom2.x; +var y1 = atom1.ya[i] - atom2.y; +var z1 = atom1.za[i] - atom2.z; +dd += Math.pow((x1 * x1) + (y1 * y1) + (z1 * z1), -3.0); +} +return Math.pow(dd / atom1.xa.length, -0.3333333333333333); +} else { +var x1 = atom1.x - atom2.x; +var y1 = atom1.y - atom2.y; +var z1 = atom1.z - atom2.z; +return (x1 * x1) + (y1 * y1) + (z1 * z1); +}}, "J.quantum.NMRNoeMatrix.NOEAtom,J.quantum.NMRNoeMatrix.NOEAtom"); +Clazz.defineMethod(c$, "doItAll", +function(file){ +System.out.println("starting"); +this.readAtomsFromFile(file); +this.relaxMatrix = Clazz.newDoubleArray (this.nHAtoms, this.nHAtoms, 0); +this.eigenValues = Clazz.newDoubleArray (this.nHAtoms, this.nHAtoms, 0); +this.eigenVectors = Clazz.newDoubleArray (this.nHAtoms, this.nHAtoms, 0); +this.noeM = Clazz.newDoubleArray (this.nHAtoms, this.nHAtoms, 0); +System.out.println("read atoms: " + Integer.toString(this.nHAtoms)); +this.calcRelaxMatrix(); +System.out.println("built matrix"); +System.out.println("total iterations = " + Integer.toString(this.Diagonalise())); +System.out.println("diagonalised matrix"); +this.calcNoeMatrix(); +System.out.println("calculated NOE matrix"); +System.out.println(this.toString()); +System.out.println(""); +System.out.println(this.toStringNormRow()); +try { +this.calcNOEs(); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println(e.toString()); +} else { +throw e; +} +} +}, "java.io.File"); +Clazz.defineMethod(c$, "readAtomsFromFile", +function(file){ +this.atoms = new Array(200); +this.nHAtoms = 0; +var br = null; +try { +br = new java.io.BufferedReader( new java.io.FileReader(file)); +br.readLine(); +System.out.println("found file"); +while (true) { +var linetokens = br.readLine().$plit("\\s+"); +if (linetokens[1].matches("41") || linetokens[1].matches("44")) { +this.atoms[this.nHAtoms] = new J.quantum.NMRNoeMatrix.NOEAtom(); +this.atoms[this.nHAtoms].x = Double.$valueOf(linetokens[14]).doubleValue(); +this.atoms[this.nHAtoms].y = Double.$valueOf(linetokens[15]).doubleValue(); +this.atoms[this.nHAtoms].z = Double.$valueOf(linetokens[16]).doubleValue(); +this.atoms[this.nHAtoms].methyl = false; +this.nHAtoms++; +}} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println(e.toString()); +} else { +throw e; +} +} finally { +if (br != null) try { +br.close(); +} catch (e) { +if (Clazz.exceptionOf(e,"java.io.IOException")){ +} else { +throw e; +} +} +} +}, "java.io.File"); +c$.main = Clazz.defineMethod(c$, "main", +function(args){ +var params = new J.quantum.NMRNoeMatrix.NOEParams(); +params.setNMRfreqMHz(500); +params.setCorrelationTimeTauPS(80.0); +params.setMixingTimeSec(0.5); +params.setCutoffAng(10.0); +params.setRhoStar(0.1); +params.setNoesy(true); + new J.quantum.NMRNoeMatrix(params).doItAll( new java.io.File(args[0])); +}, "~A"); +c$.createLabelMapAndIndex = Clazz.defineMethod(c$, "createLabelMapAndIndex", +function(viewer, bsMol, labelArray, bsH, labels, indexAtomInMol){ +var labelMap = new java.util.Hashtable(); +for (var pt = 0, i = bsMol.nextSetBit(0); i >= 0; i = bsMol.nextSetBit(i + 1), pt++) { +var a = viewer.ms.at[i]; +indexAtomInMol.put(a, Integer.$valueOf(pt)); +if (labelArray != null) { +var label = labelArray[pt]; +if (labelArray[pt] == null) { +labels.put(a, ""); +} else { +var lst = labelMap.get(label); +if (lst == null) { +labelMap.put(label, lst = new JU.Lst()); +} else { +bsH.clear(i); +}lst.addLast(a); +labels.put(a, label); +}}} +return labelMap; +}, "JV.Viewer,JU.BS,~A,JU.BS,java.util.Map,java.util.Map"); +c$.createHAtomList = Clazz.defineMethod(c$, "createHAtomList", +function(viewer, bsMol, bsH, labels, labelMap){ +var hAtoms = new JU.Lst(); +try { +if (!bsMol.isEmpty()) { +var methyls = viewer.getSmartsMap("C({[H]})({[H]}){[H]}", bsMol, 130); +for (var i = methyls.length; --i >= 0; ) { +var methyl = new Array(3); +for (var j = 0; j < 3; j++) { +var pt = methyls[i][j]; +methyl[j] = viewer.ms.at[pt]; +bsH.clear(pt); +} +hAtoms.addLast(methyl); +} +}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +for (var i = bsH.nextSetBit(0); i >= 0; i = bsH.nextSetBit(i + 1)) { +var a = viewer.ms.at[i]; +var label = labels.get(a); +var atoms = (label == null ? null : labelMap.get(labels.get(a))); +if (atoms != null && atoms.size() > 1) { +hAtoms.addLast(atoms); +} else { +hAtoms.addLast(a); +}} +return hAtoms; +}, "JV.Viewer,JU.BS,JU.BS,java.util.Map,java.util.Map"); +Clazz.defineMethod(c$, "getJmolDistance", +function(a, b){ +return this.getDistance(this.atomMap[a - this.baseIndex], this.atomMap[b - this.baseIndex]); +}, "~N,~N"); +Clazz.defineMethod(c$, "getDistance", +function(i, j){ +return (i < 0 || j < 0 || i >= this.nHAtoms ? NaN : this.distanceMatrix[i][j]); +}, "~N,~N"); +Clazz.defineMethod(c$, "getJmolNoe", +function(a, b){ +return this.getNoe(this.atomMap[a - this.baseIndex], this.atomMap[b - this.baseIndex]); +}, "~N,~N"); +Clazz.defineMethod(c$, "getNoe", +function(i, j){ +return (i < 0 || j < 0 || i >= this.nHAtoms ? NaN : this.noeM[i][j]); +}, "~N,~N"); +/*if3*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.noesy = false; +this.tau = 0; +this.freq = 0; +this.tMix = 0; +this.cutoff = 0; +this.rhoStar = 0; +this.tainted = true; +this.mixingChanged = true; +this.id = 0; +Clazz.instantialize(this, arguments);}, J.quantum.NMRNoeMatrix, "NOEParams", null); +Clazz.prepareFields (c$, function(){ +{ +this.freq = 2.5132741228718348E9; +this.tau = 80E-12; +this.tMix = 0.5; +this.cutoff = 10; +this.rhoStar = 0.1; +this.noesy = true; +}}); +Clazz.overrideMethod(c$, "toString", +function(){ +return "[id=" + this.id + " freq=" + this.getNMRfreqMHz() + " tau=" + this.tau + " tMix=" + this.tMix + " cutoff=" + this.cutoff + " rhoStar=" + this.rhoStar + " noesy=" + this.noesy + "]"; +}); +Clazz.defineMethod(c$, "setCorrelationTimeTauPS", +function(t){ +this.tau = t * 1E-12; +this.tainted = true; +}, "~N"); +Clazz.defineMethod(c$, "setMixingTimeSec", +function(t){ +this.tMix = t; +this.mixingChanged = true; +}, "~N"); +Clazz.defineMethod(c$, "setNMRfreqMHz", +function(f){ +this.freq = f * 2 * 3.141592653589793 * 1E6; +this.tainted = true; +}, "~N"); +Clazz.defineMethod(c$, "setCutoffAng", +function(c){ +this.cutoff = c; +this.tainted = true; +}, "~N"); +Clazz.defineMethod(c$, "setRhoStar", +function(c){ +this.rhoStar = c; +this.tainted = true; +}, "~N"); +Clazz.defineMethod(c$, "setNoesy", +function(b){ +this.noesy = b; +this.tainted = true; +}, "~B"); +Clazz.defineMethod(c$, "getCorrelationTimeTauPS", +function(){ +return this.tau; +}); +Clazz.defineMethod(c$, "getMixingTimeSec", +function(){ +return this.tMix; +}); +Clazz.defineMethod(c$, "getNoesy", +function(){ +return this.noesy; +}); +Clazz.defineMethod(c$, "getNMRfreqMHz", +function(){ +return this.freq / 2 / 3.141592653589793 / 1E6; +}); +Clazz.defineMethod(c$, "getCutoffAng", +function(){ +return this.cutoff; +}); +/*eoif3*/})(); +/*if3*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.x = 0; +this.y = 0; +this.z = 0; +this.x1 = 0; +this.y1 = 0; +this.z1 = 0; +this.x2 = 0; +this.y2 = 0; +this.z2 = 0; +this.xa = null; +this.ya = null; +this.za = null; +this.methyl = false; +this.equiv = false; +Clazz.instantialize(this, arguments);}, J.quantum.NMRNoeMatrix, "NOEAtom", null); +/*eoif3*/})(); +c$.staticid = 0; +c$.nf = java.text.NumberFormat.getInstance(); +{ +J.quantum.NMRNoeMatrix.nf.setMinimumFractionDigits(4); +J.quantum.NMRNoeMatrix.nf.setMaximumFractionDigits(4); +}}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/NciCalculation.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/NciCalculation.js new file mode 100755 index 000000000000..06a8dceec16c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/NciCalculation.js @@ -0,0 +1,370 @@ +Clazz.declarePackage("J.quantum"); +Clazz.load(["J.quantum.QuantumPlaneCalculation", "JU.AU"], "J.quantum.NciCalculation", ["JU.BS", "$.Eigen", "JU.BSUtil", "$.Escape", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.havePoints = false; +this.isReducedDensity = false; +this.DEFAULT_RHOPLOT_SCF = 0.05; +this.DEFAULT_RHOPLOT_PRO = 0.07; +this.DEFAULT_RHOPARAM = 0.95; +this.rhoMin = 0; +this.rhoPlot = 0; +this.rhoParam = 0; +this.dataScaling = 1; +this.dataIsReducedDensity = false; +this.eigen = null; +this.rhoMolecules = null; +this.type = 0; +this.nMolecules = 0; +this.isPromolecular = false; +this.bsOK = null; +this.noValuesAtAll = false; +this.useAbsolute = false; +this.hess = null; +this.grad = 0; +this.gxTemp = 0; +this.gyTemp = 0; +this.gzTemp = 0; +this.gxxTemp = 0; +this.gyyTemp = 0; +this.gzzTemp = 0; +this.gxyTemp = 0; +this.gyzTemp = 0; +this.gxzTemp = 0; +this.eigenValues = null; +this.test1 = 0; +this.yzPlanesRaw = null; +this.yzCount = 0; +this.yzPlanesRho = null; +this.p0 = null; +this.p1 = null; +this.p2 = null; +Clazz.instantialize(this, arguments);}, J.quantum, "NciCalculation", J.quantum.QuantumPlaneCalculation); +Clazz.prepareFields (c$, function(){ +this.eigenValues = Clazz.newFloatArray (3, 0); +this.yzPlanesRho = JU.AU.newFloat2(2); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.quantum.NciCalculation, []); +}); +Clazz.overrideMethod(c$, "getNoValue", +function(){ +return 100.0; +}); +Clazz.defineMethod(c$, "setupCalculation", +function(volumeData, bsSelected, bsExcluded, bsMolecules, atomCoordAngstroms, firstAtomOffset, isReducedDensity, points, parameters, testFlags){ +this.useAbsolute = (testFlags == 2); +this.bsExcluded = bsExcluded; +var bsLigand = new JU.BS(); +bsLigand.or(bsSelected); +if (bsExcluded != null) { +bsLigand.andNot(bsExcluded); +}this.isPromolecular = (firstAtomOffset >= 0); +this.havePoints = (points != null); +this.isReducedDensity = isReducedDensity; +if (parameters != null) JU.Logger.info("NCI calculation parameters = " + JU.Escape.eAF(parameters)); +this.type = Clazz.doubleToInt(J.quantum.NciCalculation.getParameter(parameters, 1, 0, "type")); +if (this.type != 0 && bsMolecules == null) this.type = 0; +this.rhoMin = J.quantum.NciCalculation.getParameter(parameters, 2, 1e-5, "rhoMin"); +this.rhoPlot = J.quantum.NciCalculation.getParameter(parameters, 3, (this.isPromolecular ? this.DEFAULT_RHOPLOT_PRO : this.DEFAULT_RHOPLOT_SCF), "rhoPlot"); +this.rhoParam = J.quantum.NciCalculation.getParameter(parameters, 4, this.DEFAULT_RHOPARAM, "rhoParam"); +this.dataScaling = J.quantum.NciCalculation.getParameter(parameters, 5, 1, "dataScaling"); +this.dataIsReducedDensity = (this.type < 0); +var stype; +switch (this.type) { +case 0: +default: +this.type = 0; +stype = "all"; +bsMolecules = null; +break; +case -1: +case 1: +this.type = 1; +stype = "intramolecular"; +break; +case -2: +case 2: +this.type = 2; +stype = "intermolecular"; +break; +case 3: +stype = "ligand"; +break; +} +this.nMolecules = 0; +if (!this.isPromolecular && this.type == 0) atomCoordAngstroms = null; +JU.Logger.info("NCI calculation type = " + (this.isPromolecular ? "promolecular " : "SCF(CUBE) ") + stype); +this.voxelData = volumeData.getVoxelData(); +this.countsXYZ = volumeData.getVoxelCounts(); +this.initialize(this.countsXYZ[0], this.countsXYZ[1], this.countsXYZ[2], points); +if (this.havePoints) { +this.xMin = this.yMin = this.zMin = 0; +this.xMax = this.yMax = this.zMax = points.length; +}this.setupCoordinates(volumeData.getOriginFloat(), volumeData.getVolumetricVectorLengths(), bsSelected, atomCoordAngstroms, null, points, true); +if (this.qmAtoms != null) { +var qmMap = Clazz.newIntArray (bsSelected.length(), 0); +for (var i = this.qmAtoms.length; --i >= 0; ) { +qmMap[this.qmAtoms[i].index] = i; +if (this.qmAtoms[i].znuc < 1) { +this.qmAtoms[i] = null; +} else if (this.qmAtoms[i].znuc > 18) { +this.qmAtoms[i].znuc = 18; +JU.Logger.info("NCI calculation just setting nuclear charge for " + this.qmAtoms[i].atom + " to 18 (argon)"); +}} +this.nMolecules = 0; +if (this.type != 0) { +for (var i = 0; i < bsMolecules.length; i++) { +var bs = JU.BSUtil.copy(bsMolecules[i]); +bs.and(bsSelected); +if (bs.nextSetBit(0) < 0) continue; +for (var j = bs.nextSetBit(0); j >= 0; j = bs.nextSetBit(j + 1)) this.qmAtoms[qmMap[j]].iMolecule = this.nMolecules; + +this.nMolecules++; +JU.Logger.info("Molecule " + (this.nMolecules) + " (" + bs.cardinality() + " atoms): " + JU.Escape.eBS(bs)); +} +this.rhoMolecules = Clazz.newDoubleArray (this.nMolecules, 0); +}if (this.nMolecules == 0) this.nMolecules = 1; +if (this.nMolecules == 1) { +this.noValuesAtAll = (this.type != 0 && this.type != 1); +this.type = 0; +}if (!this.isPromolecular) this.getBsOK(); +}if (!isReducedDensity || !this.isPromolecular) this.initializeEigen(); +this.doDebug = (JU.Logger.debugging); +return true; +}, "J.jvxl.data.VolumeData,JU.BS,JU.BS,~A,~A,~N,~B,~A,~A,~N"); +c$.getParameter = Clazz.defineMethod(c$, "getParameter", +function(parameters, i, def, name){ +var param = (parameters == null || parameters.length < i + 1 ? 0 : parameters[i]); +if (param == 0) param = def; +JU.Logger.info("NCI calculation parameters[" + i + "] (" + name + ") = " + param); +return param; +}, "~A,~N,~N,~S"); +Clazz.defineMethod(c$, "getBsOK", +function(){ +if (this.noValuesAtAll || this.nMolecules == 1) return; +this.bsOK = JU.BS.newN(this.nX * this.nY * this.nZ); +this.setXYZBohr(null); +for (var ix = 0, index = 0; ix < this.countsXYZ[0]; ix++) for (var iy = 0; iy < this.countsXYZ[1]; iy++) for (var iz = 0; iz < this.countsXYZ[2]; index++, iz++) this.processAtoms(ix, iy, iz, index); + + + +JU.Logger.info("NCI calculation SCF " + (this.type == 1 ? "intra" : "inter") + "molecular grid points = " + this.bsOK.cardinality()); +}); +Clazz.overrideMethod(c$, "createCube", +function(){ +this.setXYZBohr(this.points); +this.process(); +}); +Clazz.overrideMethod(c$, "initializeOnePoint", +function(){ +if (this.eigen == null) this.initializeEigen(); +this.isReducedDensity = false; +this.initializeOnePointQC(); +}); +Clazz.defineMethod(c$, "initializeEigen", +function(){ +this.eigen = new JU.Eigen().set(3); +this.hess = Clazz.newDoubleArray (3, 3, 0); +}); +Clazz.overrideMethod(c$, "getPlane", +function(ix, yzPlane){ +if (this.noValuesAtAll) { +for (var j = 0; j < this.yzCount; j++) yzPlane[j] = NaN; + +return; +}this.isReducedDensity = true; +this.initialize(this.countsXYZ[0], this.countsXYZ[1], this.countsXYZ[2], null); +this.setXYZBohr(null); +var index = ix * this.yzCount; +for (var iy = 0, i = 0; iy < this.countsXYZ[1]; iy++) for (var iz = 0; iz < this.countsXYZ[2]; i++, iz++) if (this.bsOK == null || this.bsOK.get(index + i)) yzPlane[i] = this.getValue(this.processAtoms(ix, iy, iz, -1), this.isReducedDensity); + else yzPlane[i] = NaN; + + +}, "~N,~A"); +Clazz.defineMethod(c$, "process", +function(){ +if (this.noValuesAtAll) return; +for (var ix = this.xMax; --ix >= this.xMin; ) { +for (var iy = this.yMin; iy < this.yMax; iy++) { +var vd = this.voxelData[ix][(this.havePoints ? 0 : iy)]; +for (var iz = this.zMin; iz < this.zMax; iz++) vd[(this.havePoints ? 0 : iz)] = this.getValue(this.processAtoms(ix, iy, iz, -1), this.isReducedDensity); + +} +} +}); +Clazz.defineMethod(c$, "getValue", +function(rho, isReducedDensity){ +var s; +if (rho == 100.0) return NaN; +if (isReducedDensity) { +s = J.quantum.NciCalculation.c * this.grad * Math.pow(rho, J.quantum.NciCalculation.rpower); +} else if (this.useAbsolute) { +s = rho; +} else { +this.hess[0][0] = this.gxxTemp; +this.hess[1][0] = this.hess[0][1] = this.gxyTemp; +this.hess[2][0] = this.hess[0][2] = this.gxzTemp; +this.hess[1][1] = this.gyyTemp; +this.hess[1][2] = this.hess[2][1] = this.gyzTemp; +this.hess[2][2] = this.gzzTemp; +this.eigen.calc(this.hess); +this.eigen.fillFloatArrays(null, this.eigenValues); +s = (this.eigenValues[1] < 0 ? -rho : rho); +}return s; +}, "~N,~B"); +Clazz.defineMethod(c$, "processAtoms", +function(ix, iy, iz, index){ +var rho = 0; +if (this.isReducedDensity) { +if (this.isPromolecular) this.gxTemp = this.gyTemp = this.gzTemp = 0; +if (this.type != 0) for (var i = this.nMolecules; --i >= 0; ) this.rhoMolecules[i] = 0; + +} else { +this.gxxTemp = this.gyyTemp = this.gzzTemp = this.gxyTemp = this.gyzTemp = this.gxzTemp = 0; +}for (var i = this.qmAtoms.length; --i >= 0; ) { +var znuc = this.qmAtoms[i].znuc; +var x = this.xBohr[ix] - this.qmAtoms[i].x; +var y = this.yBohr[iy] - this.qmAtoms[i].y; +var z = this.zBohr[iz] - this.qmAtoms[i].z; +if (Math.abs(x) > J.quantum.NciCalculation.dMax[znuc] || Math.abs(y) > J.quantum.NciCalculation.dMax[znuc] || Math.abs(z) > J.quantum.NciCalculation.dMax[znuc]) continue; +var r = Math.sqrt(x * x + y * y + z * z); +var z1 = J.quantum.NciCalculation.zeta1[znuc]; +var z2 = J.quantum.NciCalculation.zeta2[znuc]; +var z3 = J.quantum.NciCalculation.zeta3[znuc]; +var ce1 = J.quantum.NciCalculation.coef1[znuc] * Math.exp(-r / z1); +var ce2 = J.quantum.NciCalculation.coef2[znuc] * Math.exp(-r / z2); +var ce3 = J.quantum.NciCalculation.coef3[znuc] * Math.exp(-r / z3); +var rhoAtom = ce1 + ce2 + ce3; +rho += rhoAtom; +if (rho > this.rhoPlot || rho < this.rhoMin) return 100.0; +if (this.isReducedDensity) { +if (this.type != 0) this.rhoMolecules[this.qmAtoms[i].iMolecule] += rhoAtom; +if (this.isPromolecular) { +var fac1r = (ce1 / z1 + ce2 / z2 + ce3 / z3) / r; +this.gxTemp -= fac1r * x; +this.gyTemp -= fac1r * y; +this.gzTemp -= fac1r * z; +}} else { +x /= r; +y /= r; +z /= r; +var fac1r = (ce1 / z1 + ce2 / z2 + ce3 / z3) / r; +var fr2 = fac1r + (ce1 / z1 / z1 + ce2 / z2 / z2 + ce3 / z3 / z3); +this.gxxTemp += fr2 * x * x - fac1r; +this.gyyTemp += fr2 * y * y - fac1r; +this.gzzTemp += fr2 * z * z - fac1r; +this.gxyTemp += fr2 * x * y; +this.gxzTemp += fr2 * x * z; +this.gyzTemp += fr2 * y * z; +}} +if (this.isReducedDensity) { +switch (this.type) { +case 1: +case 2: +var isIntra = false; +var rhocut2 = this.rhoParam * rho; +for (var i = 0; i < this.nMolecules; i++) if (this.rhoMolecules[i] >= rhocut2) { +isIntra = true; +break; +} +if ((this.type == 1) != isIntra) return 100.0; +if (index >= 0) { +this.bsOK.set(index); +return 0; +}break; +case 3: +break; +default: +break; +} +if (this.useAbsolute) this.grad = this.gxTemp + this.gyTemp + this.gzTemp; + else this.grad = Math.sqrt(this.gxTemp * this.gxTemp + this.gyTemp * this.gyTemp + this.gzTemp * this.gzTemp); +}return rho; +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "setPlanes", +function(planes){ +this.yzPlanesRaw = planes; +this.yzCount = this.nY * this.nZ; +}, "~A"); +Clazz.overrideMethod(c$, "calcPlane", +function(x, plane){ +this.yzPlanesRho[0] = this.yzPlanesRho[1]; +this.yzPlanesRho[1] = plane; +if (this.noValuesAtAll) { +for (var j = 0; j < this.yzCount; j++) plane[j] = NaN; + +return; +}var i0 = 0; +if (this.dataIsReducedDensity) { +this.p1 = plane; +} else { +i0 = (this.yzPlanesRho[0] == null ? 0 : 1); +this.p0 = this.yzPlanesRaw[i0++]; +this.p1 = this.yzPlanesRaw[i0++]; +this.p2 = this.yzPlanesRaw[i0++]; +for (var i = (i0 == 4 ? 3 : 0); i < i0; i++) for (var j = 0; j < this.yzCount; j++) this.yzPlanesRaw[i][j] = Math.abs(this.yzPlanesRaw[i][j] * this.dataScaling); + + +}var index = x * this.yzCount; +for (var y = 0, i = 0; y < this.nY; y++) for (var z = 0; z < this.nZ; z++, i++) { +var rho = this.p1[i]; +if (this.bsOK != null && !this.bsOK.get(index + i)) { +plane[i] = NaN; +} else if (this.dataIsReducedDensity) { +continue; +} else if (rho == 0) { +plane[i] = 0; +} else if (rho > this.rhoPlot || rho < this.rhoMin || y == 0 || y == this.nY - 1 || z == 0 || z == this.nZ - 1) { +plane[i] = NaN; +} else { +this.gxTemp = (this.p2[i] - this.p0[i]) / (2 * this.stepBohr[0]); +this.gyTemp = (this.p1[i + this.nZ] - this.p1[i - this.nZ]) / (2 * this.stepBohr[1]); +this.gzTemp = (this.p1[i + 1] - this.p1[i - 1]) / (2 * this.stepBohr[2]); +this.grad = Math.sqrt(this.gxTemp * this.gxTemp + this.gyTemp * this.gyTemp + this.gzTemp * this.gzTemp); +plane[i] = this.getValue(rho, true); +}} + +}, "~N,~A"); +Clazz.defineMethod(c$, "process", +function(vA, vB, f){ +var valueA = this.getPlaneValue(vA); +var valueB = this.getPlaneValue(vB); +return (valueA + f * (valueB - valueA)); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "getPlaneValue", +function(vA){ +var i = (vA % this.yzCount); +var x = Clazz.doubleToInt(vA / this.yzCount); +var y = Clazz.doubleToInt(i / this.nZ); +var z = i % this.nZ; +if (x == 0 || x == this.nX - 1 || y == 0 || y == this.nY - 1 || z == 0 || z == this.nZ - 1) return 100.0; +var iPlane = x % 2; +var p0 = this.yzPlanesRaw[iPlane++]; +var p1 = this.yzPlanesRaw[iPlane++]; +var p2 = this.yzPlanesRaw[iPlane++]; +var rho = p1[i]; +if (rho > this.rhoPlot || rho < this.rhoMin) return 100.0; +var dx = this.stepBohr[0]; +var dy = this.stepBohr[1]; +var dz = this.stepBohr[2]; +this.gxxTemp = (p2[i] - 2 * rho + p0[i]) / (dx * dx); +this.gyyTemp = (p1[i + this.nZ] - 2 * rho + p1[i - this.nZ]) / (dy * dy); +this.gzzTemp = (p1[i + 1] - 2 * rho + p1[i - 1]) / (dz * dz); +this.gxyTemp = ((p2[i + this.nZ] - p2[i - this.nZ]) - (p0[i + this.nZ] - p0[i - this.nZ])) / (4 * dx * dy); +this.gxzTemp = ((p2[i + 1] - p2[i - 1]) - (p0[i + 1] - p0[i - 1])) / (4 * dx * dz); +this.gyzTemp = ((p1[i + this.nZ + 1] - p1[i - this.nZ + 1]) - (p1[i + this.nZ - 1] - p1[i - this.nZ - 1])) / (4 * dy * dz); +if (Double.isNaN(this.gxxTemp) || Double.isNaN(this.gyyTemp) || Double.isNaN(this.gzzTemp) || Double.isNaN(this.gxyTemp) || Double.isNaN(this.gxzTemp) || Double.isNaN(this.gyzTemp)) return NaN; +return this.getValue(rho, false); +}, "~N"); +c$.c = (1 / (2 * Math.pow(29.608813203268074, 0.3333333333333333))); +c$.rpower = -1.3333333333333333; +c$.coef1 = Clazz.newDoubleArray(-1, [0, 0.2815, 2.437, 11.84, 31.34, 67.82, 120.2, 190.9, 289.5, 406.3, 561.3, 760.8, 1016., 1319., 1658., 2042., 2501., 3024., 3625.]); +c$.coef2 = Clazz.newDoubleArray(-1, [0, 0., 0., 0.06332, 0.3694, 0.8527, 1.172, 2.247, 2.879, 3.049, 6.984, 22.42, 37.17, 57.95, 87.16, 115.7, 158.0, 205.5, 260.0]); +c$.coef3 = Clazz.newDoubleArray(-1, [0, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.06358, 0.3331, 0.8878, 0.7888, 1.465, 2.170, 3.369, 5.211]); +c$.zeta1 = Clazz.newDoubleArray(-1, [0, 0.5288, 0.3379, 0.1912, 0.1390, 0.1059, 0.0884, 0.0767, 0.0669, 0.0608, 0.0549, 0.0496, 0.0449, 0.0411, 0.0382, 0.0358, 0.0335, 0.0315, 0.0296]); +c$.zeta2 = Clazz.newDoubleArray(-1, [0, 1., 1., 0.9992, 0.6945, 0.5300, 0.5480, 0.4532, 0.3974, 0.3994, 0.3447, 0.2511, 0.2150, 0.1874, 0.1654, 0.1509, 0.1369, 0.1259, 0.1168]); +c$.zeta3 = Clazz.newDoubleArray(-1, [0, 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.0236, 0.7753, 0.5962, 0.6995, 0.5851, 0.5149, 0.4974, 0.4412]); +c$.dMax = Clazz.newDoubleArray(-1, [0, 2.982502423, 2.635120936, 4.144887422, 4.105800759, 3.576656363, 3.872424373, 3.497503547, 3.165369971, 3.204214082, 3.051069564, 4.251312809, 4.503309314, 4.047465141, 4.666024968, 4.265151411, 3.955710076, 4.040067606, 3.776022242]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/QMAtom.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/QMAtom.js new file mode 100755 index 000000000000..ccc7e4e69f83 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/QMAtom.js @@ -0,0 +1,73 @@ +Clazz.declarePackage("J.quantum"); +Clazz.load(["JU.P3"], "J.quantum.QMAtom", ["JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.myX = null; +this.myY = null; +this.myZ = null; +this.myX2 = null; +this.myY2 = null; +this.myZ2 = null; +this.atom = null; +this.index = 0; +this.znuc = 0; +this.iMolecule = 0; +Clazz.instantialize(this, arguments);}, J.quantum, "QMAtom", JU.P3); +Clazz.overrideConstructor(c$, +function(i, xyzAng, atom, X, Y, Z, X2, Y2, Z2, unitFactor){ +this.index = i; +this.myX = X; +this.myY = Y; +this.myZ = Z; +this.myX2 = X2; +this.myY2 = Y2; +this.myZ2 = Z2; +this.atom = atom; +this.setT(xyzAng); +this.scale(unitFactor); +this.znuc = atom.getElementNumber(); +}, "~N,JU.T3,JM.Atom,~A,~A,~A,~A,~A,~A,~N"); +Clazz.defineMethod(c$, "setXYZ", +function(qc, setMinMax){ +var i; +try { +if (setMinMax) { +if (qc.points != null) { +qc.xMin = qc.yMin = qc.zMin = 0; +qc.xMax = qc.yMax = qc.zMax = qc.points.length; +} else { +i = Clazz.doubleToInt(Math.floor((this.x - qc.xBohr[0] - qc.rangeBohrOrAngstroms) / qc.stepBohr[0])); +qc.xMin = (i < 0 ? 0 : i); +i = Clazz.doubleToInt(Math.floor(1 + (this.x - qc.xBohr[0] + qc.rangeBohrOrAngstroms) / qc.stepBohr[0])); +qc.xMax = (i >= qc.nX ? qc.nX : i + 1); +i = Clazz.doubleToInt(Math.floor((this.y - qc.yBohr[0] - qc.rangeBohrOrAngstroms) / qc.stepBohr[1])); +qc.yMin = (i < 0 ? 0 : i); +i = Clazz.doubleToInt(Math.floor(1 + (this.y - qc.yBohr[0] + qc.rangeBohrOrAngstroms) / qc.stepBohr[1])); +qc.yMax = (i >= qc.nY ? qc.nY : i + 1); +i = Clazz.doubleToInt(Math.floor((this.z - qc.zBohr[0] - qc.rangeBohrOrAngstroms) / qc.stepBohr[2])); +qc.zMin = (i < 0 ? 0 : i); +i = Clazz.doubleToInt(Math.floor(1 + (this.z - qc.zBohr[0] + qc.rangeBohrOrAngstroms) / qc.stepBohr[2])); +qc.zMax = (i >= qc.nZ ? qc.nZ : i + 1); +}}for (i = qc.xMax; --i >= qc.xMin; ) { +this.myX2[i] = this.myX[i] = qc.xBohr[i] - this.x; +this.myX2[i] *= this.myX[i]; +} +for (i = qc.yMax; --i >= qc.yMin; ) { +this.myY2[i] = this.myY[i] = qc.yBohr[i] - this.y; +this.myY2[i] *= this.myY[i]; +} +for (i = qc.zMax; --i >= qc.zMin; ) { +this.myZ2[i] = this.myZ[i] = qc.zBohr[i] - this.z; +this.myZ2[i] *= this.myZ[i]; +} +if (qc.points != null) { +qc.yMax = qc.zMax = 1; +}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Error in QuantumCalculation setting bounds"); +} else { +throw e; +} +} +}, "J.quantum.QuantumCalculation,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/QS.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/QS.js new file mode 100755 index 000000000000..33f14e16f3f3 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/QS.js @@ -0,0 +1,71 @@ +Clazz.declarePackage("J.quantum"); +Clazz.load(null, "J.quantum.QS", ["JU.PT", "$.SB"], function(){ +var c$ = Clazz.declareType(J.quantum, "QS", null); +/*LV!1824 unnec constructor*/c$.isQuantumBasisSupported = Clazz.defineMethod(c$, "isQuantumBasisSupported", +function(ch){ +return ("SPLDF".indexOf(Character.toUpperCase(ch)) >= 0); +}, "~S"); +c$.getNewDfCoefMap = Clazz.defineMethod(c$, "getNewDfCoefMap", +function(){ +return Clazz.newArray(-1, [ Clazz.newIntArray (1, 0), Clazz.newIntArray (3, 0), Clazz.newIntArray (4, 0), Clazz.newIntArray (5, 0), Clazz.newIntArray (6, 0), Clazz.newIntArray (7, 0), Clazz.newIntArray (10, 0), Clazz.newIntArray (9, 0), Clazz.newIntArray (15, 0), Clazz.newIntArray (11, 0), Clazz.newIntArray (21, 0), Clazz.newIntArray (13, 0), Clazz.newIntArray (28, 0)]); +}); +c$.getItem = Clazz.defineMethod(c$, "getItem", +function(i){ +return (i >= 0 && i < 13 ? i : -1); +}, "~N"); +c$.getQuantumShellTagID = Clazz.defineMethod(c$, "getQuantumShellTagID", +function(tag){ +return (tag.equals("L") ? 2 : J.quantum.QS.getQuantumShell(tag)); +}, "~S"); +c$.getQuantumShell = Clazz.defineMethod(c$, "getQuantumShell", +function(tag){ +for (var i = 0; i < 13; i++) if (J.quantum.QS.tags[i].equals(tag) || J.quantum.QS.tags2[i].equals(tag)) return i; + +return -1; +}, "~S"); +c$.getQuantumShellTagIDSpherical = Clazz.defineMethod(c$, "getQuantumShellTagIDSpherical", +function(tag){ +if (tag.equals("L")) return 2; +var id = J.quantum.QS.getQuantumShell(tag); +return (id < 0 ? id : J.quantum.QS.idSpherical[id]); +}, "~S"); +c$.getQuantumShellTag = Clazz.defineMethod(c$, "getQuantumShellTag", +function(id){ +return (id >= 0 && id < 13 ? J.quantum.QS.tags[id] : "" + id); +}, "~N"); +c$.getMOString = Clazz.defineMethod(c$, "getMOString", +function(lc){ +var sb = new JU.SB(); +if (lc.length == 2) return "" + Clazz.floatToInt(lc[0] < 0 ? -lc[1] : lc[1]); +sb.appendC('['); +for (var i = 0; i < lc.length; i += 2) { +if (i > 0) sb.append(", "); +sb.appendF(lc[i]).append(" ").appendI(Clazz.floatToInt(lc[i + 1])); +} +sb.appendC(']'); +return sb.toString(); +}, "~A"); +c$.createDFMap = Clazz.defineMethod(c$, "createDFMap", +function(map, fileList, jmolList, minLength){ +var tokens = JU.PT.getTokens(fileList); +var isOK = true; +for (var i = 0; i < map.length; i++) { +var key = tokens[i]; +if (key.length >= minLength) { +var pt = jmolList.indexOf(key); +if (pt >= 0) { +pt /= 6; +map[pt] = i - pt; +continue; +}}isOK = false; +break; +} +if (!isOK) map[0] = -2147483648; +return isOK; +}, "~A,~S,~S,~N"); +c$.MAX_TYPE_SUPPORTED = 6; +c$.idSpherical = Clazz.newIntArray(-1, [0, 1, 2, 3, 3, 5, 5, 7, 7, 9, 9, 11, 11]); +c$.tags = Clazz.newArray(-1, ["S", "P", "SP", "5D", "D", "7F", "F", "9G", "G", "11H", "H", "13I", "I"]); +c$.tags2 = Clazz.newArray(-1, ["S", "X", "SP", "5D", "XX", "7F", "XXX", "9G", "XXXX", "11H", "XXXXX", "13I", "XXXXXX"]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/QuantumCalculation.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/QuantumCalculation.js new file mode 100755 index 000000000000..7d3a386ce3f8 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/QuantumCalculation.js @@ -0,0 +1,156 @@ +Clazz.declarePackage("J.quantum"); +Clazz.load(null, "J.quantum.QuantumCalculation", ["JU.P3", "J.quantum.QMAtom", "JU.Escape", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.doDebug = false; +this.bsExcluded = null; +this.integration = NaN; +this.voxelData = null; +this.voxelDataTemp = null; +this.countsXYZ = null; +this.points = null; +this.xMin = 0; +this.xMax = 0; +this.yMin = 0; +this.yMax = 0; +this.zMin = 0; +this.zMax = 0; +this.qmAtoms = null; +this.atomIndex = 0; +this.thisAtom = null; +this.firstAtomOffset = 0; +this.xBohr = null; +this.yBohr = null; +this.zBohr = null; +this.originBohr = null; +this.stepBohr = null; +this.nX = 0; +this.nY = 0; +this.nZ = 0; +this.X = null; +this.Y = null; +this.Z = null; +this.X2 = null; +this.Y2 = null; +this.Z2 = null; +this.rangeBohrOrAngstroms = 10; +this.unitFactor = 1.8897161; +this.volume = 1; +Clazz.instantialize(this, arguments);}, J.quantum, "QuantumCalculation", null); +Clazz.prepareFields (c$, function(){ +this.originBohr = Clazz.newFloatArray (3, 0); +this.stepBohr = Clazz.newFloatArray (3, 0); +}); +Clazz.defineMethod(c$, "getIntegration", +function(){ +return this.integration; +}); +Clazz.defineMethod(c$, "initialize", +function(nX, nY, nZ, points){ +this.initialize0(nX, nY, nZ, points); +}, "~N,~N,~N,~A"); +Clazz.defineMethod(c$, "initialize0", +function(nX, nY, nZ, points){ +if (points != null) { +this.points = points; +nX = nY = nZ = points.length; +}this.nX = this.xMax = nX; +this.nY = this.yMax = nY; +this.nZ = this.zMax = nZ; +if (this.xBohr != null && this.xBohr.length >= nX) return; +this.xBohr = Clazz.newFloatArray (nX, 0); +this.yBohr = Clazz.newFloatArray (nY, 0); +this.zBohr = Clazz.newFloatArray (nZ, 0); +this.X = Clazz.newFloatArray (nX, 0); +this.Y = Clazz.newFloatArray (nY, 0); +this.Z = Clazz.newFloatArray (nZ, 0); +this.X2 = Clazz.newFloatArray (nX, 0); +this.Y2 = Clazz.newFloatArray (nY, 0); +this.Z2 = Clazz.newFloatArray (nZ, 0); +}, "~N,~N,~N,~A"); +Clazz.defineMethod(c$, "setupCoordinates", +function(originXYZ, stepsXYZ, bsSelected, xyz, atoms, points, renumber){ +if (atoms == null) atoms = xyz; +var range = Clazz.newFloatArray(-1, [this.nX, this.nY, this.nZ]); +if (points == null) { +this.volume = 1; +for (var i = 3; --i >= 0; ) { +this.originBohr[i] = originXYZ[i] * this.unitFactor; +this.stepBohr[i] = stepsXYZ[i] * this.unitFactor; +range[i] = (stepsXYZ[i] * range[i]) * this.unitFactor / 1.8897161; +this.volume *= this.stepBohr[i]; +} +JU.Logger.info("QuantumCalculation:\n origin = " + JU.Escape.eAF(originXYZ) + "\n range (Ang) = " + JU.Escape.eAF(range) + "\n steps (Bohr)= " + JU.Escape.eAF(this.stepBohr) + "\n origin(Bohr)= " + JU.Escape.eAF(this.originBohr) + "\n steps = " + JU.Escape.eAF(this.stepBohr) + "\n counts= " + this.nX + " " + this.nY + " " + this.nZ); +}if (atoms == null) return; +this.qmAtoms = new Array(renumber ? bsSelected.cardinality() : xyz.length); +var isAll = (bsSelected == null); +var i0 = (isAll ? this.qmAtoms.length - 1 : bsSelected.nextSetBit(0)); +for (var i = i0, j = 0; i >= 0; i = (isAll ? i - 1 : bsSelected.nextSetBit(i + 1))) this.qmAtoms[renumber ? j++ : i] = new J.quantum.QMAtom(i, xyz[i], atoms[i], this.X, this.Y, this.Z, this.X2, this.Y2, this.Z2, this.unitFactor); + +}, "~A,~A,JU.BS,~A,~A,~A,~B"); +Clazz.defineMethod(c$, "processPt", +function(pt){ +this.doDebug = false; +if (this.points == null || this.nX != 1) this.initializeOnePoint(); +this.points[0].setT(pt); +this.voxelData[0][0][0] = this.voxelDataTemp[0][0][0] = 0; +this.setXYZBohr(this.points); +this.processPoints(); +return this.voxelData[0][0][0]; +}, "JU.T3"); +Clazz.defineMethod(c$, "processPoints", +function(){ +this.process(); +}); +Clazz.defineMethod(c$, "initializeOnePoint", +function(){ +this.initializeOnePointQC(); +}); +Clazz.defineMethod(c$, "initializeOnePointQC", +function(){ +this.points = new Array(1); +this.points[0] = new JU.P3(); +if (this.voxelData == null || this.voxelData === this.voxelDataTemp) { +this.voxelData = this.voxelDataTemp = Clazz.newFloatArray (1, 1, 1, 0); +} else { +this.voxelData = Clazz.newFloatArray (1, 1, 1, 0); +this.voxelDataTemp = Clazz.newFloatArray (1, 1, 1, 0); +}this.xMin = this.yMin = this.zMin = 0; +this.initialize(1, 1, 1, this.points); +}); +Clazz.defineMethod(c$, "setXYZBohr", +function(points){ +this.setXYZBohrI(this.xBohr, 0, this.nX, points); +this.setXYZBohrI(this.yBohr, 1, this.nY, points); +this.setXYZBohrI(this.zBohr, 2, this.nZ, points); +}, "~A"); +Clazz.defineMethod(c$, "setXYZBohrI", +function(bohr, i, n, points){ +if (points != null) { +var x = 0; +for (var j = 0; j < n; j++) { +switch (i) { +case 0: +x = points[j].x; +break; +case 1: +x = points[j].y; +break; +case 2: +x = points[j].z; +break; +} +bohr[j] = x * this.unitFactor; +} +return; +}bohr[0] = this.originBohr[i]; +var inc = this.stepBohr[i]; +for (var j = 0; ++j < n; ) bohr[j] = bohr[j - 1] + inc; + +}, "~A,~N,~N,~A"); +Clazz.defineMethod(c$, "setMinMax", +function(ix){ +this.yMax = this.zMax = (ix < 0 ? this.xMax : ix + 1); +this.yMin = this.zMin = (ix < 0 ? 0 : ix); +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/QuantumPlaneCalculation.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/QuantumPlaneCalculation.js new file mode 100755 index 000000000000..37b7e52c10f4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/QuantumPlaneCalculation.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.quantum"); +Clazz.load(["J.quantum.QuantumCalculation"], "J.quantum.QuantumPlaneCalculation", null, function(){ +var c$ = Clazz.declareType(J.quantum, "QuantumPlaneCalculation", J.quantum.QuantumCalculation); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/SlaterData.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/SlaterData.js new file mode 100755 index 000000000000..1e68a9b58813 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/SlaterData.js @@ -0,0 +1,30 @@ +Clazz.declarePackage("J.quantum"); +(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isCore = false; +this.atomNo = 0; +this.elemNo = 0; +this.x = 0; +this.y = 0; +this.z = 0; +this.r = 0; +this.zeta = 0; +this.coef = 0; +this.index = 0; +Clazz.instantialize(this, arguments);}, J.quantum, "SlaterData", null); +Clazz.makeConstructor(c$, +function(iAtom, x, y, z, r, zeta, coef){ +this.atomNo = iAtom; +this.x = x; +this.y = y; +this.z = z; +this.r = r; +this.zeta = zeta; +this.coef = coef; +}, "~N,~N,~N,~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "toString", +function(){ +return "[" + this.atomNo + "," + this.x + "," + this.y + "," + this.z + "," + this.r + "," + this.zeta + "," + this.coef + "]"; +}); +})(); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/atomicLipophilicity.txt b/config/plugins/visualizations/jmol/static/j2s/J/quantum/atomicLipophilicity.txt new file mode 100755 index 000000000000..bf12c4794e9d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/atomicLipophilicity.txt @@ -0,0 +1,105 @@ +# from pyMLP.py http://code.google.com/p/pymlp/ +# +# Broto P., Moreau G., Vandycke C. - +# Molecular structures: Perception, autocorrelation descriptor and sar studies. +# System of atomic contributions for the calculation of the n-octanol/water +# partition coefficients, Eu. J. Med. Chem. 1984, 19.1, 71-78 +# +# Laguerre M., Saux M., Dubost J.P., Carpy A. - +# MLPP: A program for the calculation of molecular lipophilicity potential in +# proteins, Pharm. Sci. 1997, 3.5-6, 217-222 +# +# adapted by Bob Hanson hansonr@stolaf.edu 6/15/2010 +# +# generic protein: + +_pC -0.54 +_pCA 0.02 +_pCB 0.45 +_pCG 0.45 +_pN -0.44 +_pO -0.68 + +# one-letter codes: + +ACB 0.63 +CSG 0.27 +DCG 0.54 +DOD1 -0.68 +DOD2 0.53 +ECD -0.54 +EOE1 -0.68 +EOE2 0.53 +FCD1 0.31 +FCD2 0.31 +FCE1 0.31 +FCE2 0.31 +FCG 0.09 +FCZ 0.31 +GCA 0.45 +GN -0.55 +HCD2 0.31 +HCE1 0.31 +HCG 0.09 +HND1 -0.56 +HNE2 -0.8 +ICB 0.02 +ICD 0.63 +ICD1 0.63 +ICG1 0.45 +ICG2 0.63 +KCD 0.45 +KCE 0.45 +KNZ -1.08 +LCD1 0.63 +LCD2 0.63 +LCG 0.02 +MCE 0.63 +MSD -0.3 +NND2 -0.11 +NOD1 -0.68 +PCD 0.45 +PN -0.92 +QCD -0.54 +QNE2 -0.11 +QOE1 -0.68 +RCD 0.45 +RCZ -0.54 +RNE -0.55 +RNH1 -0.11 +RNH2 -0.83 +SOG -0.99 +TCB 0.02 +TCG2 0.63 +TOG1 -0.93 +VCB 0.02 +VCG1 0.63 +VCG2 0.63 +WCB 0.45 +WCD1 0.31 +WCD2 0.24 +WCE2 0.24 +WCE3 0.31 +WCG 0.09 +WCH2 0.31 +WCZ2 0.31 +WCZ3 0.31 +WNE1 -0.55 +YCB 0.45 +YCD1 0.31 +YCD2 0.31 +YCE1 0.31 +YCE2 0.31 +YCG 0.09 +YCZ 0.09 +YOH -0.17 + +# 3-letter codes + +HYPCD1 0.45 +HYPCG 0.02 +HYPN -0.92 +HYPOD2 -0.93 +PCACD -0.54 +PCAN 1.52 +PCAOE -0.68 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder.js new file mode 100755 index 000000000000..0c138b2c228b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder.js @@ -0,0 +1,3 @@ +Clazz.declarePackage("J.quantum.mo"); +Clazz.declareInterface(J.quantum.mo, "DataAdder"); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder11H.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder11H.js new file mode 100755 index 000000000000..bd020895a786 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder11H.js @@ -0,0 +1,19 @@ +Clazz.declarePackage("J.quantum.mo"); +Clazz.load(["J.quantum.mo.DataAdder"], "J.quantum.mo.DataAdder11H", null, function(){ +var c$ = Clazz.declareType(J.quantum.mo, "DataAdder11H", null, J.quantum.mo.DataAdder); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "addData", +function(calc, havePoints){ +switch (calc.normType) { +case 0: +default: +return false; +case 3: +return false; +case 1: +return false; +case 2: +return false; +} +}, "J.quantum.MOCalculation,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder13I.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder13I.js new file mode 100755 index 000000000000..686683748c3d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder13I.js @@ -0,0 +1,19 @@ +Clazz.declarePackage("J.quantum.mo"); +Clazz.load(["J.quantum.mo.DataAdder"], "J.quantum.mo.DataAdder13I", null, function(){ +var c$ = Clazz.declareType(J.quantum.mo, "DataAdder13I", null, J.quantum.mo.DataAdder); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "addData", +function(calc, havePoints){ +switch (calc.normType) { +case 0: +default: +return false; +case 3: +return false; +case 1: +return false; +case 2: +return false; +} +}, "J.quantum.MOCalculation,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder7F.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder7F.js new file mode 100755 index 000000000000..989d5b7e056e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder7F.js @@ -0,0 +1,145 @@ +Clazz.declarePackage("J.quantum.mo"); +Clazz.load(["J.quantum.mo.DataAdder"], "J.quantum.mo.DataAdder7F", null, function(){ +var c$ = Clazz.declareType(J.quantum.mo, "DataAdder7F", null, J.quantum.mo.DataAdder); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "addData", +function(calc, havePoints){ +var alpha; +var c1; +var a; +var x; +var y; +var z; +var xx; +var yy; +var zz; +var cxxx; +var cyyy; +var czzz; +var cxyy; +var cxxy; +var cxxz; +var cxzz; +var cyzz; +var cyyz; +var cxyz; +var af0; +var af1p; +var af1n; +var af2p; +var af2n; +var af3p; +var af3n; +var f0; +var f1p; +var f1n; +var f2p; +var f2n; +var f3p; +var f3n; +var norm1; +var norm2; +var norm3; +var c0_zzz = 1; +var c0_xxz_yyz = 0.6708203932499369; +var c1p_xzz = 1.0954451150103321; +var c1p_xxx = 0.6123724356957945; +var c1p_xyy = 0.27386127875258304; +var c2p_xxz_yyz = 0.8660254037844386; +var c2n_xyz = 1; +var c3p_xxx = 0.7905694150420949; +var c3p_xyy = 1.0606601717798214; +var normalizeAlpha = false; +switch (calc.normType) { +case 0: +default: +norm1 = norm2 = norm3 = 1; +break; +case 3: +norm1 = norm2 = norm3 = 1; +c0_zzz = 2; +c0_xxz_yyz = 3; +c1p_xxx = Math.sqrt(1.5); +c1p_xyy = c1p_xxx; +c1p_xzz = 4 * c1p_xxx; +c2p_xxz_yyz = Math.sqrt(15); +c2n_xyz = 2 * c2p_xxz_yyz; +c3p_xxx = Math.sqrt(2.5); +c3p_xyy = 3 * c3p_xxx; +break; +case 1: +norm1 = 5.701643762839922; +norm2 = 3.2918455612989796; +norm3 = 1.4721580892990938; +normalizeAlpha = true; +break; +case 2: +norm1 = Math.pow(66.05114251919257, 0.25); +norm2 = norm1 / 1.7320507764816284; +norm3 = 0.8660253882408142; +normalizeAlpha = true; +break; +} +var c1n_yzz = c1p_xzz; +var c1n_yyy = c1p_xxx; +var c1n_xxy = c1p_xyy; +var c3n_yyy = c3p_xxx; +var c3n_xxy = c3p_xyy; +var m0 = calc.coeffs[0]; +var m1p = calc.coeffs[1]; +var m1n = calc.coeffs[2]; +var m2p = calc.coeffs[3]; +var m2n = calc.coeffs[4]; +var m3p = calc.coeffs[5]; +var m3n = calc.coeffs[6]; +for (var ig = 0; ig < calc.nGaussians; ig++) { +alpha = calc.gaussians[calc.gaussianPtr + ig][0]; +c1 = calc.gaussians[calc.gaussianPtr + ig][1]; +a = c1; +if (normalizeAlpha) a *= Math.pow(alpha, 2.25); +af0 = a * m0; +af1p = a * m1p; +af1n = a * m1n; +af2p = a * m2p; +af2n = a * m2n; +af3p = a * m3p; +af3n = a * m3n; +calc.setE(calc.EX, alpha); +for (var ix = calc.xMax; --ix >= calc.xMin; ) { +x = calc.X[ix]; +xx = x * x; +var eX = calc.EX[ix]; +cxxx = norm3 * x * xx; +if (havePoints) calc.setMinMax(ix); +for (var iy = calc.yMax; --iy >= calc.yMin; ) { +y = calc.Y[iy]; +yy = y * y; +var eXY = eX * calc.EY[iy]; +cyyy = norm3 * y * yy; +cxyy = norm2 * x * yy; +cxxy = norm2 * xx * y; +var vd = calc.voxelDataTemp[ix][(havePoints ? 0 : iy)]; +for (var iz = calc.zMax; --iz >= calc.zMin; ) { +z = calc.Z[iz]; +zz = z * z; +czzz = norm3 * z * zz; +cxxz = norm2 * xx * z; +cxzz = norm2 * x * zz; +cyyz = norm2 * yy * z; +cyzz = norm2 * y * zz; +cxyz = norm1 * x * y * z; +f0 = af0 * (c0_zzz * czzz - c0_xxz_yyz * (cxxz + cyyz)); +f1p = af1p * (c1p_xzz * cxzz - c1p_xxx * cxxx - c1p_xyy * cxyy); +f1n = af1n * (c1n_yzz * cyzz - c1n_yyy * cyyy - c1n_xxy * cxxy); +f2p = af2p * (c2p_xxz_yyz * (cxxz - cyyz)); +f2n = af2n * c2n_xyz * cxyz; +f3p = af3p * (c3p_xxx * cxxx - c3p_xyy * cxyy); +f3n = -af3n * (c3n_yyy * cyyy - c3n_xxy * cxxy); +vd[(havePoints ? 0 : iz)] += (f0 + f1p + f1n + f2p + f2n + f3p + f3n) * eXY * calc.EZ[iz]; +} +} +} +} +return true; +}, "J.quantum.MOCalculation,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder9G.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder9G.js new file mode 100755 index 000000000000..14de4564998c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdder9G.js @@ -0,0 +1,19 @@ +Clazz.declarePackage("J.quantum.mo"); +Clazz.load(["J.quantum.mo.DataAdder"], "J.quantum.mo.DataAdder9G", null, function(){ +var c$ = Clazz.declareType(J.quantum.mo, "DataAdder9G", null, J.quantum.mo.DataAdder); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "addData", +function(calc, havePoints){ +switch (calc.normType) { +case 0: +default: +return false; +case 3: +return false; +case 1: +return false; +case 2: +return false; +} +}, "J.quantum.MOCalculation,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderF.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderF.js new file mode 100755 index 000000000000..cc751e1c6bee --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderF.js @@ -0,0 +1,120 @@ +Clazz.declarePackage("J.quantum.mo"); +Clazz.load(["J.quantum.mo.DataAdder"], "J.quantum.mo.DataAdderF", null, function(){ +var c$ = Clazz.declareType(J.quantum.mo, "DataAdderF", null, J.quantum.mo.DataAdder); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "addData", +function(calc, havePoints){ +var alpha; +var c1; +var a; +var x; +var y; +var z; +var xx; +var yy; +var zz; +var axxx; +var ayyy; +var azzz; +var axyy; +var axxy; +var axxz; +var axzz; +var ayzz; +var ayyz; +var axyz; +var cxxx; +var cyyy; +var czzz; +var cxyy; +var cxxy; +var cxxz; +var cxzz; +var cyzz; +var cyyz; +var cxyz; +var norm1; +var norm2; +var norm3; +var coeffs = calc.coeffs; +var normalizeAlpha = false; +switch (calc.normType) { +case 0: +default: +norm1 = norm2 = norm3 = 1; +break; +case 1: +norm1 = 5.701643762839922; +norm2 = 3.2918455612989796; +norm3 = 1.4721580892990938; +normalizeAlpha = true; +break; +case 2: +norm1 = calc.getContractionNormalization(3, 1); +norm2 = norm1; +norm3 = norm1; +normalizeAlpha = true; +break; +case 3: +norm1 = Math.sqrt(15); +norm2 = Math.sqrt(5); +norm3 = 1; +break; +} +var mxxx = coeffs[0]; +var myyy = coeffs[1]; +var mzzz = coeffs[2]; +var mxyy = coeffs[3]; +var mxxy = coeffs[4]; +var mxxz = coeffs[5]; +var mxzz = coeffs[6]; +var myzz = coeffs[7]; +var myyz = coeffs[8]; +var mxyz = coeffs[9]; +for (var ig = 0; ig < calc.nGaussians; ig++) { +alpha = calc.gaussians[calc.gaussianPtr + ig][0]; +c1 = calc.gaussians[calc.gaussianPtr + ig][1]; +calc.setE(calc.EX, alpha); +a = c1; +if (normalizeAlpha) a *= Math.pow(alpha, 2.25); +axxx = a * norm3 * mxxx; +ayyy = a * norm3 * myyy; +azzz = a * norm3 * mzzz; +axyy = a * norm2 * mxyy; +axxy = a * norm2 * mxxy; +axxz = a * norm2 * mxxz; +axzz = a * norm2 * mxzz; +ayzz = a * norm2 * myzz; +ayyz = a * norm2 * myyz; +axyz = a * norm1 * mxyz; +for (var ix = calc.xMax; --ix >= calc.xMin; ) { +x = calc.X[ix]; +xx = x * x; +var Ex = calc.EX[ix]; +cxxx = axxx * xx * x; +if (havePoints) calc.setMinMax(ix); +for (var iy = calc.yMax; --iy >= calc.yMin; ) { +y = calc.Y[iy]; +yy = y * y; +var Exy = Ex * calc.EY[iy]; +cyyy = ayyy * yy * y; +cxxy = axxy * xx * y; +cxyy = axyy * x * yy; +var vd = calc.voxelDataTemp[ix][(havePoints ? 0 : iy)]; +for (var iz = calc.zMax; --iz >= calc.zMin; ) { +z = calc.Z[iz]; +zz = z * z; +czzz = azzz * zz * z; +cxxz = axxz * xx * z; +cxzz = axzz * x * zz; +cyyz = ayyz * yy * z; +cyzz = ayzz * y * zz; +cxyz = axyz * x * y * z; +vd[(havePoints ? 0 : iz)] += (cxxx + cyyy + czzz + cxyy + cxxy + cxxz + cxzz + cyzz + cyyz + cxyz) * Exy * calc.EZ[iz]; +} +} +} +} +return true; +}, "J.quantum.MOCalculation,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderG.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderG.js new file mode 100755 index 000000000000..b488eda2bc05 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderG.js @@ -0,0 +1,19 @@ +Clazz.declarePackage("J.quantum.mo"); +Clazz.load(["J.quantum.mo.DataAdder"], "J.quantum.mo.DataAdderG", null, function(){ +var c$ = Clazz.declareType(J.quantum.mo, "DataAdderG", null, J.quantum.mo.DataAdder); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "addData", +function(calc, havePoints){ +switch (calc.normType) { +case 0: +default: +return false; +case 3: +return false; +case 1: +return false; +case 2: +return false; +} +}, "J.quantum.MOCalculation,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderH.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderH.js new file mode 100755 index 000000000000..d88d6ec836e0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderH.js @@ -0,0 +1,19 @@ +Clazz.declarePackage("J.quantum.mo"); +Clazz.load(["J.quantum.mo.DataAdder"], "J.quantum.mo.DataAdderH", null, function(){ +var c$ = Clazz.declareType(J.quantum.mo, "DataAdderH", null, J.quantum.mo.DataAdder); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "addData", +function(calc, havePoints){ +switch (calc.normType) { +case 0: +default: +return false; +case 3: +return false; +case 1: +return false; +case 2: +return false; +} +}, "J.quantum.MOCalculation,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderI.js b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderI.js new file mode 100755 index 000000000000..97b1f66551bd --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/mo/DataAdderI.js @@ -0,0 +1,19 @@ +Clazz.declarePackage("J.quantum.mo"); +Clazz.load(["J.quantum.mo.DataAdder"], "J.quantum.mo.DataAdderI", null, function(){ +var c$ = Clazz.declareType(J.quantum.mo, "DataAdderI", null, J.quantum.mo.DataAdder); +/*LV!1824 unnec constructor*/Clazz.overrideMethod(c$, "addData", +function(calc, havePoints){ +switch (calc.normType) { +case 0: +default: +return false; +case 3: +return false; +case 1: +return false; +case 2: +return false; +} +}, "J.quantum.MOCalculation,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/quantum/nmr_data.txt b/config/plugins/visualizations/jmol/static/j2s/J/quantum/nmr_data.txt new file mode 100755 index 000000000000..b2406179f02a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/quantum/nmr_data.txt @@ -0,0 +1,83 @@ +#extracted by Simone Sturniolo from ROBIN K. HARRIS, EDWIN D. BECKER, SONIA M. CABRAL DE MENEZES, ROBIN GOODFELLOW, AND PIERRE GRANGER, Pure Appl. Chem., Vol. 73, No. 11, pp. 1795�1818, 2001. NMR NOMENCLATURE. NUCLEAR SPIN PROPERTIES AND CONVENTIONS FOR CHEMICAL SHIFTS (IUPAC Recommendations 2001) +#element atomNo isotopeDef isotope1 G1 Q1 isotope2 G2 Q2 isotope3 G3 Q3 +H 1 1 1 26.7522128 0 2 4.10662791 0.00286 3 28.5349779 0 +He 2 3 3 -20.3801587 0 +Li 3 7 6 3.9371709 -0.000808 7 10.3977013 -0.0401 +Be 4 9 9 -3.759666 0.05288 +B 5 11 10 2.8746786 0.08459 11 8.5847044 0.04059 +C 6 13 13 6.728284 0 +N 7 14 14 1.9337792 0.02044 15 -2.71261804 0 +O 8 17 17 -3.62808 -0.02558 +F 9 19 19 25.18148 -0.0942 +Ne 10 21 21 -2.11308 0.10155 +Na 11 23 23 7.0808493 0.104 +Mg 12 25 25 -1.63887 0.1994 +Al 13 27 27 6.9762715 0.1466 +Si 14 29 29 -5.319 0 +P 15 31 31 10.8394 0 +S 16 33 33 2.055685 -0.0678 +Cl 17 35 35 2.624198 -0.08165 37 2.184368 -0.06435 +K 19 39 40 -1.5542854 -0.073 41 0.68606808 0.0711 39 1.2500608 0.0585 +Ca 20 43 43 -1.803069 -0.0408 +Sc 21 45 45 6.5087973 -0.22 +Ti 22 49 49 -1.51095 0.247 47 -1.5105 0.302 +V 23 51 50 2.670649 0.21 51 7.0455117 -0.052 +Cr 24 53 53 -1.5152 -0.15 +Mn 25 55 55 6.6452546 0.33 +Fe 26 57 57 0.8680624 0.16 +Co 27 59 59 6.332 0.42 +Ni 28 61 61 -2.3948 0.162 +Cu 29 65 65 7.60435 -0.204 63 7.111789 -0.22 +Zn 30 67 67 1.676688 0.15 +Ga 31 71 69 6.438855 0.171 71 8.181171 0.107 +Ge 32 73 73 -0.9360303 -0.196 +As 33 75 75 4.596163 0.314 +Se 34 77 77 5.1253857 0.76 +Br 35 81 81 7.249776 0.262 79 6.725616 0.313 +Kr 36 83 83 -1.0331 0.259 +Rb 37 87 85 2.592705 0.276 87 8.7864 0.1335 +Sr 38 87 87 -1.1639376 0.305 +Y 39 89 89 -1.3162791 0 +Zr 40 91 91 -2.49743 -0.176 +Nb 41 93 93 6.5674 -0.32 +Mo 42 95 97 -1.788 0.255 95 1.751 -0.022 +Ru 44 99 99 -1.229 0.079 +Tc 43 99 99 6.046 -0.129 +Rh 45 103 103 -0.8468 0 +Pd 46 105 105 -1.23 0.66 +Ag 47 109 107 -1.0889181 0 109 -1.2518634 0 +Cd 48 113 113 -5.9609155 0 111 -5.6983131 0 +In 49 115 113 5.8845 0.759 115 5.8972 0.77 +Sn 50 119 115 -8.8013 0 117 -9.58879 0 119 -10.0317 -0.132 +Sb 51 121 121 6.4435 -0.543 123 3.4892 -0.692 +Te 52 125 123 -7.059098 0 125 -8.5108404 0 +I 53 127 127 5.389573 -0.696 +Xe 54 129 129 -7.452103 0 131 2.209076 -0.114 +Cs 55 133 133 3.5332539 -0.00343 +Ba 56 137 137 2.99295 0.245 135 2.6755 0.16 +La 57 139 138 3.557239 0.45 139 3.8083318 0.2 +Pr 59 141 141 8.1907 -0.0589 +Nd 60 145 145 -0.898 -0.33 143 -1.457 -0.63 +Sm 62 147 147 -1.115 -0.259 149 -0.9192 0.075 +Eu 63 153 153 2.9369 2.412 151 6.651 0.903 +Gd 64 155 155 -0.82132 1.27 157 -1.0769 1.35 +Tb 65 159 159 6.431 1.432 +Dy 66 161 161 -0.9201 2.507 163 1.289 2.648 +Ho 67 165 165 5.71 3.58 +Er 68 167 167 -0.77157 3.565 +Tm 69 169 169 -2.218 -1.2 +Yb 70 171 171 4.7288 0 173 -1.3025 2.8 +Lu 71 176 176 2.1684 4.97 175 3.0552 3.49 +Hf 72 179 177 1.086 3.365 179 -6.82E-08 3.793 +Ta 73 181 181 3.2438 3.17 +W 74 183 183 1.1282403 0 +Re 75 187 185 6.1057 2.18 187 6.1682 2.07 +Os 76 187 187 0.6192895 0 189 2.10713 0.856 +Ir 77 193 193 0.5227 0.751 191 0.4812 0.816 +Pt 78 195 195 5.8385 0 +Au 79 197 197 0.47306 0.547 +Hg 80 199 201 -1.788769 0.387 199 4.8457916 0 +Tl 81 205 203 15.5393338 0 205 15.6921808 0 +Pb 82 207 207 5.58046 0 +Bi 83 209 209 4.375 -0.516 +U 92 235 235 -0.52 4.936 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/AxesRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/AxesRenderer.js new file mode 100755 index 000000000000..4975fb2a68d4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/AxesRenderer.js @@ -0,0 +1,161 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.CageRenderer", "JU.P3"], "J.render.AxesRenderer", ["JV.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.originScreen = null; +this.colixes = null; +this.pt000 = null; +this.ptTemp = null; +Clazz.instantialize(this, arguments);}, J.render, "AxesRenderer", J.render.CageRenderer); +Clazz.prepareFields (c$, function(){ +this.originScreen = new JU.P3(); +this.colixes = Clazz.newShortArray (3, 0); +this.ptTemp = new JU.P3(); +}); +Clazz.overrideMethod(c$, "initRenderer", +function(){ +this.endcap = 2; +this.draw000 = false; +}); +Clazz.overrideMethod(c$, "render", +function(){ +var axes = this.shape; +var mad10 = this.vwr.getObjectMad10(1); +var isXY = (axes.axisXY.z != 0); +if (mad10 == 0 || !this.g3d.checkTranslucent(false)) return false; +if (isXY ? this.exportType == 1 : this.tm.isNavigating() && this.vwr.getBoolean(603979890)) return false; +var modelIndex = this.vwr.am.cmi; +if (this.ms.isJmolDataFrameForModel(modelIndex) && !this.ms.getJmolFrameType(modelIndex).equals("plot data")) return false; +var isUnitCell = (this.vwr.g.axesMode == 603979808); +var unitcell = (isUnitCell ? this.vwr.getCurrentUnitCell() : null); +if (isUnitCell && (unitcell == null || modelIndex < 0)) return false; +this.imageFontScaling = this.vwr.imageFontScaling; +if (this.vwr.areAxesTainted()) axes.reinitShape(); +this.font3d = this.vwr.gdata.getFont3DScaled(axes.font3d, this.imageFontScaling); +isUnitCell = isUnitCell && (unitcell != null && this.ms.unitCells != null); +var axisType = (isUnitCell ? axes.axisType : null); +var isabcxyz = (isXY && isUnitCell && axes.axes2 != null); +this.isPolymer = isUnitCell && unitcell.isPolymer(); +this.isSlab = isUnitCell && unitcell.isSlab(); +var scale = axes.scale; +if (isabcxyz) { +if ("xyzabc".equals(axes.axes2)) this.render1(axes, mad10, false, axisType, isUnitCell, 2, null); +if (!"abc".equals(axes.axes2)) this.vwr.setBooleanProperty("axesmolecular", true); +axes.reinitShape(); +this.render1(axes, mad10, true, null, false, scale, axes.axes2); +this.vwr.setBooleanProperty("axesunitcell", true); +} else { +this.render1(axes, mad10, isXY, axisType, isUnitCell, scale, null); +}return true; +}); +Clazz.defineMethod(c$, "render1", +function(axes, mad10, isXY, axisType, isUnitCell, scale, labels2){ +var isDataFrame = this.vwr.isJmolDataFrame(); +this.pt000 = (isDataFrame ? this.pt0 : axes.originPoint); +var nPoints = 6; +var labelPtr = 0; +if (isUnitCell) { +nPoints = 3; +labelPtr = 6; +} else if (isXY) { +nPoints = 3; +labelPtr = 9; +} else if (this.vwr.g.axesMode == 603979809) { +nPoints = 6; +labelPtr = (this.vwr.getBoolean(603979806) ? 15 : 9); +}if (axes.labels != null) { +if (nPoints != 3) nPoints = (axes.labels.length < 6 ? 3 : 6); +labelPtr = -1; +}var slab = this.vwr.gdata.slab; +var diameter = mad10; +var drawTicks = false; +this.ptTemp.setT(this.originScreen); +var checkAxisType = (labels2 == null && axisType != null && (isXY || this.vwr.getFloat(570425345) != 0 || axes.fixedOrigin != null)); +if (isXY) { +if (mad10 >= 20) { +diameter = (mad10 > 500 ? 3 : Clazz.doubleToInt(mad10 / 200)); +if (diameter == 0) diameter = 2; +}if (this.g3d.isAntialiased()) diameter += diameter; +this.g3d.setSlab(0); +this.ptTemp.setT(axes.axisXY); +this.pt0i.setT(this.tm.transformPt2D(this.ptTemp)); +if (this.ptTemp.x < 0) { +var offx = Clazz.floatToInt(this.ptTemp.x); +var offy = Clazz.floatToInt(this.ptTemp.x); +this.pointT.setT(this.pt000); +for (var i = 0; i < 3; i++) this.pointT.add(axes.getAxisPoint(i, false, this.ptTemp)); + +this.pt0i.setT(this.tm.transformPt(this.pt000)); +this.pt2i.scaleAdd(-1, this.pt0i, this.tm.transformPt(this.pointT)); +if (this.pt2i.x < 0) offx = -offx; +if (this.pt2i.y < 0) offy = -offy; +this.pt0i.x += offx; +this.pt0i.y += offy; +}this.ptTemp.set(this.pt0i.x, this.pt0i.y, this.pt0i.z); +var zoomDimension = this.vwr.getScreenDim(); +var scaleFactor = zoomDimension / 10 * scale; +if (this.g3d.isAntialiased()) scaleFactor *= 2; +if ((isUnitCell || "abc".equals(axes.axes2)) && isXY) scaleFactor /= 2; +for (var i = 0; i < 3; i++) { +var pt = this.p3Screens[i]; +this.tm.rotatePoint(axes.getAxisPoint(i, false, this.pointT), pt); +pt.z *= -1; +pt.scaleAdd2(scaleFactor, pt, this.ptTemp); +} +} else { +drawTicks = (axes.tickInfos != null); +if (drawTicks) { +this.checkTickTemps(); +this.tickA.setT(this.pt000); +}this.tm.transformPtNoClip(this.pt000, this.ptTemp); +diameter = this.getDiameter(Clazz.floatToInt(this.ptTemp.z), mad10); +for (var i = nPoints; --i >= 0; ) this.tm.transformPtNoClip(axes.getAxisPoint(i, !isDataFrame, this.pointT), this.p3Screens[i]); + +}var xCenter = this.ptTemp.x; +var yCenter = this.ptTemp.y; +this.colixes[0] = this.vwr.getObjectColix(1); +this.colixes[1] = this.vwr.getObjectColix(2); +this.colixes[2] = this.vwr.getObjectColix(3); +var showOrigin = (!isXY && nPoints == 3 && (scale == 2 || isUnitCell)); +for (var i = nPoints; --i >= 0; ) { +if (labels2 != null && i >= labels2.length || checkAxisType && !axisType.contains(JV.JC.axesTypes[i]) || this.exportType != 1 && (Math.abs(xCenter - this.p3Screens[i].x) + Math.abs(yCenter - this.p3Screens[i].y) <= 2) && (!(showOrigin = false))) { +continue; +}this.colix = this.colixes[i % 3]; +this.g3d.setC(this.colix); +var label = (labels2 != null ? labels2.substring(i, i + 1) : axes.labels == null ? JV.JC.axisLabels[i + labelPtr] : i < axes.labels.length ? axes.labels[i] : null); +if (label != null && label.length > 0) this.renderLabel(label, this.p3Screens[i].x, this.p3Screens[i].y, this.p3Screens[i].z, xCenter, yCenter); +if (drawTicks) { +this.tickInfo = axes.tickInfos[(i % 3) + 1]; +if (this.tickInfo == null) this.tickInfo = axes.tickInfos[0]; +if (this.tickInfo != null) { +this.tickB.setT(axes.getAxisPoint(i, isDataFrame || isUnitCell, this.pointT)); +this.tickInfo.first = 0; +this.tickInfo.signFactor = (i % 6 >= 3 ? -1 : 1); +}}var d = (this.isSlab && i == 2 || this.isPolymer && i > 0 ? -4 : diameter); +this.renderLine(this.ptTemp, this.p3Screens[i], d, drawTicks && this.tickInfo != null); +} +if (showOrigin) { +var label0 = (axes.labels == null || axes.labels.length == 3 || axes.labels[3] == null ? "0" : axes.labels[3]); +if (label0 != null && label0.length != 0) { +this.colix = this.vwr.cm.colixBackgroundContrast; +this.g3d.setC(this.colix); +this.renderLabel(label0, xCenter, yCenter, this.ptTemp.z, xCenter, yCenter); +}}if (isXY) this.g3d.setSlab(slab); +}, "J.shape.Axes,~N,~B,~S,~B,~N,~S"); +Clazz.defineMethod(c$, "renderLabel", +function(str, x, y, z, xCenter, yCenter){ +var strAscent = this.font3d.getAscent(); +var strWidth = this.font3d.stringWidth(str); +var dx = x - xCenter; +var dy = y - yCenter; +if ((dx != 0 || dy != 0)) { +var dist = Math.sqrt(dx * dx + dy * dy); +dx = (strWidth * 0.75 * dx / dist); +dy = (strAscent * 0.75 * dy / dist); +x += dx; +y += dy; +}var xStrBaseline = Math.floor(x - strWidth / 2); +var yStrBaseline = Math.floor(y + strAscent / 2); +this.g3d.drawString(str, this.font3d, Clazz.doubleToInt(xStrBaseline), Clazz.doubleToInt(yStrBaseline), Clazz.floatToInt(z), Clazz.floatToInt(z), 0); +}, "~S,~N,~N,~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/BallsRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/BallsRenderer.js new file mode 100755 index 000000000000..23d85b00048c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/BallsRenderer.js @@ -0,0 +1,22 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.ShapeRenderer"], "J.render.BallsRenderer", ["J.shape.Shape"], function(){ +var c$ = Clazz.declareType(J.render, "BallsRenderer", J.render.ShapeRenderer); +Clazz.overrideMethod(c$, "render", +function(){ +var needTranslucent = false; +if (this.isExport || this.vwr.checkMotionRendering(1153433601)) { +var atoms = this.ms.at; +var colixes = (this.shape).colixes; +var bsOK = this.vwr.shm.bsRenderableAtoms; +for (var i = bsOK.nextSetBit(0); i >= 0; i = bsOK.nextSetBit(i + 1)) { +var atom = atoms[i]; +if (atom.sD > 0 && (atom.shapeVisibilityFlags & this.myVisibilityFlag) != 0) { +if (this.g3d.setC(colixes == null ? atom.colixAtom : J.shape.Shape.getColix(colixes, i, atom))) { +this.g3d.drawAtom(atom, 0); +} else { +needTranslucent = true; +}}} +}return needTranslucent; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/BbcageRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/BbcageRenderer.js new file mode 100755 index 000000000000..b92b2e6c684b --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/BbcageRenderer.js @@ -0,0 +1,18 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.CageRenderer"], "J.render.BbcageRenderer", ["JU.BoxInfo"], function(){ +var c$ = Clazz.declareType(J.render, "BbcageRenderer", J.render.CageRenderer); +Clazz.overrideMethod(c$, "initRenderer", +function(){ +this.tickEdges = JU.BoxInfo.bbcageTickEdges; +}); +Clazz.overrideMethod(c$, "render", +function(){ +var bbox = this.shape; +var hiddenLines = (this.vwr.getBoolean(603979856)); +if (bbox.isVisible && (this.isExport || this.g3d.checkTranslucent(false)) && !this.vwr.isJmolDataFrame()) { +this.colix = this.vwr.getObjectColix(4); +this.renderCage(this.vwr.getObjectMad10(4), this.ms.getBBoxVertices(), (hiddenLines ? JU.BoxInfo.facePoints : null), null, 0, 0xFF, 0xFF, 1); +}return false; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/CageRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/CageRenderer.js new file mode 100755 index 000000000000..d71e9632a872 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/CageRenderer.js @@ -0,0 +1,81 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.FontLineShapeRenderer", "JU.P3"], "J.render.CageRenderer", ["JU.BS", "$.Measure", "JU.BoxInfo"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.p3Screens = null; +this.tickEdges = null; +this.isSlab = false; +this.isPolymer = false; +this.pt = null; +Clazz.instantialize(this, arguments);}, J.render, "CageRenderer", J.render.FontLineShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.p3Screens = new Array(8); +{ +for (var i = 8; --i >= 0; ) this.p3Screens[i] = new JU.P3(); + +}this.pt = new JU.P3(); +}); +Clazz.defineMethod(c$, "renderCage", +function(mad, vertices, faces, axisPoints, firstLine, allowedEdges0, allowedEdges1, scale){ +this.g3d.setC(this.colix); +var fls = this.shape; +var hiddenLines = (faces != null); +this.imageFontScaling = this.vwr.imageFontScaling; +this.font3d = this.vwr.gdata.getFont3DScaled(fls.font3d, this.imageFontScaling); +var zSum = 0; +for (var i = 8; --i >= 0; ) { +this.pt.setT(vertices[i]); +if (scale != 1) { +this.pt.sub(vertices[0]); +this.pt.scaleAdd2(scale, this.pt, vertices[0]); +}this.tm.transformPtNoClip(this.pt, this.p3Screens[i]); +zSum += this.p3Screens[i].z; +} +var bsSolid = null; +if (hiddenLines) { +bsSolid = new JU.BS(); +for (var i = 12; --i >= 0; ) { +var face = faces[i]; +JU.Measure.getNormalThroughPoints(this.p3Screens[face[0]], this.p3Screens[face[1]], this.p3Screens[face[2]], this.pt1, this.pt); +if (this.pt1.z <= 0) { +bsSolid.set(face[0]); +bsSolid.set(face[1]); +bsSolid.set(face[2]); +}} +}var diameter = this.getDiameter(Clazz.doubleToInt(Math.floor(zSum / 8)), mad); +var axisPt = 2; +var edge = String.fromCharCode(0); +allowedEdges0 &= (this.isPolymer ? 0x1 : this.isSlab ? 0x55 : 0xFF); +allowedEdges1 &= (this.isPolymer ? 0x10 : this.isSlab ? 0x55 : 0xFF); +for (var i = firstLine * 2; i < 24; i += 2) { +var d = diameter; +var edge0 = JU.BoxInfo.edges[i]; +var edge1 = JU.BoxInfo.edges[i + 1]; +if (hiddenLines && (!bsSolid.get(edge0) || !bsSolid.get(edge1))) d = -Math.abs(diameter); +if (axisPoints != null && edge0 == 0) this.tm.transformPtNoClip(axisPoints[axisPt--], this.p3Screens[0]); +if ((allowedEdges0 & (1 << edge0)) == 0 || (allowedEdges1 & (1 << edge1)) == 0) continue; +var drawTicks = (fls.tickInfos != null && (edge = this.tickEdges[i >> 1]).charCodeAt(0) != 0); +if (drawTicks) { +this.checkTickTemps(); +this.tickA.setT(vertices[edge0]); +this.tickB.setT(vertices[edge1]); +var start = 0; +if (Clazz.instanceOf(this.shape,"J.shape.Bbcage")) switch ((edge).charCodeAt(0)) { +case 120: +start = this.tickA.x; +break; +case 121: +start = this.tickA.y; +break; +case 122: +start = this.tickA.z; +break; +} +this.tickInfo = fls.tickInfos["xyz".indexOf(edge) + 1]; +if (this.tickInfo == null) this.tickInfo = fls.tickInfos[0]; +if (this.tickInfo == null) drawTicks = false; + else this.tickInfo.first = start; +}this.renderLine(this.p3Screens[edge0], this.p3Screens[edge1], d, drawTicks); +} +}, "~N,~A,~A,~A,~N,~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/EchoRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/EchoRenderer.js new file mode 100755 index 000000000000..2feab1ebcb71 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/EchoRenderer.js @@ -0,0 +1,57 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.LabelsRenderer"], "J.render.EchoRenderer", ["J.render.TextRenderer", "JU.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.haveTranslucent = false; +Clazz.instantialize(this, arguments);}, J.render, "EchoRenderer", J.render.LabelsRenderer); +Clazz.overrideMethod(c$, "render", +function(){ +if (this.vwr.isPreviewOnly) return false; +var echo = this.shape; +this.sppm = (this.vwr.getBoolean(603979847) ? this.vwr.getScalePixelsPerAngstrom(true) * 10000 : 0); +this.imageFontScaling = this.vwr.imageFontScaling; +this.haveTranslucent = false; +var alias = (this.g3d.isAntialiased() ? 4 : 0); +for (var t, $t = echo.objects.values().iterator (); $t.hasNext()&& ((t = $t.next ()) || true);) { +this.renderEcho(t, alias); +} +if (echo.scaleObject != null) this.renderEcho(echo.scaleObject, alias); +if (!this.isExport) { +var frameTitle = this.vwr.getFrameTitle(); +if (frameTitle != null && frameTitle.length > 0) { +if (this.g3d.setC(this.vwr.cm.colixBackgroundContrast)) { +this.renderFrameTitle(this.vwr.formatText(frameTitle)); +}}}return this.haveTranslucent; +}); +Clazz.defineMethod(c$, "renderEcho", +function(t, alias){ +if (!t.visible || t.hidden) { +return; +}if (Clazz.instanceOf(t.pointerPt,"JM.Atom")) { +if (!(t.pointerPt).checkVisible()) return; +}if (t.valign == 4) J.render.TextRenderer.calcBarPixelsXYZ(this.vwr, t, this.pt0i, true); +if (t.pymolOffset != null) t.getPymolScreenOffset(t.xyz, this.pt0i, this.zSlab, this.pTemp, this.sppm); + else if (t.movableZPercent != 2147483647) { +var z = this.vwr.tm.zValueFromPercent(t.movableZPercent % 1000); +if (t.valign == 4 && Math.abs(t.movableZPercent) >= 1000) z = this.pt0i.z - this.vwr.tm.zValueFromPercent(0) + z; +t.setZs(z, z); +}if (t.pointerPt == null) { +t.pointer = 0; +} else { +t.pointer = 1; +this.tm.transformPtScr(t.pointerPt, this.pt0i); +t.atomX = this.pt0i.x; +t.atomY = this.pt0i.y; +t.atomZ = this.pt0i.z; +if (t.zSlab == -2147483648) t.zSlab = 1; +}if (J.render.TextRenderer.render(this.vwr, t, this.g3d, this.sppm, this.imageFontScaling, null, this.xy, this.pt2i, 0, 0, alias) && t.valign == 1 && t.align == 12) this.vwr.noFrankEcho = false; +if (JU.C.renderPass2(t.bgcolix) || JU.C.renderPass2(t.colix)) this.haveTranslucent = true; +}, "JM.Text,~N"); +Clazz.defineMethod(c$, "renderFrameTitle", +function(frameTitle){ +this.vwr.gdata.setFontBold("arial", Clazz.floatToInt(24 * this.imageFontScaling)); +var y = Clazz.doubleToInt(Math.floor(this.vwr.getScreenHeight() * (this.g3d.isAntialiased() ? 2 : 1) - 10 * this.imageFontScaling)); +var x = Clazz.doubleToInt(Math.floor(5 * this.imageFontScaling)); +this.g3d.drawStringNoSlab(frameTitle, null, x, y, 0, 0); +}, "~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/FontLineShapeRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/FontLineShapeRenderer.js new file mode 100755 index 000000000000..405f7b7ccd5c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/FontLineShapeRenderer.js @@ -0,0 +1,242 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.ShapeRenderer", "JU.P3", "$.P3i", "$.V3"], "J.render.FontLineShapeRenderer", ["JU.PT"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.colixA = 0; +this.colixB = 0; +this.dotsOrDashes = false; +this.dashDots = null; +this.asLineOnly = false; +this.imageFontScaling = 0; +this.tickA = null; +this.tickB = null; +this.tickAs = null; +this.tickBs = null; +this.font3d = null; +this.pt0i = null; +this.pt2i = null; +this.s1 = null; +this.s2 = null; +this.pointT = null; +this.pointT2 = null; +this.pointT3 = null; +this.vectorT = null; +this.vectorT2 = null; +this.vectorT3 = null; +this.tickInfo = null; +this.draw000 = true; +this.width = 0; +this.endcap = 3; +this.pt0 = null; +this.pt1 = null; +Clazz.instantialize(this, arguments);}, J.render, "FontLineShapeRenderer", J.render.ShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.pt0i = new JU.P3i(); +this.pt2i = new JU.P3i(); +this.s1 = new JU.P3i(); +this.s2 = new JU.P3i(); +this.pointT = new JU.P3(); +this.pointT2 = new JU.P3(); +this.pointT3 = new JU.P3(); +this.vectorT = new JU.V3(); +this.vectorT2 = new JU.V3(); +this.vectorT3 = new JU.V3(); +this.pt0 = new JU.P3(); +this.pt1 = new JU.P3(); +}); +Clazz.defineMethod(c$, "getDiameter", +function(z, mad10OrPixels){ +var diameter; +var isMad10 = (mad10OrPixels > 20); +switch (this.exportType) { +case 1: +diameter = (isMad10 ? mad10OrPixels : Clazz.doubleToInt(Math.floor(this.vwr.tm.unscaleToScreen(z, mad10OrPixels * 2 / 10) * 1000))); +break; +default: +if (isMad10) { +diameter = Clazz.floatToInt(this.vwr.tm.scaleToScreen(z, Clazz.doubleToInt(mad10OrPixels / 10))); +} else { +if (this.g3d.isAntialiased()) mad10OrPixels += mad10OrPixels; +diameter = mad10OrPixels; +}} +return diameter; +}, "~N,~N"); +Clazz.defineMethod(c$, "renderLine", +function(p0, p1, diameter, drawTicks){ +if (diameter < 0) this.g3d.drawDashedLineBits(8, 4, p0, p1); + else this.g3d.fillCylinderBits(this.endcap, (this.exportType == 1 ? -diameter : diameter), p0, p1); +if (!drawTicks || this.tickInfo == null) return; +this.checkTickTemps(); +this.tickAs.setT(p0); +this.tickBs.setT(p1); +this.drawTicks(diameter, true); +}, "JU.P3,JU.P3,~N,~B"); +Clazz.defineMethod(c$, "checkTickTemps", +function(){ +if (this.tickA == null) { +this.tickA = new JU.P3(); +this.tickB = new JU.P3(); +this.tickAs = new JU.P3(); +this.tickBs = new JU.P3(); +}}); +Clazz.defineMethod(c$, "drawTicks", +function(diameter, withLabels){ +if (Float.isNaN(this.tickInfo.first)) this.tickInfo.first = 0; +this.drawTicks2(this.tickInfo.ticks.x, 8, diameter, (!withLabels ? null : this.tickInfo.tickLabelFormats == null ? Clazz.newArray(-1, ["%0.2f"]) : this.tickInfo.tickLabelFormats)); +this.drawTicks2(this.tickInfo.ticks.y, 4, diameter, null); +this.drawTicks2(this.tickInfo.ticks.z, 2, diameter, null); +}, "~N,~B"); +Clazz.defineMethod(c$, "drawTicks2", +function(dx, length, diameter, formats){ +if (dx == 0) return; +if (this.g3d.isAntialiased()) length *= 2; +this.vectorT2.set(this.tickBs.x, this.tickBs.y, 0); +this.vectorT.set(this.tickAs.x, this.tickAs.y, 0); +this.vectorT2.sub(this.vectorT); +if (this.vectorT2.length() < 50) return; +var signFactor = this.tickInfo.signFactor; +this.vectorT.sub2(this.tickB, this.tickA); +var d0 = this.vectorT.length(); +if (this.tickInfo.scale != null) { +if (Float.isNaN(this.tickInfo.scale.x)) { +var a = this.vwr.getUnitCellInfo(0); +if (!Float.isNaN(a)) this.vectorT.set(this.vectorT.x / a, this.vectorT.y / this.vwr.getUnitCellInfo(1), this.vectorT.z / this.vwr.getUnitCellInfo(2)); +} else { +this.vectorT.set(this.vectorT.x * this.tickInfo.scale.x, this.vectorT.y * this.tickInfo.scale.y, this.vectorT.z * this.tickInfo.scale.z); +}}var d = this.vectorT.length() + 0.0001 * dx; +if (d < dx) return; +var f = dx / d * d0 / d; +this.vectorT.scale(f); +var dz = (this.tickBs.z - this.tickAs.z) / (d / dx); +d += this.tickInfo.first; +var p = (Clazz.doubleToInt(Math.floor(this.tickInfo.first / dx))) * dx - this.tickInfo.first; +this.pointT.scaleAdd2(p / dx, this.vectorT, this.tickA); +p += this.tickInfo.first; +var z = this.tickAs.z; +if (diameter < 0) diameter = 1; +this.vectorT2.set(-this.vectorT2.y, this.vectorT2.x, 0); +this.vectorT2.scale(length / this.vectorT2.length()); +var ptRef = this.tickInfo.reference; +if (ptRef == null) { +this.pointT3.setT(this.vwr.getBoundBoxCenter()); +if (this.vwr.g.axesMode == 603979809) { +this.pointT3.add3(1, 1, 1); +}} else { +this.pointT3.setT(ptRef); +}this.tm.transformPtScr(this.pointT3, this.pt2i); +var horizontal = (Math.abs(this.vectorT2.x / this.vectorT2.y) < 0.2); +var centerX = horizontal; +var centerY = !horizontal; +var rightJustify = !centerX && (this.vectorT2.x < 0); +var drawLabel = (formats != null && formats.length > 0); +var x; +var y; +var val = new Array(1); +var i = (this.draw000 ? 0 : -1); +while (p < d) { +if (p >= this.tickInfo.first) { +this.pointT2.setT(this.pointT); +this.tm.transformPt3f(this.pointT2, this.pointT2); +this.drawLine(Clazz.doubleToInt(Math.floor(this.pointT2.x)), Clazz.doubleToInt(Math.floor(this.pointT2.y)), Clazz.floatToInt(z), (x = Clazz.doubleToInt(Math.floor(this.pointT2.x + this.vectorT2.x))), (y = Clazz.doubleToInt(Math.floor(this.pointT2.y + this.vectorT2.y))), Clazz.floatToInt(z), diameter); +if (drawLabel && (this.draw000 || p != 0)) { +val[0] = Float.$valueOf((p == 0 ? 0 : p * signFactor)); +var s = JU.PT.sprintf(formats[i % formats.length], "f", val); +this.drawString(x, y, Clazz.floatToInt(z), 4, rightJustify, centerX, centerY, Clazz.doubleToInt(Math.floor(this.pointT2.y)), s); +}}this.pointT.add(this.vectorT); +p += dx; +z += dz; +i++; +} +}, "~N,~N,~N,~A"); +Clazz.defineMethod(c$, "drawLine", +function(x1, y1, z1, x2, y2, z2, diameter){ +return this.drawLine2(this.g3d, x1, y1, z1, x2, y2, z2, diameter); +}, "~N,~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "drawLine2", +function(g3d, x1, y1, z1, x2, y2, z2, diameter){ +this.pt0.set(x1, y1, z1); +this.pt1.set(x2, y2, z2); +if (!this.dotsOrDashes) { +if (diameter < 0) { +g3d.drawDashedLineBits(8, 4, this.pt0, this.pt1); +return 1; +}g3d.fillCylinderBits(2, diameter, this.pt0, this.pt1); +} else if (this.dashDots != null) { +var renderD = (!this.isExport || this.mad == 1 ? this.width : this.mad); +J.render.FontLineShapeRenderer.drawDashedCylinder(g3d, x1, y1, z1, x2, y2, z2, this.dashDots, this.width, this.colixA, this.colixB, renderD, this.asLineOnly, this.s1); +}return Clazz.doubleToInt((diameter + 1) / 2); +}, "J.api.JmolRendererInterface,~N,~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "drawString", +function(x, y, z, radius, rightJustify, centerX, centerY, yRef, sVal){ +if (sVal == null) return; +var width = this.font3d.stringWidth(sVal); +var height = this.font3d.getAscent(); +var xT = x; +if (rightJustify) xT -= Clazz.doubleToInt(radius / 2) + 2 + width; + else if (centerX) xT -= Clazz.doubleToInt(radius / 2) + 2 + Clazz.doubleToInt(width / 2); + else xT += Clazz.doubleToInt(radius / 2) + 2; +var yT = y; +if (centerY) yT += Clazz.doubleToInt(height / 2); + else if (yRef == 0 || yRef < y) yT += height; + else yT -= Clazz.doubleToInt(radius / 2); +var zT = z - radius - 2; +if (zT < 1) zT = 1; +this.g3d.drawString(sVal, this.font3d, xT, yT, zT, zT, 0); +}, "~N,~N,~N,~N,~B,~B,~B,~N,~S"); +c$.drawDashedCylinder = Clazz.defineMethod(c$, "drawDashedCylinder", +function(g3d, xA, yA, zA, xB, yB, zB, array, width, colixA, colixB, renderD, asLineOnly, s1){ +if (array == null || width < 0) return; +var f = array[0]; +var dx = xB - xA; +var dy = yB - yA; +var dz = zB - zA; +var n = 0; +var isNdots = (array === J.render.FontLineShapeRenderer.ndots); +var isDots = (isNdots || array === J.render.FontLineShapeRenderer.sixdots); +if (isDots) { +if (s1 == null) s1 = new JU.P3i(); +var d2 = (dx * dx + dy * dy) / (width * width); +if (isNdots) { +f = (Math.sqrt(d2) / 1.5); +n = Clazz.floatToInt(f) + 2; +} else if (d2 < 8) { +array = J.render.FontLineShapeRenderer.twodots; +} else if (d2 < 32) { +array = J.render.FontLineShapeRenderer.fourdots; +}}var ptS = array[1]; +var ptE = array[2]; +var colixS = colixA; +var colixE = (ptE == 0 ? colixB : colixA); +if (n == 0) n = array.length; +for (var i = 0, pt = 3; pt < n; pt++) { +i = (isNdots ? i + 1 : array[pt]); +var xS = Clazz.doubleToInt(Math.floor(xA + dx * i / f)); +var yS = Clazz.doubleToInt(Math.floor(yA + dy * i / f)); +var zS = Clazz.doubleToInt(Math.floor(zA + dz * i / f)); +if (isDots) { +s1.set(xS, yS, zS); +if (pt == ptS) g3d.setC(colixA); + else if (pt == ptE) g3d.setC(colixB); +g3d.fillSphereI(width, s1); +continue; +}if (pt == ptS) colixS = colixB; +i = array[++pt]; +if (pt == ptE) colixE = colixB; +var xE = Clazz.doubleToInt(Math.floor(xA + dx * i / f)); +var yE = Clazz.doubleToInt(Math.floor(yA + dy * i / f)); +var zE = Clazz.doubleToInt(Math.floor(zA + dz * i / f)); +J.render.FontLineShapeRenderer.fillCylinder(g3d, colixS, colixE, 2, xS, yS, zS, xE, yE, zE, renderD, asLineOnly); +} +}, "J.api.JmolRendererInterface,~N,~N,~N,~N,~N,~N,~A,~N,~N,~N,~N,~B,JU.P3i"); +c$.fillCylinder = Clazz.defineMethod(c$, "fillCylinder", +function(g3d, colixA, colixB, endcaps, xA, yA, zA, xB, yB, zB, diameter, asLineOnly){ +if (asLineOnly) g3d.drawLine(colixA, colixB, xA, yA, zA, xB, yB, zB); + else g3d.fillCylinderXYZ(colixA, colixB, endcaps, diameter, xA, yA, zA, xB, yB, zB); +}, "J.api.JmolRendererInterface,~N,~N,~N,~N,~N,~N,~N,~N,~N,~N,~B"); +c$.dashes = Clazz.newIntArray(-1, [12, 0, 0, 2, 5, 7, 10]); +c$.hDashes = Clazz.newIntArray(-1, [10, 7, 6, 1, 3, 4, 6, 7, 9]); +c$.ndots = Clazz.newIntArray(-1, [0, 3, 1000]); +c$.sixdots = Clazz.newIntArray(-1, [12, 3, 6, 1, 3, 5, 7, 9, 11]); +c$.fourdots = Clazz.newIntArray(-1, [13, 3, 5, 2, 5, 8, 11]); +c$.twodots = Clazz.newIntArray(-1, [12, 3, 4, 3, 9]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/FrankRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/FrankRenderer.js new file mode 100755 index 000000000000..74054cc49640 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/FrankRenderer.js @@ -0,0 +1,38 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.ShapeRenderer"], "J.render.FrankRenderer", ["J.shape.Frank", "JV.Viewer"], function(){ +var c$ = Clazz.declareType(J.render, "FrankRenderer", J.render.ShapeRenderer); +Clazz.overrideMethod(c$, "render", +function(){ +var frank = this.shape; +var allowKeys = this.vwr.getBooleanProperty("allowKeyStrokes"); +var modelKitMode = this.vwr.getBoolean(603983903); +this.colix = (modelKitMode ? 20 : this.vwr.isSignedApplet ? (allowKeys || (JV.Viewer.isJS || JV.Viewer.isSwingJS) && !this.vwr.isWebGL ? 5 : 10) : allowKeys ? 7 : 12); +if (this.isExport || !this.vwr.getShowFrank() || !this.g3d.setC(this.colix)) return false; +if (this.vwr.frankOn && !this.vwr.noFrankEcho) return this.vwr.noFrankEcho; +this.vwr.noFrankEcho = true; +var imageFontScaling = this.vwr.imageFontScaling; +frank.getFont(imageFontScaling); +var dx = Clazz.floatToInt(frank.frankWidth + 4 * imageFontScaling); +var dy = frank.frankDescent; +this.g3d.drawStringNoSlab(J.shape.Frank.frankString, frank.font3d, this.vwr.gdata.width - dx, this.vwr.gdata.height - dy, 0, 0); +var kit = (modelKitMode ? this.vwr.getModelkit(false) : null); +if (modelKitMode && !kit.isHidden()) { +this.g3d.setC(12); +var w = 10; +var h = 26; +this.g3d.fillTextRect(0, 0, 1, 0, w, h * 4); +var active = kit.getActiveMenu(); +if (active != null) { +if ("atomMenu".equals(active)) { +this.g3d.setC(21); +this.g3d.fillTextRect(0, 0, 0, 0, w, h); +} else if ("bondMenu".equals(active)) { +this.g3d.setC(7); +this.g3d.fillTextRect(0, h, 0, 0, w, h); +} else if ("xtalMenu".equals(active)) { +this.g3d.setC(8); +this.g3d.fillTextRect(0, h << 1, 0, 0, w, h); +}}}return false; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/HalosRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/HalosRenderer.js new file mode 100755 index 000000000000..fb7380b104cd --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/HalosRenderer.js @@ -0,0 +1,76 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.ShapeRenderer"], "J.render.HalosRenderer", ["JU.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isAntialiased = false; +Clazz.instantialize(this, arguments);}, J.render, "HalosRenderer", J.render.ShapeRenderer); +Clazz.overrideMethod(c$, "render", +function(){ +var halos = this.shape; +var showOnce = this.vwr.getShowSelectedOnce(); +var selectDisplayTrue = (this.vwr.getSelectionHalosEnabled() || showOnce); +var showHiddenSelections = (selectDisplayTrue && this.vwr.getBoolean(603979920)); +if (halos.mads == null && halos.bsHighlight == null && !selectDisplayTrue) return false; +this.isAntialiased = this.g3d.isAntialiased(); +var atoms = this.ms.at; +var bsSelected = (showOnce && this.vwr.movableBitSet != null ? this.vwr.movableBitSet : selectDisplayTrue ? this.vwr.bsA() : null); +var needTranslucent = false; +this.g3d.addRenderer(1073741880); +for (var i = this.ms.ac; --i >= 0; ) { +var atom = atoms[i]; +if (atom == null || (atom.shapeVisibilityFlags & 1) == 0) continue; +var isHidden = this.ms.isAtomHidden(i); +this.mad = (halos.mads == null ? 0 : halos.mads[i]); +this.colix = (halos.colixes == null || i >= halos.colixes.length ? 0 : halos.colixes[i]); +if (selectDisplayTrue && bsSelected.get(i)) { +if (isHidden && !showHiddenSelections) continue; +if (this.mad == 0) this.mad = -1; +if (this.colix == 0) { +if (this.exportType == 1 && !this.g3d.isWebGL()) continue; +this.colix = halos.colixSelection; +}if (this.colix == 2) this.colix = 23; + else if (this.colix == 0) this.colix = JU.C.getColixInherited(this.colix, atom.colixAtom); +} else if (isHidden) { +continue; +} else { +this.colix = JU.C.getColixInherited(this.colix, atom.colixAtom); +}if (this.mad != 0) { +if (this.render1(atom)) needTranslucent = true; +}if (!isHidden && halos.bsHighlight != null && halos.bsHighlight.get(i)) { +this.mad = -2; +this.colix = halos.colixHighlight; +if (this.render1(atom)) needTranslucent = true; +}} +return needTranslucent; +}); +Clazz.defineMethod(c$, "render1", +function(atom){ +var colixFill = (this.mad == -2 ? 0 : JU.C.getColixTranslucent3(this.colix, true, 0.5)); +var needTranslucent = (this.mad != -2); +if (!this.g3d.setC(this.colix)) { +needTranslucent = true; +this.colix = 0; +if (colixFill == 0 || !this.g3d.setC(colixFill)) return needTranslucent; +}var z = atom.sZ; +var d = this.mad; +if (d < 0) { +d = atom.sD; +if (d == 0) { +var ellipsemax = (atom.isVisible(20) ? atom.getADPMinMax(true) : 0); +if (ellipsemax > 0) d = this.vwr.tm.scaleToScreen(z, Clazz.doubleToInt(Math.floor(ellipsemax * 2000))); +if (d == 0) { +d = Clazz.floatToInt(this.vwr.tm.scaleToScreen(z, this.mad == -2 ? 250 : 500)); +}}} else { +d = this.vwr.tm.scaleToScreen(z, this.mad); +}if (this.isAntialiased) d /= 2; +var more = (d / 2); +if (this.mad == -2) more /= 2; +if (more < 8) more = 8; +if (more > 20) more = 20; +d += more; +if (this.isAntialiased) d *= 2; +if (d < 1) return false; +this.g3d.drawFilledCircle(this.colix, colixFill, Clazz.doubleToInt(Math.floor(d)), atom.sX, atom.sY, atom.sZ); +return needTranslucent; +}, "JM.Atom"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/HoverRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/HoverRenderer.js new file mode 100755 index 000000000000..1b0f5ca510b9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/HoverRenderer.js @@ -0,0 +1,39 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.ShapeRenderer"], "J.render.HoverRenderer", ["JU.P3", "J.render.TextRenderer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.tempXY = null; +this.ptTemp = null; +Clazz.instantialize(this, arguments);}, J.render, "HoverRenderer", J.render.ShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.tempXY = Clazz.newFloatArray (3, 0); +}); +Clazz.overrideMethod(c$, "render", +function(){ +if (this.tm.isNavigating()) return false; +if (this.ptTemp == null) this.ptTemp = new JU.P3(); +var hover = this.shape; +var antialias = this.g3d.isAntialiased(); +var text = hover.hoverText; +var label; +if (hover.atomIndex >= 0) { +var atom = this.ms.at[hover.atomIndex]; +label = (hover.specialLabel != null ? hover.specialLabel : hover.atomFormats != null && hover.atomFormats[hover.atomIndex] != null ? this.ms.getLabeler().formatLabel(this.vwr, atom, hover.atomFormats[hover.atomIndex], this.ptTemp) : hover.labelFormat != null ? this.ms.getLabeler().formatLabel(this.vwr, atom, this.fixLabel(atom, hover.labelFormat), this.ptTemp) : null); +if (label == null) return false; +text.setXYZs(atom.sX, atom.sY, 1, -2147483648); +} else if (hover.text != null) { +label = hover.text; +text.setXYZs(hover.xy.x, hover.xy.y, 1, -2147483648); +} else { +return true; +}if (this.vwr != null) label = this.vwr.formatText(label); +text.setText(label); +J.render.TextRenderer.render(null, text, this.g3d, 0, antialias ? 2 : 1, null, this.tempXY, null, 0, 0, 0); +return true; +}); +Clazz.defineMethod(c$, "fixLabel", +function(atom, label){ +if (label == null || atom == null) return null; +return (this.ms.isJmolDataFrameForModel(atom.mi) && label.equals("%U") ? "%W" : label); +}, "JM.Atom,~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/LabelsRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/LabelsRenderer.js new file mode 100755 index 000000000000..46e2def3b0cf --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/LabelsRenderer.js @@ -0,0 +1,138 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.FontLineShapeRenderer", "JU.P3", "$.P3i"], "J.render.LabelsRenderer", ["JM.Text", "J.render.TextRenderer", "JU.Font", "JV.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.minZ = null; +this.ascent = 0; +this.descent = 0; +this.sppm = 0; +this.xy = null; +this.screen = null; +this.fidPrevious = 0; +this.pTemp = null; +this.bgcolix = 0; +this.labelColix = 0; +this.fid = 0; +this.atom = null; +this.atomPt = null; +this.doPointer = 0; +this.offset = 0; +this.textAlign = 0; +this.pointer = 0; +this.zSlab = -2147483648; +this.zBox = 0; +this.boxXY = null; +this.scalePixelsPerMicron = 0; +this.mode = 0; +Clazz.instantialize(this, arguments);}, J.render, "LabelsRenderer", J.render.FontLineShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.minZ = Clazz.newIntArray (1, 0); +this.xy = Clazz.newFloatArray (3, 0); +this.screen = new JU.P3i(); +this.pTemp = new JU.P3(); +}); +Clazz.overrideMethod(c$, "render", +function(){ +this.fidPrevious = 0; +var labels = this.shape; +var labelStrings = labels.strings; +var fids = labels.fids; +var offsets = labels.offsets; +if (labelStrings == null) return false; +var atoms = this.ms.at; +var backgroundColixContrast = this.vwr.cm.colixBackgroundContrast; +var backgroundColor = this.vwr.getBackgroundArgb(); +this.sppm = this.vwr.getScalePixelsPerAngstrom(true); +this.scalePixelsPerMicron = (this.vwr.getBoolean(603979847) ? this.sppm * 10000 : 0); +this.imageFontScaling = this.vwr.imageFontScaling; +var iGroup = -1; +this.minZ[0] = 2147483647; +var isAntialiased = this.g3d.isAntialiased(); +for (var i = labelStrings.length; --i >= 0; ) { +this.atomPt = this.atom = atoms[i]; +if (!this.isVisibleForMe(this.atom)) continue; +var label = labelStrings[i]; +if (label == null || label.length == 0 || labels.mads != null && labels.mads[i] < 0) continue; +this.labelColix = labels.getColix2(i, this.atom, false); +this.bgcolix = labels.getColix2(i, this.atom, true); +if (this.bgcolix == 0 && this.vwr.gdata.getColorArgbOrGray(this.labelColix) == backgroundColor) this.labelColix = backgroundColixContrast; +this.fid = ((fids == null || i >= fids.length || fids[i] == 0) ? labels.zeroFontId : fids[i]); +this.offset = (offsets == null || i >= offsets.length ? 0 : offsets[i]); +var labelsFront = ((this.offset & 32) != 0); +var labelsGroup = ((this.offset & 16) != 0); +this.textAlign = JV.JC.getAlignment(this.offset); +this.pointer = JV.JC.getPointer(this.offset); +this.doPointer = (this.pointer & 1); +var isAbsolute = this.offset & 64; +this.mode = (this.doPointer | isAbsolute | (isAntialiased ? 4 : 0)); +this.zSlab = this.atom.sZ - Clazz.doubleToInt(this.atom.sD / 2) - 3; +if (this.zSlab < 1) this.zSlab = 1; +this.zBox = this.zSlab; +if (labelsGroup) { +var group = this.atom.group; +var ig = group.groupIndex; +if (ig != iGroup) { +group.getMinZ(atoms, this.minZ); +iGroup = ig; +}this.zBox = this.minZ[0]; +} else if (labelsFront) { +this.zBox = 1; +}if (this.zBox < 1) this.zBox = 1; +var text = labels.getLabel(i); +this.boxXY = (!this.isExport || this.vwr.creatingImage ? labels.getBox(i) : Clazz.newFloatArray (5, 0)); +if (this.boxXY == null) labels.putBox(i, this.boxXY = Clazz.newFloatArray (5, 0)); +text = this.renderLabelOrMeasure(text, label); +if (text != null) { +labels.putLabel(i, text); +}if (isAntialiased) { +this.boxXY[0] /= 2; +this.boxXY[1] /= 2; +}this.boxXY[4] = this.zBox; +} +return false; +}); +Clazz.defineMethod(c$, "renderLabelOrMeasure", +function(text, label){ +var newText = false; +var pointerColix = ((this.pointer & 2) != 0 && this.bgcolix != 0 ? this.bgcolix : this.labelColix); +if (text != null) { +if (text.font == null) text.setFontFromFid(this.fid); +text.atomX = this.atomPt.sX; +text.atomY = this.atomPt.sY; +text.atomZ = this.zSlab; +if (text.pymolOffset == null) { +text.setXYZs(this.atomPt.sX, this.atomPt.sY, this.zBox, this.zSlab); +text.colix = this.labelColix; +text.bgcolix = this.bgcolix; +} else { +text.getPymolScreenOffset(this.atomPt, this.screen, this.zSlab, this.pTemp, this.sppm); +}} else { +var isLeft = (this.textAlign == 4 || this.textAlign == 0); +if (this.fid != this.fidPrevious || this.ascent == 0) { +this.vwr.gdata.setFont(JU.Font.getFont3D(this.fid)); +this.fidPrevious = this.fid; +this.font3d = this.vwr.gdata.getFont3DCurrent(); +if (isLeft) { +this.ascent = this.font3d.getAscent(); +this.descent = this.font3d.getDescent(); +}}var isSimple = isLeft && (this.imageFontScaling == 1 && this.scalePixelsPerMicron == 0 && label.indexOf("|") < 0 && label.indexOf("\n") < 0 && label.indexOf(" = 0; ) { +this.m = measures.measurements.get(i); +if (!this.m.isVisible || !this.m.$isValid || (this.count = this.m.count) == 1 && this.m.traceX == -2147483648) continue; +this.getPoints(); +this.colix = this.m.colix; +if (this.colix == 0) this.colix = measures.colix; +if (this.colix == 0) this.colix = this.vwr.cm.colixBackgroundContrast; +this.labelColix = this.m.labelColix; +if (this.labelColix == 0) this.labelColix = this.vwr.cm.colixBackgroundContrast; + else if (this.labelColix == -1) this.labelColix = this.colix; +this.g3d.setC(this.colix); +this.colixA = this.colixB = this.colix; +this.mode = (this.g3d.isAntialiased() ? 4 : 0); +this.renderMeasurement(showMeasurementLabels); +} +return false; +}); +Clazz.defineMethod(c$, "getPoints", +function(){ +for (var j = this.count; --j >= 0; ) { +var i = this.m.getAtomIndex(j + 1); +var pt = (i >= 0 && this.modulating ? this.getModAtom(i) : this.m.getAtom(j + 1)); +if (pt.sD < 0) { +this.tm.transformPtScr(pt, this.pt0i); +pt.sX = this.pt0i.x; +pt.sY = this.pt0i.y; +pt.sZ = this.pt0i.z; +}this.p[j] = pt; +} +if (this.modulating) this.m.refresh(this.p); +}); +Clazz.defineMethod(c$, "getModAtom", +function(i){ +var ii = Integer.$valueOf(i); +var pt = this.mpts.get(ii); +if (pt != null) ii = null; +var v = this.ms.getModulation(i); +if (v == null) { +pt = this.ms.at[i]; +} else { +if (pt == null) pt = new JU.Point3fi(); +pt.setT(this.ms.at[i]); +if (this.vwr.tm.vibrationOn) this.vwr.tm.getVibrationPoint(v, pt, NaN); +pt.sD = -1; +}if (ii != null) this.mpts.put(ii, pt); +return pt; +}, "~N"); +Clazz.defineMethod(c$, "renderMeasurement", +function(renderLabel){ +var s = (renderLabel ? this.m.getString() : null); +if (s != null) { +if (s.length == 0) { +s = null; +} else if (this.m.text != null) { +this.m.text.setText(s); +this.m.text.colix = this.labelColix; +this.m.text.setFontScale(this.imageFontScaling); +}}if (this.m.mad == 0) { +this.dotsOrDashes = false; +this.mad = this.mad0; +} else { +this.mad = this.m.mad; +this.dotsOrDashes = true; +this.dashDots = (this.mad < 0 ? null : J.render.FontLineShapeRenderer.ndots); +}switch (this.count) { +case 1: +this.drawLine(this.p[0].sX, this.p[0].sY, this.p[0].sZ, this.m.traceX, this.m.traceY, this.p[0].sZ, this.mad); +break; +case 2: +this.renderDistance(s, this.p[0], this.p[1]); +break; +case 3: +this.renderAngle(s, this.p[0], this.p[1], this.p[2]); +break; +case 4: +this.renderTorsion(s, this.p[0], this.p[1], this.p[2], this.p[3]); +break; +} +this.p[0] = this.p[1] = this.p[2] = this.p[3] = null; +}, "~B"); +Clazz.defineMethod(c$, "renderDistance", +function(s, a, b){ +if ((this.tickInfo = this.m.tickInfo) != null) { +this.drawLine(a.sX, a.sY, a.sZ, b.sX, b.sY, b.sZ, this.mad); +this.tickA = a; +this.tickB = b; +if (this.tickAs == null) { +this.tickAs = new JU.P3(); +this.tickBs = new JU.P3(); +}this.tickAs.set(a.sX, a.sY, a.sZ); +this.tickBs.set(b.sX, b.sY, b.sZ); +this.drawTicks(this.mad, s != null); +return; +}var zA = a.sZ - a.sD - 10; +var zB = b.sZ - b.sD - 10; +var radius = this.drawLine(a.sX, a.sY, zA, b.sX, b.sY, zB, this.mad); +if (s == null) return; +if (this.mad > 0) radius <<= 1; +var zLabel = (this.m.inFront ? Math.min(zA, zB) - 10 : Clazz.doubleToInt((zA + zB) / 2)); +if (zLabel < 1) zLabel = 1; +var x = Clazz.doubleToInt((a.sX + b.sX) / 2); +var y = Clazz.doubleToInt((a.sY + b.sY) / 2); +if (this.m.text == null) { +this.g3d.setC(this.labelColix); +this.drawString(x, y, zLabel, radius, this.doJustify && (x - a.sX) * (y - a.sY) > 0, false, true, (this.doJustify ? 0 : 2147483647), s); +} else { +this.atomPt.ave(a, b); +this.atomPt.sX = Clazz.doubleToInt((a.sX + b.sX) / 2); +this.atomPt.sY = Clazz.doubleToInt((a.sY + b.sY) / 2); +this.renderLabelOrMeasure(this.m.text, s); +}}, "~S,JU.Point3fi,JU.Point3fi"); +Clazz.defineMethod(c$, "renderAngle", +function(s, a, b, c){ +var zOffset = b.sD + 10; +var zA = a.sZ - a.sD - 10; +var zB = b.sZ - zOffset; +var zC = c.sZ - c.sD - 10; +var radius = this.drawLine(a.sX, a.sY, zA, b.sX, b.sY, zB, this.mad); +radius += this.drawLine(b.sX, b.sY, zB, c.sX, c.sY, zC, this.mad); +if (s == null) return; +radius = Clazz.doubleToInt((radius + 1) / 2); +if (this.m.value > 175) { +if (this.m.text == null) { +var offset = Clazz.doubleToInt(Math.floor(5 * this.imageFontScaling)); +this.g3d.setC(this.labelColix); +this.drawString(b.sX + offset, b.sY - offset, zB, radius, false, false, false, (this.doJustify ? 0 : 2147483647), s); +} else { +this.atomPt.setT(b); +this.renderLabelOrMeasure(this.m.text, s); +}return; +}if (this.m.isTainted()) { +var radians = JU.Measure.computeAngle(this.p[0], this.p[1], this.p[2], this.vectorT2, this.vectorT3, false); +this.vectorT.cross(this.vectorT2, this.vectorT3); +this.m.renderAxis = JU.A4.new4(this.vectorT.x, this.vectorT.y, this.vectorT.z, radians); +this.vectorT2.normalize(); +this.vectorT2.scale(0.5); +this.m.renderArc = JU.P3.newP(this.vectorT2); +}if (this.aaT == null) { +this.aaT = new JU.A4(); +this.matrixT = new JU.M3(); +}var dotCount = Clazz.doubleToInt(Math.floor((this.m.renderAxis.angle / (6.283185307179586)) * 64)); +var stepAngle = this.m.renderAxis.angle / dotCount; +this.aaT.setAA(this.m.renderAxis); +var iMid = Clazz.doubleToInt(dotCount / 2); +for (var i = dotCount; --i >= 0; ) { +this.aaT.angle = i * stepAngle; +this.pointT.setT(this.m.renderArc); +this.matrixT.setAA(this.aaT).rotate(this.pointT); +this.pointT.add(b); +var p3i = this.tm.transformPt(this.pointT); +var zArc = p3i.z - zOffset; +if (zArc < 0) zArc = 0; +this.g3d.drawPixel(p3i.x, p3i.y, zArc); +if (i != iMid) continue; +this.pointT.setT(this.m.renderArc); +this.pointT.scale(1.1); +this.matrixT.rotate(this.pointT); +this.pointT.add(b); +this.tm.transformPt(this.pointT); +var zLabel = (this.m.inFront ? Math.min(Math.min(zA, zB), zC) : p3i.z - zOffset); +if (zLabel < 1) zLabel = 1; +if (this.m.text == null) { +this.g3d.setC(this.labelColix); +this.drawString(p3i.x, p3i.y, zLabel, radius, p3i.x < b.sX, false, false, (this.doJustify ? b.sY : 2147483647), s); +} else { +this.atomPt.setT(this.pointT); +this.renderLabelOrMeasure(this.m.text, s); +}} +}, "~S,JU.Point3fi,JU.Point3fi,JU.Point3fi"); +Clazz.defineMethod(c$, "renderTorsion", +function(s, a, b, c, d){ +var zA = a.sZ - a.sD - 10; +var zB = b.sZ - b.sD - 10; +var zC = c.sZ - c.sD - 10; +var zD = d.sZ - d.sD - 10; +var radius = this.drawLine(a.sX, a.sY, zA, b.sX, b.sY, zB, this.mad); +radius += this.drawLine(b.sX, b.sY, zB, c.sX, c.sY, zC, this.mad); +radius += this.drawLine(c.sX, c.sY, zC, d.sX, d.sY, zD, this.mad); +if (s == null) return; +var zLabel = (this.m.inFront ? Math.min(Math.min(Math.min(zA, zB), zC), zD) : Clazz.doubleToInt((zA + zB + zC + zD) / 4)); +if (zLabel < 1) zLabel = 1; +radius /= 3; +if (this.m.text == null) { +this.g3d.setC(this.labelColix); +this.drawString(Clazz.doubleToInt((a.sX + b.sX + c.sX + d.sX) / 4), Clazz.doubleToInt((a.sY + b.sY + c.sY + d.sY) / 4), zLabel, radius, false, false, false, (this.doJustify ? 0 : 2147483647), s); +} else { +this.atomPt.add2(a, b); +this.atomPt.add(c); +this.atomPt.add(d); +this.atomPt.scale(0.25); +this.renderLabelOrMeasure(this.m.text, s); +}}, "~S,JU.Point3fi,JU.Point3fi,JU.Point3fi,JU.Point3fi"); +Clazz.defineMethod(c$, "renderPendingMeasurement", +function(){ +try { +this.getPoints(); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +(this.shape).mPending = null; +return; +} else { +throw e; +} +} +var renderLabel = (this.m.traceX == -2147483648); +this.g3d.setC(this.labelColix = (renderLabel ? this.vwr.cm.colixRubberband : this.count == 2 ? 20 : 23)); +if ((this.m).haveTarget) { +this.renderMeasurement(renderLabel); +return; +}var atomLast = this.p[this.count - 1]; +if (this.count > 1) this.renderMeasurement(false); +var lastZ = atomLast.sZ - atomLast.sD - 10; +var x = this.vwr.getCursorX(); +var y = this.vwr.getCursorY(); +if (this.g3d.isAntialiased()) { +x <<= 1; +y <<= 1; +}this.drawLine(atomLast.sX, atomLast.sY, lastZ, x, y, lastZ, this.mad); +}); +Clazz.overrideMethod(c$, "drawLine", +function(x1, y1, z1, x2, y2, z2, mad){ +var diameter = Clazz.floatToInt(mad >= 20 && this.exportType != 1 ? this.vwr.tm.scaleToScreen(Clazz.doubleToInt((z1 + z2) / 2), mad) : mad); +if (this.dotsOrDashes && (this.dashDots == null || this.dashDots === J.render.FontLineShapeRenderer.ndots)) this.width = diameter; +return this.drawLine2(this.g3d, x1, y1, z1, x2, y2, z2, diameter); +}, "~N,~N,~N,~N,~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/MeshRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/MeshRenderer.js new file mode 100755 index 000000000000..4491cb00332c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/MeshRenderer.js @@ -0,0 +1,351 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.ShapeRenderer", "JU.BS", "$.P3", "$.P3i"], "J.render.MeshRenderer", ["JU.AU", "JU.C", "$.SimpleUnitCell"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.mesh = null; +this.vertices = null; +this.normixes = null; +this.screens = null; +this.p3Screens = null; +this.transformedVectors = null; +this.vertexCount = 0; +this.imageFontScaling = 0; +this.scalePixelsPerMicron = 0; +this.diameter = 0; +this.width = 0; +this.allowDashed = false; +this.isTranslucent = false; +this.frontOnly = false; +this.isShell = false; +this.antialias = false; +this.haveBsDisplay = false; +this.selectedPolyOnly = false; +this.isGhostPass = false; +this.thePlane = null; +this.latticeOffset = null; +this.pt1f = null; +this.pt2f = null; +this.pt1i = null; +this.pt2i = null; +this.pt3i = null; +this.exportPass = 0; +this.needTranslucent = false; +this.doRender = false; +this.volumeRender = false; +this.bsPolygons = null; +this.isTranslucentInherit = false; +this.renderLow = false; +this.meshSlabValue = 100; +this.showTriangles = false; +this.forceShowTriangles = false; +this.bsPolygonsToExport = null; +Clazz.instantialize(this, arguments);}, J.render, "MeshRenderer", J.render.ShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.latticeOffset = new JU.P3(); +this.pt1f = new JU.P3(); +this.pt2f = new JU.P3(); +this.pt1i = new JU.P3i(); +this.pt2i = new JU.P3i(); +this.pt3i = new JU.P3i(); +this.bsPolygonsToExport = new JU.BS(); +}); +Clazz.defineMethod(c$, "renderMesh2", +function(mesh){ +this.mesh = mesh; +if (!this.setVariables()) return false; +if (!this.doRender) return mesh.title != null; +this.latticeOffset.set(0, 0, 0); +if (mesh.modelIndex < 0 || mesh.lattice == null && mesh.symops == null) { +if (mesh.haveXyPoints) { +for (var i = this.vertexCount; --i >= 0; ) if (this.vertices[i] != null) this.tm.transformPtScrT32D(this.vertices[i], this.p3Screens[i]); + +} else { +for (var i = this.vertexCount; --i >= 0; ) { +if (this.vertices[i] != null) { +this.tm.transformPtScrT3(this.vertices[i], this.p3Screens[i]); +this.tm.transformPtScr(this.vertices[i], this.screens[i]); +}} +}this.render2(this.isExport); +} else { +var vTemp = new JU.P3(); +var unitcell = mesh.getUnitCell(); +if (unitcell != null) { +if (mesh.symops != null) { +if (mesh.symopNormixes == null) mesh.symopNormixes = JU.AU.newShort2(mesh.symops.length); +var verticesTemp = null; +var max = mesh.symops.length; +var c = mesh.colix; +for (var j = max; --j >= 0; ) { +var m = mesh.symops[j]; +if (m == null) continue; +if (mesh.colorType == 1296041985) mesh.colix = mesh.symopColixes[j]; +var normals = mesh.symopNormixes[j]; +var needNormals = (normals == null); +verticesTemp = (needNormals ? new Array(this.vertexCount) : null); +for (var i = this.vertexCount; --i >= 0; ) { +vTemp.setT(this.vertices[i]); +unitcell.toFractional(vTemp, true); +m.rotTrans(vTemp); +unitcell.toCartesian(vTemp, true); +this.tm.transformPtScr(vTemp, this.screens[i]); +if (needNormals) { +verticesTemp[i] = vTemp; +vTemp = new JU.P3(); +}} +if (needNormals) this.normixes = mesh.symopNormixes[j] = mesh.setNormixes(mesh.getNormals(verticesTemp, null)); + else this.normixes = mesh.normixes = mesh.symopNormixes[j]; +this.render2(this.isExport); +} +mesh.colix = c; +} else { +var minXYZ = new JU.P3i(); +var maxXYZ = JU.P3i.new3(Clazz.floatToInt(mesh.lattice.x), Clazz.floatToInt(mesh.lattice.y), Clazz.floatToInt(mesh.lattice.z)); +JU.SimpleUnitCell.setMinMaxLatticeParameters(Clazz.floatToInt(unitcell.getUnitCellInfoType(6)), minXYZ, maxXYZ, 0); +for (var tx = minXYZ.x; tx < maxXYZ.x; tx++) for (var ty = minXYZ.y; ty < maxXYZ.y; ty++) for (var tz = minXYZ.z; tz < maxXYZ.z; tz++) { +this.latticeOffset.set(tx, ty, tz); +unitcell.toCartesian(this.latticeOffset, false); +for (var i = this.vertexCount; --i >= 0; ) { +vTemp.add2(this.vertices[i], this.latticeOffset); +this.tm.transformPtScr(vTemp, this.screens[i]); +} +this.render2(this.isExport); +} + + +}}}if (this.screens != null) this.vwr.freeTempScreens(this.screens); +if (this.p3Screens != null) this.vwr.freeTempPoints(this.p3Screens); +return true; +}, "J.shape.Mesh"); +Clazz.defineMethod(c$, "setVariables", +function(){ +if (this.mesh.visibilityFlags == 0) return false; +this.forceShowTriangles = this.vwr.getBoolean(603979964); +this.showTriangles = this.forceShowTriangles || this.mesh.showTriangles; +if (this.mesh.bsSlabGhost != null) this.g3d.setC(this.mesh.slabColix); +if (this.mesh.colorsExplicit) this.g3d.setC(2047); +this.isGhostPass = (this.mesh.bsSlabGhost != null && (this.isExport ? this.exportPass == 2 : this.vwr.gdata.isPass2)); +this.isTranslucentInherit = (this.isGhostPass && JU.C.getColixTranslucent3(this.mesh.slabColix, false, 0) == 1); +this.isTranslucent = this.isGhostPass || JU.C.renderPass2(this.mesh.colix); +if (this.isTranslucent || this.volumeRender || this.mesh.bsSlabGhost != null) this.needTranslucent = true; +this.doRender = (this.setColix(this.mesh.colix) || this.mesh.showContourLines); +if (!this.doRender || this.isGhostPass && !(this.doRender = this.g3d.setC(this.mesh.slabColix))) { +this.vertices = this.mesh.vs; +if (this.needTranslucent) this.g3d.setC(JU.C.getColixTranslucent3(4, true, 0.5)); +return true; +}if (this.mesh.isModelConnected) this.mesh.mat4 = this.ms.am[this.mesh.modelIndex].mat4; +this.vertices = (this.mesh.scale3d == 0 && this.mesh.mat4 == null ? this.mesh.vs : this.mesh.getOffsetVertices(this.thePlane)); +if (this.mesh.lineData == null) { +if ((this.vertexCount = this.mesh.vc) == 0) return false; +this.normixes = this.mesh.normixes; +if (this.normixes == null && this.mesh.pc >= 0 || this.vertices == null) return false; +this.haveBsDisplay = (this.mesh.bsDisplay != null); +this.selectedPolyOnly = (this.isGhostPass || this.mesh.bsSlabDisplay != null); +this.bsPolygons = (this.isGhostPass ? this.mesh.bsSlabGhost : this.selectedPolyOnly ? this.mesh.bsSlabDisplay : null); +this.renderLow = (!this.isExport && !this.vwr.checkMotionRendering(1073742018)); +var allowFrontOnly = (!this.mesh.isTwoSided && !this.selectedPolyOnly && (this.meshSlabValue == -2147483648 || this.meshSlabValue >= 100)); +this.frontOnly = this.renderLow || this.mesh.frontOnly && !this.tm.slabEnabled && allowFrontOnly; +this.isShell = this.mesh.isShell && allowFrontOnly; +this.screens = this.vwr.allocTempScreens(this.vertexCount); +this.p3Screens = this.vwr.allocTempPoints(this.vertexCount); +if (this.frontOnly || this.isShell) this.transformedVectors = this.vwr.gdata.getTransformedVertexVectors(); +if (this.transformedVectors == null) this.frontOnly = this.isShell = false; +}return true; +}); +Clazz.defineMethod(c$, "setColix", +function(colix){ +if (this.isGhostPass) return true; +if (this.volumeRender && !this.isTranslucent) colix = JU.C.getColixTranslucent3(colix, true, 0.8); +this.colix = colix; +if (JU.C.isColixLastAvailable(colix)) this.vwr.gdata.setColor(this.mesh.color); +return this.g3d.setC(colix); +}, "~N"); +Clazz.defineMethod(c$, "isPolygonDisplayable", +function(i){ +return true; +}, "~N"); +Clazz.defineMethod(c$, "render2", +function(generateSet){ +this.render2b(generateSet); +}, "~B"); +Clazz.defineMethod(c$, "render2b", +function(generateSet){ +if (!this.g3d.setC(this.isGhostPass ? this.mesh.slabColix : this.colix)) return; +if (this.renderLow || this.mesh.showPoints || this.mesh.pc <= 0) this.renderPoints(); +if (!this.renderLow && (this.isGhostPass ? this.mesh.slabMeshType == 1073742018 : this.mesh.drawTriangles)) this.renderTriangles(false, this.showTriangles, false); +if (!this.renderLow && this.mesh.pc > 0 && (this.isGhostPass ? this.mesh.slabMeshType == 1073741938 : this.mesh.fillTriangles)) this.renderTriangles(true, this.showTriangles, generateSet); +}, "~B"); +Clazz.defineMethod(c$, "renderPoints", +function(){ +if (!this.mesh.isDrawPolygon || this.mesh.pc < 0) { +for (var i = this.vertexCount; --i >= 0; ) if (!this.frontOnly || this.normixes == null || this.isVisibleNormix(this.normixes[i])) this.drawPoint(i, false); + +return; +}var polygonIndexes = this.mesh.pis; +var bsPoints = JU.BS.newN(this.mesh.vc); +if (this.haveBsDisplay) { +bsPoints.setBits(0, this.mesh.vc); +bsPoints.andNot(this.mesh.bsDisplay); +}for (var i = this.mesh.pc; --i >= 0; ) { +if (!this.isPolygonDisplayable(i)) continue; +var p = polygonIndexes[i]; +if (this.frontOnly && !this.isVisibleNormix(this.normixes[i])) continue; +for (var j = p.length - 1; --j >= 0; ) { +var pt = p[j]; +if (bsPoints.get(pt)) continue; +bsPoints.set(pt); +this.drawPoint(pt, true); +} +} +}); +Clazz.defineMethod(c$, "drawPoint", +function(pt, forTriangle){ +if (this.renderLow && forTriangle) { +var s = this.screens[pt]; +this.g3d.drawPixel(s.x, s.y, s.z); +} else if (this.mesh.pc >= 0) { +this.drawMeshSphere(this.screens[pt]); +} else { +this.drawEdge(pt, pt, false, this.vertices[pt], this.vertices[pt], this.screens[pt], null); +}}, "~N,~B"); +Clazz.defineMethod(c$, "drawMeshSphere", +function(pt){ +this.g3d.fillSphereI(4, pt); +}, "JU.P3i"); +Clazz.defineMethod(c$, "renderTriangles", +function(fill, iShowTriangles, generateSet){ +this.g3d.addRenderer(1073742182); +var polygons = this.mesh.pis; +this.colix = (this.isGhostPass ? this.mesh.slabColix : this.mesh.colix); +if (this.isTranslucentInherit) this.colix = JU.C.copyColixTranslucency(this.mesh.slabColix, this.mesh.colix); +this.g3d.setC(this.colix); +if (generateSet) { +if (this.frontOnly && fill) this.frontOnly = false; +this.bsPolygonsToExport.clearAll(); +}for (var i = this.mesh.pc; --i >= 0; ) { +if (!this.isPolygonDisplayable(i)) continue; +var polygon = polygons[i]; +var iA = polygon[0]; +var iB = polygon[1]; +var iC = polygon[2]; +if (iShowTriangles) this.setColix((Math.round(Math.random() * 10) + 5)); +if (this.haveBsDisplay && (!this.mesh.bsDisplay.get(iA) || !this.mesh.bsDisplay.get(iB) || !this.mesh.bsDisplay.get(iC))) continue; +if (iB == iC) { +this.drawEdge(iA, iB, fill, this.vertices[iA], this.vertices[iB], this.screens[iA], this.screens[iB]); +continue; +}var check; +if (this.mesh.isDrawPolygon) { +var normix = this.normixes[i]; +if (this.frontOnly && !this.isVisibleNormix(normix)) continue; +if (fill) { +this.g3d.fillTriangle3CNBits(this.p3Screens[iA], this.colix, normix, this.p3Screens[iB], this.colix, normix, this.p3Screens[iC], this.colix, normix, true); +continue; +}check = polygon[3]; +if (iShowTriangles) check = 7; +if ((check & 1) == 1) this.drawEdge(iA, iB, true, this.vertices[iA], this.vertices[iB], this.screens[iA], this.screens[iB]); +if ((check & 2) == 2) this.drawEdge(iB, iC, true, this.vertices[iB], this.vertices[iC], this.screens[iB], this.screens[iC]); +if ((check & 4) == 4) this.drawEdge(iA, iC, true, this.vertices[iA], this.vertices[iC], this.screens[iA], this.screens[iC]); +continue; +}var nA = this.normixes[iA]; +var nB = this.normixes[iB]; +var nC = this.normixes[iC]; +check = (this.frontOnly || this.isShell ? this.checkFront(nA, nB, nC) : 7); +if (fill && check != 7) continue; +switch (polygon.length) { +case 3: +if (fill) { +if (generateSet) { +this.bsPolygonsToExport.set(i); +continue; +}this.g3d.fillTriangle3CNBits(this.p3Screens[iA], this.colix, nA, this.p3Screens[iB], this.colix, nB, this.p3Screens[iC], this.colix, nC, false); +continue; +}this.drawTriangleBits(this.p3Screens[iA], this.colix, this.p3Screens[iB], this.colix, this.p3Screens[iC], this.colix, check, 1); +continue; +case 4: +var iD = polygon[3]; +var nD = this.normixes[iD]; +if (this.frontOnly && (check != 7 || !this.isVisibleNormix(nD))) continue; +if (fill) { +if (generateSet) { +this.bsPolygonsToExport.set(i); +continue; +}this.g3d.fillTriangle3CNBits(this.p3Screens[iA], this.colix, nA, this.p3Screens[iB], this.colix, nB, this.p3Screens[iC], this.colix, nC, false); +this.g3d.fillTriangle3CNBits(this.p3Screens[iA], this.colix, nA, this.p3Screens[iC], this.colix, nC, this.p3Screens[iD], this.colix, nD, false); +continue; +}this.vwr.gdata.drawQuadrilateralBits(this.g3d, this.colix, this.p3Screens[iA], this.p3Screens[iB], this.p3Screens[iC], this.p3Screens[iD]); +} +} +if (generateSet) this.exportSurface(this.colix); +}, "~B,~B,~B"); +Clazz.defineMethod(c$, "isVisibleNormix", +function(normix){ +return (normix < 0 || this.transformedVectors[normix].z >= 0); +}, "~N"); +Clazz.defineMethod(c$, "drawTriangleBits", +function(screenA, colixA, screenB, colixB, screenC, colixC, check, diam){ +if (!this.antialias && diam == 1) { +this.vwr.gdata.drawTriangleBits(this.g3d, screenA, colixA, screenB, colixB, screenC, colixC, check); +return; +}if (this.antialias) diam <<= 1; +if ((check & 1) == 1) this.g3d.fillCylinderBits2(colixA, colixB, 1, diam, screenA, screenB); +if ((check & 2) == 2) this.g3d.fillCylinderBits2(colixB, colixC, 1, diam, screenB, screenC); +if ((check & 4) == 4) this.g3d.fillCylinderBits2(colixA, colixC, 1, diam, screenA, screenC); +}, "JU.P3,~N,JU.P3,~N,JU.P3,~N,~N,~N"); +Clazz.defineMethod(c$, "drawTriangle", +function(screenA, colixA, screenB, colixB, screenC, colixC, check, diam){ +if (!this.antialias && diam == 1) { +this.g3d.drawTriangle3C(screenA, colixA, screenB, colixB, screenC, colixC, check); +return; +}if (this.antialias) diam <<= 1; +if ((check & 1) == 1) this.g3d.fillCylinderXYZ(colixA, colixB, 1, diam, screenA.x, screenA.y, screenA.z, screenB.x, screenB.y, screenB.z); +if ((check & 2) == 2) this.g3d.fillCylinderXYZ(colixB, colixC, 1, diam, screenB.x, screenB.y, screenB.z, screenC.x, screenC.y, screenC.z); +if ((check & 4) == 4) this.g3d.fillCylinderXYZ(colixA, colixC, 1, diam, screenA.x, screenA.y, screenA.z, screenC.x, screenC.y, screenC.z); +}, "JU.P3i,~N,JU.P3i,~N,JU.P3i,~N,~N,~N"); +Clazz.defineMethod(c$, "checkFront", +function(nA, nB, nC){ +var check = 7; +if (this.transformedVectors[nA].z < 0) check ^= 1; +if (this.transformedVectors[nB].z < 0) check ^= 2; +if (this.transformedVectors[nC].z < 0) check ^= 4; +return check; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "drawEdge", +function(iA, iB, fill, vA, vB, sA, sB){ +var endCap = (iA != iB && !fill ? 0 : this.width < 0 || this.width == -0.0 || iA != iB && this.isTranslucent ? 2 : 3); +if (this.width == 0) { +if (this.diameter == 0) this.diameter = (this.mesh.diameter > 0 ? this.mesh.diameter : iA == iB ? 7 : 3); +if (this.exportType == 1) { +this.pt1f.ave(vA, vB); +this.tm.transformPtScr(this.pt1f, this.pt1i); +}if (iA == iB) { +this.pt1f.set(sA.x, sA.y, sA.z); +this.g3d.fillSphereBits(this.diameter, this.pt1f); +return; +}} else { +this.pt1f.ave(vA, vB); +this.tm.transformPtScr(this.pt1f, this.pt1i); +if (this.width < 0 && this.allowDashed) { +this.diameter = -1; +} else { +var mad = Clazz.doubleToInt(Math.floor(Math.abs(this.width) * 1000)); +this.diameter = Clazz.floatToInt(this.vwr.tm.scaleToScreen(this.pt1i.z, mad)); +}}if (this.diameter == 0) this.diameter = 1; +this.tm.transformPt2Df(vA, this.pt1f); +this.tm.transformPt2Df(vB, this.pt2f); +if (this.diameter == -1) { +this.g3d.drawLineAB(this.pt1f, this.pt2f); +} else if (this.diameter < 0) { +var idash = -this.diameter; +this.g3d.drawDashedLineBits(idash << 1, idash, this.pt1f, this.pt2f); +} else { +this.g3d.fillCylinderBits(endCap, this.diameter, this.pt1f, this.pt2f); +}}, "~N,~N,~B,JU.T3,JU.T3,JU.P3i,JU.P3i"); +Clazz.defineMethod(c$, "exportSurface", +function(colix){ +this.mesh.normals = this.mesh.getNormals(this.vertices, null); +this.mesh.bsPolygons = this.bsPolygonsToExport; +this.mesh.offset = this.latticeOffset; +this.g3d.drawSurface(this.mesh, colix); +this.mesh.normals = null; +this.mesh.bsPolygons = null; +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/RepaintManager.js b/config/plugins/visualizations/jmol/static/j2s/J/render/RepaintManager.js new file mode 100755 index 000000000000..c3ab9ed3a4ec --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/RepaintManager.js @@ -0,0 +1,180 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.api.JmolRepaintManager", "JU.BS"], "J.render.RepaintManager", ["J.api.Interface", "JU.Logger", "JV.JC", "$.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.shapeManager = null; +this.renderers = null; +this.bsTranslucent = null; +this.holdRepaint = 0; +this.repaintPending = false; +Clazz.instantialize(this, arguments);}, J.render, "RepaintManager", null, J.api.JmolRepaintManager); +Clazz.prepareFields (c$, function(){ +this.bsTranslucent = JU.BS.newN(37); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.overrideMethod(c$, "set", +function(vwr, shapeManager){ +this.vwr = vwr; +this.shapeManager = shapeManager; +}, "JV.Viewer,JV.ShapeManager"); +Clazz.overrideMethod(c$, "isRepaintPending", +function(){ +return this.repaintPending; +}); +Clazz.overrideMethod(c$, "pushHoldRepaint", +function(why){ +++this.holdRepaint; +}, "~S"); +Clazz.overrideMethod(c$, "popHoldRepaint", +function(andRepaint, why){ +if (why != null && why.startsWith("CLEAR HOLD")) { +this.holdRepaint = 0; +andRepaint = true; +}--this.holdRepaint; +if (this.holdRepaint <= 0) { +this.holdRepaint = 0; +if (andRepaint) { +this.repaintPending = true; +this.repaintNow(why); +}}}, "~B,~S"); +Clazz.overrideMethod(c$, "requestRepaintAndWait", +function(why){ +var jmol = null; +if (JV.Viewer.isJS && !JV.Viewer.isSwingJS) { +{ +jmol = (self.Jmol && Jmol.repaint ? Jmol : null) +}}if (jmol == null) { +try { +this.repaintNow(why); +if (!JV.Viewer.isJS) this.wait(this.vwr.g.repaintWaitMs); +if (this.repaintPending) { +JU.Logger.error("repaintManager requestRepaintAndWait timeout"); +this.repaintDone(); +}} catch (e) { +if (Clazz.exceptionOf(e,"InterruptedException")){ +System.out.println("repaintManager requestRepaintAndWait interrupted thread=" + Thread.currentThread().getName()); +} else { +throw e; +} +} +} else { +jmol.repaint(this.vwr.html5Applet, false); +this.repaintDone(); +}}, "~S"); +Clazz.overrideMethod(c$, "repaintIfReady", +function(why){ +if (this.repaintPending) return false; +this.repaintPending = true; +if (this.holdRepaint == 0) this.repaintNow(why); +return true; +}, "~S"); +Clazz.defineMethod(c$, "repaintNow", +function(why){ +if (!this.vwr.haveDisplay) return; +this.vwr.apiPlatform.repaint(this.vwr.display); +}, "~S"); +Clazz.overrideMethod(c$, "repaintDone", +function(){ +this.repaintPending = false; +{ +}}); +Clazz.overrideMethod(c$, "clear", +function(iShape){ +if (this.renderers == null) return; +if (iShape >= 0) this.renderers[iShape] = null; + else for (var i = 0; i < 37; ++i) this.renderers[i] = null; + +}, "~N"); +Clazz.defineMethod(c$, "getRenderer", +function(shapeID){ +if (this.renderers[shapeID] != null) return this.renderers[shapeID]; +var className = JV.JC.getShapeClassName(shapeID, true) + "Renderer"; +var renderer; +if ((renderer = J.api.Interface.getInterface(className, this.vwr, "render")) == null) return null; +renderer.setViewerG3dShapeID(this.vwr, shapeID); +return this.renderers[shapeID] = renderer; +}, "~N"); +Clazz.overrideMethod(c$, "render", +function(gdata, modelSet, isFirstPass, navMinMax){ +var g3d = gdata; +if (this.renderers == null) this.renderers = new Array(37); +this.getAllRenderers(); +try { +var logTime = this.vwr.getBoolean(603979934); +g3d.renderBackground(null); +if (isFirstPass) { +this.bsTranslucent.clearAll(); +if (navMinMax != null) g3d.renderCrossHairs(navMinMax, this.vwr.getScreenWidth(), this.vwr.getScreenHeight(), this.vwr.tm.getNavigationOffset(), this.vwr.tm.navigationDepthPercent); +var band = this.vwr.getRubberBandSelection(); +if (band != null && g3d.setC(this.vwr.cm.colixRubberband)) g3d.drawRect(band.x, band.y, 0, 0, band.width, band.height); +this.vwr.noFrankEcho = true; +}var msg = null; +for (var i = 0; i < 37 && gdata.currentlyRendering; ++i) { +var shape = this.shapeManager.getShape(i); +if (shape == null) continue; +if (logTime) { +msg = "rendering " + JV.JC.getShapeClassName(i, false); +JU.Logger.startTimer(msg); +}if ((isFirstPass || this.bsTranslucent.get(i)) && this.getRenderer(i).renderShape(g3d, modelSet, shape)) this.bsTranslucent.set(i); +if (logTime) JU.Logger.checkTimer(msg, false); +} +g3d.renderAllStrings(null); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +if (this.vwr.async && "Interface".equals(e.getMessage())) throw new NullPointerException(); +JU.Logger.error("rendering error? " + e); +} else { +throw e; +} +} +}, "JU.GData,JM.ModelSet,~B,~A"); +Clazz.defineMethod(c$, "getAllRenderers", +function(){ +var isOK = true; +for (var i = 0; i < 37; ++i) { +if (this.shapeManager.getShape(i) == null || this.getRenderer(i) != null) continue; +isOK = this.repaintPending = !this.vwr.async; +} +if (!isOK) throw new NullPointerException(); +}); +Clazz.overrideMethod(c$, "renderExport", +function(gdata, modelSet, params){ +var isOK; +this.shapeManager.finalizeAtoms(null, true); +var exporter3D = this.vwr.initializeExporter(params); +isOK = (exporter3D != null); +if (!isOK) { +JU.Logger.error("Cannot export " + params.get("type")); +return null; +}if (this.renderers == null) this.renderers = new Array(37); +this.getAllRenderers(); +var msg = null; +try { +var logTime = this.vwr.getBoolean(603979934); +exporter3D.renderBackground(exporter3D); +for (var i = 0; i < 37; ++i) { +var shape = this.shapeManager.getShape(i); +if (shape == null) continue; +if (logTime) { +msg = "rendering " + JV.JC.getShapeClassName(i, false); +JU.Logger.startTimer(msg); +}this.getRenderer(i).renderShape(exporter3D, modelSet, shape); +if (logTime) JU.Logger.checkTimer(msg, false); +} +exporter3D.renderAllStrings(exporter3D); +msg = exporter3D.finalizeOutput(); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +JU.Logger.error("rendering error? " + e); +} else { +throw e; +} +} +return msg; +}, "JU.GData,JM.ModelSet,java.util.Map"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/ShapeRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/ShapeRenderer.js new file mode 100755 index 000000000000..826cf1c57147 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/ShapeRenderer.js @@ -0,0 +1,48 @@ +Clazz.declarePackage("J.render"); +Clazz.load(null, "J.render.ShapeRenderer", ["JV.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.vwr = null; +this.tm = null; +this.g3d = null; +this.ms = null; +this.shape = null; +this.myVisibilityFlag = 0; +this.shapeID = 0; +this.colix = 0; +this.mad = 0; +this.exportType = 0; +this.isExport = false; +Clazz.instantialize(this, arguments);}, J.render, "ShapeRenderer", null); +Clazz.defineMethod(c$, "initRenderer", +function(){ +}); +Clazz.defineMethod(c$, "setViewerG3dShapeID", +function(vwr, shapeID){ +this.vwr = vwr; +this.tm = vwr.tm; +this.shapeID = shapeID; +this.myVisibilityFlag = JV.JC.getShapeVisibilityFlag(shapeID); +this.initRenderer(); +}, "JV.Viewer,~N"); +Clazz.defineMethod(c$, "renderShape", +function(g3d, modelSet, shape){ +this.setup(g3d, modelSet, shape); +var needsTranslucent = this.render(); +this.exportType = 0; +this.isExport = false; +return needsTranslucent; +}, "J.api.JmolRendererInterface,JM.ModelSet,J.shape.Shape"); +Clazz.defineMethod(c$, "setup", +function(g3d, modelSet, shape){ +this.g3d = g3d; +this.ms = modelSet; +this.shape = shape; +this.exportType = g3d.getExportType(); +this.isExport = (this.exportType != 0); +}, "J.api.JmolRendererInterface,JM.ModelSet,J.shape.Shape"); +Clazz.defineMethod(c$, "isVisibleForMe", +function(a){ +return a.isVisible(this.myVisibilityFlag | 9); +}, "JM.Atom"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/StarsRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/StarsRenderer.js new file mode 100755 index 000000000000..4d9761050244 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/StarsRenderer.js @@ -0,0 +1,50 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.ShapeRenderer"], "J.render.StarsRenderer", ["J.shape.Shape"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.mar = 0; +this.width = 0; +Clazz.instantialize(this, arguments);}, J.render, "StarsRenderer", J.render.ShapeRenderer); +Clazz.overrideMethod(c$, "render", +function(){ +var stars = this.shape; +if (stars.mads == null) return false; +var needTranslucent = false; +this.mar = Clazz.floatToInt(this.vwr.getFloat(570425403) * 1000); +if (this.mar == 0 && (this.g3d.isAntialiased() || this.isExport)) this.mar = 50; +var atoms = this.ms.at; +for (var i = this.ms.ac; --i >= 0; ) { +var atom = atoms[i]; +if (!this.isVisibleForMe(atom)) continue; +this.colix = J.shape.Shape.getColix(stars.colixes, i, atom); +if (this.g3d.setC(this.colix)) this.render1(atom, stars.mads[i]); + else needTranslucent = true; +} +return needTranslucent; +}); +Clazz.defineMethod(c$, "render1", +function(atom, mad){ +var x = atom.sX; +var y = atom.sY; +var z = atom.sZ; +var d = Clazz.floatToInt(this.vwr.tm.scaleToScreen(z, mad)); +d -= (d & 1) ^ 1; +var r = Clazz.doubleToInt(d / 2); +if (r < 1) r = 1; +if (this.mar > 0) { +this.width = Clazz.floatToInt(this.vwr.tm.scaleToScreen(z, this.mar)); +if (this.width == 0) this.width = 1; +if (this.width == 1 && this.g3d.isAntialiased()) this.width = 2; +} else { +this.drawLine(x - r - 1, y + 1, z, x - r - 1 + d, y + 1, z); +this.drawLine(x + 1, y + 1 - r, z, x + 1, y + 1 - r + d, z); +}this.drawLine(x - r, y, z, x - r + d, y, z); +this.drawLine(x, y - r, z, x, y - r + d, z); +this.drawLine(x, y, z - r, x, y, z - r + d); +}, "JM.Atom,~N"); +Clazz.defineMethod(c$, "drawLine", +function(xA, yA, zA, xB, yB, zB){ +if (this.mar > 0) this.g3d.fillCylinderXYZ(this.colix, this.colix, 2, this.width, xA, yA, zA, xB, yB, zB); + else this.g3d.drawLineXYZ(xA, yA, zA, xB, yB, zB); +}, "~N,~N,~N,~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/SticksRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/SticksRenderer.js new file mode 100755 index 000000000000..87c05ac31cf3 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/SticksRenderer.js @@ -0,0 +1,413 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.FontLineShapeRenderer", "JU.BS", "$.P3", "$.V3"], "J.render.SticksRenderer", ["JU.A4", "$.M3", "J.c.PAL", "JU.C", "$.Edge"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.showMultipleBonds = false; +this.multipleBondSpacing = 0; +this.multipleBondRadiusFactor = 0; +this.bondsPerp = false; +this.useBananas = false; +this.modeMultipleBond = 0; +this.isCartesian = false; +this.endcaps = 0; +this.ssbondsBackbone = false; +this.hbondsBackbone = false; +this.bondsBackbone = false; +this.hbondsSolid = false; +this.a = null; +this.b = null; +this.bond = null; +this.xA = 0; +this.yA = 0; +this.zA = 0; +this.xB = 0; +this.yB = 0; +this.zB = 0; +this.dx = 0; +this.dy = 0; +this.mag2d = 0; +this.bondOrder = 0; +this.wireframeOnly = false; +this.isAntialiased = false; +this.slabbing = false; +this.slabByAtom = false; +this.x = null; +this.y = null; +this.z = null; +this.p1 = null; +this.p2 = null; +this.bsForPass2 = null; +this.isPass2 = false; +this.xAxis1 = 0; +this.yAxis1 = 0; +this.xAxis2 = 0; +this.yAxis2 = 0; +this.dxStep = 0; +this.dyStep = 0; +this.rot = null; +this.a4 = null; +Clazz.instantialize(this, arguments);}, J.render, "SticksRenderer", J.render.FontLineShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.x = new JU.V3(); +this.y = new JU.V3(); +this.z = new JU.V3(); +this.p1 = new JU.P3(); +this.p2 = new JU.P3(); +this.bsForPass2 = JU.BS.newN(64); +}); +Clazz.overrideMethod(c$, "render", +function(){ +var bonds = this.ms.bo; +if (bonds == null) return false; +this.isPass2 = this.vwr.gdata.isPass2; +if (!this.isPass2) this.bsForPass2.clearAll(); +this.slabbing = this.tm.slabEnabled; +this.slabByAtom = this.vwr.getBoolean(603979939); +this.endcaps = 3; +this.dashDots = (this.vwr.getBoolean(603979893) ? J.render.FontLineShapeRenderer.sixdots : J.render.FontLineShapeRenderer.dashes); +this.isCartesian = (this.exportType == 1); +this.getMultipleBondSettings(false); +this.wireframeOnly = !this.vwr.checkMotionRendering(1677721602); +this.ssbondsBackbone = this.vwr.getBoolean(603979952); +this.hbondsBackbone = this.vwr.getBoolean(603979852); +this.bondsBackbone = new Boolean (this.hbondsBackbone | this.ssbondsBackbone).valueOf(); +this.hbondsSolid = this.vwr.getBoolean(603979854); +this.isAntialiased = this.g3d.isAntialiased(); +var needTranslucent = false; +if (this.isPass2) { +if (!this.isExport) for (var i = this.bsForPass2.nextSetBit(0); i >= 0; i = this.bsForPass2.nextSetBit(i + 1)) { +this.bond = bonds[i]; +this.renderBond(); +} +} else { +for (var i = this.ms.bondCount; --i >= 0; ) { +this.bond = bonds[i]; +if ((this.bond.shapeVisibilityFlags & this.myVisibilityFlag) != 0 && this.renderBond()) { +needTranslucent = true; +this.bsForPass2.set(i); +}} +}return needTranslucent; +}); +Clazz.defineMethod(c$, "getMultipleBondSettings", +function(isPymol){ +this.useBananas = (this.vwr.getBoolean(603979886) && !isPymol); +this.multipleBondSpacing = (isPymol ? 0.15 : this.vwr.getFloat(570425370)); +this.multipleBondRadiusFactor = (isPymol ? 0.4 : this.vwr.getFloat(570425369)); +this.bondsPerp = (this.useBananas || this.multipleBondSpacing > 0 && this.multipleBondRadiusFactor < 0); +if (this.useBananas) this.multipleBondSpacing = (this.multipleBondSpacing < 0 ? -this.multipleBondSpacing * 0.4 : this.multipleBondSpacing); +this.multipleBondRadiusFactor = Math.abs(this.multipleBondRadiusFactor); +if (this.multipleBondSpacing == 0 && this.isCartesian) this.multipleBondSpacing = 0.2; +this.modeMultipleBond = this.vwr.g.modeMultipleBond; +this.showMultipleBonds = (this.multipleBondSpacing != 0 && this.modeMultipleBond != 0 && this.vwr.getBoolean(603979928)); +}, "~B"); +Clazz.defineMethod(c$, "renderBond", +function(){ +var atomA0; +var atomB0; +this.a = atomA0 = this.bond.atom1; +this.b = atomB0 = this.bond.atom2; +var order = this.bond.order & 131071; +if (this.bondsBackbone) { +if (this.ssbondsBackbone && (order & 256) != 0) { +this.a = this.a.group.getLeadAtomOr(this.a); +this.b = this.b.group.getLeadAtomOr(this.b); +} else if (this.hbondsBackbone && JU.Edge.isOrderH(order)) { +this.a = this.a.group.getLeadAtomOr(this.a); +this.b = this.b.group.getLeadAtomOr(this.b); +}}if (!this.isPass2 && (!this.a.isVisible(9) || !this.b.isVisible(9) || !this.g3d.isInDisplayRange(this.a.sX, this.a.sY) || !this.g3d.isInDisplayRange(this.b.sX, this.b.sY))) return false; +if (this.slabbing) { +var ba = this.vwr.gdata.isClippedZ(this.a.sZ); +if (ba && this.vwr.gdata.isClippedZ(this.b.sZ) || this.slabByAtom && (ba || this.vwr.gdata.isClippedZ(this.b.sZ))) return false; +}this.zA = this.a.sZ; +this.zB = this.b.sZ; +if (this.zA == 1 || this.zB == 1) return false; +this.colixA = atomA0.colixAtom; +this.colixB = atomB0.colixAtom; +if (((this.colix = this.bond.colix) & -30721) == 2) { +this.colix = (this.colix & 30720); +this.colixA = JU.C.getColixInherited((this.colix | this.vwr.cm.getColixAtomPalette(atomA0, J.c.PAL.CPK.id)), this.colixA); +this.colixB = JU.C.getColixInherited((this.colix | this.vwr.cm.getColixAtomPalette(atomB0, J.c.PAL.CPK.id)), this.colixB); +} else { +this.colixA = JU.C.getColixInherited(this.colix, this.colixA); +this.colixB = JU.C.getColixInherited(this.colix, this.colixB); +}var needTranslucent = false; +if (!this.isExport && !this.isPass2) { +var doA = !JU.C.renderPass2(this.colixA); +var doB = !JU.C.renderPass2(this.colixB); +if (!doA || !doB) { +if (!doA && !doB && !needTranslucent) { +this.g3d.setC(!doA ? this.colixA : this.colixB); +return true; +}needTranslucent = true; +}}this.bondOrder = order & 131071; +if ((this.bondOrder & 224) == 0) { +if ((this.bondOrder & 256) != 0) this.bondOrder &= -257; +if ((this.bondOrder & 1023) != 0) { +if (!this.showMultipleBonds || (this.modeMultipleBond == 2 && this.mad > 500) || (this.bondOrder & 98304) == 65536) { +this.bondOrder = 1; +}}}var mask = 0; +switch (this.bondOrder) { +case 1025: +case 1041: +case 1057: +this.bondOrder = 1; +case 1: +case 2: +case 3: +case 4: +case 5: +case 6: +break; +case 17: +case 513: +this.bondOrder = 1; +mask = (order == 513 ? 0 : 1); +break; +case 515: +case 514: +this.bondOrder = 2; +mask = (order == 515 ? this.getAromaticDottedBondMask() : 0); +break; +default: +if ((this.bondOrder & 224) != 0) { +this.bondOrder = JU.Edge.getPartialBondOrder(order); +mask = JU.Edge.getPartialBondDotted(order); +} else if (JU.Edge.isOrderH(this.bondOrder)) { +this.bondOrder = 1; +if (!this.hbondsSolid) mask = -1; +} else if (this.bondOrder == 32768) { +this.bondOrder = 1; +} else if ((this.bondOrder & 98304) == 98304) { +this.getMultipleBondSettings(true); +this.bondOrder &= 3; +mask = -2; +}} +this.xA = this.a.sX; +this.yA = this.a.sY; +this.xB = this.b.sX; +this.yB = this.b.sY; +this.mad = this.bond.mad; +if (this.multipleBondRadiusFactor > 0 && this.bondOrder > 1) this.mad *= this.multipleBondRadiusFactor; +this.dx = this.xB - this.xA; +this.dy = this.yB - this.yA; +this.width = Clazz.floatToInt(this.vwr.tm.scaleToScreen(Clazz.doubleToInt((this.zA + this.zB) / 2), this.mad)); +if (this.wireframeOnly && this.width > 0) this.width = 1; +if (!this.isCartesian) { +this.asLineOnly = (this.width <= 1); +if (this.asLineOnly && (this.isAntialiased)) { +this.width = 3; +this.asLineOnly = false; +}}var renderD = (!this.isExport || this.mad == 1 ? this.width : this.mad); +switch (mask) { +case -2: +this.drawBond(0); +this.getMultipleBondSettings(false); +break; +case -1: +J.render.FontLineShapeRenderer.drawDashedCylinder(this.g3d, this.xA, this.yA, this.zA, this.xB, this.yB, this.zB, J.render.FontLineShapeRenderer.hDashes, this.width, this.colixA, this.colixB, renderD, this.asLineOnly, this.s1); +break; +default: +switch (this.bondOrder) { +case 4: +{ +this.bondOrder = 2; +var f = this.multipleBondRadiusFactor; +if (f == 0 && this.width > 1) this.width = Clazz.doubleToInt(this.width * 0.5); +var m = this.multipleBondSpacing; +if (m < 0) this.multipleBondSpacing = 0.30; +this.drawBond(mask); +this.bondsPerp = !this.bondsPerp; +this.bondOrder = 2; +this.drawBond(mask >> 2); +this.bondsPerp = !this.bondsPerp; +this.multipleBondSpacing = m; +}break; +case 5: +{ +this.bondOrder = 3; +var f = this.multipleBondRadiusFactor; +if (f == 0 && this.width > 1) this.width = Clazz.doubleToInt(this.width * 0.5); +var m = this.multipleBondSpacing; +if (m < 0) this.multipleBondSpacing = 0.20; +this.drawBond(mask); +this.bondsPerp = !this.bondsPerp; +this.bondOrder = 2; +this.multipleBondSpacing *= 1.5; +this.drawBond(mask >> 3); +this.bondsPerp = !this.bondsPerp; +this.multipleBondSpacing = m; +}break; +case 6: +{ +this.bondOrder = 4; +var f = this.multipleBondRadiusFactor; +if (f == 0 && this.width > 1) this.width = Clazz.doubleToInt(this.width * 0.5); +var m = this.multipleBondSpacing; +if (m < 0) this.multipleBondSpacing = 0.15; +this.drawBond(mask); +this.bondsPerp = !this.bondsPerp; +this.bondOrder = 2; +this.multipleBondSpacing *= 1.5; +this.drawBond(mask >> 4); +this.bondsPerp = !this.bondsPerp; +this.multipleBondSpacing = m; +}break; +default: +this.drawBond(mask); +} +break; +} +return needTranslucent; +}); +Clazz.defineMethod(c$, "drawBond", +function(dottedMask){ +var isDashed = (dottedMask & 1) != 0; +var endcaps = ((this.colixA & 30720) == 16384 || (this.colixB & 30720) == 16384 ? 2 : this.endcaps); +if (this.isCartesian && this.bondOrder == 1 && !isDashed) { +this.g3d.drawBond(this.a, this.b, this.colixA, this.colixB, endcaps, this.mad, -1); +return; +}var isEndOn = (this.dx == 0 && this.dy == 0); +if (isEndOn && this.asLineOnly && !this.isCartesian) return; +var renderD = (!this.isExport || this.mad == 1 ? this.width : this.mad); +var doFixedSpacing = (this.bondOrder > 1 && this.multipleBondSpacing > 0); +var isPiBonded = doFixedSpacing && (this.vwr.getHybridizationAndAxes(this.a.i, this.z, this.x, "pz") != null || this.vwr.getHybridizationAndAxes(this.b.i, this.z, this.x, "pz") != null) && !Float.isNaN(this.x.x); +if (isEndOn && !doFixedSpacing) { +var space = Clazz.doubleToInt(this.width / 8) + 3; +var step = this.width + space; +var y = this.yA - Clazz.doubleToInt((this.bondOrder - 1) * step / 2); +do { +J.render.FontLineShapeRenderer.fillCylinder(this.g3d, this.colixA, this.colixB, endcaps, this.xA, y, this.zA, this.xB, y, this.zB, renderD, this.asLineOnly); +y += step; +} while (--this.bondOrder > 0); +return; +}if (this.bondOrder == 1) { +if (isDashed) J.render.FontLineShapeRenderer.drawDashedCylinder(this.g3d, this.xA, this.yA, this.zA, this.xB, this.yB, this.zB, this.dashDots, this.width, this.colixA, this.colixB, renderD, this.asLineOnly, this.s1); + else J.render.FontLineShapeRenderer.fillCylinder(this.g3d, this.colixA, this.colixB, endcaps, this.xA, this.yA, this.zA, this.xB, this.yB, this.zB, renderD, this.asLineOnly); +return; +}if (doFixedSpacing) { +if (!isPiBonded) this.z.setT(JU.P3.getUnlikely()); +this.x.sub2(this.b, this.a); +this.y.cross(this.x, this.z); +this.y.normalize(); +if (Float.isNaN(this.y.x)) { +this.z.setT(JU.P3.getUnlikely()); +this.y.cross(this.x, this.z); +this.y.cross(this.y, this.x); +this.y.normalize(); +}if (this.bondsPerp) this.y.cross(this.y, this.x); +this.y.scale(this.multipleBondSpacing); +this.x.setT(this.y); +this.x.scale((this.bondOrder - 1) / 2); +if (this.useBananas) { +this.drawBanana(this.a, this.b, this.x, 0); +switch (this.bondOrder) { +case 4: +this.drawBanana(this.a, this.b, this.x, 90); +this.drawBanana(this.a, this.b, this.x, -90); +case 2: +default: +this.drawBanana(this.a, this.b, this.x, 180); +break; +case 3: +this.drawBanana(this.a, this.b, this.x, 120); +this.drawBanana(this.a, this.b, this.x, -120); +break; +} +return; +}this.p1.sub2(this.a, this.x); +this.p2.sub2(this.b, this.x); +while (true) { +if (this.isCartesian) { +this.g3d.drawBond(this.p1, this.p2, this.colixA, this.colixB, endcaps, this.mad, -2); +} else { +this.tm.transformPtScr(this.p1, this.s1); +this.tm.transformPtScr(this.p2, this.s2); +if (isDashed) J.render.FontLineShapeRenderer.drawDashedCylinder(this.g3d, this.s1.x, this.s1.y, this.s1.z, this.s2.x, this.s2.y, this.s2.z, this.dashDots, this.width, this.colixA, this.colixB, renderD, this.asLineOnly, this.s1); + else J.render.FontLineShapeRenderer.fillCylinder(this.g3d, this.colixA, this.colixB, endcaps, this.s1.x, this.s1.y, this.s1.z, this.s2.x, this.s2.y, this.s2.z, renderD, this.asLineOnly); +}dottedMask >>= 1; +isDashed = (dottedMask & 1) != 0; +if (--this.bondOrder <= 0) break; +this.p1.add(this.y); +this.p2.add(this.y); +this.stepAxisCoordinates(); +} +return; +}var dxB = this.dx * this.dx; +var dyB = this.dy * this.dy; +this.mag2d = Math.round(Math.sqrt(dxB + dyB)); +this.resetAxisCoordinates(); +if (this.isCartesian && this.bondOrder == 3) { +J.render.FontLineShapeRenderer.fillCylinder(this.g3d, this.colixA, this.colixB, endcaps, this.xAxis1, this.yAxis1, this.zA, this.xAxis2, this.yAxis2, this.zB, renderD, this.asLineOnly); +this.stepAxisCoordinates(); +this.x.sub2(this.b, this.a); +this.x.scale(0.05); +this.p1.sub2(this.a, this.x); +this.p2.add2(this.b, this.x); +this.g3d.drawBond(this.p1, this.p2, this.colixA, this.colixB, endcaps, this.mad, -2); +this.stepAxisCoordinates(); +J.render.FontLineShapeRenderer.fillCylinder(this.g3d, this.colixA, this.colixB, endcaps, this.xAxis1, this.yAxis1, this.zA, this.xAxis2, this.yAxis2, this.zB, renderD, this.asLineOnly); +return; +}while (true) { +if ((dottedMask & 1) != 0) J.render.FontLineShapeRenderer.drawDashedCylinder(this.g3d, this.xAxis1, this.yAxis1, this.zA, this.xAxis2, this.yAxis2, this.zB, this.dashDots, this.width, this.colixA, this.colixB, renderD, this.asLineOnly, this.s1); + else J.render.FontLineShapeRenderer.fillCylinder(this.g3d, this.colixA, this.colixB, endcaps, this.xAxis1, this.yAxis1, this.zA, this.xAxis2, this.yAxis2, this.zB, renderD, this.asLineOnly); +dottedMask >>= 1; +if (--this.bondOrder <= 0) break; +this.stepAxisCoordinates(); +} +}, "~N"); +Clazz.defineMethod(c$, "resetAxisCoordinates", +function(){ +var space = this.mag2d >> 3; +if (this.multipleBondSpacing != -1 && this.multipleBondSpacing < 0) space *= -this.multipleBondSpacing; +var step = this.width + space; +this.dxStep = Clazz.doubleToInt(step * this.dy / this.mag2d); +this.dyStep = Clazz.doubleToInt(step * -this.dx / this.mag2d); +this.xAxis1 = this.xA; +this.yAxis1 = this.yA; +this.xAxis2 = this.xB; +this.yAxis2 = this.yB; +var f = (this.bondOrder - 1); +this.xAxis1 -= Clazz.doubleToInt(this.dxStep * f / 2); +this.yAxis1 -= Clazz.doubleToInt(this.dyStep * f / 2); +this.xAxis2 -= Clazz.doubleToInt(this.dxStep * f / 2); +this.yAxis2 -= Clazz.doubleToInt(this.dyStep * f / 2); +}); +Clazz.defineMethod(c$, "stepAxisCoordinates", +function(){ +this.xAxis1 += this.dxStep; +this.yAxis1 += this.dyStep; +this.xAxis2 += this.dxStep; +this.yAxis2 += this.dyStep; +}); +Clazz.defineMethod(c$, "getAromaticDottedBondMask", +function(){ +var atomC = this.b.findAromaticNeighbor(this.a.i); +if (atomC == null) return 1; +var dxAC = atomC.sX - this.xA; +var dyAC = atomC.sY - this.yA; +return ((this.dx * dyAC - this.dy * dxAC) < 0 ? 2 : 1); +}); +Clazz.defineMethod(c$, "drawBanana", +function(a, b, x, deg){ +this.g3d.addRenderer(553648143); +this.vectorT.sub2(b, a); +if (this.rot == null) { +this.rot = new JU.M3(); +this.a4 = new JU.A4(); +}this.a4.setVA(this.vectorT, (deg * 3.141592653589793 / 180)); +this.rot.setAA(this.a4); +this.pointT.setT(a); +this.pointT3.setT(b); +this.pointT2.ave(a, b); +this.rot.rotate2(x, this.vectorT); +this.pointT2.add(this.vectorT); +this.tm.transformPtScrT3(a, this.pointT); +this.tm.transformPtScrT3(this.pointT2, this.pointT2); +this.tm.transformPtScrT3(b, this.pointT3); +var w = Math.max(this.width, 1); +this.g3d.setC(this.colixA); +this.g3d.fillHermite(5, w, w, w, this.pointT, this.pointT, this.pointT2, this.pointT3); +this.g3d.setC(this.colixB); +this.g3d.fillHermite(5, w, w, w, this.pointT, this.pointT2, this.pointT3, this.pointT3); +}, "JM.Atom,JM.Atom,JU.V3,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/TextRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/TextRenderer.js new file mode 100755 index 000000000000..fd8d7229d351 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/TextRenderer.js @@ -0,0 +1,110 @@ +Clazz.declarePackage("J.render"); +Clazz.load(null, "J.render.TextRenderer", ["JM.Text"], function(){ +var c$ = Clazz.declareType(J.render, "TextRenderer", null); +c$.render = Clazz.defineMethod(c$, "render", +function(vwr, text, g3d, scalePixelsPerMicron, imageFontScaling, boxXY, temp, pTemp, pointerColix, pointerWidth, mode){ +if (text == null || text.image == null && !text.doFormatText && text.lines == null) return false; +var isAbsolute = ((mode & 64) != 0); +var doPointer = ((mode & 1) != 0); +var isAntialiased = ((mode & 4) != 0); +var colix = text.colix; +var showText = g3d.setC(colix); +if (!showText && (text.image == null && (text.bgcolix == 0 || !g3d.setC(text.bgcolix)))) return false; +if (text.isEcho && text.valign == 4) J.render.TextRenderer.calcBarPixelsXYZ(vwr, text, pTemp, false); +text.setPosition(scalePixelsPerMicron, imageFontScaling, isAbsolute, boxXY); +var barPixels = (text.isEcho && text.valign == 4 ? J.render.TextRenderer.calcBarPixelsXYZ(vwr, text, pTemp, false) : text.barPixels); +if (text.image == null) { +if (text.bgcolix != 0) { +if (g3d.setC(text.bgcolix)) J.render.TextRenderer.showBox(g3d, text.colix, Clazz.floatToInt(text.boxX) - (barPixels == 0 ? 0 : barPixels + 4), Clazz.floatToInt(text.boxY) + text.boxYoff2 * 2, text.z + 2, text.zSlab, Clazz.floatToInt(text.boxWidth) + barPixels, Clazz.floatToInt(text.boxHeight), text.fontScale, !text.isEcho); +if (!showText) return false; +}for (var i = 0; i < text.lines.length; i++) { +text.setXYA(temp, i); +if (text.xyz != null) temp[1] += 2; +g3d.drawString(text.lines[i], text.font, Clazz.floatToInt(temp[0]), Clazz.floatToInt(temp[1]), text.z, text.zSlab, text.bgcolix); +} +if (text.barPixels > 0) { +J.render.TextRenderer.renderScale(g3d, text, temp, barPixels, isAntialiased); +}} else { +g3d.drawImage(text.image, Clazz.floatToInt(text.boxX), Clazz.floatToInt(text.boxY), text.z, text.zSlab, text.bgcolix, Clazz.floatToInt(text.boxWidth), Clazz.floatToInt(text.boxHeight)); +}if (!doPointer) return true; +J.render.TextRenderer.drawLineXYZ(g3d, text.atomX, text.atomY, text.atomZ, text.boxX, text.boxY, text.zSlab, text.boxWidth, text.boxHeight, pointerColix, pointerWidth * (isAntialiased ? 2 : 1)); +return true; +}, "JV.Viewer,JM.Text,J.api.JmolRendererInterface,~N,~N,~A,~A,JU.P3i,~N,~N,~N"); +c$.calcBarPixelsXYZ = Clazz.defineMethod(c$, "calcBarPixelsXYZ", +function(vwr, t, pTemp, andSet){ +var barPixels = t.barPixels; +if (t.xyz != null) { +vwr.tm.transformPtScr(t.xyz, pTemp); +if (andSet) t.setXYZs(pTemp.x, pTemp.y, pTemp.z, pTemp.z); +if (barPixels > 0 && vwr.tm.perspectiveDepth) { +var d = vwr.tm.unscaleToScreen(pTemp.z, barPixels); +barPixels = t.barPixelsXYZ = Clazz.floatToInt(barPixels * t.barDistance / d); +}}return barPixels; +}, "JV.Viewer,JM.Text,JU.P3i,~B"); +c$.renderScale = Clazz.defineMethod(c$, "renderScale", +function(g3d, text, temp, barPixels, isAntialiased){ +var z = text.z; +var xoff = (text.xyz == null ? 0 : 2); +var ia = (isAntialiased ? 2 : 1); +var i = 1; +var x1 = xoff + Clazz.floatToInt(temp[0]) - barPixels - i - ia * 2; +var x2 = xoff + Clazz.floatToInt(temp[0]) - i - ia * 2; +var h = Clazz.doubleToInt((text.lineHeight) / 2); +var y = Clazz.floatToInt(temp[1]) - i; +g3d.fillTextRect(x1, y - Clazz.doubleToInt(h / 2) - ia, z, text.zSlab, x2 - x1, 2 * ia); +g3d.fillTextRect(x1, y - Clazz.doubleToInt(h * 2 / 2), z, text.zSlab, 2 * ia, Clazz.doubleToInt(h * 2 / 2)); +g3d.fillTextRect(x2, y - Clazz.doubleToInt(h * 2 / 2), z, text.zSlab, 2 * ia, Clazz.doubleToInt(h * 2 / 2)); +for (var j = 1; j < 10; j++) { +var x1b = x1 + Clazz.doubleToInt(j * barPixels / 10); +var len = (j == 5 ? h : Clazz.doubleToInt(h / 2)); +g3d.fillTextRect(x1b, y - len, z, text.zSlab, 2 * ia, len); +} +}, "J.api.JmolRendererInterface,JM.Text,~A,~N,~B"); +c$.drawLineXYZ = Clazz.defineMethod(c$, "drawLineXYZ", +function(g3d, x0, y0, z0, x1, y1, z1, w, h, pointerColix, pointerWidth){ +var offsetX = x1 - x0; +var offsetY = y1 - y0; +if (offsetX <= 0 && -offsetX <= w && offsetY <= 0 && -offsetY <= h) return; +var setX = (offsetY > 0 || offsetY < -h); +var pt = NaN; +x1 += (setX ? (offsetX > w / 2 ? 0 : offsetX < -w * 3 / 2 ? w : (pt = w / 2)) : (offsetX > 0 ? 0 : w)); +var setY = !Float.isNaN(pt); +y1 += (setY && offsetY > 0 ? 0 : setY && offsetY < -h ? h : h / 2); +if (pointerWidth > 1) { +g3d.fillCylinderXYZ(pointerColix, pointerColix, 2, pointerWidth, x0, y0, z0, Clazz.floatToInt(x1), Clazz.floatToInt(y1), z1); +} else { +g3d.setC(pointerColix); +g3d.drawLineXYZ(x0, y0, z0, Clazz.floatToInt(x1), Clazz.floatToInt(y1), z1); +}}, "J.api.JmolRendererInterface,~N,~N,~N,~N,~N,~N,~N,~N,~N,~N"); +c$.renderSimpleLabel = Clazz.defineMethod(c$, "renderSimpleLabel", +function(g3d, font, strLabel, colix, bgcolix, boxXY, z, zSlab, xOffset, yOffset, ascent, descent, pointerColix, pointerWidth, mode){ +var w = font.stringWidth(strLabel) + 8; +var h = ascent + descent + 8; +var x0 = Clazz.floatToInt(boxXY[0]); +var y0 = Clazz.floatToInt(boxXY[1]); +var isAbsolute = ((mode & 64) != 0); +var doPointer = ((mode & 1) != 0); +var isAntialiased = ((mode & 4) != 0); +JM.Text.setBoxXY(w, h, xOffset, yOffset, boxXY, isAbsolute); +var x = boxXY[0]; +var y = boxXY[1]; +if (bgcolix != 0 && g3d.setC(bgcolix)) { +J.render.TextRenderer.showBox(g3d, colix, Clazz.floatToInt(x), Clazz.floatToInt(y), z, zSlab, Clazz.floatToInt(w), Clazz.floatToInt(h), 1, true); +} else { +g3d.setC(colix); +}g3d.drawString(strLabel, font, Clazz.floatToInt(x + 4), Clazz.floatToInt(y + 4 + ascent), z - 1, zSlab, bgcolix); +if (doPointer && (xOffset != 0 || yOffset != 0)) { +J.render.TextRenderer.drawLineXYZ(g3d, x0, y0, zSlab, x, y, zSlab, w, h, pointerColix, pointerWidth * (isAntialiased ? 2 : 1)); +}}, "J.api.JmolRendererInterface,JU.Font,~S,~N,~N,~A,~N,~N,~N,~N,~N,~N,~N,~N,~N"); +c$.showBox = Clazz.defineMethod(c$, "showBox", +function(g3d, colix, x, y, z, zSlab, boxWidth, boxHeight, imageFontScaling, atomBased){ +g3d.fillTextRect(x, y, z, zSlab, boxWidth, boxHeight); +g3d.setC(colix); +if (!atomBased) return; +if (imageFontScaling >= 2) { +g3d.drawRect(x + 3, y + 3, z - 1, zSlab, boxWidth - 6, boxHeight - 6); +} else { +g3d.drawRect(x + 1, y + 1, z - 1, zSlab, boxWidth - 2, boxHeight - 2); +}}, "J.api.JmolRendererInterface,~N,~N,~N,~N,~N,~N,~N,~N,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/render/UccageRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/render/UccageRenderer.js new file mode 100755 index 000000000000..5e58a1c04a53 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/render/UccageRenderer.js @@ -0,0 +1,136 @@ +Clazz.declarePackage("J.render"); +Clazz.load(["J.render.CageRenderer", "JU.P3"], "J.render.UccageRenderer", ["JU.DF", "JU.BoxInfo", "$.C", "$.SimpleUnitCell"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.verticesT = null; +this.cellRange = null; +this.offset = null; +this.offsetT = null; +this.unitcell = null; +this.lineheight = 0; +this.xpos = 0; +this.ypos = 0; +Clazz.instantialize(this, arguments);}, J.render, "UccageRenderer", J.render.CageRenderer); +Clazz.prepareFields (c$, function(){ +this.verticesT = new Array(8); +this.cellRange = Clazz.newArray(-1, [ new JU.P3(), new JU.P3()]); +this.offset = new JU.P3(); +this.offsetT = new JU.P3(); +}); +Clazz.overrideMethod(c$, "initRenderer", +function(){ +for (var i = 8; --i >= 0; ) this.verticesT[i] = new JU.P3(); + +this.tickEdges = JU.BoxInfo.uccageTickEdges; +this.draw000 = false; +}); +Clazz.overrideMethod(c$, "render", +function(){ +this.imageFontScaling = this.vwr.imageFontScaling; +this.font3d = this.vwr.gdata.getFont3DScaled((this.shape).font3d, this.imageFontScaling); +var mad10 = this.vwr.getObjectMad10(5); +if (mad10 == 0 || this.vwr.isJmolDataFrame() || this.tm.isNavigating() && this.vwr.getBoolean(603979890)) return false; +this.colix = this.vwr.getObjectColix(5); +var needTranslucent = JU.C.renderPass2(this.colix); +if (!this.isExport && needTranslucent != this.vwr.gdata.isPass2) return needTranslucent; +this.render1(mad10); +return false; +}); +Clazz.defineMethod(c$, "render1", +function(mad10){ +this.g3d.setC(this.colix); +this.unitcell = this.vwr.getCurrentUnitCell(); +if (this.unitcell == null) return; +this.isPolymer = this.unitcell.isPolymer(); +this.isSlab = this.unitcell.isSlab(); +var vertices = this.unitcell.getUnitCellVerticesNoOffset(); +this.offset.setT(this.unitcell.getCartesianOffset()); +this.offsetT.setT(this.unitcell.getFractionalOrigin()); +this.unitcell.toCartesian(this.offsetT, true); +this.offset.sub(this.offsetT); +var hiddenLines = this.vwr.getBoolean(603979856); +var fset = this.unitcell.getUnitCellMultiplier(); +var haveMultiple = (fset != null && !fset.equals(J.render.UccageRenderer.fset0)); +if (!haveMultiple) fset = J.render.UccageRenderer.fset0; +JU.SimpleUnitCell.getCellRange(fset, this.cellRange); +var firstLine; +var allow0; +var allow1; +var scale = Math.abs(fset.z); +var axes = this.vwr.shm.getShape(34); +if (axes != null && this.vwr.areAxesTainted()) axes.reinitShape(); +var axisPoints = (axes == null || this.vwr.getObjectMad10(1) == 0 || axes.axisXY.z != 0 && (axes.axes2 == null || axes.axes2.length == 3) || axes.fixedOrigin != null || axes.fixedOriginUC.lengthSquared() > 0 ? null : axes.axisPoints); +var drawAllLines = (this.isExport || this.vwr.getObjectMad10(1) == 0 || this.vwr.getFloat(570425346) < 2 || axisPoints == null); +var aPoints = axisPoints; +var faces = (hiddenLines ? JU.BoxInfo.facePoints : null); +if (fset.z == 0) { +this.offsetT.setT(this.cellRange[0]); +this.unitcell.toCartesian(this.offsetT, true); +this.offsetT.add(this.offset); +aPoints = (this.cellRange[0].x == 0 && this.cellRange[0].y == 0 && this.cellRange[0].z == 0 ? axisPoints : null); +firstLine = 0; +allow0 = 0xFF; +allow1 = 0xFF; +var pts = JU.BoxInfo.unitCubePoints; +for (var i = 8; --i >= 0; ) { +var v = JU.P3.new3(pts[i].x * (this.cellRange[1].x - this.cellRange[0].x), pts[i].y * (this.cellRange[1].y - this.cellRange[0].y), pts[i].z * (this.cellRange[1].z - this.cellRange[0].z)); +this.unitcell.toCartesian(v, true); +this.verticesT[i].add2(v, this.offsetT); +} +this.renderCage(mad10, this.verticesT, faces, aPoints, firstLine, allow0, allow1, 1); +} else { +for (var x = Clazz.floatToInt(this.cellRange[0].x); x < this.cellRange[1].x; x++) { +for (var y = Clazz.floatToInt(this.cellRange[0].y); y < this.cellRange[1].y; y++) { +for (var z = Clazz.floatToInt(this.cellRange[0].z); z < this.cellRange[1].z; z++) { +if (haveMultiple) { +this.offsetT.set(x, y, z); +this.offsetT.scale(scale); +this.unitcell.toCartesian(this.offsetT, true); +this.offsetT.add(this.offset); +aPoints = (x == 0 && y == 0 && z == 0 ? axisPoints : null); +firstLine = (drawAllLines || aPoints == null ? 0 : 3); +} else { +this.offsetT.setT(this.offset); +firstLine = (drawAllLines ? 0 : 3); +}allow0 = 0xFF; +allow1 = 0xFF; +for (var i = 8; --i >= 0; ) this.verticesT[i].add2(vertices[i], this.offsetT); + +this.renderCage(mad10, this.verticesT, faces, aPoints, firstLine, allow0, allow1, scale); +} +} +} +}this.renderInfo(); +}, "~N"); +Clazz.defineMethod(c$, "renderInfo", +function(){ +var showDetails = this.vwr.getBoolean(603979937); +if (this.isExport || !this.vwr.getBoolean(603979828) || this.vwr.isPreviewOnly || !this.vwr.gdata.setC(this.vwr.cm.colixBackgroundContrast) || this.vwr.gdata.getTextPosition() != 0) return; +this.vwr.gdata.setFontBold("Monospaced", 14 * this.imageFontScaling); +this.xpos = Clazz.doubleToInt(Math.floor(10 * this.imageFontScaling)); +this.ypos = this.lineheight = Clazz.doubleToInt(Math.floor(15 * this.imageFontScaling)); +if (!this.unitcell.isSimple()) { +var sgName = this.unitcell.getUnitCellDisplayName(); +if (sgName != null) { +this.drawInfo(sgName, 0, null); +}var info = this.unitcell.getMoreInfo(); +if (info != null) for (var i = 0; i < info.size(); i++) this.drawInfo(info.get(i), 0, null); + +if (!showDetails) return; +}this.drawInfo("a=", 0, "\u00C5"); +if (!this.isPolymer) this.drawInfo("b=", 1, "\u00C5"); +if (!this.isPolymer && !this.isSlab) this.drawInfo("c=", 2, "\u00C5"); +if (!this.isPolymer) { +if (!this.isSlab) { +this.drawInfo("\u03B1=", 3, "\u00B0"); +this.drawInfo("\u03B2=", 4, "\u00B0"); +}this.drawInfo("\u03B3=", 5, "\u00B0"); +}}); +Clazz.defineMethod(c$, "drawInfo", +function(s, type, post){ +this.ypos += this.lineheight; +if (post != null) s += JU.DF.formatDecimal(this.unitcell.getUnitCellInfoType(type), 3) + post; +this.g3d.drawStringNoSlab(s, null, this.xpos, this.ypos, 0, 0); +}, "~S,~N,~S"); +c$.fset0 = JU.P3.new3(555, 555, 1); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/BackboneRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/BackboneRenderer.js new file mode 100755 index 000000000000..852428f99dea --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/BackboneRenderer.js @@ -0,0 +1,26 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(["J.renderbio.BioShapeRenderer"], "J.renderbio.BackboneRenderer", ["JU.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isDataFrame = false; +Clazz.instantialize(this, arguments);}, J.renderbio, "BackboneRenderer", J.renderbio.BioShapeRenderer); +Clazz.overrideMethod(c$, "renderBioShape", +function(bioShape){ +var checkPass2 = (!this.isExport && !this.vwr.gdata.isPass2); +this.isDataFrame = this.ms.isJmolDataFrameForModel(bioShape.modelIndex); +var n = this.monomerCount; +var atoms = this.ms.at; +for (var i = this.bsVisible.nextSetBit(0); i >= 0; i = this.bsVisible.nextSetBit(i + 1)) { +var atomA = atoms[this.leadAtomIndices[i]]; +var cA = this.colixes[i]; +this.mad = this.mads[i]; +var i1 = (i + 1) % n; +var atomB = atoms[this.leadAtomIndices[i1]]; +var cB = this.colixes[i1]; +if (atomA.nBackbonesDisplayed > 0 && atomB.nBackbonesDisplayed > 0 && !this.ms.isAtomHidden(atomB.i) && (this.isDataFrame || atomA.distanceSquared(atomB) < 100)) { +cA = JU.C.getColixInherited(cA, atomA.colixAtom); +cB = JU.C.getColixInherited(cB, atomB.colixAtom); +if (!checkPass2 || this.setBioColix(cA) || this.setBioColix(cB)) this.drawSegmentAB(atomA, atomB, cA, cB, 100); +}} +}, "J.shapebio.BioShape"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/BioMeshRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/BioMeshRenderer.js new file mode 100755 index 000000000000..90bc6b06a61d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/BioMeshRenderer.js @@ -0,0 +1,280 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(["J.render.MeshRenderer", "JU.A4", "$.M3", "$.P3", "$.V3"], "J.renderbio.BioMeshRenderer", ["JU.BS", "J.shape.Mesh", "JU.GData", "$.Logger", "$.Normix"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.meshes = null; +this.meshReady = null; +this.bsRenderMesh = null; +this.bsr = null; +this.doCap0 = false; +this.doCap1 = false; +this.controlHermites = null; +this.wingHermites = null; +this.radiusHermites = null; +this.norm = null; +this.wing = null; +this.wing1 = null; +this.wingT = null; +this.aa = null; +this.pt = null; +this.pt1 = null; +this.ptPrev = null; +this.ptNext = null; +this.mat = null; +this.bsTemp = null; +this.norml = null; +Clazz.instantialize(this, arguments);}, J.renderbio, "BioMeshRenderer", J.render.MeshRenderer); +Clazz.prepareFields (c$, function(){ +this.norm = new JU.V3(); +this.wing = new JU.V3(); +this.wing1 = new JU.V3(); +this.wingT = new JU.V3(); +this.aa = new JU.A4(); +this.pt = new JU.P3(); +this.pt1 = new JU.P3(); +this.ptPrev = new JU.P3(); +this.ptNext = new JU.P3(); +this.mat = new JU.M3(); +this.norml = new JU.V3(); +}); +Clazz.overrideMethod(c$, "render", +function(){ +return false; +}); +Clazz.defineMethod(c$, "initialize", +function(bsr, bioShape, monomerCount){ +this.bsr = bsr; +this.bsRenderMesh = JU.BS.newN(monomerCount); +this.meshReady = bioShape.meshReady; +this.meshes = bioShape.meshes; +}, "J.render.ShapeRenderer,J.shapebio.BioShape,~N"); +Clazz.defineMethod(c$, "renderBioMesh", +function(mesh){ +if (mesh.normalsTemp != null) { +mesh.setNormixes(mesh.normalsTemp); +mesh.normalsTemp = null; +} else if (mesh.normixes == null) { +mesh.initialize(1073741958, null, null); +}this.renderMesh2(mesh); +}, "J.shape.Mesh"); +Clazz.defineMethod(c$, "setFancyRibbon", +function(i){ +try { +if ((this.meshes[i] == null || !this.meshReady[i]) && !this.createMesh(i, this.bsr.madBeg, this.bsr.madMid, this.bsr.madEnd, this.bsr.aspectRatio, this.bsr.isNucleic ? 4 : 7)) return; +this.meshes[i].setColix(this.bsr.colix); +this.meshes[i].setColixBack(this.bsr.colixBack); +this.bsRenderMesh.set(i); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +this.bsRenderMesh.clear(i); +this.meshes[i] = null; +JU.Logger.error("render mesh error hermiteRibbon: " + e.toString()); +} else { +throw e; +} +} +}, "~N"); +Clazz.defineMethod(c$, "setFancyConic", +function(i, tension){ +try { +if ((this.meshes[i] == null || !this.meshReady[i]) && !this.createMesh(i, this.bsr.madBeg, this.bsr.madMid, this.bsr.madEnd, 1, tension)) return; +this.meshes[i].setColix(this.bsr.colix); +this.bsRenderMesh.set(i); +return; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +this.bsRenderMesh.clear(i); +this.meshes[i] = null; +JU.Logger.error("render mesh error hermiteConic: " + e.toString()); +} else { +throw e; +} +} +}, "~N,~N"); +Clazz.defineMethod(c$, "setFancyArrowHead", +function(i){ +try { +this.doCap0 = true; +this.doCap1 = false; +if ((this.meshes[i] == null || !this.meshReady[i]) && !this.createMesh(i, Clazz.doubleToInt(Math.floor(this.bsr.madBeg * 1.2)), Clazz.doubleToInt(Math.floor(this.bsr.madBeg * 0.6)), 0, (this.bsr.aspectRatio == 1 ? this.bsr.aspectRatio : this.bsr.aspectRatio / 2), 7)) return; +this.meshes[i].setColix(this.bsr.colix); +this.bsRenderMesh.set(i); +return; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +this.bsRenderMesh.clear(i); +this.meshes[i] = null; +JU.Logger.error("render mesh error hermiteArrowHead: " + e.toString()); +} else { +throw e; +} +} +}, "~N"); +Clazz.defineMethod(c$, "createMesh", +function(i, madBeg, madMid, madEnd, aspectRatio, tension){ +this.bsr.setNeighbors(i); +var cp = this.bsr.controlPoints; +if (cp[i].distanceSquared(cp[this.bsr.iNext]) == 0) return false; +var isEccentric = (aspectRatio != 1 && this.bsr.wingVectors != null); +var isFlatMesh = (aspectRatio == 0); +var isElliptical = (this.bsr.cartoonsFancy || this.bsr.hermiteLevel >= 6); +var nHermites = (this.bsr.hermiteLevel + 1) * 2 + 1; +var nPer = (isFlatMesh ? 4 : (this.bsr.hermiteLevel + 1) * 4 - 2); +var angle = ((isFlatMesh ? 3.141592653589793 / (nPer - 1) : 6.283185307179586 / nPer)); +var mesh = this.meshes[i] = new J.shape.Mesh().mesh1(this.vwr, "mesh_" + this.shapeID + "_" + i, 0, i); +var variableRadius = (madBeg != madMid || madMid != madEnd); +if (this.controlHermites == null || this.controlHermites.length < nHermites + 1) { +this.controlHermites = new Array(nHermites + 1); +}JU.GData.getHermiteList(tension, cp[this.bsr.iPrev], cp[i], cp[this.bsr.iNext], cp[this.bsr.iNext2], cp[this.bsr.iNext3], this.controlHermites, 0, nHermites, true); +if (this.wingHermites == null || this.wingHermites.length < nHermites + 1) { +this.wingHermites = new Array(nHermites + 1); +}this.wing.setT(this.bsr.wingVectors[this.bsr.iPrev]); +if (madEnd == 0) this.wing.scale(2.0); +JU.GData.getHermiteList(tension, this.wing, this.bsr.wingVectors[i], this.bsr.wingVectors[this.bsr.iNext], this.bsr.wingVectors[this.bsr.iNext2], this.bsr.wingVectors[this.bsr.iNext3], this.wingHermites, 0, nHermites, false); +var radius1 = madBeg / 2000; +var radius2 = madMid / 2000; +var radius3 = madEnd / 2000; +if (variableRadius) { +if (this.radiusHermites == null || this.radiusHermites.length < ((nHermites + 1) >> 1) + 1) { +this.radiusHermites = new Array(((nHermites + 1) >> 1) + 1); +}this.ptPrev.set(radius1, radius1, 0); +this.pt.set(radius1, radius2, 0); +this.pt1.set(radius2, radius3, 0); +this.ptNext.set(radius3, radius3, 0); +JU.GData.getHermiteList(4, this.ptPrev, this.pt, this.pt1, this.ptNext, this.ptNext, this.radiusHermites, 0, (nHermites + 1) >> 1, true); +}var nPoints = 0; +var iMid = nHermites >> 1; +var kpt1 = Clazz.doubleToInt((nPer + 2) / 4); +var kpt2 = Clazz.doubleToInt((3 * nPer + 2) / 4); +var mode = (!isEccentric ? 0 : isFlatMesh ? 1 : isElliptical ? 2 : 3); +var useMat = (mode == 0 || mode == 3); +for (var p = 0; p < nHermites; p++) { +this.norm.sub2(this.controlHermites[p + 1], this.controlHermites[p]); +var scale = (!variableRadius ? radius1 : p < iMid ? this.radiusHermites[p].x : this.radiusHermites[p - iMid].y); +this.wing.setT(this.wingHermites[p]); +this.wing1.setT(this.wing); +switch (mode) { +case 1: +break; +case 2: +this.wing1.cross(this.norm, this.wing); +this.wing1.normalize(); +this.wing1.scale(this.wing.length() / aspectRatio); +break; +case 3: +this.wing.scale(2 / aspectRatio); +this.wing1.sub(this.wing); +break; +case 0: +this.wing.cross(this.wing, this.norm); +this.wing.normalize(); +break; +} +this.wing.scale(scale); +this.wing1.scale(scale); +if (useMat) { +this.aa.setVA(this.norm, angle); +this.mat.setAA(this.aa); +}this.pt1.setT(this.controlHermites[p]); +var theta = (isFlatMesh ? 0 : angle); +for (var k = 0; k < nPer; k++, theta += angle) { +if (useMat && k > 0) this.mat.rotate(this.wing); +switch (mode) { +case 1: +this.wingT.setT(this.wing1); +this.wingT.scale(Math.cos(theta)); +break; +case 2: +this.wingT.setT(this.wing1); +this.wingT.scale(Math.sin(theta)); +this.wingT.scaleAdd2(Math.cos(theta), this.wing, this.wingT); +break; +case 3: +this.wingT.setT(this.wing); +if (k == kpt1 || k == kpt2) this.wing1.scale(-1); +this.wingT.add(this.wing1); +break; +case 0: +this.wingT.setT(this.wing); +break; +} +this.pt.add2(this.pt1, this.wingT); +mesh.addV(this.pt, true); +} +if (p > 0) { +var nLast = (isFlatMesh ? nPer - 1 : nPer); +for (var k = 0; k < nLast; k++) { +var a = nPoints - nPer + k; +var b = nPoints - nPer + ((k + 1) % nPer); +var c = nPoints + ((k + 1) % nPer); +var d = nPoints + k; +if (k < Clazz.doubleToInt(nLast / 2)) mesh.addQuad(a, b, c, d); + else mesh.addQuad(b, c, d, a); +} +}nPoints += nPer; +} +if (!isFlatMesh) { +var nPointsPreCap = nPoints; +if (this.doCap0) { +var vs = mesh.getVertices(); +for (var l = 0; l < nPer; l++) mesh.addV(vs[l], true); + +nPoints += nPer; +for (var k = this.bsr.hermiteLevel * 2; --k >= 0; ) mesh.addQuad(nPoints - nPer + k + 2, nPoints - nPer + k + 1, nPoints - nPer + (nPer - k) % nPer, nPoints - k - 1); + +}if (this.doCap1) { +var vs = mesh.getVertices(); +for (var l = 0; l < nPer; l++) mesh.addV(vs[nPointsPreCap - nPer + l], true); + +nPoints += nPer; +for (var k = this.bsr.hermiteLevel * 2; --k >= 0; ) mesh.addQuad(nPoints - k - 1, nPoints - nPer + (nPer - k) % nPer, nPoints - nPer + k + 1, nPoints - nPer + k + 2); + +}}this.meshReady[i] = true; +this.adjustCartoonSeamNormals(i, nPer); +mesh.setVisibilityFlags(1); +return true; +}, "~N,~N,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "adjustCartoonSeamNormals", +function(i, nPer){ +if (this.bsTemp == null) this.bsTemp = JU.Normix.newVertexBitSet(); +if (i == this.bsr.iNext - 1 && this.bsr.iNext < this.bsr.monomerCount && this.bsr.monomers[i].getStrucNo() == this.bsr.monomers[this.bsr.iNext].getStrucNo() && this.meshReady[i] && this.meshReady[this.bsr.iNext]) { +try { +var normals2 = this.meshes[this.bsr.iNext].getNormalsTemp(); +var normals = this.meshes[i].getNormalsTemp(); +var normixCount = normals.length; +if (this.doCap0) normixCount -= nPer; +for (var j = 1; j <= nPer; ++j) { +this.norml.add2(normals[normixCount - j], normals2[nPer - j]); +this.norml.normalize(); +normals[normixCount - j].setT(this.norml); +normals2[nPer - j].setT(this.norml); +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +}}, "~N,~N"); +Clazz.defineMethod(c$, "renderMeshes", +function(){ +if (this.bsRenderMesh.isEmpty()) return; +this.setColix(this.bsr.colix); +for (var i = this.bsRenderMesh.nextSetBit(0); i >= 0; i = this.bsRenderMesh.nextSetBit(i + 1)) this.renderBioMesh(this.meshes[i]); + +}); +Clazz.defineMethod(c$, "initBS", +function(){ +this.bsRenderMesh.clearAll(); +}); +Clazz.defineMethod(c$, "check", +function(doCap0, doCap1){ +this.doCap0 = doCap0; +this.doCap1 = doCap1; +return (this.exportType == 1 || this.checkDiameter(this.bsr.diameterBeg) || this.checkDiameter(this.bsr.diameterMid) || this.checkDiameter(this.bsr.diameterEnd)); +}, "~B,~B"); +Clazz.defineMethod(c$, "checkDiameter", +function(d){ +return (this.bsr.isHighRes && d > 3 || d >= 8); +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/BioShapeRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/BioShapeRenderer.js new file mode 100755 index 000000000000..aaa482eb5673 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/BioShapeRenderer.js @@ -0,0 +1,327 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(["J.render.ShapeRenderer", "JU.BS", "$.P3"], "J.renderbio.BioShapeRenderer", ["javajs.api.Interface", "J.c.STR", "JU.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.invalidateMesh = false; +this.invalidateSheets = false; +this.isTraceAlpha = false; +this.ribbonBorder = false; +this.haveControlPointScreens = false; +this.aspectRatio = 0; +this.hermiteLevel = 0; +this.sheetSmoothing = 0; +this.cartoonsFancy = false; +this.monomerCount = 0; +this.monomers = null; +this.isNucleic = false; +this.isPhosphorusOnly = false; +this.isCarbohydrate = false; +this.bsVisible = null; +this.ribbonTopScreens = null; +this.ribbonBottomScreens = null; +this.controlPoints = null; +this.controlPointScreens = null; +this.leadAtomIndices = null; +this.wingVectors = null; +this.mads = null; +this.colixes = null; +this.colixesBack = null; +this.structureTypes = null; +this.isHighRes = false; +this.wireframeOnly = false; +this.needTranslucent = false; +this.meshRenderer = null; +this.bioShape = null; +this.pointT = null; +this.iPrev = 0; +this.iNext = 0; +this.iNext2 = 0; +this.iNext3 = 0; +this.diameterBeg = 0; +this.diameterMid = 0; +this.diameterEnd = 0; +this.madBeg = 0; +this.madMid = 0; +this.madEnd = 0; +this.colixBack = 0; +this.reversed = null; +this.isCyclic = false; +this.screenArrowTop = null; +this.screenArrowTopPrev = null; +this.screenArrowBot = null; +this.screenArrowBotPrev = null; +Clazz.instantialize(this, arguments);}, J.renderbio, "BioShapeRenderer", J.render.ShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.bsVisible = new JU.BS(); +this.pointT = new JU.P3(); +this.screenArrowTop = new JU.P3(); +this.screenArrowTopPrev = new JU.P3(); +this.screenArrowBot = new JU.P3(); +this.screenArrowBotPrev = new JU.P3(); +}); +Clazz.overrideMethod(c$, "render", +function(){ +if (this.shape == null) return false; +this.setGlobals(); +this.renderShapes(); +return this.needTranslucent; +}); +Clazz.defineMethod(c$, "setGlobals", +function(){ +this.invalidateMesh = false; +this.needTranslucent = false; +this.g3d.addRenderer(553648143); +var TF = (!this.isExport && !this.vwr.checkMotionRendering(1112152066)); +if (TF != this.wireframeOnly) this.invalidateMesh = true; +this.wireframeOnly = TF; +TF = (this.isExport || !this.wireframeOnly && this.vwr.getBoolean(603979864)); +if (TF != this.isHighRes) this.invalidateMesh = true; +this.isHighRes = TF; +TF = !this.wireframeOnly && (this.vwr.getBoolean(603979816) || this.isExport); +if (this.cartoonsFancy != TF) { +this.invalidateMesh = true; +this.cartoonsFancy = TF; +}var val1 = this.vwr.getHermiteLevel(); +val1 = (val1 <= 0 ? -val1 : this.vwr.getInMotion(true) ? 0 : val1); +if (this.cartoonsFancy && !this.wireframeOnly) val1 = Math.max(val1, 3); +if (val1 != this.hermiteLevel) this.invalidateMesh = true; +this.hermiteLevel = Math.min(val1, 8); +var val = this.vwr.getInt(553648166); +val = Math.min(Math.max(0, val), 20); +if (this.cartoonsFancy && val >= 16) val = 4; +if (this.wireframeOnly || this.hermiteLevel == 0) val = 0; +if (val != this.aspectRatio && val != 0 && val1 != 0) this.invalidateMesh = true; +this.aspectRatio = val; +if (this.aspectRatio > 0) { +if (this.meshRenderer == null) { +this.meshRenderer = javajs.api.Interface.getInterface("J.renderbio.BioMeshRenderer"); +this.meshRenderer.setViewerG3dShapeID(this.vwr, this.shape.shapeID); +}this.meshRenderer.setup(this.g3d, this.ms, this.shape); +}TF = this.vwr.getBoolean(603979966); +if (TF != this.isTraceAlpha) this.invalidateMesh = true; +this.isTraceAlpha = TF; +this.invalidateSheets = false; +var fval = this.vwr.getFloat(570425392); +if (fval != this.sheetSmoothing && this.isTraceAlpha) { +this.sheetSmoothing = fval; +this.invalidateMesh = true; +this.invalidateSheets = true; +}}); +Clazz.defineMethod(c$, "renderShapes", +function(){ +var mps = this.shape; +for (var c = mps.bioShapes.length; --c >= 0; ) { +this.bioShape = mps.getBioShape(c); +if ((this.bioShape.modelVisibilityFlags & this.myVisibilityFlag) == 0) continue; +if (this.bioShape.monomerCount >= 2 && this.initializePolymer(this.bioShape)) { +if (this.meshRenderer != null) this.meshRenderer.initBS(); +this.isCyclic = this.bioShape.bioPolymer.isCyclic(); +this.renderBioShape(this.bioShape); +if (this.meshRenderer != null) this.meshRenderer.renderMeshes(); +this.freeTempArrays(); +}} +}); +Clazz.defineMethod(c$, "setBioColix", +function(colix){ +if (this.g3d.setC(colix)) return true; +this.needTranslucent = true; +return false; +}, "~N"); +Clazz.defineMethod(c$, "freeTempArrays", +function(){ +if (this.haveControlPointScreens) this.vwr.freeTempPoints(this.controlPointScreens); +this.vwr.freeTempEnum(this.structureTypes); +}); +Clazz.defineMethod(c$, "initializePolymer", +function(bioShape){ +var bsDeleted = this.vwr.slm.bsDeleted; +if (this.ms.isJmolDataFrameForModel(bioShape.modelIndex)) { +this.controlPoints = bioShape.bioPolymer.getControlPoints(true, 0, false); +} else { +this.controlPoints = bioShape.bioPolymer.getControlPoints(this.isTraceAlpha, this.sheetSmoothing, this.invalidateSheets); +}this.monomerCount = bioShape.monomerCount; +this.monomers = bioShape.monomers; +this.reversed = bioShape.bioPolymer.reversed; +this.leadAtomIndices = bioShape.bioPolymer.getLeadAtomIndices(); +this.bsVisible.clearAll(); +var haveVisible = false; +if (this.invalidateMesh) bioShape.falsifyMesh(); +for (var i = this.monomerCount; --i >= 0; ) { +if ((this.monomers[i].shapeVisibilityFlags & this.myVisibilityFlag) == 0 || this.ms.isAtomHidden(this.leadAtomIndices[i]) || bsDeleted != null && bsDeleted.get(this.leadAtomIndices[i])) continue; +var lead = this.ms.at[this.leadAtomIndices[i]]; +if (!this.g3d.isInDisplayRange(lead.sX, lead.sY)) continue; +this.bsVisible.set(i); +haveVisible = true; +} +if (!haveVisible) return false; +this.ribbonBorder = this.vwr.getBoolean(603979901); +this.isNucleic = Clazz.instanceOf(bioShape.bioPolymer,"JM.NucleicPolymer"); +this.isPhosphorusOnly = !this.isNucleic && Clazz.instanceOf(bioShape.bioPolymer,"JM.PhosphorusPolymer"); +this.isCarbohydrate = Clazz.instanceOf(bioShape.bioPolymer,"JM.CarbohydratePolymer"); +this.haveControlPointScreens = false; +this.wingVectors = bioShape.wingVectors; +if (this.meshRenderer != null) this.meshRenderer.initialize(this, bioShape, this.monomerCount); +this.mads = bioShape.mads; +this.colixes = bioShape.colixes; +this.colixesBack = bioShape.colixesBack; +this.setStructureTypes(); +return true; +}, "J.shapebio.BioShape"); +Clazz.defineMethod(c$, "setStructureTypes", +function(){ +var types = this.structureTypes = this.vwr.allocTempEnum(this.monomerCount + 1); +for (var i = this.monomerCount; --i >= 0; ) if ((types[i] = this.monomers[i].getProteinStructureType()) === J.c.STR.TURN) types[i] = J.c.STR.NONE; + +types[this.monomerCount] = types[this.monomerCount - 1]; +}); +Clazz.defineMethod(c$, "calcScreenControlPoints", +function(){ +var count = this.monomerCount + 1; +var scr = this.controlPointScreens = this.vwr.allocTempPoints(count); +var points = this.controlPoints; +for (var i = count; --i >= 0; ) this.tm.transformPtScrT3(points[i], scr[i]); + +this.haveControlPointScreens = true; +}); +Clazz.defineMethod(c$, "calcScreens", +function(offsetFraction, mads){ +var count = this.controlPoints.length; +var screens = this.vwr.allocTempPoints(count); +if (offsetFraction == 0) { +for (var i = count; --i >= 0; ) this.tm.transformPtScrT3(this.controlPoints[i], screens[i]); + +} else { +var offset_1000 = offsetFraction / 1000; +for (var i = count; --i >= 0; ) this.calc1Screen(this.controlPoints[i], this.wingVectors[i], (mads[i] == 0 && i > 0 ? mads[i - 1] : mads[i]), offset_1000, screens[i]); + +}return screens; +}, "~N,~A"); +Clazz.defineMethod(c$, "calc1Screen", +function(center, vector, mad, offset_1000, screen){ +this.pointT.scaleAdd2(mad * offset_1000, vector, center); +this.tm.transformPtScrT3(this.pointT, screen); +}, "JU.P3,JU.V3,~N,~N,JU.P3"); +Clazz.defineMethod(c$, "getLeadColix", +function(i){ +return JU.C.getColixInherited(this.colixes[i], this.monomers[i].getLeadAtom().colixAtom); +}, "~N"); +Clazz.defineMethod(c$, "getLeadColixBack", +function(i){ +return (this.colixesBack == null || this.colixesBack.length <= i ? 0 : this.colixesBack[i]); +}, "~N"); +Clazz.defineMethod(c$, "setNeighbors", +function(i){ +if (this.isCyclic) { +i += this.monomerCount; +this.iPrev = (i - 1) % this.monomerCount; +this.iNext = (i + 1) % this.monomerCount; +this.iNext2 = (i + 2) % this.monomerCount; +this.iNext3 = (i + 3) % this.monomerCount; +} else { +this.iPrev = Math.max(i - 1, 0); +this.iNext = Math.min(i + 1, this.monomerCount); +this.iNext2 = Math.min(i + 2, this.monomerCount); +this.iNext3 = Math.min(i + 3, this.monomerCount); +}}, "~N"); +Clazz.defineMethod(c$, "setColix", +function(colix){ +this.colix = colix; +return this.g3d.setC(colix); +}, "~N"); +Clazz.defineMethod(c$, "setMads", +function(i, thisTypeOnly){ +this.madMid = this.madBeg = this.madEnd = this.mads[i]; +if (this.isTraceAlpha) { +if (!thisTypeOnly || this.structureTypes[i] === this.structureTypes[this.iNext]) { +this.madEnd = this.mads[this.iNext]; +if (this.madEnd == 0) { +if (Clazz.instanceOf(this,"J.renderbio.TraceRenderer")) { +this.madEnd = this.madBeg; +} else { +this.madEnd = this.madBeg; +}}this.madMid = ((this.madBeg + this.madEnd) >> 1); +}} else { +if (!thisTypeOnly || this.structureTypes[i] === this.structureTypes[this.iPrev]) this.madBeg = (((this.mads[this.iPrev] == 0 ? this.madMid : this.mads[this.iPrev]) + this.madMid) >> 1); +if (!thisTypeOnly || this.structureTypes[i] === this.structureTypes[this.iNext]) this.madEnd = (((this.mads[this.iNext] == 0 ? this.madMid : this.mads[this.iNext]) + this.madMid) >> 1); +}this.diameterBeg = Clazz.floatToInt(this.vwr.tm.scaleToScreen(Clazz.floatToInt(this.controlPointScreens[i].z), this.madBeg)); +this.diameterMid = Clazz.floatToInt(this.vwr.tm.scaleToScreen(this.monomers[i].getLeadAtom().sZ, this.madMid)); +this.diameterEnd = Clazz.floatToInt(this.vwr.tm.scaleToScreen(Clazz.floatToInt(this.controlPointScreens[this.iNext].z), this.madEnd)); +var doCap0 = (i == this.iPrev || !this.bsVisible.get(this.iPrev) || thisTypeOnly && this.structureTypes[i] !== this.structureTypes[this.iPrev]); +var doCap1 = (this.iNext == this.iNext2 || this.iNext2 == this.iNext3 || !this.bsVisible.get(this.iNext) || thisTypeOnly && this.structureTypes[i] !== this.structureTypes[this.iNext]); +return (this.aspectRatio > 0 && this.meshRenderer != null && this.meshRenderer.check(doCap0, doCap1)); +}, "~N,~B"); +Clazz.defineMethod(c$, "renderHermiteCylinder", +function(screens, i){ +this.colix = this.getLeadColix(i); +if (!this.setBioColix(this.colix)) return; +this.setNeighbors(i); +this.g3d.drawHermite4(this.isNucleic ? 4 : 7, screens[this.iPrev], screens[i], screens[this.iNext], screens[this.iNext2]); +}, "~A,~N"); +Clazz.defineMethod(c$, "renderHermiteConic", +function(i, thisTypeOnly, tension){ +this.setNeighbors(i); +this.colix = this.getLeadColix(i); +if (!this.setBioColix(this.colix)) return; +if (this.setMads(i, thisTypeOnly) || this.isExport) { +this.meshRenderer.setFancyConic(i, tension); +return; +}if (this.diameterBeg == 0 && this.diameterEnd == 0 || this.wireframeOnly) this.g3d.drawLineAB(this.controlPointScreens[i], this.controlPointScreens[this.iNext]); + else { +this.g3d.fillHermite(this.isNucleic ? 4 : 7, this.diameterBeg, this.diameterMid, this.diameterEnd, this.controlPointScreens[this.iPrev], this.controlPointScreens[i], this.controlPointScreens[this.iNext], this.controlPointScreens[this.iNext2]); +}}, "~N,~B,~N"); +Clazz.defineMethod(c$, "renderHermiteRibbon", +function(doFill, i, thisTypeOnly){ +this.setNeighbors(i); +var c0 = this.colix = this.getLeadColix(i); +if (!this.setBioColix(this.colix)) return; +var cb = this.colixBack = this.getLeadColixBack(i); +if (doFill && (this.aspectRatio != 0 || this.isExport)) { +if (this.setMads(i, thisTypeOnly) || this.isExport) { +this.meshRenderer.setFancyRibbon(i); +return; +}}var isReversed = this.reversed.get(i); +if (isReversed && this.colixBack != 0) { +this.setColix(this.colixBack); +cb = c0; +}this.g3d.drawHermite7(doFill, this.ribbonBorder, (isReversed ? -1 : 1) * (this.isNucleic ? 4 : 7), this.ribbonTopScreens[this.iPrev], this.ribbonTopScreens[i], this.ribbonTopScreens[this.iNext], this.ribbonTopScreens[this.iNext2], this.ribbonBottomScreens[this.iPrev], this.ribbonBottomScreens[i], this.ribbonBottomScreens[this.iNext], this.ribbonBottomScreens[this.iNext2], Clazz.floatToInt(this.aspectRatio), cb); +if (isReversed && this.colixBack != 0) { +this.setColix(c0); +cb = this.colixBack; +}}, "~B,~N,~B"); +Clazz.defineMethod(c$, "renderHermiteArrowHead", +function(i){ +this.colix = this.getLeadColix(i); +if (!this.setBioColix(this.colix)) return; +this.colixBack = this.getLeadColixBack(i); +this.setNeighbors(i); +if (this.setMads(i, false) || this.isExport) { +this.meshRenderer.setFancyArrowHead(i); +return; +}var cp = this.controlPoints[i]; +var wv = this.wingVectors[i]; +this.calc1Screen(cp, wv, this.madBeg, .0007, this.screenArrowTop); +this.calc1Screen(cp, wv, this.madBeg, -7.0E-4, this.screenArrowBot); +this.calc1Screen(cp, wv, this.madBeg, 0.001, this.screenArrowTopPrev); +this.calc1Screen(cp, wv, this.madBeg, -0.001, this.screenArrowBotPrev); +this.g3d.drawHermite7(true, this.ribbonBorder, this.isNucleic ? 4 : 7, this.screenArrowTopPrev, this.screenArrowTop, this.controlPointScreens[this.iNext], this.controlPointScreens[this.iNext2], this.screenArrowBotPrev, this.screenArrowBot, this.controlPointScreens[this.iNext], this.controlPointScreens[this.iNext2], Clazz.floatToInt(this.aspectRatio), this.colixBack); +this.g3d.setC(this.colix); +if (this.ribbonBorder && this.aspectRatio == 0) { +this.g3d.fillCylinderBits(3, 3, this.screenArrowTop, this.screenArrowBot); +}}, "~N"); +Clazz.defineMethod(c$, "drawSegmentAB", +function(atomA, atomB, colixA, colixB, max){ +var xA = atomA.sX; +var yA = atomA.sY; +var zA = atomA.sZ; +var xB = atomB.sX; +var yB = atomB.sY; +var zB = atomB.sZ; +var mad = this.mad; +if (max == 1000) mad = mad >> 1; +if (mad < 0) { +this.g3d.drawLine(colixA, colixB, xA, yA, zA, xB, yB, zB); +} else { +var width = Clazz.floatToInt(this.isExport ? mad : this.vwr.tm.scaleToScreen(Clazz.doubleToInt((zA + zB) / 2), mad)); +this.g3d.fillCylinderXYZ(colixA, colixB, 3, width, xA, yA, zA, xB, yB, zB); +}}, "JM.Atom,JM.Atom,~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/CartoonRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/CartoonRenderer.js new file mode 100755 index 000000000000..92086e48b974 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/CartoonRenderer.js @@ -0,0 +1,57 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(["J.renderbio.RocketsRenderer"], "J.renderbio.CartoonRenderer", ["J.api.Interface", "J.c.STR"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.nucleicRenderer = null; +Clazz.instantialize(this, arguments);}, J.renderbio, "CartoonRenderer", J.renderbio.RocketsRenderer); +Clazz.overrideMethod(c$, "renderBioShape", +function(bioShape){ +if (!this.setupRR(bioShape, false)) return; +if (this.isNucleic || this.isPhosphorusOnly) { +if (this.nucleicRenderer == null) this.nucleicRenderer = J.api.Interface.getInterface("J.renderbio.NucleicRenderer", this.vwr, "render"); +this.calcScreenControlPoints(); +this.nucleicRenderer.renderNucleic(this); +return; +}var val = this.vwr.getBoolean(603979819); +if (this.helixRockets != val) { +bioShape.falsifyMesh(); +this.helixRockets = val; +}this.ribbonTopScreens = this.calcScreens(0.5, this.mads); +this.ribbonBottomScreens = this.calcScreens(-0.5, this.mads); +this.calcRopeMidPoints(); +this.renderProtein(); +this.vwr.freeTempPoints(this.cordMidPoints); +this.vwr.freeTempPoints(this.ribbonTopScreens); +this.vwr.freeTempPoints(this.ribbonBottomScreens); +}, "J.shapebio.BioShape"); +Clazz.defineMethod(c$, "renderProtein", +function(){ +var lastWasSheet = false; +var lastWasHelix = false; +var previousStructure = null; +var thisStructure; +var needRockets = (this.helixRockets || !this.renderArrowHeads); +var doRockets = false; +for (var i = this.monomerCount; --i >= 0; ) { +thisStructure = this.monomers[i].getStructure(); +if (thisStructure !== previousStructure) { +lastWasSheet = false; +}previousStructure = thisStructure; +var isHelix = (this.structureTypes[i] === J.c.STR.HELIX); +var isSheet = (this.structureTypes[i] === J.c.STR.SHEET); +if (this.bsVisible.get(i)) { +if (isHelix && needRockets) { +doRockets = true; +} else if (isSheet || isHelix) { +if (lastWasSheet && isSheet || lastWasHelix && isHelix) { +this.renderHermiteRibbon(true, i, true); +} else { +this.renderHermiteArrowHead(i); +}} else { +this.renderHermiteConic(i, true, 7); +}}lastWasSheet = isSheet; +lastWasHelix = isHelix && !this.helixRockets; +} +if (doRockets) this.renderRockets(); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/MeshRibbonRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/MeshRibbonRenderer.js new file mode 100755 index 000000000000..4cbac46aae04 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/MeshRibbonRenderer.js @@ -0,0 +1,27 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(["J.renderbio.StrandsRenderer"], "J.renderbio.MeshRibbonRenderer", null, function(){ +var c$ = Clazz.declareType(J.renderbio, "MeshRibbonRenderer", J.renderbio.StrandsRenderer); +Clazz.overrideMethod(c$, "renderBioShape", +function(bioShape){ +if (this.wireframeOnly) this.renderStrands(); + else this.renderMeshRibbon(); +}, "J.shapebio.BioShape"); +Clazz.defineMethod(c$, "renderMeshRibbon", +function(){ +if (!this.setStrandCount()) return; +var offset = ((this.strandCount >> 1) * this.strandSeparation) + this.baseStrandOffset; +this.render2Strand(false, offset, offset); +this.renderStrands(); +}); +Clazz.defineMethod(c$, "render2Strand", +function(doFill, offsetTop, offsetBottom){ +this.calcScreenControlPoints(); +this.ribbonTopScreens = this.calcScreens(offsetTop, this.mads); +this.ribbonBottomScreens = this.calcScreens(-offsetBottom, this.mads); +for (var i = this.bsVisible.nextSetBit(0); i >= 0; i = this.bsVisible.nextSetBit(i + 1)) this.renderHermiteRibbon(doFill, i, false); + +this.vwr.freeTempPoints(this.ribbonTopScreens); +this.vwr.freeTempPoints(this.ribbonBottomScreens); +}, "~B,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/NucleicRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/NucleicRenderer.js new file mode 100755 index 000000000000..c59e49817827 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/NucleicRenderer.js @@ -0,0 +1,267 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(null, "J.renderbio.NucleicRenderer", ["JU.P3", "JU.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.cartoonBaseEdges = false; +this.cartoonBlocks = false; +this.blockHeight = 0; +this.cartoonLadders = false; +this.cartoonRibose = false; +this.rPt = null; +this.rPt5 = null; +this.rScr = null; +this.rScr5 = null; +this.basePt = null; +this.backbonePt = null; +this.baseScreen = null; +this.backboneScreen = null; +this.ptTemp = null; +this.vwr = null; +this.tm = null; +this.g3d = null; +this.bsr = null; +this.colix = 0; +this.cartoonSteps = false; +this.scrBox = null; +this.triangles = null; +Clazz.instantialize(this, arguments);}, J.renderbio, "NucleicRenderer", null); +Clazz.prepareFields (c$, function(){ +this.triangles = Clazz.newIntArray(-1, [1, 0, 3, 1, 3, 2, 0, 4, 7, 0, 7, 3, 4, 5, 6, 4, 6, 7, 5, 1, 2, 5, 2, 6, 2, 3, 7, 2, 7, 6, 0, 1, 5, 0, 5, 4]); +}); +Clazz.makeConstructor(c$, +function(){ +}); +Clazz.defineMethod(c$, "renderNucleic", +function(renderer){ +if (this.vwr == null) { +this.rPt = new Array(10); +this.rScr = new Array(10); +this.rPt5 = new Array(5); +this.rScr5 = new Array(5); +this.backboneScreen = new JU.P3(); +this.backbonePt = new JU.P3(); +this.bsr = renderer; +this.tm = renderer.vwr.tm; +this.vwr = renderer.vwr; +}this.g3d = renderer.g3d; +var screens = renderer.controlPointScreens; +var pts = renderer.controlPoints; +this.cartoonBlocks = this.vwr.getBoolean(603979810); +this.cartoonBaseEdges = this.vwr.getBoolean(603979815); +this.cartoonSteps = this.vwr.getBoolean(603979811); +this.cartoonLadders = this.vwr.getBoolean(603979817); +this.cartoonRibose = this.vwr.getBoolean(603979818); +this.blockHeight = this.vwr.getFloat(570425347); +var isTraceAlpha = this.vwr.getBoolean(603979966); +var bsVisible = this.bsr.bsVisible; +for (var i = bsVisible.nextSetBit(0); i >= 0; i = bsVisible.nextSetBit(i + 1)) { +var scr = screens[i + 1]; +if (isTraceAlpha) { +this.backboneScreen.ave(screens[i], scr); +this.backbonePt.ave(pts[i], pts[i + 1]); +} else { +this.backboneScreen.setT(scr); +this.backbonePt.setT(pts[i + 1]); +}this.bsr.renderHermiteConic(i, false, 4); +this.colix = this.bsr.getLeadColix(i); +if (this.bsr.setBioColix(this.colix)) { +if (this.cartoonRibose && bsVisible.get(i + 1)) this.renderNucleicBaseStep(i, pts[i + 1], screens[i + 1]); + else this.renderNucleicBaseStep(i, null, null); +}} +}, "J.renderbio.BioShapeRenderer"); +Clazz.defineMethod(c$, "renderNucleicBaseStep", +function(im, ptPnext, scrPnext){ +if (this.bsr.isPhosphorusOnly) return; +var nucleotide = this.bsr.monomers[im]; +var thisMad = this.bsr.mad = this.bsr.mads[im]; +if (this.rScr[0] == null) { +for (var i = 10; --i >= 0; ) this.rScr[i] = new JU.P3(); + +for (var i = 5; --i >= 0; ) this.rScr5[i] = new JU.P3(); + +this.baseScreen = new JU.P3(); +this.basePt = new JU.P3(); +this.rPt[9] = new JU.P3(); +}if (this.cartoonBlocks) { +this.renderBlock(nucleotide); +return; +}if (this.cartoonBaseEdges) { +this.renderLeontisWesthofEdges(nucleotide); +return; +}if (this.cartoonSteps) { +this.renderSteps(nucleotide, im); +return; +}nucleotide.getBaseRing6Points(this.rPt); +this.transformPoints(6, this.rPt, this.rScr); +if (!this.cartoonLadders) this.renderRing6(); +var stepScreen; +var stepPt; +var pt; +var hasRing5 = nucleotide.maybeGetBaseRing5Points(this.rPt5); +if (hasRing5) { +if (this.cartoonLadders) { +stepScreen = this.rScr[2]; +stepPt = this.rPt[2]; +} else { +this.transformPoints(5, this.rPt5, this.rScr5); +this.renderRing5(); +stepScreen = this.rScr5[3]; +stepPt = this.rPt5[3]; +}} else { +pt = (this.cartoonLadders ? 4 : 2); +stepScreen = this.rScr[pt]; +stepPt = this.rPt[pt]; +}var mad = (thisMad > 1 ? Clazz.doubleToInt(thisMad / 2) : thisMad); +var r = mad / 2000; +var w = Clazz.floatToInt(this.vwr.tm.scaleToScreen(Clazz.floatToInt(this.backboneScreen.z), mad)); +if (this.cartoonLadders || !this.cartoonRibose) this.g3d.fillCylinderScreen3I(3, w, this.backboneScreen, stepScreen, this.backbonePt, stepPt, r); +if (this.cartoonLadders) return; +this.drawEdges(this.rScr, this.rPt, 6); +if (hasRing5) this.drawEdges(this.rScr5, this.rPt5, 5); + else this.renderEdge(this.rScr, this.rPt, 0, 5); +if (this.cartoonRibose) { +this.baseScreen.setT(stepScreen); +this.basePt.setT(stepPt); +nucleotide.getRiboseRing5Points(this.rPt); +var c = this.rPt[9]; +c.set(0, 0, 0); +for (var i = 0; i < 5; i++) c.add(this.rPt[i]); + +c.scale(0.2); +this.transformPoints(10, this.rPt, this.rScr); +this.renderRibose(); +this.renderEdge(this.rScr, this.rPt, 2, 5); +this.renderEdge(this.rScr, this.rPt, 3, 6); +this.renderEdge(this.rScr, this.rPt, 6, 7); +this.renderEdge(this.rScr, this.rPt, 7, 8); +this.renderEdge(this.rScr, this.rPt, 0, 4); +this.renderCyl(this.rScr[0], this.baseScreen, this.rPt[0], this.basePt); +if (ptPnext != null) this.renderCyl(this.rScr[5], scrPnext, this.rPt[5], ptPnext); +this.drawEdges(this.rScr, this.rPt, 5); +}}, "~N,JU.T3,JU.T3"); +Clazz.defineMethod(c$, "renderSteps", +function(g, i){ +var bps = g.getBasePairs(); +var atomA = g.getLeadAtom(); +var cA = JU.C.getColixInherited(this.colix, atomA.colixAtom); +if (bps != null) { +var checkPass2 = (!this.bsr.isExport && !this.vwr.gdata.isPass2); +var atoms = this.vwr.ms.at; +for (var j = bps.size(); --j >= 0; ) { +var iAtom = bps.get(j).getPartnerAtom(g); +if (iAtom > i) { +var atomB = atoms[iAtom]; +var cB = JU.C.getColixInherited(this.colix, atomB.colixAtom); +if (!checkPass2 || this.bsr.setBioColix(cA) || this.bsr.setBioColix(cB)) this.bsr.drawSegmentAB(atomA, atomB, cA, cB, 1000); +}} +}}, "JM.NucleicMonomer,~N"); +Clazz.defineMethod(c$, "transformPoints", +function(count, angstroms, screens){ +for (var i = count; --i >= 0; ) this.tm.transformPtScrT3(angstroms[i], screens[i]); + +}, "~N,~A,~A"); +Clazz.defineMethod(c$, "drawEdges", +function(scr, pt, n){ +for (var i = n; --i >= 0; ) scr[i].z--; + +for (var i = n; --i > 0; ) this.renderEdge(scr, pt, i, i - 1); + +}, "~A,~A,~N"); +Clazz.defineMethod(c$, "renderBlock", +function(g){ +var atomA = g.getLeadAtom(); +var cA = this.colix; +if (this.scrBox == null) { +this.scrBox = new Array(8); +for (var j = 0; j < 8; j++) this.scrBox[j] = new JU.P3(); + +}var oxyz = g.getDSSRFrame(this.vwr); +var box = g.dssrBox; +var lastHeight = g.dssrBoxHeight; +var isPurine = g.isPurine(); +if (box == null || lastHeight != this.blockHeight) { +g.dssrBoxHeight = this.blockHeight; +if (box == null) { +box = new Array(8); +for (var j = 8; --j >= 0; ) box[j] = new JU.P3(); + +g.dssrBox = box; +}var uc = this.vwr.getSymTemp().getUnitCell(oxyz, false, null); +if (this.ptTemp == null) this.ptTemp = new JU.P3(); +this.ptTemp.setT(oxyz[0]); +uc.toFractional(this.ptTemp, true); +uc.setOffsetPt(JU.P3.new3(this.ptTemp.x - 2.25, this.ptTemp.y + 5, this.ptTemp.z - this.blockHeight / 2)); +var x = 4.5; +var y = (isPurine ? -4.5 : -3.0); +var z = this.blockHeight; +uc.toCartesian(box[0] = JU.P3.new3(0, 0, 0), false); +uc.toCartesian(box[1] = JU.P3.new3(x, 0, 0), false); +uc.toCartesian(box[2] = JU.P3.new3(x, y, 0), false); +uc.toCartesian(box[3] = JU.P3.new3(0, y, 0), false); +uc.toCartesian(box[4] = JU.P3.new3(0, 0, z), false); +uc.toCartesian(box[5] = JU.P3.new3(x, 0, z), false); +uc.toCartesian(box[6] = JU.P3.new3(x, y, z), false); +uc.toCartesian(box[7] = JU.P3.new3(0, y, z), false); +}for (var j = 0; j < 8; j++) this.vwr.tm.transformPt3f(box[j], this.scrBox[j]); + +for (var j = 0; j < 36; ) this.g3d.fillTriangle3f(this.scrBox[this.triangles[j++]], this.scrBox[this.triangles[j++]], this.scrBox[this.triangles[j++]], false); + +var atomB = g.getC1P(); +var atomC = g.getN0(); +if (atomB != null && atomC != null) { +this.bsr.drawSegmentAB(atomA, atomB, cA, cA, 1000); +this.bsr.drawSegmentAB(atomB, atomC, cA, cA, 1000); +}}, "JM.NucleicMonomer"); +Clazz.defineMethod(c$, "renderLeontisWesthofEdges", +function(nucleotide){ +if (!nucleotide.getEdgePoints(this.rPt)) return; +this.transformPoints(6, this.rPt, this.rScr); +this.renderTriangle(this.rScr, this.rPt, 2, 3, 4, true); +this.renderEdge(this.rScr, this.rPt, 0, 1); +this.renderEdge(this.rScr, this.rPt, 1, 2); +var isTranslucent = JU.C.isColixTranslucent(this.colix); +var tl = JU.C.getColixTranslucencyLevel(this.colix); +var colixSugarEdge = JU.C.getColixTranslucent3(10, isTranslucent, tl); +var colixWatsonCrickEdge = JU.C.getColixTranslucent3(11, isTranslucent, tl); +var colixHoogsteenEdge = JU.C.getColixTranslucent3(7, isTranslucent, tl); +this.g3d.setC(colixSugarEdge); +this.renderEdge(this.rScr, this.rPt, 2, 3); +this.g3d.setC(colixWatsonCrickEdge); +this.renderEdge(this.rScr, this.rPt, 3, 4); +this.g3d.setC(colixHoogsteenEdge); +this.renderEdge(this.rScr, this.rPt, 4, 5); +}, "JM.NucleicMonomer"); +Clazz.defineMethod(c$, "renderEdge", +function(scr, pt, i, j){ +this.renderCyl(scr[i], scr[j], pt[i], pt[j]); +}, "~A,~A,~N,~N"); +Clazz.defineMethod(c$, "renderCyl", +function(s1, s2, p1, p2){ +this.g3d.fillCylinderScreen3I(3, 3, s1, s2, p1, p2, 0.005); +}, "JU.P3,JU.P3,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "renderTriangle", +function(scr, pt, i, j, k, doShade){ +this.g3d.fillTriangle3i(scr[i], scr[j], scr[k], pt[i], pt[j], pt[k], doShade); +}, "~A,~A,~N,~N,~N,~B"); +Clazz.defineMethod(c$, "renderRing6", +function(){ +this.renderTriangle(this.rScr, this.rPt, 0, 2, 4, true); +this.renderTriangle(this.rScr, this.rPt, 0, 1, 2, false); +this.renderTriangle(this.rScr, this.rPt, 0, 4, 5, false); +this.renderTriangle(this.rScr, this.rPt, 2, 3, 4, false); +}); +Clazz.defineMethod(c$, "renderRing5", +function(){ +this.renderTriangle(this.rScr5, this.rPt5, 0, 1, 2, false); +this.renderTriangle(this.rScr5, this.rPt5, 0, 2, 3, false); +this.renderTriangle(this.rScr5, this.rPt5, 0, 3, 4, false); +}); +Clazz.defineMethod(c$, "renderRibose", +function(){ +this.renderTriangle(this.rScr, this.rPt, 0, 1, 9, true); +this.renderTriangle(this.rScr, this.rPt, 1, 2, 9, true); +this.renderTriangle(this.rScr, this.rPt, 2, 3, 9, true); +this.renderTriangle(this.rScr, this.rPt, 3, 4, 9, true); +this.renderTriangle(this.rScr, this.rPt, 4, 0, 9, true); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/RibbonsRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/RibbonsRenderer.js new file mode 100755 index 000000000000..526fa6edda59 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/RibbonsRenderer.js @@ -0,0 +1,11 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(["J.renderbio.MeshRibbonRenderer"], "J.renderbio.RibbonsRenderer", null, function(){ +var c$ = Clazz.declareType(J.renderbio, "RibbonsRenderer", J.renderbio.MeshRibbonRenderer); +Clazz.overrideMethod(c$, "renderBioShape", +function(bioShape){ +if (this.wingVectors == null) return; +if (this.wireframeOnly) this.renderStrands(); + else this.render2Strand(true, this.isNucleic ? 1 : 0.5, this.isNucleic ? 0 : 0.5); +}, "J.shapebio.BioShape"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/RocketRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/RocketRenderer.js new file mode 100755 index 000000000000..2d520be0fec6 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/RocketRenderer.js @@ -0,0 +1,168 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(null, "J.renderbio.RocketRenderer", ["JU.P3", "$.V3", "J.c.STR", "JU.MeshSurface"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.tPending = false; +this.proteinstructurePending = null; +this.startIndexPending = 0; +this.endIndexPending = 0; +this.vtemp = null; +this.screenA = null; +this.screenB = null; +this.screenC = null; +this.colix = 0; +this.mad = 0; +this.rr = null; +this.vwr = null; +this.g3d = null; +this.tm = null; +this.renderArrowHeads = false; +this.isRockets = false; +this.ptC = null; +this.ptTip = null; +this.corners = null; +this.screenCorners = null; +this.vW = null; +this.vH = null; +this.meshSurface = null; +Clazz.instantialize(this, arguments);}, J.renderbio, "RocketRenderer", null); +/*LV!1824 unnec constructor*/Clazz.defineMethod(c$, "set", +function(rr){ +this.screenA = new JU.P3(); +this.screenB = new JU.P3(); +this.screenC = new JU.P3(); +this.vtemp = new JU.V3(); +this.rr = rr; +this.vwr = rr.vwr; +this.tm = rr.vwr.tm; +this.isRockets = rr.isRockets; +return this; +}, "J.renderbio.RocketsRenderer"); +Clazz.defineMethod(c$, "renderRockets", +function(){ +this.g3d = this.rr.g3d; +this.tPending = false; +this.renderArrowHeads = this.rr.renderArrowHeads; +var bsVisible = this.rr.bsVisible; +for (var i = bsVisible.nextSetBit(0); i >= 0; i = bsVisible.nextSetBit(i + 1)) { +if (this.rr.structureTypes[i] === J.c.STR.HELIX || this.isRockets && this.rr.structureTypes[i] === J.c.STR.SHEET) { +this.renderSpecialSegment(this.rr.monomers[i], this.rr.getLeadColix(i), this.rr.mads[i]); +} else if (this.isRockets) { +this.renderPending(); +this.rr.renderHermiteConic(i, true, 7); +}} +this.renderPending(); +}); +Clazz.defineMethod(c$, "renderSpecialSegment", +function(monomer, thisColix, thisMad){ +var proteinstructure = monomer.proteinStructure; +if (this.tPending) { +if (proteinstructure === this.proteinstructurePending && thisMad == this.mad && thisColix == this.colix && proteinstructure.getIndex(monomer) == this.endIndexPending + 1) { +++this.endIndexPending; +return; +}this.renderPending(); +}this.proteinstructurePending = proteinstructure; +this.startIndexPending = this.endIndexPending = proteinstructure.getIndex(monomer); +this.colix = thisColix; +this.mad = thisMad; +this.tPending = true; +}, "JM.AlphaMonomer,~N,~N"); +Clazz.defineMethod(c$, "renderPending", +function(){ +if (!this.tPending) return; +var segments = this.proteinstructurePending.getSegments(); +var renderArrowHead = (this.renderArrowHeads && this.endIndexPending == this.proteinstructurePending.nRes - 1); +if (Clazz.instanceOf(this.proteinstructurePending,"JM.Helix")) this.renderPendingRocketSegment(this.endIndexPending, segments[this.startIndexPending], segments[this.endIndexPending], segments[this.endIndexPending + 1], renderArrowHead); + else if (Clazz.instanceOf(this.proteinstructurePending,"JM.Sheet") && Clazz.instanceOf((this.proteinstructurePending).apolymer,"JM.AminoPolymer")) this.renderPendingSheetPlank(segments[this.startIndexPending], segments[this.endIndexPending], segments[this.endIndexPending + 1], renderArrowHead); +this.tPending = false; +}); +Clazz.defineMethod(c$, "renderPendingRocketSegment", +function(i, pointStart, pointBeforeEnd, pointEnd, renderArrowHead){ +if (this.g3d.setC(this.colix)) { +this.tm.transformPt3f(pointStart, this.screenA); +this.tm.transformPt3f((renderArrowHead ? pointBeforeEnd : pointEnd), this.screenB); +var zMid = Clazz.doubleToInt(Math.floor((this.screenA.z + this.screenB.z) / 2)); +var diameter = (Clazz.floatToInt(this.vwr.tm.scaleToScreen(zMid, this.mad))); +if (!renderArrowHead || pointStart !== pointBeforeEnd) this.g3d.fillCylinderBits(2, diameter, this.screenA, this.screenB); +if (renderArrowHead) { +this.screenA.sub2(pointEnd, pointBeforeEnd); +this.tm.transformPt3f(pointEnd, this.screenC); +var coneDiameter = (this.mad << 1) - (this.mad >> 1); +coneDiameter = Clazz.floatToInt(this.vwr.tm.scaleToScreen(Clazz.doubleToInt(Math.floor(this.screenB.z)), coneDiameter)); +this.g3d.fillConeScreen3f(2, coneDiameter, this.screenB, this.screenC, false); +} else { +}if (this.startIndexPending == this.endIndexPending) return; +var t = this.screenB; +this.screenB = this.screenC; +this.screenC = t; +}}, "~N,JU.P3,JU.P3,JU.P3,~B"); +Clazz.defineMethod(c$, "renderPendingSheetPlank", +function(ptStart, pointBeforeEnd, ptEnd, renderArrowHead){ +if (!this.g3d.setC(this.colix)) return; +if (this.corners == null) { +this.ptC = new JU.P3(); +this.ptTip = new JU.P3(); +this.vW = new JU.V3(); +this.vH = new JU.V3(); +this.screenCorners = new Array(8); +this.corners = new Array(8); +for (var i = 8; --i >= 0; ) { +this.corners[i] = new JU.P3(); +this.screenCorners[i] = new JU.P3(); +} +}if (renderArrowHead) { +this.setBox(1.25, 0.333, pointBeforeEnd); +this.ptTip.scaleAdd2(-0.5, this.vH, ptEnd); +for (var i = 4; --i >= 0; ) { +var corner = this.corners[i]; +corner.setT(this.ptC); +if ((i & 1) != 0) corner.add(this.vW); +if ((i & 2) != 0) corner.add(this.vH); +} +this.corners[4].setT(this.ptTip); +this.corners[5].add2(this.ptTip, this.vH); +this.renderPart(J.renderbio.RocketRenderer.arrowHeadFaces); +ptEnd = pointBeforeEnd; +}this.setBox(1, 0.25, ptStart); +this.vtemp.sub2(ptEnd, ptStart); +if (this.vtemp.lengthSquared() == 0) return; +this.buildBox(this.ptC, this.vW, this.vH, this.vtemp); +this.renderPart(J.renderbio.RocketRenderer.boxFaces); +}, "JU.P3,JU.P3,JU.P3,~B"); +Clazz.defineMethod(c$, "setBox", +function(w, h, pt){ +(this.proteinstructurePending).setBox(w, h, pt, this.vW, this.vH, this.ptC, this.mad / 1000); +}, "~N,~N,JU.P3"); +Clazz.defineMethod(c$, "buildBox", +function(pointCorner, scaledWidthVector, scaledHeightVector, lengthVector){ +for (var i = 8; --i >= 0; ) { +var corner = this.corners[i]; +corner.setT(pointCorner); +if ((i & 1) != 0) corner.add(scaledWidthVector); +if ((i & 2) != 0) corner.add(scaledHeightVector); +if ((i & 4) != 0) corner.add(lengthVector); +} +}, "JU.P3,JU.V3,JU.V3,JU.V3"); +Clazz.defineMethod(c$, "renderPart", +function(planes){ +if (this.rr.exportType == 1) { +if (this.meshSurface == null) { +this.meshSurface = new JU.MeshSurface(); +this.meshSurface.vs = this.corners; +this.meshSurface.haveQuads = true; +this.meshSurface.vc = this.corners.length; +}this.meshSurface.pis = planes; +this.meshSurface.pc = planes.length; +this.g3d.drawSurface(this.meshSurface, this.colix); +} else { +for (var i = 8; --i >= 0; ) this.tm.transformPt3f(this.corners[i], this.screenCorners[i]); + +for (var i = planes.length; --i >= 0; ) { +var f = planes[i]; +if (f.length == 3) this.g3d.fillTriangle3f(this.screenCorners[f[0]], this.screenCorners[f[1]], this.screenCorners[f[2]], true); + else this.g3d.fillQuadrilateral(this.screenCorners[f[0]], this.screenCorners[f[1]], this.screenCorners[f[2]], this.screenCorners[f[3]], true); +} +}}, "~A"); +c$.boxFaces = Clazz.newArray(-1, [ Clazz.newIntArray(-1, [0, 1, 3, 2]), Clazz.newIntArray(-1, [0, 2, 6, 4]), Clazz.newIntArray(-1, [0, 4, 5, 1]), Clazz.newIntArray(-1, [7, 5, 4, 6]), Clazz.newIntArray(-1, [7, 6, 2, 3]), Clazz.newIntArray(-1, [7, 3, 1, 5])]); +c$.arrowHeadFaces = Clazz.newArray(-1, [ Clazz.newIntArray(-1, [1, 0, 4]), Clazz.newIntArray(-1, [2, 3, 5]), Clazz.newIntArray(-1, [0, 1, 3, 2]), Clazz.newIntArray(-1, [2, 5, 4, 0]), Clazz.newIntArray(-1, [1, 4, 5, 3])]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/RocketsRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/RocketsRenderer.js new file mode 100755 index 000000000000..7097a77f163e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/RocketsRenderer.js @@ -0,0 +1,68 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(["J.renderbio.StrandsRenderer"], "J.renderbio.RocketsRenderer", ["javajs.api.Interface", "JU.P3", "J.c.STR"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isRockets = false; +this.helixRockets = true; +this.renderArrowHeads = false; +this.cordMidPoints = null; +this.rr = null; +Clazz.instantialize(this, arguments);}, J.renderbio, "RocketsRenderer", J.renderbio.StrandsRenderer); +Clazz.overrideMethod(c$, "renderBioShape", +function(bioShape){ +if (!this.setupRR(bioShape, true)) return; +this.calcRopeMidPoints(); +this.renderRockets(); +this.vwr.freeTempPoints(this.cordMidPoints); +}, "J.shapebio.BioShape"); +Clazz.defineMethod(c$, "renderRockets", +function(){ +if (this.rr == null) this.rr = (javajs.api.Interface.getInterface("J.renderbio.RocketRenderer")).set(this); +this.rr.renderRockets(); +}); +Clazz.defineMethod(c$, "setupRR", +function(bioShape, isRockets){ +this.isRockets = isRockets; +if (this.wireframeOnly) { +this.renderStrands(); +} else if (this.wingVectors != null && !this.isCarbohydrate && !(isRockets && this.isNucleic)) { +var val = !this.vwr.getBoolean(603979902); +if (!this.isNucleic && this.renderArrowHeads != val) { +bioShape.falsifyMesh(); +this.renderArrowHeads = val; +}return true; +}return false; +}, "J.shapebio.BioShape,~B"); +Clazz.defineMethod(c$, "calcRopeMidPoints", +function(){ +var midPointCount = this.monomerCount + 1; +this.cordMidPoints = this.vwr.allocTempPoints(midPointCount); +var proteinstructurePrev = null; +var point; +var ptLastRocket = -10; +var pt1 = new JU.P3(); +var pt2 = new JU.P3(); +for (var i = 0; i <= this.monomerCount; ++i) { +point = this.cordMidPoints[i]; +if (i < this.monomerCount && (this.helixRockets && this.structureTypes[i] === J.c.STR.HELIX || this.isRockets && this.structureTypes[i] === J.c.STR.SHEET)) { +var proteinstructure = this.monomers[i].getStructure(); +if (proteinstructure === proteinstructurePrev) { +pt1.add(pt2); +ptLastRocket = i; +} else { +proteinstructurePrev = proteinstructure; +pt1.setT(proteinstructure.getAxisStartPoint()); +pt2.sub2(proteinstructure.getAxisEndPoint(), pt1); +pt2.scale(1 / (proteinstructure.nRes - 1)); +if (ptLastRocket == i - 3) { +this.cordMidPoints[i - 1].ave(this.cordMidPoints[i - 2], pt1); +}}point.setT(pt1); +} else { +if (ptLastRocket == i - 1 && i > 1) this.cordMidPoints[i - 1].setT(this.cordMidPoints[i > 2 ? i - 3 : i - 2]); +point.setT(proteinstructurePrev == null ? this.controlPoints[i] : proteinstructurePrev.getAxisEndPoint()); +proteinstructurePrev = null; +}} +this.controlPoints = this.cordMidPoints; +this.calcScreenControlPoints(); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/StrandsRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/StrandsRenderer.js new file mode 100755 index 000000000000..739ee6c6864a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/StrandsRenderer.js @@ -0,0 +1,48 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(["J.renderbio.BioShapeRenderer"], "J.renderbio.StrandsRenderer", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.strandCount = 1; +this.strandSeparation = 0; +this.baseStrandOffset = 0; +Clazz.instantialize(this, arguments);}, J.renderbio, "StrandsRenderer", J.renderbio.BioShapeRenderer); +Clazz.overrideMethod(c$, "renderBioShape", +function(bioShape){ +this.renderStrandShape(); +}, "J.shapebio.BioShape"); +Clazz.defineMethod(c$, "renderStrandShape", +function(){ +if (!this.setStrandCount()) return; +this.renderStrands(); +}); +Clazz.defineMethod(c$, "setStrandCount", +function(){ +if (this.wingVectors == null) return false; +this.strandCount = (Clazz.instanceOf(this.shape,"J.shapebio.Strands") ? this.vwr.getStrandCount((this.shape).shapeID) : 10); +this.strandSeparation = (this.strandCount <= 1) ? 0 : 1 / (this.strandCount - 1); +this.baseStrandOffset = ((this.strandCount & 1) == 0 ? this.strandSeparation / 2 : this.strandSeparation); +return true; +}); +Clazz.defineMethod(c$, "renderStrands", +function(){ +var screens; +for (var i = this.strandCount >> 1; --i >= 0; ) { +var f = (i * this.strandSeparation) + this.baseStrandOffset; +screens = this.calcScreens(f, this.mads); +this.renderStrand(screens); +this.vwr.freeTempPoints(screens); +screens = this.calcScreens(-f, this.mads); +this.renderStrand(screens); +this.vwr.freeTempPoints(screens); +} +if (this.strandCount % 2 == 1) { +screens = this.calcScreens(0, this.mads); +this.renderStrand(screens); +this.vwr.freeTempPoints(screens); +}}); +Clazz.defineMethod(c$, "renderStrand", +function(screens){ +for (var i = this.bsVisible.nextSetBit(0); i >= 0; i = this.bsVisible.nextSetBit(i + 1)) this.renderHermiteCylinder(screens, i); + +}, "~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderbio/TraceRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/TraceRenderer.js new file mode 100755 index 000000000000..241f2f5a9708 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderbio/TraceRenderer.js @@ -0,0 +1,16 @@ +Clazz.declarePackage("J.renderbio"); +Clazz.load(["J.renderbio.StrandsRenderer"], "J.renderbio.TraceRenderer", null, function(){ +var c$ = Clazz.declareType(J.renderbio, "TraceRenderer", J.renderbio.StrandsRenderer); +Clazz.overrideMethod(c$, "renderBioShape", +function(bioShape){ +if (this.wireframeOnly) this.renderStrands(); + else this.renderTrace(); +}, "J.shapebio.BioShape"); +Clazz.defineMethod(c$, "renderTrace", +function(){ +this.calcScreenControlPoints(); +for (var i = this.bsVisible.nextSetBit(0); i >= 0; i = this.bsVisible.nextSetBit(i + 1)) this.renderHermiteConic(i, false, 7); + +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/rendercgo/CGORenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/rendercgo/CGORenderer.js new file mode 100755 index 000000000000..06c975760465 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/rendercgo/CGORenderer.js @@ -0,0 +1,299 @@ +Clazz.declarePackage("J.rendercgo"); +Clazz.load(["J.renderspecial.DrawRenderer", "JU.P3"], "J.rendercgo.CGORenderer", ["J.shapecgo.CGOMesh", "JU.C", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.cgoMesh = null; +this.cmds = null; +this.pt3 = null; +this.colix0 = 0; +this.colix1 = 0; +this.colix2 = 0; +this.normix0 = 0; +this.normix1 = 0; +this.normix2 = 0; +this.normix = 0; +this.doColor = false; +this.ptNormal = 0; +this.ptColor = 0; +this.map0 = null; +this.vX = null; +this.vY = null; +this.x0 = 0; +this.y0 = 0; +this.dx = 0; +this.dy = 0; +this.scaleX = 0; +this.scaleY = 0; +this.is2D = false; +this.is2DPercent = false; +this.isMapped = false; +this.isPS = false; +this.screenZ = 0; +Clazz.instantialize(this, arguments);}, J.rendercgo, "CGORenderer", J.renderspecial.DrawRenderer); +Clazz.prepareFields (c$, function(){ +this.pt3 = new JU.P3(); +}); +Clazz.overrideMethod(c$, "render", +function(){ +this.needTranslucent = false; +this.imageFontScaling = this.vwr.imageFontScaling; +var cgo = this.shape; +for (var i = cgo.meshCount; --i >= 0; ) this.render2(this.mesh = this.cgoMesh = cgo.meshes[i]); + +return this.needTranslucent; +}); +Clazz.defineMethod(c$, "render2", +function(mesh){ +this.diameter = this.cgoMesh.diameter; +this.width = this.cgoMesh.width; +this.cmds = this.cgoMesh.cmds; +if (this.cmds == null || !this.cgoMesh.visible || this.cgoMesh.visibilityFlags == 0) return; +if (!this.g3d.setC(this.cgoMesh.colix)) { +this.needTranslucent = true; +return; +}var n = this.cmds.size(); +var glMode = -1; +var nPts = 0; +this.ptNormal = 0; +this.ptColor = 0; +this.width = 0; +this.screenZ = 2147483647; +this.doColor = !mesh.useColix; +var pt; +var spt; +this.g3d.addRenderer(1073742182); +this.is2D = this.isMapped = false; +this.scaleX = this.scaleY = 1; +for (var j = 0; j < n; j++) { +var type = this.cgoMesh.getInt(j); +if (type == 0) break; +var len = J.shapecgo.CGOMesh.getSize(type, this.is2D); +if (len < 0) { +JU.Logger.error("CGO unknown type: " + type); +return; +}switch (type) { +default: +System.out.println("CGO ? " + type); +break; +case -111: +break; +case -107: +this.diameter = this.cgoMesh.getInt(j + 1); +break; +case -100: +this.width = this.cgoMesh.getFloat(j + 1); +break; +case -101: +this.isMapped = false; +var f = this.cgoMesh.getFloat(j + 1); +if (f == 0) { +this.is2D = false; +} else { +this.is2DPercent = (f > 0); +this.screenZ = (this.is2DPercent ? this.tm.zValueFromPercent(Clazz.floatToInt(f)) : -Clazz.floatToInt(f)); +this.is2D = true; +}break; +case -103: +this.isPS = true; +case -102: +this.is2D = this.isMapped = true; +this.map0 = new JU.P3(); +this.vX = new JU.P3(); +this.vY = new JU.P3(); +this.cgoMesh.getPoint(j + 1, this.map0); +this.cgoMesh.getPoint(j + 4, this.vX); +this.vX.sub(this.map0); +this.cgoMesh.getPoint(j + 7, this.vY); +this.vY.sub(this.map0); +this.x0 = this.cgoMesh.getFloat(j + 10); +this.y0 = this.cgoMesh.getFloat(j + 11); +this.dx = this.cgoMesh.getFloat(j + 12) - this.x0; +this.dy = this.cgoMesh.getFloat(j + 13) - this.y0; +if (this.isPS) break; +case -108: +this.scaleX = this.cgoMesh.getFloat(this.isPS ? j + 1 : j + 14); +this.scaleY = this.cgoMesh.getFloat(this.isPS ? j + 2 : j + 15); +break; +case 28: +break; +case 1: +this.getPoint(j + 2, this.pt0, this.pt0i); +this.getPoint(j + (this.is2D ? 4 : 5), this.pt1, this.pt1i); +this.drawEdge(1, 2, false, this.pt0, this.pt1, this.pt0i, this.pt1i); +break; +case 2: +glMode = this.cgoMesh.getInt(j + 1); +case -104: +nPts = 0; +break; +case -105: +glMode = -105; +break; +case -106: +if (glMode != -105) break; +glMode = 2; +case 3: +if (glMode == 2 && nPts >= 3) this.drawEdge(1, 2, true, this.pt0, this.pt3, this.pt0i, this.pt3i); +nPts = 0; +break; +case 6: +this.getColix(true); +break; +case 5: +this.normix = this.getNormix(); +break; +case -109: +nPts = 0; +case -110: +glMode = 2; +case 4: +if (nPts++ == 0) this.getPoint(j, this.pt0, this.pt0i); +switch (glMode) { +case -1: +break; +case 0: +this.drawEdge(1, 1, false, this.pt0, this.pt0, this.pt0i, this.pt0i); +break; +case 1: +if (nPts == 2) { +this.getPoint(j, this.pt1, this.pt1i); +this.drawEdge(1, 2, false, this.pt0, this.pt1, this.pt0i, this.pt1i); +nPts = 0; +}break; +case 2: +case 3: +if (nPts == 1) { +if (glMode == 2) { +this.pt3.setT(this.pt0); +this.pt3i.setT(this.pt0i); +}break; +}this.getPoint(j, this.pt1, this.pt1i); +pt = this.pt0; +this.pt0 = this.pt1; +this.pt1 = pt; +spt = this.pt0i; +this.pt0i = this.pt1i; +this.pt1i = spt; +this.drawEdge(1, 2, true, this.pt0, this.pt1, this.pt0i, this.pt1i); +break; +case 4: +switch (nPts) { +case 1: +this.normix1 = this.normix2 = this.normix0 = this.normix; +this.colix1 = this.colix2 = this.colix0 = this.colix; +break; +case 2: +this.getPoint(j, this.pt1, this.pt1i); +break; +case 3: +this.getPoint(j, this.pt2, this.pt2i); +this.fillTriangle(); +nPts = 0; +break; +} +break; +case 5: +switch (nPts) { +case 1: +this.normix1 = this.normix2 = this.normix0 = this.normix; +this.colix1 = this.colix2 = this.colix0 = this.colix; +break; +case 2: +this.getPoint(j, this.pt2, this.pt2i); +break; +default: +if (nPts % 2 == 0) { +pt = this.pt0; +this.pt0 = this.pt2; +spt = this.pt0i; +this.pt0i = this.pt2i; +} else { +pt = this.pt1; +this.pt1 = this.pt2; +spt = this.pt1i; +this.pt1i = this.pt2i; +}this.pt2 = pt; +this.pt2i = spt; +this.getPoint(j, this.pt2, this.pt2i); +this.fillTriangle(); +break; +} +break; +case 6: +switch (nPts) { +case 1: +this.normix1 = this.normix2 = this.normix0 = this.normix; +this.colix1 = this.colix2 = this.colix0 = this.colix; +this.pt1.setT(this.pt0); +this.pt1i.setT(this.pt0i); +break; +case 2: +this.getPoint(j, this.pt0, this.pt0i); +break; +default: +this.pt2.setT(this.pt0); +this.pt2i.setT(this.pt0i); +this.getPoint(j, this.pt0, this.pt0i); +this.fillTriangle(); +break; +} +break; +} +break; +case 14: +this.getPoint(j, this.pt0, this.pt0i); +this.getPoint(j + (this.is2D ? 2 : 3), this.pt1, this.pt1i); +this.width = this.cgoMesh.getFloat(j + 7); +this.getColix(true); +this.getColix(false); +this.drawEdge(1, 2, false, this.pt0, this.pt1, this.pt0i, this.pt1i); +this.width = 0; +break; +case 8: +this.getPoint(j, this.pt0, this.pt0i); +this.getPoint(j + (this.is2D ? 2 : 3), this.pt1, this.pt1i); +this.getPoint(j + (this.is2D ? 4 : 6), this.pt2, this.pt2i); +this.normix0 = this.getNormix(); +this.normix1 = this.getNormix(); +this.normix2 = this.getNormix(); +this.colix0 = this.getColix(false); +this.colix1 = this.getColix(false); +this.colix2 = this.getColix(false); +this.fillTriangle(); +break; +} +j += len; +} +}, "J.shape.Mesh"); +Clazz.defineMethod(c$, "getNormix", +function(){ +return this.cgoMesh.nList.get(this.ptNormal++).shortValue(); +}); +Clazz.defineMethod(c$, "getColix", +function(doSet){ +if (this.doColor) { +this.colix = JU.C.copyColixTranslucency(this.cgoMesh.colix, this.cgoMesh.cList.get(this.ptColor++).shortValue()); +if (doSet) this.g3d.setC(this.colix); +}return this.colix; +}, "~B"); +Clazz.defineMethod(c$, "getPoint", +function(i, pt, pti){ +this.cgoMesh.getPoint(i + 1, pt); +if (this.isMapped) { +var fx = (pt.x * this.scaleX - this.x0) / this.dx; +var fy = (pt.y * this.scaleY - this.y0) / this.dy; +pt.scaleAdd2(fx, this.vX, this.map0); +pt.scaleAdd2(fy, this.vY, pt); +} else if (this.is2D) { +pti.x = (this.is2DPercent ? this.tm.percentToPixels('x', pt.x) : Clazz.floatToInt(pt.x)); +pti.y = (this.is2DPercent ? this.tm.percentToPixels('y', pt.y) : Clazz.floatToInt(pt.y)); +pti.z = this.screenZ; +this.tm.unTransformPoint(pt, pt); +return; +}this.tm.transformPtScr(pt, pti); +}, "~N,JU.P3,JU.P3i"); +Clazz.defineMethod(c$, "fillTriangle", +function(){ +this.g3d.fillTriangle3CNBits(this.pt0, this.colix0, this.normix0, this.pt1, this.colix1, this.normix1, this.pt2, this.colix2, this.normix2, true); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/DipolesRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/DipolesRenderer.js new file mode 100755 index 000000000000..163e6031ef56 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/DipolesRenderer.js @@ -0,0 +1,132 @@ +Clazz.declarePackage("J.renderspecial"); +Clazz.load(["J.render.ShapeRenderer", "JU.P3", "$.V3"], "J.renderspecial.DipolesRenderer", ["JU.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.dipoleVectorScale = 0; +this.offset = null; +this.screens3f = null; +this.points = null; +this.cross0 = null; +this.cross1 = null; +this.diameter = 0; +this.headWidthPixels = 0; +this.crossWidthPixels = 0; +this.offsetSide = 0; +this.colixA = 0; +this.colixB = 0; +this.noCross = false; +Clazz.instantialize(this, arguments);}, J.renderspecial, "DipolesRenderer", J.render.ShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.offset = new JU.V3(); +this.screens3f = new Array(6); +this.points = new Array(6); +{ +for (var i = 0; i < 6; i++) { +this.screens3f[i] = new JU.P3(); +this.points[i] = new JU.P3(); +} +}this.cross0 = new JU.P3(); +this.cross1 = new JU.P3(); +}); +Clazz.overrideMethod(c$, "render", +function(){ +var dipoles = this.shape; +this.dipoleVectorScale = this.vwr.getFloat(570425354); +var needTranslucent = false; +var vis = this.vwr.ms.getVisibleSet(false); +for (var i = dipoles.dipoleCount; --i >= 0; ) { +var dipole = dipoles.dipoles[i]; +if (dipole.visibilityFlags != 0 && (dipole.atoms[0] == null || !this.ms.isAtomHidden(dipole.atoms[0].i)) && (dipole.bsMolecule == null || dipole.bsMolecule.intersects(vis)) && this.renderDipoleVector(dipole, vis)) needTranslucent = true; +} +return needTranslucent; +}); +Clazz.defineMethod(c$, "renderDipoleVector", +function(dipole, vis){ +this.mad = dipole.mad; +this.offsetSide = dipole.offsetSide; +this.noCross = dipole.noCross; +this.colixA = (dipole.bond == null ? dipole.colix : JU.C.getColixInherited(dipole.colix, dipole.bond.colix)); +this.colixB = this.colixA; +if (dipole.atoms[0] != null) { +this.colixA = JU.C.getColixInherited(this.colixA, dipole.atoms[0].colixAtom); +this.colixB = JU.C.getColixInherited(this.colixB, dipole.atoms[1].colixAtom); +}if (this.colixA == 0) this.colixA = 5; +if (this.colixB == 0) this.colixB = 5; +if (this.dipoleVectorScale < 0) { +var c = this.colixA; +this.colixA = this.colixB; +this.colixB = c; +}var factor = dipole.offsetAngstroms / dipole.dipoleValue; +if (dipole.lstDipoles == null) return this.renderVector(dipole.vector, dipole.origin, dipole.center, factor, false); +var needTranslucent = false; +for (var i = dipole.lstDipoles.size(); --i >= 0; ) { +var o = dipole.lstDipoles.get(i); +var v = o[0]; +var origin = o[1]; +var bsAtoms = o[2]; +if (bsAtoms.intersects(vis)) needTranslucent = this.renderVector(v, origin, null, dipole.offsetAngstroms, true); +} +return needTranslucent; +}, "J.shapespecial.Dipole,JU.BS"); +Clazz.defineMethod(c$, "renderVector", +function(vector, origin, dcenter, factor, isGroup){ +this.offset.setT(vector); +if (dcenter == null) { +if (isGroup) { +this.offset.normalize(); +this.offset.scale(factor); +} else { +this.offset.scale(factor); +if (this.dipoleVectorScale < 0) this.offset.add(vector); +}this.points[0].add2(origin, this.offset); +} else { +this.offset.scale(-0.5 * this.dipoleVectorScale); +this.points[0].add2(dcenter, this.offset); +if (factor != 0) { +this.offset.setT(vector); +this.offset.scale(factor); +this.points[0].add(this.offset); +}}this.points[1].scaleAdd2(this.dipoleVectorScale * 0.1, vector, this.points[0]); +this.points[2].scaleAdd2(this.dipoleVectorScale * (0.14), vector, this.points[0]); +this.points[3].scaleAdd2(this.dipoleVectorScale / 2, vector, this.points[0]); +this.points[4].scaleAdd2(this.dipoleVectorScale * 0.9, vector, this.points[0]); +this.points[5].scaleAdd2(this.dipoleVectorScale, vector, this.points[0]); +this.offset.setT(this.points[3]); +this.offset.cross(this.offset, vector); +if (this.offset.length() == 0) { +this.offset.set(this.points[3].x + 0.2345, this.points[3].y + 0.1234, this.points[3].z + 0.4321); +this.offset.cross(this.offset, vector); +}this.offset.scale(this.offsetSide / this.offset.length()); +for (var i = 0; i < 6; i++) this.points[i].add(this.offset); + +for (var i = 0; i < 6; i++) this.tm.transformPtScrT3(this.points[i], this.screens3f[i]); + +this.tm.transformPt3f(this.points[1], this.cross0); +this.tm.transformPt3f(this.points[2], this.cross1); +var d = this.vwr.tm.scaleToScreen(Clazz.floatToInt(this.screens3f[3].z), this.mad); +this.diameter = Clazz.floatToInt(d); +this.headWidthPixels = Clazz.doubleToInt(Math.floor(d * 2.0)); +if (this.headWidthPixels < this.diameter + 5) this.headWidthPixels = this.diameter + 5; +this.crossWidthPixels = this.headWidthPixels; +this.colix = this.colixA; +if (this.colix == this.colixB) { +if (!this.g3d.setC(this.colix)) return true; +this.g3d.fillCylinderBits(2, this.diameter, this.screens3f[0], this.screens3f[4]); +if (!this.noCross) this.g3d.fillCylinderBits(2, this.crossWidthPixels, this.cross0, this.cross1); +this.g3d.fillConeScreen3f(2, this.headWidthPixels, this.screens3f[4], this.screens3f[5], false); +return false; +}var needTranslucent = false; +if (this.g3d.setC(this.colix)) { +this.g3d.fillCylinderBits(2, this.diameter, this.screens3f[0], this.screens3f[3]); +if (!this.noCross) this.g3d.fillCylinderBits(2, this.crossWidthPixels, this.cross0, this.cross1); +} else { +needTranslucent = true; +}this.colix = this.colixB; +if (this.g3d.setC(this.colix)) { +this.g3d.fillCylinderBits(2, this.diameter, this.screens3f[3], this.screens3f[4]); +this.g3d.fillConeScreen3f(2, this.headWidthPixels, this.screens3f[4], this.screens3f[5], false); +} else { +needTranslucent = true; +}return needTranslucent; +}, "JU.V3,JU.P3,JU.P3,~N,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/DotsRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/DotsRenderer.js new file mode 100755 index 000000000000..720b78231556 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/DotsRenderer.js @@ -0,0 +1,82 @@ +Clazz.declarePackage("J.renderspecial"); +Clazz.load(["J.render.ShapeRenderer", "JU.P3i", "$.V3"], "J.renderspecial.DotsRenderer", ["J.shapespecial.Dots", "JU.C", "$.Geodesic"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.iShowSolid = false; +this.screenLevel = 0; +this.screenDotCount = 0; +this.scrCoords = null; +this.faceMap = null; +this.v3temp = null; +this.scrTemp = null; +this.dotScale = 0; +Clazz.instantialize(this, arguments);}, J.renderspecial, "DotsRenderer", J.render.ShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.v3temp = new JU.V3(); +this.scrTemp = new JU.P3i(); +}); +Clazz.overrideMethod(c$, "initRenderer", +function(){ +this.screenLevel = J.shapespecial.Dots.MAX_LEVEL; +this.screenDotCount = JU.Geodesic.getVertexCount(J.shapespecial.Dots.MAX_LEVEL); +this.scrCoords = Clazz.newIntArray (3 * this.screenDotCount, 0); +}); +Clazz.overrideMethod(c$, "render", +function(){ +this.render1(this.shape); +return false; +}); +Clazz.defineMethod(c$, "render1", +function(dots){ +if (!this.iShowSolid && !this.g3d.setC(4)) return; +var sppa = Clazz.floatToInt(this.vwr.getScalePixelsPerAngstrom(true)); +this.screenLevel = (this.iShowSolid || sppa > 20 ? 3 : sppa > 10 ? 2 : sppa > 5 ? 1 : 0); +if (!this.iShowSolid) this.screenLevel += this.vwr.getInt(553648139) - 3; +this.screenLevel = Math.max(Math.min(this.screenLevel, J.shapespecial.Dots.MAX_LEVEL), 0); +this.screenDotCount = JU.Geodesic.getVertexCount(this.screenLevel); +this.dotScale = this.vwr.getInt(553648140); +var maps = dots.ec.getDotsConvexMaps(); +for (var i = dots.ec.getDotsConvexMax(); --i >= 0; ) { +var atom = this.ms.at[i]; +var map = maps[i]; +if (map == null || !this.isVisibleForMe(atom) || !this.g3d.isInDisplayRange(atom.sX, atom.sY)) continue; +try { +var radius = dots.ec.getAppropriateRadius(i); +if (this.iShowSolid && this.exportType == 1) { +this.g3d.drawAtom(atom, radius); +continue; +}var nPoints = 0; +var j = 0; +var iDot = Math.min(map.size(), this.screenDotCount); +while (--iDot >= 0) { +if (!map.get(iDot)) continue; +this.v3temp.scaleAdd2(radius, JU.Geodesic.getVertexVector(iDot), atom); +this.tm.transformPtScr(this.v3temp, this.scrTemp); +if (this.faceMap != null) this.faceMap[iDot] = j; +this.scrCoords[j++] = this.scrTemp.x; +this.scrCoords[j++] = this.scrTemp.y; +this.scrCoords[j++] = this.scrTemp.z; +++nPoints; +} +if (nPoints != 0) this.renderConvex(JU.C.getColixInherited(dots.colixes[i], atom.colixAtom), map, nPoints); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println("Dots rendering error"); +System.out.println(e.toString()); +} else { +throw e; +} +} +} +}, "J.shapespecial.Dots"); +Clazz.defineMethod(c$, "renderConvex", +function(colix, map, nPoints){ +this.colix = JU.C.getColixTranslucent3(colix, false, 0); +this.renderDots(nPoints); +}, "~N,JU.BS,~N"); +Clazz.defineMethod(c$, "renderDots", +function(nPoints){ +this.g3d.setC(this.colix); +this.g3d.drawPoints(nPoints, this.scrCoords, this.dotScale); +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/DrawRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/DrawRenderer.js new file mode 100755 index 000000000000..b4d0960fcf2e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/DrawRenderer.js @@ -0,0 +1,388 @@ +Clazz.declarePackage("J.renderspecial"); +Clazz.load(["J.render.MeshRenderer", "JU.BS", "$.P3", "$.P3i", "$.V3"], "J.renderspecial.DrawRenderer", ["JU.A4", "$.M3", "$.Measure", "J.shapespecial.Draw", "JU.C", "$.GData"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.drawType = null; +this.dmesh = null; +this.controlHermites = null; +this.pt0 = null; +this.pt1 = null; +this.pt2 = null; +this.vTemp = null; +this.vTemp2 = null; +this.pt0f = null; +this.pt0i = null; +this.s0f = null; +this.s1f = null; +this.s2f = null; +this.bsHandles = null; +this.haveNotifiedHandles = false; +Clazz.instantialize(this, arguments);}, J.renderspecial, "DrawRenderer", J.render.MeshRenderer); +Clazz.prepareFields (c$, function(){ +this.pt0 = new JU.P3(); +this.pt1 = new JU.P3(); +this.pt2 = new JU.P3(); +this.vTemp = new JU.V3(); +this.vTemp2 = new JU.V3(); +this.pt0f = new JU.P3(); +this.pt0i = new JU.P3i(); +this.bsHandles = new JU.BS(); +}); +Clazz.overrideMethod(c$, "render", +function(){ +this.needTranslucent = false; +this.imageFontScaling = this.vwr.imageFontScaling; +var draw = this.shape; +for (var i = draw.meshCount; --i >= 0; ) { +var mesh = this.dmesh = draw.meshes[i]; +if (mesh == null) { +System.out.println("DrawRenderer mesh is null?"); +return false; +}if (this.dmesh.thisModelOnly && this.vwr.am.cmi < 0) continue; +if (mesh.connectedAtoms != null) { +if (mesh.connectedAtoms[0] < 0) continue; +mesh.vs = new Array(4); +mesh.vc = 4; +var c = mesh.connectedAtoms; +for (var j = 0; j < 4; j++) mesh.vs[j] = (c[j] < 0 ? mesh.vs[j - 1] : this.vwr.ms.at[c[j]]); + +mesh.recalcAltVertices = true; +}if (this.renderMesh2(mesh)) this.renderInfo(); +if (!this.isExport && mesh.visibilityFlags != 0 && (this.vwr.getDrawHover() || this.vwr.getPickingMode() == 4)) { +if (!this.g3d.setC(JU.C.getColixTranslucent3(23, true, 0.5))) this.needTranslucent = true; + else this.renderHandles(); +}} +return this.needTranslucent; +}); +Clazz.overrideMethod(c$, "isPolygonDisplayable", +function(i){ +return J.shapespecial.Draw.isPolygonDisplayable(this.dmesh, i) && (this.dmesh.modelFlags == null || this.dmesh.bsMeshesVisible.get(i)); +}, "~N"); +Clazz.overrideMethod(c$, "render2", +function(isExport){ +this.drawType = this.dmesh.drawType; +this.diameter = this.dmesh.diameter; +this.width = this.dmesh.width; +if (this.mesh.connectedAtoms != null) this.getConnectionPoints(); +if (this.mesh.lineData != null) { +this.drawLineData(this.mesh.lineData); +return; +}var nPoints = this.vertexCount; +var isCurved = ((this.drawType === J.shapespecial.Draw.EnumDrawType.CURVE || this.drawType === J.shapespecial.Draw.EnumDrawType.ARROW || this.drawType === J.shapespecial.Draw.EnumDrawType.ARC) && this.vertexCount > 2); +if (this.width > 0 && isCurved || this.drawType === J.shapespecial.Draw.EnumDrawType.ARROW) { +this.pt1f.set(0, 0, 0); +var n = (this.drawType === J.shapespecial.Draw.EnumDrawType.ARC ? 2 : this.vertexCount); +for (var i = 0; i < n; i++) this.pt1f.add(this.vertices[i]); + +this.pt1f.scale(1 / n); +this.tm.transformPtScr(this.pt1f, this.pt1i); +this.diameter = Clazz.floatToInt(this.vwr.tm.scaleToScreen(this.pt1i.z, Clazz.doubleToInt(Math.floor(this.width * 1000)))); +if (this.diameter == 0) this.diameter = 1; +}if (this.dmesh.haveXyPoints && this.drawXYPoints()) return; +var tension = 5; +switch (this.drawType) { +case J.shapespecial.Draw.EnumDrawType.CYLINDER: +this.allowDashed = false; +default: +this.render2b(false); +return; +case J.shapespecial.Draw.EnumDrawType.CIRCULARPLANE: +if (this.dmesh.scale > 0) this.width *= this.dmesh.scale; +this.allowDashed = false; +this.render2b(false); +return; +case J.shapespecial.Draw.EnumDrawType.CIRCLE: +this.tm.transformPtScr(this.vertices[0], this.pt1i); +if (this.diameter == 0 && this.width == 0) this.width = 1.0; +if (this.dmesh.scale > 0) this.width *= this.dmesh.scale; +if (this.width > 0) this.diameter = Clazz.floatToInt(this.vwr.tm.scaleToScreen(this.pt1i.z, Clazz.doubleToInt(Math.floor(this.width * 1000)))); +if (this.diameter > 0 && (this.mesh.drawTriangles || this.mesh.fillTriangles)) { +this.g3d.addRenderer(1073741880); +this.g3d.drawFilledCircle(this.colix, this.mesh.fillTriangles ? this.colix : 0, this.diameter, this.pt1i.x, this.pt1i.y, this.pt1i.z); +}return; +case J.shapespecial.Draw.EnumDrawType.LINE_SEGMENT: +for (var i = 0; i < nPoints - 1; i++) this.drawEdge(i, i + 1, true, this.vertices[i], this.vertices[i + 1], this.screens[i], this.screens[i + 1]); + +return; +case J.shapespecial.Draw.EnumDrawType.CURVE: +break; +case J.shapespecial.Draw.EnumDrawType.ARC: +var ptRef = (this.vertexCount > 2 ? this.vertices[2] : J.shapespecial.Draw.randomPoint()); +var nDegreesOffset = (this.vertexCount > 3 ? this.vertices[3].x : 0); +var theta = (this.vertexCount > 3 ? this.vertices[3].y : 360); +if (theta == 0) return; +var fractionalOffset = (this.vertexCount > 3 ? this.vertices[3].z : 0); +nPoints = this.setArc(this.vertices[0], this.vertices[1], ptRef, nDegreesOffset, theta, fractionalOffset, this.dmesh.scale); +if (this.dmesh.isVector && !this.dmesh.noHead) { +this.renderArrowHead(this.pt0, this.pt1, 0.3, false, false, this.dmesh.isBarb); +this.tm.transformPtScr(this.pt1f, this.screens[nPoints - 1]); +this.tm.transformPtScrT3(this.pt1f, this.p3Screens[nPoints - 1]); +}this.pt1f.setT(this.pt2); +break; +case J.shapespecial.Draw.EnumDrawType.ARROW: +if (!isCurved) { +this.renderArrowHead(this.vertices[0], this.vertices[1], 0, false, true, this.dmesh.isBarb); +return; +}var nHermites = 5; +if (this.controlHermites == null || this.controlHermites.length < nHermites + 1) { +this.controlHermites = new Array(nHermites + 1); +}JU.GData.getHermiteList(tension, this.vertices[this.vertexCount - 3], this.vertices[this.vertexCount - 2], this.vertices[this.vertexCount - 1], this.vertices[this.vertexCount - 1], this.vertices[this.vertexCount - 1], this.controlHermites, 0, nHermites, true); +this.renderArrowHead(this.controlHermites[nHermites - 2], this.controlHermites[nHermites - 1], 0, false, false, this.dmesh.isBarb); +break; +} +if (this.diameter == 0) this.diameter = 3; +if (isCurved) { +this.g3d.addRenderer(553648143); +for (var i = 0, i0 = 0; i < nPoints - 1; i++) { +this.g3d.fillHermite(tension, this.diameter, this.diameter, this.diameter, this.p3Screens[i0], this.p3Screens[i], this.p3Screens[i + 1], this.p3Screens[i + (i == nPoints - 2 ? 1 : 2)]); +i0 = i; +} +} else { +this.render2b(false); +}}, "~B"); +Clazz.defineMethod(c$, "drawXYPoints", +function(){ +if (this.dmesh.isVector) { +var ptXY = 0; +for (var i = 0; i < 2; i++) if (J.shapespecial.Draw.is2DPoint(this.vertices[i])) ptXY += i + 1; + +if (--ptXY < 2) { +this.renderXyArrow(ptXY); +return true; +}} else if (this.drawType === J.shapespecial.Draw.EnumDrawType.POINT || this.drawType === J.shapespecial.Draw.EnumDrawType.MULTIPLE) { +this.renderXyPoint(); +return true; +}return false; +}); +Clazz.defineMethod(c$, "setArc", +function(v1, v2, ptRef, nDegreesOffset, theta, fractionalOffset, scale){ +this.vTemp.sub2(v2, v1); +this.pt1f.scaleAdd2(fractionalOffset, this.vTemp, v1); +var mat = new JU.M3().setAA(JU.A4.newVA(this.vTemp, (nDegreesOffset * 3.141592653589793 / 180))); +this.vTemp2.sub2(ptRef, v1); +this.vTemp2.cross(this.vTemp, this.vTemp2); +this.vTemp2.cross(this.vTemp2, this.vTemp); +this.vTemp2.normalize(); +this.vTemp2.scale(scale / 2); +mat.rotate(this.vTemp2); +var degrees = theta / 5; +while (Math.abs(degrees) > 5) degrees /= 2; + +var nPoints = Math.round(theta / degrees) + 1; +while (nPoints < 10) { +degrees /= 2; +nPoints = Math.round(theta / degrees) + 1; +} +mat.setAA(JU.A4.newVA(this.vTemp, (degrees * 3.141592653589793 / 180))); +this.screens = this.vwr.allocTempScreens(nPoints); +this.p3Screens = this.vwr.allocTempPoints(nPoints); +var iBase = nPoints - (this.dmesh.scale < 2 ? 3 : 3); +for (var i = 0; i < nPoints; i++) { +if (i == iBase) this.pt0.setT(this.pt1); +this.pt1.scaleAdd2(1, this.vTemp2, this.pt1f); +if (i == 0) this.pt2.setT(this.pt1); +this.tm.transformPtScr(this.pt1, this.screens[i]); +this.tm.transformPtScrT3(this.pt1, this.p3Screens[i]); +mat.rotate(this.vTemp2); +} +return nPoints; +}, "JU.T3,JU.T3,JU.T3,~N,~N,~N,~N"); +Clazz.defineMethod(c$, "getConnectionPoints", +function(){ +this.vertexCount = 3; +var dmax = 3.4028235E38; +var i0 = 0; +var j0 = 0; +for (var i = 0; i < 2; i++) for (var j = 2; j < 4; j++) { +var d = this.vertices[i].distance(this.vertices[j]); +if (d < dmax) { +dmax = d; +i0 = i; +j0 = j; +}} + +this.pt0.ave(this.vertices[0], this.vertices[1]); +this.pt2.ave(this.vertices[2], this.vertices[3]); +this.pt1.ave(this.pt0, this.pt2); +this.vertices[3] = JU.P3.newP(this.vertices[i0]); +this.vertices[3].add(this.vertices[j0]); +this.vertices[3].scale(0.5); +this.vertices[1] = JU.P3.newP(this.pt1); +this.vertices[0] = JU.P3.newP(this.pt0); +this.vertices[2] = JU.P3.newP(this.pt2); +for (var i = 0; i < 4; i++) this.tm.transformPtScr(this.vertices[i], this.screens[i]); + +var f = 4 * this.getArrowScale(); +var endoffset = 0.2; +var offsetside = (this.width == 0 ? 0.1 : this.width); +this.pt0.set(this.screens[0].x, this.screens[0].y, this.screens[0].z); +this.pt1.set(this.screens[1].x, this.screens[1].y, this.screens[1].z); +this.pt2.set(this.screens[3].x, this.screens[3].y, this.screens[3].z); +var dx = (this.screens[1].x - this.screens[0].x) * f; +var dy = (this.screens[1].y - this.screens[0].y) * f; +if (dmax == 0 || JU.Measure.computeTorsion(this.pt2, this.pt0, JU.P3.new3(this.pt0.x, this.pt0.y, 10000), this.pt1, false) > 0) { +dx = -dx; +dy = -dy; +}this.pt2.set(dy, -dx, 0); +this.pt1.add(this.pt2); +this.tm.unTransformPoint(this.pt1, this.vertices[1]); +this.pt2.scale(offsetside); +this.vTemp.sub2(this.vertices[1], this.vertices[0]); +this.vTemp.scale(endoffset); +this.vertices[0].add(this.vTemp); +this.vTemp.sub2(this.vertices[1], this.vertices[2]); +this.vTemp.scale(endoffset); +this.vertices[2].add(this.vTemp); +for (var i = 0; i < 3; i++) { +this.tm.transformPtScr(this.vertices[i], this.screens[i]); +if (offsetside != 0) { +this.screens[i].x += Math.round(this.pt2.x); +this.screens[i].y += Math.round(this.pt2.y); +this.pt1.set(this.screens[i].x, this.screens[i].y, this.screens[i].z); +this.tm.unTransformPoint(this.pt1, this.vertices[i]); +}} +}); +Clazz.defineMethod(c$, "drawLineData", +function(lineData){ +if (this.diameter == 0) this.diameter = 3; +for (var i = lineData.size(); --i >= 0; ) { +var pts = lineData.get(i); +this.tm.transformPtScr(pts[0], this.pt1i); +this.tm.transformPtScr(pts[1], this.pt2i); +this.drawEdge(-1, -2, true, pts[0], pts[1], this.pt1i, this.pt2i); +} +}, "JU.Lst"); +Clazz.defineMethod(c$, "renderXyPoint", +function(){ +var f = (this.g3d.isAntialiased() ? 2 : 1); +this.pt0.setT(this.vertices[0]); +if (this.diameter == 0) this.diameter = Clazz.floatToInt(this.width); +if (this.pt0.z == -3.4028235E38) { +this.pt0.x *= this.vwr.tm.width / 100; +this.pt0.y *= this.vwr.tm.height / 100; +this.diameter = Clazz.floatToInt(this.diameter * this.vwr.getScreenDim() / 100); +}this.diameter *= f; +this.pt1i.set(Clazz.floatToInt(this.pt0.x), Clazz.floatToInt(this.vwr.tm.height - this.pt0.y), Clazz.floatToInt(this.vwr.tm.cameraDistance)); +this.g3d.fillSphereI(this.diameter, this.pt1i); +}); +Clazz.defineMethod(c$, "renderXyArrow", +function(ptXY){ +var ptXYZ = 1 - ptXY; +var arrowPt = new Array(2); +arrowPt[ptXYZ] = this.pt1; +arrowPt[ptXY] = this.pt0; +this.pt0.set(this.screens[ptXY].x, this.screens[ptXY].y, this.screens[ptXY].z); +this.tm.rotatePoint(this.vertices[ptXYZ], this.pt1); +this.pt1.z *= -1; +var zoomDimension = this.vwr.getScreenDim(); +var scaleFactor = zoomDimension / 20; +this.pt1.scaleAdd2(this.dmesh.scale * scaleFactor, this.pt1, this.pt0); +if (this.diameter == 0) this.diameter = 1; +if (this.diameter < 0) this.g3d.drawDashedLineBits(8, 4, this.pt0, this.pt1); + else this.g3d.fillCylinderBits(2, this.diameter, this.pt0, this.pt1); +this.renderArrowHead(this.pt0, this.pt1, 0, true, false, false); +}, "~N"); +Clazz.defineMethod(c$, "renderArrowHead", +function(pt1, pt2, factor2, isTransformed, withShaft, isBarb){ +if (this.dmesh.noHead) return; +if (this.s0f == null) { +this.s0f = new JU.P3(); +this.s1f = new JU.P3(); +this.s2f = new JU.P3(); +}var fScale = this.getArrowScale(); +if (isTransformed) fScale *= 40; +if (factor2 > 0) fScale *= factor2; +this.pt0f.setT(pt1); +this.pt2f.setT(pt2); +var d = this.pt0f.distance(this.pt2f); +if (d == 0) return; +this.vTemp.sub2(this.pt2f, this.pt0f); +this.vTemp.normalize(); +this.vTemp.scale(fScale / 5); +if (!withShaft) this.pt2f.add(this.vTemp); +this.vTemp.scale(5); +this.pt1f.sub2(this.pt2f, this.vTemp); +if (isTransformed) { +this.s1f.setT(this.pt1f); +this.s2f.setT(this.pt2f); +} else { +this.tm.transformPtScrT3(this.pt2f, this.s2f); +this.tm.transformPtScrT3(this.pt1f, this.s1f); +this.tm.transformPtScrT3(this.pt0f, this.s0f); +}if (this.s2f.z == 1 || this.s1f.z == 1) return; +var headDiameter; +if (this.diameter > 0) { +headDiameter = this.diameter * 3; +} else { +this.vTemp.set(this.s2f.x - this.s1f.x, this.s2f.y - this.s1f.y, this.s2f.z - this.s1f.z); +headDiameter = Math.round(this.vTemp.length() * .5); +this.diameter = Clazz.doubleToInt(headDiameter / 5); +}if (this.diameter < 1) this.diameter = 1; +if (headDiameter > 2) this.g3d.fillConeScreen3f(2, headDiameter, this.s1f, this.s2f, isBarb); +if (withShaft) this.g3d.fillCylinderScreen3I(2, this.diameter, this.s0f, this.s1f, null, null, 0); +}, "JU.T3,JU.T3,~N,~B,~B,~B"); +Clazz.defineMethod(c$, "getArrowScale", +function(){ +var fScale = (this.dmesh.isScaleSet ? this.dmesh.scale : 0); +if (fScale == 0) fScale = this.vwr.getFloat(570425352) * (this.dmesh.connectedAtoms == null ? 1 : 0.5); +if (fScale <= 0) fScale = 0.5; +return fScale; +}); +Clazz.defineMethod(c$, "renderHandles", +function(){ +var diameter = Math.round(10 * this.imageFontScaling); +switch (this.drawType) { +case J.shapespecial.Draw.EnumDrawType.NONE: +return; +default: +var colixFill = JU.C.getColixTranslucent3(23, true, 0.5); +this.bsHandles.clearAll(); +this.g3d.addRenderer(1073741880); +for (var i = this.dmesh.pc; --i >= 0; ) { +if (!this.isPolygonDisplayable(i)) continue; +var vertexIndexes = this.dmesh.pis[i]; +if (vertexIndexes == null) continue; +for (var j = (this.dmesh.isDrawPolygon ? 3 : vertexIndexes.length); --j >= 0; ) { +var k = vertexIndexes[j]; +if (this.bsHandles.get(k)) continue; +this.bsHandles.set(k); +if (k >= this.screens.length) { +if (!this.haveNotifiedHandles) { +System.out.println("DrawRender handles k >= screens.length " + k + " "); +this.haveNotifiedHandles = true; +}} else { +this.g3d.drawFilledCircle(23, colixFill, diameter, this.screens[k].x, this.screens[k].y, this.screens[k].z); +}} +} +break; +} +}); +Clazz.defineMethod(c$, "renderInfo", +function(){ +if (this.isExport || this.mesh.title == null || this.vwr.getDrawHover() || !this.g3d.setC(this.vwr.cm.colixBackgroundContrast)) return; +var f0 = this.vwr.shm.getShapePropertyIndex(22, "font", -1); +var f = f0; +var lastFID = -1; +var haveFont = false; +for (var i = this.dmesh.pc; --i >= 0; ) if (this.isPolygonDisplayable(i)) { +if (!haveFont || this.dmesh.fontID != lastFID) { +f = this.vwr.shm.getShapePropertyIndex(22, "font", i); +if (f == null) f = f0; +lastFID = f.fid; +this.vwr.gdata.setFont(this.imageFontScaling == 1 ? f : this.vwr.gdata.getFont3DFSS(f.fontFace, f.fontStyle, f.fontSize * this.imageFontScaling)); +haveFont = true; +}var s = this.mesh.title[i < this.mesh.title.length ? i : this.mesh.title.length - 1]; +var pt = 0; +if (s.length > 1 && s.charAt(0) == '>') { +pt = this.dmesh.pis[i].length - 1; +s = s.substring(1); +if (this.drawType === J.shapespecial.Draw.EnumDrawType.ARC) this.pt1f.setT(this.pt2f); +}if (this.drawType !== J.shapespecial.Draw.EnumDrawType.ARC) this.pt1f.setT(this.vertices[this.dmesh.pis[i][pt]]); +this.tm.transformPtScr(this.pt1f, this.pt1i); +var offset = Math.round(5 * this.imageFontScaling); +if (this.dmesh.titleColor != null) this.vwr.gdata.setColor(this.dmesh.titleColor.intValue()); +this.g3d.drawString(s, null, this.pt1i.x + offset, this.pt1i.y - offset, this.pt1i.z, this.pt1i.z, 0); +break; +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/EllipsoidsRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/EllipsoidsRenderer.js new file mode 100755 index 000000000000..7e231177f15c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/EllipsoidsRenderer.js @@ -0,0 +1,371 @@ +Clazz.declarePackage("J.renderspecial"); +Clazz.load(["J.render.ShapeRenderer", "JU.BS", "$.M3", "$.M4", "$.P3", "$.V3", "JV.JC"], "J.renderspecial.EllipsoidsRenderer", ["JU.PT", "J.shapespecial.Ellipsoid", "JU.C", "$.Normix"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.ellipsoids = null; +this.bGlobals = null; +this.bOptions = null; +this.OPTS = null; +this.fillArc = false; +this.isSet = false; +this.diameter = 0; +this.diameter0 = 0; +this.dotCount = 0; +this.dotScale = 0; +this.dx = 0; +this.eigenSignMask = 7; +this.iCutout = -1; +this.selectedOctant = -1; +this.coords = null; +this.axes = null; +this.center = null; +this.perspectiveFactor = 0; +this.bsTemp = null; +this.mat = null; +this.mTemp = null; +this.mDeriv = null; +this.matScreenToCartesian = null; +this.matScreenToEllipsoid = null; +this.matEllipsoidToScreen = null; +this.coefs = null; +this.factoredLengths = null; +this.selectedPoints = null; +this.v1 = null; +this.v2 = null; +this.v3 = null; +this.pt1 = null; +this.pt2 = null; +this.s0 = null; +this.s1 = null; +this.s2 = null; +this.screens = null; +this.points = null; +Clazz.instantialize(this, arguments);}, J.renderspecial, "EllipsoidsRenderer", J.render.ShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.bGlobals = Clazz.newBooleanArray(7, false); +this.bOptions = Clazz.newBooleanArray(7, false); +this.OPTS = Clazz.newArray(-1, ["dots", "arcs", "axes", "fill", "ball", "arrows", "wireframe"]); +this.bsTemp = new JU.BS(); +this.mat = new JU.M3(); +this.mTemp = new JU.M3(); +this.mDeriv = new JU.M4(); +this.matScreenToCartesian = new JU.M3(); +this.matScreenToEllipsoid = new JU.M3(); +this.matEllipsoidToScreen = new JU.M3(); +this.coefs = Clazz.newDoubleArray (10, 0); +this.factoredLengths = Clazz.newFloatArray (3, 0); +this.selectedPoints = new Array(3); +this.v1 = new JU.V3(); +this.v2 = new JU.V3(); +this.v3 = new JU.V3(); +this.pt1 = new JU.P3(); +this.pt2 = new JU.P3(); +this.s0 = new JU.P3(); +this.s1 = new JU.P3(); +this.s2 = new JU.P3(); +this.screens = new Array(38); +this.points = new Array(6); +{ +for (var i = 0; i < this.points.length; i++) this.points[i] = new JU.P3(); + +for (var i = 0; i < this.screens.length; i++) this.screens[i] = new JU.P3(); + +}}); +Clazz.overrideMethod(c$, "render", +function(){ +this.isSet = false; +this.ellipsoids = this.shape; +if (!this.ellipsoids.isActive()) return false; +var needTranslucent = false; +if (!this.isSet) this.isSet = this.setGlobals(); +if (!this.ellipsoids.atomEllipsoids.isEmpty()) needTranslucent = new Boolean (needTranslucent | this.renderEllipsoids(this.ellipsoids.atomEllipsoids, false)).valueOf(); +if (!this.ellipsoids.simpleEllipsoids.isEmpty()) { +needTranslucent = new Boolean (needTranslucent | this.renderEllipsoids(this.ellipsoids.simpleEllipsoids, true)).valueOf(); +}this.coords = null; +return needTranslucent; +}); +Clazz.defineMethod(c$, "setGlobals", +function(){ +this.bGlobals[1] = this.vwr.getBooleanProperty("ellipsoidArcs"); +this.bGlobals[5] = this.vwr.getBooleanProperty("ellipsoidArrows"); +this.bGlobals[2] = this.vwr.getBooleanProperty("ellipsoidAxes"); +this.bGlobals[4] = this.vwr.getBooleanProperty("ellipsoidBall"); +this.bGlobals[0] = this.vwr.getBooleanProperty("ellipsoidDots"); +this.bGlobals[3] = this.vwr.getBooleanProperty("ellipsoidFill"); +this.bGlobals[6] = !this.isExport && !this.vwr.checkMotionRendering(1112150020); +this.diameter0 = Math.round((this.vwr.getP("ellipsoidAxisDiameter")).floatValue() * 1000); +var m4 = this.tm.matrixTransform; +this.mat.setRow(0, m4.m00, m4.m01, m4.m02); +this.mat.setRow(1, m4.m10, m4.m11, m4.m12); +this.mat.setRow(2, m4.m20, m4.m21, m4.m22); +this.matScreenToCartesian.invertM(this.mat); +this.setLogic(); +return true; +}); +Clazz.defineMethod(c$, "setOptions", +function(options){ +for (var i = 0; i < 7; i++) this.bOptions[i] = this.bGlobals[i]; + +if (options != null) { +options = ";" + options + ";"; +for (var i = 0; i < 7; i++) { +if (JU.PT.isOneOf(this.OPTS[i], options)) this.bOptions[i] = true; + else if (JU.PT.isOneOf("no" + this.OPTS[i], options)) this.bOptions[i] = false; +} +}this.setLogic(); +}, "~S"); +Clazz.defineMethod(c$, "setLogic", +function(){ +this.bOptions[0] = new Boolean (this.bOptions[0] & !this.bOptions[6]).valueOf(); +this.bOptions[4] = new Boolean (this.bOptions[4] & !this.bOptions[6]).valueOf(); +this.bOptions[3] = new Boolean (this.bOptions[3] & !this.bOptions[6]).valueOf(); +this.fillArc = this.bOptions[3] && !this.bOptions[4]; +if (this.fillArc) this.g3d.addRenderer(1073742182); +if (this.bOptions[4]) this.bOptions[0] = false; +if (!this.bOptions[0] && !this.bOptions[1] && !this.bOptions[4]) this.bOptions[2] = true; +if (this.bOptions[0]) { +this.bOptions[1] = false; +this.bOptions[3] = false; +this.dotScale = this.vwr.getInt(553648140); +}if (this.bOptions[0]) { +this.dotCount = (this.vwr.getP("ellipsoidDotCount")).intValue(); +if (this.coords == null || this.coords.length != this.dotCount * 3) this.coords = Clazz.newIntArray (this.dotCount * 3, 0); +}}); +Clazz.defineMethod(c$, "renderEllipsoids", +function(ht, isSimple){ +var needTranslucent = false; +var atom = null; +for (var ellipsoid, $ellipsoid = ht.values().iterator (); $ellipsoid.hasNext()&& ((ellipsoid = $ellipsoid.next ()) || true);) { +if (!ellipsoid.visible) continue; +if (isSimple) { +this.colix = ellipsoid.colix; +} else { +atom = this.ms.at[ellipsoid.tensor.atomIndex1]; +if (atom.sZ <= 1 || !this.isVisibleForMe(atom)) continue; +this.colix = JU.C.getColixInherited(ellipsoid.colix, atom.colixAtom); +}if (!this.g3d.setC(this.colix)) { +needTranslucent = true; +continue; +}this.tm.transformPtScrT3(ellipsoid.center, this.s0); +this.renderOne(ellipsoid); +} +return needTranslucent; +}, "java.util.Map,~B"); +Clazz.defineMethod(c$, "renderOne", +function(e){ +this.center = e.center; +var maxPt = 2; +var maxLen = 0; +for (var i = 3; --i >= 0; ) { +var f = this.factoredLengths[i] = Math.max(e.getLength(i), 0.02); +if (f > maxLen) { +maxLen = f; +maxPt = i; +}} +this.axes = e.tensor.eigenVectors; +this.setMatrices(); +this.setAxes(maxPt); +if (this.g3d.isClippedXY(this.dx + this.dx, Clazz.floatToInt(this.s0.x), Clazz.floatToInt(this.s0.y))) return; +this.eigenSignMask = e.tensor.eigenSignMask; +this.setOptions(e.options); +this.diameter = Clazz.floatToInt(this.vwr.tm.scaleToScreen(Clazz.floatToInt(this.s0.z), this.bOptions[6] ? 1 : this.diameter0)); +if (e.tensor.isIsotropic) { +this.renderBall(); +return; +}if (this.bOptions[4]) { +this.renderBall(); +if (this.bOptions[1] || this.bOptions[2]) { +this.g3d.setC(this.vwr.cm.colixBackgroundContrast); +if (this.bOptions[2]) this.renderAxes(); +if (this.bOptions[1]) this.renderArcs(); +this.g3d.setC(this.colix); +}} else { +if (this.bOptions[2]) this.renderAxes(); +if (this.bOptions[1]) this.renderArcs(); +}if (this.bOptions[0]) this.renderDots(); +if (this.bOptions[5]) this.renderArrows(); +}, "J.shapespecial.Ellipsoid"); +Clazz.defineMethod(c$, "setMatrices", +function(){ +for (var i = 0; i < 3; i++) { +this.v1.setT(this.axes[i]); +this.v1.scale(this.factoredLengths[i]); +this.mat.setColumnV(i, this.v1); +} +this.mat.invertM(this.mat); +this.matScreenToEllipsoid.mul2(this.mat, this.matScreenToCartesian); +this.matEllipsoidToScreen.invertM(this.matScreenToEllipsoid); +this.perspectiveFactor = this.vwr.tm.scaleToPerspective(Clazz.floatToInt(this.s0.z), 1.0); +this.matScreenToEllipsoid.scale(1 / this.perspectiveFactor); +}); +Clazz.defineMethod(c$, "setAxes", +function(maxPt){ +for (var i = 0; i < 6; i++) { +var iAxis = J.renderspecial.EllipsoidsRenderer.axisPoints[i]; +var i012 = Math.abs(iAxis) - 1; +this.points[i].scaleAdd2(this.factoredLengths[i012] * (iAxis < 0 ? -1 : 1), this.axes[i012], this.center); +this.pt1.setT(J.renderspecial.EllipsoidsRenderer.unitAxisVectors[i]); +this.matEllipsoidToScreen.rotate(this.pt1); +this.screens[i].set(Math.round(this.s0.x + this.pt1.x * this.perspectiveFactor), Math.round(this.s0.y + this.pt1.y * this.perspectiveFactor), Math.round(this.pt1.z + this.s0.z)); +this.screens[i + 32].set(Math.round(this.s0.x + this.pt1.x * this.perspectiveFactor * 1.05), Math.round(this.s0.y + this.pt1.y * this.perspectiveFactor * 1.05), Math.round(this.pt1.z * 1.05 + this.s0.z)); +} +this.dx = 2 + Clazz.floatToInt(this.vwr.tm.scaleToScreen(Clazz.floatToInt(this.s0.z), Math.round((Float.isNaN(this.factoredLengths[maxPt]) ? 1.0 : this.factoredLengths[maxPt]) * 1000))); +}, "~N"); +Clazz.defineMethod(c$, "renderBall", +function(){ +this.setSelectedOctant(); +J.shapespecial.Ellipsoid.getEquationForQuadricWithCenter(this.s0.x, this.s0.y, this.s0.z, this.matScreenToEllipsoid, this.v1, this.mTemp, this.coefs, this.mDeriv); +this.g3d.fillEllipsoid(this.center, this.points, Clazz.floatToInt(this.s0.x), Clazz.floatToInt(this.s0.y), Clazz.floatToInt(this.s0.z), this.dx + this.dx, this.matScreenToEllipsoid, this.coefs, this.mDeriv, this.selectedOctant, this.selectedOctant >= 0 ? this.selectedPoints : null); +}); +Clazz.defineMethod(c$, "renderArrows", +function(){ +for (var i = 0; i < 6; i += 2) { +var pt = (i == 0 ? 1 : i); +this.fillConeScreen(this.screens[i], this.screens[i + 1], (this.eigenSignMask & pt) != 0); +} +}); +Clazz.defineMethod(c$, "fillConeScreen", +function(p1, p2, isPositive){ +if (this.diameter == 0) return; +var diam = (this.diameter == 0 ? 1 : this.diameter) * 8; +this.v1.set(p2.x - p1.x, p2.y - p1.y, p2.z - p1.z); +this.v1.normalize(); +this.v1.scale(diam); +this.s1.setT(p1); +this.s2.setT(p1); +if (isPositive) { +this.s2.x -= Clazz.floatToInt(this.v1.x); +this.s2.y -= Clazz.floatToInt(this.v1.y); +this.s2.z -= Clazz.floatToInt(this.v1.z); +} else { +this.s1.x -= Clazz.floatToInt(this.v1.x); +this.s1.y -= Clazz.floatToInt(this.v1.y); +this.s1.z -= Clazz.floatToInt(this.v1.z); +}this.g3d.fillConeScreen3f(2, Clazz.floatToInt(diam), this.s1, this.s2, false); +this.s1.setT(p2); +this.s2.setT(p2); +if (isPositive) { +this.s2.x += Clazz.floatToInt(this.v1.x); +this.s2.y += Clazz.floatToInt(this.v1.y); +this.s2.z += Clazz.floatToInt(this.v1.z); +} else { +this.s1.x += Clazz.floatToInt(this.v1.x); +this.s1.y += Clazz.floatToInt(this.v1.y); +this.s1.z += Clazz.floatToInt(this.v1.z); +}this.g3d.fillConeScreen3f(2, Clazz.floatToInt(diam), this.s1, this.s2, false); +}, "JU.P3,JU.P3,~B"); +Clazz.defineMethod(c$, "renderAxes", +function(){ +if (this.bOptions[4] && this.bOptions[3]) { +this.g3d.fillCylinderBits(2, this.diameter, this.s0, this.selectedPoints[0]); +this.g3d.fillCylinderBits(2, this.diameter, this.s0, this.selectedPoints[1]); +this.g3d.fillCylinderBits(2, this.diameter, this.s0, this.selectedPoints[2]); +return; +}if (this.bOptions[4]) { +this.g3d.fillCylinderBits(2, this.diameter, this.screens[32], this.screens[33]); +this.g3d.fillCylinderBits(2, this.diameter, this.screens[34], this.screens[35]); +this.g3d.fillCylinderBits(2, this.diameter, this.screens[36], this.screens[37]); +} else { +this.g3d.fillCylinderBits(2, this.diameter, this.screens[0], this.screens[1]); +this.g3d.fillCylinderBits(2, this.diameter, this.screens[2], this.screens[3]); +this.g3d.fillCylinderBits(2, this.diameter, this.screens[4], this.screens[5]); +}}); +Clazz.defineMethod(c$, "renderDots", +function(){ +for (var i = 0; i < this.coords.length; ) { +var fx = Math.random(); +var fy = Math.random(); +fx *= (Math.random() > 0.5 ? -1 : 1); +fy *= (Math.random() > 0.5 ? -1 : 1); +var fz = Math.sqrt(1 - fx * fx - fy * fy); +if (Float.isNaN(fz)) continue; +fz = (Math.random() > 0.5 ? -1 : 1) * fz; +this.pt1.scaleAdd2(fx * this.factoredLengths[0], this.axes[0], this.center); +this.pt1.scaleAdd2(fy * this.factoredLengths[1], this.axes[1], this.pt1); +this.pt1.scaleAdd2(fz * this.factoredLengths[2], this.axes[2], this.pt1); +this.tm.transformPtScrT3(this.pt1, this.s1); +this.coords[i++] = Clazz.floatToInt(this.s1.x); +this.coords[i++] = Clazz.floatToInt(this.s1.y); +this.coords[i++] = Clazz.floatToInt(this.s1.z); +} +this.g3d.drawPoints(this.dotCount, this.coords, this.dotScale); +}); +Clazz.defineMethod(c$, "renderArcs", +function(){ +if (this.g3d.drawEllipse(this.center, this.points[0], this.points[2], this.fillArc, this.bOptions[6])) { +this.g3d.drawEllipse(this.center, this.points[2], this.points[5], this.fillArc, this.bOptions[6]); +this.g3d.drawEllipse(this.center, this.points[5], this.points[0], this.fillArc, this.bOptions[6]); +return; +}for (var i = 1, pt = 3; i < 8; i += 2, pt += 6) { +this.renderArc(J.renderspecial.EllipsoidsRenderer.octants[pt], J.renderspecial.EllipsoidsRenderer.octants[pt + 1]); +this.renderArc(J.renderspecial.EllipsoidsRenderer.octants[pt + 1], J.renderspecial.EllipsoidsRenderer.octants[pt + 2]); +this.renderArc(J.renderspecial.EllipsoidsRenderer.octants[pt + 2], J.renderspecial.EllipsoidsRenderer.octants[pt]); +} +}); +Clazz.defineMethod(c$, "renderArc", +function(ptA, ptB){ +this.v1.sub2(this.points[ptA], this.center); +this.v2.sub2(this.points[ptB], this.center); +var d1 = this.v1.length(); +var d2 = this.v2.length(); +this.v1.normalize(); +this.v2.normalize(); +this.v3.cross(this.v1, this.v2); +this.pt1.setT(this.points[ptA]); +this.s1.setT(this.screens[ptA]); +var normix = JU.Normix.get2SidedNormix(this.v3, this.bsTemp); +if (!this.fillArc && !this.bOptions[6]) this.screens[6].setT(this.s1); +for (var i = 0, pt = 0; i < 18; i++, pt += 2) { +this.pt2.scaleAdd2(J.renderspecial.EllipsoidsRenderer.cossin[pt] * d1, this.v1, this.center); +this.pt2.scaleAdd2(J.renderspecial.EllipsoidsRenderer.cossin[pt + 1] * d2, this.v2, this.pt2); +this.tm.transformPtScrT3(this.pt2, this.s2); +if (this.fillArc) { +this.g3d.fillTriangle3CNBits(this.s0, this.colix, normix, this.s1, this.colix, normix, this.s2, this.colix, normix, true); +} else if (this.bOptions[6]) this.g3d.fillCylinderBits(2, this.diameter, this.s1, this.s2); + else this.screens[i + 7].setT(this.s2); +this.pt1.setT(this.pt2); +this.s1.setT(this.s2); +} +if (!this.fillArc && !this.bOptions[6]) { +this.g3d.addRenderer(553648143); +for (var i = 0; i < 18; i++) { +this.g3d.fillHermite(5, this.diameter, this.diameter, this.diameter, this.screens[i == 0 ? i + 6 : i + 5], this.screens[i + 6], this.screens[i + 7], this.screens[i == 17 ? i + 7 : i + 8]); +} +}}, "~N,~N"); +Clazz.defineMethod(c$, "setSelectedOctant", +function(){ +var zMin = 2147483647; +this.selectedOctant = -1; +this.iCutout = -1; +if (this.bOptions[3]) { +for (var i = 0; i < 8; i++) { +var ptA = J.renderspecial.EllipsoidsRenderer.octants[i * 3]; +var ptB = J.renderspecial.EllipsoidsRenderer.octants[i * 3 + 1]; +var ptC = J.renderspecial.EllipsoidsRenderer.octants[i * 3 + 2]; +var z = Clazz.floatToInt(this.screens[ptA].z + this.screens[ptB].z + this.screens[ptC].z); +if (z < zMin) { +zMin = z; +this.iCutout = i; +}} +this.s1.setT(this.selectedPoints[0] = this.screens[J.renderspecial.EllipsoidsRenderer.octants[this.iCutout * 3]]); +this.s1.add(this.selectedPoints[1] = this.screens[J.renderspecial.EllipsoidsRenderer.octants[this.iCutout * 3 + 1]]); +this.s1.add(this.selectedPoints[2] = this.screens[J.renderspecial.EllipsoidsRenderer.octants[this.iCutout * 3 + 2]]); +this.s1.scaleAdd2(-3, this.s0, this.s1); +this.pt1.set(this.s1.x, this.s1.y, this.s1.z); +this.matScreenToEllipsoid.rotate(this.pt1); +var i = 0; +if (this.pt1.x < 0) i |= 1; +if (this.pt1.y < 0) i |= 2; +if (this.pt1.z < 0) i |= 4; +this.selectedOctant = i; +}}); +c$.cossin = Clazz.newDoubleArray (36, 0); +{ +for (var i = 5, pt = 0; i <= 90; i += 5) { +J.renderspecial.EllipsoidsRenderer.cossin[pt++] = Math.cos(i * 0.017453292519943295); +J.renderspecial.EllipsoidsRenderer.cossin[pt++] = Math.sin(i * 0.017453292519943295); +} +}c$.unitAxisVectors = Clazz.newArray(-1, [JV.JC.axisNX, JV.JC.axisX, JV.JC.axisNY, JV.JC.axisY, JV.JC.axisNZ, JV.JC.axisZ]); +c$.axisPoints = Clazz.newIntArray(-1, [-1, 1, -2, 2, -3, 3]); +c$.octants = Clazz.newIntArray(-1, [5, 0, 3, 5, 2, 0, 4, 0, 2, 4, 3, 0, 5, 2, 1, 5, 1, 3, 4, 3, 1, 4, 1, 2]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/GeoSurfaceRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/GeoSurfaceRenderer.js new file mode 100755 index 000000000000..f924d2c7c866 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/GeoSurfaceRenderer.js @@ -0,0 +1,58 @@ +Clazz.declarePackage("J.renderspecial"); +Clazz.load(["J.renderspecial.DotsRenderer", "JU.P3"], "J.renderspecial.GeoSurfaceRenderer", ["JU.Geodesic"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.requireTranslucent = false; +this.facePt1 = null; +this.facePt2 = null; +this.facePt3 = null; +Clazz.instantialize(this, arguments);}, J.renderspecial, "GeoSurfaceRenderer", J.renderspecial.DotsRenderer); +Clazz.prepareFields (c$, function(){ +this.facePt1 = new JU.P3(); +this.facePt2 = new JU.P3(); +this.facePt3 = new JU.P3(); +}); +Clazz.overrideMethod(c$, "render", +function(){ +var gs = this.shape; +this.iShowSolid = !(!this.vwr.checkMotionRendering(1112150021) && gs.ec.getDotsConvexMax() > 100); +if (!this.iShowSolid && !this.g3d.setC(4)) return false; +var tCover = this.vwr.gdata.translucentCoverOnly; +if (this.iShowSolid) this.vwr.gdata.translucentCoverOnly = true; +this.g3d.addRenderer(1073742182); +if (this.iShowSolid && this.faceMap == null) this.faceMap = Clazz.newIntArray (this.screenDotCount, 0); +this.render1(gs); +this.vwr.gdata.translucentCoverOnly = tCover; +return this.requireTranslucent; +}); +Clazz.overrideMethod(c$, "renderConvex", +function(colix, visibilityMap, nPoints){ +this.colix = colix; +if (this.iShowSolid) { +if (this.g3d.setC(colix)) this.renderSurface(visibilityMap); + else this.requireTranslucent = true; +return; +}this.renderDots(nPoints); +}, "~N,JU.BS,~N"); +Clazz.defineMethod(c$, "renderSurface", +function(points){ +if (this.faceMap == null) return; +var faces = JU.Geodesic.getFaceVertexes(this.screenLevel); +var coords = this.scrCoords; +var p1; +var p2; +var p3; +var mapMax = points.size(); +if (this.screenDotCount < mapMax) mapMax = this.screenDotCount; +for (var f = 0; f < faces.length; ) { +p1 = faces[f++]; +p2 = faces[f++]; +p3 = faces[f++]; +if (p1 >= mapMax || p2 >= mapMax || p3 >= mapMax || !points.get(p1) || !points.get(p2) || !points.get(p3)) continue; +this.facePt1.set(coords[this.faceMap[p1]], coords[this.faceMap[p1] + 1], coords[this.faceMap[p1] + 2]); +this.facePt2.set(coords[this.faceMap[p2]], coords[this.faceMap[p2] + 1], coords[this.faceMap[p2] + 2]); +this.facePt3.set(coords[this.faceMap[p3]], coords[this.faceMap[p3] + 1], coords[this.faceMap[p3] + 2]); +this.g3d.fillTriangle3CNBits(this.facePt1, this.colix, p1, this.facePt2, this.colix, p2, this.facePt3, this.colix, p3, false); +} +}, "JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/PolyhedraRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/PolyhedraRenderer.js new file mode 100755 index 000000000000..4d862c074947 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/PolyhedraRenderer.js @@ -0,0 +1,135 @@ +Clazz.declarePackage("J.renderspecial"); +Clazz.load(["J.render.ShapeRenderer"], "J.renderspecial.PolyhedraRenderer", ["JU.P3", "$.V3", "JU.C", "$.MeshSurface"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.$drawEdges = 0; +this.isAll = false; +this.frontOnly = false; +this.edgesOnly = false; +this.screens3f = null; +this.scrVib = null; +this.vibs = false; +this.bsSelected = null; +this.showNumbers = false; +this.meshSurface = null; +Clazz.instantialize(this, arguments);}, J.renderspecial, "PolyhedraRenderer", J.render.ShapeRenderer); +Clazz.overrideMethod(c$, "render", +function(){ +var polyhedra = this.shape; +var polyhedrons = polyhedra.polyhedrons; +this.$drawEdges = polyhedra.drawEdges; +this.bsSelected = (this.vwr.getSelectionHalosEnabled() ? this.vwr.bsA() : null); +this.g3d.addRenderer(1073742182); +this.vibs = (this.ms.vibrations != null && this.tm.vibrationOn); +this.showNumbers = this.vwr.getBoolean(603979964); +var needTranslucent = false; +for (var i = polyhedra.polyhedronCount; --i >= 0; ) if (polyhedrons[i].isValid && this.render1(polyhedrons[i])) needTranslucent = true; + +return needTranslucent; +}); +Clazz.defineMethod(c$, "render1", +function(p){ +if (p.visibilityFlags == 0) return false; +var colixes = (this.shape).colixes; +var iAtom = -1; +var colix; +var scale = 1; +if (p.id == null) { +iAtom = p.centralAtom.i; +colix = (colixes == null || iAtom >= colixes.length ? 0 : colixes[iAtom]); +colix = JU.C.getColixInherited(colix, p.centralAtom.colixAtom); +} else { +colix = p.colix; +scale = p.scale; +}var needTranslucent = false; +if (JU.C.renderPass2(colix)) { +needTranslucent = true; +} else if (!this.g3d.setC(colix)) { +return false; +}var vertices = p.vertices; +if (scale != 1) { +var v = new Array(vertices.length); +if (scale < 0) { +var a = JU.V3.newV(p.center); +a.scale(-scale - 1); +for (var i = v.length; --i >= 0; ) { +var b = JU.V3.newV(vertices[i]); +b.add(a); +v[i] = b; +} +} else { +for (var i = v.length; --i >= 0; ) { +var a = JU.V3.newVsub(vertices[i], p.center); +a.scaleAdd2(scale, a, p.center); +v[i] = a; +} +}vertices = v; +}if (this.screens3f == null || this.screens3f.length < vertices.length) { +this.screens3f = new Array(vertices.length); +for (var i = vertices.length; --i >= 0; ) this.screens3f[i] = new JU.P3(); + +}var sc = this.screens3f; +var planes = p.triangles; +var elemNos = (p.pointScale > 0 ? p.getElemNos(false) : null); +for (var i = vertices.length; --i >= 0; ) { +var atom = (Clazz.instanceOf(vertices[i],"JM.Atom") ? vertices[i] : null); +var v = sc[i]; +if (atom == null) { +this.tm.transformPtScrT3(vertices[i], v); +} else if (this.vibs && atom.hasVibration()) { +this.scrVib = this.tm.transformPtVib(atom, this.ms.vibrations[atom.i]); +v.set(this.scrVib.x, this.scrVib.y, this.scrVib.z); +} else { +this.tm.transformPt3f(atom, v); +}if (elemNos != null && i < elemNos.length && this.g3d.setC(elemNos[i] < 0 ? colix : this.vwr.cm.getElementColix(elemNos[i]))) { +this.g3d.fillSphereBits(Clazz.floatToInt(this.tm.scaleToScreen(Clazz.floatToInt(v.z), Clazz.floatToInt(p.pointScale * 1000))), v); +this.g3d.setC(colix); +}if (this.showNumbers) { +if (this.g3d.setC(4)) { +this.g3d.drawStringNoSlab("" + i, null, Clazz.floatToInt(v.x), Clazz.floatToInt(v.y), Clazz.floatToInt(v.z) - 30, 0); +this.g3d.setC(colix); +}}} +var isSelected = (iAtom >= 0 && this.bsSelected != null && this.bsSelected.get(iAtom)); +this.isAll = (this.$drawEdges == 1 || isSelected); +this.frontOnly = (this.$drawEdges == 2); +this.edgesOnly = (this.$drawEdges == 3); +var normixes = p.getNormixes(); +if ((!needTranslucent || this.g3d.setC(colix)) && !this.edgesOnly) { +if (this.exportType == 1 && !p.collapsed) { +if (this.meshSurface == null) this.meshSurface = new JU.MeshSurface(); +this.meshSurface.vs = vertices; +this.meshSurface.pis = planes; +this.meshSurface.pc = planes.length; +this.meshSurface.vc = vertices.length; +this.g3d.drawSurface(this.meshSurface, colix); +} else { +for (var i = planes.length; --i >= 0; ) { +var pl = planes[i]; +try { +if (!this.showNumbers || this.g3d.setC((Math.round(Math.random() * 10) + 5))) this.g3d.fillTriangleTwoSided(normixes[i], sc[pl[0]], sc[pl[1]], sc[pl[2]]); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println("PolyhedraRendererError"); +} else { +throw e; +} +} +} +}}if (this.isAll || this.frontOnly || this.edgesOnly) { +if (isSelected) colix = 23; + else if (p.colixEdge != 0) colix = p.colixEdge; +if (this.g3d.setC(JU.C.getColixTranslucent3(colix, false, 0))) for (var i = planes.length; --i >= 0; ) { +var pl = planes[i]; +this.drawEdges(normixes[i], sc[pl[0]], sc[pl[1]], sc[pl[2]], -pl[3]); +} +}return needTranslucent; +}, "J.shapespecial.Polyhedron"); +Clazz.defineMethod(c$, "drawEdges", +function(normix, a, b, c, edgeMask){ +if (this.isAll || this.edgesOnly || this.frontOnly && this.vwr.gdata.isDirectedTowardsCamera(normix)) { +var d = (this.g3d.isAntialiased() ? 6 : 3); +if ((edgeMask & 1) == 1) this.g3d.fillCylinderBits(3, d, a, b); +if ((edgeMask & 2) == 2) this.g3d.fillCylinderBits(3, d, b, c); +if ((edgeMask & 4) == 4) this.g3d.fillCylinderBits(3, d, a, c); +}}, "~N,JU.P3,JU.P3,JU.P3,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/VectorsRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/VectorsRenderer.js new file mode 100755 index 000000000000..b93783c74beb --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/renderspecial/VectorsRenderer.js @@ -0,0 +1,172 @@ +Clazz.declarePackage("J.renderspecial"); +Clazz.load(["J.render.ShapeRenderer", "JU.P3", "$.V3", "JU.Point3fi"], "J.renderspecial.VectorsRenderer", ["J.shape.Shape", "JU.Vibration"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.ptTemp = null; +this.pointVectorStart = null; +this.pointVectorEnd = null; +this.pointArrowHead = null; +this.screenVectorStart = null; +this.screenVectorEnd = null; +this.screenArrowHead = null; +this.headOffsetVector = null; +this.pTemp3 = null; +this.diameter = 0; +this.headWidthPixels = 0; +this.vectorScale = 0; +this.vectorSymmetry = false; +this.headScale = 0; +this.drawShaft = false; +this.vibTemp = null; +this.vectorsCentered = false; +this.standardVector = true; +this.vibrationOn = false; +this.drawCap = false; +this.showModVecs = false; +this.vectorTrail = 0; +this.ptTemp4 = null; +this.ptTemp2 = null; +Clazz.instantialize(this, arguments);}, J.renderspecial, "VectorsRenderer", J.render.ShapeRenderer); +Clazz.prepareFields (c$, function(){ +this.ptTemp = new JU.Point3fi(); +this.pointVectorStart = new JU.P3(); +this.pointVectorEnd = new JU.Point3fi(); +this.pointArrowHead = new JU.P3(); +this.screenVectorStart = new JU.P3(); +this.screenVectorEnd = new JU.P3(); +this.screenArrowHead = new JU.P3(); +this.headOffsetVector = new JU.V3(); +this.pTemp3 = new JU.P3(); +}); +Clazz.overrideMethod(c$, "render", +function(){ +var vectors = this.shape; +if (!vectors.isActive) return false; +var mads = vectors.mads; +if (mads == null) return false; +var colixes = vectors.colixes; +var needTranslucent = false; +this.vectorScale = this.vwr.getFloat(1648361473); +this.vectorTrail = this.vwr.getInt(553648185); +if (this.vectorScale < 0) this.vectorScale = 1; +this.vectorSymmetry = this.vwr.getBoolean(603979973); +this.vectorsCentered = this.vwr.getBoolean(603979972); +this.showModVecs = this.vwr.getBoolean(603979927); +this.vibrationOn = this.vwr.tm.vibrationOn; +this.headScale = -0.2; +if (this.vectorScale < 0) this.headScale = -this.headScale; +var haveModulations = false; +var atoms = this.ms.at; +for (var i = this.ms.ac; --i >= 0; ) { +var atom = atoms[i]; +if (!this.isVisibleForMe(atom)) continue; +var mod = this.ms.getModulation(i); +if (this.showModVecs && !haveModulations && mod != null) haveModulations = true; +var vib = this.ms.getVibration(i, false); +if (vib == null) continue; +if (!this.transform(mads[i], atom, vib, mod)) continue; +if (!this.g3d.setC(J.shape.Shape.getColix(colixes, i, atom))) { +needTranslucent = true; +continue; +}this.renderVector(atom, vib); +if (this.vectorSymmetry) { +if (this.vibTemp == null) this.vibTemp = new JU.Vibration(); +this.vibTemp.setT(vib); +this.vibTemp.scale(-1); +this.transform(mads[i], atom, this.vibTemp, null); +this.renderVector(atom, vib); +}} +if (haveModulations) for (var i = this.ms.ac; --i >= 0; ) { +var atom = atoms[i]; +if (!this.isVisibleForMe(atom)) continue; +var mod = this.ms.getModulation(i); +if (mod == null) continue; +if (!this.g3d.setC(J.shape.Shape.getColix(colixes, i, atom))) { +needTranslucent = true; +continue; +}if (!this.transform(mads[i], atom, null, mod)) continue; +this.renderVector(atom, null); +} +return needTranslucent; +}); +Clazz.defineMethod(c$, "transform", +function(mad, atom, vib, mod2){ +var isMod = (vib == null || vib.modDim >= 0); +var isSpin = (!isMod && vib.modDim == -2); +if (vib == null) vib = mod2; +this.drawCap = true; +if (!isMod) { +var len = vib.length(); +if (Math.abs(len * this.vectorScale) < 0.01) return false; +this.standardVector = true; +this.drawShaft = (0.1 + Math.abs(this.headScale / len) < Math.abs(this.vectorScale)); +this.headOffsetVector.setT(vib); +this.headOffsetVector.scale(this.headScale / len); +}this.ptTemp.setT(atom); +var mod = atom.getModulation(); +if (this.vibrationOn && mod != null) this.vwr.tm.getVibrationPoint(mod, this.ptTemp, 1); +if (isMod) { +this.standardVector = false; +this.drawShaft = true; +mod = vib; +this.pointVectorStart.setT(this.ptTemp); +this.pointVectorEnd.setT(this.ptTemp); +if (mod.isEnabled()) { +if (this.vibrationOn) { +this.vwr.tm.getVibrationPoint(vib, this.pointVectorEnd, NaN); +}mod.addTo(this.pointVectorStart, NaN); +} else { +mod.addTo(this.pointVectorEnd, 1); +}this.headOffsetVector.sub2(this.pointVectorEnd, this.pointVectorStart); +var len = this.headOffsetVector.length(); +this.drawCap = (len + -0.2 > 0.001); +this.drawShaft = (len > 0.01); +this.headOffsetVector.scale(this.headScale / this.headOffsetVector.length()); +} else if (this.vectorsCentered || isSpin) { +this.standardVector = false; +this.pointVectorEnd.scaleAdd2(0.5 * this.vectorScale, vib, this.ptTemp); +this.pointVectorStart.scaleAdd2(-0.5 * this.vectorScale, vib, this.ptTemp); +} else { +this.pointVectorEnd.scaleAdd2(this.vectorScale, vib, this.ptTemp); +this.pointArrowHead.add2(this.pointVectorEnd, this.headOffsetVector); +if (this.vibrationOn) { +var screen = this.tm.transformPtVib(this.pointVectorEnd, vib); +this.screenVectorEnd.set(screen.x, screen.y, screen.z); +screen = this.tm.transformPtVib(this.pointArrowHead, vib); +this.screenArrowHead.set(screen.x, screen.y, screen.z); +} else { +this.tm.transformPtScrT3(this.pointVectorEnd, this.screenVectorEnd); +this.tm.transformPtScrT3(this.pointArrowHead, this.screenArrowHead); +}}if (!this.standardVector) { +this.tm.transformPtScrT3(this.pointVectorEnd, this.screenVectorEnd); +this.tm.transformPtScrT3(this.pointVectorStart, this.screenVectorStart); +if (this.drawCap) this.pointArrowHead.add2(this.pointVectorEnd, this.headOffsetVector); + else this.pointArrowHead.setT(this.pointVectorEnd); +this.tm.transformPtScrT3(this.pointArrowHead, this.screenArrowHead); +}this.diameter = Clazz.floatToInt(mad < 0 ? -mad : mad < 1 ? 1 : this.vwr.tm.scaleToScreen(Clazz.floatToInt(this.screenVectorEnd.z), mad)); +this.headWidthPixels = this.diameter << 1; +if (this.headWidthPixels < this.diameter + 2) this.headWidthPixels = this.diameter + 2; +return true; +}, "~N,JM.Atom,JU.Vibration,J.api.JmolModulationSet"); +Clazz.defineMethod(c$, "renderVector", +function(atom, vib){ +if (vib != null && this.vectorTrail > 0) { +if (this.ptTemp4 == null) { +this.ptTemp4 = new JU.P3(); +this.ptTemp2 = new JU.P3(); +}var d = Math.max(1, this.diameter >> 2); +var pts = vib.addTracePt(this.vectorTrail, this.vibrationOn ? this.pointVectorEnd : null); +this.tm.transformPtScrT3(atom, this.ptTemp4); +if (pts != null) for (var i = pts.length, p = this.vectorTrail; --i >= 0; ) { +var pt = pts[--p]; +if (pt == null) break; +this.tm.transformPtScrT3(pt, this.ptTemp2); +this.g3d.fillCylinderBits(2, d, this.ptTemp4, this.ptTemp2); +} +}if (this.drawShaft) { +this.pTemp3.set(atom.sX, atom.sY, atom.sZ); +if (this.standardVector) this.g3d.fillCylinderBits(2, this.diameter, this.pTemp3, this.screenArrowHead); + else this.g3d.fillCylinderBits(2, this.diameter, this.screenVectorStart, this.screenArrowHead); +}if (this.drawCap) this.g3d.fillConeScreen3f(2, this.headWidthPixels, this.screenArrowHead, this.screenVectorEnd, false); +}, "JM.Atom,JU.Vibration"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/ContactRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/ContactRenderer.js new file mode 100755 index 000000000000..f9ee221a4c81 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/ContactRenderer.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.rendersurface"); +Clazz.load(["J.rendersurface.IsosurfaceRenderer"], "J.rendersurface.ContactRenderer", null, function(){ +var c$ = Clazz.declareType(J.rendersurface, "ContactRenderer", J.rendersurface.IsosurfaceRenderer); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/IsosurfaceRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/IsosurfaceRenderer.js new file mode 100755 index 000000000000..bb9cb87eb3fd --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/IsosurfaceRenderer.js @@ -0,0 +1,379 @@ +Clazz.declarePackage("J.rendersurface"); +Clazz.load(["J.render.MeshRenderer"], "J.rendersurface.IsosurfaceRenderer", ["JU.V3", "JU.C", "$.Normix"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.iHideBackground = false; +this.isBicolorMap = false; +this.backgroundColix = 0; +this.nError = 0; +this.vertexValues = null; +this.imesh = null; +this.isosurface = null; +this.isNavigationMode = false; +this.iShowNormals = false; +this.showNumbers = false; +this.showKey = null; +this.hasColorRange = false; +this.meshScale = -1; +this.mySlabValue = 0; +this.globalSlabValue = 0; +Clazz.instantialize(this, arguments);}, J.rendersurface, "IsosurfaceRenderer", J.render.MeshRenderer); +Clazz.overrideMethod(c$, "render", +function(){ +return this.renderIso(); +}); +Clazz.defineMethod(c$, "renderIso", +function(){ +this.setGlobals(); +for (var i = this.isosurface.meshCount; --i >= 0; ) { +this.mesh = this.imesh = this.isosurface.meshes[i]; +if (this.imesh.connectedAtoms != null && !this.vwr.ms.at[this.imesh.connectedAtoms[0]].checkVisible()) continue; +this.hasColorRange = false; +if (this.renderMeshSlab()) { +this.renderInfo(); +if (this.isExport && this.isGhostPass) { +this.exportPass = 1; +this.renderMeshSlab(); +this.exportPass = 2; +}}} +return this.needTranslucent; +}); +Clazz.defineMethod(c$, "setGlobals", +function(){ +this.needTranslucent = false; +this.antialias = this.g3d.isAntialiased(); +this.iShowNormals = this.vwr.getBoolean(603979965); +this.showNumbers = this.vwr.getBoolean(603979964); +this.isosurface = this.shape; +this.exportPass = (this.isExport ? 2 : 0); +this.isNavigationMode = this.vwr.getBoolean(603979889); +this.showKey = (this.vwr.getBoolean(603979867) ? Boolean.TRUE : null); +this.isosurface.keyXy = null; +this.meshScale = -1; +this.globalSlabValue = this.vwr.gdata.slab; +this.mySlabValue = (this.isNavigationMode ? Clazz.floatToInt(this.tm.getNavigationOffset().z) : 2147483647); +}); +Clazz.defineMethod(c$, "renderInfo", +function(){ +if (this.isExport || !this.hasColorRange || this.imesh.colorEncoder == null || Boolean.TRUE !== this.showKey) return; +this.showKey = Boolean.FALSE; +var colors = null; +var colixes = null; +var vContours = null; +var n = 0; +var type = 0; +if (this.imesh.showContourLines) { +vContours = this.imesh.getContours(); +if (vContours == null) { +colixes = this.imesh.jvxlData.contourColixes; +if (colixes == null) return; +n = colixes.length; +} else { +n = vContours.length; +type = 1; +}} else { +colors = this.imesh.colorEncoder.getColorSchemeArray(this.imesh.colorEncoder.currentPalette); +n = (colors == null ? 0 : colors.length); +type = 2; +}if (n < 2) return; +var factor = (this.antialias ? 2 : 1); +var height = this.vwr.getScreenHeight() * factor; +var dy = Clazz.doubleToInt(Clazz.doubleToInt(height / 2) / (n - 1)); +var y = Clazz.doubleToInt(height / 4) * 3 - dy; +var x = 10 * factor; +var dx = 20 * factor; +this.isosurface.keyXy = Clazz.newIntArray(-1, [Clazz.doubleToInt(x / factor), 0, Clazz.doubleToInt((x + dx) / factor), Clazz.doubleToInt((y + dy) / factor), Clazz.doubleToInt(dy / factor)]); +for (var i = 0; i < n; i++, y -= dy) { +switch (type) { +case 0: +if (!this.g3d.setC(colixes[i])) return; +break; +case 1: +if (!this.g3d.setC((vContours[i].get(3))[0])) return; +break; +case 2: +this.vwr.gdata.setColor(colors[i]); +break; +} +this.g3d.fillTextRect(x, y, 5, -2147483648, dx, dy); +} +this.isosurface.keyXy[1] = Clazz.doubleToInt((y + dy) / factor); +}); +Clazz.defineMethod(c$, "renderMeshSlab", +function(){ +this.volumeRender = (this.imesh.jvxlData.colorDensity && this.imesh.jvxlData.allowVolumeRender); +var thisSlabValue = this.mySlabValue; +this.frontOnly = this.mesh.frontOnly || this.shapeID == 26; +this.isShell = this.mesh.isShell && this.shapeID != 26; +if (!this.isNavigationMode) { +this.meshSlabValue = this.imesh.jvxlData.slabValue; +if (this.meshSlabValue != -2147483648 && this.imesh.jvxlData.isSlabbable) { +var points = this.imesh.jvxlData.boundingBox; +var z0 = 3.4028235E38; +var z1 = 1.4E-45; +for (var i = points.length; --i >= 0; ) { +this.pt2f.setT(points[i]); +this.tm.transformPt3f(this.pt2f, this.pt2f); +if (this.pt2f.z < z0) z0 = this.pt2f.z; +if (this.pt2f.z > z1) z1 = this.pt2f.z; +} +thisSlabValue = Math.round(z0 + (z1 - z0) * (100 - this.meshSlabValue) / 100); +this.frontOnly = new Boolean (this.frontOnly & (this.meshSlabValue >= 100)).valueOf(); +this.isShell = new Boolean (this.isShell & (this.meshSlabValue >= 100)).valueOf(); +}}var tCover = this.vwr.gdata.translucentCoverOnly; +this.vwr.gdata.translucentCoverOnly = (this.frontOnly || !this.vwr.getBoolean(603979967)); +this.thePlane = this.imesh.jvxlData.jvxlPlane; +this.vertexValues = this.mesh.vvs; +var isOK; +if (thisSlabValue != 2147483647 && this.imesh.jvxlData.isSlabbable) { +this.g3d.setSlab(thisSlabValue); +isOK = this.renderMesh2(this.mesh); +this.g3d.setSlab(this.globalSlabValue); +} else { +isOK = this.renderMesh2(this.mesh); +}this.vwr.gdata.translucentCoverOnly = tCover; +return isOK; +}); +Clazz.overrideMethod(c$, "render2", +function(isExport){ +if (this.volumeRender) { +this.renderPoints(); +return; +}switch (this.imesh.dataType) { +case 70: +this.renderLonePair(false); +return; +case 71: +this.renderLonePair(true); +return; +} +this.isBicolorMap = this.imesh.jvxlData.isBicolorMap; +this.render2b(isExport); +if (!this.g3d.setC(4)) return; +if (this.imesh.showContourLines) this.renderContourLines(); +}, "~B"); +Clazz.defineMethod(c$, "renderLonePair", +function(isRadical){ +this.pt2f.setT(this.vertices[1]); +this.tm.transformPt3f(this.pt2f, this.pt2f); +var r = Clazz.floatToInt(this.vwr.tm.scaleToScreen(Clazz.floatToInt(this.pt2f.z), 100)); +if (r < 1) r = 1; +if (!isRadical) { +var v1 = new JU.V3(); +var v2 = new JU.V3(); +this.pt1f.setT(this.vertices[0]); +this.tm.transformPt3f(this.pt1f, this.pt1f); +v1.sub2(this.pt2f, this.pt1f); +v2.set(v1.x, v1.y, v1.z + 1); +v2.cross(v2, v1); +v2.normalize(); +var f = this.vwr.tm.scaleToScreen(Clazz.floatToInt(this.pt1f.z), 100); +v2.scale(f); +this.pt1f.add2(this.pt2f, v2); +this.pt2f.sub(v2); +this.screens[0].set(Math.round(this.pt1f.x), Math.round(this.pt1f.y), Math.round(this.pt1f.z)); +this.g3d.fillSphereI(r, this.screens[0]); +}this.screens[1].set(Math.round(this.pt2f.x), Math.round(this.pt2f.y), Math.round(this.pt2f.z)); +this.g3d.fillSphereI(r, this.screens[1]); +}, "~B"); +Clazz.defineMethod(c$, "renderContourLines", +function(){ +var vContours = this.imesh.getContours(); +if (vContours == null) { +if (this.imesh.jvxlData.contourValues != null) this.hasColorRange = true; +return; +}this.hasColorRange = (this.mesh.meshColix == 0); +for (var i = vContours.length; --i >= 0; ) { +var v = vContours[i]; +if (v.size() < 6) continue; +this.colix = (this.mesh.meshColix == 0 ? (v.get(3))[0] : this.mesh.meshColix); +if (!this.g3d.setC(this.colix)) return; +var n = v.size() - 1; +var diam = this.getDiameter(); +for (var j = 6; j < n; j++) { +var pt1 = v.get(j); +var pt2 = v.get(++j); +if (Float.isNaN(pt1.x) || Float.isNaN(pt2.x)) break; +this.tm.transformPtScrT3(pt1, this.pt1f); +this.tm.transformPtScrT3(pt2, this.pt2f); +this.pt1f.z -= 2; +this.pt2f.z -= 2; +if (!this.antialias && diam == 1) { +this.g3d.drawLineAB(this.pt1f, this.pt2f); +} else { +this.g3d.fillCylinderBits(1, diam, this.pt1f, this.pt2f); +}} +} +}); +Clazz.overrideMethod(c$, "renderPoints", +function(){ +try { +if (this.volumeRender) this.g3d.volumeRender(true); +var slabPoints = ((this.volumeRender || this.mesh.pc == 0) && this.selectedPolyOnly); +var incr = this.imesh.vertexIncrement; +var diam; +if (this.mesh.diameter <= 0) { +diam = this.vwr.getInt(553648140); +this.frontOnly = this.isShell = false; +} else { +diam = Clazz.doubleToInt(this.vwr.getScreenDim() / (this.volumeRender ? 50 : 100)); +}var ptSize = Math.round(Float.isNaN(this.mesh.volumeRenderPointSize) ? 150 : this.mesh.volumeRenderPointSize * 1000); +if (diam < 1) diam = 1; +var cX = (this.showNumbers ? Clazz.doubleToInt(this.vwr.getScreenWidth() / 2) : 0); +var cY = (this.showNumbers ? Clazz.doubleToInt(this.vwr.getScreenHeight() / 2) : 0); +if (this.showNumbers) this.vwr.gdata.setFontBold("Monospaced", 24); +for (var i = (!this.imesh.hasGridPoints || this.imesh.firstRealVertex < 0 ? 0 : this.imesh.firstRealVertex); i < this.vertexCount; i += incr) { +if (this.vertexValues != null && Float.isNaN(this.vertexValues[i]) || this.frontOnly && !this.isVisibleNormix(this.normixes[i]) || this.imesh.jvxlData.thisSet != null && !this.imesh.jvxlData.thisSet.get(this.mesh.vertexSets[i]) || !this.mesh.isColorSolid && this.mesh.vcs != null && !this.setColix(this.mesh.vcs[i]) || this.haveBsDisplay && !this.mesh.bsDisplay.get(i) || slabPoints && !this.bsPolygons.get(i)) continue; +this.hasColorRange = true; +if (this.showNumbers && this.screens[i].z > 10 && Math.abs(this.screens[i].x - cX) < 150 && Math.abs(this.screens[i].y - cY) < 150) { +var s = i + (this.mesh.isColorSolid ? "" : " " + this.mesh.vvs[i]); +this.g3d.setC(4); +this.g3d.drawStringNoSlab(s, null, this.screens[i].x, this.screens[i].y, this.screens[i].z - 30, 0); +}if (this.volumeRender) { +diam = Clazz.floatToInt(this.vwr.tm.scaleToScreen(this.screens[i].z, ptSize)); +if (diam < 1) diam = 1; +this.g3d.volumeRender4(diam, this.screens[i].x, this.screens[i].y, this.screens[i].z); +} else { +this.g3d.fillSphereI(diam, this.screens[i]); +}} +if (incr == 3) { +this.g3d.setC(this.isTranslucent ? JU.C.getColixTranslucent3(12, true, 0.5) : 12); +for (var i = 1; i < this.vertexCount; i += 3) this.g3d.fillCylinder(3, Clazz.doubleToInt(diam / 4), this.screens[i], this.screens[i + 1]); + +this.g3d.setC(this.isTranslucent ? JU.C.getColixTranslucent3(21, true, 0.5) : 21); +for (var i = 1; i < this.vertexCount; i += 3) this.g3d.fillSphereI(diam, this.screens[i]); + +this.g3d.setC(this.isTranslucent ? JU.C.getColixTranslucent3(7, true, 0.5) : 7); +for (var i = 2; i < this.vertexCount; i += 3) { +this.g3d.fillSphereI(diam, this.screens[i]); +} +}} catch (e) { +} +if (this.volumeRender) this.g3d.volumeRender(false); +}); +Clazz.overrideMethod(c$, "renderTriangles", +function(fill, iShowTriangles, isExport){ +this.g3d.addRenderer(1073742182); +var polygonIndexes = this.mesh.pis; +this.colix = (this.isGhostPass ? this.mesh.slabColix : !fill && this.mesh.meshColix != 0 ? this.mesh.meshColix : this.mesh.colix); +var vertexColixes = (!fill && this.mesh.meshColix != 0 ? null : this.mesh.vcs); +if (this.isTranslucentInherit) this.colix = JU.C.copyColixTranslucency(this.mesh.slabColix, this.mesh.colix); +this.g3d.setC(this.colix); +var generateSet = isExport; +if (generateSet) { +if (this.frontOnly && fill) this.frontOnly = false; +this.bsPolygonsToExport.clearAll(); +}if (this.exportType == 1) { +this.frontOnly = false; +}var colorSolid = (this.isGhostPass && (!this.isBicolorMap) || vertexColixes == null || this.mesh.isColorSolid); +var noColor = (this.isGhostPass && !this.isBicolorMap || vertexColixes == null || !fill && this.mesh.meshColix != 0); +var isPlane = (this.imesh.jvxlData.jvxlPlane != null); +var colix = this.colix; +if (isPlane && !colorSolid && !fill && this.mesh.fillTriangles) { +colorSolid = true; +colix = 4; +}var colorArrayed = (colorSolid && this.mesh.pcs != null); +if (colorArrayed && !fill && this.mesh.fillTriangles) colorArrayed = false; +var contourColixes = this.imesh.jvxlData.contourColixes; +this.hasColorRange = !colorSolid && !this.isBicolorMap; +var diam = this.getDiameter(); +var i0 = 0; +for (var i = this.mesh.pc; --i >= i0; ) { +var polygon = polygonIndexes[i]; +if (polygon == null || this.selectedPolyOnly && !this.bsPolygons.get(i)) continue; +var iA = polygon[0]; +var iB = polygon[1]; +var iC = polygon[2]; +if (this.imesh.jvxlData.thisSet != null && this.mesh.vertexSets != null && !this.imesh.jvxlData.thisSet.get(this.mesh.vertexSets[iA])) continue; +if (this.haveBsDisplay && (!this.mesh.bsDisplay.get(iA) || !this.mesh.bsDisplay.get(iB) || !this.mesh.bsDisplay.get(iC))) continue; +var nA = this.normixes[iA]; +var nB = this.normixes[iB]; +var nC = this.normixes[iC]; +var check = (this.frontOnly || this.isShell ? this.checkFront(nA, nB, nC) : 7); +if (fill && check == 0) continue; +var colixA; +var colixB; +var colixC; +if (colorSolid) { +if (colorArrayed && i < this.mesh.pcs.length) { +var c = this.mesh.pcs[i]; +if (c == 0) continue; +colix = c; +}if (iShowTriangles) colix = (Math.round(Math.random() * 10) + 5); +colixA = colixB = colixC = colix; +} else { +colixA = vertexColixes[iA]; +colixB = vertexColixes[iB]; +colixC = vertexColixes[iC]; +if (this.isBicolorMap) { +if (colixA != colixB || colixB != colixC) continue; +if (this.isGhostPass) { +colixA = colixB = colixC = JU.C.copyColixTranslucency(this.mesh.slabColix, colixA); +}}}if (fill) { +if (generateSet) { +this.bsPolygonsToExport.set(i); +continue; +}if (iB == iC) { +this.setColix(colixA); +if (iA == iB) this.g3d.fillSphereI(diam, this.screens[iA]); + else this.g3d.fillCylinder(3, diam, this.screens[iA], this.screens[iB]); +} else if (this.mesh.colorsExplicit) { +this.vwr.gdata.setColor(polygon[4]); +colixA = JU.C.copyColixTranslucency(this.mesh.colix, 2047); +this.g3d.setC(colixA); +this.g3d.fillTriangle3CN(this.screens[iA], colixA, nA, this.screens[iB], colixA, nB, this.screens[iC], colixA, nC); +} else { +if (this.isTranslucentInherit && vertexColixes != null) { +colixA = JU.C.copyColixTranslucency(this.mesh.slabColix, vertexColixes[iA]); +colixB = JU.C.copyColixTranslucency(this.mesh.slabColix, vertexColixes[iB]); +colixC = JU.C.copyColixTranslucency(this.mesh.slabColix, vertexColixes[iC]); +}this.g3d.fillTriangle3CN(this.screens[iA], colixA, nA, this.screens[iB], colixB, nB, this.screens[iC], colixC, nC); +}if (this.iShowNormals) this.renderNormals(); +} else { +check &= polygon[3]; +if (check == 0) continue; +if (iShowTriangles) check = 7; +this.pt1i.setT(this.screens[iA]); +this.pt2i.setT(this.screens[iB]); +this.pt3i.setT(this.screens[iC]); +this.pt1i.z -= 2; +this.pt2i.z -= 2; +this.pt3i.z -= 2; +if (noColor) { +} else if (colorArrayed) { +this.g3d.setC(this.mesh.fillTriangles ? 4 : contourColixes[polygon[4] % contourColixes.length]); +} else { +this.drawTriangle(this.pt1i, colixA, this.pt2i, colixB, this.pt3i, colixC, check, diam); +continue; +}this.drawTriangle(this.pt1i, colix, this.pt2i, colix, this.pt3i, colix, check, diam); +}} +if (generateSet) this.exportSurface(colorSolid ? colix : 0); +}, "~B,~B,~B"); +Clazz.defineMethod(c$, "getDiameter", +function(){ +var diam; +if (this.mesh.diameter <= 0) { +diam = (this.meshScale < 0 ? this.meshScale = this.vwr.getInt(553648149) : this.meshScale); +if (this.antialias) diam *= 2; +} else { +diam = Clazz.doubleToInt(this.vwr.getScreenDim() / 100); +}if (diam < 1) diam = 1; +return diam; +}); +Clazz.defineMethod(c$, "renderNormals", +function(){ +if (!this.g3d.setC(JU.C.copyColixTranslucency(this.mesh.colix, 8))) return; +this.vwr.gdata.setFontBold("Monospaced", 24); +var vertexVectors = JU.Normix.getVertexVectors(); +for (var i = this.vertexCount; --i >= 0; ) { +if (this.vertexValues != null && Float.isNaN(this.vertexValues[i])) continue; +this.pt1f.setT(this.vertices[i]); +var n = this.mesh.normixes[i]; +if (n >= 0) { +this.pt2f.scaleAdd2(0.3, vertexVectors[n], this.pt1f); +this.tm.transformPtScrT3(this.pt2f, this.pt2f); +this.pt1f.set(this.screens[i].x, this.screens[i].y, this.screens[i].z); +this.g3d.drawLineAB(this.pt1f, this.pt2f); +}} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/LcaoCartoonRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/LcaoCartoonRenderer.js new file mode 100755 index 000000000000..0a2002a63f35 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/LcaoCartoonRenderer.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.rendersurface"); +Clazz.load(["J.rendersurface.IsosurfaceRenderer"], "J.rendersurface.LcaoCartoonRenderer", null, function(){ +var c$ = Clazz.declareType(J.rendersurface, "LcaoCartoonRenderer", J.rendersurface.IsosurfaceRenderer); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/MolecularOrbitalRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/MolecularOrbitalRenderer.js new file mode 100755 index 000000000000..4320e57f399d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/MolecularOrbitalRenderer.js @@ -0,0 +1,25 @@ +Clazz.declarePackage("J.rendersurface"); +Clazz.load(["J.rendersurface.IsosurfaceRenderer"], "J.rendersurface.MolecularOrbitalRenderer", null, function(){ +var c$ = Clazz.declareType(J.rendersurface, "MolecularOrbitalRenderer", J.rendersurface.IsosurfaceRenderer); +Clazz.overrideMethod(c$, "render", +function(){ +this.imageFontScaling = this.vwr.imageFontScaling; +this.renderIso(); +return this.needTranslucent; +}); +Clazz.overrideMethod(c$, "renderInfo", +function(){ +if (this.isExport || this.vwr.am.cmi < 0 || this.mesh.title == null || !this.g3d.setC(this.vwr.cm.colixBackgroundContrast) || this.vwr.gdata.getTextPosition() != 0) return; +var ht = this.vwr.getInt(553648145); +this.vwr.gdata.setFontBold("Serif", ht * this.imageFontScaling); +var lineheight = Math.round((ht + 1) * this.imageFontScaling); +var x = Math.round(5 * this.imageFontScaling); +var y = lineheight; +for (var i = 0; i < this.mesh.title.length; i++) if (this.mesh.title[i].length > 0) { +this.g3d.drawStringNoSlab(this.mesh.title[i], null, x, y, 0, 0); +y += lineheight; +} +this.vwr.gdata.setTextPosition(y); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/NBORenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/NBORenderer.js new file mode 100755 index 000000000000..4310748db3ca --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/NBORenderer.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.rendersurface"); +Clazz.load(["J.rendersurface.MolecularOrbitalRenderer"], "J.rendersurface.NBORenderer", null, function(){ +var c$ = Clazz.declareType(J.rendersurface, "NBORenderer", J.rendersurface.MolecularOrbitalRenderer); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/Plot3DRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/Plot3DRenderer.js new file mode 100755 index 000000000000..a681f998f107 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/Plot3DRenderer.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.rendersurface"); +Clazz.load(["J.rendersurface.PmeshRenderer"], "J.rendersurface.Plot3DRenderer", null, function(){ +var c$ = Clazz.declareType(J.rendersurface, "Plot3DRenderer", J.rendersurface.PmeshRenderer); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/PmeshRenderer.js b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/PmeshRenderer.js new file mode 100755 index 000000000000..3f10ee8b44d4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/rendersurface/PmeshRenderer.js @@ -0,0 +1,9 @@ +Clazz.declarePackage("J.rendersurface"); +Clazz.load(["J.rendersurface.IsosurfaceRenderer"], "J.rendersurface.PmeshRenderer", null, function(){ +var c$ = Clazz.declareType(J.rendersurface, "PmeshRenderer", J.rendersurface.IsosurfaceRenderer); +Clazz.overrideMethod(c$, "render", +function(){ +return this.renderIso(); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/AtomShape.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/AtomShape.js new file mode 100755 index 000000000000..494f98c20a0a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/AtomShape.js @@ -0,0 +1,148 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.Shape"], "J.shape.AtomShape", ["JU.AU", "$.BS", "J.atomdata.RadiusData", "J.c.PAL", "$.VDW", "JU.BSUtil", "$.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.mad = -1; +this.mads = null; +this.colixes = null; +this.paletteIDs = null; +this.isActive = false; +this.rd = null; +this.isSet = false; +this.monomerCount = 0; +this.bsSizeDefault = null; +Clazz.instantialize(this, arguments);}, J.shape, "AtomShape", J.shape.Shape); +Clazz.overrideMethod(c$, "initShape", +function(){ +}); +Clazz.overrideMethod(c$, "initModelSet", +function(){ +this.isSet = true; +var ac = this.ms.ac; +if (this.mads != null) this.mads = JU.AU.arrayCopyShort(this.mads, ac); +if (this.colixes != null) this.colixes = JU.AU.arrayCopyShort(this.colixes, ac); +if (this.paletteIDs != null) this.paletteIDs = JU.AU.arrayCopyByte(this.paletteIDs, ac); +}); +Clazz.overrideMethod(c$, "getSize", +function(atomIndex){ +return (this.mads == null ? 0 : this.mads[atomIndex]); +}, "~N"); +Clazz.overrideMethod(c$, "setSize", +function(size, bsSelected){ +this.setSize2(size, bsSelected); +}, "~N,JU.BS"); +Clazz.defineMethod(c$, "setSize2", +function(size, bsSelected){ +if (size == 0) { +this.setSizeRD(null, bsSelected); +return; +}if (this.rd == null) this.rd = new J.atomdata.RadiusData(null, size, J.atomdata.RadiusData.EnumType.SCREEN, null); + else this.rd.value = size; +this.setSizeRD(this.rd, bsSelected); +}, "~N,JU.BS"); +Clazz.overrideMethod(c$, "setSizeRD", +function(rd, bsSelected){ +if (!this.isSet) return; +this.isActive = true; +var isVisible = (rd != null && rd.value != 0); +var isAll = (bsSelected == null); +var ac = this.ms.ac; +var i0 = (isAll ? ac - 1 : bsSelected.nextSetBit(0)); +if (this.bsSizeSet == null) this.bsSizeSet = JU.BS.newN(ac); +if (this.mads == null && i0 >= 0) this.mads = Clazz.newShortArray (ac, 0); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsSelected.nextSetBit(i + 1))) this.setSizeRD2(i, rd, isVisible); + +}, "J.atomdata.RadiusData,JU.BS"); +Clazz.defineMethod(c$, "setSizeRD2", +function(i, rd, isVisible){ +var atom = this.ms.at[i]; +this.mads[i] = atom.calculateMad(this.vwr, rd); +this.bsSizeSet.setBitTo(i, isVisible); +atom.setShapeVisibility(this.vf, isVisible); +}, "~N,J.atomdata.RadiusData,~B"); +Clazz.defineMethod(c$, "setPropAS", +function(propertyName, value, bs){ +if ("color" === propertyName) { +this.isActive = true; +var colix = JU.C.getColixO(value); +var pid = J.c.PAL.pidOf(value); +var n = this.checkColixLength(colix, bs.length()); +for (var i = bs.nextSetBit(0); i >= 0 && i < n; i = bs.nextSetBit(i + 1)) this.setColixAndPalette(colix, pid, i); + +return; +}if ("params" === propertyName) { +this.isActive = true; +var data = value; +var colixes = data[0]; +var atrans = data[1]; +var sizes = data[2]; +var rd = new J.atomdata.RadiusData(null, 0, J.atomdata.RadiusData.EnumType.FACTOR, J.c.VDW.AUTO); +if (this.bsColixSet == null) this.bsColixSet = new JU.BS(); +if (this.bsSizeSet == null) this.bsSizeSet = new JU.BS(); +var i0 = bs.nextSetBit(0); +if (this.mads == null && i0 >= 0) this.mads = Clazz.newShortArray (this.ms.ac, 0); +var n = this.checkColixLength(colixes == null ? 0 : 4, bs.length()); +for (var i = i0, pt = 0; i >= 0 && i < n; i = bs.nextSetBit(i + 1), pt++) { +var colix = (colixes == null ? 0 : colixes[pt]); +var f = (atrans == null ? 0 : atrans[pt]); +if (f > 0.01) colix = JU.C.getColixTranslucent3(colix, true, f); +this.setColixAndPalette(colix, J.c.PAL.UNKNOWN.id, i); +if (sizes == null) continue; +var isVisible = ((rd.value = sizes[pt]) > 0); +this.setSizeRD2(i, rd, isVisible); +} +return; +}if ("translucency" === propertyName) { +this.isActive = true; +var isTranslucent = (value.equals("translucent")); +this.checkColixLength(4, this.ms.ac); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +this.colixes[i] = JU.C.getColixTranslucent3(this.colixes[i], isTranslucent, this.translucentLevel); +if (isTranslucent) this.bsColixSet.set(i); +} +return; +}if (propertyName === "deleteModelAtoms") { +var info = (value)[2]; +var firstAtomDeleted = info[1]; +var nAtomsDeleted = info[2]; +this.mads = JU.AU.deleteElements(this.mads, firstAtomDeleted, nAtomsDeleted); +this.colixes = JU.AU.deleteElements(this.colixes, firstAtomDeleted, nAtomsDeleted); +this.paletteIDs = JU.AU.deleteElements(this.paletteIDs, firstAtomDeleted, nAtomsDeleted); +JU.BSUtil.deleteBits(this.bsSizeSet, bs); +JU.BSUtil.deleteBits(this.bsColixSet, bs); +return; +}this.setPropS(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "checkColixLength", +function(colix, n){ +n = Math.min(this.ms.ac, n); +if (colix == 0) return (this.colixes == null ? 0 : this.colixes.length); +if (this.colixes == null || n > this.colixes.length) { +this.colixes = JU.AU.ensureLengthShort(this.colixes, n); +this.paletteIDs = JU.AU.ensureLengthByte(this.paletteIDs, n); +}if (this.bsColixSet == null) this.bsColixSet = JU.BS.newN(this.ms.ac); +return n; +}, "~N,~N"); +Clazz.defineMethod(c$, "setColixAndPalette", +function(colix, paletteID, atomIndex){ +if (this.colixes == null) { +this.checkColixLength(-1, this.ms.ac); +}this.colixes[atomIndex] = colix = this.getColixI(colix, paletteID, atomIndex); +this.bsColixSet.setBitTo(atomIndex, colix != 0 || this.shapeID == 0); +this.paletteIDs[atomIndex] = paletteID; +}, "~N,~N,~N"); +Clazz.overrideMethod(c$, "setAtomClickability", +function(){ +if (!this.isActive) return; +var atoms = this.ms.at; +for (var i = this.ms.ac; --i >= 0; ) { +var atom = atoms[i]; +if (atom == null || (atom.shapeVisibilityFlags & this.vf) == 0 || this.ms.isAtomHidden(i)) continue; +atom.setClickable(this.vf); +} +}); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +return null; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Axes.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Axes.js new file mode 100755 index 000000000000..7a691d15b1ff --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Axes.js @@ -0,0 +1,147 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.FontLineShape", "JU.P3", "$.V3"], "J.shape.Axes", ["JU.PT", "JU.Escape", "JV.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.axisXY = null; +this.scale = 0; +this.fixedOrigin = null; +this.originPoint = null; +this.axisPoints = null; +this.labels = null; +this.axisType = null; +this.axes2 = null; +this.pt0 = null; +this.fixedOriginUC = null; +this.corner = null; +Clazz.instantialize(this, arguments);}, J.shape, "Axes", J.shape.FontLineShape); +Clazz.prepareFields (c$, function(){ +this.axisXY = new JU.P3(); +this.originPoint = new JU.P3(); +this.axisPoints = new Array(6); +{ +for (var i = 6; --i >= 0; ) this.axisPoints[i] = new JU.P3(); + +}this.pt0 = new JU.P3(); +this.fixedOriginUC = new JU.P3(); +this.corner = new JU.V3(); +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("position" === propertyName) { +var doSetScale = (this.axisXY.z == 0 && (value).z != 0); +this.axisXY = value; +this.setScale(doSetScale ? 1 : this.scale); +return; +}if ("origin" === propertyName) { +if (value == null || (value).length() == 0) { +this.fixedOrigin = null; +} else { +if (this.fixedOrigin == null) this.fixedOrigin = new JU.P3(); +this.fixedOrigin.setT(value); +}this.reinitShape(); +return; +}if ("labels" === propertyName) { +this.labels = value; +return; +}if ("labelsOn" === propertyName) { +this.labels = null; +return; +}if ("labelsOff" === propertyName) { +this.labels = Clazz.newArray(-1, ["", "", ""]); +return; +}if ("type" === propertyName) { +this.axisType = value; +if ("abc".equals(this.axisType)) this.axisType = null; +}if ("axes2" === propertyName) { +this.axes2 = (value == null || value.equals("") ? null : value); +return; +}this.setPropFLS(propertyName, value); +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.translucentAllowed = false; +this.myType = "axes"; +this.font3d = this.vwr.gdata.getFont3D(16); +this.setPoints(this.vwr.g.axesMode); +}); +Clazz.defineMethod(c$, "setPoints", +function(axesMode){ +var unitcell; +if (axesMode != 603979808 || this.ms.unitCells == null || (unitcell = this.vwr.getCurrentUnitCell()) == null) { +this.originPoint.setT(this.fixedOrigin != null ? this.fixedOrigin : axesMode == 603979809 ? this.vwr.getBoundBoxCenter() : this.pt0); +this.setScale(this.vwr.getFloat(570425346) / 2); +return; +}var fset = unitcell.getUnitCellMultiplier(); +unitcell = unitcell.getUnitCellMultiplied(); +var voffset = this.vwr.getFloat(570425345); +this.fixedOriginUC.set(voffset, voffset, voffset); +var offset = unitcell.getCartesianOffset(); +var vertices = unitcell.getUnitCellVerticesNoOffset(); +this.originPoint.add2(offset, vertices[0]); +if (voffset != 0) unitcell.toCartesian(this.fixedOriginUC, false); + else if (this.fixedOrigin != null) this.originPoint.setT(this.fixedOrigin); +if (voffset != 0) { +this.originPoint.add(this.fixedOriginUC); +}var scale = this.scale = this.vwr.getFloat(570425346) / 2; +if (fset != null && fset.z > 0) scale *= Math.abs(fset.z); +this.axisPoints[0].scaleAdd2(scale, vertices[4], this.originPoint); +this.axisPoints[1].scaleAdd2(scale, vertices[2], this.originPoint); +this.axisPoints[2].scaleAdd2(scale, vertices[1], this.originPoint); +}, "~N"); +Clazz.defineMethod(c$, "reinitShape", +function(){ +var f = this.font3d; +this.initShape(); +if (f != null) this.font3d = f; +}); +Clazz.defineMethod(c$, "getAxisPoint", +function(i, unscaled, ptTemp){ +if (unscaled) { +ptTemp.setT(this.axisPoints[i]); +} else { +ptTemp.sub2(this.axisPoints[i], this.originPoint); +ptTemp.scale(0.5); +}return ptTemp; +}, "~N,~B,JU.P3"); +Clazz.overrideMethod(c$, "getProperty", +function(property, index){ +if (property === "originPoint") return this.originPoint; +if (property === "axisPoints") return this.axisPoints; +if (property === "axesTypeXY") return (this.axisXY.z == 0 ? Boolean.FALSE : Boolean.TRUE); +if (property === "origin") return this.fixedOrigin; +return null; +}, "~S,~N"); +Clazz.defineMethod(c$, "setScale", +function(scale){ +this.scale = scale; +this.corner.setT(this.vwr.getBoundBoxCornerVector()); +for (var i = 6; --i >= 0; ) { +var axisPoint = this.axisPoints[i]; +axisPoint.setT(JV.JC.unitAxisVectors[i]); +if (this.corner.x < 1.5) this.corner.x = 1.5; +if (this.corner.y < 1.5) this.corner.y = 1.5; +if (this.corner.z < 1.5) this.corner.z = 1.5; +if (this.axisXY.z == 0) { +axisPoint.x *= this.corner.x * scale; +axisPoint.y *= this.corner.y * scale; +axisPoint.z *= this.corner.z * scale; +}axisPoint.add(this.originPoint); +} +}, "~N"); +Clazz.defineMethod(c$, "getAxesState", +function(sb){ +sb.append(" axes scale ").appendF(this.vwr.getFloat(570425346)).append(";\n"); +if (this.fixedOrigin != null) sb.append(" axes center ").append(JU.Escape.eP(this.fixedOrigin)).append(";\n"); +if (this.axisXY.z != 0) sb.append(" axes position [").appendI(Clazz.floatToInt(this.axisXY.x)).append(" ").appendI(Clazz.floatToInt(this.axisXY.y)).append(" ").append(this.axisXY.z < 0 ? " %" : "").append("]"); +if (this.axes2 != null) sb.append(" ").append(JU.PT.esc(this.axes2)); +sb.append(";\n"); +if (this.labels != null) { +sb.append(" axes labels "); +for (var i = 0; i < this.labels.length; i++) if (this.labels[i] != null) sb.append(JU.PT.esc(this.labels[i])).append(" "); + +sb.append(";\n"); +}if (this.axisType != null) { +sb.append(" axes type " + JU.PT.esc(this.axisType)); +}return sb.toString(); +}, "JU.SB"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Balls.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Balls.js new file mode 100755 index 000000000000..485961d65452 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Balls.js @@ -0,0 +1,95 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.AtomShape"], "J.shape.Balls", ["JU.BS", "J.c.PAL", "JU.C"], function(){ +var c$ = Clazz.declareType(J.shape, "Balls", J.shape.AtomShape); +Clazz.overrideMethod(c$, "setSize", +function(size, bsSelected){ +if (size == 2147483647) { +this.isActive = true; +if (this.bsSizeSet == null) this.bsSizeSet = new JU.BS(); +this.bsSizeSet.or(bsSelected); +return; +}this.setSize2(size, bsSelected); +}, "~N,JU.BS"); +Clazz.overrideMethod(c$, "setSizeRD", +function(rd, bsSelected){ +this.isActive = true; +if (this.bsSizeSet == null) this.bsSizeSet = new JU.BS(); +var bsLength = Math.min(this.ms.at.length, bsSelected.length()); +for (var i = bsSelected.nextSetBit(0); i >= 0 && i < bsLength; i = bsSelected.nextSetBit(i + 1)) { +var atom = this.ms.at[i]; +atom.setMadAtom(this.vwr, rd); +this.bsSizeSet.set(i); +} +}, "J.atomdata.RadiusData,JU.BS"); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("color" === propertyName) { +var colix = JU.C.getColixO(value); +if (colix == 0) colix = 2; +if (this.bsColixSet == null) this.bsColixSet = new JU.BS(); +var pid = J.c.PAL.pidOf(value); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +var atom = this.ms.at[i]; +atom.colixAtom = this.getColixA(colix, pid, atom); +this.bsColixSet.setBitTo(i, colix != 2 || pid != J.c.PAL.NONE.id); +atom.paletteID = pid; +} +this.vwr.setModelkitPropertySafely("updateatomkeys", bs); +return; +}if ("colorValues" === propertyName) { +var values = value; +if (values.length == 0) return; +if (this.bsColixSet == null) this.bsColixSet = new JU.BS(); +var n = 0; +var color = null; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +if (n >= values.length) return; +color = Integer.$valueOf(values[n++]); +var colix = JU.C.getColixO(color); +if (colix == 0) colix = 2; +var pid = J.c.PAL.pidOf(color); +var atom = this.ms.at[i]; +atom.colixAtom = this.getColixA(colix, pid, atom); +this.bsColixSet.setBitTo(i, colix != 2 || pid != J.c.PAL.NONE.id); +atom.paletteID = pid; +} +return; +}if ("colors" === propertyName) { +var data = value; +var colixes = data[0]; +if (this.bsColixSet == null) this.bsColixSet = new JU.BS(); +var c; +var atoms = this.ms.at; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +if (i >= colixes.length || (c = colixes[i]) == 0) continue; +atoms[i].colixAtom = c; +atoms[i].paletteID = J.c.PAL.UNKNOWN.id; +this.bsColixSet.set(i); +} +return; +}if ("translucency" === propertyName) { +var isTranslucent = ((value).equals("translucent")); +if (this.bsColixSet == null) this.bsColixSet = new JU.BS(); +var atoms = this.ms.at; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +atoms[i].setTranslucent(isTranslucent, this.translucentLevel); +if (isTranslucent) this.bsColixSet.set(i); +} +return; +}if (propertyName.startsWith("ball")) { +propertyName = propertyName.substring(4).intern(); +}this.setPropAS(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "setAtomClickability", +function(){ +var bsDeleted = this.vwr.slm.bsDeleted; +for (var i = this.ms.ac; --i >= 0; ) { +var atom = this.ms.at[i]; +if (atom == null) continue; +atom.setClickable(0); +if (bsDeleted != null && bsDeleted.get(i) || (atom.shapeVisibilityFlags & this.vf) == 0 || this.ms.isAtomHidden(i)) continue; +atom.setClickable(this.vf); +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Bbcage.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Bbcage.js new file mode 100755 index 000000000000..bf413e650f56 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Bbcage.js @@ -0,0 +1,22 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.FontLineShape"], "J.shape.Bbcage", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isVisible = false; +Clazz.instantialize(this, arguments);}, J.shape, "Bbcage", J.shape.FontLineShape); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +this.setPropFLS(propertyName, value); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shape.Bbcage, "initShape", []); +this.font3d = this.vwr.gdata.getFont3D(16); +this.myType = "boundBox"; +}); +Clazz.overrideMethod(c$, "setModelVisibilityFlags", +function(bs){ +var bboxModels; +this.isVisible = (this.vwr.getShowBbcage() && ((bboxModels = this.ms.bboxModels) == null || bs.intersects(bboxModels))); +}, "JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Echo.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Echo.js new file mode 100755 index 000000000000..eddbd3c9a0e7 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Echo.js @@ -0,0 +1,217 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.TextShape"], "J.shape.Echo", ["java.util.Hashtable", "JU.Lst", "$.PT", "JM.Text", "JU.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.scaleObject = null; +Clazz.instantialize(this, arguments);}, J.shape, "Echo", J.shape.TextShape); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.setProperty("target", "top", null); +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("target" === propertyName) { +if ("%SCALE".equals(value)) { +this.currentObject = this.scaleObject; +this.thisID = "%SCALE"; +if (this.currentObject != null) return; +}var target = (value).intern().toLowerCase(); +if (JU.PT.isWild(target)) { +propertyName = "thisID"; +} else if (target !== "none" && target !== "all") { +this.isAll = false; +var text = (this.thisID === "%SCALE" ? this.scaleObject : this.objects.get(target)); +if (text == null) { +var valign = 3; +var halign = 4; +if ("top" === target) { +valign = 0; +halign = 8; +} else if ("middle" === target) { +valign = 2; +halign = 8; +} else if ("bottom" === target) { +valign = 1; +} else if ("error" === target) { +valign = 0; +}text = JM.Text.newEcho(this.vwr, this.vwr.gdata.getFont3DFS("Serif", 20), target, 10, valign, halign, 0); +text.adjustForWindow = true; +if (this.thisID === "%SCALE") { +this.scaleObject = text; +} else { +this.objects.put(target, text); +if (target.startsWith("_!_")) { +text.thisModelOnly = true; +}}if (this.currentFont != null) text.setFont(this.currentFont, true); +if (this.currentColor != null) text.colix = JU.C.getColixO(this.currentColor); +if (this.currentBgColor != null) text.bgcolix = JU.C.getColixO(this.currentBgColor); +if (this.currentTranslucentLevel != 0) text.setTranslucent(this.currentTranslucentLevel, false); +if (this.currentBgTranslucentLevel != 0) text.setTranslucent(this.currentBgTranslucentLevel, true); +}this.currentObject = text; +if (this.thisID !== "%SCALE") this.thisID = null; +return; +}}if ("thisID" === propertyName) { +if (value == null) { +this.currentObject = null; +this.thisID = null; +return; +}var target = value; +if (target === "%SCALE") { +this.currentObject = this.scaleObject; +this.thisID = target; +} else { +this.currentObject = this.objects.get(target); +if (this.currentObject == null && JU.PT.isWild(target)) this.thisID = target.toUpperCase(); +}return; +}if ("%SCALE" === propertyName) { +this.currentObject = this.scaleObject = value; +this.thisID = "%SCALE"; +return; +}if ("color" === propertyName || "font" === propertyName) { +if (this.scaleObject != null && this.currentObject === this.scaleObject) { +var f = this.currentFont; +var c = this.currentColor; +this.setPropTS(propertyName, value, bs); +this.currentFont = f; +this.currentColor = c; +return; +}}if ("off" === propertyName) { +if (this.currentObject != null && this.currentObject === this.scaleObject) { +this.currentObject = this.scaleObject = null; +return; +}}if ("text" === propertyName) { +if ((value).startsWith("%SCALE")) { +this.thisID = "%SCALE"; +this.setPropTS("text", value, null); +this.scaleObject = this.currentObject; +if (this.scaleObject != null && this.objects.get(this.scaleObject.target) === this.scaleObject) this.setPropTS("delete", this.scaleObject, null); +this.currentObject = this.scaleObject; +return; +}}if ("scalereference" === propertyName) { +if (this.currentObject != null) { +var val = (value).floatValue(); +this.currentObject.setScalePixelsPerMicron(val == 0 ? 0 : 10000 / val); +}return; +}if ("point" === propertyName) { +if (this.currentObject != null) { +var t = this.currentObject; +t.pointerPt = (value == null ? null : value); +t.pointer = (value == null ? 0 : 1); +}return; +}if ("xyz" === propertyName) { +if (this.currentObject != null) { +if (this.vwr.getBoolean(603979847)) { +this.currentObject.setScalePixelsPerMicron(this.vwr.getScalePixelsPerAngstrom(false) * 10000); +}this.currentObject.setXYZ(value, true); +}}if ("scale" === propertyName) { +if (this.currentObject != null) { +(this.currentObject).setScale((value).floatValue()); +} else if (this.isAll) { +for (var t, $t = this.objects.values().iterator (); $t.hasNext()&& ((t = $t.next ()) || true);) t.setScale((value).floatValue()); + +}return; +}if ("image" === propertyName) { +if (this.currentObject != null) { +(this.currentObject).setImage(value); +} else if (this.isAll) { +for (var t, $t = this.objects.values().iterator (); $t.hasNext()&& ((t = $t.next ()) || true);) t.setImage(value); + +}return; +}if ("hidden" === propertyName) { +var isHidden = (value).booleanValue(); +if (this.currentObject != null) { +(this.currentObject).hidden = isHidden; +} else if (this.isAll || this.thisID != null) { +for (var t, $t = this.objects.values().iterator (); $t.hasNext()&& ((t = $t.next ()) || true);) if (this.isAll || JU.PT.isMatch(t.target.toUpperCase(), this.thisID, true, true)) t.hidden = isHidden; + +}return; +}if ("script" === propertyName) { +if (this.currentObject != null) this.currentObject.setScript(value); +return; +}if ("xpos" === propertyName) { +if (this.currentObject != null) { +this.currentObject.setXYZ(null, true); +this.currentObject.setMovableX((value).intValue()); +}return; +}if ("ypos" === propertyName) { +if (this.currentObject != null) { +this.currentObject.setXYZ(null, true); +this.currentObject.setMovableY((value).intValue()); +}return; +}if ("%xpos" === propertyName) { +if (this.currentObject != null) { +this.currentObject.setXYZ(null, true); +this.currentObject.setMovableXPercent((value).intValue()); +}return; +}if ("%ypos" === propertyName) { +if (this.currentObject != null) { +this.currentObject.setXYZ(null, true); +this.currentObject.setMovableYPercent((value).intValue()); +}return; +}if ("%zpos" === propertyName) { +if (this.currentObject != null) { +this.currentObject.setXYZ(null, true); +this.currentObject.setMovableZPercent((value).intValue()); +}return; +}if ("xypos" === propertyName) { +if (this.currentObject != null) { +var pt = value; +this.currentObject.setXYZ(null, true); +if (pt.z == 3.4028235E38) { +this.currentObject.setMovableX(Clazz.floatToInt(pt.x)); +this.currentObject.setMovableY(Clazz.floatToInt(pt.y)); +} else { +this.currentObject.setMovableXPercent(Clazz.floatToInt(pt.x)); +this.currentObject.setMovableYPercent(Clazz.floatToInt(pt.y)); +}}return; +}if ("offset" === propertyName) { +if (this.currentObject != null) { +this.currentObject.pymolOffset = value; +}return; +}if ("align" === propertyName) { +if (this.currentObject != null) { +this.currentObject.pymolOffset = null; +}}this.setPropTS(propertyName, value, null); +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "getPropertyData", +function(property, data){ +if ("currentTarget" === property) { +return (this.currentObject != null && (data[0] = this.currentObject.target) != null); +}if (property === "%SCALE") { +data[0] = this.scaleObject; +return (data[0] != null); +}if (property === "checkID") { +var key = (data[0]).toUpperCase(); +var isWild = JU.PT.isWild(key); +for (var t, $t = this.objects.values().iterator (); $t.hasNext()&& ((t = $t.next ()) || true);) { +var id = t.target; +if (id.equalsIgnoreCase(key) || isWild && JU.PT.isMatch(id.toUpperCase(), key, true, true)) { +data[1] = id; +return true; +}} +return false; +}return this.getPropShape(property, data); +}, "~S,~A"); +Clazz.overrideMethod(c$, "getShapeDetail", +function(){ +var lst = new java.util.Hashtable(); +for (var e, $e = this.objects.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var info = new java.util.Hashtable(); +var t = e.getValue(); +var name = e.getKey(); +info.put("boxXY", t.boxXY); +if (t.xyz != null) info.put("xyz", t.xyz); +var o = t.image; +if (o == null) { +info.put("text", t.text == null ? "" : t.text); +} else { +info.put("imageFile", t.text); +info.put("imageWidth", Integer.$valueOf(this.vwr.apiPlatform.getImageWidth(o))); +info.put("imageHeight", Integer.$valueOf(this.vwr.apiPlatform.getImageHeight(o))); +}lst.put(name, info); +} +var lst2 = new JU.Lst(); +lst2.addLast(lst); +return lst2; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/FontLineShape.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/FontLineShape.js new file mode 100755 index 000000000000..23f45b01e3e1 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/FontLineShape.js @@ -0,0 +1,42 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.Shape"], "J.shape.FontLineShape", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.tickInfos = null; +this.font3d = null; +Clazz.instantialize(this, arguments);}, J.shape, "FontLineShape", J.shape.Shape); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.translucentAllowed = false; +}); +Clazz.defineMethod(c$, "setPropFLS", +function(propertyName, value){ +if ("tickInfo" === propertyName) { +var t = value; +var type = t.type; +if (t.ticks == null) { +if (t.type == ' ') { +this.tickInfos = null; +return; +}if (this.tickInfos != null) { +var haveTicks = false; +for (var i = 0; i < 4; i++) { +if (this.tickInfos[i] != null && this.tickInfos[i].type == t.type) { +this.tickInfos[i] = null; +} else { +haveTicks = true; +}} +if (!haveTicks) this.tickInfos = null; +}return; +}if (this.tickInfos == null) this.tickInfos = new Array(4); +this.tickInfos["xyz".indexOf(type) + 1] = t; +return; +}if ("font" === propertyName) { +this.font3d = value; +return; +}}, "~S,~O"); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +return null; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Frank.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Frank.js new file mode 100755 index 000000000000..ddafd4754742 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Frank.js @@ -0,0 +1,66 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.Shape"], "J.shape.Frank", ["J.i18n.GT", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.currentMetricsFont3d = null; +this.baseFont3d = null; +this.frankWidth = 0; +this.frankAscent = 0; +this.frankDescent = 0; +this.x = 0; +this.y = 0; +this.dx = 0; +this.dy = 0; +this.scaling = 0; +this.font3d = null; +Clazz.instantialize(this, arguments);}, J.shape, "Frank", J.shape.Shape); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.myType = "frank"; +this.baseFont3d = this.font3d = this.vwr.gdata.getFont3DFSS("SansSerif", "Plain", 16); +if (JV.Viewer.isJS || JV.Viewer.isSwingJS) J.shape.Frank.frankString = "JSmol"; + else if (false) J.shape.Frank.frankString = "JmolD"; +this.calcMetrics(); +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("font" === propertyName) { +var f = value; +if (f.fontSize >= 10) { +this.baseFont3d = f; +this.scaling = 0; +}}return; +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "wasClicked", +function(x, y){ +var width = this.vwr.getScreenWidth(); +var height = this.vwr.getScreenHeight(); +return (width > 0 && height > 0 && x > width - this.frankWidth - 4 && y > height - this.frankAscent - 4); +}, "~N,~N"); +Clazz.overrideMethod(c$, "checkObjectHovered", +function(x, y, bsVisible){ +if (!this.vwr.getShowFrank() || !this.wasClicked(x, y) || !this.vwr.menuEnabled()) return false; +this.vwr.hoverOnPt(x, y, J.i18n.GT.$("Click for menu..."), null, null); +return true; +}, "~N,~N,JU.BS"); +Clazz.defineMethod(c$, "calcMetrics", +function(){ +if (this.font3d === this.currentMetricsFont3d) return; +this.currentMetricsFont3d = this.font3d; +this.frankWidth = this.font3d.stringWidth(J.shape.Frank.frankString); +this.frankDescent = this.font3d.getDescent(); +this.frankAscent = this.font3d.getAscent(); +}); +Clazz.defineMethod(c$, "getFont", +function(imageFontScaling){ +if (imageFontScaling != this.scaling) { +this.scaling = imageFontScaling; +this.font3d = this.vwr.gdata.getFont3DScaled(this.baseFont3d, imageFontScaling); +this.calcMetrics(); +}}, "~N"); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +return null; +}); +c$.frankString = "Jmol"; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Halos.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Halos.js new file mode 100755 index 000000000000..f97a4a853b08 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Halos.js @@ -0,0 +1,37 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.AtomShape"], "J.shape.Halos", ["JU.BSUtil", "$.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.colixSelection = 2; +this.bsHighlight = null; +this.colixHighlight = 10; +Clazz.instantialize(this, arguments);}, J.shape, "Halos", J.shape.AtomShape); +Clazz.defineMethod(c$, "initState", +function(){ +this.translucentAllowed = false; +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("translucency" === propertyName) return; +if ("argbSelection" === propertyName) { +this.colixSelection = JU.C.getColix((value).intValue()); +return; +}if ("argbHighlight" === propertyName) { +this.colixHighlight = JU.C.getColix((value).intValue()); +return; +}if ("highlight" === propertyName) { +this.bsHighlight = value; +return; +}if (propertyName === "deleteModelAtoms") { +JU.BSUtil.deleteBits(this.bsHighlight, bs); +}this.setPropAS(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "setModelVisibilityFlags", +function(bs){ +var bsSelected = (this.vwr.getSelectionHalosEnabled() ? this.vwr.bsA() : null); +var atoms = this.ms.at; +for (var i = this.ms.ac; --i >= 0; ) { +if (atoms[i] != null) atoms[i].setShapeVisibility(this.vf, bsSelected != null && bsSelected.get(i) || this.mads != null && this.mads[i] != 0); +} +}, "JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Hover.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Hover.js new file mode 100755 index 000000000000..1d67592300f4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Hover.js @@ -0,0 +1,60 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.TextShape"], "J.shape.Hover", ["JU.AU", "JM.Text", "JU.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.hoverText = null; +this.atomIndex = -1; +this.xy = null; +this.text = null; +this.labelFormat = "%U"; +this.atomFormats = null; +this.specialLabel = null; +Clazz.instantialize(this, arguments);}, J.shape, "Hover", J.shape.TextShape); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.isHover = true; +var font3d = this.vwr.gdata.getFont3DFSS("SansSerif", "Plain", 12); +var bgcolix = JU.C.getColixS("#FFFFC3"); +var colix = 4; +this.currentObject = this.hoverText = JM.Text.newLabel(this.vwr, font3d, null, colix, bgcolix, 4, 0); +this.hoverText.adjustForWindow = true; +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bsSelected){ +if ("target" === propertyName) { +if (value == null) this.atomIndex = -1; + else { +this.atomIndex = (value).intValue(); +}return; +}if ("text" === propertyName) { +this.text = value; +if (this.text != null && this.text.length == 0) this.text = null; +return; +}if ("specialLabel" === propertyName) { +this.specialLabel = value; +return; +}if ("atomLabel" === propertyName) { +var text = value; +if (text != null && text.length == 0) text = null; +var count = this.ms.ac; +if (this.atomFormats == null || this.atomFormats.length < count) this.atomFormats = new Array(count); +for (var i = bsSelected.nextSetBit(0); i >= 0; i = bsSelected.nextSetBit(i + 1)) this.atomFormats[i] = text; + +return; +}if ("xy" === propertyName) { +this.xy = value; +return; +}if ("label" === propertyName) { +this.labelFormat = value; +if (this.labelFormat != null && this.labelFormat.length == 0) this.labelFormat = null; +return; +}if (propertyName === "deleteModelAtoms") { +if (this.atomFormats != null) { +var firstAtomDeleted = ((value)[2])[1]; +var nAtomsDeleted = ((value)[2])[2]; +this.atomFormats = JU.AU.deleteElements(this.atomFormats, firstAtomDeleted, nAtomsDeleted); +}this.atomIndex = -1; +return; +}this.setPropTS(propertyName, value, null); +}, "~S,~O,JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Labels.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Labels.js new file mode 100755 index 000000000000..9b6fbf453dc5 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Labels.js @@ -0,0 +1,522 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.AtomShape", "java.util.Hashtable", "JU.P3"], "J.shape.Labels", ["JU.AU", "$.BS", "$.PT", "J.c.PAL", "JM.LabelToken", "$.Text", "JS.SV", "JU.BSUtil", "$.C", "$.Font", "JV.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.strings = null; +this.formats = null; +this.bgcolixes = null; +this.fids = null; +this.offsets = null; +this.atomLabels = null; +this.labelBoxes = null; +this.bsFontSet = null; +this.bsBgColixSet = null; +this.defaultOffset = 0; +this.defaultAlignment = 0; +this.defaultZPos = 0; +this.defaultFontId = 0; +this.defaultColix = 0; +this.defaultBgcolix = 0; +this.defaultPaletteID = 0; +this.defaultPointer = 0; +this.zeroFontId = 0; +this.setDefaults = false; +this.isScaled = false; +this.scalePixelsPerMicron = 0; +this.ptTemp = null; +this.pickedAtom = -1; +this.lastPicked = -1; +this.pickedOffset = 0; +this.pickedX = 0; +this.pickedY = 0; +Clazz.instantialize(this, arguments);}, J.shape, "Labels", J.shape.AtomShape); +Clazz.prepareFields (c$, function(){ +this.atomLabels = new java.util.Hashtable(); +this.ptTemp = new JU.P3(); +}); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.defaultFontId = this.zeroFontId = this.vwr.gdata.getFont3DFSS("SansSerif", "Plain", 13).fid; +this.defaultColix = 0; +this.defaultBgcolix = 0; +this.defaultOffset = JV.JC.LABEL_DEFAULT_OFFSET; +this.defaultAlignment = 4; +this.defaultPointer = 0; +this.defaultZPos = 0; +this.translucentAllowed = false; +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +this.isActive = true; +var atoms = this.ms.at; +var ac = this.ms.ac; +if ("setDefaults" === propertyName) { +this.setDefaults = (value).booleanValue(); +return; +}if ("color" === propertyName) { +var pid = J.c.PAL.pidOf(value); +var colix = JU.C.getColixO(value); +if (this.setDefaults) { +this.defaultColix = colix; +this.defaultPaletteID = pid; +} else { +var n = this.checkColixLength(colix, bs.length()); +for (var i = bs.nextSetBit(0); i >= 0 && i < n; i = bs.nextSetBit(i + 1)) this.setLabelColix(i, colix, pid); + +}return; +}if ("scalereference" === propertyName) { +if (this.strings == null) return; +var val = (value).floatValue(); +var scalePixelsPerMicron = (val == 0 ? 0 : 10000 / val); +var n = Math.min(ac, this.strings.length); +for (var i = bs.nextSetBit(0); i >= 0 && i < n; i = bs.nextSetBit(i + 1)) { +var text = this.getLabel(i); +if (text == null) { +text = JM.Text.newLabel(this.vwr, null, this.strings[i], 0, 0, 0, scalePixelsPerMicron); +this.putLabel(i, text); +} else { +text.setScalePixelsPerMicron(scalePixelsPerMicron); +}} +return; +}if ("label" === propertyName) { +var isPicked = (this.isPickingMode() && bs.cardinality() == 1 && bs.nextSetBit(0) == this.lastPicked); +this.setScaling(); +var tokens = null; +var nbs = this.checkStringLength(bs.length()); +if (this.defaultColix != 0 || this.defaultPaletteID != 0) this.checkColixLength(this.defaultColix, bs.length()); +if (this.defaultBgcolix != 0) this.checkBgColixLength(this.defaultBgcolix, bs.length()); +if (Clazz.instanceOf(value,"JU.Lst")) { +var list = value; +var n = list.size(); +tokens = Clazz.newArray(-1, [null]); +for (var pt = 0, i = bs.nextSetBit(0); i >= 0 && i < nbs; i = bs.nextSetBit(i + 1)) { +if (pt >= n) { +this.setLabel(J.shape.Labels.nullToken, "", i, !isPicked); +continue; +}tokens[0] = null; +this.setLabel(tokens, JS.SV.sValue(list.get(pt++)), i, !isPicked); +} +} else { +var strLabel = value; +tokens = (strLabel == null || strLabel.length == 0 ? J.shape.Labels.nullToken : Clazz.newArray(-1, [null])); +for (var i = bs.nextSetBit(0); i >= 0 && i < ac; i = bs.nextSetBit(i + 1)) this.setLabel(tokens, strLabel, i, !isPicked); + +}return; +}if (propertyName.startsWith("label:")) { +this.setScaling(); +this.checkStringLength(ac); +var label = propertyName.substring(6); +if (label.length == 0) label = null; +this.setLabel( Clazz.newArray(-1, [null]), label, (value).intValue(), false); +return; +}if ("clearBoxes" === propertyName) { +this.labelBoxes = null; +return; +}if ("translucency" === propertyName || "bgtranslucency" === propertyName) { +return; +}if ("bgcolor" === propertyName) { +this.isActive = true; +if (this.bsBgColixSet == null) this.bsBgColixSet = JU.BS.newN(ac); +var bgcolix = JU.C.getColixO(value); +if (this.setDefaults) { +this.defaultBgcolix = bgcolix; +} else { +var n = this.checkBgColixLength(bgcolix, bs.length()); +for (var i = bs.nextSetBit(0); i >= 0 && i < n; i = bs.nextSetBit(i + 1)) this.setBgcolix(i, bgcolix); + +}return; +}if (this.bsFontSet == null) this.bsFontSet = JU.BS.newN(ac); +if ("fontsize" === propertyName) { +var fontsize = (value).intValue(); +if (fontsize < 0) { +this.fids = null; +return; +}var f; +if (this.setDefaults) { +f = JU.Font.getFont3D(this.defaultFontId); +this.defaultFontId = this.vwr.getFont3D(f.fontFace, f.fontStyle, fontsize).fid; +} else { +for (var i = bs.nextSetBit(0); i >= 0 && i < ac; i = bs.nextSetBit(i + 1)) { +f = JU.Font.getFont3D(this.fids == null || i >= this.fids.length ? this.fids[i] : this.defaultFontId); +this.setFont(i, this.vwr.getFont3D(f.fontFace, f.fontStyle, fontsize).fid); +} +}return; +}if ("font" === propertyName) { +var fid = (value).fid; +if (this.setDefaults) { +this.defaultFontId = fid; +} else { +for (var i = bs.nextSetBit(0); i >= 0 && i < ac; i = bs.nextSetBit(i + 1)) this.setFont(i, fid); + +}return; +}if ("offset" === propertyName) { +if (Clazz.instanceOf(value, Integer)) { +var offset = (value).intValue(); +if (this.setDefaults) { +this.defaultOffset = offset; +} else { +for (var i = bs.nextSetBit(0); i >= 0 && i < ac; i = bs.nextSetBit(i + 1)) this.setOffsets(i, offset); + +}} else if (!this.setDefaults) { +this.checkColixLength(-1, ac); +for (var i = bs.nextSetBit(0); i >= 0 && i < ac; i = bs.nextSetBit(i + 1)) this.setPymolOffset(i, value); + +}return; +}if ("align" === propertyName) { +var type = value; +var hAlignment = (type.equalsIgnoreCase("right") ? 12 : type.equalsIgnoreCase("center") ? 8 : 4); +if (this.setDefaults) { +this.defaultAlignment = hAlignment; +} else { +for (var i = bs.nextSetBit(0); i >= 0 && i < ac; i = bs.nextSetBit(i + 1)) this.setHorizAlignment(i, hAlignment); + +}return; +}if ("pointer" === propertyName) { +var pointer = (value).intValue(); +if (this.setDefaults) { +this.defaultPointer = pointer; +} else { +for (var i = bs.nextSetBit(0); i >= 0 && i < ac; i = bs.nextSetBit(i + 1)) this.setPointer(i, pointer); + +}return; +}if ("front" === propertyName) { +var TF = (value).booleanValue(); +if (this.setDefaults) { +this.defaultZPos = (TF ? 32 : 0); +} else { +for (var i = bs.nextSetBit(0); i >= 0 && i < ac; i = bs.nextSetBit(i + 1)) this.setZPos(i, 32, TF); + +}return; +}if ("group" === propertyName) { +var TF = (value).booleanValue(); +if (this.setDefaults) { +this.defaultZPos = (TF ? 16 : 0); +} else { +for (var i = bs.nextSetBit(0); i >= 0 && i < ac; i = bs.nextSetBit(i + 1)) this.setZPos(i, 16, TF); + +}return; +}if ("display" === propertyName || "toggleLabel" === propertyName) { +var mode = ("toggleLabel" === propertyName ? 0 : (value).booleanValue() ? 1 : -1); +if (this.mads == null) this.mads = Clazz.newShortArray (ac, 0); +var strLabelPDB = null; +var tokensPDB = null; +var strLabelUNK = null; +var tokensUNK = null; +var strLabel; +var tokens; +var nstr = this.checkStringLength(bs.length()); +var bgcolix = this.defaultBgcolix; +var nbg = this.checkBgColixLength(bgcolix, bs.length()); +var thisMad = (mode >= 0 ? 1 : -1); +for (var i = bs.nextSetBit(0); i >= 0 && i < ac; i = bs.nextSetBit(i + 1)) { +var atom = atoms[i]; +if (i < nstr && this.strings[i] != null) { +this.mads[i] = (mode == 1 || mode == 0 && this.mads[i] < 0 ? 1 : -1); +} else { +this.mads[i] = thisMad; +if (atom.getGroup3(false).equals("UNK")) { +if (strLabelUNK == null) { +strLabelUNK = this.vwr.getStandardLabelFormat(1); +tokensUNK = JM.LabelToken.compile(this.vwr, strLabelUNK, '\0', null); +}strLabel = strLabelUNK; +tokens = tokensUNK; +} else { +if (strLabelPDB == null) { +strLabelPDB = this.vwr.getStandardLabelFormat(2); +tokensPDB = JM.LabelToken.compile(this.vwr, strLabelPDB, '\0', null); +}strLabel = strLabelPDB; +tokens = tokensPDB; +}this.strings[i] = JM.LabelToken.formatLabelAtomArray(this.vwr, atom, tokens, '\0', null, this.ptTemp); +this.formats[i] = strLabel; +this.bsSizeSet.set(i); +if (i < nbg && !this.bsBgColixSet.get(i)) this.setBgcolix(i, this.defaultBgcolix); +}atom.setShapeVisibility(this.vf, this.strings != null && i < this.strings.length && this.strings[i] != null && this.mads[i] >= 0); +} +return; +}if ("pymolLabels" === propertyName) { +this.setPymolLabels(value, bs); +return; +}if (propertyName === "deleteModelAtoms") { +this.labelBoxes = null; +var firstAtomDeleted = ((value)[2])[1]; +var nAtomsDeleted = ((value)[2])[2]; +this.fids = JU.AU.deleteElements(this.fids, firstAtomDeleted, nAtomsDeleted); +this.bgcolixes = JU.AU.deleteElements(this.bgcolixes, firstAtomDeleted, nAtomsDeleted); +this.offsets = JU.AU.deleteElements(this.offsets, firstAtomDeleted, nAtomsDeleted); +this.formats = JU.AU.deleteElements(this.formats, firstAtomDeleted, nAtomsDeleted); +this.strings = JU.AU.deleteElements(this.strings, firstAtomDeleted, nAtomsDeleted); +JU.BSUtil.deleteBits(this.bsFontSet, bs); +JU.BSUtil.deleteBits(this.bsBgColixSet, bs); +}this.setPropAS(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "isPickingMode", +function(){ +return (this.vwr.getPickingMode() == 2 && this.labelBoxes != null); +}); +Clazz.defineMethod(c$, "checkStringLength", +function(n){ +var ac = this.ms.ac; +n = Math.min(ac, n); +if (this.strings == null || n > this.strings.length) { +this.formats = JU.AU.ensureLengthS(this.formats, n); +this.strings = JU.AU.ensureLengthS(this.strings, n); +if (this.bsSizeSet == null) this.bsSizeSet = JU.BS.newN(n); +}return n; +}, "~N"); +Clazz.defineMethod(c$, "checkBgColixLength", +function(colix, n){ +n = Math.min(this.ms.ac, n); +if (colix == 0) return (this.bgcolixes == null ? 0 : this.bgcolixes.length); +if (this.bgcolixes == null || n > this.bgcolixes.length) this.bgcolixes = JU.AU.ensureLengthShort(this.bgcolixes, n); +return n; +}, "~N,~N"); +Clazz.defineMethod(c$, "setPymolLabels", +function(labels, bsSelected){ +this.setScaling(); +var n = this.checkStringLength(this.ms.ac); +this.checkColixLength(-1, n); +for (var i = bsSelected.nextSetBit(0); i >= 0 && i < n; i = bsSelected.nextSetBit(i + 1)) this.setPymolLabel(i, labels.get(Integer.$valueOf(i)), null); + +}, "java.util.Map,JU.BS"); +Clazz.defineMethod(c$, "setPymolOffset", +function(i, value){ +var text = this.getLabel(i); +if (text == null) { +if (this.strings == null || i >= this.strings.length || this.strings[i] == null) return; +var fid = (this.bsFontSet != null && this.bsFontSet.get(i) ? this.fids[i] : -1); +if (fid < 0) this.setFont(i, fid = this.defaultFontId); +var a = this.ms.at[i]; +text = JM.Text.newLabel(this.vwr, JU.Font.getFont3D(fid), this.strings[i], this.getColix2(i, a, false), this.getColix2(i, a, true), 0, this.scalePixelsPerMicron); +this.setPymolLabel(i, text, this.formats[i]); +}text.pymolOffset = value; +}, "~N,~A"); +Clazz.defineMethod(c$, "setScaling", +function(){ +this.isActive = true; +if (this.bsSizeSet == null) this.bsSizeSet = JU.BS.newN(this.ms.ac); +this.isScaled = this.vwr.getBoolean(603979847); +this.scalePixelsPerMicron = (this.isScaled ? this.vwr.getScalePixelsPerAngstrom(false) * 10000 : 0); +}); +Clazz.defineMethod(c$, "setPymolLabel", +function(i, t, format){ +if (t == null) return; +var label = t.text; +var atom = this.ms.at[i]; +if (atom == null) return; +this.addString(atom, i, label, format == null ? JU.PT.rep(label, "%", "%%") : format); +atom.setShapeVisibility(this.vf, true); +if (t.colix >= 0) this.setLabelColix(i, t.colix, J.c.PAL.UNKNOWN.id); +this.setFont(i, t.font.fid); +this.putLabel(i, t); +}, "~N,JM.Text,~S"); +Clazz.defineMethod(c$, "setLabel", +function(temp, strLabel, i, doAll){ +var atom = this.ms.at[i]; +var tokens = temp[0]; +if (tokens == null) tokens = temp[0] = JM.LabelToken.compile(this.vwr, strLabel, '\0', null); +var label = (tokens == null ? null : JM.LabelToken.formatLabelAtomArray(this.vwr, atom, tokens, '\0', null, this.ptTemp)); +var isNew = this.addString(atom, i, label, strLabel); +doAll = new Boolean (doAll |(isNew || label == null)).valueOf(); +var text = this.getLabel(i); +if (this.isScaled && doAll) { +text = JM.Text.newLabel(this.vwr, null, label, 0, 0, 0, this.scalePixelsPerMicron); +this.putLabel(i, text); +} else if (text != null) { +if (label == null) { +this.putLabel(i, null); +} else { +text.setText(label); +text.textUnformatted = strLabel; +}}if (!doAll) return; +if (this.defaultOffset != JV.JC.LABEL_DEFAULT_OFFSET) this.setOffsets(i, this.defaultOffset); +if (this.defaultAlignment != 4) this.setHorizAlignment(i, this.defaultAlignment); +if ((this.defaultZPos & 32) != 0) this.setZPos(i, 32, true); + else if ((this.defaultZPos & 16) != 0) this.setZPos(i, 16, true); +if (this.defaultPointer != 0) this.setPointer(i, this.defaultPointer); +if (this.defaultColix != 0 || this.defaultPaletteID != 0) this.setLabelColix(i, this.defaultColix, this.defaultPaletteID); +if (this.defaultBgcolix != 0) this.setBgcolix(i, this.defaultBgcolix); +if (this.defaultFontId != this.zeroFontId) this.setFont(i, this.defaultFontId); +}, "~A,~S,~N,~B"); +Clazz.defineMethod(c$, "addString", +function(atom, i, label, strLabel){ +atom.setShapeVisibility(this.vf, label != null); +var notNull = (strLabel != null); +var isNew = (this.strings[i] == null); +this.strings[i] = label; +this.formats[i] = (notNull && strLabel.indexOf("%{") >= 0 ? label : strLabel); +this.bsSizeSet.setBitTo(i, notNull); +return isNew; +}, "JM.Atom,~N,~S,~S"); +Clazz.overrideMethod(c$, "getProperty", +function(property, index){ +if (property.equals("font")) return JU.Font.getFont3D(this.defaultFontId); +if (property.equals("offsets")) return this.offsets; +if (property.equals("label")) return (this.strings != null && index < this.strings.length && this.strings[index] != null ? this.strings[index] : ""); +return null; +}, "~S,~N"); +Clazz.defineMethod(c$, "putLabel", +function(i, text){ +if (text == null) this.atomLabels.remove(Integer.$valueOf(i)); + else { +this.atomLabels.put(Integer.$valueOf(i), text); +text.textUnformatted = this.formats[i]; +}}, "~N,JM.Text"); +Clazz.defineMethod(c$, "getLabel", +function(i){ +return this.atomLabels.get(Integer.$valueOf(i)); +}, "~N"); +Clazz.defineMethod(c$, "putBox", +function(i, boxXY){ +if (this.labelBoxes == null) this.labelBoxes = new java.util.Hashtable(); +this.labelBoxes.put(Integer.$valueOf(i), boxXY); +}, "~N,~A"); +Clazz.defineMethod(c$, "getBox", +function(i){ +if (this.labelBoxes == null) return null; +return this.labelBoxes.get(Integer.$valueOf(i)); +}, "~N"); +Clazz.defineMethod(c$, "setLabelColix", +function(i, colix, pid){ +this.setColixAndPalette(colix, pid, i); +var text; +if (this.colixes != null && ((text = this.getLabel(i)) != null)) text.colix = this.colixes[i]; +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "setBgcolix", +function(i, bgcolix){ +this.bgcolixes[i] = bgcolix; +this.bsBgColixSet.setBitTo(i, bgcolix != 0); +var text = this.getLabel(i); +if (text != null) text.bgcolix = bgcolix; +}, "~N,~N"); +Clazz.defineMethod(c$, "setOffsets", +function(i, offset){ +if (this.offsets == null || i >= this.offsets.length) { +if (offset == JV.JC.LABEL_DEFAULT_OFFSET) return; +this.offsets = JU.AU.ensureLengthI(this.offsets, this.ms.ac); +}this.offsets[i] = (this.offsets[i] & 63) | offset; +var text = this.getLabel(i); +if (text != null) text.setOffset(offset); +}, "~N,~N"); +Clazz.defineMethod(c$, "setHorizAlignment", +function(i, hAlign){ +if (this.offsets == null || i >= this.offsets.length) { +switch (hAlign) { +case 0: +case 4: +return; +} +this.offsets = JU.AU.ensureLengthI(this.offsets, this.ms.ac); +}if (hAlign == 0) hAlign = 4; +this.offsets[i] = JV.JC.setHorizAlignment(this.offsets[i], hAlign); +var text = this.getLabel(i); +if (text != null) text.setAlignment(hAlign); +}, "~N,~N"); +Clazz.defineMethod(c$, "setPointer", +function(i, pointer){ +if (this.offsets == null || i >= this.offsets.length) { +if (pointer == 0) return; +this.offsets = JU.AU.ensureLengthI(this.offsets, this.ms.ac); +}this.offsets[i] = JV.JC.setPointer(this.offsets[i], pointer); +var text = this.getLabel(i); +if (text != null) text.pointer = pointer; +}, "~N,~N"); +Clazz.defineMethod(c$, "setZPos", +function(i, flag, TF){ +if (this.offsets == null || i >= this.offsets.length) { +if (!TF) return; +this.offsets = JU.AU.ensureLengthI(this.offsets, this.ms.ac); +}this.offsets[i] = JV.JC.setZPosition(this.offsets[i], TF ? flag : 0); +}, "~N,~N,~B"); +Clazz.defineMethod(c$, "setFont", +function(i, fid){ +if (this.fids == null || i >= this.fids.length) { +if (fid == this.zeroFontId) return; +this.fids = JU.AU.ensureLengthI(this.fids, this.ms.ac); +}this.fids[i] = fid; +this.bsFontSet.set(i); +var text = this.getLabel(i); +if (text != null) { +text.setFontFromFid(fid); +}}, "~N,~N"); +Clazz.overrideMethod(c$, "setAtomClickability", +function(){ +if (this.strings == null) return; +for (var i = this.strings.length; --i >= 0; ) { +var label = this.strings[i]; +if (label != null && this.ms.at.length > i && this.ms.at[i] != null && !this.ms.isAtomHidden(i)) this.ms.at[i].setClickable(this.vf); +} +}); +Clazz.overrideMethod(c$, "checkObjectClicked", +function(x, y, modifiers, bsVisible, drawPicking){ +if (!this.isPickingMode()) return null; +var iAtom = this.findNearestLabel(x, y); +if (iAtom < 0) return null; +var map = new java.util.Hashtable(); +map.put("type", "label"); +map.put("atomIndex", Integer.$valueOf(iAtom)); +this.lastPicked = iAtom; +return map; +}, "~N,~N,~N,JU.BS,~B"); +Clazz.overrideMethod(c$, "checkObjectDragged", +function(prevX, prevY, x, y, dragAction, bsVisible){ +if (!this.isPickingMode()) return false; +if (prevX == -2147483648) { +var iAtom = this.findNearestLabel(x, y); +if (iAtom >= 0) { +this.pickedAtom = iAtom; +this.lastPicked = this.pickedAtom; +this.vwr.acm.setDragAtomIndex(iAtom); +this.pickedX = x; +this.pickedY = y; +this.pickedOffset = (this.offsets == null || this.pickedAtom >= this.offsets.length ? JV.JC.LABEL_DEFAULT_OFFSET : this.offsets[this.pickedAtom]); +return true; +}return false; +}if (prevX == 2147483647) this.pickedAtom = -1; +if (this.pickedAtom < 0) return false; +this.move2D(this.pickedAtom, x, y); +return true; +}, "~N,~N,~N,~N,~N,JU.BS"); +Clazz.defineMethod(c$, "findNearestLabel", +function(x, y){ +if (this.labelBoxes == null) return -1; +var dmin = 3.4028235E38; +var imin = -1; +var zmin = 3.4028235E38; +var afactor = (this.vwr.antialiased ? 2 : 1); +var atoms = this.ms.at; +for (var entry, $entry = this.labelBoxes.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +if (!atoms[entry.getKey().intValue()].isVisible(this.vf | 9)) continue; +var boxXY = entry.getValue(); +var dx = (x - boxXY[0]) * afactor; +var dy = (y - boxXY[1]) * afactor; +if (dx <= 0 || dy <= 0 || dx >= boxXY[2] || dy >= boxXY[3] || boxXY[4] > zmin) continue; +zmin = boxXY[4]; +var d = Math.min(Math.abs(dx - boxXY[2] / 2), Math.abs(dy - boxXY[3] / 2)); +if (d <= dmin) { +dmin = d; +imin = entry.getKey().intValue(); +}} +return imin; +}, "~N,~N"); +Clazz.defineMethod(c$, "move2D", +function(pickedAtom, x, y){ +var xOffset = JV.JC.getXOffset(this.pickedOffset); +var yOffset = JV.JC.getYOffset(this.pickedOffset); +xOffset += x - this.pickedX; +yOffset -= y - this.pickedY; +var offset = JV.JC.getOffset(xOffset, yOffset, true); +this.setOffsets(pickedAtom, offset); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "getColix2", +function(i, atom, isBg){ +var colix; +if (isBg) { +colix = (this.bgcolixes == null || i >= this.bgcolixes.length) ? 0 : this.bgcolixes[i]; +} else { +colix = (this.colixes == null || i >= this.colixes.length) ? 0 : this.colixes[i]; +colix = JU.C.getColixInherited(colix, atom.colixAtom); +if (JU.C.isColixTranslucent(colix)) colix = JU.C.getColixTranslucent3(colix, false, 0); +}return colix; +}, "~N,JM.Atom,~B"); +c$.nullToken = Clazz.newArray(-1, [null]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Measures.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Measures.js new file mode 100755 index 000000000000..dc592102fd65 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Measures.js @@ -0,0 +1,556 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.api.JmolMeasurementClient", "J.shape.AtomShape", "JU.Lst"], "J.shape.Measures", ["java.util.Hashtable", "JU.AU", "$.BS", "$.PT", "$.SB", "JM.Measurement", "$.MeasurementData", "JU.BSUtil", "$.C", "$.Escape"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.bsSelected = null; +this.strFormat = null; +this.mustBeConnected = false; +this.mustNotBeConnected = false; +this.radiusData = null; +this.intramolecular = null; +this.measureAllModels = false; +this.measurementCount = 0; +this.measurements = null; +this.mPending = null; +this.colix = 0; +this.tickInfo = null; +this.defaultTickInfo = null; +this.font3d = null; +this.htMin = null; +this.tokAction = 0; +Clazz.instantialize(this, arguments);}, J.shape, "Measures", J.shape.AtomShape, J.api.JmolMeasurementClient); +Clazz.prepareFields (c$, function(){ +this.measurements = new JU.Lst(); +}); +Clazz.defineMethod(c$, "getSelected", +function(){ +return this.bsSelected; +}); +Clazz.overrideMethod(c$, "initModelSet", +function(){ +for (var i = this.measurements.size(); --i >= 0; ) { +var m = this.measurements.get(i); +if (m != null) m.ms = this.ms; +} +}); +Clazz.overrideMethod(c$, "initShape", +function(){ +if (this.font3d == null) this.font3d = this.vwr.gdata.getFont3D(18); +}); +Clazz.overrideMethod(c$, "setSize", +function(size, bsSelected){ +this.mad = size; +}, "~N,JU.BS"); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bsAtoms){ +var mt; +if ("clearModelIndex" === propertyName) { +for (var i = 0; i < this.measurementCount; i++) this.measurements.get(i).setModelIndex(0); + +return; +}if ("color" === propertyName) { +this.setColor(JU.C.getColixO(value)); +return; +}if ("font" === propertyName) { +this.font3d = value; +return; +}if ("hideAll" === propertyName) { +this.showHide((value).booleanValue()); +return; +}if ("pending" === propertyName) { +this.mPending = value; +if (this.mPending == null) return; +if (this.mPending.count > 1) this.vwr.setStatusMeasuring("measurePending", this.mPending.count, J.shape.Measures.getMessage(this.mPending, false), this.mPending.value); +return; +}var isRefresh; +if ((isRefresh = ("refresh" === propertyName)) || "refreshTrajectories" === propertyName) { +for (var i = this.measurements.size(); --i >= 0; ) if ((mt = this.measurements.get(i)) != null && (isRefresh || mt.isTrajectory)) mt.refresh(null); + +return; +}if ("select" === propertyName) { +var bs = value; +if (JU.BSUtil.cardinalityOf(bs) == 0) { +this.bsSelected = null; +} else { +this.bsSelected = new JU.BS(); +this.bsSelected.or(bs); +}return; +}if ("selectall" === propertyName) { +this.bsSelected = JU.BSUtil.newBitSet2(0, this.measurementCount); +return; +}if ("setFormats" === propertyName) { +this.setFormats(value); +return; +}this.measureAllModels = this.vwr.getBoolean(603979877); +if ("delete" === propertyName) { +this.deleteO(value); +this.setIndices(); +return; +}this.bsSelected = null; +if ("maps" === propertyName) { +var maps = value; +for (var i = 0; i < maps.length; i++) { +var len = maps[i].length; +if (len < 2 || len > 4) continue; +var v = Clazz.newIntArray (len + 1, 0); +v[0] = len; +System.arraycopy(maps[i], 0, v, 1, len); +this.toggleOn(v); +} +} else if ("measure" === propertyName) { +var md = value; +this.tickInfo = md.tickInfo; +if (md.tickInfo != null && md.tickInfo.id.equals("default")) { +this.defaultTickInfo = md.tickInfo; +return; +}if (md.isAll && md.points.size() == 2 && Clazz.instanceOf(md.points.get(0),"JU.BS")) { +var type = JM.Measurement.nmrType(this.vwr.getDistanceUnits(md.strFormat)); +switch (type) { +case 2: +md.htMin = this.vwr.getNMRCalculation().getMinDistances(md); +} +}this.tickInfo = md.tickInfo; +this.radiusData = md.radiusData; +this.htMin = md.htMin; +this.mustBeConnected = md.mustBeConnected; +this.mustNotBeConnected = md.mustNotBeConnected; +this.intramolecular = md.intramolecular; +this.strFormat = md.strFormat; +if (md.isAll) { +if (this.tickInfo != null) this.define(md, 12291); +if (md.bsSelected != null) this.bsSelected = md.bsSelected; +this.define(md, md.tokAction); +this.setIndices(); +return; +}var m = this.setSingleItem(md.points); +m.setFromMD(md, false); +switch (md.tokAction) { +case 266284: +this.doAction(md, md.thisID, 266284); +break; +case 12291: +this.defineAll(-2147483648, m, true, false, false); +this.setIndices(); +break; +case 1073742335: +this.showHideM(m, false); +break; +case 1073742334: +this.showHideM(m, true); +break; +case 1665140738: +if (md.thisID != null) this.doAction(md, md.thisID, 1665140738); +break; +case 12290: +if (md.thisID == null) { +this.deleteM(m); +} else { +this.deleteO(md.thisID); +}this.toggle(m); +break; +case 1275082241: +this.bsSelected = new JU.BS(); +this.processNextMeasure(md, m); +break; +case 268438018: +this.toggle(m); +} +return; +}if ("clear" === propertyName) { +this.clear(); +return; +}if ("atomsDeleted" === propertyName) { +for (var i = this.measurementCount; --i >= 0; ) { +out : for (var iatom = bsAtoms.nextSetBit(0); iatom >= 0; iatom = bsAtoms.nextSetBit(iatom + 1)) { +mt = this.measurements.get(i); +var indices = mt.countPlusIndices; +for (var j = 1; j <= indices[0]; j++) { +if (indices[j] == iatom) { +this.deleteI(i); +break out; +}} +} +} +return; +}if ("deleteModelAtoms" === propertyName) { +var modelIndex = ((value)[2])[0]; +var firstAtomDeleted = ((value)[2])[1]; +var nAtomsDeleted = ((value)[2])[2]; +var atomMax = firstAtomDeleted + nAtomsDeleted; +for (var i = this.measurementCount; --i >= 0; ) { +mt = this.measurements.get(i); +var indices = mt.countPlusIndices; +for (var j = 1; j <= indices[0]; j++) { +var iAtom = indices[j]; +if (iAtom >= firstAtomDeleted) { +if (iAtom < atomMax) { +this.deleteI(i); +break; +}indices[j] -= nAtomsDeleted; +} else if (iAtom < 0) { +var pt = mt.getAtom(j); +if (pt.mi > modelIndex) { +pt.mi--; +} else if (pt.mi == modelIndex) { +this.deleteI(i); +break; +}}} +} +return; +}if ("reformatDistances" === propertyName) { +this.reformatDistances(value == null); +return; +}if ("hide" === propertyName) { +if ((typeof(value)=='string')) { +this.doAction(null, value, 12294); +} else { +this.showHideM( new JM.Measurement().setPoints(this.ms, value, null, null), true); +}return; +}if ("refresh" === propertyName) { +this.doAction(value, null, 266284); +return; +}if ("show" === propertyName) { +if ((typeof(value)=='string')) { +this.doAction(null, value, 134222350); +} else { +this.showHideM( new JM.Measurement().setPoints(this.ms, value, null, null), false); +}return; +}if ("toggle" === propertyName) { +if ((typeof(value)=='string')) { +this.doAction(null, value, 268438018); +} else { +this.toggle( new JM.Measurement().setPoints(this.ms, value, null, null)); +}return; +}if ("toggleOn" === propertyName) { +if ((typeof(value)=='string')) { +this.doAction(null, value, 1073742335); +} else { +this.toggleOn(value); +}return; +}}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "setSingleItem", +function(vector){ +var points = new Array(4); +var indices = Clazz.newIntArray (5, 0); +indices[0] = vector.size(); +for (var i = vector.size(); --i >= 0; ) { +var value = vector.get(i); +if (Clazz.instanceOf(value,"JU.BS")) { +var atomIndex = (value).nextSetBit(0); +if (atomIndex < 0) return null; +indices[i + 1] = atomIndex; +} else { +points[i] = value; +indices[i + 1] = -2 - i; +}} +return new JM.Measurement().setPoints(this.ms, indices, points, this.tickInfo == null ? this.defaultTickInfo : this.tickInfo); +}, "JU.Lst"); +Clazz.overrideMethod(c$, "getProperty", +function(property, index){ +if ("pending".equals(property)) return this.mPending; +if ("count".equals(property)) return Integer.$valueOf(this.measurementCount); +if ("countPlusIndices".equals(property)) return (index < this.measurementCount ? this.measurements.get(index).countPlusIndices : null); +if ("stringValue".equals(property)) return (index < this.measurementCount ? this.measurements.get(index).getString() : null); +if ("pointInfo".equals(property)) return this.measurements.get(Clazz.doubleToInt(index / 10)).getLabel(index % 10, false, false); +if ("info".equals(property)) return this.getAllInfo(); +if ("infostring".equals(property)) return this.getAllInfoAsString(); +if ("selected".equals(property)) return (this.bsSelected == null ? new JU.BS() : JU.BSUtil.copy(this.bsSelected)); +return null; +}, "~S,~N"); +Clazz.defineMethod(c$, "clear", +function(){ +if (this.measurementCount == 0) return; +this.measurementCount = 0; +this.measurements.clear(); +this.mPending = null; +this.vwr.setStatusMeasuring("measureDeleted", -1, "all", 0); +}); +Clazz.defineMethod(c$, "setColor", +function(colix){ +if (this.bsColixSet == null) this.bsColixSet = new JU.BS(); +if (this.bsSelected == null) this.colix = colix; +var mt; +for (var i = this.measurements.size(); --i >= 0; ) if ((mt = this.measurements.get(i)) != null && (this.bsSelected != null && this.bsSelected.get(i) || this.bsSelected == null && (colix == 0 || mt.colix == 0))) { +mt.colix = colix; +this.bsColixSet.set(i); +} +}, "~N"); +Clazz.defineMethod(c$, "setFormats", +function(format){ +if (format != null && format.length == 0) format = null; +var isDefault = "default".equals(format); +if (isDefault || JM.Measurement.isUnits(format)) { +if (isDefault) format = null; +for (var i = this.measurements.size(); --i >= 0; ) if (this.bsSelected == null || this.bsSelected.get(i)) { +var m = this.measurements.get(i); +m.units = format; +m.formatMeasurement(null); +} +} else { +for (var i = this.measurements.size(); --i >= 0; ) if (this.bsSelected == null || this.bsSelected.get(i)) this.measurements.get(i).formatMeasurementAs(format, null, false); + +}}, "~S"); +Clazz.defineMethod(c$, "showHide", +function(isHide){ +for (var i = this.measurements.size(); --i >= 0; ) if (this.bsSelected == null || this.bsSelected.get(i)) this.measurements.get(i).isHidden = isHide; + +}, "~B"); +Clazz.defineMethod(c$, "showHideM", +function(m, isHide){ +var i = this.find(m); +if (i >= 0) this.measurements.get(i).isHidden = isHide; +}, "JM.Measurement,~B"); +Clazz.defineMethod(c$, "toggle", +function(m){ +this.radiusData = null; +this.htMin = null; +var i = this.find(m); +var mt; +if (i >= 0 && !(mt = this.measurements.get(i)).isHidden) this.defineAll(i, mt, true, false, false); + else this.defineAll(-1, m, false, true, false); +this.setIndices(); +}, "JM.Measurement"); +Clazz.defineMethod(c$, "toggleOn", +function(indices){ +this.radiusData = null; +this.htMin = null; +this.bsSelected = new JU.BS(); +var m = new JM.Measurement().setPoints(this.ms, indices, null, this.defaultTickInfo); +this.defineAll(-2147483648, m, false, true, true); +var i = this.find(m); +if (i >= 0) this.bsSelected.set(i); +this.setIndices(); +this.reformatDistances(false); +}, "~A"); +Clazz.defineMethod(c$, "deleteM", +function(m){ +this.radiusData = null; +this.htMin = null; +var i = this.find(m); +if (i >= 0) this.defineAll(i, this.measurements.get(i), true, false, false); +this.setIndices(); +}, "JM.Measurement"); +Clazz.defineMethod(c$, "deleteO", +function(value){ +if (Clazz.instanceOf(value, Integer)) { +this.deleteI((value).intValue()); +} else if ((typeof(value)=='string')) { +this.doAction(null, value, 12291); +} else if (JU.AU.isAI(value)) { +this.defineAll(-2147483648, new JM.Measurement().setPoints(this.ms, value, null, null), true, false, false); +}}, "~O"); +Clazz.defineMethod(c$, "defineAll", +function(iPt, m, isDelete, isShow, doSelect){ +if (!this.measureAllModels) { +if (isDelete) { +if (iPt == -2147483648) iPt = this.find(m); +if (iPt >= 0) this.deleteI(iPt); +return; +}this.defineMeasurement(iPt, m, doSelect); +return; +}if (isShow) { +this.defineAll(iPt, m, true, false, false); +if (isDelete) return; +}var points = new JU.Lst(); +var nPoints = m.count; +var atoms = this.ms.at; +for (var i = 1; i <= nPoints; i++) { +var atomIndex = m.getAtomIndex(i); +points.addLast(atomIndex >= 0 ? this.ms.getAtoms(1094715393, Integer.$valueOf(atoms[atomIndex].getAtomNumber())) : m.getAtom(i)); +} +this.define(( new JM.MeasurementData().init(null, this.vwr, points)).set(this.tokAction, this.htMin, this.radiusData, m.property, this.strFormat, null, this.tickInfo, this.mustBeConnected, this.mustNotBeConnected, this.intramolecular, true, 0, 0, null, NaN, null), (isDelete ? 12291 : 12290)); +}, "~N,JM.Measurement,~B,~B,~B"); +Clazz.defineMethod(c$, "find", +function(m){ +return (m.thisID == null ? JM.Measurement.find(this.measurements, m) : -1); +}, "JM.Measurement"); +Clazz.defineMethod(c$, "setIndices", +function(){ +for (var i = 0; i < this.measurementCount; i++) this.measurements.get(i).index = i; + +}); +Clazz.defineMethod(c$, "define", +function(md, tokAction){ +this.tokAction = tokAction; +if (md.bsSelected != null) { +for (var i = this.measurementCount; --i >= 0; ) if (md.bsSelected.get(i)) this.processNextMeasure(md, this.measurements.get(i)); + +return; +}if (tokAction == 1275082241) this.bsSelected = new JU.BS(); +md.define(this, this.ms); +}, "JM.MeasurementData,~N"); +Clazz.overrideMethod(c$, "processNextMeasure", +function(md, m){ +var iThis = this.find(m); +if (md.tokAction == 1275082241) { +if (iThis < 0 || !this.isInRange(NaN, m)) return; +this.bsSelected.set(iThis); +}if (iThis >= 0) { +if (this.tokAction == 12291) { +if (this.isInRange(NaN, m)) this.deleteI(iThis); +} else if (md.tokAction == 1275082241) { +var mThis = this.measurements.get(iThis); +mThis.setFromMD(md, true); +if (this.strFormat != null && md.strFormat == null) { +mThis.formatMeasurementAs(this.strFormat, md.units, true); +} else if (md.units != null) { +mThis.strFormat = null; +mThis.units = (md.units.equals("default") ? null : md.units); +mThis.formatMeasurement(null); +}} else { +this.measurements.get(iThis).isHidden = (this.tokAction == 1073742334); +}} else if (this.tokAction == 12290 || this.tokAction == 268438018) { +m.tickInfo = (this.tickInfo == null ? this.defaultTickInfo : this.tickInfo); +this.defineMeasurement(-1, m, true); +}}, "JM.MeasurementData,JM.Measurement"); +Clazz.defineMethod(c$, "isInRange", +function(val, m){ +return !(this.htMin != null && !m.isMin(this.htMin) || this.radiusData != null && !m.isInRange(this.radiusData, val == val ? val : m.getMeasurement(null))); +}, "~N,JM.Measurement"); +Clazz.defineMethod(c$, "defineMeasurement", +function(i, m, doSelect){ +var value = m.getMeasurement(null); +if (!this.isInRange(value, m)) return; +if (i == -2147483648) i = this.find(m); +if (i >= 0) { +this.measurements.get(i).isHidden = false; +if (doSelect) this.bsSelected.set(i); +return; +}var measureNew = new JM.Measurement().setM(this.ms, m, value, (m.colix == 0 ? this.colix : m.colix), this.strFormat, this.measurementCount); +if (!measureNew.$isValid) return; +this.measurements.addLast(measureNew); +this.vwr.setStatusMeasuring("measureCompleted", this.measurementCount++, J.shape.Measures.getMessage(measureNew, false), measureNew.value); +}, "~N,JM.Measurement,~B"); +c$.getMessage = Clazz.defineMethod(c$, "getMessage", +function(m, asBitSet){ +var sb = new JU.SB(); +sb.append("["); +for (var i = 1; i <= m.count; i++) { +if (i > 1) sb.append(", "); +sb.append(m.getLabel(i, asBitSet, false)); +} +sb.append(", "); +sb.append(m.getString()); +sb.append("]"); +return sb.toString(); +}, "JM.Measurement,~B"); +Clazz.defineMethod(c$, "deleteI", +function(i){ +if (i >= this.measurements.size() || i < 0) return; +var msg = J.shape.Measures.getMessage(this.measurements.get(i), true); +this.measurements.removeItemAt(i); +this.measurementCount--; +this.vwr.setStatusMeasuring("measureDeleted", i, msg, 0); +this.bsSelected = null; +}, "~N"); +Clazz.defineMethod(c$, "doAction", +function(md, id, tok){ +id = id.toUpperCase().$replace('?', '*'); +var isWild = JU.PT.isWild(id); +for (var i = this.measurements.size(); --i >= 0; ) { +var m = this.measurements.get(i); +if (m.thisID != null && (m.thisID.equalsIgnoreCase(id) || isWild && JU.PT.isMatch(m.thisID.toUpperCase(), id, true, true))) switch (tok) { +case 266284: +m.setFromMD(md, true); +break; +case 1665140738: +m.mad = md.mad; +break; +case 12291: +var msg = J.shape.Measures.getMessage(this.measurements.get(i), true); +this.measurements.removeItemAt(i); +this.measurementCount--; +this.vwr.setStatusMeasuring("measureDeleted", i, msg, 0); +break; +case 134222350: +m.isHidden = false; +break; +case 12294: +m.isHidden = true; +break; +case 268438018: +m.isHidden = !m.isHidden; +break; +case 1073742335: +m.isHidden = false; +break; +} +} +}, "JM.MeasurementData,~S,~N"); +Clazz.defineMethod(c$, "reformatDistances", +function(isDefault){ +for (var i = this.measurementCount; --i >= 0; ) this.measurements.get(i).reformatDistanceIfSelected(isDefault); + +}, "~B"); +Clazz.defineMethod(c$, "getAllInfo", +function(){ +var info = new JU.Lst(); +for (var i = 0; i < this.measurementCount; i++) { +info.addLast(this.getInfo(i)); +} +return info; +}); +Clazz.defineMethod(c$, "getAllInfoAsString", +function(){ +var info = "Measurement Information"; +for (var i = 0; i < this.measurementCount; i++) { +info += "\n" + this.getInfoAsString(i); +} +return info; +}); +Clazz.defineMethod(c$, "getInfo", +function(index){ +var m = this.measurements.get(index); +var count = m.count; +var info = new java.util.Hashtable(); +info.put("index", Integer.$valueOf(index)); +info.put("type", (count == 2 ? "distance" : count == 3 ? "angle" : "dihedral")); +info.put("strMeasurement", m.getString()); +info.put("count", Integer.$valueOf(count)); +info.put("id", "" + m.thisID); +info.put("value", Float.$valueOf(m.value)); +info.put("hidden", Boolean.$valueOf(m.isHidden)); +info.put("visible", Boolean.$valueOf(m.isVisible)); +var tickInfo = m.tickInfo; +if (tickInfo != null) { +info.put("ticks", tickInfo.ticks); +if (tickInfo.scale != null) info.put("tickScale", tickInfo.scale); +if (tickInfo.tickLabelFormats != null) info.put("tickLabelFormats", tickInfo.tickLabelFormats); +if (!Float.isNaN(tickInfo.first)) info.put("tickStart", Float.$valueOf(tickInfo.first)); +}var atomsInfo = new JU.Lst(); +var atoms = this.ms.at; +for (var i = 1; i <= count; i++) { +var atomInfo = new java.util.Hashtable(); +var atomIndex = m.getAtomIndex(i); +atomInfo.put("_ipt", Integer.$valueOf(atomIndex)); +atomInfo.put("coord", JU.Escape.eP(m.getAtom(i))); +atomInfo.put("atomno", Integer.$valueOf(atomIndex < 0 ? -1 : atoms[atomIndex].getAtomNumber())); +atomInfo.put("info", (atomIndex < 0 ? " " : atoms[atomIndex].getInfo())); +atomsInfo.addLast(atomInfo); +} +info.put("atoms", atomsInfo); +return info; +}, "~N"); +Clazz.defineMethod(c$, "getInfoAsString", +function(index){ +return this.measurements.get(index).getInfoAsString(null); +}, "~N"); +Clazz.defineMethod(c$, "setVisibilityInfo", +function(){ +var bsModels = this.vwr.getVisibleFramesBitSet(); +out : for (var i = this.measurementCount; --i >= 0; ) { +var m = this.measurements.get(i); +m.isVisible = false; +if (this.mad == 0 || m.isHidden) continue; +for (var iAtom = m.count; iAtom > 0; iAtom--) { +var atomIndex = m.getAtomIndex(iAtom); +if (atomIndex >= 0) { +if (!this.ms.at[atomIndex].isClickable()) continue out; +} else { +var modelIndex = m.getAtom(iAtom).mi; +if (modelIndex >= 0 && !bsModels.get(modelIndex)) continue out; +}} +m.isVisible = true; +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Mesh.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Mesh.js new file mode 100755 index 000000000000..d0cf1b7916e1 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Mesh.js @@ -0,0 +1,431 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["JU.MeshSurface"], "J.shape.Mesh", ["java.util.Hashtable", "JU.AU", "$.BS", "$.M3", "$.M4", "$.Measure", "$.P3", "$.PT", "$.SB", "$.V3", "JS.T", "JU.BSUtil", "$.C", "$.Escape", "$.Normix"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.title = null; +this.hoverLabel = null; +this.meshColix = 0; +this.normixes = null; +this.lineData = null; +this.thisID = null; +this.isValid = true; +this.scriptCommand = null; +this.colorCommand = null; +this.lattice = null; +this.symops = null; +this.symopNormixes = null; +this.visible = true; +this.lighting = 1073741958; +this.colorType = 0; +this.reverseColor = false; +this.haveXyPoints = false; +this.diameter = 0; +this.width = 0; +this.ptCenter = null; +this.linkedMesh = null; +this.vertexColorMap = null; +this.vAB = null; +this.vTemp = null; +this.color = 0; +this.useColix = true; +this.unitCell = null; +this.scale3d = 0; +this.index = 0; +this.atomIndex = -1; +this.modelIndex = -1; +this.visibilityFlags = 0; +this.insideOut = false; +this.checkByteCount = 0; +this.normalsInverted = false; +this.showContourLines = false; +this.showPoints = false; +this.drawTriangles = false; +this.fillTriangles = true; +this.showTriangles = false; +this.frontOnly = false; +this.isShell = false; +this.isTwoSided = true; +this.havePlanarContours = false; +this.bsTemp = null; +this.colorDensity = false; +this.cappingObject = null; +this.slabbingObject = null; +this.volumeRenderPointSize = 0.15; +this.connectedAtoms = null; +this.isModelConnected = false; +this.recalcAltVertices = false; +this.symopColixes = null; +Clazz.instantialize(this, arguments);}, J.shape, "Mesh", JU.MeshSurface); +Clazz.defineMethod(c$, "setVisibilityFlags", +function(n){ +this.visibilityFlags = n; +}, "~N"); +Clazz.defineMethod(c$, "mesh1", +function(vwr, thisID, colix, index){ +if ("+PREVIOUS_MESH+".equals(thisID)) thisID = null; +this.vwr = vwr; +this.thisID = thisID; +this.colix = colix; +this.index = index; +this.ptCenter = new JU.P3(); +this.vAB = new JU.V3(); +this.vTemp = new JU.V3(); +return this; +}, "JV.Viewer,~S,~N,~N"); +Clazz.defineMethod(c$, "clear", +function(meshType){ +this.clearMesh(meshType); +}, "~S"); +Clazz.defineMethod(c$, "clearMesh", +function(meshType){ +this.altVertices = null; +this.bsDisplay = null; +this.bsSlabDisplay = null; +this.bsSlabGhost = null; +this.symops = null; +this.symopColixes = null; +this.cappingObject = null; +this.colix = 23; +this.colorDensity = false; +this.connectedAtoms = null; +this.diameter = 0; +this.drawTriangles = false; +this.fillTriangles = true; +this.frontOnly = false; +this.isShell = false; +this.havePlanarContours = false; +this.haveXyPoints = false; +this.isModelConnected = false; +this.isDrawPolygon = false; +this.isTwoSided = false; +this.lattice = null; +this.mat4 = null; +this.normixes = null; +this.pis = null; +this.scale3d = 0; +this.showContourLines = false; +this.showPoints = false; +this.showTriangles = false; +this.slabbingObject = null; +this.slabOptions = null; +this.oabc = null; +this.symopNormixes = null; +this.title = null; +this.unitCell = null; +this.useColix = true; +this.vertexCount0 = this.polygonCount0 = this.vc = this.pc = 0; +this.vs = null; +this.vertexSource = null; +this.volumeRenderPointSize = 0.15; +this.meshType = meshType; +}, "~S"); +Clazz.defineMethod(c$, "initialize", +function(lighting, vertices, plane){ +if (vertices == null) vertices = this.vs; +var normals = this.getNormals(vertices, plane); +this.setNormixes(normals); +this.lighting = 1073741958; +if (this.insideOut) this.invertNormixes(); +if (this.isShell && !this.isTwoSided) this.invertNormixes(); +this.setLighting(lighting); +}, "~N,~A,JU.P4"); +Clazz.defineMethod(c$, "setNormixes", +function(normals){ +if (normals == null) return (this.normixes = null); +this.normixes = Clazz.newShortArray (this.normixCount, 0); +if (this.bsTemp == null) this.bsTemp = JU.Normix.newVertexBitSet(); +if (this.haveXyPoints) for (var i = this.normixCount; --i >= 0; ) this.normixes[i] = 9999; + + else for (var i = this.normixCount; --i >= 0; ) this.normixes[i] = JU.Normix.getNormixV(normals[i], this.bsTemp); + +return this.normixes; +}, "~A"); +Clazz.defineMethod(c$, "getNormals", +function(vertices, plane){ +this.normixCount = (this.isDrawPolygon ? this.pc : this.vc); +if (this.normixCount < 0) return null; +var normals = new Array(this.normixCount); +for (var i = this.normixCount; --i >= 0; ) normals[i] = new JU.V3(); + +if (plane == null) { +this.sumVertexNormals(vertices, normals); +} else { +var normal = JU.V3.new3(plane.x, plane.y, plane.z); +for (var i = this.normixCount; --i >= 0; ) normals[i] = normal; + +}if (!this.isDrawPolygon) for (var i = this.normixCount; --i >= 0; ) { +normals[i].normalize(); +} +return normals; +}, "~A,JU.P4"); +Clazz.defineMethod(c$, "setLighting", +function(lighting){ +this.isTwoSided = (lighting == 1073741964); +if (lighting == this.lighting) return; +this.flipLighting(this.lighting); +this.flipLighting(this.lighting = lighting); +}, "~N"); +Clazz.defineMethod(c$, "flipLighting", +function(lighting){ +if (lighting == 1073741964) for (var i = this.normixCount; --i >= 0; ) this.normixes[i] = ~this.normixes[i]; + + else if ((lighting == 1073741958) == this.insideOut) this.invertNormixes(); +}, "~N"); +Clazz.defineMethod(c$, "invertNormixes", +function(){ +JU.Normix.setInverseNormixes(); +this.normalsInverted = !this.normalsInverted; +for (var i = this.normixCount; --i >= 0; ) this.normixes[i] = JU.Normix.getInverseNormix(this.normixes[i]); + +}); +Clazz.defineMethod(c$, "setTranslucent", +function(isTranslucent, iLevel){ +this.colix = JU.C.getColixTranslucent3(this.colix, isTranslucent, iLevel); +}, "~B,~N"); +Clazz.defineMethod(c$, "sumVertexNormals", +function(vertices, normals){ +J.shape.Mesh.sumVertexNormals2(this, vertices, normals); +}, "~A,~A"); +c$.sumVertexNormals2 = Clazz.defineMethod(c$, "sumVertexNormals2", +function(m, vertices, normals){ +var adjustment = m.checkByteCount; +var min = m.getMinDistance2ForVertexGrouping(); +for (var i = m.pc; --i >= 0; ) { +try { +var face = m.setABC(i); +if (face == null) continue; +var vA = vertices[face[0]]; +var vB = vertices[face[1]]; +var vC = vertices[face[2]]; +if (vA.distanceSquared(vB) < min || vB.distanceSquared(vC) < min || vA.distanceSquared(vC) < min) continue; +JU.Measure.calcNormalizedNormal(vA, vB, vC, m.vTemp, m.vAB); +if (m.isDrawPolygon) { +normals[i].setT(m.vTemp); +} else { +var l = m.vTemp.length(); +if (l > 0.9 && l < 1.1) for (var j = face.length - adjustment; --j >= 0; ) { +var k = face[j]; +normals[k].add(m.vTemp); +} +}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println(e); +} else { +throw e; +} +} +} +}, "J.shape.Mesh,~A,~A"); +Clazz.defineMethod(c$, "getMinDistance2ForVertexGrouping", +function(){ +return 1e-8; +}); +Clazz.defineMethod(c$, "getState", +function(type){ +var s = new JU.SB(); +if (this.isValid) { +s.append(type); +if (!type.equals("mo") && !type.equals("nbo")) s.append(" ID ").append(JU.PT.esc(this.thisID)); +if (this.lattice != null) s.append(" lattice ").append(JU.Escape.eP(this.lattice)); +if (this.meshColix != 0) s.append(" color mesh ").append(JU.C.getHexCode(this.meshColix)); +s.append(this.getRendering()); +if (!this.visible) s.append(" hidden"); +if (this.bsDisplay != null) { +s.append(";\n ").append(type); +if (!type.equals("mo") && !type.equals("nbo")) s.append(" ID ").append(JU.PT.esc(this.thisID)); +s.append(" display " + JU.Escape.eBS(this.bsDisplay)); +}}return s.toString(); +}, "~S"); +Clazz.defineMethod(c$, "getRendering", +function(){ +var s = new JU.SB(); +s.append(this.fillTriangles ? " fill" : " noFill"); +s.append(this.drawTriangles ? " mesh" : " noMesh"); +s.append(this.showPoints ? " dots" : " noDots"); +s.append(this.frontOnly ? " frontOnly" : " notFrontOnly"); +if (this.showContourLines) s.append(" contourlines"); +if (this.showTriangles) s.append(" triangles"); +s.append(" ").append(JS.T.nameOf(this.lighting)); +if (this.isShell && !this.isTwoSided) s.append(" backshell"); +return s.toString(); +}); +Clazz.defineMethod(c$, "getOffsetVertices", +function(thePlane){ +if (this.altVertices != null && !this.recalcAltVertices) return this.altVertices; +this.altVertices = new Array(this.vc); +for (var i = 0; i < this.vc; i++) this.altVertices[i] = JU.P3.newP(this.vs[i]); + +var normal = null; +var val = 0; +if (this.scale3d != 0 && this.vvs != null && thePlane != null) { +normal = JU.V3.new3(thePlane.x, thePlane.y, thePlane.z); +normal.normalize(); +normal.scale(this.scale3d); +if (this.mat4 != null) { +var m3 = new JU.M3(); +this.mat4.getRotationScale(m3); +m3.rotate(normal); +}}for (var i = 0; i < this.vc; i++) { +if (this.vvs != null && Float.isNaN(val = this.vvs[i])) continue; +var pt = this.altVertices[i]; +if (this.mat4 != null) this.mat4.rotTrans(pt); +if (normal != null && val != 0) pt.scaleAdd2(val, normal, pt); +} +this.initialize(this.lighting, this.altVertices, null); +this.recalcAltVertices = false; +return this.altVertices; +}, "JU.P4"); +Clazz.defineMethod(c$, "setShowWithin", +function(showWithinPoints, showWithinDistance2, isWithinNot){ +if (showWithinPoints.size() == 0) { +this.bsDisplay = (isWithinNot ? JU.BSUtil.newBitSet2(0, this.vc) : null); +return; +}this.bsDisplay = new JU.BS(); +for (var i = 0; i < this.vc; i++) if (J.shape.Mesh.checkWithin(this.vs[i], showWithinPoints, showWithinDistance2, isWithinNot)) this.bsDisplay.set(i); + +}, "JU.Lst,~N,~B"); +c$.checkWithin = Clazz.defineMethod(c$, "checkWithin", +function(pti, withinPoints, withinDistance2, isWithinNot){ +if (withinPoints.size() != 0) for (var i = withinPoints.size(); --i >= 0; ) if (pti.distanceSquared(withinPoints.get(i)) <= withinDistance2) return !isWithinNot; + +return isWithinNot; +}, "JU.T3,JU.Lst,~N,~B"); +Clazz.defineMethod(c$, "getVertexIndexFromNumber", +function(vertexIndex){ +if (--vertexIndex < 0) vertexIndex = this.vc + vertexIndex; +return (this.vc <= vertexIndex ? this.vc - 1 : vertexIndex < 0 ? 0 : vertexIndex); +}, "~N"); +Clazz.defineMethod(c$, "getVisibleVertexBitSet", +function(){ +return this.getVisibleVBS(); +}); +Clazz.defineMethod(c$, "getVisibleVBS", +function(){ +var bs = new JU.BS(); +if (this.pc == 0 && this.bsSlabDisplay != null) JU.BSUtil.copy2(this.bsSlabDisplay, bs); + else for (var i = this.pc; --i >= 0; ) if (this.bsSlabDisplay == null || this.bsSlabDisplay.get(i)) { +var vertexIndexes = this.pis[i]; +if (vertexIndexes == null) continue; +bs.set(vertexIndexes[0]); +bs.set(vertexIndexes[1]); +bs.set(vertexIndexes[2]); +} +return bs; +}); +Clazz.defineMethod(c$, "setTokenProperty", +function(tokProp, bProp){ +switch (tokProp) { +case 1073742058: +case 1073741960: +this.frontOnly = (tokProp == 1073741960 ? bProp : !bProp); +return; +case 1073742057: +case 1073741862: +if (!this.isTwoSided && this.isShell != (tokProp == 1073741862 ? bProp : !bProp)) { +this.isShell = !this.isShell; +this.invertNormixes(); +}return; +case 1073741958: +case 1073741861: +case 1073741964: +this.setLighting(tokProp); +return; +case 1073742042: +case 1112150019: +this.showPoints = (tokProp == 1112150019 ? bProp : !bProp); +return; +case 1073742052: +case 1073742018: +this.drawTriangles = (tokProp == 1073742018 ? bProp : !bProp); +return; +case 1073742046: +case 1073741938: +this.fillTriangles = (tokProp == 1073741938 ? bProp : !bProp); +return; +case 1073742060: +case 1073742182: +this.showTriangles = (tokProp == 1073742182 ? bProp : !bProp); +return; +case 1073742039: +case 1073741898: +this.showContourLines = (tokProp == 1073741898 ? bProp : !bProp); +return; +} +}, "~N,~B"); +Clazz.defineMethod(c$, "getInfo", +function(isAll){ +var info = new java.util.Hashtable(); +info.put("id", this.thisID); +info.put("vertexCount", Integer.$valueOf(this.vc)); +info.put("haveQuads", Boolean.$valueOf(this.haveQuads)); +info.put("haveValues", Boolean.$valueOf(this.vvs != null)); +var np = this.pc; +if (isAll) { +if (this.vc > 0) { +info.put("vertices", JU.AU.arrayCopyPt(this.vs, this.vc)); +if (this.bsSlabDisplay != null) info.put("bsVertices", this.getVisibleVBS()); +}if (this.vvs != null) { +info.put("vertexValues", JU.AU.arrayCopyF(this.vvs, this.vc)); +}if (np > 0) { +var ii = J.shape.Mesh.nonNull(this.pis, np); +info.put("polygons", ii); +np = ii.length; +if (this.bsSlabDisplay != null) { +var bs = (ii.length == this.pc ? JU.BS.copy(this.bsSlabDisplay) : J.shape.Mesh.nonNullBS(this.bsSlabDisplay, this.pis, this.pc)); +info.put("bsPolygons", bs); +np = bs.cardinality(); +}}}info.put("polygonCount", Integer.$valueOf(np)); +return info; +}, "~B"); +c$.nonNullBS = Clazz.defineMethod(c$, "nonNullBS", +function(bsSlabDisplay, pis, pc){ +var bs = new JU.BS(); +for (var pt = 0, i = 0; i < pc; i++) { +if (pis[i] != null) { +if (bsSlabDisplay.get(i)) bs.set(pt); +pt++; +}} +return bs; +}, "JU.BS,~A,~N"); +c$.nonNull = Clazz.defineMethod(c$, "nonNull", +function(pis, pc){ +var n = 0; +for (var i = pc; --i >= 0; ) if (pis[i] != null) { +n++; +} +var ii = Clazz.newIntArray (n, 0); +if (n > 0) for (var pt = 0, i = 0; i < pc; i++) if (pis[i] != null) ii[pt++] = pis[i]; + +return ii; +}, "~A,~N"); +Clazz.defineMethod(c$, "getBoundingBox", +function(){ +return null; +}); +Clazz.defineMethod(c$, "getUnitCell", +function(){ +return null; +}); +Clazz.defineMethod(c$, "rotateTranslate", +function(q, offset, isAbsolute){ +if (q == null && offset == null) { +this.mat4 = null; +return; +}var m3 = new JU.M3(); +var v = new JU.V3(); +if (this.mat4 == null) this.mat4 = JU.M4.newM4(null); +this.mat4.getRotationScale(m3); +this.mat4.getTranslation(v); +if (q == null) { +if (isAbsolute) v.setT(offset); + else v.add(offset); +} else { +m3.mul(q.getMatrix()); +}this.mat4 = JU.M4.newMV(m3, v); +this.recalcAltVertices = true; +}, "JU.Quat,JU.T3,~B"); +Clazz.defineMethod(c$, "getNormalsTemp", +function(){ +return (this.normalsTemp == null ? (this.normalsTemp = this.getNormals(this.vs, null)) : this.normalsTemp); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/MeshCollection.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/MeshCollection.js new file mode 100755 index 000000000000..ef1824dcf8fb --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/MeshCollection.js @@ -0,0 +1,479 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.Shape"], "J.shape.MeshCollection", ["java.util.Hashtable", "JU.AU", "$.Lst", "$.P3", "$.PT", "$.SB", "JS.T", "J.shape.Mesh", "JU.C", "$.Escape", "$.Logger", "JV.StateManager"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.jvxlData = null; +this.meshCount = 0; +this.meshes = null; +this.currentMesh = null; +this.isFixed = false; +this.nUnnamed = 0; +this.colix = 0; +this.explicitID = false; +this.previousMeshID = null; +this.linkedMesh = null; +this.modelIndex = 0; +this.displayWithinDistance2 = 0; +this.isDisplayWithinNot = false; +this.displayWithinPoints = null; +this.bsDisplay = null; +this.title = null; +this.pickedMesh = null; +this.pickedModel = 0; +this.pickedVertex = 0; +this.pickedPt = null; +this.connections = null; +this.htObjects = null; +this.color = 0; +Clazz.instantialize(this, arguments);}, J.shape, "MeshCollection", J.shape.Shape); +Clazz.prepareFields (c$, function(){ +this.meshes = new Array(4); +}); +Clazz.defineMethod(c$, "setMesh", +function(thisID){ +this.linkedMesh = null; +if (thisID == null || JU.PT.isWild(thisID)) { +if (thisID != null) this.previousMeshID = thisID; +this.currentMesh = null; +return null; +}this.currentMesh = this.getMesh(thisID); +if (this.currentMesh == null) { +this.allocMesh(thisID, null); +} else if (thisID.equals("+PREVIOUS_MESH+")) { +this.linkedMesh = this.currentMesh.linkedMesh; +}if (this.currentMesh.thisID == null) { +if (this.nUnnamed == 0 || this.getMesh(this.myType + this.nUnnamed) != null) this.nUnnamed++; +this.currentMesh.thisID = this.myType + this.nUnnamed; +if (this.htObjects != null) this.htObjects.put(this.currentMesh.thisID.toUpperCase(), this.currentMesh); +}this.previousMeshID = this.currentMesh.thisID; +return this.currentMesh; +}, "~S"); +Clazz.defineMethod(c$, "allocMesh", +function(thisID, m){ +var index = this.meshCount++; +this.meshes = JU.AU.ensureLength(this.meshes, this.meshCount * 2); +this.currentMesh = this.meshes[index] = (m == null ? new J.shape.Mesh().mesh1(this.vwr, thisID, this.colix, index) : m); +this.currentMesh.color = this.color; +this.currentMesh.index = index; +if (thisID != null && this.htObjects != null) this.htObjects.put(thisID.toUpperCase(), this.currentMesh); +this.previousMeshID = null; +}, "~S,J.shape.Mesh"); +Clazz.defineMethod(c$, "merge", +function(mc){ +for (var i = 0; i < mc.meshCount; i++) { +if (mc.meshes[i] != null) { +var m = mc.meshes[i]; +var m0 = this.getMesh(m.thisID); +if (m0 == null) { +this.allocMesh(m.thisID, m); +} else { +this.meshes[m0.index] = m; +m.index = m0.index; +}}} +this.previousMeshID = null; +this.currentMesh = null; +}, "J.shape.MeshCollection"); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.setMeshColor(); +}); +Clazz.defineMethod(c$, "setMeshColor", +function(){ +this.colix = 5; +this.color = 0xFFFFFFFF; +}); +Clazz.defineMethod(c$, "setPropMC", +function(propertyName, value, bs){ +if ("init" === propertyName) { +this.title = null; +return; +}if ("link" === propertyName) { +if (this.meshCount >= 2 && this.currentMesh != null) this.currentMesh.linkedMesh = this.meshes[this.meshCount - 2]; +return; +}if ("lattice" === propertyName) { +if (this.currentMesh != null) this.currentMesh.lattice = value; +return; +}if ("symops" === propertyName) { +if (this.currentMesh != null) { +this.currentMesh.symops = value; +if (this.currentMesh.symops == null) return; +var n = this.currentMesh.symops.length; +this.currentMesh.symopColixes = Clazz.newShortArray (n, 0); +for (var i = n; --i >= 0; ) this.currentMesh.symopColixes[i] = JU.C.getColix(this.vwr.cm.ce.getArgbMinMax(i + 1, 1, n)); + +}return; +}if ("variables" === propertyName) { +if (this.currentMesh != null && this.currentMesh.scriptCommand != null && !this.currentMesh.scriptCommand.startsWith("{")) this.currentMesh.scriptCommand = "{\n" + JV.StateManager.getVariableList(value, 0, false, false) + "\n" + this.currentMesh.scriptCommand; +return; +}if ("thisID" === propertyName) { +var id = value; +this.setMesh(id); +this.checkExplicit(id); +return; +}if ("title" === propertyName) { +this.setTitle(value); +return; +}if ("delete" === propertyName) { +this.deleteMesh(); +return; +}if ("reset" === propertyName) { +var thisID = value; +if (this.setMesh(thisID) == null) return; +this.setMesh(thisID); +return; +}if ("color" === propertyName) { +if (value == null) return; +this.colix = JU.C.getColixO(value); +this.color = (value).intValue(); +if (this.currentMesh != null) { +this.currentMesh.color = this.color; +}this.setTokenProperty(1765808134, false, false); +return; +}if ("translucency" === propertyName) { +this.setTokenProperty(603979967, ((value).equals("translucent")), false); +return; +}if ("hidden" === propertyName) { +value = Integer.$valueOf((value).booleanValue() ? 1073742334 : 1073742335); +propertyName = "token"; +}if ("token" === propertyName) { +var tok = (value).intValue(); +var tok2 = 0; +var test = true; +switch (tok) { +case 1610625028: +case 1073742335: +case 1073742072: +case 1073741958: +case 1073741861: +case 1073741964: +case 1112150019: +case 1073741938: +case 1073741862: +case 1073742182: +case 1073741960: +break; +case 1073742334: +test = false; +tok = 1073742335; +break; +case 1073741898: +tok2 = 1073742018; +break; +case 1073742039: +test = false; +tok = 1073741898; +tok2 = 1073742018; +break; +case 1073742018: +tok2 = 1073741898; +break; +case 1073742052: +test = false; +tok = 1073742018; +tok2 = 1073741898; +break; +case 1073742042: +test = false; +tok = 1112150019; +break; +case 1073742046: +test = false; +tok = 1073741938; +break; +case 1073742057: +test = false; +tok = 1073741862; +break; +case 1073742060: +test = false; +tok = 1073742182; +break; +case 1073742058: +test = false; +tok = 1073741960; +break; +default: +JU.Logger.error("PROBLEM IN MESHCOLLECTION: token? " + JS.T.nameOf(tok)); +} +this.setTokenProperty(tok, test, false); +if (tok2 != 0) this.setTokenProperty(tok2, test, true); +return; +}this.setPropS(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "setTitle", +function(value){ +if ((typeof(value)=='string')) { +var nLine = 1; +var lines = value; +if (lines.length > 0) { +for (var i = lines.length; --i >= 0; ) if (lines.charAt(i) == '|') nLine++; + +this.title = new Array(nLine); +nLine = 0; +var i0 = -1; +for (var i = 0; i < lines.length; i++) if (lines.charAt(i) == '|') { +this.title[nLine++] = lines.substring(i0 + 1, i); +i0 = i; +} +this.title[nLine] = lines.substring(i0 + 1); +return this.title; +}value = null; +}return (this.title = (value == null ? null : value)); +}, "~O"); +Clazz.defineMethod(c$, "checkExplicit", +function(id){ +if (this.explicitID) return; +this.explicitID = (id != null && !id.equals("+PREVIOUS_MESH+")); +if (this.explicitID) this.previousMeshID = id; +}, "~S"); +Clazz.defineMethod(c$, "setTokenProperty", +function(tokProp, bProp, testD){ +if (tokProp == 1073742072) { +if (this.meshCount == 0) return; +for (var i = 0; i < this.meshCount; i++) this.meshes[i].visible = false; + +tokProp = 1073742335; +}if (this.currentMesh == null) { +var key = (this.explicitID && JU.PT.isWild(this.previousMeshID) ? this.previousMeshID : null); +var list = this.getMeshList(key, false); +for (var i = list.size(); --i >= 0; ) this.setMeshTokenProperty(list.get(i), tokProp, bProp, testD); + +if (list.size() == 1) this.currentMesh = list.get(0); +} else { +this.setMeshTokenProperty(this.currentMesh, tokProp, bProp, testD); +if (this.linkedMesh != null) this.setMeshTokenProperty(this.linkedMesh, tokProp, bProp, testD); +}}, "~N,~B,~B"); +Clazz.defineMethod(c$, "setMeshTokenProperty", +function(m, tokProp, bProp, testD){ +if (testD && (!m.havePlanarContours || m.drawTriangles == m.showContourLines)) return; +switch (tokProp) { +case 1610625028: +m.bsDisplay = this.bsDisplay; +if (this.bsDisplay == null && this.displayWithinPoints != null) m.setShowWithin(this.displayWithinPoints, this.displayWithinDistance2, this.isDisplayWithinNot); +return; +case 1073742335: +m.visible = bProp; +return; +case 1765808134: +m.colix = this.colix; +return; +case 603979967: +m.setTranslucent(bProp, this.translucentLevel); +if (bProp && m.bsSlabGhost != null) m.resetSlab(); +return; +default: +m.setTokenProperty(tokProp, bProp); +} +}, "J.shape.Mesh,~N,~B,~B"); +Clazz.defineMethod(c$, "getPropDataMC", +function(property, data){ +if (property === "keys") { +var keys = (Clazz.instanceOf(data[1],"JU.Lst") ? data[1] : new JU.Lst()); +data[1] = keys; +keys.addLast("count"); +keys.addLast("getCenter"); +}if (property === "getNames") { +var map = data[0]; +var withDollar = (data[1]).booleanValue(); +for (var i = this.meshCount; --i >= 0; ) if (this.meshes[i] != null && this.meshes[i].vc != 0) map.put((withDollar ? "$" : "") + this.meshes[i].thisID, JS.T.tokenOr); + +return true; +}if (property === "getVertices") { +var m = this.getMesh(data[0]); +if (m == null) return false; +data[1] = m.vs; +data[2] = m.getVisibleVertexBitSet(); +return true; +}if (property === "points") { +var m = this.getMesh(data[0]); +if (m == null) return false; +var bs = m.getVisibleVertexBitSet(); +var pts = new Array(bs.cardinality()); +for (var p = 0, i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +pts[p++] = m.vs[i]; +} +data[1] = pts; +return true; +}if (property === "checkID") { +var key = data[0]; +var list = this.getMeshList(key, true); +var m; +if (list.size() == 0 || (m = list.get(0)) == null) return false; +data[1] = m.thisID; +return true; +}if (property === "index") { +var m = this.getMesh(data[0]); +data[1] = Integer.$valueOf(m == null ? -1 : m.index); +return true; +}if (property === "getCenter") { +var id = data[0]; +var index = (data[1]).intValue(); +var m; +if ((m = this.getMesh(id)) == null || m.vs == null) return false; +if (index == 2147483647) data[2] = JU.P3.new3(m.index + 1, this.meshCount, m.vc); + else data[2] = m.vs[m.getVertexIndexFromNumber(index)]; +return true; +}return this.getPropShape(property, data); +}, "~S,~A"); +Clazz.defineMethod(c$, "getMeshList", +function(key, justOne){ +var list = new JU.Lst(); +if (key != null) key = (key.length == 0 ? null : key.toUpperCase()); +var isWild = JU.PT.isWild(key); +var id; +for (var i = this.meshCount; --i >= 0; ) { +if (key == null || (id = this.meshes[i].thisID.toUpperCase()).equals(key) || isWild && JU.PT.isMatch(id, key, true, true)) { +list.addLast(this.meshes[i]); +if (justOne) break; +}} +return list; +}, "~S,~B"); +Clazz.defineMethod(c$, "getPropMC", +function(property, index){ +var m = this.currentMesh; +if (index >= 0 && (index >= this.meshCount || (m = this.meshes[index]) == null)) return null; +if (property === "count") { +var n = 0; +for (var i = 0; i < this.meshCount; i++) if ((m = this.meshes[i]) != null && m.vc > 0) n++; + +return Integer.$valueOf(n); +}if (property === "bsVertices") { +if (m == null) return null; +var lst = new JU.Lst(); +lst.addLast(m.vs); +lst.addLast(m.getVisibleVBS()); +return lst; +}if (property === "ID") return (m == null ? null : m.thisID); +if (property.startsWith("list")) { +this.clean(); +var sb = new JU.SB(); +var k = 0; +var isNamed = property.length > 5; +var id = (property.equals("list") ? null : isNamed ? property.substring(5) : m == null ? null : m.thisID); +for (var i = 0; i < this.meshCount; i++) { +m = this.meshes[i]; +if (id != null && !id.equalsIgnoreCase(m.thisID)) continue; +sb.appendI((++k)).append(" id:" + m.thisID).append("; model:" + this.vwr.getModelNumberDotted(m.modelIndex)).append("; vertices:" + m.vc).append("; polygons:" + m.pc).append("; visible:" + m.visible); +var range = this.getProperty("dataRange", 0); +if (range != null) sb.append("; dataRange:").append(JU.Escape.eAF(range)); +if (m.title != null) { +var s = ""; +for (var j = 0; j < m.title.length; j++) s += (j == 0 ? "; title:" : " | ") + m.title[j]; + +if (s.length > 10000) s = s.substring(0, 10000) + "..."; +sb.append(s); +}sb.appendC('\n'); +if (isNamed) { +var info = this.getProperty("jvxlFileInfo", 0); +if (info != null) sb.append(info).appendC('\n'); +}} +return sb.toString(); +}if (property === "values") return this.getValues(m); +if (property === "vertices") return this.getVertices(m); +if (property === "info") { +if (m == null) return null; +var info = m.getInfo(false); +if (info != null && this.jvxlData != null) { +var ss = this.jvxlData.jvxlFileTitle; +if (ss != null) info.put("jvxlFileTitle", ss.trim()); +ss = this.jvxlData.jvxlFileSource; +if (ss != null) info.put("jvxlFileSource", ss); +ss = this.jvxlData.jvxlFileMessage; +if (ss != null) info.put("jvxlFileMessage", ss.trim()); +}return info; +}if (property === "data") return (m == null ? null : m.getInfo(true)); +return null; +}, "~S,~N"); +Clazz.defineMethod(c$, "getValues", +function(mesh){ +return (mesh == null ? null : mesh.vvs); +}, "J.shape.Mesh"); +Clazz.defineMethod(c$, "getVertices", +function(mesh){ +return (mesh == null ? null : mesh.vs); +}, "J.shape.Mesh"); +Clazz.defineMethod(c$, "clean", +function(){ +for (var i = this.meshCount; --i >= 0; ) if (this.meshes[i] == null || this.meshes[i].vc == 0) this.deleteMeshI(i); + +}); +Clazz.defineMethod(c$, "deleteMesh", +function(){ +if (this.explicitID && this.currentMesh != null) this.deleteMeshI(this.currentMesh.index); + else this.deleteMeshKey(this.explicitID && this.previousMeshID != null && JU.PT.isWild(this.previousMeshID) ? this.previousMeshID : null); +this.currentMesh = null; +}); +Clazz.defineMethod(c$, "deleteMeshKey", +function(key){ +if (key == null || key.length == 0) { +for (var i = this.meshCount; --i >= 0; ) this.meshes[i] = null; + +this.meshCount = 0; +this.nUnnamed = 0; +if (this.htObjects != null) this.htObjects.clear(); +} else { +var list = this.getMeshList(key, false); +var n = list.size(); +for (var i = 0; i < n; i++) this.deleteMeshI(list.get(i).index); + +}}, "~S"); +Clazz.defineMethod(c$, "deleteMeshI", +function(i){ +if (this.htObjects != null) this.htObjects.remove(this.meshes[i].thisID.toUpperCase()); +for (var j = i + 1; j < this.meshCount; ++j) this.meshes[--this.meshes[j].index] = this.meshes[j]; + +this.meshes[--this.meshCount] = null; +}, "~N"); +Clazz.defineMethod(c$, "resetObjects", +function(){ +this.htObjects.clear(); +for (var i = 0; i < this.meshCount; i++) { +var m = this.meshes[i]; +m.index = i; +this.htObjects.put(m.thisID.toUpperCase(), m); +} +}); +Clazz.defineMethod(c$, "getMesh", +function(thisID){ +var i = this.getIndexFromName(thisID); +return (i < 0 ? null : this.meshes[i]); +}, "~S"); +Clazz.overrideMethod(c$, "getIndexFromName", +function(id){ +if ("+PREVIOUS_MESH+".equals(id)) return (this.previousMeshID == null ? this.meshCount - 1 : this.getIndexFromName(this.previousMeshID)); +if (JU.PT.isWild(id)) { +var list = this.getMeshList(id, true); +return (list.size() == 0 ? -1 : list.get(0).index); +}if (this.htObjects != null) { +var m = this.htObjects.get(id.toUpperCase()); +return (m == null ? -1 : m.index); +}for (var i = this.meshCount; --i >= 0; ) { +if (this.meshes[i] != null && this.meshes[i].vc != 0 && id.equalsIgnoreCase(this.meshes[i].thisID)) return i; +} +return -1; +}, "~S"); +Clazz.overrideMethod(c$, "setModelVisibilityFlags", +function(bsModels){ +var bsDeleted = this.vwr.slm.bsDeleted; +for (var i = this.meshCount; --i >= 0; ) { +var mesh = this.meshes[i]; +mesh.visibilityFlags = (mesh.visible && mesh.isValid && (mesh.modelIndex < 0 || bsModels.get(mesh.modelIndex) && (mesh.atomIndex < 0 || !this.ms.isAtomHidden(mesh.atomIndex) && !(bsDeleted != null && bsDeleted.get(mesh.atomIndex)))) ? this.vf : 0); +} +}, "JU.BS"); +Clazz.defineMethod(c$, "setStatusPicked", +function(flag, v, map){ +this.vwr.setStatusAtomPicked(flag, "[\"" + this.myType + "\"," + JU.PT.esc(this.pickedMesh.thisID) + "," + +this.pickedModel + "," + this.pickedVertex + "," + v.x + "," + v.y + "," + v.z + "," + (this.pickedMesh.title == null ? "\"\"" : JU.PT.esc(this.pickedMesh.title[0])) + "]", map, false); +}, "~N,JU.T3,java.util.Map"); +Clazz.defineMethod(c$, "getPickedPoint", +function(v, modelIndex){ +var map = new java.util.Hashtable(); +if (v != null) { +map.put("pt", v); +map.put("modelIndex", Integer.$valueOf(modelIndex)); +map.put("model", this.vwr.getModelNumberDotted(modelIndex)); +map.put("id", this.pickedMesh.thisID); +map.put("vertex", Integer.$valueOf(this.pickedVertex + 1)); +map.put("type", this.myType); +}return map; +}, "JU.T3,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Shape.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Shape.js new file mode 100755 index 000000000000..5edbacba292a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Shape.js @@ -0,0 +1,183 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(null, "J.shape.Shape", ["J.c.PAL", "JU.C", "$.Logger", "JV.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.myType = null; +this.vwr = null; +this.ms = null; +this.shapeID = 0; +this.vf = 0; +this.translucentLevel = 0; +this.translucentAllowed = true; +this.isBioShape = false; +this.bsSizeSet = null; +this.bsColixSet = null; +Clazz.instantialize(this, arguments);}, J.shape, "Shape", null); +Clazz.defineMethod(c$, "initializeShape", +function(vwr, modelSet, shapeID){ +this.vwr = vwr; +this.shapeID = shapeID; +this.vf = JV.JC.getShapeVisibilityFlag(shapeID); +this.setModelSet(modelSet); +this.initShape(); +}, "JV.Viewer,JM.ModelSet,~N"); +Clazz.defineMethod(c$, "setModelVisibilityFlags", +function(bsModels){ +}, "JU.BS"); +Clazz.defineMethod(c$, "getSize", +function(atomIndex){ +return 0; +}, "~N"); +Clazz.defineMethod(c$, "getSizeG", +function(group){ +return 0; +}, "JM.Group"); +Clazz.defineMethod(c$, "replaceGroup", +function(g0, g1){ +}, "JM.Group,JM.Group"); +Clazz.defineMethod(c$, "setModelSet", +function(modelSet){ +this.ms = modelSet; +this.initModelSet(); +}, "JM.ModelSet"); +Clazz.defineMethod(c$, "initModelSet", +function(){ +}); +Clazz.defineMethod(c$, "setShapeSizeRD", +function(size, rd, bsSelected){ +if (rd == null) this.setSize(size, bsSelected); + else this.setSizeRD(rd, bsSelected); +}, "~N,J.atomdata.RadiusData,JU.BS"); +Clazz.defineMethod(c$, "setSize", +function(size, bsSelected){ +}, "~N,JU.BS"); +Clazz.defineMethod(c$, "setSizeRD", +function(rd, bsSelected){ +}, "J.atomdata.RadiusData,JU.BS"); +Clazz.defineMethod(c$, "setPropS", +function(propertyName, value, bsSelected){ +if (propertyName === "setProperties") { +this.setProperties(value); +return; +}if (propertyName === "translucentLevel") { +this.translucentLevel = (value).floatValue(); +return; +}if (propertyName === "refreshTrajectories") { +return; +}JU.Logger.warn("unassigned " + JV.JC.shapeClassBases[this.shapeID] + " + shape setProperty:" + propertyName + ":" + value); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "getPropertyData", +function(property, data){ +return this.getPropShape(property, data); +}, "~S,~A"); +Clazz.defineMethod(c$, "getPropShape", +function(property, data){ +if (Clazz.instanceOf(data[1], Integer)) { +var index = (data[1]).intValue(); +data[1] = this.getProperty(property, index); +return (data[1] != null); +}return false; +}, "~S,~A"); +Clazz.defineMethod(c$, "getProperty", +function(property, index){ +return null; +}, "~S,~N"); +Clazz.defineMethod(c$, "getIndexFromName", +function(thisID){ +return -1; +}, "~S"); +Clazz.defineMethod(c$, "wasClicked", +function(x, y){ +return false; +}, "~N,~N"); +Clazz.defineMethod(c$, "findNearestAtomIndex", +function(xMouse, yMouse, closest, bsNot){ +}, "~N,~N,~A,JU.BS"); +Clazz.defineMethod(c$, "checkBoundsMinMax", +function(pointMin, pointMax){ +}, "JU.P3,JU.P3"); +Clazz.defineMethod(c$, "setAtomClickability", +function(){ +}); +Clazz.defineMethod(c$, "checkObjectClicked", +function(x, y, modifiers, bsVisible, drawPicking){ +return null; +}, "~N,~N,~N,JU.BS,~B"); +Clazz.defineMethod(c$, "checkObjectHovered", +function(x, y, bsVisible){ +return false; +}, "~N,~N,JU.BS"); +Clazz.defineMethod(c$, "checkObjectDragged", +function(prevX, prevY, x, y, dragAction, bsVisible){ +return false; +}, "~N,~N,~N,~N,~N,JU.BS"); +Clazz.defineMethod(c$, "coordinateInRange", +function(x, y, vertex, dmin2, ptXY){ +this.vwr.tm.transformPtScr(vertex, ptXY); +var d2 = (x - ptXY.x) * (x - ptXY.x) + (y - ptXY.y) * (y - ptXY.y); +return (d2 <= dmin2 ? d2 : -1); +}, "~N,~N,JU.T3,~N,JU.P3i"); +Clazz.defineMethod(c$, "getColixI", +function(colix, paletteID, atomIndex){ +return this.getColixA(colix, paletteID, this.ms.at[atomIndex]); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "getColixA", +function(colix, paletteID, atom){ +return (colix == 2 ? this.vwr.cm.getColixAtomPalette(atom, paletteID) : colix); +}, "~N,~N,JM.Atom"); +Clazz.defineMethod(c$, "getColixB", +function(colix, pid, bond){ +return (colix == 2 ? this.vwr.cm.getColixBondPalette(bond, pid) : colix); +}, "~N,~N,JM.Bond"); +Clazz.defineMethod(c$, "getShapeDetail", +function(){ +return null; +}); +c$.getColix = Clazz.defineMethod(c$, "getColix", +function(colixes, i, atom){ +return JU.C.getColixInherited((colixes == null || i >= colixes.length ? 0 : colixes[i]), atom.colixAtom); +}, "~A,~N,JM.Atom"); +c$.getFontCommand = Clazz.defineMethod(c$, "getFontCommand", +function(type, font){ +if (font == null) return ""; +return "font " + type + " " + font.getInfo(); +}, "~S,JU.Font"); +c$.getColorCommandUnk = Clazz.defineMethod(c$, "getColorCommandUnk", +function(type, colix, translucentAllowed){ +return J.shape.Shape.getColorCommand(type, J.c.PAL.UNKNOWN.id, colix, translucentAllowed); +}, "~S,~N,~B"); +c$.getColorCommand = Clazz.defineMethod(c$, "getColorCommand", +function(type, pid, colix, translucentAllowed){ +if (pid == J.c.PAL.UNKNOWN.id && colix == 0) return ""; +var s = (pid == J.c.PAL.UNKNOWN.id && colix == 0 ? "" : (translucentAllowed ? J.shape.Shape.getTranslucentLabel(colix) + " " : "") + (pid != J.c.PAL.UNKNOWN.id && !J.c.PAL.isPaletteVariable(pid) ? J.c.PAL.getPaletteName(pid) : J.shape.Shape.encodeColor(colix))); +return "color " + type + " " + s; +}, "~S,~N,~N,~B"); +c$.encodeColor = Clazz.defineMethod(c$, "encodeColor", +function(colix){ +return (JU.C.isColixColorInherited(colix) ? "none" : JU.C.getHexCode(colix)); +}, "~N"); +c$.getTranslucentLabel = Clazz.defineMethod(c$, "getTranslucentLabel", +function(colix){ +return (JU.C.isColixTranslucent(colix) ? JU.C.getColixTranslucencyLabel(colix) : "opaque"); +}, "~N"); +c$.appendCmd = Clazz.defineMethod(c$, "appendCmd", +function(s, cmd){ +if (cmd.length == 0) return; +s.append(" ").append(cmd).append(";\n"); +}, "JU.SB,~S"); +Clazz.defineMethod(c$, "setProperties", +function(value){ +var bsSelected = this.vwr.bsA(); +if (Clazz.instanceOf(value,"JU.Lst")) { +var propertyList = value; +while (propertyList.size() > 0) { +var data = propertyList.removeItemAt(0); +this.setProperty((data[0]).intern(), data[1], bsSelected); +} +} else { +var data = (value); +for (var i = 0, n = data.length; i < n; i++) { +this.setProperty((data[i][0]).intern(), data[i][1], bsSelected); +} +}}, "~O"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Stars.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Stars.js new file mode 100755 index 000000000000..deb37d8c5246 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Stars.js @@ -0,0 +1,9 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.AtomShape"], "J.shape.Stars", null, function(){ +var c$ = Clazz.declareType(J.shape, "Stars", J.shape.AtomShape); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +this.setPropAS(propertyName, value, bs); +}, "~S,~O,JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Sticks.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Sticks.js new file mode 100755 index 000000000000..b1a90f26a07f --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Sticks.js @@ -0,0 +1,168 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.Shape", "JU.P3i"], "J.shape.Sticks", ["java.util.Hashtable", "JU.BS", "$.P3", "J.c.PAL", "JU.BSUtil", "$.C", "$.Edge", "$.Escape"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.myMask = 0; +this.reportAll = false; +this.bsOrderSet = null; +this.selectedBonds = null; +this.closestAtom = null; +this.ptXY = null; +Clazz.instantialize(this, arguments);}, J.shape, "Sticks", J.shape.Shape); +Clazz.prepareFields (c$, function(){ +this.closestAtom = Clazz.newIntArray (1, 0); +this.ptXY = new JU.P3i(); +}); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.myMask = 1023; +this.reportAll = false; +}); +Clazz.overrideMethod(c$, "setSize", +function(size, bsSelected){ +if (size == 2147483647) { +this.selectedBonds = JU.BSUtil.copy(bsSelected); +return; +}if (size == -2147483648) { +if (this.bsOrderSet == null) this.bsOrderSet = new JU.BS(); +this.bsOrderSet.or(bsSelected); +return; +}if (this.bsSizeSet == null) this.bsSizeSet = new JU.BS(); +var iter = (this.selectedBonds != null ? this.ms.getBondIterator(this.selectedBonds) : this.ms.getBondIteratorForType(this.myMask, bsSelected)); +var mad = size; +while (iter.hasNext()) { +this.bsSizeSet.set(iter.nextIndex()); +iter.next().setMad(mad); +} +}, "~N,JU.BS"); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("type" === propertyName) { +this.myMask = (value).intValue(); +return; +}if ("reportAll" === propertyName) { +this.reportAll = true; +return; +}if ("reset" === propertyName) { +this.bsOrderSet = null; +this.bsSizeSet = null; +this.bsColixSet = null; +this.selectedBonds = null; +return; +}if ("bondOrder" === propertyName) { +if (this.bsOrderSet == null) this.bsOrderSet = new JU.BS(); +var order = (value).intValue(); +var iter = (this.selectedBonds != null ? this.ms.getBondIterator(this.selectedBonds) : this.ms.getBondIteratorForType(65535, bs)); +while (iter.hasNext()) { +this.bsOrderSet.set(iter.nextIndex()); +iter.next().setOrder(order); +} +return; +}if ("color" === propertyName) { +if (this.bsColixSet == null) this.bsColixSet = new JU.BS(); +var colix = JU.C.getColixO(value); +var pal = (Clazz.instanceOf(value,"J.c.PAL") ? value : null); +if (pal === J.c.PAL.TYPE || pal === J.c.PAL.ENERGY) { +var isEnergy = (pal === J.c.PAL.ENERGY); +var iter = (this.selectedBonds != null ? this.ms.getBondIterator(this.selectedBonds) : this.ms.getBondIteratorForType(this.myMask, bs)); +while (iter.hasNext()) { +this.bsColixSet.set(iter.nextIndex()); +var bond = iter.next(); +bond.colix = (isEnergy ? this.getColixB(colix, pal.id, bond) : JU.C.getColix(JU.Edge.getArgbHbondType(bond.order))); +} +return; +}if (colix == 2 && pal !== J.c.PAL.CPK) return; +var iter = (this.selectedBonds != null ? this.ms.getBondIterator(this.selectedBonds) : this.ms.getBondIteratorForType(this.myMask, bs)); +while (iter.hasNext()) { +var iBond = iter.nextIndex(); +iter.next().colix = colix; +this.bsColixSet.setBitTo(iBond, (colix != 0 && colix != 2)); +} +return; +}if ("translucency" === propertyName) { +if (this.bsColixSet == null) this.bsColixSet = new JU.BS(); +var isTranslucent = ((value).equals("translucent")); +var iter = (this.selectedBonds != null ? this.ms.getBondIterator(this.selectedBonds) : this.ms.getBondIteratorForType(this.myMask, bs)); +while (iter.hasNext()) { +this.bsColixSet.set(iter.nextIndex()); +iter.next().setTranslucent(isTranslucent, this.translucentLevel); +} +return; +}if ("deleteModelAtoms" === propertyName) { +return; +}this.setPropS(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "getProperty", +function(property, index){ +if (property.equals("selectionState")) return (this.selectedBonds != null ? "select BONDS " + JU.Escape.eBS(this.selectedBonds) + "\n" : ""); +if (property.equals("sets")) return Clazz.newArray(-1, [this.bsOrderSet, this.bsSizeSet, this.bsColixSet]); +return null; +}, "~S,~N"); +Clazz.overrideMethod(c$, "setAtomClickability", +function(){ +var bonds = this.ms.bo; +for (var i = this.ms.bondCount; --i >= 0; ) { +var bond = bonds[i]; +if ((bond.shapeVisibilityFlags & this.vf) == 0 || this.ms.isAtomHidden(bond.atom1.i) || this.ms.isAtomHidden(bond.atom2.i)) continue; +bond.atom1.setClickable(this.vf); +bond.atom2.setClickable(this.vf); +} +}); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +return null; +}); +Clazz.overrideMethod(c$, "checkObjectHovered", +function(x, y, bsVisible){ +var pt = new JU.P3(); +var bond = this.findPickedBond(x, y, bsVisible, pt, this.closestAtom); +if (bond == null) return false; +this.vwr.highlightBond(bond.index, this.closestAtom[0], x, y); +return true; +}, "~N,~N,JU.BS"); +Clazz.overrideMethod(c$, "checkObjectClicked", +function(x, y, modifiers, bsVisible, drawPicking){ +var pt = new JU.P3(); +var bond = this.findPickedBond(x, y, bsVisible, pt, this.closestAtom); +if (bond == null) return null; +var modelIndex = bond.atom1.mi; +var info = bond.getIdentity(); +var map = new java.util.Hashtable(); +map.put("pt", pt); +map.put("index", Integer.$valueOf(bond.index)); +map.put("modelIndex", Integer.$valueOf(modelIndex)); +map.put("model", this.vwr.getModelNumberDotted(modelIndex)); +map.put("type", "bond"); +map.put("info", info); +this.vwr.setStatusAtomPicked(-3, "[\"bond\",\"" + bond.getIdentity() + "\"," + pt.x + "," + pt.y + "," + pt.z + "]", map, false); +return map; +}, "~N,~N,~N,JU.BS,~B"); +Clazz.defineMethod(c$, "findPickedBond", +function(x, y, bsVisible, pt, closestAtom){ +var dmin2 = 100; +if (this.vwr.gdata.isAntialiased()) { +x <<= 1; +y <<= 1; +dmin2 <<= 1; +}var pickedBond = null; +var v = new JU.P3(); +var bonds = this.ms.bo; +for (var i = this.ms.bondCount; --i >= 0; ) { +var bond = bonds[i]; +if (bond.shapeVisibilityFlags == 0) continue; +var atom1 = bond.atom1; +var atom2 = bond.atom2; +if (!atom1.checkVisible() || !atom2.checkVisible()) continue; +v.ave(atom1, atom2); +var d2 = this.coordinateInRange(x, y, v, dmin2, this.ptXY); +if (d2 >= 0 && Math.abs(atom1.sY - atom2.sY) + Math.abs(atom1.sX - atom2.sX) > 40) { +var f = 1 * (this.ptXY.x - atom1.sX) / (atom2.sX - atom1.sX); +if (f < 0.4 || f > 0.6) continue; +dmin2 = d2; +pickedBond = bond; +if (closestAtom != null) closestAtom[0] = (f < 0.5 ? atom1.i : atom2.i); +pt.setT(v); +}} +return pickedBond; +}, "~N,~N,JU.BS,JU.P3,~A"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/TextShape.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/TextShape.js new file mode 100755 index 000000000000..09b9427a8504 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/TextShape.js @@ -0,0 +1,191 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.Shape", "java.util.Hashtable"], "J.shape.TextShape", ["JU.P3", "$.PT", "JU.C", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.objects = null; +this.currentObject = null; +this.currentFont = null; +this.currentColor = null; +this.currentBgColor = null; +this.currentTranslucentLevel = 0; +this.currentBgTranslucentLevel = 0; +this.thisID = null; +this.isHover = false; +this.isAll = false; +Clazz.instantialize(this, arguments);}, J.shape, "TextShape", J.shape.Shape); +Clazz.prepareFields (c$, function(){ +this.objects = new java.util.Hashtable(); +}); +Clazz.defineMethod(c$, "setPropTS", +function(propertyName, value, bsSelected){ +if ("text" === propertyName) { +var text = value; +if (this.currentObject != null) { +this.currentObject.setText(text); +} else if (this.isAll) { +for (var t, $t = this.objects.values().iterator (); $t.hasNext()&& ((t = $t.next ()) || true);) t.setText(text); + +}return; +}if ("font" === propertyName) { +this.currentFont = value; +if (this.currentObject != null) { +this.currentObject.setFont(this.currentFont, true); +this.currentObject.setFontScale(0); +} else if (this.isAll) { +for (var t, $t = this.objects.values().iterator (); $t.hasNext()&& ((t = $t.next ()) || true);) t.setFont(this.currentFont, true); + +}return; +}if ("allOff" === propertyName) { +this.currentObject = null; +this.isAll = true; +this.objects = new java.util.Hashtable(); +return; +}if ("delete" === propertyName) { +if (Clazz.instanceOf(value,"JM.Text")) { +this.currentObject = value; +}if (this.currentObject != null) { +this.objects.remove(this.currentObject.target); +this.currentObject = null; +} else if (this.isAll || this.thisID != null) { +var e = this.objects.values().iterator(); +while (e.hasNext()) { +var text = e.next(); +if (this.isAll || JU.PT.isMatch(text.target.toUpperCase(), this.thisID, true, true)) { +e.remove(); +}} +}return; +}if ("off" === propertyName) { +if (this.isAll) { +this.objects = new java.util.Hashtable(); +this.isAll = false; +this.currentObject = null; +return; +}if (this.currentObject != null) { +this.objects.remove(this.currentObject.target); +this.currentObject = null; +} else if (this.thisID != null) { +var e = this.objects.values().iterator(); +while (e.hasNext()) { +var text = e.next(); +if (this.isAll || JU.PT.isMatch(text.target.toUpperCase(), this.thisID, true, true)) { +e.remove(); +}} +}}if ("model" === propertyName) { +var modelIndex = (value).intValue(); +if (this.currentObject != null) { +this.currentObject.modelIndex = modelIndex; +} else if (this.isAll) { +for (var t, $t = this.objects.values().iterator (); $t.hasNext()&& ((t = $t.next ()) || true);) t.modelIndex = modelIndex; + +}return; +}if ("align" === propertyName) { +var align = value; +if (this.currentObject != null) { +if (!this.currentObject.setAlignmentLCR(align)) JU.Logger.error("unrecognized align:" + align); +} else if (this.isAll) { +for (var obj, $obj = this.objects.values().iterator (); $obj.hasNext()&& ((obj = $obj.next ()) || true);) obj.setAlignmentLCR(align); + +}return; +}if ("bgcolor" === propertyName) { +this.currentBgColor = value; +if (this.currentObject != null) { +this.currentObject.bgcolix = JU.C.getColixO(value); +} else if (this.isAll) { +var e = this.objects.values().iterator(); +while (e.hasNext()) { +e.next().bgcolix = JU.C.getColixO(value); +} +}return; +}if ("color" === propertyName) { +this.currentColor = value; +if (this.currentObject != null) { +this.currentObject.colix = JU.C.getColixO(value); +} else if (this.isAll || this.thisID != null) { +var e = this.objects.values().iterator(); +while (e.hasNext()) { +var text = e.next(); +if (this.isAll || JU.PT.isMatch(text.target.toUpperCase(), this.thisID, true, true)) { +text.colix = JU.C.getColixO(value); +}} +}return; +}if ("target" === propertyName) { +var target = value; +this.isAll = target.equals("all"); +if (this.isAll || target.equals("none")) { +this.currentObject = null; +}return; +}var isBackground; +if ((isBackground = ("bgtranslucency" === propertyName)) || "translucency" === propertyName) { +var isTranslucent = ("translucent" === value); +if (isBackground) this.currentBgTranslucentLevel = (isTranslucent ? this.translucentLevel : 0); + else this.currentTranslucentLevel = (isTranslucent ? this.translucentLevel : 0); +if (this.currentObject != null) { +this.currentObject.setTranslucent(this.translucentLevel, isBackground); +} else if (this.isAll) { +var e = this.objects.values().iterator(); +while (e.hasNext()) { +e.next().setTranslucent(this.translucentLevel, isBackground); +} +}return; +}if (propertyName === "deleteModelAtoms") { +var modelIndex = ((value)[2])[0]; +var e = this.objects.values().iterator(); +while (e.hasNext()) { +var text = e.next(); +if (text.modelIndex == modelIndex) { +e.remove(); +} else if (text.modelIndex > modelIndex) { +text.modelIndex--; +}} +return; +}this.setPropS(propertyName, value, bsSelected); +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +return null; +}); +Clazz.overrideMethod(c$, "initModelSet", +function(){ +this.currentObject = null; +this.isAll = false; +}); +Clazz.overrideMethod(c$, "setModelVisibilityFlags", +function(bsModels){ +if (!this.isHover) for (var t, $t = this.objects.values().iterator (); $t.hasNext()&& ((t = $t.next ()) || true);) t.visible = (t.modelIndex < 0 || bsModels.get(t.modelIndex) && (!t.thisModelOnly || bsModels.cardinality() == 1 && t.modelIndex == this.vwr.am.cmi)); + +}, "JU.BS"); +Clazz.overrideMethod(c$, "checkObjectClicked", +function(x, y, modifiers, bsVisible, drawPicking){ +if (this.isHover || modifiers == 0) return null; +var isAntialiased = this.vwr.antialiased; +for (var obj, $obj = this.objects.values().iterator (); $obj.hasNext()&& ((obj = $obj.next ()) || true);) { +if (obj.checkObjectClicked(isAntialiased, x, y, bsVisible)) { +if (obj.script != null) this.vwr.evalStringQuiet(obj.script); +var map = new java.util.Hashtable(); +map.put("pt", (obj.xyz == null ? new JU.P3() : obj.xyz)); +var modelIndex = obj.modelIndex; +if (modelIndex < 0) modelIndex = 0; +map.put("modelIndex", Integer.$valueOf(modelIndex)); +map.put("model", this.vwr.getModelNumberDotted(modelIndex)); +map.put("id", obj.target); +map.put("type", "echo"); +return map; +}} +return null; +}, "~N,~N,~N,JU.BS,~B"); +Clazz.overrideMethod(c$, "checkObjectHovered", +function(x, y, bsVisible){ +if (this.isHover) return false; +var haveScripts = false; +var isAntialiased = this.vwr.antialiased; +for (var obj, $obj = this.objects.values().iterator (); $obj.hasNext()&& ((obj = $obj.next ()) || true);) { +if (obj.script != null) { +haveScripts = true; +if (obj.checkObjectClicked(isAntialiased, x, y, bsVisible)) { +this.vwr.setCursor(12); +return true; +}}} +if (haveScripts) this.vwr.setCursor(0); +return false; +}, "~N,~N,JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shape/Uccage.js b/config/plugins/visualizations/jmol/static/j2s/J/shape/Uccage.js new file mode 100755 index 000000000000..8a5a27cb13a3 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shape/Uccage.js @@ -0,0 +1,15 @@ +Clazz.declarePackage("J.shape"); +Clazz.load(["J.shape.FontLineShape"], "J.shape.Uccage", null, function(){ +var c$ = Clazz.declareType(J.shape, "Uccage", J.shape.FontLineShape); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +this.setPropFLS(propertyName, value); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shape.Uccage, "initShape", []); +this.font3d = this.vwr.gdata.getFont3D(16); +this.myType = "unitcell"; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Backbone.js b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Backbone.js new file mode 100755 index 000000000000..2da5d2ebf6da --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Backbone.js @@ -0,0 +1,78 @@ +Clazz.declarePackage("J.shapebio"); +Clazz.load(["J.shapebio.BioShapeCollection"], "J.shapebio.Backbone", ["JU.BS"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.bsSelected = null; +Clazz.instantialize(this, arguments);}, J.shapebio, "Backbone", J.shapebio.BioShapeCollection); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.madOn = 1; +this.madHelixSheet = 1500; +this.madTurnRandom = 500; +this.madDnaRna = 2000; +this.isActive = true; +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bsSelected){ +if ("bitset" === propertyName) { +this.bsSelected = value; +return; +}this.setPropBSC(propertyName, value, bsSelected); +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "setShapeSizeRD", +function(size, rd, bsSelected){ +var mad = size; +this.initialize(); +var useThisBsSelected = (this.bsSelected != null); +if (useThisBsSelected) bsSelected = this.bsSelected; +for (var iShape = this.bioShapes.length; --iShape >= 0; ) { +var bioShape = this.bioShapes[iShape]; +if (bioShape.monomerCount == 0) continue; +var bondSelectionModeOr = this.vwr.getBoolean(603979812); +var atomIndices = bioShape.bioPolymer.getLeadAtomIndices(); +var isVisible = (mad != 0); +if (bioShape.bsSizeSet == null) bioShape.bsSizeSet = new JU.BS(); +bioShape.isActive = true; +var n = bioShape.monomerCount; +for (var i = n - (bioShape.bioPolymer.isCyclic() ? 0 : 1); --i >= 0; ) { +var index1 = atomIndices[i]; +var index2 = atomIndices[(i + 1) % n]; +var isAtom1 = bsSelected.get(index1); +var isAtom2 = bsSelected.get(index2); +if (isAtom1 && isAtom2 || useThisBsSelected && isAtom1 || bondSelectionModeOr && (isAtom1 || isAtom2)) { +bioShape.monomers[i].setShapeVisibility(this.vf, isVisible); +var atomA = this.ms.at[index1]; +if (rd != null) { +if (Float.isNaN(rd.values[index1]) || Float.isNaN(rd.values[index2])) continue; +mad = Clazz.floatToShort((rd.values[index1] + rd.values[index2]) * 1000); +isVisible = (mad != 0); +}var atomB = this.ms.at[index2]; +var wasVisible = (bioShape.mads[i] != 0); +if (wasVisible != isVisible) { +this.addDisplayedBackbone(atomA, isVisible); +this.addDisplayedBackbone(atomB, isVisible); +}bioShape.mads[i] = mad; +bioShape.bsSizeSet.setBitTo(i, isVisible); +bioShape.bsSizeDefault.setBitTo(i, mad == -1); +}} +} +if (useThisBsSelected) this.bsSelected = null; +}, "~N,J.atomdata.RadiusData,JU.BS"); +Clazz.defineMethod(c$, "addDisplayedBackbone", +function(a, isVisible){ +a.nBackbonesDisplayed += (isVisible ? 1 : -1); +a.setShapeVisibility(this.vf, isVisible); +}, "JM.Atom,~B"); +Clazz.overrideMethod(c$, "setAtomClickability", +function(){ +if (this.bioShapes == null) return; +for (var iShape = this.bioShapes.length; --iShape >= 0; ) { +var bioShape = this.bioShapes[iShape]; +var atomIndices = bioShape.bioPolymer.getLeadAtomIndices(); +for (var i = bioShape.monomerCount; --i >= 0; ) { +var atom = this.ms.at[atomIndices[i]]; +if (atom.nBackbonesDisplayed > 0 && !this.ms.isAtomHidden(atom.i)) atom.setClickable(this.vf); +} +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapebio/BioShape.js b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/BioShape.js new file mode 100755 index 000000000000..573dceb311e5 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/BioShape.js @@ -0,0 +1,235 @@ +Clazz.declarePackage("J.shapebio"); +Clazz.load(["J.shape.AtomShape"], "J.shapebio.BioShape", ["JU.AU", "$.BS", "$.PT", "J.c.PAL", "$.STR", "JU.BSUtil", "$.C", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.modelIndex = 0; +this.modelVisibilityFlags = 0; +this.shape = null; +this.bioPolymer = null; +this.meshes = null; +this.meshReady = null; +this.colixesBack = null; +this.monomers = null; +this.wingVectors = null; +this.leadAtomIndices = null; +this.hasBfactorRange = false; +this.bfactorMin = 0; +this.bfactorMax = 0; +this.range = 0; +this.floatRange = 0; +Clazz.instantialize(this, arguments);}, J.shapebio, "BioShape", J.shape.AtomShape); +Clazz.makeConstructor(c$, +function(shape, modelIndex, bioPolymer){ +Clazz.superConstructor (this, J.shapebio.BioShape, []); +this.shape = shape; +this.modelIndex = modelIndex; +this.bioPolymer = bioPolymer; +this.isActive = shape.isActive; +this.bsSizeDefault = new JU.BS(); +this.monomerCount = bioPolymer.monomerCount; +if (this.monomerCount > 0) { +this.colixes = Clazz.newShortArray (this.monomerCount, 0); +this.paletteIDs = Clazz.newByteArray (this.monomerCount, 0); +this.mads = Clazz.newShortArray (this.monomerCount + 1, 0); +this.monomers = bioPolymer.monomers; +this.meshReady = Clazz.newBooleanArray(this.monomerCount, false); +this.meshes = new Array(this.monomerCount); +this.wingVectors = bioPolymer.getWingVectors(); +this.leadAtomIndices = bioPolymer.getLeadAtomIndices(); +}}, "J.shapebio.BioShapeCollection,~N,JM.BioPolymer"); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bsSelected){ +this.setPropAS(propertyName, value, bsSelected); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "calcBfactorRange", +function(){ +this.bfactorMin = this.bfactorMax = this.monomers[0].getLeadAtom().getBfactor100(); +for (var i = this.monomerCount; --i > 0; ) { +var bfactor = this.monomers[i].getLeadAtom().getBfactor100(); +if (bfactor < this.bfactorMin) this.bfactorMin = bfactor; + else if (bfactor > this.bfactorMax) this.bfactorMax = bfactor; +} +this.range = this.bfactorMax - this.bfactorMin; +this.floatRange = this.range; +this.hasBfactorRange = true; +}); +Clazz.defineMethod(c$, "calcMeanPositionalDisplacement", +function(bFactor100){ +return Clazz.doubleToShort(Math.sqrt(bFactor100 / 7895.6835208714865) * 1000); +}, "~N"); +Clazz.overrideMethod(c$, "findNearestAtomIndex", +function(xMouse, yMouse, closest, bsNot){ +this.bioPolymer.findNearestAtomIndex(xMouse, yMouse, closest, this.mads, this.shape.vf, bsNot); +}, "~N,~N,~A,JU.BS"); +Clazz.defineMethod(c$, "setMad", +function(mad, bsSelected, values){ +if (this.monomerCount < 2) return; +this.isActive = true; +if (this.bsSizeSet == null) this.bsSizeSet = new JU.BS(); +var flag = this.shape.vf; +var setRingVis = (flag == 32768 && Clazz.instanceOf(this.bioPolymer,"JM.NucleicPolymer")); +for (var i = this.monomerCount; --i >= 0; ) { +var leadAtomIndex = this.leadAtomIndices[i]; +if (bsSelected.get(leadAtomIndex)) { +if (values != null && leadAtomIndex < values.length) { +if (Float.isNaN(values[leadAtomIndex])) continue; +mad = Clazz.floatToShort(values[leadAtomIndex] * 2000); +}var isVisible = ((this.mads[i] = this.getMad(i, mad)) > 0); +this.bsSizeSet.setBitTo(i, isVisible); +this.monomers[i].setShapeVisibility(flag, isVisible); +this.shape.atoms[leadAtomIndex].setShapeVisibility(flag, isVisible); +if (setRingVis) (this.monomers[i]).setRingsVisible(isVisible); +this.falsifyNearbyMesh(i); +}} +if (this.monomerCount > 1) this.mads[this.monomerCount] = this.mads[this.monomerCount - 1]; +}, "~N,JU.BS,~A"); +Clazz.defineMethod(c$, "getMad", +function(groupIndex, mad){ +this.bsSizeDefault.setBitTo(groupIndex, mad == -1 || mad == -2); +if (mad >= 0) return mad; +switch (mad) { +case -1: +case -2: +if (mad == -1 && this.shape.madOn >= 0) return this.shape.madOn; +switch (this.monomers[groupIndex].getProteinStructureType()) { +case J.c.STR.SHEET: +case J.c.STR.HELIX: +return this.shape.madHelixSheet; +case J.c.STR.DNA: +case J.c.STR.RNA: +return this.shape.madDnaRna; +default: +return this.shape.madTurnRandom; +} +case -3: +{ +if (!this.hasBfactorRange) this.calcBfactorRange(); +var atom = this.monomers[groupIndex].getLeadAtom(); +var bfactor100 = atom.getBfactor100(); +var scaled = bfactor100 - this.bfactorMin; +if (this.range == 0) return 0; +var percentile = scaled / this.floatRange; +if (percentile < 0 || percentile > 1) JU.Logger.error("Que ha ocurrido? " + percentile); +return Clazz.floatToShort((1750 * percentile) + 250); +}case -4: +{ +var atom = this.monomers[groupIndex].getLeadAtom(); +return (2 * this.calcMeanPositionalDisplacement(atom.getBfactor100())); +}} +JU.Logger.error("unrecognized setMad(" + mad + ")"); +return 0; +}, "~N,~N"); +Clazz.defineMethod(c$, "falsifyMesh", +function(){ +if (this.meshReady == null) return; +for (var i = 0; i < this.monomerCount; i++) this.meshReady[i] = false; + +}); +Clazz.defineMethod(c$, "falsifyNearbyMesh", +function(index){ +if (this.meshReady == null) return; +this.meshReady[index] = false; +if (index > 0) this.meshReady[index - 1] = false; +if (index < this.monomerCount - 1) this.meshReady[index + 1] = false; +}, "~N"); +Clazz.defineMethod(c$, "setColixBS", +function(colix, pid, bsSelected){ +this.isActive = true; +if (this.bsColixSet == null) this.bsColixSet = JU.BS.newN(this.monomerCount); +for (var i = this.monomerCount; --i >= 0; ) { +var atomIndex = this.leadAtomIndices[i]; +if (bsSelected.get(atomIndex)) { +this.colixes[i] = this.shape.getColixI(colix, pid, atomIndex); +if (this.colixesBack != null && this.colixesBack.length > i) this.colixesBack[i] = 0; +this.paletteIDs[i] = pid; +this.bsColixSet.setBitTo(i, this.colixes[i] != 0); +}} +}, "~N,~N,JU.BS"); +Clazz.defineMethod(c$, "setColixBack", +function(colix, bsSelected){ +if (this.colixesBack == null) this.colixesBack = Clazz.newShortArray (this.colixes.length, 0); +if (this.colixesBack.length < this.colixes.length) this.colixesBack = JU.AU.ensureLengthShort(this.colixesBack, this.colixes.length); +for (var i = this.monomerCount; --i >= 0; ) if (bsSelected.get(this.leadAtomIndices[i])) this.colixesBack[i] = colix; + +}, "~N,JU.BS"); +Clazz.defineMethod(c$, "setColixes", +function(atomColixes, bsSelected){ +this.isActive = true; +if (this.bsColixSet == null) this.bsColixSet = JU.BS.newN(this.monomerCount); +for (var i = this.monomerCount; --i >= 0; ) { +var atomIndex = this.leadAtomIndices[i]; +if (bsSelected.get(atomIndex) && i < this.colixes.length && atomIndex < atomColixes.length) { +this.colixes[i] = this.shape.getColixI(atomColixes[atomIndex], J.c.PAL.UNKNOWN.id, atomIndex); +if (this.colixesBack != null && i < this.colixesBack.length) this.colixesBack[i] = 0; +this.paletteIDs[i] = J.c.PAL.UNKNOWN.id; +this.bsColixSet.set(i); +}} +}, "~A,JU.BS"); +Clazz.defineMethod(c$, "setParams", +function(data, atomMap, bsSelected){ +if (this.monomerCount == 0) return; +var c = data[0]; +var atrans = data[1]; +this.isActive = true; +if (this.bsColixSet == null) this.bsColixSet = JU.BS.newN(this.monomerCount); +var n = atomMap.length; +for (var i = this.monomerCount; --i >= 0; ) { +var atomIndex = this.leadAtomIndices[i]; +if (bsSelected.get(atomIndex) && i < this.colixes.length && atomIndex < n) { +var pt = atomMap[atomIndex]; +var colix = (c == null ? 0 : c[pt]); +var f = (atrans == null ? 0 : atrans[pt]); +if (f > 0.01) colix = JU.C.getColixTranslucent3(colix, true, f); +this.colixes[i] = this.shape.getColixI(colix, J.c.PAL.UNKNOWN.id, atomIndex); +if (this.colixesBack != null && i < this.colixesBack.length) this.colixesBack[i] = 0; +this.paletteIDs[i] = J.c.PAL.UNKNOWN.id; +this.bsColixSet.set(i); +}} +}, "~A,~A,JU.BS"); +Clazz.defineMethod(c$, "setTranslucent", +function(isTranslucent, bsSelected, translucentLevel){ +this.isActive = true; +if (this.bsColixSet == null) this.bsColixSet = JU.BS.newN(this.monomerCount); +for (var i = this.monomerCount; --i >= 0; ) if (bsSelected.get(this.leadAtomIndices[i])) { +this.colixes[i] = JU.C.getColixTranslucent3(this.colixes[i], isTranslucent, translucentLevel); +if (this.colixesBack != null && this.colixesBack.length > i) this.colixesBack[i] = JU.C.getColixTranslucent3(this.colixesBack[i], isTranslucent, translucentLevel); +this.bsColixSet.setBitTo(i, this.colixes[i] != 0); +} +}, "~B,JU.BS,~N"); +Clazz.overrideMethod(c$, "setAtomClickability", +function(){ +if (!this.isActive || this.wingVectors == null || this.monomerCount == 0) return; +var setRingsClickable = (Clazz.instanceOf(this.bioPolymer,"JM.NucleicPolymer") && this.shape.shapeID == 11); +var setAlphaClickable = (Clazz.instanceOf(this.bioPolymer,"JM.AlphaPolymer") || this.shape.shapeID != 15); +var ms = this.monomers[0].chain.model.ms; +for (var i = this.monomerCount; --i >= 0; ) { +if (this.mads[i] <= 0) continue; +var iAtom = this.leadAtomIndices[i]; +if (ms.isAtomHidden(iAtom)) continue; +if (setAlphaClickable) ms.at[iAtom].setClickable(1040384); +if (setRingsClickable) (this.monomers[i]).setRingsClickable(); +} +}); +Clazz.defineMethod(c$, "getBioShapeState", +function(type, translucentAllowed, temp, temp2){ +if (this.monomerCount > 0) { +if (!this.isActive || this.bsSizeSet == null && this.bsColixSet == null) return; +for (var i = 0; i < this.monomerCount; i++) { +var atomIndex1 = this.monomers[i].firstAtomIndex; +var atomIndex2 = this.monomers[i].lastAtomIndex; +if (this.bsSizeSet != null && (this.bsSizeSet.get(i) || this.bsColixSet != null && this.bsColixSet.get(i))) { +if (this.bsSizeDefault.get(i)) { +JU.BSUtil.setMapBitSet(temp, atomIndex1, atomIndex2, type + (this.bsSizeSet.get(i) ? " on" : " off")); +} else { +JU.BSUtil.setMapBitSet(temp, atomIndex1, atomIndex2, type + " " + JU.PT.escF(this.mads[i] / 2000)); +}}if (this.bsColixSet == null || !this.bsColixSet.get(i)) continue; +var s = J.shape.Shape.getColorCommand(type, this.paletteIDs[i], this.colixes[i], translucentAllowed); +if (this.colixesBack != null && this.colixesBack.length > i && this.colixesBack[i] != 0) s += " " + JU.C.getHexCode(this.colixesBack[i]); +JU.BSUtil.setMapBitSet(temp2, atomIndex1, atomIndex2, s); +} +}}, "~S,~B,java.util.Map,java.util.Map"); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +return null; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapebio/BioShapeCollection.js b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/BioShapeCollection.js new file mode 100755 index 000000000000..98a606c68166 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/BioShapeCollection.js @@ -0,0 +1,168 @@ +Clazz.declarePackage("J.shapebio"); +Clazz.load(["J.shape.Shape"], "J.shapebio.BioShapeCollection", ["java.util.Hashtable", "JU.AU", "J.c.PAL", "J.shapebio.BioShape", "JU.BSUtil", "$.C", "JV.JC"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.atoms = null; +this.madOn = -2; +this.madHelixSheet = 3000; +this.madTurnRandom = 800; +this.madDnaRna = 5000; +this.isActive = false; +this.bioShapes = null; +Clazz.instantialize(this, arguments);}, J.shapebio, "BioShapeCollection", J.shape.Shape); +Clazz.overrideMethod(c$, "initModelSet", +function(){ +this.isBioShape = true; +this.atoms = this.ms.at; +this.initialize(); +}); +Clazz.overrideMethod(c$, "initShape", +function(){ +}); +Clazz.overrideMethod(c$, "getSizeG", +function(group){ +var m = group; +var groupIndex = m.groupIndex; +var leadAtomIndex = m.getLeadAtom().i; +for (var i = this.bioShapes.length; --i >= 0; ) { +var bioShape = this.bioShapes[i]; +for (var j = 0; j < bioShape.monomerCount; j++) { +if (bioShape.monomers[j].groupIndex == groupIndex && bioShape.monomers[j].getLeadAtom().i == leadAtomIndex) return bioShape.mads[j]; +} +} +return 0; +}, "JM.Group"); +Clazz.overrideMethod(c$, "replaceGroup", +function(g0, g1){ +for (var i = this.bioShapes.length; --i >= 0; ) { +var bioShape = this.bioShapes[i]; +for (var j = 0; j < bioShape.monomerCount; j++) if (bioShape.monomers[j] === g0) { +bioShape.monomers[j] = g1; +break; +} +} +}, "JM.Group,JM.Group"); +Clazz.overrideMethod(c$, "setShapeSizeRD", +function(size, rd, bsSelected){ +var mad = size; +this.initialize(); +for (var i = this.bioShapes.length; --i >= 0; ) { +var bioShape = this.bioShapes[i]; +if (bioShape.monomerCount > 0) bioShape.setMad(mad, bsSelected, (rd == null ? null : rd.values)); +} +}, "~N,J.atomdata.RadiusData,JU.BS"); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bsSelected){ +this.setPropBSC(propertyName, value, bsSelected); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "setPropBSC", +function(propertyName, value, bsSelected){ +if (propertyName === "refreshTrajectories") { +var modelIndex = ((value)[0]).intValue(); +for (var i = this.bioShapes.length; --i >= 0; ) { +var b = this.bioShapes[i]; +if (b.modelIndex == modelIndex) b.falsifyMesh(); +} +return; +}if (propertyName === "deleteModelAtoms") { +this.atoms = (value)[1]; +var modelIndex = ((value)[2])[0]; +for (var i = this.bioShapes.length; --i >= 0; ) { +var b = this.bioShapes[i]; +if (b.modelIndex > modelIndex) { +b.modelIndex--; +b.leadAtomIndices = b.bioPolymer.getLeadAtomIndices(); +} else if (b.modelIndex == modelIndex) { +this.bioShapes = JU.AU.deleteElements(this.bioShapes, i, 1); +}} +return; +}this.initialize(); +if ("color" === propertyName) { +var pid = J.c.PAL.pidOf(value); +var colix = JU.C.getColixO(value); +for (var i = this.bioShapes.length; --i >= 0; ) { +var bioShape = this.bioShapes[i]; +if (bioShape.monomerCount > 0) bioShape.setColixBS(colix, pid, bsSelected); +} +return; +}if ("params" === propertyName) { +var n = bsSelected.length(); +var atomMap = Clazz.newIntArray (n, 0); +for (var pt = 0, i = bsSelected.nextSetBit(0); i >= 0; i = bsSelected.nextSetBit(i + 1), pt++) atomMap[i] = pt; + +for (var i = this.bioShapes.length; --i >= 0; ) this.bioShapes[i].setParams(value, atomMap, bsSelected); + +return; +}if ("colorPhase" === propertyName) { +var twoColors = value; +var colixBack = JU.C.getColixO(twoColors[0]); +var colix = JU.C.getColixO(twoColors[1]); +for (var i = this.bioShapes.length; --i >= 0; ) { +var bioShape = this.bioShapes[i]; +if (bioShape.monomerCount > 0) { +bioShape.setColixBS(colix, 64, bsSelected); +bioShape.setColixBack(colixBack, bsSelected); +}} +return; +}if ("translucency" === propertyName) { +var isTranslucent = ("translucent".equals(value)); +for (var i = this.bioShapes.length; --i >= 0; ) { +var bioShape = this.bioShapes[i]; +if (bioShape.monomerCount > 0) bioShape.setTranslucent(isTranslucent, bsSelected, this.translucentLevel); +} +return; +}this.setPropS(propertyName, value, bsSelected); +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +var temp = new java.util.Hashtable(); +var temp2 = new java.util.Hashtable(); +var type = JV.JC.shapeClassBases[this.shapeID]; +for (var iShape = this.bioShapes.length; --iShape >= 0; ) this.bioShapes[iShape].getBioShapeState(type, this.translucentAllowed, temp, temp2); + +var s = "\n" + this.vwr.getCommands(temp, temp2, this.shapeID == 9 ? "Backbone" : "select"); +return s; +}); +Clazz.defineMethod(c$, "initialize", +function(){ +var modelCount = this.ms.mc; +var models = this.ms.am; +var n = this.ms.getBioPolymerCountInModel(-1); +var shapes = new Array(n--); +for (var i = modelCount; --i >= 0; ) for (var j = this.ms.getBioPolymerCountInModel(i); --j >= 0; n--) { +var bp = (models[i]).bioPolymers[j]; +shapes[n] = (this.bioShapes == null || this.bioShapes.length <= n || this.bioShapes[n] == null || this.bioShapes[n].bioPolymer !== bp ? new J.shapebio.BioShape(this, i, bp) : this.bioShapes[n]); +} + +this.bioShapes = shapes; +}); +Clazz.overrideMethod(c$, "findNearestAtomIndex", +function(xMouse, yMouse, closest, bsNot){ +for (var i = this.bioShapes.length; --i >= 0; ) this.bioShapes[i].findNearestAtomIndex(xMouse, yMouse, closest, bsNot); + +}, "~N,~N,~A,JU.BS"); +Clazz.overrideMethod(c$, "setModelVisibilityFlags", +function(bsModels){ +if (this.bioShapes == null) return; +bsModels = JU.BSUtil.copy(bsModels); +if (this.ms.trajectory != null) this.ms.trajectory.setBaseModels(bsModels); +for (var i = this.bioShapes.length; --i >= 0; ) { +var b = this.bioShapes[i]; +b.modelVisibilityFlags = (bsModels.get(b.modelIndex) ? this.vf : 0); +} +}, "JU.BS"); +Clazz.overrideMethod(c$, "setAtomClickability", +function(){ +if (this.bioShapes == null) return; +for (var i = this.bioShapes.length; --i >= 0; ) this.bioShapes[i].setAtomClickability(); + +}); +Clazz.defineMethod(c$, "getMpsShapeCount", +function(){ +return this.bioShapes.length; +}); +Clazz.defineMethod(c$, "getBioShape", +function(i){ +return this.bioShapes[i]; +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Cartoon.js b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Cartoon.js new file mode 100755 index 000000000000..1edd1993482d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Cartoon.js @@ -0,0 +1,10 @@ +Clazz.declarePackage("J.shapebio"); +Clazz.load(["J.shapebio.Rockets"], "J.shapebio.Cartoon", null, function(){ +var c$ = Clazz.declareType(J.shapebio, "Cartoon", J.shapebio.Rockets); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.setTurn(); +this.madDnaRna = 1000; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapebio/MeshRibbon.js b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/MeshRibbon.js new file mode 100755 index 000000000000..2c5c7cc7866e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/MeshRibbon.js @@ -0,0 +1,9 @@ +Clazz.declarePackage("J.shapebio"); +Clazz.load(["J.shapebio.Strands"], "J.shapebio.MeshRibbon", null, function(){ +var c$ = Clazz.declareType(J.shapebio, "MeshRibbon", J.shapebio.Strands); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.isMesh = true; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Ribbons.js b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Ribbons.js new file mode 100755 index 000000000000..d9b8d1b0949c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Ribbons.js @@ -0,0 +1,5 @@ +Clazz.declarePackage("J.shapebio"); +Clazz.load(["J.shapebio.BioShapeCollection"], "J.shapebio.Ribbons", null, function(){ +var c$ = Clazz.declareType(J.shapebio, "Ribbons", J.shapebio.BioShapeCollection); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Rockets.js b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Rockets.js new file mode 100755 index 000000000000..31535486e9d1 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Rockets.js @@ -0,0 +1,13 @@ +Clazz.declarePackage("J.shapebio"); +Clazz.load(["J.shapebio.BioShapeCollection"], "J.shapebio.Rockets", null, function(){ +var c$ = Clazz.declareType(J.shapebio, "Rockets", J.shapebio.BioShapeCollection); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.setTurn(); +}); +Clazz.defineMethod(c$, "setTurn", +function(){ +this.madTurnRandom = 500; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Strands.js b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Strands.js new file mode 100755 index 000000000000..b3eab1bc33e8 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Strands.js @@ -0,0 +1,7 @@ +Clazz.declarePackage("J.shapebio"); +Clazz.load(["J.shapebio.BioShapeCollection"], "J.shapebio.Strands", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isMesh = false; +Clazz.instantialize(this, arguments);}, J.shapebio, "Strands", J.shapebio.BioShapeCollection); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Trace.js b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Trace.js new file mode 100755 index 000000000000..068d4351e209 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapebio/Trace.js @@ -0,0 +1,86 @@ +Clazz.declarePackage("J.shapebio"); +Clazz.load(["J.shapebio.BioShapeCollection"], "J.shapebio.Trace", ["J.atomdata.RadiusData", "J.c.VDW"], function(){ +var c$ = Clazz.declareType(J.shapebio, "Trace", J.shapebio.BioShapeCollection); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.madOn = 600; +this.madHelixSheet = 1500; +this.madTurnRandom = 500; +this.madDnaRna = 1500; +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bsSelected){ +if (propertyName === "putty") { +this.setPutty(value, bsSelected); +return; +}this.setPropBSC(propertyName, value, bsSelected); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "setPutty", +function(info, bsAtoms){ +var n = bsAtoms.cardinality(); +if (n == 0) return; +var data = Clazz.newFloatArray (bsAtoms.length(), 0); +var sum = 0.0; +var sumsq = 0.0; +var min = 3.4028235E38; +var max = 0; +for (var i = bsAtoms.nextSetBit(0); i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var value = this.atoms[i].atomPropertyFloat(null, 1111492620, null); +sum += value; +sumsq += (value * value); +if (value < min) min = value; +if (value > max) max = value; +} +var mean = (sum / n); +var stdev = Math.sqrt((sumsq - (sum * sum / n)) / n); +var rad = info[1]; +var range = info[2]; +var scale_min = info[3]; +var scale_max = info[4]; +var power = info[5]; +var transform = Clazz.floatToInt(info[6]); +var data_range = max - min; +var nonlinear = false; +switch (transform) { +case 0: +case 1: +case 2: +case 3: +nonlinear = true; +break; +} +for (var i = bsAtoms.nextSetBit(0); i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +var scale = this.atoms[i].atomPropertyFloat(null, 1111492620, null); +switch (transform) { +case 3: +case 7: +default: +break; +case 0: +case 4: +scale = 1 + (scale - mean) / range / stdev; +break; +case 1: +case 5: +scale = (scale - min) / data_range / range; +break; +case 2: +case 6: +scale /= range; +break; +case 8: +if (scale < 0.0) scale = 0.0; +scale = (Math.sqrt(scale / 8.0) / 3.141592653589793); +break; +} +if (scale < 0.0) scale = 0.0; +if (nonlinear) scale = Math.pow(scale, power); +if ((scale < scale_min) && (scale_min >= 0.0)) scale = scale_min; +if ((scale > scale_max) && (scale_max >= 0.0)) scale = scale_max; +data[i] = scale * rad; +} +var rd = new J.atomdata.RadiusData(data, 0, J.atomdata.RadiusData.EnumType.ABSOLUTE, J.c.VDW.AUTO); +this.setShapeSizeRD(0, rd, bsAtoms); +}, "~A,JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapecgo/CGO.js b/config/plugins/visualizations/jmol/static/j2s/J/shapecgo/CGO.js new file mode 100755 index 000000000000..c174ba0dbffe --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapecgo/CGO.js @@ -0,0 +1,184 @@ +Clazz.declarePackage("J.shapecgo"); +Clazz.load(["J.shape.MeshCollection"], "J.shapecgo.CGO", ["java.util.Hashtable", "JU.AU", "$.Lst", "$.PT", "$.SB", "J.shapecgo.CGOMesh"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.cmeshes = null; +this.cgoMesh = null; +this.useColix = false; +this.newScale = 0; +this.indicatedModelIndex = -2147483648; +Clazz.instantialize(this, arguments);}, J.shapecgo, "CGO", J.shape.MeshCollection); +Clazz.prepareFields (c$, function(){ +this.cmeshes = new Array(4); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.shapecgo.CGO, []); +this.myType = "CGO"; +this.htObjects = new java.util.Hashtable(); +}); +Clazz.defineMethod(c$, "initCGO", +function(){ +this.indicatedModelIndex = -2147483648; +}); +Clazz.overrideMethod(c$, "allocMesh", +function(thisID, m){ +var index = this.meshCount++; +this.meshes = this.cmeshes = JU.AU.ensureLength(this.cmeshes, this.meshCount * 2); +this.currentMesh = this.cgoMesh = this.cmeshes[index] = (m == null ? new J.shapecgo.CGOMesh(this.vwr, thisID, this.colix, index) : m); +this.currentMesh.color = this.color; +this.currentMesh.index = index; +this.currentMesh.useColix = this.useColix; +this.currentMesh.modelIndex = this.indicatedModelIndex; +if (thisID != null && thisID !== "+PREVIOUS_MESH+" && this.htObjects != null) this.htObjects.put(thisID.toUpperCase(), this.currentMesh); +}, "~S,J.shape.Mesh"); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("init" === propertyName) { +this.initCGO(); +this.setPropertySuper("init", value, bs); +return; +}if ("setCGO" === propertyName) { +var list = value; +this.setProperty("init", null, null); +var n = list.size() - 1; +this.setProperty("thisID", list.get(n), null); +propertyName = "set"; +this.setProperty("set", value, null); +return; +}if ("modelIndex" === propertyName) { +this.indicatedModelIndex = Math.max((value).intValue(), -1); +return; +}if ("set" === propertyName) { +if (this.cgoMesh == null) { +this.allocMesh(null, null); +this.cgoMesh.colix = this.colix; +this.cgoMesh.color = this.color; +this.cgoMesh.useColix = this.useColix; +}this.cgoMesh.modelIndex = (this.indicatedModelIndex == -2147483648 ? this.vwr.am.cmi : this.indicatedModelIndex); +this.cgoMesh.isValid = this.setCGO(value); +if (this.cgoMesh.isValid) { +this.scale(this.cgoMesh, this.newScale); +this.cgoMesh.initialize(1073741964, null, null); +this.cgoMesh.title = this.title; +this.cgoMesh.visible = true; +}this.clean(); +return; +}if (propertyName === "deleteModelAtoms") { +this.deleteModels(((value)[2])[0]); +return; +}this.setPropertySuper(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "deleteModels", +function(modelIndex){ +for (var i = this.meshCount; --i >= 0; ) { +var m = this.meshes[i]; +if (m == null) continue; +var deleteMesh = (m.modelIndex == modelIndex); +if (deleteMesh) { +this.meshCount--; +this.deleteMeshElement(i); +} else if (this.meshes[i].modelIndex > modelIndex) { +this.meshes[i].modelIndex--; +}} +this.resetObjects(); +}, "~N"); +Clazz.overrideMethod(c$, "getProperty", +function(property, index){ +if (property === "command") return this.getCommand(this.cgoMesh); +return this.getPropMC(property, index); +}, "~S,~N"); +Clazz.overrideMethod(c$, "getPropertyData", +function(property, data){ +if (property === "data") return J.shapecgo.CGOMesh.getData(data); +return this.getPropDataMC(property, data); +}, "~S,~A"); +Clazz.defineMethod(c$, "deleteMeshElement", +function(i){ +if (this.meshes[i] === this.currentMesh) this.currentMesh = this.cgoMesh = null; +this.meshes = this.cmeshes = JU.AU.deleteElements(this.meshes, i, 1); +}, "~N"); +Clazz.defineMethod(c$, "setPropertySuper", +function(propertyName, value, bs){ +this.currentMesh = this.cgoMesh; +this.setPropMC(propertyName, value, bs); +this.cgoMesh = this.currentMesh; +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "clean", +function(){ +for (var i = this.meshCount; --i >= 0; ) if (this.meshes[i] == null || this.cmeshes[i].cmds == null || this.cmeshes[i].cmds.size() == 0) this.deleteMeshI(i); + +}); +Clazz.defineMethod(c$, "setCGO", +function(data){ +if (this.cgoMesh == null) this.allocMesh(null, null); +this.cgoMesh.clear("cgo"); +return this.cgoMesh.set(data); +}, "JU.Lst"); +Clazz.defineMethod(c$, "scale", +function(mesh, newScale){ +}, "J.shape.Mesh,~N"); +Clazz.overrideMethod(c$, "getShapeDetail", +function(){ +var V = new JU.Lst(); +for (var i = 0; i < this.meshCount; i++) { +var mesh = this.cmeshes[i]; +var info = new java.util.Hashtable(); +info.put("visible", mesh.visible ? Boolean.TRUE : Boolean.FALSE); +info.put("ID", (mesh.thisID == null ? " " : mesh.thisID)); +info.put("command", this.getCommand(mesh)); +V.addLast(info); +} +return V; +}); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +var sb = new JU.SB(); +var modelCount = this.ms.mc; +for (var i = 0; i < this.meshCount; i++) { +var mesh = this.cmeshes[i]; +if (mesh == null || mesh.cmds == null || mesh.modelIndex >= modelCount) continue; +if (sb.length() == 0) { +sb.append("\n"); +J.shape.Shape.appendCmd(sb, this.myType + " delete"); +}sb.append(this.getCommand2(mesh, modelCount)); +if (!mesh.visible) sb.append(" " + this.myType + " ID " + JU.PT.esc(mesh.thisID) + " off;\n"); +} +return sb.toString(); +}); +Clazz.defineMethod(c$, "getCommand", +function(mesh){ +if (mesh != null) return this.getCommand2(mesh, mesh.modelIndex); +var sb = new JU.SB(); +var key = (this.explicitID && this.previousMeshID != null && JU.PT.isWild(this.previousMeshID) ? this.previousMeshID : null); +var list = this.getMeshList(key, false); +for (var i = list.size(); --i >= 0; ) { +var m = list.get(i); +sb.append(this.getCommand2(m, m.modelIndex)); +} +return sb.toString(); +}, "J.shape.Mesh"); +Clazz.defineMethod(c$, "getCommand2", +function(mesh, modelCount){ +var cmesh = mesh; +var str = new JU.SB(); +var iModel = mesh.modelIndex; +str.append(" CGO ID ").append(JU.PT.esc(mesh.thisID)); +if (iModel >= -1 && modelCount > 1) str.append(" modelIndex " + iModel); +str.append(" ["); +var n = cmesh.cmds.size(); +for (var i = 0; i < n; i++) str.append(" " + cmesh.cmds.get(i)); + +str.append(" ];\n"); +J.shape.Shape.appendCmd(str, cmesh.getState("cgo")); +if (cmesh.useColix) J.shape.Shape.appendCmd(str, J.shape.Shape.getColorCommandUnk("cgo", cmesh.colix, this.translucentAllowed)); +return str.toString(); +}, "J.shape.Mesh,~N"); +Clazz.overrideMethod(c$, "setModelVisibilityFlags", +function(bsModels){ +for (var i = 0; i < this.meshCount; i++) { +var m = this.cmeshes[i]; +if (m != null) m.visibilityFlags = (m.isValid && m.visible && (m.modelIndex < 0 || bsModels.get(m.modelIndex)) ? this.vf : 0); +} +}, "JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapecgo/CGOMesh.js b/config/plugins/visualizations/jmol/static/j2s/J/shapecgo/CGOMesh.js new file mode 100755 index 000000000000..7f65be1b8f71 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapecgo/CGOMesh.js @@ -0,0 +1,231 @@ +Clazz.declarePackage("J.shapecgo"); +Clazz.load(["J.shapespecial.DrawMesh", "JU.Lst"], "J.shapecgo.CGOMesh", ["java.util.Hashtable", "JU.BS", "$.CU", "$.PT", "JU.C", "$.Logger", "$.Normix"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.cmds = null; +this.nList = null; +this.cList = null; +Clazz.instantialize(this, arguments);}, J.shapecgo, "CGOMesh", J.shapespecial.DrawMesh); +Clazz.prepareFields (c$, function(){ +this.nList = new JU.Lst(); +this.cList = new JU.Lst(); +}); +c$.getSize = Clazz.defineMethod(c$, "getSize", +function(i, is2D){ +switch (i) { +case -103: +return 13; +case -102: +return 15; +case -108: +case -109: +case -110: +return 2; +case -101: +case -100: +case -107: +return 1; +case -105: +case -106: +case -111: +case -104: +return 0; +default: +return (i >= 0 && i < J.shapecgo.CGOMesh.sizes.length ? (is2D ? J.shapecgo.CGOMesh.sizes2D : J.shapecgo.CGOMesh.sizes)[i] : -1); +} +}, "~N,~B"); +c$.getKeyMap = Clazz.defineMethod(c$, "getKeyMap", +function(){ +var keyMap = new java.util.Hashtable(); +var tokens = JU.PT.getTokens("BEGIN:2 END:3 STOP:0 POINT:0 POINTS:0 LINES:1 LINE_LOOP:2 LINE_STRIP:3 TRIANGLES:4 TRIANGLE_STRIP:5 TRIANGLE_FAN:6 LINE:1 VERTEX:4 NORMAL:5 COLOR:6 LINEWIDTH:10 SAUSAGE:14 DIAMETER:-100 SCREEN:-101 UVMAP:-102 PS:-103 NEWPATH:-104 CLOSEPATH:-105 STROKE:-106 SETLINEWIDTH:-107 SCALE:-108 MOVETO:-109 LINETO:-110 SHOWPAGE:-111"); +for (var i = tokens.length; --i >= 0; ) { +var pt = tokens[i].indexOf(":"); +keyMap.put(tokens[i].substring(0, pt), Integer.$valueOf(Integer.parseInt(tokens[i].substring(pt + 1)))); +} +return keyMap; +}); +c$.getData = Clazz.defineMethod(c$, "getData", +function(d){ +if (J.shapecgo.CGOMesh.keyMap == null) J.shapecgo.CGOMesh.keyMap = J.shapecgo.CGOMesh.getKeyMap(); +var st = d[0]; +var ai = d[1]; +var data = d[2]; +var vwr = d[3]; +var i = ai[0]; +var slen = ai[1]; +var tok = st[i].tok; +i = (tok == 268437504 ? i + 1 : i + 2); +if (i >= slen) return false; +var s = st[i].value.toString().toUpperCase(); +var type = ";PS;BEGIN;SCREEN;UVMAP;".indexOf(";" + s + ";"); +i = J.shapecgo.CGOMesh.addItems(i, st, slen, data, vwr); +if (type == 0) { +if (i + 5 >= slen || st[i + 1].tok != 134221834) return false; +if (!J.shapecgo.CGOMesh.parseEPSData(st[i + 3].value.toString(), data)) return false; +i += 5; +}ai[0] = i; +return true; +}, "~A"); +c$.parseEPSData = Clazz.defineMethod(c$, "parseEPSData", +function(eps, data){ +var pt = eps.indexOf("%%BoundingBox:"); +if (pt < 0) return false; +var stack = new JU.Lst(); +var next = Clazz.newIntArray(-1, [pt + 14]); +for (var i = 0; i < 4; i++) data.addLast(Float.$valueOf(JU.PT.parseFloatNext(eps, next))); + +pt = eps.indexOf("%%EndProlog"); +if (pt < 0) return false; +next[0] = pt + 11; +var len = eps.length; +while (true) { +var f = JU.PT.parseFloatChecked(eps, len, next, false); +if (next[0] >= len) break; +if (Float.isNaN(f)) { +var s = JU.PT.parseTokenChecked(eps, len, next); +if (s.startsWith("%%")) continue; +if (!J.shapecgo.CGOMesh.addKey(data, s)) return false; +if (stack.size() > 0) { +for (var k = 0, n = stack.size(); k < n; k++) data.addLast(stack.get(k)); + +stack.clear(); +}} else { +stack.addLast(Float.$valueOf(f)); +}} +return true; +}, "~S,JU.Lst"); +c$.addItems = Clazz.defineMethod(c$, "addItems", +function(i, st, slen, data, vwr){ +var tok; +var t; +for (var j = i; j < slen; j++) { +switch (tok = (t = st[j]).tok) { +case 268437505: +i = j; +j = slen; +continue; +case 2: +data.addLast(Float.$valueOf(t.intValue)); +break; +case 3: +data.addLast(t.value); +break; +case 8: +case 10: +var pt = (tok == 8 ? t.value : vwr.ms.getAtomSetCenter(t.value)); +data.addLast(Float.$valueOf(pt.x)); +data.addLast(Float.$valueOf(pt.y)); +data.addLast(Float.$valueOf(pt.z)); +break; +default: +if (!J.shapecgo.CGOMesh.addKey(data, st[j].value.toString())) { +JU.Logger.error("CGO unknown: " + st[j].value); +i = j = slen; +break; +}break; +} +} +return i; +}, "~N,~A,~N,JU.Lst,JV.Viewer"); +c$.addKey = Clazz.defineMethod(c$, "addKey", +function(data, key){ +key = key.toUpperCase(); +var ii = J.shapecgo.CGOMesh.keyMap.get(key.toUpperCase()); +if (ii == null) return false; +data.addLast(ii); +return true; +}, "JU.Lst,~S"); +Clazz.defineMethod(c$, "clear", +function(meshType){ +Clazz.superCall(this, J.shapecgo.CGOMesh, "clear", [meshType]); +this.useColix = false; +}, "~S"); +Clazz.defineMethod(c$, "set", +function(list){ +this.width = 200; +this.diameter = 0; +this.useColix = true; +this.bsTemp = new JU.BS(); +try { +if (Clazz.instanceOf(list.get(0), Number)) { +this.cmds = list; +} else { +this.cmds = list.get(1); +if (this.cmds == null) this.cmds = list.get(0); +this.cmds = this.cmds.get(1); +}var n = this.cmds.size(); +var is2D = false; +for (var i = 0; i < n; i++) { +var type = (this.cmds.get(i)).intValue(); +var len = J.shapecgo.CGOMesh.getSize(type, is2D); +if (len < 0) { +JU.Logger.error("CGO unknown type: " + type); +return false; +}switch (type) { +case -101: +case -102: +is2D = true; +break; +case 1: +break; +case 0: +return true; +case 5: +this.addNormix(i + 1); +break; +case 6: +this.addColix(i + 1); +this.useColix = false; +break; +case 14: +this.addColix(i + 8); +this.addColix(i + 11); +break; +case 8: +this.addNormix(i + 10); +this.addNormix(i + 13); +this.addNormix(i + 16); +this.addColix(i + 19); +this.addColix(i + 22); +this.addColix(i + 25); +break; +} +i += len; +} +return true; +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("CGOMesh error: " + e); +this.cmds = null; +return false; +} else { +throw e; +} +} +}, "JU.Lst"); +Clazz.defineMethod(c$, "addColix", +function(i){ +this.getPoint(i, this.vTemp); +this.cList.addLast(Short.$valueOf(JU.C.getColix(JU.CU.colorPtToFFRGB(this.vTemp)))); +}, "~N"); +Clazz.defineMethod(c$, "addNormix", +function(i){ +this.getPoint(i, this.vTemp); +this.nList.addLast(Short.$valueOf(JU.Normix.get2SidedNormix(this.vTemp, this.bsTemp))); +}, "~N"); +Clazz.defineMethod(c$, "getPoint", +function(i, pt){ +pt.set(this.getFloat(i++), this.getFloat(i++), this.getFloat(i)); +}, "~N,JU.T3"); +Clazz.defineMethod(c$, "getInt", +function(i){ +return (this.cmds.get(i)).intValue(); +}, "~N"); +Clazz.defineMethod(c$, "getFloat", +function(i){ +return (this.cmds.get(i)).floatValue(); +}, "~N"); +c$.sizes = Clazz.newIntArray(-1, [0, 8, 1, 0, 3, 3, 3, 4, 27, 13, 1, 1, 1, 1, 13, 15, 1, 35, 13, 3, 2, 3, 9, 1, 2, 1, 14, 16, 1, 2]); +c$.sizes2D = Clazz.newIntArray(-1, [0, 6, 1, 0, 2, 3, 3, 4, 24, 13, 1, 1, 1, 1, 11, 15, 1, 35, 13, 3, 2, 3, 9, 1, 2, 1, 14, 16, 1, 2]); +c$.keyMap = null; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Dipole.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Dipole.js new file mode 100755 index 000000000000..7babdc8db349 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Dipole.js @@ -0,0 +1,168 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(null, "J.shapespecial.Dipole", ["JU.P3", "$.SB", "$.V3", "JU.C", "$.Escape"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.thisID = ""; +this.mad = 0; +this.colix = 0; +this.type = 0; +this.origin = null; +this.center = null; +this.vector = null; +this.dipoleInfo = ""; +this.dipoleValue = 0; +this.isUserValue = false; +this.offsetSide = 0; +this.offsetAngstroms = 0; +this.offsetPt = null; +this.offsetPercent = 0; +this.visibilityFlags = 0; +this.modelIndex = 0; +this.visible = false; +this.noCross = false; +this.haveAtoms = false; +this.isValid = false; +this.atoms = null; +this.coords = null; +this.bond = null; +this.bsMolecule = null; +this.lstDipoles = null; +Clazz.instantialize(this, arguments);}, J.shapespecial, "Dipole", null); +Clazz.prepareFields (c$, function(){ +this.atoms = new Array(2); +this.coords = new Array(2); +}); +Clazz.defineMethod(c$, "init", +function(modelIndex, thisID, dipoleInfo, colix, mad, visible){ +this.modelIndex = modelIndex; +this.thisID = thisID; +this.dipoleInfo = dipoleInfo; +this.colix = colix; +this.mad = mad; +this.visible = visible; +this.type = 0; +return this; +}, "~N,~S,~S,~N,~N,~B"); +Clazz.defineMethod(c$, "setTranslucent", +function(isTranslucent, translucentLevel){ +this.colix = JU.C.getColixTranslucent3(this.colix, isTranslucent, translucentLevel); +}, "~B,~N"); +Clazz.defineMethod(c$, "set", +function(d){ +this.thisID = d.thisID; +this.dipoleInfo = d.dipoleInfo; +this.dipoleValue = d.dipoleValue; +this.mad = d.mad; +this.lstDipoles = d.lstDipoles; +if (this.lstDipoles != null) this.isValid = true; +this.offsetAngstroms = d.offsetAngstroms; +this.offsetPercent = d.offsetPercent; +this.offsetSide = d.offsetSide; +this.vector = JU.V3.newV(d.vector); +this.origin = JU.P3.newP(d.origin); +if (d.offsetPt != null) { +this.origin.add(d.offsetPt); +this.offsetPt = JU.P3.newP(d.offsetPt); +}this.bsMolecule = d.bsMolecule; +this.haveAtoms = (d.atoms[0] != null); +if (this.haveAtoms) { +this.atoms[0] = d.atoms[0]; +this.atoms[1] = d.atoms[1]; +this.centerDipole(); +} else { +this.center = null; +}}, "J.shapespecial.Dipole"); +Clazz.defineMethod(c$, "set2", +function(pt1, pt2){ +this.coords[0] = JU.P3.newP(pt1); +this.coords[1] = JU.P3.newP(pt2); +this.isValid = (this.coords[0].distance(this.coords[1]) > 0.1); +if (this.dipoleValue < 0) { +this.origin = JU.P3.newP(pt2); +this.vector = JU.V3.newV(pt1); +this.dipoleValue = -this.dipoleValue; +} else { +this.origin = JU.P3.newP(pt1); +this.vector = JU.V3.newV(pt2); +}this.dipoleInfo = "" + this.origin + this.vector; +this.vector.sub(this.origin); +if (this.dipoleValue == 0) this.dipoleValue = this.vector.length(); + else this.vector.scale(this.dipoleValue / this.vector.length()); +this.type = 1; +}, "JU.P3,JU.P3"); +Clazz.defineMethod(c$, "setValue", +function(value){ +var d = this.dipoleValue; +this.dipoleValue = value; +if (value == 0) this.isValid = false; +if (this.vector == null) return; +this.vector.scale(this.dipoleValue / this.vector.length()); +if (d * this.dipoleValue < 0) this.origin.sub(this.vector); +}, "~N"); +Clazz.defineMethod(c$, "set2Value", +function(pt1, pt2, value){ +this.dipoleValue = value; +this.atoms[0] = null; +this.set2(pt1, pt2); +}, "JU.P3,JU.P3,~N"); +Clazz.defineMethod(c$, "setPtVector", +function(pt1, dipole){ +this.setValue(dipole.length()); +var pt2 = JU.P3.newP(pt1); +pt2.add(dipole); +this.set2(pt1, pt2); +this.type = 5; +}, "JU.P3,JU.V3"); +Clazz.defineMethod(c$, "set2AtomValue", +function(atom1, atom2, value){ +this.setValue(value); +this.set2(atom1, atom2); +this.offsetSide = 0.4; +this.mad = 10; +this.atoms[0] = atom1; +this.atoms[1] = atom2; +this.haveAtoms = true; +this.centerDipole(); +}, "JM.Atom,JM.Atom,~N"); +Clazz.defineMethod(c$, "centerDipole", +function(){ +this.isValid = (this.atoms[0] !== this.atoms[1] && this.dipoleValue != 0); +if (!this.isValid) return; +var f = this.atoms[0].distance(this.atoms[1]) / (2 * this.dipoleValue) - 0.5; +this.origin.scaleAdd2(f, this.vector, this.atoms[0]); +this.center = new JU.P3(); +this.center.scaleAdd2(0.5, this.vector, this.origin); +this.bond = this.atoms[0].getBond(this.atoms[1]); +this.type = (this.bond == null ? 2 : 3); +}); +Clazz.defineMethod(c$, "isBondType", +function(){ +return (this.type == 2 || this.type == 3); +}); +Clazz.defineMethod(c$, "getShapeState", +function(){ +if (!this.isValid) return ""; +var s = new JU.SB(); +s.append("dipole ID ").append(this.thisID); +if (this.lstDipoles != null) s.append(" all ").append(JU.Escape.eBS(this.bsMolecule)); + else if (this.haveAtoms) s.append(" ({").appendI(this.atoms[0].i).append("}) ({").appendI(this.atoms[1].i).append("})"); + else if (this.coords[0] == null) return ""; + else s.append(" ").append(JU.Escape.eP(this.coords[0])).append(" ").append(JU.Escape.eP(this.coords[1])); +if (this.isUserValue) s.append(" value ").appendF(this.dipoleValue); +if (this.mad != 10) s.append(" width ").appendF(this.mad / 1000); +if (this.offsetAngstroms != 0) s.append(" offset ").appendF(this.offsetAngstroms); + else if (this.offsetPercent != 0) s.append(" offset ").appendI(this.offsetPercent); +if (this.offsetSide != 0.4) s.append(" offsetSide ").appendF(this.offsetSide); +if (this.offsetPt != null) s.append(" offset ").append(JU.Escape.eP(this.offsetPt)); +if (this.noCross) s.append(" nocross"); +if (!this.visible) s.append(" off"); +s.append(";\n"); +return s.toString(); +}); +Clazz.defineMethod(c$, "setOffsetPt", +function(pt){ +if (this.offsetPt != null) this.origin.sub(this.offsetPt); +this.offsetPt = pt; +this.origin.add(pt); +}, "JU.P3"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Dipoles.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Dipoles.js new file mode 100755 index 000000000000..4716702022c0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Dipoles.js @@ -0,0 +1,499 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(["J.shape.Shape", "JU.P3"], "J.shapespecial.Dipoles", ["java.util.Hashtable", "JU.AU", "$.Lst", "$.PT", "$.SB", "$.V3", "JS.T", "J.shapespecial.Dipole", "JU.C", "$.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.dipoleCount = 0; +this.dipoles = null; +this.currentDipole = null; +this.tempDipole = null; +this.startCoord = null; +this.endCoord = null; +this.dipoleValue = 0; +this.isUserValue = false; +this.isBond = false; +this.iHaveTwoEnds = false; +this.atomIndex1 = 0; +this.atomIndex2 = 0; +this.colix = 0; +this.calculatedDipole = null; +this.wildID = null; +this.mad = 0; +Clazz.instantialize(this, arguments);}, J.shapespecial, "Dipoles", J.shape.Shape); +Clazz.prepareFields (c$, function(){ +this.dipoles = new Array(4); +this.startCoord = new JU.P3(); +this.endCoord = new JU.P3(); +}); +Clazz.overrideMethod(c$, "initShape", +function(){ +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("init" === propertyName) { +this.tempDipole = new J.shapespecial.Dipole(); +this.tempDipole.dipoleValue = 1; +this.tempDipole.mad = 10; +this.atomIndex1 = -1; +this.tempDipole.modelIndex = -1; +this.dipoleValue = 0; +this.calculatedDipole = null; +this.mad = -1; +this.isUserValue = this.isBond = this.iHaveTwoEnds = false; +return; +}if ("calculate" === propertyName) { +try { +this.calculatedDipole = this.vwr.calculateMolecularDipole(value); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +JU.Logger.info("calculated molecular dipole = " + this.calculatedDipole + " " + (this.calculatedDipole == null ? "" : "" + this.calculatedDipole.length())); +return; +}if ("thisID" === propertyName) { +this.wildID = null; +var thisID = value; +if (thisID == null || JU.PT.isWild(thisID)) { +this.currentDipole = null; +if (thisID != null) this.wildID = thisID.toUpperCase(); +return; +}this.currentDipole = this.findDipole(thisID); +if (this.currentDipole == null) this.currentDipole = this.allocDipole(thisID, ""); +this.tempDipole = this.currentDipole; +if (thisID.equals("molecular")) this.getMolecular(null); +return; +}if ("bonds" === propertyName) { +this.isBond = true; +this.currentDipole = null; +for (var i = this.dipoleCount; --i >= 0; ) if (this.isBondDipole(i)) return; + +this.getBondDipoles(); +return; +}if ("all" === propertyName) { +this.tempDipole.lstDipoles = new JU.Lst(); +return; +}if ("on" === propertyName) { +this.setPropertyTok(1073742335, this.isBond, 0, 0); +return; +}if ("off" === propertyName) { +this.setPropertyTok(1073742334, this.isBond, 0, 0); +return; +}if ("delete" === propertyName) { +if (this.wildID == null && this.currentDipole == null) { +this.clear(false); +return; +}this.setPropertyTok(12291, this.isBond, 0, 0); +return; +}if ("width" === propertyName) { +this.mad = this.tempDipole.mad = Clazz.floatToShort((value).floatValue() * 1000); +if (this.currentDipole == null) this.setPropertyTok(659488, this.isBond, this.mad, 0); +return; +}if ("offset" === propertyName) { +var offset = this.tempDipole.offsetAngstroms = (value).floatValue(); +if (this.currentDipole == null) this.setPropertyTok(1611272194, this.isBond, 0, offset); +return; +}if ("offsetPt" === propertyName) { +this.tempDipole.offsetPt = value; +if (this.currentDipole != null) { +this.currentDipole.setOffsetPt(this.tempDipole.offsetPt); +}return; +}if ("offsetPercent" === propertyName) { +var offsetPercent = this.tempDipole.offsetPercent = (value).intValue(); +if (this.tempDipole.dipoleValue != 0) this.tempDipole.offsetAngstroms = offsetPercent / 100 * this.tempDipole.dipoleValue; +if (this.currentDipole == null) this.setPropertyTok(268441090, this.isBond, 0, offsetPercent / 100); +return; +}if ("offsetSide" === propertyName) { +var offsetSide = (value).floatValue(); +this.setPropertyTok(2097178, this.isBond, 0, offsetSide); +return; +}if ("cross" === propertyName) { +this.setPropertyTok(1275069442, this.isBond, ((value).booleanValue() ? 1 : 0), 0); +return; +}if ("color" === propertyName) { +this.colix = JU.C.getColixO(value); +if (this.isBond) { +this.setColixDipole(this.colix, 1023, bs); +} else if (value != null) { +this.setPropertyTok(1765808134, false, 0, 0); +}return; +}if ("translucency" === propertyName) { +this.setPropertyTok(603979967, this.isBond, (value.equals("translucent") ? 1 : 0), 0); +return; +}if ("clear" === propertyName) { +this.currentDipole = null; +this.clear(false); +}if ("clearBonds" === propertyName) { +this.clear(true); +}if ("startSet" === propertyName) { +var bsAtoms = value; +this.endCoord = null; +this.startCoord = this.ms.getAtomSetCenter(bsAtoms); +this.tempDipole.set2Value(this.startCoord, JU.P3.new3(0, 0, 0), this.dipoleValue); +if (bsAtoms.cardinality() == 1) this.atomIndex1 = bsAtoms.nextSetBit(0); +return; +}if ("atomBitset" === propertyName) { +var atomset = value; +switch (atomset.cardinality()) { +case 0: +return; +case 1: +break; +case 2: +this.atomIndex1 = atomset.nextSetBit(0); +this.startCoord = this.ms.at[this.atomIndex1]; +atomset.clear(this.atomIndex1); +break; +default: +this.getMolecular(atomset); +return; +} +propertyName = "endSet"; +}if ("endSet" === propertyName) { +this.iHaveTwoEnds = true; +var atomset = value; +if (this.atomIndex1 >= 0 && atomset.cardinality() == 1) { +this.atomIndex2 = atomset.nextSetBit(0); +this.tempDipole.set2AtomValue(this.ms.at[this.atomIndex1], this.ms.at[this.atomIndex2], 1); +this.currentDipole = this.findDipoleFor(this.tempDipole.thisID, this.tempDipole.dipoleInfo); +this.tempDipole.thisID = this.currentDipole.thisID; +if (this.isSameAtoms(this.currentDipole, this.tempDipole.dipoleInfo)) { +this.tempDipole = this.currentDipole; +if (this.dipoleValue > 0) this.tempDipole.dipoleValue = this.dipoleValue; +if (this.mad > 0) this.tempDipole.mad = this.mad; +}} else { +this.tempDipole.set2Value(this.startCoord, this.ms.getAtomSetCenter(atomset), this.dipoleValue); +}return; +}if ("startCoord" === propertyName) { +this.startCoord.setT(value); +this.tempDipole.set2Value(this.startCoord, JU.P3.new3(0, 0, 0), this.dipoleValue); +return; +}if ("endCoord" === propertyName) { +this.iHaveTwoEnds = true; +this.endCoord.setT(value); +this.tempDipole.set2Value(this.startCoord, this.endCoord, this.dipoleValue); +this.dumpDipoles("endCoord"); +return; +}if ("value" === propertyName) { +this.dipoleValue = (value).floatValue(); +this.isUserValue = true; +this.tempDipole.setValue(this.dipoleValue); +if (this.tempDipole.offsetPercent != 0) this.tempDipole.offsetAngstroms = this.tempDipole.offsetPercent / 100 * this.tempDipole.dipoleValue; +return; +}if ("set" === propertyName) { +if (this.isBond || !this.iHaveTwoEnds && this.tempDipole.bsMolecule == null) return; +this.setDipole(); +this.setModelIndex(); +return; +}if (propertyName === "deleteModelAtoms") { +var modelIndex = ((value)[2])[0]; +for (var i = this.dipoleCount; --i >= 0; ) if (this.dipoles[i].modelIndex > modelIndex) { +this.dipoles[i].modelIndex--; +} else if (this.dipoles[i].modelIndex == modelIndex) { +if (this.dipoles[i] === this.currentDipole) this.currentDipole = null; +this.dipoles = JU.AU.deleteElements(this.dipoles, i, 1); +this.dipoleCount--; +} +this.currentDipole = null; +return; +}}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "getMolecular", +function(bsMolecule){ +var v = (bsMolecule == null ? this.calculatedDipole : null); +if (v == null && bsMolecule == null) { +v = this.vwr.getModelDipole(); +JU.Logger.info("file molecular dipole = " + v + " " + (v != null ? "" + v.length() : "")); +}if (v == null) try { +this.calculatedDipole = v = this.vwr.calculateMolecularDipole(bsMolecule); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +if (v == null) { +JU.Logger.warn("No molecular dipole found for this model; setting to {0 0 0}"); +v = new JU.V3(); +}this.tempDipole.bsMolecule = bsMolecule; +this.tempDipole.setPtVector(JU.P3.new3(0, 0, 0), JU.V3.new3(-v.x, -v.y, -v.z)); +if (this.tempDipole.lstDipoles != null) { +this.getAllMolecularDipoles(bsMolecule); +}this.tempDipole.type = 4; +if (this.currentDipole == null || this.currentDipole.thisID == null || bsMolecule == null) this.tempDipole.thisID = "molecular"; +this.setDipole(); +}, "JU.BS"); +Clazz.defineMethod(c$, "getAllMolecularDipoles", +function(bsAtoms){ +var mols = this.ms.getMolecules(); +for (var i = mols.length; --i >= 0; ) { +var m = mols[i]; +if (m.atomList.intersects(bsAtoms)) { +var v = null; +try { +v = this.vwr.calculateMolecularDipole(m.atomList); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +if (v == null) continue; +var center = this.ms.getAtomSetCenter(m.atomList); +this.tempDipole.lstDipoles.addLast( Clazz.newArray(-1, [v, center, m.atomList])); +}} +}, "JU.BS"); +Clazz.defineMethod(c$, "setPropertyTok", +function(tok, bondOnly, iValue, fValue){ +if (this.currentDipole != null) this.setPropertyFor(tok, this.currentDipole, iValue, fValue); + else { +for (var i = this.dipoleCount; --i >= 0; ) if (!bondOnly || this.isBondDipole(i)) if (this.wildID == null || JU.PT.isMatch(this.dipoles[i].thisID.toUpperCase(), this.wildID, true, true)) this.setPropertyFor(tok, this.dipoles[i], iValue, fValue); + +}}, "~N,~B,~N,~N"); +Clazz.defineMethod(c$, "setPropertyFor", +function(tok, dipole, iValue, fValue){ +switch (tok) { +case 1073742335: +dipole.visible = true; +return; +case 1073742334: +dipole.visible = false; +return; +case 12291: +this.deleteDipole(dipole); +return; +case 659488: +dipole.mad = this.tempDipole.mad = iValue; +return; +case 1611272194: +dipole.offsetAngstroms = fValue; +return; +case 268441090: +dipole.offsetAngstroms = fValue * dipole.dipoleValue; +return; +case 2097178: +dipole.offsetSide = fValue; +return; +case 1275069442: +dipole.noCross = (iValue == 0); +return; +case 1765808134: +dipole.colix = this.colix; +return; +case 603979967: +dipole.setTranslucent(iValue == 1, this.translucentLevel); +return; +} +JU.Logger.error("Unkown dipole property! " + JS.T.nameOf(tok)); +}, "~N,J.shapespecial.Dipole,~N,~N"); +Clazz.overrideMethod(c$, "getPropertyData", +function(property, data){ +if (property === "getNames") { +}if (property === "checkID") { +var key = (data[0]).toUpperCase(); +var isWild = JU.PT.isWild(key); +for (var i = this.dipoleCount; --i >= 0; ) { +var id = this.dipoles[i].thisID; +if (id.equalsIgnoreCase(key) || isWild && JU.PT.isMatch(id.toUpperCase(), key, true, true)) { +data[1] = id; +return true; +}} +return false; +}return this.getPropShape(property, data); +}, "~S,~A"); +Clazz.overrideMethod(c$, "getProperty", +function(property, index){ +if (property.equals("list")) { +return this.getShapeState(); +}return null; +}, "~S,~N"); +Clazz.defineMethod(c$, "getBondDipoles", +function(){ +var partialCharges = this.ms.getPartialCharges(); +if (partialCharges == null) return; +this.clear(true); +var bonds = this.ms.bo; +for (var i = this.ms.bondCount; --i >= 0; ) { +var bond = bonds[i]; +if (!bond.isCovalent()) continue; +var c1 = partialCharges[bond.atom1.i]; +var c2 = partialCharges[bond.atom2.i]; +if (c1 != c2) this.setDipoleAtoms(bond.atom1, bond.atom2, c1, c2); +} +}); +Clazz.defineMethod(c$, "isBondDipole", +function(i){ +if (i >= this.dipoles.length || this.dipoles[i] == null) return false; +return (this.dipoles[i].isBondType()); +}, "~N"); +Clazz.defineMethod(c$, "setColixDipole", +function(colix, bondTypeMask, bs){ +if (colix == 2) return; +var iter = this.ms.getBondIteratorForType(bondTypeMask, bs); +while (iter.hasNext()) { +var d = this.findBondDipole(iter.next()); +if (d != null) d.colix = colix; +} +}, "~N,~N,JU.BS"); +Clazz.defineMethod(c$, "setDipole", +function(){ +if (this.currentDipole == null) this.currentDipole = this.allocDipole("", ""); +this.currentDipole.set(this.tempDipole); +this.currentDipole.isUserValue = this.isUserValue; +this.currentDipole.modelIndex = this.vwr.am.cmi; +}); +Clazz.defineMethod(c$, "setDipoleAtoms", +function(atom1, atom2, c1, c2){ +var dipole = this.findAtomDipole(atom1, atom2, true); +var value = (c1 - c2) / 2 * atom1.distance(atom2) / 0.208194; +if (value < 0) { +dipole.set2AtomValue(atom2, atom1, -value); +} else { +dipole.set2AtomValue(atom1, atom2, value); +}dipole.type = 3; +dipole.modelIndex = atom1.mi; +}, "JM.Atom,JM.Atom,~N,~N"); +Clazz.defineMethod(c$, "getDipoleIndexFor", +function(dipoleInfo, thisID){ +if (dipoleInfo != null && dipoleInfo.length > 0) for (var i = this.dipoleCount; --i >= 0; ) if (this.isSameAtoms(this.dipoles[i], dipoleInfo)) return i; + +return this.getIndexFromName(thisID); +}, "~S,~S"); +Clazz.defineMethod(c$, "isSameAtoms", +function(dipole, dipoleInfo){ +return (dipole != null && dipole.isBondType() && (dipole.dipoleInfo + dipole.dipoleInfo).indexOf(dipoleInfo) >= 0); +}, "J.shapespecial.Dipole,~S"); +Clazz.defineMethod(c$, "getDipoleIndex", +function(atomIndex1, atomIndex2){ +for (var i = this.dipoleCount; --i >= 0; ) { +if (this.dipoles[i] != null && this.dipoles[i].atoms[0] != null && this.dipoles[i].atoms[1] != null && (this.dipoles[i].atoms[0].i == atomIndex1 && this.dipoles[i].atoms[1].i == atomIndex2 || this.dipoles[i].atoms[1].i == atomIndex1 && this.dipoles[i].atoms[0].i == atomIndex2)) return i; +} +return -1; +}, "~N,~N"); +Clazz.defineMethod(c$, "deleteDipole", +function(dipole){ +if (dipole == null) return; +if (this.currentDipole === dipole) this.currentDipole = null; +var i; +for (i = this.dipoleCount; this.dipoles[--i] !== dipole; ) { +} +if (i < 0) return; +for (var j = i + 1; j < this.dipoleCount; ++j) this.dipoles[j - 1] = this.dipoles[j]; + +this.dipoles[--this.dipoleCount] = null; +}, "J.shapespecial.Dipole"); +Clazz.defineMethod(c$, "findDipole", +function(thisID){ +var dipoleIndex = this.getIndexFromName(thisID); +if (dipoleIndex >= 0) { +return this.dipoles[dipoleIndex]; +}return null; +}, "~S"); +Clazz.defineMethod(c$, "findAtomDipole", +function(atom1, atom2, doAllocate){ +var dipoleIndex = this.getDipoleIndex(atom1.i, atom2.i); +if (dipoleIndex >= 0) { +return this.dipoles[dipoleIndex]; +}return (doAllocate ? this.allocDipole("", "") : null); +}, "JM.Atom,JM.Atom,~B"); +Clazz.defineMethod(c$, "findBondDipole", +function(bond){ +var d = this.findAtomDipole(bond.atom1, bond.atom2, false); +return (d == null || d.atoms[0] == null ? null : d); +}, "JM.Bond"); +Clazz.defineMethod(c$, "findDipoleFor", +function(thisID, dipoleInfo){ +var dipoleIndex = this.getDipoleIndexFor(dipoleInfo, thisID); +if (dipoleIndex >= 0) { +if (thisID.length > 0) this.dipoles[dipoleIndex].thisID = thisID; +return this.dipoles[dipoleIndex]; +}return this.allocDipole(thisID, dipoleInfo); +}, "~S,~S"); +Clazz.defineMethod(c$, "allocDipole", +function(thisID, dipoleInfo){ +this.dipoles = JU.AU.ensureLength(this.dipoles, this.dipoleCount + 1); +if (thisID == null || thisID.length == 0) thisID = "dipole" + (this.dipoleCount + 1); +var d = this.dipoles[this.dipoleCount++] = new J.shapespecial.Dipole().init(this.vwr.am.cmi, thisID, dipoleInfo, this.colix, 10, true); +return d; +}, "~S,~S"); +Clazz.defineMethod(c$, "dumpDipoles", +function(msg){ +for (var i = this.dipoleCount; --i >= 0; ) { +var dipole = this.dipoles[i]; +JU.Logger.info("\n\n" + msg + " dump dipole " + i + " " + dipole + " " + dipole.thisID + " " + dipole.dipoleInfo + " " + dipole.visibilityFlags + " mad=" + dipole.mad + " vis=" + dipole.visible + "\n orig" + dipole.origin + " " + " vect" + dipole.vector + " val=" + dipole.dipoleValue); +} +if (this.currentDipole != null) JU.Logger.info(" current = " + this.currentDipole + this.currentDipole.origin); +if (this.tempDipole != null) JU.Logger.info(" temp = " + this.tempDipole + " " + this.tempDipole.origin); +}, "~S"); +Clazz.defineMethod(c$, "clear", +function(clearBondDipolesOnly){ +if (clearBondDipolesOnly) { +for (var i = this.dipoleCount; --i >= 0; ) if (this.isBondDipole(i)) this.deleteDipole(this.dipoles[i]); + +return; +}for (var i = this.dipoleCount; --i >= 0; ) if (!this.isBond || this.isBondDipole(i)) this.deleteDipole(this.dipoles[i]); + +}, "~B"); +Clazz.overrideMethod(c$, "getIndexFromName", +function(thisID){ +if (thisID == null) return -1; +for (var i = this.dipoleCount; --i >= 0; ) { +if (this.dipoles[i] != null && thisID.equals(this.dipoles[i].thisID)) return i; +} +return -1; +}, "~S"); +Clazz.overrideMethod(c$, "getShapeDetail", +function(){ +var V = new JU.Lst(); +var atomInfo; +var ptTemp = new JU.P3(); +for (var i = 0; i < this.dipoleCount; i++) { +var info = new java.util.Hashtable(); +var dipole = this.dipoles[i]; +info.put("ID", dipole.thisID); +info.put("vector", dipole.vector); +info.put("origin", dipole.origin); +if (dipole.bsMolecule != null) { +info.put("bsMolecule", dipole.bsMolecule); +} else if (dipole.atoms[0] != null) { +atomInfo = new java.util.Hashtable(); +this.ms.getAtomIdentityInfo(dipole.atoms[0].i, atomInfo, ptTemp); +var atoms = new JU.Lst(); +atoms.addLast(atomInfo); +atomInfo = new java.util.Hashtable(); +this.ms.getAtomIdentityInfo(dipole.atoms[1].i, atomInfo, ptTemp); +atoms.addLast(atomInfo); +info.put("atoms", atoms); +info.put("magnitude", Float.$valueOf(dipole.vector.length())); +}V.addLast(info); +} +return V; +}); +Clazz.defineMethod(c$, "setModelIndex", +function(){ +if (this.currentDipole == null) return; +this.currentDipole.visible = true; +this.currentDipole.modelIndex = this.vwr.am.cmi; +}); +Clazz.overrideMethod(c$, "setModelVisibilityFlags", +function(bsModels){ +for (var i = this.dipoleCount; --i >= 0; ) { +var dipole = this.dipoles[i]; +dipole.visibilityFlags = ((dipole.modelIndex < 0 || bsModels.get(dipole.modelIndex)) && dipole.mad != 0 && dipole.visible && dipole.origin != null && dipole.vector != null && dipole.vector.length() != 0 && dipole.dipoleValue != 0 ? this.vf : 0); +} +}, "JU.BS"); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +if (this.dipoleCount == 0) return ""; +var s = new JU.SB(); +var thisModel = -1; +var modelCount = this.ms.mc; +for (var i = 0; i < this.dipoleCount; i++) { +var dipole = this.dipoles[i]; +if (dipole.isValid) { +if (modelCount > 1 && dipole.modelIndex != thisModel) J.shape.Shape.appendCmd(s, "frame " + this.vwr.getModelNumberDotted(thisModel = dipole.modelIndex)); +s.append(dipole.getShapeState()); +J.shape.Shape.appendCmd(s, J.shape.Shape.getColorCommandUnk("dipole", dipole.colix, this.translucentAllowed)); +}} +return s.toString(); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Dots.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Dots.js new file mode 100755 index 000000000000..0ea6407366ca --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Dots.js @@ -0,0 +1,186 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(["J.shape.AtomShape", "JU.BS", "J.atomdata.RadiusData"], "J.shapespecial.Dots", ["java.util.Hashtable", "JU.M3", "$.SB", "J.c.VDW", "J.geodesic.EnvelopeCalculation", "JU.BSUtil", "$.C", "$.Escape"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.ec = null; +this.isSurface = false; +this.bsOn = null; +this.bsSelected = null; +this.bsIgnore = null; +this.thisAtom = 0; +this.thisRadius = 0; +this.thisArgb = 0; +this.rdLast = null; +Clazz.instantialize(this, arguments);}, J.shapespecial, "Dots", J.shape.AtomShape); +Clazz.prepareFields (c$, function(){ +this.bsOn = new JU.BS(); +this.rdLast = new J.atomdata.RadiusData(null, 0, null, null); +}); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shapespecial.Dots, "initShape", []); +this.translucentAllowed = false; +this.ec = new J.geodesic.EnvelopeCalculation().set(this.vwr, this.ms.ac, this.mads); +}); +Clazz.overrideMethod(c$, "getSize", +function(atomIndex){ +return (this.mads != null ? this.mads[atomIndex] * 2 : this.bsOn.get(atomIndex) ? Clazz.doubleToInt(Math.floor(this.ec.getRadius(atomIndex) * 2000)) : 0); +}, "~N"); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("init" === propertyName) { +this.initialize(); +return; +}if ("translucency" === propertyName) { +if (!this.translucentAllowed) return; +}if ("ignore" === propertyName) { +this.bsIgnore = value; +return; +}if ("select" === propertyName) { +this.bsSelected = value; +return; +}if ("radius" === propertyName) { +this.thisRadius = (value).floatValue(); +if (this.thisRadius > 16) this.thisRadius = 16.1; +return; +}if ("colorRGB" === propertyName) { +this.thisArgb = (value).intValue(); +return; +}if ("atom" === propertyName) { +this.thisAtom = (value).intValue(); +if (this.thisAtom >= this.ms.at.length) return; +this.ms.at[this.thisAtom].setShapeVisibility(this.vf, true); +this.ec.allocDotsConvexMaps(this.ms.ac); +return; +}if ("dots" === propertyName) { +var atoms = this.ms.at; +if (this.thisAtom >= atoms.length) return; +this.isActive = true; +this.ec.setFromBits(this.thisAtom, value); +atoms[this.thisAtom].setShapeVisibility(this.vf, true); +var ac = this.ms.ac; +if (this.mads == null) { +this.ec.setMads(null); +this.mads = Clazz.newShortArray (ac, 0); +for (var i = 0; i < ac; i++) if (atoms[i] != null && atoms[i].isVisible(1 | this.vf)) try { +this.mads[i] = Clazz.floatToShort(this.ec.getAppropriateRadius(i) * 1000); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} + +this.ec.setMads(this.mads); +}this.mads[this.thisAtom] = Clazz.floatToShort(this.thisRadius * 1000); +if (this.colixes == null) this.checkColixLength(4, ac); +this.colixes[this.thisAtom] = JU.C.getColix(this.thisArgb); +this.bsOn.set(this.thisAtom); +return; +}if ("refreshTrajectories" === propertyName) { +bs = (value)[1]; +var m4 = (value)[2]; +if (m4 == null) return; +var m = new JU.M3(); +m4.getRotationScale(m); +this.ec.reCalculate(bs, m); +return; +}if (propertyName === "deleteModelAtoms") { +var firstAtomDeleted = ((value)[2])[1]; +var nAtomsDeleted = ((value)[2])[2]; +JU.BSUtil.deleteBits(this.bsOn, bs); +this.ec.deleteAtoms(firstAtomDeleted, nAtomsDeleted); +}this.setPropAS(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "initialize", +function(){ +this.bsSelected = null; +this.bsIgnore = null; +this.isActive = false; +if (this.ec == null) this.ec = new J.geodesic.EnvelopeCalculation().set(this.vwr, this.ms.ac, this.mads); +}); +Clazz.overrideMethod(c$, "setSizeRD", +function(rd, bsSelected){ +if (rd == null) rd = new J.atomdata.RadiusData(null, 0, J.atomdata.RadiusData.EnumType.ABSOLUTE, null); +if (this.bsSelected != null) bsSelected = this.bsSelected; +var isVisible = true; +var setRadius = 3.4028235E38; +this.isActive = true; +switch (rd.factorType) { +case J.atomdata.RadiusData.EnumType.OFFSET: +break; +case J.atomdata.RadiusData.EnumType.ABSOLUTE: +if (rd.value == 0) isVisible = false; +setRadius = rd.value; +default: +rd.valueExtended = (this.vwr.getBoolean(603979948) ? this.vwr.getFloat(570425394) : 0); +} +var maxRadius; +switch (rd.vdwType) { +case J.c.VDW.ADPMIN: +case J.c.VDW.ADPMAX: +case J.c.VDW.HYDRO: +case J.c.VDW.TEMP: +maxRadius = setRadius; +break; +case J.c.VDW.BONDING: +maxRadius = this.ms.getMaxVanderwaalsRadius() * 2; +break; +default: +maxRadius = this.ms.getMaxVanderwaalsRadius(); +} +var newSet = (this.rdLast.value != rd.value || this.rdLast.valueExtended != rd.valueExtended || this.rdLast.factorType !== rd.factorType || this.rdLast.vdwType !== rd.vdwType || this.ec.getDotsConvexMax() == 0); +if (isVisible) { +for (var i = bsSelected.nextSetBit(0); i >= 0; i = bsSelected.nextSetBit(i + 1)) if (!this.bsOn.get(i)) { +this.bsOn.set(i); +newSet = true; +} +} else { +var isAll = (bsSelected == null); +var i0 = (isAll ? this.ms.ac - 1 : bsSelected.nextSetBit(0)); +for (var i = i0; i >= 0; i = (isAll ? i - 1 : bsSelected.nextSetBit(i + 1))) this.bsOn.setBitTo(i, false); + +}var atoms = this.ms.at; +for (var i = this.ms.ac; --i >= 0; ) if (atoms[i] != null) atoms[i].setShapeVisibility(this.vf, this.bsOn.get(i)); + +if (!isVisible) return; +if (newSet) { +this.mads = null; +this.ec.newSet(); +}var dotsConvexMaps = this.ec.getDotsConvexMaps(); +if (dotsConvexMaps != null) { +for (var i = this.ms.ac; --i >= 0; ) if (atoms[i] != null && this.bsOn.get(i)) { +dotsConvexMaps[i] = null; +} +}if (dotsConvexMaps == null && (this.colixes == null || this.colixes.length != this.ms.ac)) this.checkColixLength(4, this.ms.ac); +this.ec.calculate(rd, maxRadius, this.bsOn, this.bsIgnore, !this.vwr.getBoolean(603979830), this.vwr.getBoolean(603979829), this.isSurface, true); +this.rdLast = rd; +}, "J.atomdata.RadiusData,JU.BS"); +Clazz.overrideMethod(c$, "setAtomClickability", +function(){ +for (var i = this.ms.ac; --i >= 0; ) { +var atom = this.ms.at[i]; +if (atom != null && ((atom.shapeVisibilityFlags & this.vf) == 0 || this.ms.isAtomHidden(i))) continue; +atom.setClickable(this.vf); +} +}); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +var dotsConvexMaps = this.ec.getDotsConvexMaps(); +if (dotsConvexMaps == null || this.ec.getDotsConvexMax() == 0) return ""; +var s = new JU.SB(); +var temp = new java.util.Hashtable(); +var ac = this.ms.ac; +var type = (this.isSurface ? "geoSurface " : "dots "); +for (var i = 0; i < ac; i++) { +if (!this.bsOn.get(i) || dotsConvexMaps[i] == null) continue; +if (this.bsColixSet != null && this.bsColixSet.get(i)) JU.BSUtil.setMapBitSet(temp, i, i, J.shape.Shape.getColorCommand(type, this.paletteIDs[i], this.colixes[i], this.translucentAllowed)); +var bs = dotsConvexMaps[i]; +if (!bs.isEmpty()) { +var r = this.ec.getAppropriateRadius(i); +J.shape.Shape.appendCmd(s, type + i + " radius " + r + " " + JU.Escape.eBS(bs)); +}} +return s.append(this.vwr.getCommands(temp, null, "select")).toString(); +}); +c$.MAX_LEVEL = 3; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Draw.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Draw.js new file mode 100755 index 000000000000..48de3fad2e92 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Draw.js @@ -0,0 +1,1261 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(["java.lang.Enum", "J.shape.MeshCollection", "JU.P3i", "$.V3"], "J.shapespecial.Draw", ["java.util.Hashtable", "JU.AU", "$.BS", "$.Lst", "$.Measure", "$.P3", "$.PT", "$.SB", "JS.SV", "J.shapespecial.DrawMesh", "JU.BSUtil", "$.C", "$.Escape", "$.Font", "$.Logger", "$.MeshSurface"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.dmeshes = null; +this.thisMesh = null; +this.ptList = null; +this.offset = null; +this.nPoints = 0; +this.diameter = 0; +this.width = 0; +this.newScale = 0; +this.length = 0; +this.isCurve = false; +this.isArc = false; +this.isArrow = false; +this.isLine = false; +this.isVector = false; +this.isCircle = false; +this.isPerpendicular = false; +this.isCylinder = false; +this.isVertices = false; +this.isPlane = false; +this.isReversed = false; +this.isRotated45 = false; +this.isCrossed = false; +this.isValid = false; +this.noHead = false; +this.isBarb = false; +this.indicatedModelIndex = -1; +this.indicatedModelOnly = false; +this.modelInfo = null; +this.makePoints = false; +this.plane = null; +this.bsAllModels = null; +this.polygon = null; +this.vData = null; +this.intersectID = null; +this.lineData = null; +this.defaultFontId0 = -1; +this.defaultFontId = -1; +this.thisFontID = -1; +this.titleColor = null; +this.slabData = null; +this.vAB = null; +this.ptXY = null; +this.defaultFontSize = 16.0; +this.pm2 = null; +this.dmin22 = 0; +this.pmod2 = 0; +this.pickedVertex2 = 0; +this.pickedPoint2 = null; +Clazz.instantialize(this, arguments);}, J.shapespecial, "Draw", J.shape.MeshCollection); +Clazz.prepareFields (c$, function(){ +this.dmeshes = new Array(4); +this.offset = new JU.V3(); +this.vAB = new JU.V3(); +this.ptXY = new JU.P3i(); +}); +Clazz.makeConstructor(c$, +function(){ +Clazz.superConstructor (this, J.shapespecial.Draw, []); +this.htObjects = new java.util.Hashtable(); +}); +Clazz.overrideMethod(c$, "allocMesh", +function(thisID, m){ +var index = this.meshCount++; +this.meshes = this.dmeshes = JU.AU.ensureLength(this.dmeshes, this.meshCount * 2); +this.currentMesh = this.thisMesh = this.dmeshes[index] = (m == null ? new J.shapespecial.DrawMesh(this.vwr, thisID, this.colix, index) : m); +this.currentMesh.color = this.color; +this.currentMesh.index = index; +if (thisID != null && thisID !== "+PREVIOUS_MESH+" && this.htObjects != null) this.htObjects.put(thisID.toUpperCase(), this.currentMesh); +}, "~S,J.shape.Mesh"); +Clazz.defineMethod(c$, "setPropertySuper", +function(propertyName, value, bs){ +this.currentMesh = this.thisMesh; +this.setPropMC(propertyName, value, bs); +this.thisMesh = this.currentMesh; +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.setMeshColor(); +this.myType = "draw"; +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("init" === propertyName) { +this.initDraw(); +this.setPropertySuper("init", value, bs); +return; +}if ("font" === propertyName) { +this.defaultFontId = (value == null ? -1 : (value).fid); +this.defaultFontSize = (value == null ? 16.0 : (value).fontSize); +return; +}if ("myfont" === propertyName) { +this.thisFontID = (value).fid; +if (this.thisMesh != null) { +this.thisMesh.fontID = this.thisFontID; +}return; +}if ("length" === propertyName) { +this.length = (value).floatValue(); +return; +}if ("fixed" === propertyName) { +this.isFixed = (value).booleanValue(); +return; +}if ("intersect" === propertyName) { +this.intersectID = value; +return; +}if ("slab" === propertyName) { +var meshIndex = this.getIndexFromName(value); +if (meshIndex < 0) { +return; +}var m = this.meshes[meshIndex]; +if (m.checkByteCount != 1) return; +var ms = new JU.MeshSurface(); +ms.vs = m.vs; +ms.vvs = Clazz.newFloatArray (m.vc, 0); +ms.vc = m.vc; +ms.pis = m.pis; +ms.pc = m.pc; +ms.dataOnly = true; +this.slabData = ms; +}if ("lineData" === propertyName) { +this.lineData = new JU.Lst(); +if (this.indicatedModelIndex < 0) this.indicatedModelIndex = this.vwr.am.cmi; +var fdata = value; +var n = Clazz.doubleToInt(fdata.length / 6); +for (var i = 0, pt = 0; i < n; i++) this.lineData.addLast( Clazz.newArray(-1, [JU.P3.new3(fdata[pt++], fdata[pt++], fdata[pt++]), JU.P3.new3(fdata[pt++], fdata[pt++], fdata[pt++])])); + +return; +}if ("modelIndex" === propertyName) { +this.indicatedModelIndex = (value).intValue(); +if (this.indicatedModelIndex < 0 || this.indicatedModelIndex >= this.ms.mc) return; +this.vData.addLast( Clazz.newArray(-1, [Integer.$valueOf(4), (this.modelInfo = Clazz.newIntArray(-1, [this.indicatedModelIndex, 0]))])); +if (this.thisMesh.thisID.startsWith("_!_")) this.indicatedModelOnly = true; +return; +}if ("planedef" === propertyName) { +this.plane = value; +if (this.intersectID != null || this.slabData != null) return; +if (this.isCircle || this.isArc) this.isPlane = true; +this.vData.addLast( Clazz.newArray(-1, [Integer.$valueOf(1), JU.P3.new3(NaN, NaN, NaN)])); +return; +}if ("perp" === propertyName) { +this.isPerpendicular = true; +return; +}if ("cylinder" === propertyName) { +this.isCylinder = true; +return; +}if ("plane" === propertyName) { +this.isPlane = true; +return; +}if ("curve" === propertyName) { +this.isCurve = true; +return; +}if ("arrow" === propertyName) { +this.isArrow = true; +return; +}if ("line" === propertyName) { +this.isLine = true; +this.isCurve = true; +return; +}if ("arc" === propertyName) { +this.isCurve = true; +this.isArc = true; +if (this.isArrow) { +this.isArrow = false; +this.isVector = true; +}return; +}if ("circle" === propertyName) { +this.isCircle = true; +return; +}if ("vector" === propertyName) { +this.isArrow = true; +this.isVector = true; +return; +}if ("vertices" === propertyName) { +this.isVertices = true; +return; +}if ("reverse" === propertyName) { +this.isReversed = true; +return; +}if ("nohead" === propertyName) { +this.noHead = true; +return; +}if ("isbarb" === propertyName) { +this.isBarb = true; +return; +}if ("rotate45" === propertyName) { +this.isRotated45 = true; +return; +}if ("crossed" === propertyName) { +this.isCrossed = true; +return; +}if ("points" === propertyName) { +this.newScale = (value).floatValue() / 100; +if (this.newScale == 0) this.newScale = 1; +return; +}if ("scale" === propertyName) { +this.newScale = (value).floatValue() / 100; +if (this.newScale == 0) this.newScale = 0.01; +if (this.thisMesh != null) { +this.scale(this.thisMesh, this.newScale); +this.thisMesh.initialize(1073741964, null, null); +}return; +}if ("diameter" === propertyName) { +this.diameter = (value).intValue(); +return; +}if ("width" === propertyName) { +this.width = (value).floatValue(); +return; +}if ("identifier" === propertyName) { +var thisID = value; +var meshIndex = this.getIndexFromName(thisID); +if (meshIndex >= 0) { +this.vData.addLast( Clazz.newArray(-1, [Integer.$valueOf(2), Clazz.newIntArray(-1, [meshIndex, this.isReversed ? 1 : 0, this.isVertices ? 1 : 0])])); +this.isReversed = this.isVertices = false; +} else { +JU.Logger.error("draw identifier " + value + " not found"); +this.isValid = false; +}return; +}if ("polygon" === propertyName) { +this.polygon = value; +if (this.polygon == null) this.polygon = new JU.Lst(); +return; +}if ("coord" === propertyName) { +this.vData.addLast( Clazz.newArray(-1, [Integer.$valueOf(1), value])); +if (this.indicatedModelIndex >= 0) this.modelInfo[1]++; +return; +}if ("offset" === propertyName) { +this.offset = JU.V3.newV(value); +if (this.thisMesh != null) this.thisMesh.offset(this.offset); +return; +}if ("atomSet" === propertyName) { +var bsAtoms = value; +if (bsAtoms.isEmpty()) return; +this.vData.addLast( Clazz.newArray(-1, [Integer.$valueOf(3), bsAtoms])); +if (this.isCircle && this.diameter == 0 && this.width == 0) this.width = this.ms.calcRotationRadiusBs(bsAtoms) * 2.0; +return; +}if ("coords" === propertyName) { +this.addPoints(1, value); +return; +}if ("modelBasedPoints" === propertyName) { +this.addPoints(5, value); +return; +}if ("hoverlabel" === propertyName) { +propertyName = "title"; +value = " " + value; +}if ("title" === propertyName) { +if (this.thisMesh != null) { +this.thisMesh.title = this.setTitle(value); +return; +}}if ("titlecolor" === propertyName) { +var c = (value); +this.titleColor = c; +if (this.thisMesh != null) { +this.thisMesh.titleColor = c; +}return; +}if ("set" === propertyName) { +if (this.thisMesh == null) { +this.allocMesh(null, null); +this.thisMesh.colix = this.colix; +this.thisMesh.color = this.color; +}this.thisMesh.isValid = (this.isValid ? this.setDrawing(value) : false); +if (this.thisMesh.isValid) { +if (this.thisMesh.vc > 2 && this.length != 3.4028235E38 && this.newScale == 1) this.newScale = this.length; +this.scale(this.thisMesh, this.newScale); +this.thisMesh.initialize(1073741964, null, null); +J.shapespecial.Draw.setAxes(this.thisMesh); +this.thisMesh.title = this.title; +this.thisMesh.titleColor = this.titleColor; +this.thisMesh.fontID = this.thisFontID; +this.thisMesh.visible = true; +}this.nPoints = -1; +this.vData = null; +this.lineData = null; +return; +}if (propertyName === "deleteModelAtoms") { +this.deleteModels(((value)[2])[0]); +return; +}this.setPropertySuper(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "deleteModels", +function(modelIndex){ +for (var i = this.meshCount; --i >= 0; ) { +var m = this.dmeshes[i]; +if (m == null) continue; +var deleteMesh = (m.modelIndex == modelIndex); +if (m.modelFlags != null) { +m.deleteAtoms(modelIndex); +deleteMesh = (m.modelFlags.length() == 0); +if (!deleteMesh) continue; +}if (deleteMesh) { +this.meshCount--; +this.deleteMeshElement(i); +} else if (this.meshes[i].modelIndex > modelIndex) { +this.meshes[i].modelIndex--; +}} +this.resetObjects(); +}, "~N"); +Clazz.defineMethod(c$, "setTitle", +function(value){ +if ((typeof(value)=='string')) { +var lines = value; +if (lines.startsWith(" ")) { +var s = lines.substring(7); +var i = s.indexOf(" "); +if (i >= 0) { +this.thisMesh.hoverLabel = s.substring(0, i); +value = s.substring(i + 8); +} else { +this.thisMesh.hoverLabel = s; +value = ""; +}}}return Clazz.superCall(this, J.shapespecial.Draw, "setTitle", [value]); +}, "~O"); +Clazz.defineMethod(c$, "deleteMeshElement", +function(i){ +if (this.meshes[i] === this.currentMesh) this.currentMesh = this.thisMesh = null; +this.meshes = this.dmeshes = JU.AU.deleteElements(this.meshes, i, 1); +}, "~N"); +Clazz.defineMethod(c$, "initDraw", +function(){ +this.bsAllModels = null; +this.colix = 5; +this.color = 0xFFFFFFFF; +this.diameter = 0; +this.explicitID = false; +this.thisFontID = -1; +this.indicatedModelIndex = -1; +this.indicatedModelOnly = false; +this.intersectID = null; +this.isCurve = this.isArc = this.isArrow = this.isPlane = this.isCircle = this.isCylinder = this.isLine = false; +this.isFixed = this.isReversed = this.isRotated45 = this.isCrossed = this.noHead = this.isBarb = false; +this.isPerpendicular = this.isVertices = this.isVector = false; +this.isValid = true; +this.length = 3.4028235E38; +this.lineData = null; +this.newScale = 0; +this.offset = null; +this.plane = null; +this.polygon = null; +this.slabData = null; +this.titleColor = null; +this.vData = new JU.Lst(); +this.width = 0; +this.setPropertySuper("thisID", "+PREVIOUS_MESH+", null); +}); +Clazz.overrideMethod(c$, "getPropertyData", +function(property, data){ +if (property === "keys") { +var keys = (Clazz.instanceOf(data[1],"JU.Lst") ? data[1] : new JU.Lst()); +data[1] = keys; +keys.addLast("getSpinAxis"); +}if (property === "getCenter") { +var id = data[0]; +var index = (data[1]).intValue(); +var modelIndex = (data[2]).intValue(); +data[2] = this.getSpinCenter(id, index, modelIndex); +return (data[2] != null); +}if (property === "getSpinAxis") { +var id = data[0]; +var index = (data[1]).intValue(); +data[2] = this.getSpinAxis(id, index); +return (data[2] != null); +}return this.getPropDataMC(property, data); +}, "~S,~A"); +Clazz.overrideMethod(c$, "getProperty", +function(property, index){ +var m = this.thisMesh; +if (index >= 0 && (index >= this.meshCount || (m = this.meshes[index]) == null)) return null; +if (property.equals("font")) { +if (this.defaultFontId < 0) { +this.setProperty("font", this.vwr.gdata.getFont3DFSS("SansSerif", "Plain", this.vwr.getFloat(570425355)), null); +this.defaultFontId0 = this.defaultFontId; +}return JU.Font.getFont3D(index < 0 || m.fontID < 0 ? this.defaultFontId : m.fontID); +}if (property === "command") return this.getCommand(m); +if (property === "type") return Integer.$valueOf(m == null ? J.shapespecial.Draw.EnumDrawType.NONE.id : m.drawType.id); +return this.getPropMC(property, index); +}, "~S,~N"); +Clazz.defineMethod(c$, "getSpinCenter", +function(axisID, vertexIndex, modelIndex){ +var id; +var pt = axisID.indexOf("["); +var pt2; +if (pt > 0) { +id = axisID.substring(0, pt); +if ((pt2 = axisID.lastIndexOf("]")) < pt) pt2 = axisID.length; +try { +vertexIndex = Integer.parseInt(axisID.substring(pt + 1, pt2)); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +} else { +id = axisID; +}var m = this.getMesh(id); +if (m == null || m.vs == null) return null; +if (vertexIndex == 2147483647) return JU.P3.new3(m.index + 1, this.meshCount, m.vc); +if (vertexIndex != -2147483648) vertexIndex = m.getVertexIndexFromNumber(vertexIndex); +return (vertexIndex >= 0 ? m.vs[vertexIndex] : m.ptCenters == null || modelIndex < 0 || modelIndex >= m.ptCenters.length ? m.ptCenter : m.ptCenters[modelIndex]); +}, "~S,~N,~N"); +Clazz.defineMethod(c$, "getSpinAxis", +function(axisID, modelIndex){ +var m = this.getMesh(axisID); +return (m == null || m.vs == null ? null : m.ptCenters == null || modelIndex < 0 ? m.axis : m.axes[modelIndex]); +}, "~S,~N"); +Clazz.defineMethod(c$, "setDrawing", +function(connections){ +if (this.thisMesh == null) this.allocMesh(null, null); +this.thisMesh.clear("draw"); +this.thisMesh.diameter = this.diameter; +this.thisMesh.width = this.width; +if (this.plane != null) { +if (this.intersectID != null) { +var vData = new JU.Lst(); +var data = Clazz.newArray(-1, [this.intersectID, this.plane, vData, null]); +this.vwr.shm.getShapePropertyData(24, "intersectPlane", data); +if (vData.size() > 0) { +this.indicatedModelIndex = (data[3]).intValue(); +this.lineData = vData; +}} else if (this.slabData != null) { +this.slabData.getMeshSlicer().getIntersection(0, this.plane, null, null, null, null, null, false, true, 134217750, false); +this.polygon = new JU.Lst(); +this.polygon.addLast(this.slabData.vs); +this.polygon.addLast(this.slabData.pis); +}}if (this.polygon == null && (this.lineData != null ? this.lineData.size() == 0 : (this.vData.size() == 0) == (connections == null)) || !this.isArrow && connections != null) return false; +var modelCount = this.ms.mc; +if (this.polygon != null || this.lineData != null || this.indicatedModelIndex < 0 && (this.isFixed || this.isArrow || this.isCurve || this.isCircle || this.isCylinder || modelCount == 1)) { +this.thisMesh.modelIndex = (this.lineData == null ? this.vwr.am.cmi : this.indicatedModelIndex); +this.thisMesh.isFixed = (this.isFixed || this.lineData == null && this.thisMesh.modelIndex < 0 && modelCount > 1); +if (this.isFixed && modelCount > 1) this.thisMesh.modelIndex = -1; + else if (this.lineData == null && this.thisMesh.modelIndex < 0) this.thisMesh.modelIndex = 0; +this.thisMesh.ptCenters = null; +this.thisMesh.modelFlags = null; +this.thisMesh.drawTypes = null; +this.thisMesh.drawVertexCounts = null; +this.thisMesh.connectedAtoms = connections; +if (this.polygon != null) { +if (this.polygon.size() == 0) return false; +this.thisMesh.isDrawPolygon = true; +this.thisMesh.vs = this.polygon.get(0); +this.thisMesh.pis = this.polygon.get(1); +this.thisMesh.drawVertexCount = this.thisMesh.vc = this.thisMesh.vs.length; +this.thisMesh.pc = (this.thisMesh.pis == null ? -1 : this.thisMesh.pis.length); +for (var i = 0; i < this.thisMesh.pc; i++) { +for (var j = 0; j < 3; j++) if (this.thisMesh.pis[i][j] >= this.thisMesh.vc) return false; + +} +this.thisMesh.drawType = J.shapespecial.Draw.EnumDrawType.POLYGON; +this.thisMesh.checkByteCount = 1; +} else if (this.lineData != null) { +this.thisMesh.lineData = this.lineData; +} else { +this.thisMesh.setPolygonCount(1); +if (this.setPoints(-1, -1)) this.setPoints(-1, this.nPoints); +this.setPolygon(0); +}} else { +this.thisMesh.modelIndex = -1; +this.thisMesh.setPolygonCount(modelCount); +this.thisMesh.ptCenters = new Array(modelCount); +this.thisMesh.modelFlags = new JU.BS(); +this.thisMesh.drawTypes = new Array(modelCount); +this.thisMesh.drawVertexCounts = Clazz.newIntArray (modelCount, 0); +this.thisMesh.vc = 0; +if (this.indicatedModelIndex >= 0) { +this.setPoints(-1, 0); +this.thisMesh.thisModelOnly = this.indicatedModelOnly; +this.thisMesh.drawType = J.shapespecial.Draw.EnumDrawType.MULTIPLE; +this.thisMesh.drawVertexCount = -1; +this.thisMesh.modelFlags.set(this.indicatedModelIndex); +this.indicatedModelIndex = -1; +} else { +var bsModels = this.vwr.getVisibleFramesBitSet(); +for (var iModel = 0; iModel < modelCount; iModel++) { +if (bsModels.get(iModel) && this.setPoints(iModel, -1)) { +this.setPoints(iModel, this.nPoints); +this.setPolygon(iModel); +this.thisMesh.setCenter(iModel); +this.thisMesh.drawTypes[iModel] = this.thisMesh.drawType; +this.thisMesh.drawVertexCounts[iModel] = this.thisMesh.drawVertexCount; +this.thisMesh.drawType = J.shapespecial.Draw.EnumDrawType.MULTIPLE; +this.thisMesh.drawVertexCount = -1; +this.thisMesh.modelFlags.set(iModel); +} else { +this.thisMesh.drawTypes[iModel] = J.shapespecial.Draw.EnumDrawType.NONE; +this.thisMesh.pis[iModel] = Clazz.newIntArray (0, 0); +}} +}}this.thisMesh.isVector = this.isVector; +this.thisMesh.noHead = this.noHead; +this.thisMesh.isBarb = this.isBarb; +this.thisMesh.width = (this.thisMesh.drawType === J.shapespecial.Draw.EnumDrawType.CYLINDER || this.thisMesh.drawType === J.shapespecial.Draw.EnumDrawType.CIRCULARPLANE ? -Math.abs(this.width) : this.width); +this.thisMesh.setCenter(-1); +if (this.offset != null) this.thisMesh.offset(this.offset); +if (this.thisMesh.thisID == null) { +this.thisMesh.thisID = this.thisMesh.drawType.$$name + (++this.nUnnamed); +this.htObjects.put(this.thisMesh.thisID, this.thisMesh); +}this.clean(); +return true; +}, "~A"); +Clazz.overrideMethod(c$, "clean", +function(){ +for (var i = this.meshCount; --i >= 0; ) if (this.meshes[i] == null || this.meshes[i].vc == 0 && this.meshes[i].connectedAtoms == null && this.meshes[i].lineData == null) this.deleteMeshI(i); + +}); +Clazz.defineMethod(c$, "addPoints", +function(type, value){ +var pts = value; +var key = Integer.$valueOf(type); +var isModelPoints = (type == 5); +if (isModelPoints) this.vData.addLast( Clazz.newArray(-1, [key, pts])); +for (var i = 0, n = pts.size(); i < n; i++) { +var o = pts.get(i); +var pt; +if (Clazz.instanceOf(o,"JU.P3")) { +pt = o; +} else { +var v = o; +switch (v.tok) { +case 10: +if (!isModelPoints && (v.value).isEmpty()) continue; +pt = this.ms.getAtomSetCenter(v.value); +break; +case 8: +if (isModelPoints) continue; +default: +pt = JS.SV.ptValue(v); +} +}if (isModelPoints) { +(pts).set(i, JS.SV.getVariable(pt)); +} else { +this.vData.addLast( Clazz.newArray(-1, [key, pt])); +}} +}, "~N,~O"); +Clazz.defineMethod(c$, "addPoint", +function(newPt, iModel){ +if (this.makePoints) { +if (newPt == null || iModel >= 0 && !this.bsAllModels.get(iModel)) return; +this.ptList[this.nPoints] = JU.P3.newP(newPt); +if (J.shapespecial.Draw.is2DPoint(newPt)) this.thisMesh.haveXyPoints = true; +} else if (iModel >= 0) { +this.bsAllModels.set(iModel); +}this.nPoints++; +}, "JU.T3,~N"); +Clazz.defineMethod(c$, "setPoints", +function(iModel, n){ +this.makePoints = (n >= 0); +if (this.makePoints) { +this.ptList = new Array(Math.max(5, n)); +if (this.bsAllModels == null) this.bsAllModels = this.vwr.getVisibleFramesBitSet(); +}this.nPoints = 0; +var nData = this.vData.size(); +var modelIndex = 0; +var bs; +var bsModel = (iModel < 0 ? null : this.vwr.getModelUndeletedAtomsBitSet(iModel)); +for (var i = 0; i < nData; i++) { +var info = this.vData.get(i); +switch ((info[0]).intValue()) { +case 4: +var modelInfo = info[1]; +modelIndex = modelInfo[0]; +this.nPoints = modelInfo[1]; +var nVertices = Math.max(this.nPoints, 3); +var n0 = this.thisMesh.vc; +if (this.nPoints > 0) { +var p = this.thisMesh.pis[modelIndex] = Clazz.newIntArray (nVertices, 0); +var pt = null; +for (var j = 0; j < this.nPoints; j++) { +info = this.vData.get(++i); +p[j] = this.thisMesh.addV(pt = info[1], false); +} +for (var j = this.nPoints; j < 3; j++) { +p[j] = n0 + this.nPoints - 1; +} +this.thisMesh.haveXyPoints = J.shapespecial.Draw.is2DPoint(pt); +this.thisMesh.drawTypes[modelIndex] = J.shapespecial.Draw.EnumDrawType.getType(this.nPoints); +this.thisMesh.drawVertexCounts[modelIndex] = this.nPoints; +this.thisMesh.modelFlags.set(modelIndex); +}break; +case 1: +this.addPoint(info[1], (this.makePoints ? iModel : -1)); +break; +case 3: +bs = JU.BSUtil.copy(info[1]); +if (bsModel != null) bs.and(bsModel); +if (bs.length() > 0) this.addPoint(this.ms.getAtomSetCenter(bs), (this.makePoints ? iModel : -1)); +break; +case 2: +var idInfo = info[1]; +var m = this.dmeshes[idInfo[0]]; +var isReversed = (idInfo[1] == 1); +var isVertices = (idInfo[2] == 1); +if (m.modelIndex > 0 && m.modelIndex != iModel) return false; +if (this.bsAllModels == null) this.bsAllModels = new JU.BS(); +if (this.isPlane && !this.isCircle || this.isPerpendicular || isVertices) { +if (isReversed) { +if (iModel < 0 || iModel >= m.pc) for (var ipt = m.drawVertexCount; --ipt >= 0; ) this.addPoint(m.vs[ipt], iModel); + + else if (m.pis[iModel] != null) for (var ipt = m.drawVertexCounts[iModel]; --ipt >= 0; ) this.addPoint(m.vs[m.pis[iModel][ipt]], iModel); + +} else { +if (iModel < 0 || iModel >= m.pc) for (var ipt = 0; ipt < m.drawVertexCount; ipt++) this.addPoint(m.vs[ipt], iModel); + + else if (m.pis[iModel] != null) for (var ipt = 0; ipt < m.drawVertexCounts[iModel]; ipt++) this.addPoint(m.vs[m.pis[iModel][ipt]], iModel); + +}} else { +if (iModel < 0 || m.ptCenters == null || m.ptCenters[iModel] == null) this.addPoint(m.ptCenter, iModel); + else this.addPoint(m.ptCenters[iModel], iModel); +}break; +case 5: +var modelBasedPoints = info[1]; +if (this.bsAllModels == null) this.bsAllModels = new JU.BS(); +for (var j = 0; j < modelBasedPoints.size(); j++) if (iModel < 0 || j == iModel) { +var point = modelBasedPoints.get(j); +this.bsAllModels.set(j); +if (Clazz.instanceOf(point,"JU.P3")) { +this.addPoint(point, j); +} else if (Clazz.instanceOf(point,"JU.BS")) { +bs = point; +if (bsModel != null) bs.and(bsModel); +if (bs.length() > 0) this.addPoint(this.ms.getAtomSetCenter(bs), j); +} else if (Clazz.instanceOf(point,"JS.SV")) { +this.addPoint(JS.SV.ptValue(point), j); +}} +break; +} +} +if (this.makePoints && this.isCrossed && this.nPoints == 4) { +var pt = this.ptList[1]; +this.ptList[1] = this.ptList[2]; +this.ptList[2] = pt; +}return (this.nPoints > 0); +}, "~N,~N"); +Clazz.defineMethod(c$, "setPolygon", +function(nPoly){ +var nVertices = this.nPoints; +var drawType = J.shapespecial.Draw.EnumDrawType.POINT; +if (this.isArc) { +if (nVertices >= 2) { +drawType = J.shapespecial.Draw.EnumDrawType.ARC; +} else { +this.isArc = false; +this.isVector = false; +this.isCurve = false; +this.isArrow = true; +}}if (this.isCircle) { +this.length = 0; +if (nVertices == 2) this.isPlane = true; +if (!this.isPlane) drawType = J.shapespecial.Draw.EnumDrawType.CIRCLE; +if (this.width == 0) this.width = 1; +} else if ((this.isCurve || this.isArrow) && nVertices >= 2 && !this.isArc) { +drawType = (this.isLine ? J.shapespecial.Draw.EnumDrawType.LINE_SEGMENT : this.isCurve ? J.shapespecial.Draw.EnumDrawType.CURVE : J.shapespecial.Draw.EnumDrawType.ARROW); +}if (this.isVector && !this.isArc) { +if (nVertices > 2) nVertices = 2; + else if (this.plane == null && nVertices != 2) this.isVector = false; +}if (this.thisMesh.haveXyPoints) { +this.isPerpendicular = false; +if (nVertices == 3 && this.isPlane) this.isPlane = false; +this.length = 3.4028235E38; +if (this.isVector) this.thisMesh.diameter = 0; +} else if (nVertices == 2 && this.isVector) { +this.ptList[1].add(this.ptList[0]); +}var dist = 0; +if (this.isArc || this.plane != null && this.isCircle) { +if (this.plane != null) { +dist = JU.Measure.distanceToPlane(this.plane, this.ptList[0]); +var vAC = JU.V3.new3(-this.plane.x, -this.plane.y, -this.plane.z); +vAC.normalize(); +if (dist < 0) vAC.scale(-1); +if (this.isCircle) { +vAC.scale(0.005); +this.ptList[0].sub(vAC); +vAC.scale(2); +}vAC.add(this.ptList[0]); +this.ptList[1] = JU.P3.newP(vAC); +drawType = (this.isArrow ? J.shapespecial.Draw.EnumDrawType.ARROW : this.isArc ? J.shapespecial.Draw.EnumDrawType.ARC : J.shapespecial.Draw.EnumDrawType.CIRCULARPLANE); +}if (this.isArc) { +dist = Math.abs(dist); +if (nVertices > 3) { +} else if (nVertices == 3) { +this.ptList[3] = JU.P3.newP(this.ptList[2]); +this.ptList[2] = J.shapespecial.Draw.randomPoint(); +} else { +if (nVertices == 2) { +this.ptList[2] = J.shapespecial.Draw.randomPoint(); +}this.ptList[3] = JU.P3.new3(0, 360, 0); +}if (this.plane != null) this.ptList[3].z *= dist; +nVertices = 4; +}this.plane = null; +} else if (drawType === J.shapespecial.Draw.EnumDrawType.POINT) { +var pt; +var center = new JU.P3(); +var normal = new JU.V3(); +if (nVertices == 2 && this.plane != null) { +this.ptList[1] = JU.P3.newP(this.ptList[0]); +var vTemp = new JU.V3(); +JU.Measure.getPlaneProjection(this.ptList[1], this.plane, this.ptList[1], vTemp); +nVertices = -2; +if (this.isArrow) drawType = J.shapespecial.Draw.EnumDrawType.ARROW; +this.plane = null; +}if (nVertices == 3 && this.isPlane && !this.isPerpendicular) { +pt = JU.P3.newP(this.ptList[1]); +pt.sub(this.ptList[0]); +pt.scale(0.5); +this.ptList[3] = JU.P3.newP(this.ptList[2]); +this.ptList[2].add(pt); +this.ptList[3].sub(pt); +nVertices = 4; +} else if (nVertices >= 3 && !this.isPlane && this.isPerpendicular) { +JU.Measure.calcNormalizedNormal(this.ptList[0], this.ptList[1], this.ptList[2], normal, this.vAB); +center = new JU.P3(); +JU.Measure.calcAveragePointN(this.ptList, nVertices, center); +dist = (this.length == 3.4028235E38 ? this.ptList[0].distance(center) : this.length); +normal.scale(dist); +this.ptList[0].setT(center); +this.ptList[1].add2(center, normal); +nVertices = 2; +} else if (nVertices == 2 && this.isPerpendicular) { +JU.Measure.calcAveragePoint(this.ptList[0], this.ptList[1], center); +dist = (this.length == 3.4028235E38 ? this.ptList[0].distance(center) : this.length); +if (this.isPlane && this.length != 3.4028235E38) dist /= 2; +if (this.isPlane && this.isRotated45) dist *= 1.4142; +JU.Measure.getNormalToLine(this.ptList[0], this.ptList[1], normal); +normal.scale(dist); +if (this.isPlane) { +this.ptList[2] = JU.P3.newP(center); +this.ptList[2].sub(normal); +pt = JU.P3.newP(center); +pt.add(normal); +JU.Measure.calcNormalizedNormal(this.ptList[0], this.ptList[1], this.ptList[2], normal, this.vAB); +normal.scale(dist); +this.ptList[3] = JU.P3.newP(center); +this.ptList[3].add(normal); +this.ptList[1].sub2(center, normal); +this.ptList[0].setT(pt); +if (this.isRotated45) { +JU.Measure.calcAveragePoint(this.ptList[0], this.ptList[1], this.ptList[0]); +JU.Measure.calcAveragePoint(this.ptList[1], this.ptList[2], this.ptList[1]); +JU.Measure.calcAveragePoint(this.ptList[2], this.ptList[3], this.ptList[2]); +JU.Measure.calcAveragePoint(this.ptList[3], pt, this.ptList[3]); +}nVertices = 4; +} else { +this.ptList[0].sub2(center, normal); +this.ptList[1].add2(center, normal); +}if (this.isArrow && nVertices != -2) this.isArrow = false; +} else if (nVertices == 2 && this.length != 3.4028235E38) { +JU.Measure.calcAveragePoint(this.ptList[0], this.ptList[1], center); +normal.sub2(this.ptList[1], center); +normal.scale(0.5 / normal.length() * (this.length == 0 ? 0.01 : this.length)); +if (this.length == 0) center.setT(this.ptList[0]); +this.ptList[0].sub2(center, normal); +this.ptList[1].add2(center, normal); +}if (nVertices > 4) { +nVertices = 4; +}switch (nVertices) { +case -2: +nVertices = 2; +break; +case 1: +break; +case 2: +drawType = (this.isArc ? J.shapespecial.Draw.EnumDrawType.ARC : this.isPlane && this.isCircle ? J.shapespecial.Draw.EnumDrawType.CIRCULARPLANE : this.isCylinder ? J.shapespecial.Draw.EnumDrawType.CYLINDER : J.shapespecial.Draw.EnumDrawType.LINE); +break; +default: +drawType = (this.thisMesh.connectedAtoms == null ? J.shapespecial.Draw.EnumDrawType.PLANE : J.shapespecial.Draw.EnumDrawType.ARROW); +} +}this.thisMesh.drawType = drawType; +this.thisMesh.drawVertexCount = nVertices; +if (nVertices == 0) return; +var nVertices0 = this.thisMesh.vc; +for (var i = 0; i < nVertices; i++) { +this.thisMesh.addV(this.ptList[i], false); +} +var npoints = (nVertices < 3 ? 3 : nVertices); +this.thisMesh.setPolygonCount(nPoly + 1); +this.thisMesh.pis[nPoly] = Clazz.newIntArray (npoints, 0); +for (var i = 0; i < npoints; i++) { +this.thisMesh.pis[nPoly][i] = nVertices0 + (i < nVertices ? i : nVertices - 1); +} +return; +}, "~N"); +Clazz.defineMethod(c$, "scale", +function(mesh, newScale){ +var dmesh = mesh; +if (newScale == 0 || dmesh.vc == 0 && dmesh.connectedAtoms == null || dmesh.scale == newScale) return; +var f = newScale / dmesh.scale; +dmesh.scale = newScale; +dmesh.isScaleSet = true; +if (dmesh.isRenderScalable()) return; +var diff = new JU.V3(); +var iptlast = -1; +var ipt = 0; +try { +for (var i = dmesh.pc; --i >= 0; ) { +var center = (dmesh.isVector ? dmesh.vs[0] : dmesh.ptCenters == null ? dmesh.ptCenter : dmesh.ptCenters[i]); +if (center == null) return; +if (dmesh.pis[i] == null) continue; +iptlast = -1; +for (var iV = dmesh.pis[i].length; --iV >= 0; ) { +ipt = dmesh.pis[i][iV]; +if (ipt == iptlast) continue; +iptlast = ipt; +diff.sub2(dmesh.vs[ipt], center); +diff.scale(f); +diff.add(center); +dmesh.vs[ipt].setT(diff); +} +} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.info("Error executing DRAW command: " + e); +dmesh.isValid = false; +} else { +throw e; +} +} +}, "J.shape.Mesh,~N"); +c$.setAxes = Clazz.defineMethod(c$, "setAxes", +function(m){ +m.axis = JU.V3.new3(0, 0, 0); +m.axes = new Array(m.pc > 0 ? m.pc : 1); +if (m.vs == null) return; +var n = 0; +for (var i = m.pc; --i >= 0; ) { +var p = m.pis[i]; +m.axes[i] = new JU.V3(); +if (p == null || p.length == 0) { +} else if (m.drawVertexCount == 2 || m.drawVertexCount < 0 && m.drawVertexCounts[i] == 2) { +m.axes[i].sub2(m.vs[p[0]], m.vs[p[1]]); +n++; +} else { +JU.Measure.calcNormalizedNormal(m.vs[p[0]], m.vs[p[1]], m.vs[p[2]], m.axes[i], m.vAB); +n++; +}m.axis.add(m.axes[i]); +} +if (n == 0) return; +m.axis.scale(1 / n); +}, "J.shapespecial.DrawMesh"); +Clazz.overrideMethod(c$, "setModelVisibilityFlags", +function(bsModels){ +for (var i = 0; i < this.meshCount; i++) { +var m = this.dmeshes[i]; +if (m == null) { +continue; +}m.visibilityFlags = (m.isValid && m.visible ? this.vf : 0); +if (m.modelIndex >= 0 && !bsModels.get(m.modelIndex) || m.modelFlags != null && !JU.BSUtil.haveCommon(bsModels, m.modelFlags)) { +m.visibilityFlags = 0; +} else if (m.modelFlags != null) { +m.bsMeshesVisible.clearAll(); +m.bsMeshesVisible.or(m.modelFlags); +m.bsMeshesVisible.and(bsModels); +}} +}, "JU.BS"); +Clazz.overrideMethod(c$, "checkObjectClicked", +function(x, y, action, bsVisible, drawPicking){ +var isPickingMode = (this.vwr.getPickingMode() == 4); +var isSpinMode = (this.vwr.getPickingMode() == 5); +if (!isPickingMode && !drawPicking && !isSpinMode || JU.C.isColixTranslucent(this.colix)) return null; +if (!this.findPickedObject(x, y, false, bsVisible)) return null; +var v = this.pickedMesh.vs[this.pickedMesh.pis[this.pickedModel][this.pickedVertex]]; +var modelIndex = this.pickedMesh.modelIndex; +var bs = (this.pickedMesh).modelFlags; +if (modelIndex < 0 && JU.BSUtil.cardinalityOf(bs) == 1) modelIndex = bs.nextSetBit(0); +var map = null; +if (action != 0) map = this.getPickedPoint(v, modelIndex); +if (drawPicking && !isPickingMode) { +if (action != 0) this.setStatusPicked(-2, v, map); +return this.getPickedPoint(v, modelIndex); +}if (action == 0 || this.pickedMesh.pis[this.pickedModel][0] == this.pickedMesh.pis[this.pickedModel][1]) { +return map; +}var isClockwise = this.vwr.isBound(action, 42); +if (this.pickedVertex == 0) { +this.vwr.startSpinningAxis(this.pickedMesh.vs[this.pickedMesh.pis[this.pickedModel][1]], this.pickedMesh.vs[this.pickedMesh.pis[this.pickedModel][0]], isClockwise); +} else { +this.vwr.startSpinningAxis(this.pickedMesh.vs[this.pickedMesh.pis[this.pickedModel][0]], this.pickedMesh.vs[this.pickedMesh.pis[this.pickedModel][1]], isClockwise); +}return this.getPickedPoint(null, 0); +}, "~N,~N,~N,JU.BS,~B"); +Clazz.overrideMethod(c$, "checkObjectHovered", +function(x, y, bsVisible){ +if (!this.vwr.getDrawHover()) return false; +if (JU.C.isColixTranslucent(this.colix)) return false; +if (!this.findPickedObject(x, y, false, bsVisible)) return false; +var s = ((this.pickedMesh).hoverLabel != null ? (this.pickedMesh).hoverLabel : this.pickedMesh.title == null ? this.pickedMesh.thisID : this.pickedMesh.title[0]); +if (s.length > 1 && s.charAt(0) == '>') s = s.substring(1); +this.vwr.hoverOnPt(x, y, s, this.pickedMesh.thisID, this.pickedPt); +return true; +}, "~N,~N,JU.BS"); +Clazz.overrideMethod(c$, "checkObjectDragged", +function(prevX, prevY, x, y, dragAction, bsVisible){ +if (this.vwr.getPickingMode() != 4) return false; +var moveAll = this.vwr.isBound(dragAction, 8); +var movePoint = this.vwr.isBound(dragAction, 9); +if (!moveAll && !movePoint) return false; +if (prevX == -2147483648) return this.findPickedObject(x, y, true, bsVisible); +if (prevX == 2147483647) { +this.pickedMesh = null; +return false; +}if (this.pickedMesh == null) return false; +var dm = this.pickedMesh; +this.move2D(dm, dm.pis[this.pickedModel], this.pickedVertex, x, y, moveAll); +this.thisMesh = dm; +return true; +}, "~N,~N,~N,~N,~N,JU.BS"); +Clazz.defineMethod(c$, "move2D", +function(mesh, vertexes, iVertex, x, y, moveAll){ +if (vertexes == null || vertexes.length == 0) return; +if (this.vwr.gdata.isAntialiased()) { +x <<= 1; +y <<= 1; +}var action = moveAll ? 8 : 9; +if (this.vwr.acm.userActionEnabled(action) && !this.vwr.acm.userAction(action, Clazz.newArray(-1, [mesh.thisID, Clazz.newIntArray(-1, [x, y, iVertex])]))) return; +var pt = new JU.P3(); +var ptVertex = vertexes[iVertex]; +var coord = JU.P3.newP(mesh.altVertices == null ? mesh.vs[ptVertex] : mesh.altVertices[ptVertex]); +var newcoord = new JU.P3(); +var move = new JU.V3(); +this.vwr.tm.transformPt3f(coord, pt); +pt.x = x; +pt.y = y; +this.vwr.tm.unTransformPoint(pt, newcoord); +move.sub2(newcoord, coord); +if (mesh.isDrawPolygon) iVertex = ptVertex; +var n = (!moveAll ? iVertex + 1 : mesh.isDrawPolygon ? mesh.vs.length : vertexes.length); +var bsMoved = new JU.BS(); +for (var i = (moveAll ? 0 : iVertex); i < n; i++) if (moveAll || i == iVertex) { +var k = (mesh.isDrawPolygon ? i : vertexes[i]); +if (bsMoved.get(k)) continue; +bsMoved.set(k); +mesh.vs[k].add(move); +} +if (mesh.altVertices != null) mesh.recalcAltVertices = true; +mesh.setCenters(); +}, "J.shapespecial.DrawMesh,~A,~N,~N,~N,~B"); +Clazz.defineMethod(c$, "findPickedObject", +function(x, y, isPicking, bsVisible){ +var dmin2 = 100; +if (this.vwr.gdata.isAntialiased()) { +x <<= 1; +y <<= 1; +dmin2 <<= 1; +}this.pickedModel = this.pickedVertex = 0; +this.pickedMesh = null; +this.pickedPt = null; +this.pm2 = null; +this.pickedPoint2 = null; +this.dmin22 = this.pmod2 = this.pickedVertex2 = -1; +for (var i = 0; i < this.meshCount; i++) { +var m = this.dmeshes[i]; +if (m.visibilityFlags == 0) continue; +dmin2 = this.pickClosestPoint(dmin2, x, y, m, -1, -1, this.ptXY, null); +} +if (dmin2 != 0 && this.dmin22 == dmin2 && this.pickedMesh != null && this.pm2 != null) { +var vTemp = new JU.V3(); +var d1 = this.pickClosestPoint(2147483647, x, y, this.pickedMesh, this.pickedModel, this.pickedVertex, this.ptXY, vTemp); +var d2 = this.pickClosestPoint(d1, x, y, this.pm2, this.pmod2, this.pickedVertex2, this.ptXY, vTemp); +if (d2 < d1) { +this.pickedMesh = this.pm2; +this.pickedModel = this.pmod2; +this.pickedVertex = this.pickedVertex2; +this.pickedPt = this.pickedPoint2; +}}return (this.pickedMesh != null); +}, "~N,~N,~B,JU.BS"); +Clazz.defineMethod(c$, "pickClosestPoint", +function(dmin2, x, y, m, model, vnot, ptXY, vTemp){ +var mCount = (m.isDrawPolygon ? m.pc : m.modelFlags == null ? 1 : this.ms.mc); +for (var iModel = mCount; --iModel >= 0; ) { +if (model >= 0 ? iModel != model : m.modelFlags != null && !m.modelFlags.get(iModel) || m.pis == null || !m.isDrawPolygon && (iModel >= m.pis.length || m.pis[iModel] == null)) continue; +for (var iVertex = (m.isDrawPolygon ? 3 : m.pis[iModel].length); --iVertex >= 0; ) { +if (iVertex == vnot) continue; +try { +var iv = m.pis[iModel][iVertex]; +var pt = (m.altVertices == null ? m.vs[iv] : m.altVertices[iv]); +if (vnot >= 0) { +vTemp.sub2(pt, this.pickedPt); +if (vTemp.length() == 0) continue; +vTemp.normalize(); +vTemp.add(this.pickedPt); +}var d2 = this.coordinateInRange(x, y, (vnot >= 0 ? vTemp : pt), dmin2, ptXY); +if (d2 >= 0) { +if (vnot < 0) { +if (this.pm2 == null) { +this.dmin22 = d2; +this.pmod2 = this.pickedModel; +this.pm2 = this.pickedMesh; +this.pickedVertex2 = this.pickedVertex; +this.pickedPoint2 = this.pickedPt; +}this.pickedVertex = iVertex; +this.pickedPt = pt; +this.pickedMesh = m; +this.pickedModel = iModel; +}dmin2 = d2; +}} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +System.out.println(e); +} else { +throw e; +} +} +} +} +return dmin2; +}, "~N,~N,~N,J.shapespecial.DrawMesh,~N,~N,JU.P3i,JU.V3"); +Clazz.defineMethod(c$, "getCommand", +function(mesh){ +if (mesh != null) return this.getCommand2(mesh, mesh.modelIndex); +var sb = new JU.SB(); +var key = (this.explicitID && this.previousMeshID != null && JU.PT.isWild(this.previousMeshID) ? this.previousMeshID : null); +var list = this.getMeshList(key, false); +for (var i = list.size(); --i >= 0; ) { +var m = list.get(i); +sb.append(this.getCommand2(m, m.modelIndex)); +} +return sb.toString(); +}, "J.shape.Mesh"); +Clazz.defineMethod(c$, "getCommand2", +function(mesh, iModel){ +var dmesh = mesh; +if (!dmesh.isValid || dmesh.drawType === J.shapespecial.Draw.EnumDrawType.NONE && dmesh.lineData == null && dmesh.drawVertexCount == 0 && dmesh.drawVertexCounts == null) return ""; +var str = new JU.SB(); +var modelCount = this.ms.mc; +if (!dmesh.isFixed && iModel >= 0 && modelCount > 1) J.shape.Shape.appendCmd(str, "frame " + this.vwr.getModelNumberDotted(iModel)); +str.append(" draw ID ").append(JU.PT.esc(dmesh.thisID)); +if (dmesh.isFixed) str.append(" fixed"); +if (iModel < 0) iModel = 0; +if (dmesh.noHead) str.append(" noHead"); + else if (dmesh.isBarb) str.append(" barb"); +if (dmesh.scale != 1 && dmesh.isScaleSet && (dmesh.haveXyPoints || dmesh.connectedAtoms != null || dmesh.drawType === J.shapespecial.Draw.EnumDrawType.CIRCLE || dmesh.drawType === J.shapespecial.Draw.EnumDrawType.ARC)) str.append(" scale ").appendF(dmesh.scale); +if (dmesh.width != 0) str.append(" diameter ").appendF((dmesh.drawType === J.shapespecial.Draw.EnumDrawType.CYLINDER ? Math.abs(dmesh.width) : dmesh.drawType === J.shapespecial.Draw.EnumDrawType.CIRCULARPLANE ? Math.abs(dmesh.width * dmesh.scale) : dmesh.width)); + else if (dmesh.diameter != 0) str.append(" diameter ").appendI(dmesh.diameter); +if (dmesh.lineData != null) { +str.append(" lineData ["); +var n = dmesh.lineData.size(); +for (var j = 0; j < n; ) { +var pts = dmesh.lineData.get(j); +var s = JU.Escape.eP(pts[0]); +str.append(s.substring(1, s.length - 1)); +str.append(","); +s = JU.Escape.eP(pts[1]); +str.append(s.substring(1, s.length - 1)); +if (++j < n) str.append(", "); +} +str.append("]"); +} else { +var nVertices = dmesh.drawVertexCount > 0 || dmesh.drawVertexCounts == null ? dmesh.drawVertexCount : dmesh.drawVertexCounts[iModel >= 0 ? iModel : 0]; +switch (dmesh.drawTypes == null || dmesh.drawTypes[iModel] == null ? dmesh.drawType : dmesh.drawTypes[iModel]) { +case J.shapespecial.Draw.EnumDrawType.NONE: +case J.shapespecial.Draw.EnumDrawType.MULTIPLE: +break; +case J.shapespecial.Draw.EnumDrawType.POLYGON: +str.append(" POLYGON ").appendI(nVertices); +break; +case J.shapespecial.Draw.EnumDrawType.PLANE: +if (nVertices == 4) str.append(" PLANE"); +break; +case J.shapespecial.Draw.EnumDrawType.LINE_SEGMENT: +str.append(" LINE"); +break; +case J.shapespecial.Draw.EnumDrawType.ARC: +str.append(dmesh.isVector ? " ARROW ARC" : " ARC"); +break; +case J.shapespecial.Draw.EnumDrawType.ARROW: +str.append(dmesh.isVector ? " VECTOR" : " ARROW"); +if (dmesh.connectedAtoms != null) str.append(" connect ").append(JU.Escape.eAI(dmesh.connectedAtoms)); +break; +case J.shapespecial.Draw.EnumDrawType.CIRCLE: +str.append(" CIRCLE"); +break; +case J.shapespecial.Draw.EnumDrawType.CURVE: +str.append(" CURVE"); +break; +case J.shapespecial.Draw.EnumDrawType.CIRCULARPLANE: +case J.shapespecial.Draw.EnumDrawType.CYLINDER: +str.append(" CYLINDER"); +break; +case J.shapespecial.Draw.EnumDrawType.POINT: +nVertices = 1; +break; +case J.shapespecial.Draw.EnumDrawType.LINE: +nVertices = 2; +break; +} +if (dmesh.modelIndex < 0 && !dmesh.isFixed) { +for (var i = 0; i < modelCount; i++) if (J.shapespecial.Draw.isPolygonDisplayable(dmesh, i)) { +if (nVertices == 0) nVertices = dmesh.drawVertexCounts[i]; +str.append(" [ " + i); +var s = J.shapespecial.Draw.getVertexList(dmesh, i, nVertices); +if (s.indexOf("NaN") >= 0) return ""; +str.append(s); +str.append(" ] "); +} +} else if (dmesh.drawType === J.shapespecial.Draw.EnumDrawType.POLYGON) { +for (var i = 0; i < dmesh.vc; i++) str.append(" ").append(JU.Escape.eP(dmesh.vs[i])); + +str.append(" ").appendI(dmesh.pc); +for (var i = 0; i < dmesh.pc; i++) if (dmesh.pis[i] == null) str.append(" [0 0 0 0]"); + else str.append(" ").append(JU.Escape.eAI(dmesh.pis[i])); + +} else { +var s = J.shapespecial.Draw.getVertexList(dmesh, iModel, nVertices); +if (s.indexOf("NaN") >= 0) return ""; +str.append(s); +}}if (dmesh.mat4 != null) { +var v = new JU.V3(); +dmesh.mat4.getTranslation(v); +str.append(" offset ").append(JU.Escape.eP(v)); +}if (dmesh.titleColor != null) { +str.append(" title color ").append(JU.Escape.escapeColor(dmesh.titleColor.intValue())); +}var title = ""; +if (dmesh.title != null) { +for (var i = 0; i < dmesh.title.length; i++) title += "|" + dmesh.title[i]; + +}if (dmesh.hoverLabel != null) { +title = "|" + dmesh.hoverLabel + " " + (title === "" ? "" : title.substring(1)); +}if (title.length > 1) { +str.append(" ").append(JU.PT.esc(title.substring(1))); +}if (dmesh.fontID >= 0) { +str.append(" font " + JU.Font.getFont3D(dmesh.fontID).getInfo()); +}str.append(";\n"); +J.shape.Shape.appendCmd(str, dmesh.getState("draw")); +J.shape.Shape.appendCmd(str, J.shape.Shape.getColorCommandUnk("draw", dmesh.colix, this.translucentAllowed)); +return str.toString(); +}, "J.shape.Mesh,~N"); +c$.isPolygonDisplayable = Clazz.defineMethod(c$, "isPolygonDisplayable", +function(mesh, i){ +return (i < mesh.pis.length && mesh.pis[i] != null && mesh.pis[i].length > 0); +}, "J.shape.Mesh,~N"); +c$.getVertexList = Clazz.defineMethod(c$, "getVertexList", +function(mesh, iModel, nVertices){ +var str = ""; +try { +if (iModel >= mesh.pis.length) iModel = 0; +var adjustPt = (mesh.isVector && mesh.drawType !== J.shapespecial.Draw.EnumDrawType.ARC); +for (var i = 0; i < nVertices; i++) { +var pt = mesh.vs[mesh.pis[iModel][i]]; +if (J.shapespecial.Draw.is2DPoint(pt)) { +str += (i == 0 ? " " : " ,") + "[" + Clazz.floatToInt(pt.x) + " " + Clazz.floatToInt(pt.y) + (pt.z < 0 ? " %]" : "]"); +} else if (adjustPt && i == 1) { +var pt1 = JU.P3.newP(pt); +pt1.sub(mesh.vs[mesh.pis[iModel][0]]); +str += " " + JU.Escape.eP(pt1); +} else { +str += " " + JU.Escape.eP(pt); +}} +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +JU.Logger.error("Unexpected error in Draw.getVertexList"); +} else { +throw e; +} +} +return str; +}, "J.shapespecial.DrawMesh,~N,~N"); +c$.is2DPoint = Clazz.defineMethod(c$, "is2DPoint", +function(pt){ +return (pt.z == 3.4028235E38 || pt.z == -3.4028235E38); +}, "JU.T3"); +Clazz.overrideMethod(c$, "getShapeDetail", +function(){ +var V = new JU.Lst(); +for (var i = 0; i < this.meshCount; i++) { +var mesh = this.dmeshes[i]; +if (mesh.vc == 0) continue; +var info = new java.util.Hashtable(); +info.put("visible", mesh.visible ? Boolean.TRUE : Boolean.FALSE); +info.put("fixed", mesh.ptCenters == null ? Boolean.TRUE : Boolean.FALSE); +info.put("ID", (mesh.thisID == null ? "" : mesh.thisID)); +info.put("drawType", mesh.drawType.$$name); +if (mesh.diameter > 0) info.put("diameter", Integer.$valueOf(mesh.diameter)); +if (mesh.width != 0) info.put("width", Float.$valueOf(mesh.width)); +info.put("scale", Float.$valueOf(mesh.scale)); +if (mesh.drawType === J.shapespecial.Draw.EnumDrawType.MULTIPLE) { +var m = new JU.Lst(); +var modelCount = this.ms.mc; +for (var k = 0; k < modelCount; k++) { +if (mesh.ptCenters[k] == null) continue; +var mInfo = new java.util.Hashtable(); +mInfo.put("modelIndex", Integer.$valueOf(k)); +mInfo.put("command", this.getCommand2(mesh, k)); +mInfo.put("center", mesh.ptCenters[k]); +var nPoints = mesh.drawVertexCounts[k]; +mInfo.put("vertexCount", Integer.$valueOf(nPoints)); +if (nPoints > 1) mInfo.put("axis", mesh.axes[k]); +var v = new JU.Lst(); +for (var ipt = 0; ipt < nPoints; ipt++) v.addLast(mesh.vs[mesh.pis[k][ipt]]); + +mInfo.put("vertices", v); +if (mesh.drawTypes[k] === J.shapespecial.Draw.EnumDrawType.LINE) { +var d = mesh.vs[mesh.pis[k][0]].distance(mesh.vs[mesh.pis[k][1]]); +mInfo.put("length_Ang", Float.$valueOf(d)); +}m.addLast(mInfo); +} +info.put("models", m); +} else { +info.put("command", this.getCommand(mesh)); +info.put("center", mesh.ptCenter); +if (mesh.drawVertexCount > 1) info.put("axis", mesh.axis); +var v = new JU.Lst(); +for (var j = 0; j < mesh.vc; j++) v.addLast(mesh.vs[j]); + +info.put("vertices", v); +if (mesh.drawType === J.shapespecial.Draw.EnumDrawType.LINE) info.put("length_Ang", Float.$valueOf(mesh.vs[0].distance(mesh.vs[1]))); +}V.addLast(info); +} +return V; +}); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +var s = new JU.SB(); +s.append("\n"); +J.shape.Shape.appendCmd(s, this.myType + " delete"); +if (this.defaultFontId >= 0 && (this.defaultFontId != this.defaultFontId0 || this.defaultFontSize != 16.0)) J.shape.Shape.appendCmd(s, J.shape.Shape.getFontCommand("draw", this.getProperty("font", -1))); +for (var i = 0; i < this.meshCount; i++) { +var mesh = this.dmeshes[i]; +if (mesh.vc == 0 && mesh.lineData == null) continue; +s.append(this.getCommand2(mesh, mesh.modelIndex)); +if (!mesh.visible) s.append(" " + this.myType + " ID " + JU.PT.esc(mesh.thisID) + " off;\n"); +} +return s.toString(); +}); +c$.randomPoint = Clazz.defineMethod(c$, "randomPoint", +function(){ +return JU.P3.new3(Math.random(), Math.random(), Math.random()); +}); +/*if2*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.id = 0; +this.$$name = null; +Clazz.instantialize(this, arguments);}, J.shapespecial.Draw, "EnumDrawType", Enum); +Clazz.makeConstructor(c$, +function(id, name){ +this.id = id; +this.$$name = name; +}, "~N,~S"); +c$.getType = Clazz.defineMethod(c$, "getType", +function(nPoints){ +switch (nPoints) { +case 1: +return J.shapespecial.Draw.EnumDrawType.POINT; +case 2: +return J.shapespecial.Draw.EnumDrawType.LINE; +case 4: +return J.shapespecial.Draw.EnumDrawType.PLANE; +default: +return J.shapespecial.Draw.EnumDrawType.NONE; +} +}, "~N"); +Clazz.defineEnumConstant(c$, "MULTIPLE", 0, [-1, "multiple"]); +Clazz.defineEnumConstant(c$, "NONE", 1, [0, "none"]); +Clazz.defineEnumConstant(c$, "POINT", 2, [1, "point"]); +Clazz.defineEnumConstant(c$, "LINE", 3, [2, "line"]); +Clazz.defineEnumConstant(c$, "PLANE", 4, [4, "plane"]); +Clazz.defineEnumConstant(c$, "CYLINDER", 5, [14, "cylinder"]); +Clazz.defineEnumConstant(c$, "ARROW", 6, [15, "arrow"]); +Clazz.defineEnumConstant(c$, "CIRCLE", 7, [16, "circle"]); +Clazz.defineEnumConstant(c$, "CURVE", 8, [17, "curve"]); +Clazz.defineEnumConstant(c$, "CIRCULARPLANE", 9, [18, "circularPlane"]); +Clazz.defineEnumConstant(c$, "ARC", 10, [19, "arc"]); +Clazz.defineEnumConstant(c$, "LINE_SEGMENT", 11, [20, "lineSegment"]); +Clazz.defineEnumConstant(c$, "POLYGON", 12, [21, "polygon"]); +/*eoif2*/})(); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/DrawMesh.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/DrawMesh.js new file mode 100755 index 000000000000..58898401236a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/DrawMesh.js @@ -0,0 +1,100 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(["J.shape.Mesh"], "J.shapespecial.DrawMesh", ["JU.AU", "$.BS", "$.P3", "$.V3", "J.shapespecial.Draw", "JU.BSUtil"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.bsMeshesVisible = null; +this.modelFlags = null; +this.drawType = null; +this.drawTypes = null; +this.ptCenters = null; +this.axis = null; +this.axes = null; +this.drawVertexCount = 0; +this.drawVertexCounts = null; +this.isFixed = false; +this.isVector = false; +this.drawArrowScale = 0; +this.noHead = false; +this.isBarb = false; +this.scale = 1; +this.isScaleSet = false; +this.fontID = -1; +this.titleColor = null; +this.thisModelOnly = false; +Clazz.instantialize(this, arguments);}, J.shapespecial, "DrawMesh", J.shape.Mesh); +Clazz.makeConstructor(c$, +function(vwr, thisID, colix, index){ +this.drawType = J.shapespecial.Draw.EnumDrawType.NONE; +this.axis = JU.V3.new3(1, 0, 0); +this.bsMeshesVisible = new JU.BS(); +this.mesh1(vwr, thisID, colix, index); +}, "JV.Viewer,~S,~N,~N"); +Clazz.overrideMethod(c$, "clear", +function(meshType){ +this.clearMesh(meshType); +this.scale = 1; +this.isScaleSet = false; +}, "~S"); +Clazz.defineMethod(c$, "setCenters", +function(){ +if (this.ptCenters == null) this.setCenter(-1); + else for (var i = this.ptCenters.length; --i >= 0; ) this.setCenter(i); + +}); +Clazz.defineMethod(c$, "setCenter", +function(iModel){ +var center = JU.P3.new3(0, 0, 0); +var iptlast = -1; +var ipt = 0; +var n = 0; +for (var i = this.pc; --i >= 0; ) { +if (iModel >= 0 && i != iModel || this.pis[i] == null) continue; +iptlast = -1; +for (var iV = (this.drawType === J.shapespecial.Draw.EnumDrawType.POLYGON) ? 3 : this.pis[i].length; --iV >= 0; ) { +ipt = this.pis[i][iV]; +if (ipt == iptlast) continue; +iptlast = ipt; +center.add(this.vs[ipt]); +n++; +} +if (n > 0 && (i == iModel || i == 0)) { +center.scale(1.0 / n); +if (this.mat4 != null) this.mat4.rotTrans(center); +break; +}} +if (iModel < 0) { +this.ptCenter.setT(center); +} else { +this.ptCenters[iModel] = center; +}}, "~N"); +Clazz.defineMethod(c$, "offset", +function(offset){ +this.rotateTranslate(null, offset, false); +this.setCenters(); +}, "JU.V3"); +Clazz.defineMethod(c$, "deleteAtoms", +function(modelIndex){ +if (modelIndex >= this.pc) return; +this.pc--; +this.pis = JU.AU.deleteElements(this.pis, modelIndex, 1); +this.drawTypes = JU.AU.deleteElements(this.drawTypes, modelIndex, 1); +this.drawVertexCounts = JU.AU.deleteElements(this.drawVertexCounts, modelIndex, 1); +this.ptCenters = JU.AU.deleteElements(this.ptCenters, modelIndex, 1); +this.axes = JU.AU.deleteElements(this.axes, modelIndex, 1); +var bs = JU.BSUtil.newAndSetBit(modelIndex); +JU.BSUtil.deleteBits(this.modelFlags, bs); +}, "~N"); +Clazz.defineMethod(c$, "isRenderScalable", +function(){ +switch (this.drawType) { +case J.shapespecial.Draw.EnumDrawType.ARROW: +return (this.connectedAtoms != null); +case J.shapespecial.Draw.EnumDrawType.ARC: +case J.shapespecial.Draw.EnumDrawType.CIRCLE: +case J.shapespecial.Draw.EnumDrawType.CIRCULARPLANE: +return true; +default: +return this.haveXyPoints; +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Ellipsoid.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Ellipsoid.js new file mode 100755 index 000000000000..9aea746c2f34 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Ellipsoid.js @@ -0,0 +1,128 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(["JU.P3"], "J.shapespecial.Ellipsoid", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.colix = 23; +this.visible = false; +this.isValid = false; +this.center = null; +this.tensor = null; +this.options = null; +this.isOn = true; +this.id = null; +this.myID = 0; +this.modelIndex = 0; +this.pid = 0; +this.lengths = null; +this.scale = 1; +this.percent = 0; +this.scaleXYZ = null; +this.info = null; +this.label = null; +Clazz.instantialize(this, arguments);}, J.shapespecial, "Ellipsoid", null); +Clazz.prepareFields (c$, function(){ +this.center = JU.P3.new3(0, 0, 0); +this.myID = ++J.shapespecial.Ellipsoid.ID; +}); +Clazz.makeConstructor(c$, +function(){ +}); +c$.getEmptyEllipsoid = Clazz.defineMethod(c$, "getEmptyEllipsoid", +function(id, modelIndex){ +var e = new J.shapespecial.Ellipsoid(); +e.id = id; +e.modelIndex = modelIndex; +return e; +}, "~S,~N"); +c$.getEllipsoidForAtomTensor = Clazz.defineMethod(c$, "getEllipsoidForAtomTensor", +function(t, center){ +var e = new J.shapespecial.Ellipsoid(); +e.tensor = t; +e.modelIndex = t.modelIndex; +e.colix = 0; +e.center = center; +return e; +}, "JU.Tensor,JM.Atom"); +Clazz.defineMethod(c$, "setCenter", +function(center){ +this.center = center; +this.validate(false); +}, "JU.P3"); +Clazz.defineMethod(c$, "getLength", +function(i){ +if (this.lengths == null) this.setLengths(); +return (this.lengths == null ? NaN : this.lengths[i]); +}, "~N"); +Clazz.defineMethod(c$, "scaleAxes", +function(value){ +this.scaleXYZ = value; +this.setLengths(); +}, "~A"); +Clazz.defineMethod(c$, "setLengths", +function(){ +if (this.tensor == null) return; +if (this.lengths == null) this.lengths = Clazz.newFloatArray (3, 0); +for (var i = 0; i < this.lengths.length; i++) this.lengths[i] = this.tensor.getFactoredValue(i) * this.scale * (this.scaleXYZ == null ? 1 : Math.abs(this.scaleXYZ[i])); + +}); +Clazz.defineMethod(c$, "setScale", +function(scale, isPercent){ +if (scale <= 0) { +this.isValid = false; +return; +}if (isPercent) { +if (scale == 2147483647) scale = (this.tensor.forThermalEllipsoid ? 50 : 100); +this.percent = Clazz.floatToInt(scale); +scale = (this.tensor.forThermalEllipsoid ? J.shapespecial.Ellipsoid.getThermalRadius(this.percent) : this.percent < 1 ? 0 : this.percent / 100.0); +}this.scale = scale; +this.validate(true); +}, "~N,~B"); +c$.getThermalRadius = Clazz.defineMethod(c$, "getThermalRadius", +function(prob){ +return J.shapespecial.Ellipsoid.crtval[prob < 1 ? 0 : prob > 99 ? 98 : prob - 1]; +}, "~N"); +Clazz.defineMethod(c$, "setTensor", +function(tensor){ +this.isValid = false; +this.tensor = tensor; +this.validate(tensor != null); +}, "JU.Tensor"); +Clazz.defineMethod(c$, "validate", +function(andSetLengths){ +if (this.tensor == null) return; +if (andSetLengths) this.setLengths(); +this.isValid = true; +}, "~B"); +c$.getEquationForQuadricWithCenter = Clazz.defineMethod(c$, "getEquationForQuadricWithCenter", +function(x, y, z, mToElliptical, vTemp, mTemp, coef, mDeriv){ +vTemp.set(x, y, z); +mToElliptical.rotate(vTemp); +var f = 1 - vTemp.dot(vTemp); +mTemp.transposeM(mToElliptical); +mTemp.rotate(vTemp); +mTemp.mul(mToElliptical); +coef[0] = mTemp.m00 / f; +coef[1] = mTemp.m11 / f; +coef[2] = mTemp.m22 / f; +coef[3] = mTemp.m01 * 2 / f; +coef[4] = mTemp.m02 * 2 / f; +coef[5] = mTemp.m12 * 2 / f; +coef[6] = -2 * vTemp.x / f; +coef[7] = -2 * vTemp.y / f; +coef[8] = -2 * vTemp.z / f; +coef[9] = -1; +if (mDeriv == null) return; +mDeriv.setIdentity(); +mDeriv.m00 = (2 * coef[0]); +mDeriv.m11 = (2 * coef[1]); +mDeriv.m22 = (2 * coef[2]); +mDeriv.m01 = mDeriv.m10 = coef[3]; +mDeriv.m02 = mDeriv.m20 = coef[4]; +mDeriv.m12 = mDeriv.m21 = coef[5]; +mDeriv.m03 = coef[6]; +mDeriv.m13 = coef[7]; +mDeriv.m23 = coef[8]; +}, "~N,~N,~N,JU.M3,JU.V3,JU.M3,~A,JU.M4"); +c$.ID = 0; +c$.crtval = Clazz.newFloatArray(-1, [0.3389, 0.4299, 0.4951, 0.5479, 0.5932, 0.6334, 0.6699, 0.7035, 0.7349, 0.7644, 0.7924, 0.8192, 0.8447, 0.8694, 0.8932, 0.9162, 0.9386, 0.9605, 0.9818, 1.0026, 1.0230, 1.0430, 1.0627, 1.0821, 1.1012, 1.1200, 1.1386, 1.1570, 1.1751, 1.1932, 1.2110, 1.2288, 1.2464, 1.2638, 1.2812, 1.2985, 1.3158, 1.3330, 1.3501, 1.3672, 1.3842, 1.4013, 1.4183, 1.4354, 1.4524, 1.4695, 1.4866, 1.5037, 1.5209, 1.5382, 1.5555, 1.5729, 1.5904, 1.6080, 1.6257, 1.6436, 1.6616, 1.6797, 1.6980, 1.7164, 1.7351, 1.7540, 1.7730, 1.7924, 1.8119, 1.8318, 1.8519, 1.8724, 1.8932, 1.9144, 1.9360, 1.9580, 1.9804, 2.0034, 2.0269, 2.0510, 2.0757, 2.1012, 2.1274, 2.1544, 2.1824, 2.2114, 2.2416, 2.2730, 2.3059, 2.3404, 2.3767, 2.4153, 2.4563, 2.5003, 2.5478, 2.5997, 2.6571, 2.7216, 2.7955, 2.8829, 2.9912, 3.1365, 3.3682]); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Ellipsoids.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Ellipsoids.js new file mode 100755 index 000000000000..d41511c8f4ee --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Ellipsoids.js @@ -0,0 +1,324 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(["J.shape.AtomShape", "java.util.Hashtable", "JU.P3i"], "J.shapespecial.Ellipsoids", ["JU.BS", "$.Lst", "$.PT", "$.SB", "$.V3", "J.api.Interface", "J.c.PAL", "J.shapespecial.Ellipsoid", "JU.BSUtil", "$.C", "$.Escape"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.ptXY = null; +this.simpleEllipsoids = null; +this.atomEllipsoids = null; +this.typeSelected = "1"; +this.selectedAtoms = null; +this.ellipsoidSet = null; +this.scale = 0; +Clazz.instantialize(this, arguments);}, J.shapespecial, "Ellipsoids", J.shape.AtomShape); +Clazz.prepareFields (c$, function(){ +this.ptXY = new JU.P3i(); +this.simpleEllipsoids = new java.util.Hashtable(); +this.atomEllipsoids = new java.util.Hashtable(); +}); +Clazz.overrideMethod(c$, "checkObjectHovered", +function(x, y, bsModels){ +if (!this.vwr.getDrawHover() || this.simpleEllipsoids == null || this.simpleEllipsoids.isEmpty()) return false; +var e = this.findPickedObject(x, y, false, bsModels); +if (e == null) return false; +this.vwr.hoverOnPt(x, y, e.label, e.id, e.center); +return true; +}, "~N,~N,JU.BS"); +Clazz.overrideMethod(c$, "checkObjectClicked", +function(x, y, action, bsModels, drawPicking){ +if (action == 0 || !drawPicking || this.simpleEllipsoids == null || this.simpleEllipsoids.isEmpty()) return null; +var e = this.findPickedObject(x, y, false, bsModels); +if (e == null) return null; +var map = null; +map = new java.util.Hashtable(); +map.put("id", e.id); +if (e.label != null) map.put("label", e.label); +map.put("pt", e.center); +map.put("modelIndex", Integer.$valueOf(e.modelIndex)); +map.put("model", this.vwr.getModelNumberDotted(e.modelIndex)); +map.put("type", "ellipsoid"); +if (action != 0) this.vwr.setStatusAtomPicked(-2, "[\"ellipsoid\"," + JU.PT.esc(e.id) + "," + +e.modelIndex + ",1," + e.center.x + "," + e.center.y + "," + e.center.z + "," + (e.label == null ? "\"\"" : JU.PT.esc(e.label)) + "]", map, false); +return map; +}, "~N,~N,~N,JU.BS,~B"); +Clazz.defineMethod(c$, "findPickedObject", +function(x, y, isPicking, bsModels){ +var dmin2 = 100; +if (this.vwr.gdata.isAntialiased()) { +x <<= 1; +y <<= 1; +dmin2 <<= 1; +}var picked = null; +for (var id, $id = this.simpleEllipsoids.keySet().iterator (); $id.hasNext()&& ((id = $id.next ()) || true);) { +var e = this.simpleEllipsoids.get(id); +if (!e.visible || !bsModels.get(e.modelIndex)) continue; +var d2 = this.coordinateInRange(x, y, e.center, dmin2, this.ptXY); +if (d2 >= 0) { +dmin2 = d2; +picked = e; +}} +return picked; +}, "~N,~N,~B,JU.BS"); +Clazz.defineMethod(c$, "isActive", +function(){ +return !this.atomEllipsoids.isEmpty() || !this.simpleEllipsoids.isEmpty(); +}); +Clazz.overrideMethod(c$, "getIndexFromName", +function(thisID){ +return (this.checkID(thisID) ? 1 : -1); +}, "~S"); +Clazz.overrideMethod(c$, "setSize", +function(size, bsSelected){ +if (!this.isSet || size == 0 && this.ms.atomTensors == null) return; +var isAll = (bsSelected == null); +if (!isAll && this.selectedAtoms != null) bsSelected = this.selectedAtoms; +var tensors = this.ms.getAllAtomTensors(this.typeSelected); +if (tensors == null) return; +var atoms = this.ms.at; +for (var i = tensors.size(); --i >= 0; ) { +var t = tensors.get(i); +if (isAll || t.isSelected(bsSelected, -1)) { +var e = this.atomEllipsoids.get(t); +var isNew = (size != 0 && e == null); +if (isNew) this.atomEllipsoids.put(t, e = J.shapespecial.Ellipsoid.getEllipsoidForAtomTensor(t, atoms[t.atomIndex1])); +if (e != null) { +e.setScale(size, true); +}}} +}, "~N,JU.BS"); +Clazz.overrideMethod(c$, "getPropertyData", +function(property, data){ +if (property === "checkID") { +return (this.checkID(data[0])); +}return this.getPropShape(property, data); +}, "~S,~A"); +Clazz.defineMethod(c$, "checkID", +function(thisID){ +this.ellipsoidSet = new JU.Lst(); +if (thisID == null) return false; +thisID = thisID.toLowerCase(); +if (JU.PT.isWild(thisID)) { +for (var e, $e = this.simpleEllipsoids.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var key = e.getKey().toLowerCase(); +if (JU.PT.isMatch(key, thisID, true, true)) this.ellipsoidSet.addLast(e.getValue()); +} +}var e = this.simpleEllipsoids.get(thisID); +if (e != null) this.ellipsoidSet.addLast(e); +return (this.ellipsoidSet.size() > 0); +}, "~S"); +Clazz.defineMethod(c$, "initEllipsoids", +function(value){ +var haveID = (value != null); +this.checkID(value); +if (haveID) this.typeSelected = null; +this.selectedAtoms = null; +return haveID; +}, "~O"); +Clazz.overrideMethod(c$, "initShape", +function(){ +this.setProperty("thisID", null, null); +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if (propertyName === "thisID") { +this.scale = NaN; +if (this.initEllipsoids(value) && this.ellipsoidSet.size() == 0) { +var id = value; +var e = J.shapespecial.Ellipsoid.getEmptyEllipsoid(id, this.vwr.am.cmi); +this.ellipsoidSet.addLast(e); +this.simpleEllipsoids.put(id, e); +}return; +}if ("atoms" === propertyName) { +this.selectedAtoms = value; +return; +}if (propertyName === "deleteModelAtoms") { +var modelIndex = ((value)[2])[0]; +var e = this.simpleEllipsoids.values().iterator(); +while (e.hasNext()) if (e.next().tensor.modelIndex == modelIndex) e.remove(); + +e = this.atomEllipsoids.values().iterator(); +while (e.hasNext()) if (e.next().modelIndex == modelIndex) e.remove(); + +this.ellipsoidSet.clear(); +return; +}var mode = "ax ce co de eq mo on op sc tr la".indexOf((propertyName + " ").substring(0, 2)); +if (this.ellipsoidSet.size() > 0) { +if ("translucentLevel" === propertyName) { +this.setPropS(propertyName, value, bs); +return; +}if (mode >= 0) for (var i = this.ellipsoidSet.size(); --i >= 0; ) this.setProp(this.ellipsoidSet.get(i), Clazz.doubleToInt(mode / 3), value); + +return; +}if ("color" === propertyName) { +var colix = JU.C.getColixO(value); +var pid = J.c.PAL.pidOf(value); +if (this.selectedAtoms != null) bs = this.selectedAtoms; +for (var e, $e = this.atomEllipsoids.values().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) if (e.tensor.type.equals(this.typeSelected) && e.tensor.isSelected(bs, -1)) { +e.colix = this.getColixI(colix, pid, e.tensor.atomIndex1); +e.pid = pid; +} +return; +}if ("on" === propertyName) { +var isOn = (value).booleanValue(); +if (this.selectedAtoms != null) bs = this.selectedAtoms; +if (isOn) { +this.setSize(Float.isNaN(this.scale) ? 2147483647 : Clazz.floatToInt(this.scale * 100), bs); +}for (var e, $e = this.atomEllipsoids.values().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var t = e.tensor; +if ((t.type.equals(this.typeSelected) || this.typeSelected.equals(t.altType)) && t.isSelected(bs, -1)) { +e.isOn = isOn; +}(e.center).setShapeVisibility(this.vf, isOn); +} +return; +}if ("options" === propertyName) { +var options = (value).toLowerCase().trim(); +if (options.length == 0) options = null; +if (this.selectedAtoms != null) bs = this.selectedAtoms; +if (options != null) this.setSize(2147483647, bs); +for (var e, $e = this.atomEllipsoids.values().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) if (e.tensor.type.equals(this.typeSelected) && e.tensor.isSelected(bs, -1)) e.options = options; + +return; +}if ("params" === propertyName) { +var data = value; +data[2] = null; +this.typeSelected = "0"; +this.setSize(50, bs); +}if ("points" === propertyName) { +return; +}if ("scale" === propertyName) { +this.scale = (value).floatValue(); +this.setSize(Clazz.floatToInt(this.scale * 100), bs); +return; +}if ("select" === propertyName) { +this.typeSelected = (value).toLowerCase(); +return; +}if ("translucency" === propertyName) { +var isTranslucent = (value.equals("translucent")); +for (var e, $e = this.atomEllipsoids.values().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) if (e.tensor.type.equals(this.typeSelected) && e.tensor.isSelected(bs, -1)) e.colix = JU.C.getColixTranslucent3(e.colix, isTranslucent, this.translucentLevel); + +return; +}this.setPropS(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "setProp", +function(e, mode, value){ +switch (mode) { +case 0: +e.setTensor((J.api.Interface.getUtil("Tensor", this.vwr, "script")).setFromAxes(value)); +break; +case 1: +e.setCenter(value); +break; +case 2: +e.colix = JU.C.getColixO(value); +break; +case 3: +this.simpleEllipsoids.remove(e.id); +break; +case 4: +e.setTensor((J.api.Interface.getUtil("Tensor", this.vwr, "script")).setFromThermalEquation(value, null)); +e.tensor.modelIndex = e.modelIndex; +break; +case 5: +e.modelIndex = (value).intValue(); +if (e.tensor != null) e.tensor.modelIndex = e.modelIndex; +break; +case 6: +e.isOn = (value).booleanValue(); +break; +case 7: +e.options = (value).toLowerCase(); +break; +case 8: +if (Clazz.instanceOf(value, Float)) { +e.setScale((value).floatValue(), false); +} else { +e.scaleAxes(value); +}break; +case 9: +e.colix = JU.C.getColixTranslucent3(e.colix, value.equals("translucent"), this.translucentLevel); +break; +case 10: +e.label = value; +break; +} +return; +}, "J.shapespecial.Ellipsoid,~N,~O"); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +if (!this.isActive()) return ""; +var sb = new JU.SB(); +sb.append("\n"); +if (!this.simpleEllipsoids.isEmpty()) this.getStateID(sb); +if (!this.atomEllipsoids.isEmpty()) this.getStateAtoms(sb); +return sb.toString(); +}); +Clazz.defineMethod(c$, "getStateID", +function(sb){ +var v1 = new JU.V3(); +for (var ellipsoid, $ellipsoid = this.simpleEllipsoids.values().iterator (); $ellipsoid.hasNext()&& ((ellipsoid = $ellipsoid.next ()) || true);) { +var t = ellipsoid.tensor; +if (!ellipsoid.isValid || t == null) continue; +sb.append(" Ellipsoid ID ").append(ellipsoid.id).append(" modelIndex ").appendI(t.modelIndex).append(" center ").append(JU.Escape.eP(ellipsoid.center)).append(" axes"); +for (var i = 0; i < 3; i++) { +v1.setT(t.eigenVectors[i]); +v1.scale(ellipsoid.lengths[i]); +sb.append(" ").append(JU.Escape.eP(v1)); +} +sb.append(" " + J.shape.Shape.getColorCommandUnk("", ellipsoid.colix, this.translucentAllowed)); +if (ellipsoid.label != null) sb.append(" label " + JU.PT.esc(ellipsoid.label)); +if (ellipsoid.options != null) sb.append(" options ").append(JU.PT.esc(ellipsoid.options)); +if (!ellipsoid.isOn) sb.append(" off"); +sb.append(";\n"); +} +}, "JU.SB"); +Clazz.defineMethod(c$, "getStateAtoms", +function(sb){ +var bsDone = new JU.BS(); +var temp = new java.util.Hashtable(); +var temp2 = new java.util.Hashtable(); +for (var e, $e = this.atomEllipsoids.values().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var iType = e.tensor.iType; +if (bsDone.get(iType + 1)) continue; +bsDone.set(iType + 1); +var isADP = (e.tensor.iType == 1 || e.tensor.iType == 0); +var cmd = (isADP ? null : "Ellipsoids set " + JU.PT.esc(e.tensor.type)); +for (var e2, $e2 = this.atomEllipsoids.values().iterator (); $e2.hasNext()&& ((e2 = $e2.next ()) || true);) { +if (e2.tensor.iType != iType || isADP && !e2.isOn) continue; +var i = e2.tensor.atomIndex1; +JU.BSUtil.setMapBitSet(temp, i, i, (isADP ? "Ellipsoids " + e2.percent : cmd + " scale " + e2.scale + (e2.options == null ? "" : " options " + JU.PT.esc(e2.options)) + (e2.isOn ? " ON" : " OFF"))); +if (e2.colix != 0) JU.BSUtil.setMapBitSet(temp2, i, i, J.shape.Shape.getColorCommand(cmd, e2.pid, e2.colix, this.translucentAllowed)); +} +} +sb.append(this.vwr.getCommands(temp, temp2, "select")); +}, "JU.SB"); +Clazz.overrideMethod(c$, "setModelVisibilityFlags", +function(bsModels){ +if (!this.isActive()) return; +this.setVis(this.simpleEllipsoids, bsModels); +this.setVis(this.atomEllipsoids, bsModels); +}, "JU.BS"); +Clazz.defineMethod(c$, "setVis", +function(ellipsoids, bs){ +var atoms = this.ms.at; +for (var e, $e = ellipsoids.values().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var t = e.tensor; +var isOK = (t != null && e.isValid && e.isOn); +if (isOK && t.atomIndex1 >= 0) { +if (t.iType == 1) { +var isModTensor = t.isModulated; +var isUnmodTensor = t.isUnmodulated; +var isModAtom = this.ms.isModulated(t.atomIndex1); +isOK = (!isModTensor && !isUnmodTensor || isModTensor == isModAtom); +}atoms[t.atomIndex1].setShapeVisibility(this.vf, true); +}e.visible = isOK && (e.modelIndex < 0 || bs.get(e.modelIndex)); +} +}, "java.util.Map,JU.BS"); +Clazz.overrideMethod(c$, "setAtomClickability", +function(){ +if (this.atomEllipsoids.isEmpty()) return; +var atoms = this.ms.at; +for (var e, $e = this.atomEllipsoids.values().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var i = e.tensor.atomIndex1; +var atom = atoms[i]; +if ((atom.shapeVisibilityFlags & this.vf) == 0 || this.ms.isAtomHidden(i)) continue; +atom.setClickable(this.vf); +} +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/GeoSurface.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/GeoSurface.js new file mode 100755 index 000000000000..cad17a95899c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/GeoSurface.js @@ -0,0 +1,11 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(["J.shapespecial.Dots"], "J.shapespecial.GeoSurface", null, function(){ +var c$ = Clazz.declareType(J.shapespecial, "GeoSurface", J.shapespecial.Dots); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shapespecial.GeoSurface, "initShape", []); +this.isSurface = true; +this.translucentAllowed = true; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Polyhedra.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Polyhedra.js new file mode 100755 index 000000000000..0f484023e0c0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Polyhedra.js @@ -0,0 +1,987 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(["J.shape.AtomShape", "JU.AU", "$.BS", "$.P3", "$.V3"], "J.shapespecial.Polyhedra", ["java.util.Arrays", "$.Hashtable", "JU.Lst", "$.Measure", "$.P4", "$.PT", "$.SB", "J.api.Interface", "J.c.PAL", "J.shapespecial.Polyhedron", "JU.BSUtil", "$.C", "$.Logger", "$.Normix"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.otherAtoms = null; +this.normalsT = null; +this.planesT = null; +this.polyhedronCount = 0; +this.polyhedrons = null; +this.drawEdges = 0; +this.radius = 0; +this.radiusMin = 0; +this.pointScale = 0; +this.nVertices = 0; +this.faceCenterOffset = 0; +this.isCollapsed = false; +this.isFull = false; +this.iHaveCenterBitSet = false; +this.bondedOnly = false; +this.haveBitSetVertices = false; +this.centers = null; +this.thisID = null; +this.center = null; +this.bsVertices = null; +this.bsVertexCount = null; +this.useUnitCell = false; +this.nPoints = 0; +this.planarParam = 0; +this.info = null; +this.distanceRef = 0; +this.modelIndex = 0; +this.isAuto = false; +this.explicitFaces = null; +this.bsPolys = null; +this.vAB = null; +this.vAC = null; +this.vBC = null; +Clazz.instantialize(this, arguments);}, J.shapespecial, "Polyhedra", J.shape.AtomShape, java.util.Comparator); +Clazz.prepareFields (c$, function(){ +this.otherAtoms = new Array(498); +this.normalsT = new Array(251); +this.planesT = JU.AU.newInt2(250); +this.polyhedrons = new Array(32); +this.bsPolys = new JU.BS(); +this.vAB = new JU.V3(); +this.vAC = new JU.V3(); +this.vBC = new JU.V3(); +}); +Clazz.overrideMethod(c$, "compare", +function(a, b){ +var da = (a[0] == null ? 3.4028235E38 : (a[0]).floatValue()); +var db = (b[0] == null ? 3.4028235E38 : (b[0]).floatValue()); +return (da < db ? -1 : da > db ? 1 : 0); +}, "~A,~A"); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if (this.thisID != null) bs = new JU.BS(); +if ("init" === propertyName) { +this.faceCenterOffset = 0.25; +this.planarParam = NaN; +this.radius = this.radiusMin = this.pointScale = 0.0; +this.nVertices = this.nPoints = 0; +this.modelIndex = -1; +this.bsVertices = null; +this.thisID = null; +this.center = null; +this.centers = null; +this.info = null; +this.bsVertexCount = new JU.BS(); +this.bondedOnly = this.isCollapsed = this.isFull = this.iHaveCenterBitSet = this.useUnitCell = this.isAuto = this.haveBitSetVertices = false; +if (Boolean.TRUE === value) this.drawEdges = 0; +return; +}if ("definedFaces" === propertyName) { +this.setDefinedFaces((value)[1], (value)[0]); +return; +}if ("generate" === propertyName) { +if (!this.iHaveCenterBitSet && bs != null && !bs.isEmpty()) { +this.centers = bs; +this.iHaveCenterBitSet = true; +}var modifyOnly = (value === Boolean.TRUE); +if (modifyOnly) bs.and(this.vwr.getAtomBitSet("polyhedra")); +var info = this.info; +this.deletePolyhedra(); +this.info = info; +this.buildPolyhedra(); +return; +}if ("thisID" === propertyName) { +this.thisID = value; +return; +}if ("center" === propertyName) { +this.center = value; +return; +}if ("offset" === propertyName) { +if (this.thisID != null) this.offsetPolyhedra(value); +return; +}if ("scale" === propertyName) { +if (this.thisID != null) this.scalePolyhedra((value).floatValue()); +return; +}if ("model" === propertyName) { +this.modelIndex = (value).intValue(); +return; +}if ("collapsed" === propertyName) { +this.isCollapsed = true; +return; +}if ("full" === propertyName) { +this.isFull = true; +return; +}if ("nVertices" === propertyName) { +var n = (value).intValue(); +if (n < 0) { +if (-n >= this.nVertices) { +this.bsVertexCount.setBits(this.nVertices, 1 - n); +this.nVertices = -n; +}} else { +this.bsVertexCount.set(this.nVertices = n); +}return; +}if ("centers" === propertyName) { +this.centers = value; +this.iHaveCenterBitSet = true; +return; +}if ("unitCell" === propertyName) { +this.useUnitCell = true; +return; +}if ("to" === propertyName) { +this.bsVertices = value; +return; +}if ("toBitSet" === propertyName) { +this.bsVertices = value; +this.haveBitSetVertices = true; +return; +}if ("toVertices" === propertyName) { +var points = value; +this.nPoints = Math.min(points.length, 250); +for (var i = this.nPoints; --i >= 0; ) this.otherAtoms[i] = points[i]; + +return; +}if ("faceCenterOffset" === propertyName) { +this.faceCenterOffset = (value).floatValue(); +return; +}if ("distanceFactor" === propertyName) { +return; +}if ("planarParam" === propertyName) { +this.planarParam = (value).floatValue(); +return; +}if ("bonds" === propertyName) { +this.bondedOnly = true; +return; +}if ("info" === propertyName) { +this.info = value; +var o = this.info.get("id"); +if (o != null) this.thisID = (Clazz.instanceOf(o,"JS.SV") ? (o).asString() : o.toString()); +this.centers = (this.info.containsKey("center") ? null : JU.BSUtil.newAndSetBit((this.info.get("atomIndex")).intValue)); +this.iHaveCenterBitSet = (this.centers != null); +return; +}if ("delete" === propertyName) { +if (!this.iHaveCenterBitSet) this.centers = bs; +this.deletePolyhedra(); +return; +}if ("on" === propertyName) { +if (!this.iHaveCenterBitSet) this.centers = bs; +this.setVisible(true); +return; +}if ("off" === propertyName) { +if (!this.iHaveCenterBitSet) this.centers = bs; +this.setVisible(false); +return; +}if ("noedges" === propertyName) { +this.drawEdges = 0; +return; +}if ("edges" === propertyName) { +this.drawEdges = 1; +return; +}if ("edgesOnly" === propertyName) { +this.drawEdges = 3; +return; +}if ("frontedges" === propertyName) { +this.drawEdges = 2; +return; +}if (propertyName.indexOf("color") == 0) { +bs = ("colorThis" === propertyName && this.iHaveCenterBitSet ? this.centers : this.andBitSet(bs)); +var isPhase = ("colorPhase" === propertyName); +var cvalue = (isPhase ? (value)[1] : value); +var colixEdge = (isPhase ? JU.C.getColix(((value)[0]).intValue()) : 0); +var colix = JU.C.getColixO(isPhase ? cvalue : value); +var p; +var bs1 = this.findPolyBS(bs, false); +for (var i = bs1.nextSetBit(0); i >= 0; i = bs1.nextSetBit(i + 1)) { +p = this.polyhedrons[i]; +if (p.id == null) { +p.colixEdge = colixEdge; +} else { +p.colixEdge = colixEdge; +p.colix = colix; +}} +if (this.thisID != null) return; +value = cvalue; +propertyName = "color"; +}if (propertyName.indexOf("translucency") == 0) { +var isTranslucent = (value.equals("translucent")); +if (this.thisID != null) { +var bs1 = this.findPolyBS(bs, false); +var p; +for (var i = bs1.nextSetBit(0); i >= 0; i = bs1.nextSetBit(i + 1)) { +p = this.polyhedrons[i]; +p.colix = JU.C.getColixTranslucent3(p.colix, isTranslucent, this.translucentLevel); +if (p.colixEdge != 0) p.colixEdge = JU.C.getColixTranslucent3(p.colixEdge, isTranslucent, this.translucentLevel); +} +return; +}bs = ("translucentThis".equals(value) && this.iHaveCenterBitSet ? this.centers : this.andBitSet(bs)); +if (value.equals("translucentThis")) value = "translucent"; +}if ("radius" === propertyName) { +var v = (value).floatValue(); +if (v <= 0) { +this.isAuto = true; +v = (v == 0 ? 6 : -v); +}this.radius = v; +return; +}if ("radius1" === propertyName) { +this.radiusMin = this.radius; +this.radius = (value).floatValue(); +return; +}if ("points" === propertyName) { +this.pointScale = (value).floatValue(); +this.pointsPolyhedra(bs, this.pointScale); +return; +}if (propertyName === "deleteModelAtoms") { +var modelIndex = ((value)[2])[0]; +for (var i = this.polyhedronCount; --i >= 0; ) { +var p = this.polyhedrons[i]; +p.info = null; +if (p.modelIndex > modelIndex) { +p.modelIndex--; +} else if (p.modelIndex == modelIndex) { +this.polyhedronCount--; +this.polyhedrons = JU.AU.deleteElements(this.polyhedrons, i, 1); +}} +}this.setPropAS(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "setDefinedFaces", +function(points, faces){ +var bsUsed = new JU.BS(); +for (var i = faces.length; --i >= 0; ) { +var face = faces[i]; +for (var j = face.length; --j >= 0; ) bsUsed.set(face[j]); + +} +var bsNot = JU.BSUtil.newBitSet2(0, bsUsed.length()); +bsNot.andNot(bsUsed); +var nNot = bsNot.cardinality(); +if (nNot > 0) { +var np = points.length; +var mapOldToNew = Clazz.newIntArray (np, 0); +var mapNewToOld = Clazz.newIntArray (np, 0); +var n = 0; +for (var i = 0; i < np; i++) if (!bsNot.get(i)) { +mapNewToOld[n] = i; +mapOldToNew[i] = n++; +} +var pnew = new Array(n); +for (var i = 0; i < n; i++) pnew[i] = points[mapNewToOld[i]]; + +points = pnew; +for (var i = faces.length; --i >= 0; ) { +var face = faces[i]; +for (var j = face.length; --j >= 0; ) face[j] = mapOldToNew[face[j]]; + +} +}var n = this.nPoints = points.length; +this.center = new JU.P3(); +this.otherAtoms = new Array(n + 1); +if (n > 0) { +this.otherAtoms[n] = this.center; +for (var i = 0; i < n; i++) this.center.add(this.otherAtoms[i] = points[i]); + +this.center.scale(1 / n); +}this.explicitFaces = faces; +}, "~A,~A"); +Clazz.defineMethod(c$, "pointsPolyhedra", +function(bs, pointScale){ +bs = this.findPolyBS(this.thisID == null ? bs : null, false); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) this.polyhedrons[i].setPointScale(pointScale); + +}, "JU.BS,~N"); +Clazz.defineMethod(c$, "scalePolyhedra", +function(scale){ +var bs = this.findPolyBS(null, false); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) this.polyhedrons[i].scale = scale; + +}, "~N"); +Clazz.defineMethod(c$, "offsetPolyhedra", +function(value){ +var bs = this.findPolyBS(null, false); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) this.polyhedrons[i].setOffset(JU.P3.newP(value)); + +}, "JU.P3"); +Clazz.overrideMethod(c$, "getIndexFromName", +function(id){ +if (id != null) for (var i = this.polyhedronCount; --i >= 0; ) if (id.equalsIgnoreCase(this.polyhedrons[i].id)) return i; + +return -1; +}, "~S"); +Clazz.overrideMethod(c$, "getProperty", +function(property, i){ +if ("list".equals(property)) { +var sb = new JU.SB(); +for (i = 0; i < this.polyhedronCount; i++) { +sb.appendI(i + 1); +this.polyhedrons[i].list(sb); +} +return sb.toString(); +}var info = this.polyhedrons[i].getInfo(this.vwr, property); +return (property.equalsIgnoreCase("info") ? info : info.get(property)); +}, "~S,~N"); +Clazz.overrideMethod(c$, "getPropertyData", +function(property, data){ +var iatom = (Clazz.instanceOf(data[0], Integer) ? (data[0]).intValue() : -2147483648); +var id = ((typeof(data[0])=='string') ? data[0] : null); +var p; +if (property === "index") { +var i = this.getIndexFromName(id); +if (i >= 0) data[1] = Integer.$valueOf(i); +return (i >= 0); +}if (property === "checkID") { +return this.checkID(id); +}if (property === "getAtomsWithin") { +p = this.findPoly(id, iatom, true, false); +if (p == null) return false; +data[2] = this.getAtomsWithin(p, (data[1]).floatValue()); +return true; +}if (property === "info") { +p = this.findPoly(id, iatom, true, false); +if (p == null) return false; +data[1] = p.getInfo(this.vwr, "info"); +return true; +}if (property === "syminfo") { +p = this.findPoly(id, iatom, true, false); +if (p == null) return false; +p.getSymmetry(this.vwr, true); +data[1] = p.getInfo(this.vwr, "info"); +return true; +}if (property === "points") { +p = this.findPoly(id, iatom, false, false); +if (p == null) return false; +data[1] = p.vertices; +return true; +}if (property === "symmetry") { +var bsSelected = data[2]; +var s = ""; +for (var i = 0; i < this.polyhedronCount; i++) { +p = this.polyhedrons[i]; +if (p.id == null ? id != null || bsSelected != null && !bsSelected.get(p.centralAtom.i) : id != null && !JU.PT.isLike(p.id, id)) continue; +s += (i + 1) + "\t" + p.getSymmetry(this.vwr, true) + "\n"; +} +data[1] = s; +return true; +}if (property === "move") { +var mat = data[1]; +if (mat == null) return false; +var bsMoved = data[0]; +var bs = this.findPolyBS(bsMoved, false); +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) this.polyhedrons[i].move(mat, bsMoved); + +return true; +}if (property === "getCenters") { +var smiles = data[1]; +var bsSelected = data[2]; +var sm = (smiles == null ? null : this.vwr.getSmilesMatcher()); +if (sm != null) smiles = sm.cleanSmiles(smiles); +var nv = (smiles != null ? JU.PT.countChar(smiles, '*') : iatom); +if (nv == 0) nv = -2147483648; +var bs = new JU.BS(); +if (smiles == null || sm != null) for (var i = this.polyhedronCount; --i >= 0; ) { +p = this.polyhedrons[i]; +if (p.id != null) continue; +if (nv != (nv > 0 ? p.nVertices : nv > -2147483648 ? -p.faces.length : nv)) continue; +iatom = p.centralAtom.i; +if (bsSelected != null && !bsSelected.get(iatom)) continue; +if (smiles == null) { +bs.set(iatom); +continue; +}p.getSymmetry(this.vwr, false); +var smiles0 = sm.cleanSmiles(p.polySmiles); +try { +if (sm.areEqual(smiles, smiles0) > 0) bs.set(iatom); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +e.printStackTrace(); +} else { +throw e; +} +} +} +data[1] = bs; +return true; +}if (property === "allInfo") { +var info = new JU.Lst(); +for (var i = this.polyhedronCount; --i >= 0; ) info.addLast(this.polyhedrons[i].getInfo(this.vwr, "info")); + +data[1] = info; +return true; +}return this.getPropShape(property, data); +}, "~S,~A"); +Clazz.defineMethod(c$, "getAtomsWithin", +function(p, offset){ +var faces = p.faces; +var vertices = p.vertices; +var center = (p.center == null ? p.centralAtom : p.center); +if (p.planes == null) { +var vNorm = new JU.V3(); +var vAB = new JU.V3(); +p.planes = new Array(faces.length); +for (var iface = faces.length; --iface >= 0; ) { +var plane = p.planes[iface] = new JU.P4(); +JU.Measure.getPlaneThroughPoints(vertices[faces[iface][0]], vertices[faces[iface][1]], vertices[faces[iface][2]], vNorm, vAB, plane); +} +}var maxDistance = 0; +for (var i = p.nVertices; --i >= 0; ) { +var d = vertices[i].distance(center); +if (d > maxDistance) maxDistance = d; +} +var bsAtoms = new JU.BS(); +this.vwr.ms.getAtomsWithin(maxDistance + offset, center, bsAtoms, p.modelIndex); +var atoms = this.ms.at; +for (var i = bsAtoms.nextSetBit(0); i >= 0; i = bsAtoms.nextSetBit(i + 1)) { +for (var f = faces.length; --f >= 0; ) { +if (JU.Measure.distanceToPlane(p.planes[f], atoms[i]) > offset + 0.001) { +bsAtoms.clear(i); +break; +}} +} +return bsAtoms; +}, "J.shapespecial.Polyhedron,~N"); +Clazz.defineMethod(c$, "checkID", +function(thisID){ +this.thisID = thisID; +return (!this.findPolyBS(null, false).isEmpty()); +}, "~S"); +Clazz.defineMethod(c$, "findPoly", +function(id, iatom, allowCollapsed, andDelete){ +for (var i = this.polyhedronCount; --i >= 0; ) { +var p = this.polyhedrons[i]; +if (p.id == null ? p.centralAtom.i == iatom : p.id.equalsIgnoreCase(id)) { +if (andDelete) { +this.polyhedronCount--; +for (; i < this.polyhedronCount; i++) this.polyhedrons[i] = this.polyhedrons[i + 1]; + +}return (allowCollapsed || !this.polyhedrons[i].collapsed ? this.polyhedrons[i] : null); +}} +return null; +}, "~S,~N,~B,~B"); +Clazz.defineMethod(c$, "findPolyBS", +function(bsCenters, isAll){ +var bs = this.bsPolys; +bs.clearAll(); +if (isAll) { +bs.setBits(0, this.polyhedronCount); +} else { +var p; +for (var i = this.polyhedronCount; --i >= 0; ) { +p = this.polyhedrons[i]; +if (p.id == null ? bsCenters != null && bsCenters.get(p.centralAtom.i) : this.isMatch(p.id)) bs.set(i); +} +}return bs; +}, "JU.BS,~B"); +Clazz.defineMethod(c$, "isMatch", +function(id){ +return this.thisID != null && JU.PT.isMatch(id.toLowerCase(), this.thisID.toLowerCase(), true, true); +}, "~S"); +Clazz.overrideMethod(c$, "getShapeDetail", +function(){ +var lst = new JU.Lst(); +for (var i = 0; i < this.polyhedronCount; i++) lst.addLast(this.polyhedrons[i].getInfo(this.vwr, "info")); + +return lst; +}); +Clazz.defineMethod(c$, "andBitSet", +function(bs){ +var bsCenters = new JU.BS(); +for (var i = this.polyhedronCount; --i >= 0; ) { +var p = this.polyhedrons[i]; +if (p.id == null) bsCenters.set(p.centralAtom.i); +} +bsCenters.and(bs); +return bsCenters; +}, "JU.BS"); +Clazz.defineMethod(c$, "deletePolyhedra", +function(){ +var newCount = 0; +var pid = J.c.PAL.pidOf(null); +var bs = this.findPolyBS(this.centers, false); +for (var i = 0; i < this.polyhedronCount; ++i) { +var p = this.polyhedrons[i]; +if (bs.get(i)) { +if (this.colixes != null && p.id == null) this.setColixAndPalette(0, pid, p.centralAtom.i); +continue; +}this.polyhedrons[newCount++] = p; +} +for (var i = newCount; i < this.polyhedronCount; ++i) this.polyhedrons[i] = null; + +this.polyhedronCount = newCount; +}); +Clazz.defineMethod(c$, "setVisible", +function(visible){ +var bs = this.findPolyBS(this.centers, false); +var atoms = this.ms.at; +for (var i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1)) { +var p = this.polyhedrons[i]; +p.visible = visible; +if (p.centralAtom != null) atoms[p.centralAtom.i].setShapeVisibility(this.vf, visible); +} +}, "~B"); +Clazz.defineMethod(c$, "buildPolyhedra", +function(){ +var p = null; +if (this.info == null && this.centers == null && (this.center == null || this.nPoints == 0)) return; +if (this.info != null && this.info.containsKey("id")) { +p = new J.shapespecial.Polyhedron().setInfo(this.vwr, this.info, this.ms.at); +} else if (this.thisID != null) { +if (JU.PT.isWild(this.thisID)) return; +if (this.center != null) { +if (this.nPoints == 0) this.setPointsFromBitset(); +p = this.validatePolyhedron(this.center, this.nPoints); +}}if (p != null) { +this.addPolyhedron(p); +return; +}var useBondAlgorithm = (this.radius == 0 || this.bondedOnly); +var buildMode = (this.info != null ? 6 : this.nPoints > 0 ? 2 : this.haveBitSetVertices ? 4 : this.useUnitCell ? 5 : useBondAlgorithm ? 1 : 3); +var iter = (buildMode == 3 ? this.ms.getSelectedAtomIterator(null, false, false, false, false) : null); +var atoms = this.ms.at; +for (var i = this.centers.nextSetBit(0); i >= 0; i = this.centers.nextSetBit(i + 1)) { +var atom = atoms[i]; +p = null; +switch (buildMode) { +case 4: +p = this.constructBitSetPolyhedron(atom); +break; +case 5: +p = this.constructUnitCellPolygon(atom, useBondAlgorithm); +break; +case 1: +p = this.constructBondsPolyhedron(atom, 0); +break; +case 3: +this.vwr.setIteratorForAtom(iter, i, this.radius); +p = this.constructRadiusPolyhedron(atom, iter); +break; +case 6: +p = new J.shapespecial.Polyhedron().setInfo(this.vwr, this.info, this.ms.at); +break; +case 2: +p = this.validatePolyhedron(atom, this.nPoints); +break; +} +if (p != null) this.addPolyhedron(p); +if (this.haveBitSetVertices) break; +} +if (iter != null) iter.release(); +}); +Clazz.defineMethod(c$, "setPointsFromBitset", +function(){ +if (this.bsVertices != null) { +var atoms = this.ms.at; +for (var i = this.bsVertices.nextSetBit(0); i >= 0 && this.nPoints < 250; i = this.bsVertices.nextSetBit(i + 1)) this.otherAtoms[this.nPoints++] = atoms[i]; + +}}); +Clazz.defineMethod(c$, "addPolyhedron", +function(p){ +if (this.polyhedronCount == this.polyhedrons.length) this.polyhedrons = JU.AU.doubleLength(this.polyhedrons); +this.polyhedrons[this.polyhedronCount++] = p; +}, "J.shapespecial.Polyhedron"); +Clazz.defineMethod(c$, "constructBondsPolyhedron", +function(atom, otherAtomCount){ +this.distanceRef = 0; +if (otherAtomCount == 0) { +var bonds = atom.bonds; +if (bonds == null) return null; +var r2 = this.radius * this.radius; +var r1 = this.radiusMin * this.radiusMin; +var r; +for (var i = bonds.length; --i >= 0; ) { +var bond = bonds[i]; +if (!bond.isCovalent()) continue; +var other = bond.getOtherAtom(atom); +if (this.bsVertices != null && !this.bsVertices.get(other.i) || this.radius > 0 && ((r = other.distanceSquared(atom)) > r2 || r < r1)) continue; +this.otherAtoms[otherAtomCount++] = other; +if (otherAtomCount >= 250) return null; +} +}if (this.isAuto) otherAtomCount = this.setGap(atom, otherAtomCount); +return (otherAtomCount < 3 || this.nVertices > 0 && !this.bsVertexCount.get(otherAtomCount) ? null : this.validatePolyhedron(atom, otherAtomCount)); +}, "JM.Atom,~N"); +Clazz.defineMethod(c$, "constructUnitCellPolygon", +function(atom, useBondAlgorithm){ +var unitcell = this.ms.getUnitCellForAtom(atom.i); +if (unitcell == null) return null; +var bsAtoms = JU.BSUtil.copy(this.vwr.getModelUndeletedAtomsBitSet(atom.mi)); +if (this.bsVertices != null) bsAtoms.and(this.bsVertices); +if (bsAtoms.isEmpty()) return null; +var atoms = this.ms.at; +var iter = unitcell.getIterator(this.vwr, atom, bsAtoms, useBondAlgorithm ? 5 : this.radius); +if (!useBondAlgorithm) return this.constructRadiusPolyhedron(atom, iter); +var myBondingRadius = atom.getBondingRadius(); +if (myBondingRadius == 0) return null; +var bondTolerance = this.vwr.getFloat(570425348); +var minBondDistance = (this.radiusMin == 0 ? this.vwr.getFloat(570425364) : this.radiusMin); +var minBondDistance2 = minBondDistance * minBondDistance; +var otherAtomCount = 0; +outer : while (iter.hasNext()) { +var other = atoms[iter.next()]; +var otherRadius = other.getBondingRadius(); +var pt = iter.getPosition(); +var distance2 = atom.distanceSquared(pt); +if (!this.ms.isBondable(myBondingRadius, otherRadius, distance2, minBondDistance2, bondTolerance)) continue; +for (var i = 0; i < otherAtomCount; i++) if (this.otherAtoms[i].distanceSquared(pt) < 0.01) continue outer; + +this.otherAtoms[otherAtomCount++] = pt; +if (otherAtomCount >= 250) return null; +} +return this.constructBondsPolyhedron(atom, otherAtomCount); +}, "JM.Atom,~B"); +Clazz.defineMethod(c$, "constructBitSetPolyhedron", +function(atom){ +this.bsVertices.clear(atom.i); +if (this.bsVertices.cardinality() >= 250) return null; +var otherAtomCount = 0; +this.distanceRef = 0; +var atoms = this.ms.at; +for (var i = this.bsVertices.nextSetBit(0); i >= 0; i = this.bsVertices.nextSetBit(i + 1)) this.otherAtoms[otherAtomCount++] = atoms[i]; + +return this.validatePolyhedron(atom, otherAtomCount); +}, "JM.Atom"); +Clazz.defineMethod(c$, "constructRadiusPolyhedron", +function(atom, iter){ +var otherAtomCount = 0; +this.distanceRef = this.radius; +var r2 = this.radius * this.radius; +var r2min = this.radiusMin * this.radiusMin; +var atoms = this.ms.at; +outer : while (iter.hasNext()) { +var other = atoms[iter.next()]; +var pt = iter.getPosition(); +if (pt == null) { +pt = other; +if (this.bsVertices != null && !this.bsVertices.get(other.i)) continue; +}var r = atom.distanceSquared(pt); +if (other.altloc != atom.altloc && other.altloc.charCodeAt(0) != 0 && atom.altloc.charCodeAt(0) != 0 || r > r2 || r < r2min) continue; +if (otherAtomCount == 250) break; +for (var i = 0; i < otherAtomCount; i++) if (this.otherAtoms[i].distanceSquared(pt) < 0.01) continue outer; + +this.otherAtoms[otherAtomCount++] = pt; +} +if (this.isAuto) otherAtomCount = this.setGap(atom, otherAtomCount); +return (otherAtomCount < 3 || this.nVertices > 0 && !this.bsVertexCount.get(otherAtomCount) ? null : this.validatePolyhedron(atom, otherAtomCount)); +}, "JM.Atom,J.api.AtomIndexIterator"); +Clazz.defineMethod(c$, "setGap", +function(atom, otherAtomCount){ +if (otherAtomCount < 4) return otherAtomCount; +var dist = Clazz.newArray(250, 2, null); +for (var i = 0; i < otherAtomCount; i++) dist[i][0] = Float.$valueOf(atom.distance((dist[i][1] = this.otherAtoms[i]))); + +java.util.Arrays.sort(dist, this); +var maxGap = 0; +var iMax = 0; +var n = otherAtomCount; +var dlast = (dist[0][0]).floatValue(); +this.otherAtoms[0] = dist[0][1]; +for (var i = 1; i < n; i++) { +var d = (dist[i][0]).floatValue(); +var gap = d - dlast; +this.otherAtoms[i] = dist[i][1]; +if (JU.Logger.debugging) JU.Logger.info("polyhedron d=" + d + " " + this.otherAtoms[i]); +if (gap > maxGap) { +if (JU.Logger.debugging) JU.Logger.info("polyhedron maxGap=" + gap + " for i=" + i + " d=" + d + " " + this.otherAtoms[i]); +maxGap = gap; +iMax = i; +}dlast = d; +} +return (iMax == 0 ? otherAtomCount : iMax); +}, "JU.P3,~N"); +Clazz.defineMethod(c$, "validatePolyhedron", +function(atomOrPt, vertexCount){ +var points = this.otherAtoms; +var faces = this.explicitFaces; +var faceTriangles; +var normals; +var collapsed = this.isCollapsed; +var triangleCount = 0; +var bsCenterPlanes = new JU.BS(); +var triangles; +if (faces != null) { +collapsed = false; +faceTriangles = JU.AU.newInt2(faces.length); +normals = new Array(faces.length); +for (var i = faces.length; --i >= 0; ) faces[i] = this.fixExplicitFaceWinding(faces[i], i, points, normals); + +triangles = (J.api.Interface.getInterface("JU.MeshCapper", this.vwr, "script")).set(null).triangulateFaces(faces, points, faceTriangles); +triangleCount = triangles.length; +} else { +this.nPoints = vertexCount + 1; +var ni = vertexCount - 2; +var nj = vertexCount - 1; +var planarParam = (Float.isNaN(this.planarParam) ? 0.98 : this.planarParam); +points[vertexCount] = atomOrPt; +var ptAve = JU.P3.newP(atomOrPt); +for (var i = 0; i < vertexCount; i++) ptAve.add(points[i]); + +ptAve.scale(1 / (vertexCount + 1)); +var ptRef = JU.P3.newP(ptAve); +var bsThroughCenter = new JU.BS(); +if (this.thisID == null) for (var pt = 0, i = 0; i < ni; i++) for (var j = i + 1; j < nj; j++) for (var k = j + 1; k < vertexCount; k++, pt++) if (this.isPlanar(points[i], points[j], points[k], ptRef)) bsThroughCenter.set(pt); + + + +triangles = this.planesT; +var pTemp = new JU.P4(); +var nTemp = new JU.V3(); +var offset = this.faceCenterOffset; +var fmax = 247; +var vmax = 250; +var bsTemp = JU.Normix.newVertexBitSet(); +normals = this.normalsT; +var htNormMap = new java.util.Hashtable(); +var htEdgeMap = new java.util.Hashtable(); +var lstRejected = (this.isFull ? new JU.Lst() : null); +var edgeTest = new Array(3); +var vAC = this.vAC; +for (var i = 0, pt = 0; i < ni; i++) for (var j = i + 1; j < nj; j++) { +for (var k = j + 1; k < vertexCount; k++, pt++) { +if (triangleCount >= fmax) { +JU.Logger.error("Polyhedron error: maximum face(" + fmax + ") -- reduce RADIUS"); +return null; +}if (this.nPoints >= vmax) { +JU.Logger.error("Polyhedron error: maximum vertex count(" + vmax + ") -- reduce RADIUS"); +return null; +}var isThroughCenter = bsThroughCenter.get(pt); +var rpt = (isThroughCenter ? J.shapespecial.Polyhedra.randomPoint : ptAve); +var normal = new JU.V3(); +var isWindingOK = JU.Measure.getNormalFromCenter(rpt, points[i], points[j], points[k], !isThroughCenter, normal, vAC); +var t = Clazz.newIntArray(-1, [isWindingOK ? i : j, isWindingOK ? j : i, k, -7]); +var err = this.checkFacet(points, vertexCount, t, triangleCount, normal, pTemp, nTemp, vAC, htNormMap, htEdgeMap, planarParam, bsTemp, edgeTest); +if (err != 0) { +if (this.isFull && err != 3.4028235E38 && err < 0.5) { +t[3] = Clazz.floatToInt(err * 100); +lstRejected.addLast(t); +}continue; +}normals[triangleCount] = normal; +triangles[triangleCount] = t; +if (isThroughCenter) { +bsCenterPlanes.set(triangleCount++); +} else if (collapsed) { +points[this.nPoints] = new JU.P3(); +points[this.nPoints].scaleAdd2(offset, normal, atomOrPt); +ptRef.setT(points[this.nPoints]); +this.addFacet(i, j, k, ptRef, points, normals, triangles, triangleCount++, this.nPoints, isWindingOK, vAC); +this.addFacet(k, i, j, ptRef, points, normals, triangles, triangleCount++, this.nPoints, isWindingOK, vAC); +this.addFacet(j, k, i, ptRef, points, normals, triangles, triangleCount++, this.nPoints, isWindingOK, vAC); +this.nPoints++; +} else { +triangleCount++; +}} +} + +this.nPoints--; +if (JU.Logger.debugging) { +JU.Logger.info("Polyhedron planeCount=" + triangleCount + " nPoints=" + this.nPoints); +for (var i = 0; i < triangleCount; i++) JU.Logger.info("Polyhedron " + JU.PT.toJSON("face[" + i + "]", triangles[i])); + +}faces = this.getFaces(triangles, triangleCount, htNormMap); +faceTriangles = this.getFaceTriangles(faces.length, htNormMap, triangleCount); +}return new J.shapespecial.Polyhedron().set(this.thisID, this.modelIndex, atomOrPt, points, this.nPoints, vertexCount, triangles, triangleCount, faces, faceTriangles, normals, bsCenterPlanes, collapsed, this.distanceRef, this.pointScale); +}, "JU.P3,~N"); +Clazz.defineMethod(c$, "fixExplicitFaceWinding", +function(face, ipt, points, normals){ +var n = face.length; +for (var i = 0, nlast = n - 2; i < nlast; i++) { +var a = points[face[i]]; +var b = points[face[(i + 1) % n]]; +var c = points[face[(i + 2) % n]]; +if (JU.Measure.computeAngleABC(a, b, c, true) < 178) { +if (!JU.Measure.getNormalFromCenter(this.center, a, b, c, true, normals[ipt] = new JU.V3(), this.vAC)) face = JU.AU.arrayCopyRangeRevI(face, 0, -1); +break; +}} +return face; +}, "~A,~N,~A,~A"); +Clazz.defineMethod(c$, "getFaceTriangles", +function(n, htNormMap, triangleCount){ +var faceTriangles = JU.AU.newInt2(n); +if (triangleCount == n) { +for (var i = triangleCount; --i >= 0; ) faceTriangles[i] = Clazz.newIntArray(-1, [i]); + +return faceTriangles; +}var i = 0; +for (var e, $e = htNormMap.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var eo = e.getValue(); +if (eo[2] != null && eo[2] !== e.getKey()) continue; +var lst = e.getValue()[1]; +n = lst.size(); +var a = Clazz.newIntArray (n, 0); +for (var j = n; --j >= 0; ) a[j] = lst.get(j).intValue(); + +faceTriangles[i++] = a; +} +return faceTriangles; +}, "~N,java.util.Map,~N"); +Clazz.defineMethod(c$, "addFacet", +function(i, j, k, ptRef, points, normals, faces, planeCount, nRef, isWindingOK, vTemp){ +var normal = new JU.V3(); +var ii = isWindingOK ? i : j; +var jj = isWindingOK ? j : i; +JU.Measure.getNormalFromCenter(points[k], ptRef, points[ii], points[jj], false, normal, vTemp); +normals[planeCount] = normal; +faces[planeCount] = Clazz.newIntArray(-1, [nRef, ii, jj, -2]); +}, "~N,~N,~N,JU.P3,~A,~A,~A,~N,~N,~B,JU.V3"); +Clazz.defineMethod(c$, "checkFacet", +function(points, nPoints, t, index, norm, pTemp, vNorm, vAC, htNormMap, htEdgeMap, planarParam, bsTemp, edgeTest){ +var i0 = t[0]; +JU.Measure.getPlaneThroughPoints(points[i0], points[t[1]], points[t[2]], vNorm, vAC, pTemp); +var pt = points[i0]; +for (var j = 0; j < nPoints; j++) { +if (j == i0) continue; +vAC.sub2(points[j], pt); +vAC.normalize(); +var v = vAC.dot(vNorm); +if (v > 0.05) { +return v; +}if (JU.Logger.debugging) JU.Logger.info("checkFacet " + j + " " + v + " " + JU.PT.toJSON(null, t)); +} +var normix = Integer.$valueOf(JU.Normix.getNormixV(norm, bsTemp)); +var o = htNormMap.get(normix); +if (o == null) { +var norms = JU.Normix.getVertexVectors(); +for (var e, $e = htNormMap.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var n = e.getKey(); +if (norms[n.intValue()].dot(norm) > planarParam) { +o = e.getValue(); +o[2] = n; +htNormMap.put(normix, o); +break; +}} +if (o == null) htNormMap.put(normix, o = Clazz.newArray(-1, [ new JU.Lst(), new JU.Lst(), normix])); +}normix = o[2]; +var faceEdgeList = o[0]; +var faceTriList = o[1]; +for (var i = 0; i < 3; i++) if ((edgeTest[i] = this.addEdge(faceEdgeList, htEdgeMap, normix, t, i, points)) == null) return 3.4028235E38; + +for (var i = 0; i < 3; i++) { +var oo = edgeTest[i]; +if (oo === Boolean.TRUE) continue; +var oe = oo; +faceEdgeList.addLast(oe[2]); +htEdgeMap.put(oe[3], oe); +} +faceTriList.addLast(Integer.$valueOf(index)); +return 0; +}, "~A,~N,~A,~N,JU.V3,JU.P4,JU.V3,JU.V3,java.util.Map,java.util.Map,~N,JU.BS,~A"); +Clazz.defineMethod(c$, "addEdge", +function(faceEdgeList, htEdgeMap, normix, p1, i, points){ +var pt = p1[i]; +var pt1 = p1[(i + 1) % 3]; +var s1 = "_" + pt1; +var s = "_" + pt; +var edge = normix + s + s1; +if (htEdgeMap.containsKey(edge)) return null; +var edge0 = normix + s1 + s; +var o = htEdgeMap.get(edge0); +var b; +if (o == null) { +var coord2 = points[pt1]; +var coord1 = points[pt]; +this.vAB.sub2(coord2, coord1); +for (var j = faceEdgeList.size(); --j >= 0; ) { +var e = faceEdgeList.get(j); +var c1 = points[e[0]]; +var c2 = points[e[1]]; +if (c1 !== coord1 && c1 !== coord2 && c2 !== coord1 && c2 !== coord2 && this.testDiff(c1, c2, coord1, coord2) && this.testDiff(coord1, coord2, c1, c2)) return null; +} +return Clazz.newArray(-1, [p1, Integer.$valueOf(i), Clazz.newIntArray(-1, [pt, pt1, 0]), edge]); +}var p10 = (o)[0]; +if (p10 == null) return null; +var i0 = ((o)[1]).intValue(); +p10[3] = -((-p10[3]) ^ (1 << i0)); +p1[3] = -((-p1[3]) ^ (1 << i)); +b = (o)[2]; +for (var j = faceEdgeList.size(); --j >= 0; ) { +var f = faceEdgeList.get(j); +if (f[0] == b[0] && f[1] == b[1]) { +f[2] = -1; +break; +}} +htEdgeMap.put(edge, Clazz.newArray(-1, [null])); +htEdgeMap.put(edge0, Clazz.newArray(-1, [null])); +return Boolean.TRUE; +}, "JU.Lst,java.util.Map,Integer,~A,~N,~A"); +Clazz.defineMethod(c$, "testDiff", +function(a1, b1, a2, b2){ +this.vAB.sub2(b1, a1); +this.vAC.sub2(a2, a1); +this.vAC.cross(this.vAC, this.vAB); +this.vBC.sub2(b2, a1); +this.vBC.cross(this.vBC, this.vAB); +return (this.vBC.dot(this.vAC) < 0); +}, "JU.P3,JU.P3,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "isPlanar", +function(pt1, pt2, pt3, ptX){ +var norm = new JU.V3(); +var w = JU.Measure.getNormalThroughPoints(pt1, pt2, pt3, norm, this.vAB); +var d = JU.Measure.distanceToPlaneV(norm, w, ptX); +return (Math.abs(d) < J.shapespecial.Polyhedra.MAX_DISTANCE_TO_PLANE); +}, "JU.P3,JU.P3,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "getFaces", +function(triangles, triangleCount, htNormMap){ +var n = 0; +for (var e, $e = htNormMap.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var eo = e.getValue(); +if (eo[2] === e.getKey()) n++; +} +var faces = JU.AU.newInt2(n); +if (triangleCount == n) { +for (var i = triangleCount; --i >= 0; ) faces[i] = JU.AU.arrayCopyI(triangles[i], 3); + +return faces; +}var fpt = 0; +for (var e, $e = htNormMap.entrySet().iterator (); $e.hasNext()&& ((e = $e.next ()) || true);) { +var eo = e.getValue(); +if (eo[2] != null && eo[2] !== e.getKey()) continue; +var faceEdgeList = e.getValue()[0]; +n = faceEdgeList.size(); +var nOK = 0; +for (var i = faceEdgeList.size(); --i >= 0; ) if (faceEdgeList.get(i)[2] >= 0) nOK++; + +var face = faces[fpt++] = Clazz.newIntArray (nOK, 0); +if (n < 2) continue; +var edge = null; +var pt = 0; +do { +edge = faceEdgeList.get(pt); +} while (pt++ < nOK && edge[2] == -1); +face[0] = edge[0]; +face[1] = edge[1]; +pt = 2; +var i0 = 1; +var pt0 = -1; +while (pt < nOK && pt0 != pt) { +pt0 = pt; +for (var i = i0; i < n; i++) { +edge = faceEdgeList.get(i); +if (edge[2] != -1 && edge[0] == face[pt - 1]) { +face[pt++] = edge[1]; +if (i == i0) i0++; +break; +}} +} +} +return faces; +}, "~A,~N,java.util.Map"); +Clazz.overrideMethod(c$, "setModelVisibilityFlags", +function(bsModels){ +for (var i = this.polyhedronCount; --i >= 0; ) { +var p = this.polyhedrons[i]; +if (p.id == null) { +var ia = p.centralAtom.i; +if (this.ms.at[ia].isDeleted()) p.isValid = false; +p.visibilityFlags = (p.visible && bsModels.get(p.modelIndex) && !this.ms.isAtomHidden(ia) && !this.ms.at[ia].isDeleted() ? this.vf : 0); +this.ms.at[ia].setShapeVisibility(this.vf, p.visibilityFlags != 0); +} else { +p.visibilityFlags = (p.visible && (p.modelIndex < 0 || bsModels.get(p.modelIndex)) ? this.vf : 0); +}} +}, "JU.BS"); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +if (this.polyhedronCount == 0) return ""; +var s = new JU.SB(); +for (var i = 0; i < this.polyhedronCount; i++) if (this.polyhedrons[i].isValid) s.append(this.polyhedrons[i].getState(this.vwr)); + +if (this.drawEdges == 2) J.shape.Shape.appendCmd(s, "polyhedra frontedges"); + else if (this.drawEdges == 1) J.shape.Shape.appendCmd(s, "polyhedra edges"); + else if (this.drawEdges == 3) J.shape.Shape.appendCmd(s, "polyhedra edgesOnly"); +s.append(this.vwr.getStateCreator().getAtomShapeState(this)); +var ia; +for (var i = 0; i < this.polyhedronCount; i++) { +var p = this.polyhedrons[i]; +if (p.isValid && p.id == null && p.colixEdge != 0 && this.bsColixSet.get(ia = p.centralAtom.i)) J.shape.Shape.appendCmd(s, "select ({" + ia + "}); color polyhedra " + (JU.C.isColixTranslucent(this.colixes[ia]) ? "translucent " : "") + JU.C.getHexCode(this.colixes[ia]) + " " + JU.C.getHexCode(p.colixEdge)); +} +return s.toString(); +}); +c$.randomPoint = JU.P3.new3(3141, 2718, 1414); +c$.MAX_DISTANCE_TO_PLANE = 0.1; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Polyhedron.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Polyhedron.js new file mode 100755 index 000000000000..699040149f13 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Polyhedron.js @@ -0,0 +1,401 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(null, "J.shapespecial.Polyhedron", ["java.util.Hashtable", "JU.AU", "$.BS", "$.Lst", "$.Measure", "$.P3", "$.PT", "$.V3", "J.api.Interface", "JS.SV", "JU.C", "$.Elements", "$.Escape", "$.Logger", "$.Normix", "$.Point3fi"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.info = null; +this.id = null; +this.center = null; +this.centralAtom = null; +this.vertices = null; +this.triangles = null; +this.faces = null; +this.nVertices = 0; +this.collapsed = false; +this.bsFlat = null; +this.distanceRef = 0; +this.normals = null; +this.normixes = null; +this.planes = null; +this.smiles = null; +this.smarts = null; +this.polySmiles = null; +this.pointGroup = null; +this.pointGroupFamily = null; +this.volume = null; +this.visible = true; +this.isFullyLit = false; +this.isValid = true; +this.colixEdge = 0; +this.visibilityFlags = 0; +this.colix = 23; +this.modelIndex = -2147483648; +this.offset = null; +this.scale = 1; +this.pointScale = 0; +this.faceTriangles = null; +this.elemNos = null; +this.v0 = null; +Clazz.instantialize(this, arguments);}, J.shapespecial, "Polyhedron", null); +/*LV!1824 unnec constructor*/Clazz.defineMethod(c$, "set", +function(id, modelIndex, atomOrPt, points, nPoints, vertexCount, triangles, triangleCount, faces, faceTriangles, normals, bsFlat, collapsed, distanceRef, pointScale){ +this.pointScale = pointScale; +this.distanceRef = distanceRef; +if (id == null) { +this.centralAtom = atomOrPt; +this.modelIndex = this.centralAtom.mi; +} else { +this.id = id; +this.center = atomOrPt; +this.modelIndex = modelIndex; +}this.nVertices = vertexCount; +this.vertices = new Array(nPoints + 1); +this.normals = new Array(triangleCount); +this.faces = faces; +this.faceTriangles = faceTriangles; +this.bsFlat = bsFlat; +this.triangles = JU.AU.newInt2(triangleCount); +for (var i = nPoints + 1; --i >= 0; ) this.vertices[i] = points[i]; + +for (var i = triangleCount; --i >= 0; ) this.normals[i] = JU.V3.newV(normals[i]); + +for (var i = triangleCount; --i >= 0; ) this.triangles[i] = triangles[i]; + +this.collapsed = collapsed; +return this; +}, "~S,~N,JU.P3,~A,~N,~N,~A,~N,~A,~A,~A,JU.BS,~B,~N,~N"); +Clazz.defineMethod(c$, "setInfo", +function(vwr, info, at){ +try { +var o = info.get("id"); +this.collapsed = info.containsKey("collapsed"); +var isSV = (!((typeof(o)=='string'))); +if (o != null) this.id = (isSV ? (info.get("id")).asString() : o.toString()); +if (this.id == null) { +this.centralAtom = at[(info.get("atomIndex")).intValue]; +this.modelIndex = this.centralAtom.mi; +} else { +o = info.get("center"); +this.center = JU.P3.newP(isSV ? JS.SV.ptValue(o) : o); +o = info.get("modelIndex"); +this.modelIndex = (o == null ? vwr.am.cmi : isSV ? (o).intValue : (o).intValue()); +o = info.get("color"); +this.colix = JU.C.getColixS(o == null ? "gold" : isSV ? (o).asString() : o); +o = info.get("colorEdge"); +if (o != null) this.colixEdge = JU.C.getColixS(isSV ? (o).asString() : o.toString()); +o = info.get("offset"); +if (o != null) this.offset = JU.P3.newP(isSV ? JS.SV.ptValue(o) : o); +o = info.get("scale"); +if (o != null) this.scale = (isSV ? JS.SV.fValue(o) : (o).floatValue()); +}o = info.get("vertices"); +var lst = (isSV ? (o).getList() : o); +o = info.get("vertexCount"); +var needTriangles = false; +if (o != null) { +this.nVertices = (isSV ? (o).intValue : (o).intValue()); +this.vertices = new Array(lst.size()); +o = info.get("r"); +if (o != null) this.distanceRef = (isSV ? (o).asFloat() : (o).floatValue()); +} else { +this.nVertices = lst.size(); +this.vertices = new Array(this.nVertices + 1); +if (this.center == null) { +this.vertices[this.nVertices] = JS.SV.ptValue(info.get("ptRef")); +} else { +this.vertices[this.nVertices] = this.center; +needTriangles = true; +}}for (var i = lst.size(); --i >= 0; ) { +o = lst.get(i); +this.vertices[i] = (isSV ? JS.SV.ptValue(o) : o); +} +o = info.get("explodeOffset"); +if (o != null) this.setZeroOffset((o).floatValue()); +o = info.get("elemNos"); +if (o != null) { +lst = (isSV ? (o).getList() : o); +for (var i = this.nVertices; --i >= 0; ) { +o = lst.get(i); +var n = (isSV ? (o).intValue : (o).intValue()); +if (n > 0) { +var p = new JU.Point3fi(); +p.setT(this.vertices[i]); +p.sD = n; +this.vertices[i] = p; +}} +}o = info.get("pointScale"); +if (o != null) this.pointScale = Math.max(0, (isSV ? JS.SV.fValue(o) : (o).floatValue())); +this.faces = this.toInt2(isSV, info.get("faces")); +o = info.get("triangles"); +if (o == null) { +if (needTriangles) { +this.faceTriangles = JU.AU.newInt2(this.faces.length); +this.triangles = (J.api.Interface.getInterface("JU.MeshCapper", vwr, "script")).set(null).triangulateFaces(this.faces, this.vertices, this.faceTriangles); +} else { +this.triangles = this.faces; +this.faces = null; +}} else { +this.triangles = this.toInt2(isSV, o); +}this.normals = new Array(this.triangles.length); +var vAB = new JU.V3(); +for (var i = this.triangles.length; --i >= 0; ) { +this.normals[i] = new JU.V3(); +var a = this.triangles[i]; +JU.Measure.getNormalThroughPoints(this.vertices[a[0]], this.vertices[a[1]], this.vertices[a[2]], this.normals[i], vAB); +} +o = info.get("bsFlat"); +this.bsFlat = (o == null ? new JU.BS() : isSV ? JS.SV.getBitSet(o, false) : o); +if (info.containsKey("volume")) info.put("volume", this.getVolume()); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +return null; +} else { +throw e; +} +} +return this; +}, "JV.Viewer,java.util.Map,~A"); +Clazz.defineMethod(c$, "toInt2", +function(isSV, o){ +var lst = (isSV ? (o).getList() : o); +var ai = JU.AU.newInt2(lst.size()); +for (var i = ai.length; --i >= 0; ) { +o = lst.get(i); +if (isSV) { +var lst2 = (o).getList(); +var a = ai[i] = Clazz.newIntArray (lst2.size(), 0); +for (var j = a.length; --j >= 0; ) a[j] = lst2.get(j).intValue; + +} else { +ai[i] = o; +}} +return ai; +}, "~B,~O"); +Clazz.defineMethod(c$, "getInfo", +function(vwr, property){ +var isState = (property == null); +var isFaceCalc = (!isState); +var info = this.info; +if (!isState && info != null && (!isFaceCalc || info.containsKey("face_types")) && !JU.Logger.debugging) return info; +info = new java.util.Hashtable(); +info.put("vertexCount", Integer.$valueOf(this.nVertices)); +var nv = (isState ? this.vertices.length : this.nVertices); +var pts = new Array(nv); +for (var i = 0; i < nv; i++) pts[i] = JU.P3.newP(this.vertices[i]); + +info.put("vertices", pts); +info.put("elemNos", this.getElemNos(true)); +if (this.id == null) { +info.put("atomIndex", Integer.$valueOf(this.centralAtom.i)); +} else { +info.put("id", this.id); +info.put("center", JU.P3.newP(this.center)); +info.put("color", JU.C.getHexCode(this.colix)); +info.put("colorEdge", JU.C.getHexCode(this.colixEdge == 0 ? this.colix : this.colixEdge)); +if (this.offset != null) info.put("offset", this.offset); +if (this.scale != 1) info.put("scale", Float.$valueOf(this.scale)); +}if (this.id != null || !isState) info.put("modelIndex", Integer.$valueOf(this.modelIndex)); +if (!isState) { +this.info = info; +if (this.id == null) { +info.put("center", JU.P3.newP(this.centralAtom)); +info.put("modelNumber", Integer.$valueOf(this.centralAtom.getModelNumber())); +info.put("atomNumber", Integer.$valueOf(this.centralAtom.getAtomNumber())); +info.put("atomName", this.centralAtom.getInfo()); +info.put("element", this.centralAtom.getElementSymbol()); +var energy = vwr.ms.getInfo(this.centralAtom.mi, "Energy"); +if (energy != null) info.put("energy", energy); +}info.put("triangleCount", Integer.$valueOf(this.triangles.length)); +info.put("volume", this.getVolume()); +var names = new Array(this.nVertices); +var indices = Clazz.newIntArray (this.nVertices, 0); +for (var i = this.nVertices; --i >= 0; ) { +var pt = this.vertices[i]; +var isNode = Clazz.instanceOf(pt,"JM.Atom"); +names[i] = (isNode ? (pt).getAtomName() : Clazz.instanceOf(pt,"JU.Point3fi") ? JU.Elements.elementSymbolFromNumber((pt).sD) : ""); +indices[i] = (isNode ? (pt).getIndex() : -1); +} +info.put("atomNames", names); +info.put("vertexIndices", indices); +if (this.faces != null && !this.collapsed && this.faceTriangles != null) { +info.put("faceCount", Integer.$valueOf(this.faces.length)); +info.put("faceTriangles", this.faceTriangles); +if (isFaceCalc) { +var faceTypes = Clazz.newIntArray (this.faces.length, 0); +var faceAreas = Clazz.newFloatArray (this.faces.length, 0); +var facePoints = new JU.Lst(); +var vAB = new JU.V3(); +var vAC = new JU.V3(); +var vTemp = new JU.V3(); +for (var i = this.faces.length; --i >= 0; ) { +var face = this.faces[i]; +faceTypes[i] = face.length; +var f = 0; +var ft = this.faceTriangles[i]; +for (var j = ft.length; --j >= 0; ) { +var t = this.triangles[ft[j]]; +f += this.triangleArea(t[0], t[1], t[2], vAB, vAC, vTemp); +} +faceAreas[i] = f; +var fpts = new Array(face.length); +for (var j = face.length; --j >= 0; ) fpts[j] = this.vertices[face[j]]; + +facePoints.addLast(fpts); +} +info.put("face_types", faceTypes); +info.put("face_areas", faceAreas); +info.put("face_points", facePoints); +}}if (this.smarts != null) info.put("smarts", this.smarts); +if (this.smiles != null) info.put("smiles", this.smiles); +if (this.polySmiles != null) info.put("polySmiles", this.polySmiles); +if (this.pointGroup != null) info.put("pointGroup", this.pointGroup.getPointGroupName()); +if (this.pointGroupFamily != null) info.put("pointGroupFamily", this.pointGroupFamily.getPointGroupName()); +}if (this.pointScale > 0) info.put("pointScale", Float.$valueOf(this.pointScale)); +if (this.faces != null) info.put("faces", this.faces); +if (isState || JU.Logger.debugging) { +info.put("bsFlat", this.bsFlat); +if (this.collapsed) info.put("collapsed", Boolean.$valueOf(this.collapsed)); +if (this.distanceRef != 0) info.put("r", Float.$valueOf(this.distanceRef)); +var n = new Array(this.normals.length); +for (var i = n.length; --i >= 0; ) n[i] = JU.P3.newP(this.normals[i]); + +if (!isState) info.put("normals", n); +info.put("triangles", JU.AU.arrayCopyII(this.triangles, this.triangles.length)); +}return info; +}, "JV.Viewer,~S"); +Clazz.defineMethod(c$, "setPointScale", +function(scale){ +this.pointScale = scale; +this.elemNos = null; +}, "~N"); +Clazz.defineMethod(c$, "getElemNos", +function(forInfo){ +if (forInfo) { +var a = Clazz.newIntArray (this.nVertices, 0); +for (var i = 0; i < this.nVertices; i++) { +var pt = this.vertices[i]; +a[i] = (Clazz.instanceOf(pt,"JM.Atom") ? (pt).getElementNumber() : Clazz.instanceOf(pt,"JU.Point3fi") ? (pt).sD : -2); +} +return a; +}if (this.elemNos == null) this.elemNos = Clazz.newIntArray (this.nVertices, 0); +for (var i = 0; i < this.nVertices; i++) { +var pt = this.vertices[i]; +this.elemNos[i] = (Clazz.instanceOf(pt,"JM.Atom") ? (pt).getAtomicAndIsotopeNumber() : Clazz.instanceOf(pt,"JU.Point3fi") ? (pt).sD : -2); +} +return this.elemNos; +}, "~B"); +Clazz.defineMethod(c$, "getSymmetry", +function(vwr, withPointGroup){ +if (this.id == null) { +if (this.smarts == null) { +this.info = null; +var sm = vwr.getSmilesMatcher(); +try { +var details = (this.distanceRef <= 0 ? null : "r=" + this.distanceRef); +this.polySmiles = sm.polyhedronToSmiles(this.centralAtom, this.faces, this.nVertices, this.vertices, 1 | 65536 | (JU.Logger.debugging ? 131072 : 0), details); +this.smarts = sm.polyhedronToSmiles(this.centralAtom, this.faces, this.nVertices, null, 16384, null); +this.smiles = sm.polyhedronToSmiles(this.centralAtom, this.faces, this.nVertices, this.vertices, 1, null); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +}}if (!withPointGroup) return null; +if (this.pointGroup == null) { +var pts = new Array(this.nVertices); +for (var i = pts.length; --i >= 0; ) pts[i] = this.vertices[i]; + +this.pointGroup = vwr.getSymTemp().setPointGroup(vwr, null, null, pts, null, false, vwr.getFloat(570425382), vwr.getFloat(570425384), pts.length, true); +for (var i = pts.length; --i >= 0; ) pts[i] = JU.P3.newP(this.vertices[i]); + +this.pointGroupFamily = vwr.getSymTemp().setPointGroup(vwr, null, null, pts, null, false, vwr.getFloat(570425382), vwr.getFloat(570425384), pts.length, true); +}return (this.center == null ? this.centralAtom : this.center) + " \t" + this.pointGroup.getPointGroupName() + "\t" + this.pointGroupFamily.getPointGroupName(); +}, "JV.Viewer,~B"); +Clazz.defineMethod(c$, "getVolume", +function(){ +if (this.volume != null) return this.volume; +var vAB = new JU.V3(); +var vAC = new JU.V3(); +var vTemp = new JU.V3(); +var v = 0; +if (this.bsFlat.cardinality() < this.triangles.length) for (var i = this.triangles.length; --i >= 0; ) { +var t = this.triangles[i]; +v += this.triangleVolume(t[0], t[1], t[2], vAB, vAC, vTemp); +} +return Float.$valueOf(v / 6); +}); +Clazz.defineMethod(c$, "triangleArea", +function(i, j, k, vAB, vAC, vTemp){ +vAB.sub2(this.vertices[j], this.vertices[i]); +vAC.sub2(this.vertices[k], this.vertices[i]); +vTemp.cross(vAB, vAC); +return vTemp.length(); +}, "~N,~N,~N,JU.V3,JU.V3,JU.V3"); +Clazz.defineMethod(c$, "triangleVolume", +function(i, j, k, vAB, vAC, vTemp){ +vAB.setT(this.vertices[i]); +vAC.setT(this.vertices[j]); +vTemp.cross(vAB, vAC); +vAC.setT(this.vertices[k]); +return vAC.dot(vTemp); +}, "~N,~N,~N,JU.V3,JU.V3,JU.V3"); +Clazz.defineMethod(c$, "getState", +function(vwr){ +var ident = (this.id == null ? "({" + this.centralAtom.i + "})" : "ID " + JU.Escape.e(this.id)); +return " polyhedron @{" + JU.Escape.e(this.getInfo(vwr, null)) + "} " + (this.isFullyLit ? " fullyLit" : "") + ";" + (this.visible ? "" : "polyhedra " + ident + " off;") + "\n"; +}, "JV.Viewer"); +Clazz.defineMethod(c$, "move", +function(mat, bsMoved){ +this.info = null; +for (var i = 0; i < this.nVertices; i++) { +var p = this.vertices[i]; +if (Clazz.instanceOf(p,"JM.Atom")) { +if (bsMoved.get((p).i)) continue; +p = this.vertices[i] = JU.P3.newP(p); +}mat.rotTrans(p); +} +for (var i = this.normals.length; --i >= 0; ) mat.rotate(this.normals[i]); + +this.normixes = null; +}, "JU.M4,JU.BS"); +Clazz.defineMethod(c$, "getNormixes", +function(){ +if (this.normixes == null) { +this.normixes = Clazz.newShortArray (this.normals.length, 0); +var bsTemp = new JU.BS(); +for (var i = this.normals.length; --i >= 0; ) this.normixes[i] = (this.bsFlat.get(i) ? JU.Normix.get2SidedNormix(this.normals[i], bsTemp) : JU.Normix.getNormixV(this.normals[i], bsTemp)); + +}return this.normixes; +}); +Clazz.defineMethod(c$, "setOffset", +function(value){ +this.planes = null; +if (this.center == null) return; +var v = JU.P3.newP(value); +if (this.offset != null) value.sub(this.offset); +this.offset = v; +for (var i = this.vertices.length; --i >= 0; ) this.vertices[i].add(value); + +}, "JU.P3"); +Clazz.defineMethod(c$, "setZeroOffset", +function(value){ +if (this.id == null || this.center == null || value == 0) return; +var d = this.center.length(); +if (d < 0.0001) return; +var v = JU.P3.newP(this.center); +v.scale(value / d); +this.setOffset(v); +}, "~N"); +Clazz.defineMethod(c$, "list", +function(sb){ +if (this.id == null) { +sb.append(" atomIndex:" + this.centralAtom.i); +sb.append(" atomName:" + this.centralAtom.getAtomName()); +sb.append(" element:" + this.centralAtom.getElementSymbol()); +} else { +sb.append(" id:" + this.id); +sb.append("; center:" + JU.PT.sprintf("{%6.3p %6.3p %6.3p}", "p", Clazz.newArray(-1, [this.center]))).append("; visible:" + this.visible); +}sb.append("; model:" + this.modelIndex).append("; vertices:" + this.nVertices).append("; faces:" + this.faces.length).append("; volume:" + JU.PT.formatD(this.getVolume().doubleValue(), 1, 3, false, false)); +if (this.scale != 1) sb.append("; scale:" + this.scale); +sb.append("\n"); +}, "JU.SB"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Vectors.js b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Vectors.js new file mode 100755 index 000000000000..93c93e0ba074 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapespecial/Vectors.js @@ -0,0 +1,24 @@ +Clazz.declarePackage("J.shapespecial"); +Clazz.load(["J.shape.AtomShape"], "J.shapespecial.Vectors", ["J.atomdata.RadiusData"], function(){ +var c$ = Clazz.declareType(J.shapespecial, "Vectors", J.shape.AtomShape); +Clazz.defineMethod(c$, "initModelSet", +function(){ +if (!!(this.isActive = this.ms.modelSetHasVibrationVectors())) Clazz.superCall(this, J.shapespecial.Vectors, "initModelSet", []); +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bsSelected){ +if (!this.isActive) return; +this.setPropAS(propertyName, value, bsSelected); +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "getProperty", +function(propertyName, param){ +if (propertyName === "mad") return Integer.$valueOf(this.mads == null || param < 0 || this.mads.length <= param ? 0 : this.mads[param]); +return null; +}, "~S,~N"); +Clazz.defineMethod(c$, "setSizeRD2", +function(i, rd, isVisible){ +Clazz.superCall(this, J.shapespecial.Vectors, "setSizeRD2", [i, rd, isVisible]); +if (rd != null && rd.factorType === J.atomdata.RadiusData.EnumType.SCREEN) this.mads[i] = -this.mads[i]; +}, "~N,J.atomdata.RadiusData,~B"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Contact.js b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Contact.js new file mode 100755 index 000000000000..6425bc342da4 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Contact.js @@ -0,0 +1,546 @@ +Clazz.declarePackage("J.shapesurface"); +Clazz.load(["J.shapesurface.Isosurface", "JU.P3", "$.V3", "J.atomdata.RadiusData", "J.c.VDW"], "J.shapesurface.Contact", ["java.util.Hashtable", "JU.BS", "$.CU", "$.Lst", "$.Measure", "J.atomdata.AtomData", "J.c.HB", "J.jvxl.data.JvxlCoder", "$.MeshData", "$.VolumeData", "JS.T", "JU.BSUtil", "$.BoxInfo", "$.ContactPair", "$.Escape", "$.Logger", "$.TempArray"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.displayType = 0; +this.atoms = null; +this.ac = 0; +this.minData = 0; +this.maxData = 0; +this.vZ = null; +this.vY = null; +this.vX = null; +this.pt1 = null; +this.pt2 = null; +Clazz.instantialize(this, arguments);}, J.shapesurface, "Contact", J.shapesurface.Isosurface); +Clazz.prepareFields (c$, function(){ +this.vZ = new JU.V3(); +this.vY = new JU.V3(); +this.vX = new JU.V3(); +this.pt1 = new JU.P3(); +this.pt2 = new JU.P3(); +}); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shapesurface.Contact, "initShape", []); +this.myType = "contact"; +}); +Clazz.overrideMethod(c$, "getProperty", +function(property, index){ +return this.getPropC(property, index); +}, "~S,~N"); +Clazz.defineMethod(c$, "getPropC", +function(property, index){ +var thisMesh = this.thisMesh; +if (index >= 0 && (index >= this.meshCount || (thisMesh = this.isomeshes[index]) == null)) return null; +if (property === "jvxlFileInfo") { +thisMesh.setJvxlColorMap(false); +if (this.displayType == 134217750) { +J.jvxl.data.JvxlCoder.jvxlCreateColorData(this.jvxlData, thisMesh.vvs); +var minmax = thisMesh.getDataMinMax(); +this.jvxlData.mappedDataMin = minmax[0]; +this.jvxlData.mappedDataMax = minmax[1]; +}return J.jvxl.data.JvxlCoder.jvxlGetInfo(this.jvxlData); +}return this.getPropI(property, index); +}, "~S,~N"); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("set" === propertyName) { +this.setContacts(value, true); +return; +}if ("init" === propertyName) { +this.translucentLevel = 0; +}this.setPropI(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "setContacts", +function(value, doEditCpList){ +var contactType = (value[0]).intValue(); +var displayType = (value[1]).intValue(); +var colorDensity = (value[2]).booleanValue(); +var colorByType = (value[3]).booleanValue(); +var bsA = value[4]; +var bsB = value[5]; +var rd = value[6]; +var saProbeRadius = (value[7]).floatValue(); +var parameters = value[8]; +var modelIndex = (value[9]).intValue(); +var command = value[10]; +if (Float.isNaN(saProbeRadius)) saProbeRadius = 0; +if (rd == null) rd = new J.atomdata.RadiusData(null, saProbeRadius, J.atomdata.RadiusData.EnumType.OFFSET, J.c.VDW.AUTO); +if (colorDensity) { +switch (displayType) { +case 1073741961: +case 1275068932: +case 134217750: +displayType = 1275068932; +break; +case 4106: +case 1073742036: +case 2097180: +case 1073742135: +break; +case 1073741875: +colorDensity = false; +break; +} +}var bs; +this.ac = this.ms.ac; +this.atoms = this.ms.at; +var intramolecularMode = Clazz.floatToInt(parameters == null || parameters.length < 2 ? 0 : parameters[1]); +var ptSize = (colorDensity && parameters != null && parameters[0] < 0 ? Math.abs(parameters[0]) : 0.15); +if (JU.Logger.debugging) { +JU.Logger.debug("Contact intramolecularMode " + intramolecularMode); +JU.Logger.debug("Contacts for " + bsA.cardinality() + ": " + JU.Escape.eBS(bsA)); +JU.Logger.debug("Contacts to " + bsB.cardinality() + ": " + JU.Escape.eBS(bsB)); +}this.setPropI("newObject", null, null); +this.thisMesh.setMerged(true); +this.thisMesh.nSets = 0; +this.thisMesh.info = null; +var func = null; +var fullyLit = true; +switch (displayType) { +case 1073741961: +func = "(a>b?a:b)"; +break; +case 134217750: +case 1073741875: +func = "a-b"; +break; +case 4106: +func = "a+b"; +break; +} +switch (displayType) { +case 1073742036: +colorByType = fullyLit = false; +bs = JU.BSUtil.copy(bsA); +bs.or(bsB); +if (parameters[0] < 0) parameters[0] = 0; +this.sg.params.colorDensity = colorDensity; +this.sg.params.bsSelected = bs; +this.sg.params.bsSolvent = bsB; +this.sg.setProp("parameters", parameters, null); +this.setPropI("nci", Boolean.TRUE, null); +break; +case 1073742135: +case 2097180: +colorByType = fullyLit = false; +this.thisMesh.nSets = 1; +this.newSurface(2097180, null, bsA, bsB, rd, null, null, colorDensity, null, saProbeRadius); +break; +case 1073741875: +colorByType = fullyLit = false; +this.thisMesh.nSets = 1; +this.newSurface(554176565, null, bsA, bsB, rd, null, null, false, null, 0); +this.sg.initState(); +this.newSurface(134217750, null, bsA, bsB, rd, parameters, func, colorDensity, this.sg.volumeDataTemp, 0); +this.mergeMesh(null); +break; +case 1073741961: +case 1275068932: +colorByType = false; +this.newSurface(1275068932, null, bsA, bsB, rd, null, null, colorDensity, null, 0); +if (displayType == 1073741961) { +this.sg.initState(); +this.newSurface(1275068932, null, bsB, bsA, rd, parameters, func, colorDensity, null, 0); +this.mergeMesh(null); +} else { +var meshData = new J.jvxl.data.MeshData(); +this.fillMeshData(meshData, 1, null); +meshData.getSurfaceSet(); +this.fillMeshData(meshData, 3, null); +}break; +case 4106: +case 134217750: +var volume = 0; +var pairs = this.getPairs(bsA, bsB, rd, intramolecularMode, doEditCpList); +this.thisMesh.info = pairs; +volume += this.combineSurfaces(pairs, contactType, displayType, parameters, func, colorDensity, colorByType); +this.thisMesh.calculatedVolume = Float.$valueOf(volume); +this.mergeMesh(null); +break; +} +this.thisMesh.setMerged(false); +if (modelIndex != -2147483648) this.thisMesh.modelIndex = modelIndex; +this.thisMesh.jvxlData.vertexDataOnly = true; +this.thisMesh.reinitializeLightingAndColor(this.vwr); +if (contactType != 1073742036) { +this.thisMesh.bsVdw = new JU.BS(); +this.thisMesh.bsVdw.or(bsA); +this.thisMesh.bsVdw.or(bsB); +}this.setPropI("finalize", command, null); +if (colorDensity) { +this.setPropI("pointSize", Float.$valueOf(ptSize), null); +} else { +this.setPropI("token", Integer.$valueOf(fullyLit ? 1073741964 : 1073741958), null); +}if (this.thisMesh.slabOptions != null) { +this.thisMesh.slabOptions = null; +this.thisMesh.polygonCount0 = -1; +}this.discardTempData(true); +var defaultColor = null; +switch (contactType) { +case 1613238294: +defaultColor = "lightgreen"; +break; +case 1073741881: +defaultColor = "yellow"; +break; +case 2097180: +defaultColor = "skyblue"; +break; +} +var ce = null; +if (colorByType) { +ce = this.vwr.cm.getColorEncoder("rwb"); +ce.setRange(-0.5, 0.5, false); +} else if (defaultColor != null) { +this.setPropI("color", Integer.$valueOf(JU.CU.getArgbFromString(defaultColor)), null); +} else if (displayType == 1073742036) { +ce = this.vwr.cm.getColorEncoder("bgr"); +ce.setRange(-0.03, 0.03, false); +} else { +ce = this.vwr.cm.getColorEncoder("rgb"); +if (colorDensity) ce.setRange(-0.3, 0.3, false); + else ce.setRange(-0.5, 1, false); +}if (ce != null) this.thisMesh.remapColors(this.vwr, ce, this.translucentLevel); +}, "~A,~B"); +Clazz.defineMethod(c$, "combineSurfaces", +function(pairs, contactType, displayType, parameters, func, isColorDensity, colorByType){ +var volumeData = new J.jvxl.data.VolumeData(); +var logLevel = JU.Logger.getLogLevel(); +JU.Logger.setLogLevel(0); +var resolution = this.sg.params.resolution; +var nContacts = pairs.size(); +var volume = 0; +if (displayType == 1073741961 && resolution == 3.4028235E38) resolution = (nContacts > 1000 ? 3 : 10); +var box = new JU.BoxInfo(); +for (var i = nContacts; --i >= 0; ) { +var cp = pairs.get(i); +var oldScore = cp.score; +var isVdwClash = (displayType == 134217750 && (contactType == 1648363544 || contactType == 0) && cp.setForVdwClash(true)); +if (isVdwClash) cp.score = 0; +if (contactType != 0 && cp.contactType != contactType) continue; +var nV = this.thisMesh.vc; +this.thisMesh.nSets++; +if (contactType != 0 || cp.contactType != 1648363544) volume += cp.volume; +this.setVolumeData(displayType, volumeData, cp, resolution, nContacts); +switch (displayType) { +case 1073741961: +this.newSurface(displayType, cp, null, null, null, null, func, isColorDensity, volumeData, 0); +cp.switchAtoms(); +this.newSurface(displayType, cp, null, null, null, null, null, isColorDensity, volumeData, 0); +break; +case 1275068932: +case 134217750: +case 4106: +this.newSurface(displayType, cp, null, null, null, parameters, func, isColorDensity, volumeData, 0); +if (isVdwClash && cp.setForVdwClash(false)) { +if (colorByType) nV = this.setColorByScore(cp.score, nV); +cp.score = oldScore; +volume += cp.volume; +this.newSurface(displayType, cp, null, null, null, parameters, func, isColorDensity, volumeData, 0); +}break; +} +if (i > 0 && (i % 1000) == 0 && logLevel == 4) { +JU.Logger.setLogLevel(4); +JU.Logger.info("contact..." + i); +JU.Logger.setLogLevel(0); +}if (colorByType) this.setColorByScore((cp.contactType == 1613238294 ? 4 : cp.score), nV); +for (var j = this.thisMesh.vc; --j >= 0; ) box.addBoundBoxPoint(this.thisMesh.vs[j]); + +} +JU.Logger.setLogLevel(logLevel); +if (this.jvxlData.boundingBox == null) { +System.out.println("???"); +} else { +this.jvxlData.boundingBox[0] = box.bbCorner0; +this.jvxlData.boundingBox[1] = box.bbCorner1; +}this.displayType = displayType; +return volume; +}, "JU.Lst,~N,~N,~A,~O,~B,~B"); +Clazz.defineMethod(c$, "setColorByScore", +function(score, nV){ +for (var iv = this.thisMesh.vc; --iv >= nV; ) this.thisMesh.vvs[iv] = score; + +return this.thisMesh.vc; +}, "~N,~N"); +Clazz.defineMethod(c$, "getPairs", +function(bsA, bsB, rd, intramolecularMode, doEditCpList){ +var list = new JU.Lst(); +var ad = new J.atomdata.AtomData(); +ad.radiusData = rd; +var bs = JU.BSUtil.copy(bsA); +bs.or(bsB); +if (bs.isEmpty()) return list; +ad.bsSelected = bs; +var iModel = this.atoms[bs.nextSetBit(0)].mi; +var isMultiModel = (iModel != this.atoms[bs.length() - 1].mi); +ad.modelIndex = (isMultiModel ? -1 : iModel); +var isSelf = bsA.equals(bsB); +this.vwr.fillAtomData(ad, 2 | (isMultiModel ? 16 : 0) | 4); +var maxRadius = 0; +for (var ib = bsB.nextSetBit(0); ib >= 0; ib = bsB.nextSetBit(ib + 1)) if (ad.atomRadius[ib] > maxRadius) maxRadius = ad.atomRadius[ib]; + +var iter = this.vwr.getSelectedAtomIterator(bsB, isSelf, false, isMultiModel); +for (var ia = bsA.nextSetBit(0); ia >= 0; ia = bsA.nextSetBit(ia + 1)) { +var atomA = this.atoms[ia]; +var vdwA = atomA.getVanderwaalsRadiusFloat(this.vwr, J.c.VDW.AUTO); +if (isMultiModel) this.vwr.setIteratorForPoint(iter, -1, ad.atoms[ia], ad.atomRadius[ia] + maxRadius); + else this.vwr.setIteratorForAtom(iter, ia, ad.atomRadius[ia] + maxRadius); +while (iter.hasNext()) { +var ib = iter.next(); +if (isMultiModel && !bsB.get(ib)) continue; +var atomB = this.atoms[ib]; +var isSameMolecule = (ad.atomMolecule[ia] == ad.atomMolecule[ib]); +if (ia == ib || isSameMolecule && this.isWithinFourBonds(atomA, atomB)) continue; +switch (intramolecularMode) { +case 0: +break; +case 1: +case 2: +if (isSameMolecule != (intramolecularMode == 1)) continue; +} +var vdwB = atomB.getVanderwaalsRadiusFloat(this.vwr, J.c.VDW.AUTO); +var ra = ad.atomRadius[ia]; +var rb = ad.atomRadius[ib]; +var d = atomA.distance(atomB); +if (d > ra + rb) continue; +var cp = new JU.ContactPair(this.atoms, ia, ib, ra, rb, vdwA, vdwB); +if (cp.score < 0) J.shapesurface.Contact.getVdwClashRadius(cp, ra - vdwA, vdwA, vdwB, d); +var typeA = J.c.HB.getType(atomA); +var typeB = (typeA === J.c.HB.NOT ? J.c.HB.NOT : J.c.HB.getType(atomB)); +var isHBond = J.c.HB.isPossibleHBond(typeA, typeB); +var hbondCutoff = (atomA.getElementNumber() == 1 || atomB.getElementNumber() == 1 ? -1.2 : -1.0); +if (isHBond && cp.score < hbondCutoff) isHBond = false; +if (isHBond && cp.score < 0) cp.contactType = 1613238294; +list.addLast(cp); +} +} +iter.release(); +iter = null; +if (!doEditCpList) return list; +var n = list.size() - 1; +var bsBad = new JU.BS(); +for (var i = 0; i < n; i++) { +var cp1 = list.get(i); +for (var j = i + 1; j <= n; j++) { +var cp2 = list.get(j); +for (var m = 0; m < 2; m++) { +for (var p = 0; p < 2; p++) { +switch (J.shapesurface.Contact.checkCp(cp1, cp2, m, p)) { +case 1: +bsBad.set(i); +break; +case 2: +bsBad.set(j); +break; +default: +} +} +} +} +} +for (var i = bsBad.length(); --i >= 0; ) if (bsBad.get(i)) list.removeItemAt(i); + +if (JU.Logger.debugging) for (var i = 0; i < list.size(); i++) JU.Logger.debug(list.get(i).toString()); + +JU.Logger.info("Contact pairs: " + list.size()); +return list; +}, "JU.BS,JU.BS,J.atomdata.RadiusData,~N,~B"); +Clazz.defineMethod(c$, "isWithinFourBonds", +function(atomA, atomB){ +if (atomA.mi != atomB.mi) return false; +if (atomA.isCovalentlyBonded(atomB)) return true; +var bondsOther = atomB.bonds; +var bonds = atomA.bonds; +if (bondsOther != null && bonds != null) for (var i = 0; i < bondsOther.length; i++) { +var atom2 = bondsOther[i].getOtherAtom(atomB); +if (atomA.isCovalentlyBonded(atom2)) return true; +for (var j = 0; j < bonds.length; j++) if (bonds[j].getOtherAtom(atomA).isCovalentlyBonded(atom2)) return true; + +} +return false; +}, "JM.Atom,JM.Atom"); +c$.checkCp = Clazz.defineMethod(c$, "checkCp", +function(cp1, cp2, i1, i2){ +if (cp1.myAtoms[i1] !== cp2.myAtoms[i2]) return 0; +var clash1 = (cp1.pt.distance(cp2.myAtoms[1 - i2]) < cp2.radii[1 - i2]); +var clash2 = (cp2.pt.distance(cp1.myAtoms[1 - i1]) < cp1.radii[1 - i1]); +return (!clash1 && !clash2 ? 0 : cp1.score > cp2.score ? 1 : 2); +}, "JU.ContactPair,JU.ContactPair,~N,~N"); +Clazz.defineMethod(c$, "newSurface", +function(displayType, cp, bs1, bs2, rd, parameters, func, isColorDensity, volumeData, sasurfaceRadius){ +var params = this.sg.params; +params.isSilent = true; +if (cp == null) { +bs2.andNot(bs1); +if (bs1.isEmpty() || bs2.isEmpty()) return; +} else { +params.contactPair = cp; +}var iSlab0 = 0; +var iSlab1 = 0; +this.sg.initState(); +switch (displayType) { +case 1073742135: +case 2097180: +case 554176565: +case 1275068932: +case 1073741961: +var rdA; +var rdB; +if (displayType == 2097180) { +rdA = J.shapesurface.Contact.rdVDW; +rdB = new J.atomdata.RadiusData(null, (rd.factorType === J.atomdata.RadiusData.EnumType.OFFSET ? rd.value * 2 : (rd.value - 1) * 2 + 1), rd.factorType, rd.vdwType); +} else { +rdA = rdB = rd; +}params.colorDensity = isColorDensity; +if (isColorDensity) { +this.setPropI("cutoffRange", Clazz.newFloatArray(-1, [-100.0, 0]), null); +}if (cp == null) { +params.atomRadiusData = rdA; +params.bsIgnore = JU.BSUtil.copyInvert(bs1, this.ac); +params.bsSelected = bs1; +params.bsSolvent = null; +}params.volumeData = volumeData; +this.setPropI("sasurface", Float.$valueOf(sasurfaceRadius), null); +this.setPropI("map", Boolean.TRUE, null); +if (cp == null) { +params.atomRadiusData = rdB; +params.bsIgnore = JU.BSUtil.copyInvert(bs2, this.ac); +params.bsSelected = bs2; +}params.volumeData = volumeData; +this.setPropI("sasurface", Float.$valueOf(sasurfaceRadius), null); +switch (displayType) { +case 1073741961: +case 1275068932: +iSlab0 = -100; +break; +case 1073742135: +case 2097180: +if (isColorDensity) iSlab0 = -100; +break; +case 554176565: +iSlab1 = -100; +} +break; +case 134217750: +case 4106: +if (displayType == 4106) this.sg.setProp("parameters", parameters, null); +if (cp == null) { +params.atomRadiusData = rd; +params.bsIgnore = JU.BSUtil.copyInvert(bs2, this.ac); +params.bsIgnore.andNot(bs1); +}params.func = func; +params.intersection = Clazz.newArray(-1, [bs1, bs2]); +params.volumeData = volumeData; +params.colorDensity = isColorDensity; +if (isColorDensity) this.setPropI("cutoffRange", Clazz.newFloatArray(-1, [-5.0, 0]), null); +this.setPropI("sasurface", Float.$valueOf(0), null); +this.setPropI("map", Boolean.TRUE, null); +params.volumeData = volumeData; +this.setPropI("sasurface", Float.$valueOf(0), null); +if (displayType == 134217750) { +iSlab0 = -100; +}break; +} +if (iSlab0 != iSlab1) this.thisMesh.getMeshSlicer().slabPolygons(JU.TempArray.getSlabWithinRange(iSlab0, iSlab1), false); +if (displayType != 2097180) this.thisMesh.setMerged(true); +}, "~N,JU.ContactPair,JU.BS,JU.BS,J.atomdata.RadiusData,~A,~O,~B,J.jvxl.data.VolumeData,~N"); +Clazz.defineMethod(c$, "setVolumeData", +function(type, volumeData, cp, resolution, nPairs){ +this.pt1.setT(cp.myAtoms[0]); +this.pt2.setT(cp.myAtoms[1]); +this.vX.sub2(this.pt2, this.pt1); +var dAB = this.vX.length(); +var dYZ = (cp.radii[0] * cp.radii[0] + dAB * dAB - cp.radii[1] * cp.radii[1]) / (2 * dAB * cp.radii[0]); +dYZ = 2.1 * (cp.radii[0] * Math.sin(Math.acos(dYZ))); +JU.Measure.getNormalToLine(this.pt1, this.pt2, this.vZ); +this.vZ.scale(dYZ); +this.vY.cross(this.vZ, this.vX); +this.vY.normalize(); +this.vY.scale(dYZ); +if (type != 4106) { +this.vX.normalize(); +this.pt1.scaleAdd2((dAB - cp.radii[1]) * 0.95, this.vX, this.pt1); +this.pt2.scaleAdd2((cp.radii[0] - dAB) * 0.95, this.vX, this.pt2); +this.vX.sub2(this.pt2, this.pt1); +}if (resolution == 3.4028235E38) resolution = (nPairs > 100 ? 3 : 10); +var nX = Math.max(5, Clazz.doubleToInt(Math.floor(this.pt1.distance(this.pt2) * resolution + 1))); +if ((nX % 2) == 0) nX++; +var nYZ = Math.max(7, Clazz.doubleToInt(Math.floor(dYZ * resolution + 1))); +if ((nYZ % 2) == 0) nYZ++; +volumeData.setVoxelCounts(nX, nYZ, nYZ); +this.pt1.scaleAdd2(-0.5, this.vY, this.pt1); +this.pt1.scaleAdd2(-0.5, this.vZ, this.pt1); +volumeData.setVolumetricOrigin(this.pt1.x, this.pt1.y, this.pt1.z); +this.vX.scale(1 / (nX - 1)); +this.vY.scale(1 / (nYZ - 1)); +this.vZ.scale(1 / (nYZ - 1)); +volumeData.setVolumetricVector(0, this.vX.x, this.vX.y, this.vX.z); +volumeData.setVolumetricVector(1, this.vY.x, this.vY.y, this.vY.z); +volumeData.setVolumetricVector(2, this.vZ.x, this.vZ.y, this.vZ.z); +}, "~N,J.jvxl.data.VolumeData,JU.ContactPair,~N,~N"); +Clazz.defineMethod(c$, "mergeMesh", +function(md){ +this.thisMesh.merge(md); +if (this.minData == 3.4028235E38) { +} else if (this.jvxlData.mappedDataMin == 3.4028235E38) { +this.jvxlData.mappedDataMin = this.minData; +this.jvxlData.mappedDataMax = this.maxData; +} else { +this.jvxlData.mappedDataMin = Math.min(this.minData, this.jvxlData.mappedDataMin); +this.jvxlData.mappedDataMax = Math.max(this.maxData, this.jvxlData.mappedDataMax); +}this.minData = this.jvxlData.mappedDataMin; +this.maxData = this.jvxlData.mappedDataMax; +this.jvxlData.valueMappedToBlue = this.minData; +this.jvxlData.valueMappedToRed = this.maxData; +}, "J.jvxl.data.MeshData"); +Clazz.overrideMethod(c$, "addMeshInfo", +function(mesh, info){ +if (mesh.info == null) return; +var pairInfo = new JU.Lst(); +info.put("pairInfo", pairInfo); +var list = mesh.info; +for (var i = 0; i < list.size(); i++) { +var cpInfo = new java.util.Hashtable(); +pairInfo.addLast(cpInfo); +var cp = list.get(i); +cpInfo.put("type", JS.T.nameOf(cp.contactType)); +cpInfo.put("volume", Double.$valueOf(cp.volume)); +cpInfo.put("vdwVolume", Double.$valueOf(cp.vdwVolume)); +if (!Float.isNaN(cp.xVdwClash)) { +cpInfo.put("xVdwClash", Double.$valueOf(cp.xVdwClash)); +}cpInfo.put("score", Double.$valueOf(cp.score)); +cpInfo.put("atoms", cp.myAtoms); +cpInfo.put("radii", cp.radii); +cpInfo.put("vdws", cp.vdws); +} +}, "J.shapesurface.IsosurfaceMesh,java.util.Map"); +c$.getVdwClashRadius = Clazz.defineMethod(c$, "getVdwClashRadius", +function(cp, x0, vdwA, vdwB, d){ +var sum = vdwA + vdwB; +var dif2 = vdwA - vdwB; +dif2 *= dif2; +var v0_nopi = x0 * x0 * (sum + 1.3333333333333333 * x0 - dif2 / sum); +cp.vdwVolume = cp.volume - v0_nopi * 3.141592653589793; +var a = (sum - d); +var b = d + 2 * sum - 3 * dif2 / d; +var c = v0_nopi * 12; +var a2 = a * a; +var a3 = a * a2; +var b2 = b * b; +var b3 = b * b2; +var f = -a * 2 / 3 - b / 6; +var g = (4 * a2 - 4 * a * b + b2) / 36; +var v = a3 / 27 - a2 * b / 18 + a * b2 / 36 - b3 / 216 + c / 4; +var u = -c / 432 * (8 * a3 - 12 * a2 * b + 6 * a * b2 - b3 + 27 * c); +var theta = Math.atan2(Math.sqrt(u), v); +var vvu = Math.pow(v * v + u, 0.16666666666666666); +var costheta = Math.cos(theta / 3); +var x; +x = f + (g / vvu + vvu) * costheta; +if (x > 0) { +cp.xVdwClash = ((x / 2)); +}}, "JU.ContactPair,~N,~N,~N,~N"); +c$.rdVDW = new J.atomdata.RadiusData(null, 1, J.atomdata.RadiusData.EnumType.FACTOR, J.c.VDW.AUTO); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Isosurface.js b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Isosurface.js new file mode 100755 index 000000000000..555e0e59de40 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Isosurface.js @@ -0,0 +1,1316 @@ +Clazz.declarePackage("J.shapesurface"); +Clazz.load(["J.jvxl.api.MeshDataServer", "J.shape.MeshCollection", "JU.P3i", "$.P4"], "J.shapesurface.Isosurface", ["java.util.Hashtable", "JU.A4", "$.AU", "$.BS", "$.CU", "$.Lst", "$.M3", "$.M4", "$.P3", "$.PT", "$.Quat", "$.Rdr", "$.SB", "$.V3", "J.jvxl.data.JvxlCoder", "$.JvxlData", "$.MeshData", "J.jvxl.readers.SurfaceGenerator", "J.shape.Mesh", "J.shapesurface.IsosurfaceMesh", "JU.C", "$.Escape", "$.Logger", "$.TempArray", "JV.JC", "$.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isomeshes = null; +this.thisMesh = null; +this.actualID = null; +this.iHaveBitSets = false; +this.explicitContours = false; +this.atomIndex = 0; +this.moNumber = 0; +this.moLinearCombination = null; +this.colorType = 0; +this.defaultColix = 0; +this.meshColix = 0; +this.center = null; +this.scale3d = 0; +this.isPhaseColored = false; +this.isColorExplicit = false; +this.scriptAppendix = ""; +this.sg = null; +this.withinDistance2 = 0; +this.isWithinNot = false; +this.withinPoints = null; +this.cutoffRange = null; +this.allowMesh = true; +this.script = null; +this.iHaveModelIndex = false; +this.nLCAO = 0; +this.lcaoDir = null; +this.associateNormals = false; +this.oldFileName = null; +this.newFileName = null; +this.ptXY = null; +this.keyXy = null; +Clazz.instantialize(this, arguments);}, J.shapesurface, "Isosurface", J.shape.MeshCollection, J.jvxl.api.MeshDataServer); +Clazz.prepareFields (c$, function(){ +this.isomeshes = new Array(4); +this.lcaoDir = new JU.P4(); +this.ptXY = new JU.P3i(); +}); +Clazz.overrideMethod(c$, "allocMesh", +function(thisID, m){ +var index = this.meshCount++; +this.meshes = this.isomeshes = JU.AU.ensureLength(this.isomeshes, this.meshCount * 2); +this.currentMesh = this.thisMesh = this.isomeshes[index] = (m == null ? new J.shapesurface.IsosurfaceMesh(this.vwr, thisID, this.colix, index) : m); +this.currentMesh.index = index; +if (this.sg != null) this.sg.setJvxlData(this.jvxlData = this.thisMesh.jvxlData); +}, "~S,J.shape.Mesh"); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shapesurface.Isosurface, "initShape", []); +this.myType = "isosurface"; +this.newSg(); +}); +Clazz.defineMethod(c$, "newSg", +function(){ +this.sg = new J.jvxl.readers.SurfaceGenerator(this.vwr, this, null, this.jvxlData = new J.jvxl.data.JvxlData()); +this.sg.params.showTiming = this.vwr.getBoolean(603979934); +this.sg.version = "Jmol " + JV.Viewer.getJmolVersion(); +}); +Clazz.defineMethod(c$, "clearSg", +function(){ +this.sg = null; +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +this.setPropI(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "setPropI", +function(propertyName, value, bs){ +if ("cache" === propertyName) { +if (this.currentMesh == null) return; +var id = this.currentMesh.thisID; +var imodel = this.currentMesh.modelIndex; +this.vwr.cachePut("cache://isosurface_" + id, (this.getPropI("jvxlDataXml", -1)).getBytes()); +this.deleteMeshI(this.currentMesh.index); +this.setPropI("init", null, null); +this.setPropI("thisID", id, null); +this.setPropI("modelIndex", Integer.$valueOf(imodel), null); +this.setPropI("fileName", "cache://isosurface_" + id, null); +this.setPropI("readFile", null, null); +this.setPropI("finalize", "isosurface ID " + JU.PT.esc(id) + (imodel >= 0 ? " modelIndex " + imodel : "") + " /*file*/" + JU.PT.esc("cache://isosurface_" + id), null); +this.setPropI("clear", null, null); +return; +}if ("delete" === propertyName) { +this.setPropertySuper(propertyName, value, bs); +if (!this.explicitID) this.nLCAO = this.nUnnamed = 0; +this.currentMesh = this.thisMesh = null; +return; +}if ("remapInherited" === propertyName) { +for (var i = this.meshCount; --i >= 0; ) { +if (this.isomeshes[i] != null && "#inherit;".equals(this.isomeshes[i].colorCommand)) this.isomeshes[i].remapColors(this.vwr, null, NaN); +} +return; +}if ("remapColor" === propertyName) { +if (this.thisMesh != null) this.thisMesh.remapColors(this.vwr, value, this.translucentLevel); +return; +}if ("thisID" === propertyName) { +if (this.actualID != null) value = this.actualID; +this.setPropertySuper("thisID", value, null); +return; +}if ("params" === propertyName) { +if (this.thisMesh != null) { +this.ensureMeshSource(); +this.thisMesh.checkAllocColixes(); +var data = value; +var colixes = data[0]; +var atomMap = null; +if (colixes != null) { +for (var i = 0; i < colixes.length; i++) { +var colix = colixes[i]; +var f = 0; +if (f > 0.01) colix = JU.C.getColixTranslucent3(colix, true, f); +colixes[i] = colix; +} +atomMap = Clazz.newIntArray (bs.length(), 0); +for (var pt = 0, i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i + 1), pt++) atomMap[i] = pt; + +}this.thisMesh.setVertexColixesForAtoms(this.vwr, colixes, atomMap, bs); +this.thisMesh.setVertexColorMap(); +}return; +}if ("atomcolor" === propertyName) { +if (this.thisMesh != null) { +this.ensureMeshSource(); +this.thisMesh.colorVertices(JU.C.getColixO(value), bs, true); +}return; +}if ("pointSize" === propertyName) { +if (this.thisMesh != null) { +this.thisMesh.volumeRenderPointSize = (value).floatValue(); +}return; +}if ("vertexcolor" === propertyName) { +if (this.thisMesh != null) { +this.thisMesh.colorVertices(JU.C.getColixO(value), bs, false); +}return; +}if ("colorPhase" === propertyName) { +var colors = value; +var colix0 = JU.C.getColix((colors[0]).intValue()); +var colix1 = JU.C.getColix((colors[1]).intValue()); +var id = (this.thisMesh != null ? this.thisMesh.thisID : JU.PT.isWild(this.previousMeshID) ? this.previousMeshID : null); +var list = this.getMeshList(id, false); +for (var i = list.size(); --i >= 0; ) this.setColorPhase(list.get(i), colix0, colix1); + +return; +}if ("color" === propertyName) { +var color = JU.C.getHexCode(JU.C.getColixO(value)); +if (this.thisMesh != null) { +this.setIsoMeshColor(this.thisMesh, color); +} else { +var list = this.getMeshList(JU.PT.isWild(this.previousMeshID) ? this.previousMeshID : null, false); +for (var i = list.size(); --i >= 0; ) this.setIsoMeshColor(list.get(i), color); + +}this.setPropertySuper(propertyName, value, bs); +return; +}if ("nocontour" === propertyName) { +if (this.thisMesh != null) { +this.thisMesh.deleteContours(); +}return; +}if ("fixed" === propertyName) { +this.isFixed = (value).booleanValue(); +this.setMeshI(); +return; +}if ("newObject" === propertyName) { +if (this.thisMesh != null) this.thisMesh.clearType(this.thisMesh.meshType, false); +return; +}if ("moveIsosurface" === propertyName) { +if (this.thisMesh != null && !this.thisMesh.isModelConnected) { +this.thisMesh.updateCoordinates(value, null); +this.thisMesh.altVertices = null; +}return; +}if ("refreshTrajectories" === propertyName) { +var m = ((value)[0]).intValue(); +for (var i = this.meshCount; --i >= 0; ) if (this.meshes[i].modelIndex == m && (this.meshes[i].connectedAtoms != null || this.meshes[i].isModelConnected)) (this.meshes[i]).updateCoordinates((value)[2], (value)[1]); + +return; +}if ("modelIndex" === propertyName) { +if (!this.iHaveModelIndex) { +this.modelIndex = (value).intValue(); +this.isFixed = (this.modelIndex < 0); +this.sg.params.modelIndex = Math.abs(this.modelIndex); +}return; +}if ("lcaoCartoon" === propertyName || "lonePair" === propertyName || "radical" === propertyName) { +var info = value; +if (!this.explicitID) { +this.setPropertySuper("thisID", null, null); +}if (!this.sg.setProp("lcaoCartoonCenter", info[2], null)) this.drawLcaoCartoon(info[0], info[1], info[3], ("lonePair" === propertyName ? 2 : "radical" === propertyName ? 1 : 0), this.thisMesh == null ? false : this.thisMesh.reverseColor); +return; +}if ("select" === propertyName) { +if (this.iHaveBitSets) return; +}if ("ignore" === propertyName) { +if (this.iHaveBitSets) return; +}if ("reversecolor" === propertyName) { +if (this.thisMesh != null) this.thisMesh.reverseColor = (value === Boolean.TRUE); +return; +}if ("meshcolor" === propertyName) { +var rgb = (value).intValue(); +this.meshColix = JU.C.getColix(rgb); +if (this.thisMesh != null) this.thisMesh.meshColix = this.meshColix; +return; +}if ("offset" === propertyName) { +var offset = JU.P3.newP(value); +if (offset.equals(JV.JC.center)) offset = null; +if (this.thisMesh != null) { +this.thisMesh.rotateTranslate(null, offset, true); +this.thisMesh.altVertices = null; +}return; +}if ("rotate" === propertyName) { +var pt4 = value; +if (this.thisMesh != null) { +this.thisMesh.rotateTranslate(JU.Quat.newP4(pt4), null, true); +this.thisMesh.altVertices = null; +}return; +}if ("bsDisplay" === propertyName) { +this.bsDisplay = value; +return; +}if ("displayWithin" === propertyName) { +var o = value; +this.displayWithinDistance2 = (o[0]).floatValue(); +this.isDisplayWithinNot = (this.displayWithinDistance2 < 0); +this.displayWithinDistance2 *= this.displayWithinDistance2; +this.displayWithinPoints = o[3]; +if (this.displayWithinPoints.size() == 0) this.displayWithinPoints = this.ms.getAtomPointVector(o[2]); +return; +}if ("finalize" === propertyName) { +if (this.thisMesh != null) { +var cmd = value; +if (cmd != null && !cmd.startsWith("; isosurface map")) { +this.thisMesh.setDiscreteColixes(this.sg.params.contoursDiscrete, this.sg.params.contourColixes); +this.setJvxlInfo(); +}this.setScriptInfo(cmd); +}this.clearSg(); +return; +}if ("connections" === propertyName) { +if (this.currentMesh != null) { +this.connections = value; +if (this.connections[0] >= 0 && this.connections[0] < this.ms.ac) this.currentMesh.connectedAtoms = this.connections; + else this.connections = this.currentMesh.connectedAtoms = null; +}return; +}if ("fixLattice" === propertyName) { +if (this.thisMesh != null) this.thisMesh.fixLattice(); +return; +}if ("slab" === propertyName) { +if (Clazz.instanceOf(value, Integer)) { +if (this.thisMesh != null) this.thisMesh.jvxlData.slabValue = (value).intValue(); +return; +}if (this.thisMesh != null) { +var slabInfo = value; +var tok = (slabInfo[0]).intValue(); +switch (tok) { +case 1073742018: +var data = slabInfo[1]; +var m = this.getMesh(data[1]); +if (m == null) return; +data[1] = m; +break; +} +this.slabPolygons(slabInfo); +return; +}}if ("cap" === propertyName) { +if (this.thisMesh != null && this.thisMesh.pc != 0) { +this.thisMesh.getMeshSlicer().slabPolygons(value, true); +this.thisMesh.initialize(this.thisMesh.lighting, null, null); +return; +}}if ("map" === propertyName) { +if (this.sg != null) this.sg.params.isMapped = true; +this.setProperty("squareData", Boolean.FALSE, null); +if (this.thisMesh == null || this.thisMesh.vc == 0) return; +}if ("probes" === propertyName) { +if (this.sg != null) { +this.sg.params.probes = value; +this.sg.params.probeValues = Clazz.newFloatArray (this.sg.params.probes.length, 0); +}return; +}if ("deleteVdw" === propertyName) { +for (var i = this.meshCount; --i >= 0; ) if (this.isomeshes[i].bsVdw != null && (bs == null || bs.intersects(this.isomeshes[i].bsVdw))) this.deleteMeshI(i); + +this.currentMesh = this.thisMesh = null; +return; +}if ("mapColor" === propertyName || "readFile" === propertyName) { +if (value == null) { +if (this.sg.params.filesData == null) { +value = this.getFileReader(this.sg.params.fileName); +} else { +value = this.sg.params.filesData; +var a = this.sg.params.filesData[0]; +var b = new Array(a.length); +for (var i = b.length; --i >= 0 && value != null; ) if ((b[i] = this.getFileReader(a[i])) == null) value = null; + +if (value != null) this.sg.params.filesData[0] = b; +}if (value == null) return; +}} else if ("atomIndex" === propertyName) { +this.atomIndex = (value).intValue(); +if (this.thisMesh != null) this.thisMesh.atomIndex = this.atomIndex; +} else if ("center" === propertyName) { +this.center.setT(value); +} else if ("colorRGB" === propertyName) { +var rgb = (value).intValue(); +if (rgb == 1296041985) { +this.colorType = rgb; +} else { +this.colorType = 0; +this.defaultColix = JU.C.getColix(rgb); +}} else if ("contour" === propertyName) { +this.explicitContours = true; +} else if ("functionXY" === propertyName) { +if (this.sg.params.state == 2) this.setScriptInfo(null); +} else if ("init" === propertyName) { +this.newSg(); +} else if ("getSurfaceSets" === propertyName) { +if (this.thisMesh != null) { +var bsSets; +if (Clazz.instanceOf(value,"JU.BS")) { +bsSets = (value); +if (bsSets.isEmpty()) bsSets = null; +} else { +bsSets = new JU.BS(); +var a = value; +for (var i = a.length; --i >= 0; ) { +if (a[i] > 0) bsSets.set(a[i] - 1); +} +}this.thisMesh.jvxlData.thisSet = bsSets; +this.thisMesh.calculatedVolume = null; +this.thisMesh.calculatedArea = null; +}} else if ("localName" === propertyName) { +value = this.vwr.getOutputChannel(value, null); +propertyName = "outputChannel"; +} else if ("molecularOrbital" === propertyName) { +this.isFixed = false; +this.setMeshI(); +if (Clazz.instanceOf(value, Integer)) { +this.moNumber = (value).intValue(); +this.moLinearCombination = null; +} else { +this.moLinearCombination = value; +this.moNumber = 0; +}if (!this.isColorExplicit) this.isPhaseColored = true; +if (this.sg == null || !this.sg.params.isMapped) { +var mat4 = this.ms.am[this.currentMesh.modelIndex].mat4; +if (mat4 != null) { +var minv = JU.M4.newM4(mat4); +minv.invert(); +this.setPropI("modelInvRotation", minv, null); +}}} else if ("phase" === propertyName) { +this.isPhaseColored = true; +} else if ("plane" === propertyName) { +} else if ("pocket" === propertyName) { +} else if ("scale3d" === propertyName) { +this.scale3d = (value).floatValue(); +if (this.thisMesh != null) { +this.thisMesh.scale3d = this.thisMesh.jvxlData.scale3d = this.scale3d; +this.thisMesh.altVertices = null; +}} else if ("title" === propertyName) { +if ((typeof(value)=='string') && "-".equals(value)) value = null; +this.setPropertySuper(propertyName, value, bs); +value = this.title; +} else if ("withinPoints" === propertyName) { +var o = value; +this.withinDistance2 = (o[0]).floatValue(); +this.isWithinNot = (this.withinDistance2 < 0); +this.withinDistance2 *= this.withinDistance2; +this.withinPoints = o[3]; +if (this.withinPoints.size() == 0) this.withinPoints = this.ms.getAtomPointVector(o[2]); +} else if (("nci" === propertyName || "orbital" === propertyName) && this.sg != null) { +this.sg.params.testFlags = (this.vwr.getBoolean(603979962) ? 2 : 0); +} else if ("cutoffRange" === propertyName) { +this.cutoffRange = value; +}if (this.sg != null && this.sg.setProp(propertyName, value, bs)) { +if (this.sg.isValid) { +if ("molecularOrbital" === propertyName) { +this.currentMesh.isModelConnected = true; +this.currentMesh.mat4 = this.ms.am[this.currentMesh.modelIndex].mat4; +}return; +}propertyName = "delete"; +}if ("init" === propertyName) { +this.explicitID = false; +this.scriptAppendix = ""; +var script = ((typeof(value)=='string') ? value : null); +var pt = (script == null ? -1 : script.indexOf("# ID=")); +this.actualID = (pt >= 0 ? JU.PT.getQuotedStringAt(script, pt) : null); +this.setPropertySuper("thisID", "+PREVIOUS_MESH+", null); +if (script != null && !(this.iHaveBitSets = this.getScriptBitSets(script, null))) this.sg.setProp("select", bs, null); +this.initializeIsosurface(); +this.sg.params.modelIndex = (this.isFixed ? -1 : this.modelIndex); +return; +}if ("clear" === propertyName) { +this.discardTempData(true); +return; +}if ("colorDensity" === propertyName) { +if (value != null && this.currentMesh != null) this.currentMesh.volumeRenderPointSize = (value).floatValue(); +return; +}if (propertyName === "deleteModelAtoms") { +var modelIndex = ((value)[2])[0]; +var firstAtomDeleted = ((value)[2])[1]; +var nAtomsDeleted = ((value)[2])[2]; +for (var i = this.meshCount; --i >= 0; ) { +var m = this.meshes[i]; +if (m == null) continue; +if (m.connectedAtoms != null) { +var iAtom = m.connectedAtoms[0]; +if (iAtom >= firstAtomDeleted + nAtomsDeleted) m.connectedAtoms[0] = iAtom - nAtomsDeleted; + else if (iAtom >= firstAtomDeleted) m.connectedAtoms = null; +}m.connectedAtoms = null; +if (m.modelIndex == modelIndex) { +this.meshCount--; +if (m === this.currentMesh) this.currentMesh = this.thisMesh = null; +this.meshes = this.isomeshes = JU.AU.deleteElements(this.meshes, i, 1); +} else if (m.modelIndex > modelIndex) { +m.modelIndex--; +if (m.atomIndex >= firstAtomDeleted) m.atomIndex -= nAtomsDeleted; +}} +return; +}this.setPropertySuper(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "getFileReader", +function(fileName){ +var value = this.vwr.fm.getBufferedReaderOrErrorMessageFromName(fileName, null, true, true); +if ((typeof(value)=='string')) { +JU.Logger.error("Isosurface: could not open file " + fileName + " -- " + value); +return null; +}if (!(Clazz.instanceOf(value,"java.io.BufferedReader"))) try { +value = JU.Rdr.getBufferedReader(value, "ISO-8859-1"); +} catch (e) { +if (Clazz.exceptionOf(e,"java.io.IOException")){ +} else { +throw e; +} +} +return value; +}, "~S"); +Clazz.defineMethod(c$, "setIsoMeshColor", +function(m, color){ +m.jvxlData.baseColor = color; +m.isColorSolid = true; +m.pcs = null; +m.colorsExplicit = false; +m.colorEncoder = null; +m.vertexColorMap = null; +}, "J.shapesurface.IsosurfaceMesh,~S"); +Clazz.defineMethod(c$, "setColorPhase", +function(m, colix0, colix1){ +m.colorPhased = true; +m.colix = m.jvxlData.minColorIndex = colix0; +m.jvxlData.maxColorIndex = colix1; +m.jvxlData.isBicolorMap = true; +m.jvxlData.colorDensity = false; +m.isColorSolid = false; +m.remapColors(this.vwr, null, this.translucentLevel); +}, "J.shapesurface.IsosurfaceMesh,~N,~N"); +Clazz.defineMethod(c$, "ensureMeshSource", +function(){ +var haveColors = (this.thisMesh.vertexSource != null); +if (haveColors) for (var i = this.thisMesh.vc; --i >= 0; ) if (this.thisMesh.vertexSource[i] < 0) { +haveColors = false; +break; +} +if (!haveColors) { +var source = this.thisMesh.vertexSource; +var vertexColixes = this.thisMesh.vcs; +var colix = (this.thisMesh.isColorSolid ? this.thisMesh.colix : 0); +this.setProperty("init", null, null); +this.setProperty("map", Boolean.FALSE, null); +this.setProperty("property", Clazz.newFloatArray (this.ms.ac, 0), null); +if (colix != 0) { +this.thisMesh.colorCommand = "color isosurface " + JU.C.getHexCode(colix); +this.setProperty("color", Integer.$valueOf(JU.C.getArgb(colix)), null); +}if (source != null) { +for (var i = this.thisMesh.vc; --i >= 0; ) if (source[i] < 0) source[i] = this.thisMesh.vertexSource[i]; + +this.thisMesh.vertexSource = source; +this.thisMesh.vcs = vertexColixes; +}}}); +Clazz.defineMethod(c$, "slabPolygons", +function(slabInfo){ +this.thisMesh.calculatedVolume = null; +this.thisMesh.calculatedArea = null; +this.thisMesh.getMeshSlicer().slabPolygons(slabInfo, false); +this.thisMesh.reinitializeLightingAndColor(this.vwr); +}, "~A"); +Clazz.defineMethod(c$, "setPropertySuper", +function(propertyName, value, bs){ +if (propertyName === "thisID" && this.currentMesh != null && this.currentMesh.thisID != null && this.currentMesh.thisID.equals(value)) { +this.checkExplicit(value); +return; +}this.currentMesh = this.thisMesh; +this.setPropMC(propertyName, value, bs); +this.thisMesh = this.currentMesh; +this.jvxlData = (this.thisMesh == null ? null : this.thisMesh.jvxlData); +if (this.sg != null) this.sg.setJvxlData(this.jvxlData); +}, "~S,~O,JU.BS"); +Clazz.overrideMethod(c$, "getPropertyData", +function(property, data){ +var m; +if (property === "keys") { +var keys = (Clazz.instanceOf(data[1],"JU.Lst") ? data[1] : new JU.Lst()); +data[1] = keys; +keys.addLast("info"); +keys.addLast("data"); +keys.addLast("atoms"); +}if (property === "colorEncoder") { +m = this.getMesh(data[0]); +return (m != null && (data[1] = m.colorEncoder) != null); +}if (property === "intersectPlane") { +m = this.getMesh(data[0]); +if (m == null || data.length < 4) return false; +data[3] = Integer.$valueOf(m.modelIndex); +m.getMeshSlicer().getIntersection(0, data[1], null, data[2], null, null, null, false, false, 134217750, false); +return true; +}if (property === "getBoundingBox") { +var id = data[0]; +m = this.getMesh(id); +if (m == null || m.vs == null) return false; +data[2] = m.jvxlData.boundingBox; +if (m.mat4 != null) { +var d = new Array(2); +d[0] = JU.P3.newP(m.jvxlData.boundingBox[0]); +d[1] = JU.P3.newP(m.jvxlData.boundingBox[1]); +var v = new JU.V3(); +m.mat4.getTranslation(v); +d[0].add(v); +d[1].add(v); +data[2] = d; +}return true; +}if (property === "unitCell") { +m = this.getMesh(data[0]); +return (m != null && (data[1] = m.getUnitCell()) != null); +}if (property === "getCenter") { +var index = (data[1]).intValue(); +if (index == -2147483648) { +var id = data[0]; +m = this.getMesh(id); +if (m == null || m.vs == null) return false; +var p = JU.P3.newP(m.jvxlData.boundingBox[0]); +p.add(m.jvxlData.boundingBox[1]); +p.scale(0.5); +if (m.mat4 != null) { +var v = new JU.V3(); +m.mat4.getTranslation(v); +p.add(v); +}data[2] = p; +return true; +}}return this.getPropDataMC(property, data); +}, "~S,~A"); +Clazz.overrideMethod(c$, "getProperty", +function(property, index){ +return this.getPropI(property, index); +}, "~S,~N"); +Clazz.defineMethod(c$, "getPropI", +function(property, index){ +var m = this.thisMesh; +if (index >= 0 && (index >= this.meshCount || (m = this.isomeshes[index]) == null)) return null; +var ret = this.getPropMC(property, index); +if (ret != null) return ret; +if (property === "message") { +var s = ""; +if (!this.jvxlData.isValid) return "invalid! (no atoms selected?)"; +if (!Float.isNaN(this.jvxlData.integration)) s += "integration " + this.jvxlData.integration; +if (this.shapeID == 24 || this.shapeID == 27 || this.shapeID == 28) { +if (this.jvxlData.cutoffRange == null) s += " with cutoff=" + this.jvxlData.cutoff; + else s += " with cutoffRange=" + JU.Escape.eAF(this.jvxlData.cutoffRange); +}if (this.shapeID == 27 || this.shapeID == 28) return s; +if (this.jvxlData.dataMin != 3.4028235E38) s += " min=" + this.jvxlData.dataMin + " max=" + this.jvxlData.dataMax; +s += "; " + JV.JC.shapeClassBases[this.shapeID].toLowerCase() + " count: " + this.getPropMC("count", index); +return s + this.getPropI("dataRangeStr", index) + this.jvxlData.msg; +}if (property === "dataRange") return this.getDataRange(m); +if (property === "dataRangeStr") { +var dataRange = this.getDataRange(m); +return (dataRange != null && dataRange[0] != 3.4028235E38 && dataRange[0] != dataRange[1] ? "\nisosurface full data range " + dataRange[0] + " to " + dataRange[1] + " with color scheme spanning " + dataRange[2] + " to " + dataRange[3] : ""); +}if (property === "moNumber") return Integer.$valueOf(this.moNumber); +if (property === "moLinearCombination") return this.moLinearCombination; +if (property === "nSets") { +var n = (m == null ? -2147483648 : m.nSets); +if (n == 0) { +this.calculateVolumeOrArea(m, true); +n = m.nSets; +}return Integer.$valueOf(n == -2147483648 ? 0 : Math.abs(m.nSets)); +}if (property === "area") return (m == null ? Float.$valueOf(NaN) : this.calculateVolumeOrArea(m, true)); +if (property === "volume") return (m == null ? Float.$valueOf(NaN) : this.calculateVolumeOrArea(m, false)); +if (m == null) return null; +if (property === "output") { +return (m.jvxlData.sbOut == null && m.jvxlData.jvxlFileTitle == null ? null : m.jvxlData.jvxlFileTitle + "\n" + (m.jvxlData.sbOut == null ? "" : m.jvxlData.sbOut.toString())); +}if (property === "cutoff") return Float.$valueOf(this.jvxlData.cutoff); +if (property === "cutoffRange") return this.jvxlData.cutoffRange; +if (property === "minMaxInfo") return Clazz.newFloatArray(-1, [this.jvxlData.dataMin, this.jvxlData.dataMax]); +if (property === "plane") return this.jvxlData.jvxlPlane; +if (property === "contours") return m.getContours(); +if (property === "pmesh" || property === "pmeshbin") return m.getPmeshData(property === "pmeshbin"); +if (property === "jvxlDataXml" || property === "jvxlMeshXml") { +var meshData = null; +this.jvxlData.slabInfo = null; +if (property === "jvxlMeshXml" || this.jvxlData.vertexDataOnly || m.bsSlabDisplay != null && m.bsSlabGhost == null) { +meshData = new J.jvxl.data.MeshData(); +this.fillMeshData(meshData, 1, m); +meshData.polygonColorData = J.shapesurface.Isosurface.getPolygonColorData(meshData.pc, meshData.pcs, (meshData.colorsExplicit ? meshData.pis : null), meshData.bsSlabDisplay); +} else if (m.bsSlabGhost != null) { +this.jvxlData.slabInfo = m.slabOptions.toString(); +}var sb = new JU.SB(); +this.getMeshCommand(sb, m.index); +m.setJvxlColorMap(true); +return J.jvxl.data.JvxlCoder.jvxlGetFile(this.jvxlData, meshData, this.title, "", true, 1, sb.toString(), null); +}if (property === "jvxlFileInfo") { +return J.jvxl.data.JvxlCoder.jvxlGetInfo(this.jvxlData); +}if (property === "command") { +var sb = new JU.SB(); +var list = this.getMeshList((index < 0 ? this.previousMeshID : m.thisID), false); +for (var i = list.size(); --i >= 0; ) this.getMeshCommand(sb, list.get(i).index); + +return sb.toString(); +}if (property === "atoms") { +return m.surfaceAtoms; +}if (property === "colorEncoder") return m.colorEncoder; +if (property === "values" || property === "value") { +return m.probeValues; +}return null; +}, "~S,~N"); +Clazz.defineMethod(c$, "getDataRange", +function(mesh){ +return (mesh == null ? null : mesh.getDataRange()); +}, "J.shapesurface.IsosurfaceMesh"); +Clazz.defineMethod(c$, "calculateVolumeOrArea", +function(mesh, isArea){ +if (isArea) { +if (mesh.calculatedArea != null) return mesh.calculatedArea; +} else { +if (mesh.calculatedVolume != null) return mesh.calculatedVolume; +}var meshData = new J.jvxl.data.MeshData(); +this.fillMeshData(meshData, 1, mesh); +meshData.nSets = mesh.nSets; +meshData.vertexSets = mesh.vertexSets; +if (!isArea && mesh.jvxlData.colorDensity) { +var f = mesh.jvxlData.voxelVolume; +f *= (mesh.bsSlabDisplay == null ? mesh.vc : mesh.bsSlabDisplay.cardinality()); +return mesh.calculatedVolume = Float.$valueOf(f); +}var ret = J.jvxl.data.MeshData.calculateVolumeOrArea(meshData, mesh.jvxlData.thisSet, isArea, false); +if (mesh.nSets <= 0) mesh.nSets = -meshData.nSets; +if (isArea) mesh.calculatedArea = ret; + else mesh.calculatedVolume = ret; +return ret; +}, "J.shapesurface.IsosurfaceMesh,~B"); +c$.getPolygonColorData = Clazz.defineMethod(c$, "getPolygonColorData", +function(ccount, colixes, polygons, bsSlabDisplay){ +var isExplicit = (polygons != null); +if (colixes == null && polygons == null) return null; +var list1 = new JU.SB(); +var count = 0; +var colix = 0; +var color = 0; +var colorNext = 0; +var done = false; +for (var i = 0; i < ccount || (done = true) == true; i++) { +if (!done && bsSlabDisplay != null && !bsSlabDisplay.get(i)) continue; +if (done || (isExplicit ? (colorNext = polygons[i][4]) != color : colixes[i] != colix)) { +if (count != 0) list1.append(" ").appendI(count).append(" ").appendI((isExplicit ? color : colix == 0 ? 0 : JU.C.getArgb(colix))); +if (done) break; +if (isExplicit) color = colorNext; + else colix = colixes[i]; +count = 1; +} else { +count++; +}} +list1.append("\n"); +return list1.toString(); +}, "~N,~A,~A,JU.BS"); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +this.clean(); +var sb = new JU.SB(); +sb.append("\n"); +for (var i = 0; i < this.meshCount; i++) this.getMeshCommand(sb, i); + +return sb.toString(); +}); +Clazz.defineMethod(c$, "getMeshCommand", +function(sb, i){ +var imesh = this.meshes[i]; +if (imesh == null || imesh.scriptCommand == null) return; +var cmd = imesh.scriptCommand; +var modelCount = this.ms.mc; +if (modelCount > 1) J.shape.Shape.appendCmd(sb, "frame " + this.vwr.getModelNumberDotted(imesh.modelIndex)); +cmd = JU.PT.rep(cmd, ";; isosurface map", " map"); +cmd = JU.PT.rep(cmd, "; isosurface map", " map"); +if (cmd.endsWith(" map")) cmd = cmd.substring(0, cmd.length - 4); +cmd = cmd.$replace('\t', ' '); +cmd = JU.PT.rep(cmd, ";#", "; #"); +var pt = cmd.indexOf("; #"); +if (pt >= 0) cmd = cmd.substring(0, pt); +if (imesh.connectedAtoms != null) cmd += " connect " + JU.Escape.eAI(imesh.connectedAtoms); +cmd = JU.PT.trim(cmd, ";"); +if (imesh.linkedMesh != null) cmd += " LINK"; +if (this.myType === "lcaoCartoon" && imesh.atomIndex >= 0) cmd += " ATOMINDEX " + imesh.atomIndex; +J.shape.Shape.appendCmd(sb, cmd); +var id = this.myType + " ID " + JU.PT.esc(imesh.thisID); +if (imesh.jvxlData.thisSet != null && !imesh.jvxlData.thisSet.isEmpty()) { +J.shape.Shape.appendCmd(sb, id + (imesh.jvxlData.thisSet.cardinality() == 1 ? " set " + (imesh.jvxlData.thisSet.nextSetBit(0) + 1) : " subset " + imesh.jvxlData.thisSet)); +}if (imesh.mat4 != null && !imesh.isModelConnected) J.shape.Shape.appendCmd(sb, id + " move " + JU.Escape.matrixToScript(imesh.mat4)); +if (imesh.scale3d != 0) J.shape.Shape.appendCmd(sb, id + " scale3d " + imesh.scale3d); +if (imesh.jvxlData.slabValue != -2147483648) J.shape.Shape.appendCmd(sb, id + " slab " + imesh.jvxlData.slabValue); +if (imesh.slabOptions != null) J.shape.Shape.appendCmd(sb, imesh.slabOptions.toString()); +if (cmd.charAt(0) != '#') { +if (this.allowMesh) J.shape.Shape.appendCmd(sb, imesh.getState(this.myType)); +if (!imesh.isColorSolid && imesh.colorType == 0 && JU.C.isColixTranslucent(imesh.colix)) J.shape.Shape.appendCmd(sb, "color " + this.myType + " " + J.shape.Shape.getTranslucentLabel(imesh.colix)); +if (imesh.colorCommand != null && imesh.colorType == 0 && !imesh.colorCommand.equals("#inherit;")) { +J.shape.Shape.appendCmd(sb, imesh.colorCommand); +}var colorArrayed = (imesh.isColorSolid && imesh.pcs != null); +if (imesh.isColorSolid && imesh.colorType == 0 && !imesh.colorsExplicit && !colorArrayed) { +J.shape.Shape.appendCmd(sb, J.shape.Shape.getColorCommandUnk(this.myType, imesh.colix, this.translucentAllowed)); +} else if (imesh.jvxlData.isBicolorMap && imesh.colorPhased) { +J.shape.Shape.appendCmd(sb, "color isosurface phase " + J.shape.Shape.encodeColor(imesh.jvxlData.minColorIndex) + " " + J.shape.Shape.encodeColor(imesh.jvxlData.maxColorIndex)); +}if (imesh.vertexColorMap != null) for (var entry, $entry = imesh.vertexColorMap.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +var bs = entry.getValue(); +if (!bs.isEmpty()) J.shape.Shape.appendCmd(sb, "color " + this.myType + " " + JU.Escape.eBS(bs) + " " + entry.getKey()); +} +}}, "JU.SB,~N"); +Clazz.defineMethod(c$, "getScriptBitSets", +function(script, bsCmd){ +this.script = script; +var i; +this.iHaveModelIndex = false; +this.modelIndex = -1; +if (script != null && (i = script.indexOf("MODEL({")) >= 0) { +var j = script.indexOf("})", i); +if (j > 0) { +var bs = JU.BS.unescape(script.substring(i + 3, j + 1)); +this.modelIndex = (bs == null ? -1 : bs.nextSetBit(0)); +this.iHaveModelIndex = (this.modelIndex >= 0); +}}if (script == null) return false; +this.getCapSlabInfo(script); +i = script.indexOf("# ({"); +if (i < 0) return false; +var j = script.indexOf("})", i); +if (j < 0) return false; +var bs = JU.BS.unescape(script.substring(i + 2, j + 2)); +if (bsCmd == null) this.sg.setProp("select", bs, null); + else bsCmd[0] = bs; +if ((i = script.indexOf("({", j)) < 0) return true; +j = script.indexOf("})", i); +if (j < 0) return false; +bs = JU.BS.unescape(script.substring(i + 1, j + 1)); +if (bsCmd == null) this.sg.setProp("ignore", bs, null); + else bsCmd[1] = bs; +if ((i = script.indexOf("/({", j)) == j + 2) { +if ((j = script.indexOf("})", i)) < 0) return false; +bs = JU.BS.unescape(script.substring(i + 3, j + 1)); +if (bsCmd == null) this.ms.setTrajectoryBs(bs); + else bsCmd[2] = bs; +}return true; +}, "~S,~A"); +Clazz.defineMethod(c$, "getCapSlabInfo", +function(script){ +var i = script.indexOf("# SLAB="); +if (i >= 0) this.sg.setProp("slab", this.getCapSlabObject(JU.PT.getQuotedStringAt(script, i), false), null); +i = script.indexOf("# CAP="); +if (i >= 0) this.sg.setProp("slab", this.getCapSlabObject(JU.PT.getQuotedStringAt(script, i), true), null); +}, "~S"); +Clazz.defineMethod(c$, "getCapSlabObject", +function(s, isCap){ +try { +if (s.indexOf("array") == 0) { +var pts = JU.PT.split(s.substring(6, s.length - 1), ","); +return JU.TempArray.getSlabObjectType(1812599299, Clazz.newArray(-1, [JU.Escape.uP(pts[0]), JU.Escape.uP(pts[1]), JU.Escape.uP(pts[2]), JU.Escape.uP(pts[3])]), isCap, null); +}var plane = JU.Escape.uP(s); +if (Clazz.instanceOf(plane,"JU.P4")) return JU.TempArray.getSlabObjectType(134217750, plane, isCap, null); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +return null; +}, "~S,~B"); +Clazz.defineMethod(c$, "initializeIsosurface", +function(){ +if (!this.iHaveModelIndex) this.modelIndex = this.vwr.am.cmi; +this.atomIndex = -1; +this.bsDisplay = null; +this.center = JU.P3.new3(NaN, 0, 0); +this.colix = 5; +this.connections = null; +this.cutoffRange = null; +this.colorType = this.defaultColix = this.meshColix = 0; +this.displayWithinPoints = null; +this.explicitContours = false; +this.isFixed = (this.modelIndex < 0); +this.isPhaseColored = this.isColorExplicit = false; +this.linkedMesh = null; +if (this.modelIndex < 0) this.modelIndex = 0; +this.scale3d = 0; +this.title = null; +this.translucentLevel = 0; +this.withinPoints = null; +this.initState(); +}); +Clazz.defineMethod(c$, "initState", +function(){ +this.associateNormals = true; +this.sg.initState(); +}); +Clazz.defineMethod(c$, "setMeshI", +function(){ +this.thisMesh.visible = true; +if ((this.thisMesh.atomIndex = this.atomIndex) >= 0) this.thisMesh.modelIndex = this.ms.at[this.atomIndex].mi; + else if (this.isFixed) this.thisMesh.modelIndex = -1; + else if (this.modelIndex >= 0) this.thisMesh.modelIndex = this.modelIndex; + else this.thisMesh.modelIndex = this.vwr.am.cmi; +this.thisMesh.scriptCommand = this.script; +this.thisMesh.ptCenter.setT(this.center); +this.thisMesh.scale3d = (this.thisMesh.jvxlData.jvxlPlane == null ? 0 : this.scale3d); +}); +Clazz.defineMethod(c$, "discardTempData", +function(discardAll){ +if (!discardAll) return; +this.title = null; +if (this.thisMesh == null) return; +this.thisMesh.surfaceSet = null; +}, "~B"); +Clazz.defineMethod(c$, "getDefaultColix", +function(){ +if (this.defaultColix != 0) return this.defaultColix; +if (!this.sg.jvxlData.wasCubic) return this.colix; +var argb = (this.sg.params.cutoff >= 0 ? -11525984 : -6283184); +return JU.C.getColix(argb); +}); +Clazz.defineMethod(c$, "drawLcaoCartoon", +function(z, x, rotAxis, nElectrons, reverseColor){ +var lcaoCartoon = this.sg.setLcao(); +var addAnti = (lcaoCartoon.indexOf("anti-sp") >= 0); +if (addAnti) { +lcaoCartoon = lcaoCartoon.substring(5); +}var rotRadians = rotAxis.x + rotAxis.y + rotAxis.z; +this.defaultColix = JU.C.getColix(this.sg.params.colorPos); +var colixNeg = JU.C.getColix(this.sg.params.colorNeg); +if (reverseColor) { +var c = colixNeg; +colixNeg = this.defaultColix; +this.defaultColix = c; +}var y = new JU.V3(); +var isReverse = (lcaoCartoon.length > 0 && lcaoCartoon.charAt(0) == '-'); +if (isReverse) lcaoCartoon = lcaoCartoon.substring(1); +var sense = (isReverse ? -1 : 1); +y.cross(z, x); +if (rotRadians != 0) { +var a = new JU.A4(); +if (rotAxis.x != 0) a.setVA(x, rotRadians); + else if (rotAxis.y != 0) a.setVA(y, rotRadians); + else a.setVA(z, rotRadians); +var m = new JU.M3().setAA(a); +m.rotate(x); +m.rotate(y); +m.rotate(z); +}if (this.thisMesh == null && this.nLCAO == 0) this.nLCAO = this.meshCount; +var id = (this.thisMesh == null ? (nElectrons > 0 ? "lp" : "lcao") + (++this.nLCAO) + "_" + lcaoCartoon : this.thisMesh.thisID); +if (this.thisMesh == null) this.allocMesh(id, null); +if (lcaoCartoon.equals("px")) { +this.thisMesh.thisID += "a"; +var meshA = this.thisMesh; +this.createLcaoLobe(x, sense, nElectrons); +if (nElectrons > 0) return; +this.setProperty("thisID", id + "b", null); +this.createLcaoLobe(x, -sense, 0); +this.thisMesh.colix = colixNeg; +this.linkedMesh = this.thisMesh.linkedMesh = meshA; +return; +}if (lcaoCartoon.equals("py")) { +this.thisMesh.thisID += "a"; +var meshA = this.thisMesh; +this.createLcaoLobe(y, sense, nElectrons); +if (nElectrons > 0) return; +this.setProperty("thisID", id + "b", null); +this.createLcaoLobe(y, -sense, 0); +this.thisMesh.colix = colixNeg; +this.linkedMesh = this.thisMesh.linkedMesh = meshA; +return; +}var meshA = this.thisMesh; +if (lcaoCartoon.equals("pz")) { +meshA.thisID += "a"; +this.createLcaoLobe(z, sense, nElectrons); +if (nElectrons > 0) return; +this.setProperty("thisID", id + "b", null); +this.createLcaoLobe(z, -sense, 0); +this.thisMesh.colix = colixNeg; +this.linkedMesh = this.thisMesh.linkedMesh = meshA; +return; +}if (lcaoCartoon.equals("pza") || lcaoCartoon.indexOf("sp") == 0 || lcaoCartoon.indexOf("d") == 0 || lcaoCartoon.indexOf("lp") == 0) { +this.createLcaoLobe(z, sense, nElectrons); +if (addAnti && nElectrons == 0) { +meshA.thisID += "a"; +this.setProperty("thisID", id + "b", null); +this.createLcaoLobe(z, -sense / 2, 0); +this.thisMesh.colix = colixNeg; +this.linkedMesh = this.thisMesh.linkedMesh = meshA; +}return; +}if (lcaoCartoon.equals("pzb")) { +this.createLcaoLobe(z, -sense, nElectrons); +return; +}if (lcaoCartoon.equals("pxa")) { +this.createLcaoLobe(x, sense, nElectrons); +return; +}if (lcaoCartoon.equals("pxb")) { +this.createLcaoLobe(x, -sense, nElectrons); +return; +}if (lcaoCartoon.equals("pya")) { +this.createLcaoLobe(y, sense, nElectrons); +return; +}if (lcaoCartoon.equals("pyb")) { +this.createLcaoLobe(y, -sense, nElectrons); +return; +}if (lcaoCartoon.equals("spacefill") || lcaoCartoon.equals("cpk")) { +this.createLcaoLobe(null, 2 * this.ms.at[this.atomIndex].getRadius(), nElectrons); +return; +}this.createLcaoLobe(null, 1, nElectrons); +return; +}, "JU.V3,JU.V3,JU.V3,~N,~B"); +Clazz.defineMethod(c$, "createLcaoLobe", +function(lobeAxis, factor, nElectrons){ +this.initState(); +if (JU.Logger.debugging) { +JU.Logger.debug("creating isosurface ID " + this.thisMesh.thisID); +}if (lobeAxis == null) { +this.setProperty("sphere", Float.$valueOf(factor / 2), null); +} else { +this.lcaoDir.x = lobeAxis.x * factor; +this.lcaoDir.y = lobeAxis.y * factor; +this.lcaoDir.z = lobeAxis.z * factor; +this.lcaoDir.w = 0.7; +this.setProperty(nElectrons == 2 ? "lp" : nElectrons == 1 ? "rad" : "lobe", this.lcaoDir, null); +}this.thisMesh.colix = this.defaultColix; +this.setScriptInfo(null); +}, "JU.V3,~N,~N"); +Clazz.overrideMethod(c$, "invalidateTriangles", +function(){ +this.thisMesh.invalidatePolygons(); +}); +Clazz.overrideMethod(c$, "setOutputChannel", +function(binaryDoc, out){ +binaryDoc.setOutputChannel(out); +}, "javajs.api.GenericBinaryDocument,JU.OC"); +Clazz.overrideMethod(c$, "fillMeshData", +function(meshData, mode, mesh){ +if (meshData == null) { +if (this.thisMesh == null) this.allocMesh(null, null); +if (!this.thisMesh.isMerged) this.thisMesh.clearType(this.myType, this.sg.params.iAddGridPoints); +this.thisMesh.connectedAtoms = this.connections; +this.thisMesh.colix = this.getDefaultColix(); +this.thisMesh.colorType = this.colorType; +this.thisMesh.meshColix = this.meshColix; +if (this.isPhaseColored || this.thisMesh.jvxlData.isBicolorMap) this.thisMesh.isColorSolid = false; +return; +}if (mesh == null) mesh = this.thisMesh; +if (mesh == null) return; +switch (mode) { +case 1: +meshData.mergeVertexCount0 = mesh.mergeVertexCount0; +meshData.vs = mesh.vs; +meshData.vertexSource = mesh.vertexSource; +meshData.vvs = mesh.vvs; +meshData.vc = mesh.vc; +meshData.vertexIncrement = mesh.vertexIncrement; +meshData.pc = mesh.pc; +meshData.pis = mesh.pis; +meshData.pcs = mesh.pcs; +meshData.bsSlabDisplay = mesh.bsSlabDisplay; +meshData.bsSlabGhost = mesh.bsSlabGhost; +meshData.slabColix = mesh.slabColix; +meshData.slabMeshType = mesh.slabMeshType; +meshData.polygonCount0 = mesh.polygonCount0; +meshData.vertexCount0 = mesh.vertexCount0; +meshData.slabOptions = mesh.slabOptions; +meshData.colorsExplicit = mesh.colorsExplicit; +return; +case 2: +if (mesh.vcs == null || mesh.vc > mesh.vcs.length) mesh.vcs = Clazz.newShortArray (mesh.vc, 0); +meshData.vcs = mesh.vcs; +return; +case 3: +mesh.surfaceSet = meshData.surfaceSet; +mesh.vertexSets = meshData.vertexSets; +mesh.nSets = meshData.nSets; +return; +case 4: +mesh.vs = meshData.vs; +mesh.vvs = meshData.vvs; +mesh.vc = meshData.vc; +mesh.vertexIncrement = meshData.vertexIncrement; +mesh.vertexSource = meshData.vertexSource; +mesh.pc = meshData.pc; +mesh.pis = meshData.pis; +mesh.pcs = meshData.pcs; +mesh.bsSlabDisplay = meshData.bsSlabDisplay; +mesh.bsSlabGhost = meshData.bsSlabGhost; +mesh.slabColix = meshData.slabColix; +mesh.slabMeshType = meshData.slabMeshType; +mesh.polygonCount0 = meshData.polygonCount0; +mesh.vertexCount0 = meshData.vertexCount0; +mesh.mergeVertexCount0 = meshData.mergeVertexCount0; +mesh.slabOptions = meshData.slabOptions; +mesh.colorsExplicit = meshData.colorsExplicit; +return; +} +}, "J.jvxl.data.MeshData,~N,J.shapesurface.IsosurfaceMesh"); +Clazz.overrideMethod(c$, "notifySurfaceGenerationCompleted", +function(){ +this.setMeshI(); +this.setBsVdw(); +this.thisMesh.surfaceAtoms = this.sg.params.bsSelected; +this.thisMesh.insideOut = this.sg.params.isInsideOut(); +this.thisMesh.isModelConnected = this.sg.params.isModelConnected; +this.thisMesh.vertexSource = this.sg.params.vertexSource; +this.thisMesh.oabc = this.sg.getOriginVaVbVc(); +this.thisMesh.calculatedArea = null; +this.thisMesh.calculatedVolume = null; +this.thisMesh.probeValues = this.sg.params.probeValues; +if (!this.thisMesh.isMerged) { +this.thisMesh.initialize(this.sg.params.isFullyLit() ? 1073741964 : 1073741958, null, this.sg.params.thePlane); +if (this.jvxlData.fixedLattice != null) { +this.thisMesh.lattice = this.jvxlData.fixedLattice; +this.thisMesh.fixLattice(); +}return this.thisMesh.setColorsFromJvxlData(this.sg.params.colorRgb); +}if (!this.sg.params.allowVolumeRender) this.thisMesh.jvxlData.allowVolumeRender = false; +this.thisMesh.setColorsFromJvxlData(this.sg.params.colorRgb); +if (this.thisMesh.jvxlData.slabInfo != null) this.vwr.runScriptCautiously("isosurface " + this.thisMesh.jvxlData.slabInfo); +if (this.sg.params.psi_monteCarloCount > 0) this.thisMesh.diameter = -1; +return false; +}); +Clazz.overrideMethod(c$, "notifySurfaceMappingCompleted", +function(){ +if (!this.thisMesh.isMerged) this.thisMesh.initialize(this.sg.params.isFullyLit() ? 1073741964 : 1073741958, null, this.sg.params.thePlane); +this.setBsVdw(); +this.thisMesh.isColorSolid = false; +this.thisMesh.colorDensity = this.jvxlData.colorDensity; +this.thisMesh.volumeRenderPointSize = this.jvxlData.pointSize; +this.thisMesh.colorEncoder = this.sg.params.colorEncoder; +this.thisMesh.getContours(); +if (this.thisMesh.jvxlData.nContours != 0 && this.thisMesh.jvxlData.nContours != -1) this.explicitContours = true; +if (this.explicitContours && this.thisMesh.jvxlData.jvxlPlane != null) this.thisMesh.havePlanarContours = true; +this.setPropertySuper("token", Integer.$valueOf(this.explicitContours ? 1073742046 : 1073741938), null); +this.setPropertySuper("token", Integer.$valueOf(this.explicitContours ? 1073741898 : 1073742039), null); +if (!this.thisMesh.isMerged) this.thisMesh.setJvxlDataRendering(); +if (this.sg.params.slabInfo != null) { +this.thisMesh.slabPolygonsList(this.sg.params.slabInfo, false); +this.thisMesh.reinitializeLightingAndColor(this.vwr); +}this.thisMesh.setColorCommand(); +}); +Clazz.defineMethod(c$, "setBsVdw", +function(){ +if (this.sg.bsVdw == null) return; +if (this.thisMesh.bsVdw == null) this.thisMesh.bsVdw = new JU.BS(); +this.thisMesh.bsVdw.or(this.sg.bsVdw); +}); +Clazz.overrideMethod(c$, "calculateGeodesicSurface", +function(bsSelected, envelopeRadius){ +return this.vwr.calculateSurface(bsSelected, envelopeRadius); +}, "JU.BS,~N"); +Clazz.overrideMethod(c$, "getSurfacePointIndexAndFraction", +function(cutoff, isCutoffAbsolute, x, y, z, offset, vA, vB, valueA, valueB, pointA, edgeVector, isContourType, fReturn){ +return 0; +}, "~N,~B,~N,~N,~N,JU.P3i,~N,~N,~N,~N,JU.T3,JU.V3,~B,~A"); +Clazz.overrideMethod(c$, "addVertexCopy", +function(vertexXYZ, value, assocVertex, asCopy){ +if (this.cutoffRange != null && (value < this.cutoffRange[0] || value > this.cutoffRange[1])) return -1; +return (this.withinPoints != null && !J.shape.Mesh.checkWithin(vertexXYZ, this.withinPoints, this.withinDistance2, this.isWithinNot) ? -1 : this.thisMesh.addVertexCopy(vertexXYZ, value, assocVertex, this.associateNormals, asCopy)); +}, "JU.T3,~N,~N,~B"); +Clazz.overrideMethod(c$, "addTriangleCheck", +function(iA, iB, iC, check, iContour, isAbsolute, color){ +return (iA < 0 || iB < 0 || iC < 0 || isAbsolute && !J.jvxl.data.MeshData.checkCutoff(iA, iB, iC, this.thisMesh.vvs) ? -1 : this.thisMesh.addTriangleCheck(iA, iB, iC, check, iContour, color)); +}, "~N,~N,~N,~N,~N,~B,~N"); +Clazz.defineMethod(c$, "setScriptInfo", +function(strCommand){ +var script = (strCommand == null ? this.sg.params.script : strCommand); +var pt = (script == null ? -1 : script.indexOf("; isosurface map")); +if (pt == 0) { +if (this.thisMesh.scriptCommand == null) return; +pt = this.thisMesh.scriptCommand.indexOf("; isosurface map"); +if (pt >= 0) this.thisMesh.scriptCommand = this.thisMesh.scriptCommand.substring(0, pt); +this.thisMesh.scriptCommand += script; +return; +}this.thisMesh.title = this.sg.params.title; +this.thisMesh.dataType = this.sg.params.dataType; +this.thisMesh.scale3d = this.sg.params.scale3d; +if (script != null) { +if (this.oldFileName != null) { +script = script.$replace(this.oldFileName, this.newFileName); +}if (script.charAt(0) == ' ') { +script = this.myType + " ID " + JU.PT.esc(this.thisMesh.thisID) + script; +pt = script.indexOf("; isosurface map"); +}}if (pt > 0 && this.scriptAppendix.length > 0) this.thisMesh.scriptCommand = script.substring(0, pt) + this.scriptAppendix + script.substring(pt); + else this.thisMesh.scriptCommand = script + this.scriptAppendix; +if (!this.explicitID && script != null && (pt = script.indexOf("# ID=")) >= 0) this.thisMesh.thisID = JU.PT.getQuotedStringAt(script, pt); +}, "~S"); +Clazz.overrideMethod(c$, "addRequiredFile", +function(fileName){ +fileName = " # /*file*/\"" + fileName + "\""; +if (this.scriptAppendix.indexOf(fileName) < 0) this.scriptAppendix += fileName; +}, "~S"); +Clazz.overrideMethod(c$, "setRequiredFile", +function(oldName, fileName){ +this.oldFileName = oldName; +this.newFileName = fileName; +}, "~S,~S"); +Clazz.defineMethod(c$, "setJvxlInfo", +function(){ +if (this.sg.jvxlData !== this.jvxlData || this.sg.jvxlData !== this.thisMesh.jvxlData) this.jvxlData = this.thisMesh.jvxlData = this.sg.jvxlData; +}); +Clazz.overrideMethod(c$, "getShapeDetail", +function(){ +var V = new JU.Lst(); +for (var i = 0; i < this.meshCount; i++) { +var info = new java.util.Hashtable(); +var mesh = this.isomeshes[i]; +if (mesh == null || mesh.vs == null || mesh.vc == 0 && mesh.pc == 0) continue; +this.addMeshInfo(mesh, info); +V.addLast(info); +} +return V; +}); +Clazz.defineMethod(c$, "addMeshInfo", +function(mesh, info){ +info.put("ID", (mesh.thisID == null ? " " : mesh.thisID)); +info.put("visible", Boolean.$valueOf(mesh.visible)); +info.put("vertexCount", Integer.$valueOf(mesh.vc)); +if (mesh.calculatedVolume != null) info.put("volume", mesh.calculatedVolume); +if (mesh.calculatedArea != null) info.put("area", mesh.calculatedArea); +if (!Float.isNaN(mesh.ptCenter.x)) info.put("center", mesh.ptCenter); +if (mesh.mat4 != null) info.put("mat4", mesh.mat4); +if (mesh.scale3d != 0) info.put("scale3d", Float.$valueOf(mesh.scale3d)); +info.put("xyzMin", mesh.jvxlData.boundingBox[0]); +info.put("xyzMax", mesh.jvxlData.boundingBox[1]); +var s = J.jvxl.data.JvxlCoder.jvxlGetInfo(mesh.jvxlData); +if (s != null) info.put("jvxlInfo", s.$replace('\n', ' ')); +info.put("modelIndex", Integer.$valueOf(mesh.modelIndex)); +info.put("color", JU.CU.colorPtFromInt(JU.C.getArgb(mesh.colix), null)); +if (mesh.colorEncoder != null) info.put("colorKey", mesh.colorEncoder.getColorKey()); +if (mesh.title != null) info.put("title", mesh.title); +if (mesh.jvxlData.contourValues != null || mesh.jvxlData.contourValuesUsed != null) info.put("contours", mesh.getContourList(this.vwr)); +}, "J.shapesurface.IsosurfaceMesh,java.util.Map"); +Clazz.overrideMethod(c$, "getPlane", +function(x){ +return null; +}, "~N"); +Clazz.overrideMethod(c$, "getValue", +function(x, y, z, ptyz){ +return 0; +}, "~N,~N,~N,~N"); +Clazz.overrideMethod(c$, "checkObjectHovered", +function(x, y, bsVisible){ +if (this.keyXy != null && x >= this.keyXy[0] && y >= this.keyXy[1] && x < this.keyXy[2] && y < this.keyXy[3]) { +this.hoverKey(x, y); +return true; +}if (!this.vwr.getDrawHover()) return false; +var s = this.findValue(x, y, false, bsVisible); +if (s == null) return false; +this.vwr.hoverOnPt(x, y, s, this.pickedMesh.thisID, this.pickedPt); +return true; +}, "~N,~N,JU.BS"); +Clazz.defineMethod(c$, "hoverKey", +function(x, y){ +try { +var s; +var f = 1 - 1.0 * (y - this.keyXy[1]) / (this.keyXy[3] - this.keyXy[1]); +if (this.thisMesh.showContourLines) { +var vContours = this.thisMesh.getContours(); +if (vContours == null) { +if (this.thisMesh.jvxlData.contourValues == null) return; +var i = Clazz.doubleToInt(Math.floor(f * this.thisMesh.jvxlData.contourValues.length)); +if (i < 0 || i > this.thisMesh.jvxlData.contourValues.length) return; +s = "" + this.thisMesh.jvxlData.contourValues[i]; +} else { +var i = Clazz.doubleToInt(Math.floor(f * vContours.length)); +if (i < 0 || i > vContours.length) return; +s = "" + (vContours[i].get(2)).floatValue(); +}} else { +var g = this.thisMesh.colorEncoder.quantize(f, true); +f = this.thisMesh.colorEncoder.quantize(f, false); +s = "" + g + " - " + f; +}this.vwr.hoverOnPt(x, y, s, null, null); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +}, "~N,~N"); +Clazz.overrideMethod(c$, "checkObjectClicked", +function(x, y, action, bsVisible, drawPicking){ +if (!drawPicking) return null; +if (!this.vwr.isBound(action, 18)) return null; +var dmin2 = 100; +if (this.vwr.gdata.isAntialiased()) { +x <<= 1; +y <<= 1; +dmin2 <<= 1; +}var imesh = -1; +var jmaxz = -1; +var jminz = -1; +var maxz = -2147483648; +var minz = 2147483647; +var pickFront = true; +for (var i = 0; i < this.meshCount; i++) { +var m = this.isomeshes[i]; +if (!this.isPickable(m, bsVisible)) continue; +var centers = (pickFront ? m.vs : m.getCenters()); +if (centers == null) continue; +for (var j = centers.length; --j >= 0; ) { +var v = centers[j]; +if (v == null) continue; +var d2 = this.coordinateInRange(x, y, v, dmin2, this.ptXY); +if (d2 >= 0) { +if (this.ptXY.z < minz) { +if (pickFront) imesh = i; +minz = this.ptXY.z; +jminz = j; +}if (this.ptXY.z > maxz) { +if (!pickFront) imesh = i; +maxz = this.ptXY.z; +jmaxz = j; +}}} +} +if (imesh < 0) return null; +this.pickedMesh = this.isomeshes[imesh]; +this.setPropertySuper("thisID", this.pickedMesh.thisID, null); +var iFace = this.pickedVertex = (pickFront ? jminz : jmaxz); +var ptRet = new JU.P3(); +ptRet.setT((pickFront ? this.pickedMesh.vs[this.pickedVertex] : (this.pickedMesh).centers[iFace])); +this.pickedModel = this.pickedMesh.modelIndex; +var map = this.getPickedPoint(ptRet, this.pickedModel); +this.setStatusPicked(-4, ptRet, map); +return map; +}, "~N,~N,~N,JU.BS,~B"); +Clazz.defineMethod(c$, "isPickable", +function(m, bsVisible){ +return m.visibilityFlags != 0 && (m.modelIndex < 0 || bsVisible.get(m.modelIndex)) && !JU.C.isColixTranslucent(m.colix); +}, "J.shapesurface.IsosurfaceMesh,JU.BS"); +Clazz.defineMethod(c$, "findValue", +function(x, y, isPicking, bsVisible){ +var dmin2 = 100; +if (this.vwr.gdata.isAntialiased()) { +x <<= 1; +y <<= 1; +dmin2 <<= 1; +}var pickedVertex = -1; +var pickedContour = null; +var m = null; +for (var i = 0; i < this.meshCount; i++) { +m = this.isomeshes[i]; +if (!this.isPickable(m, bsVisible)) continue; +var vs = m.jvxlData.vContours; +var ilast = (m.firstRealVertex < 0 ? 0 : m.firstRealVertex); +var pickedJ = 0; +if (vs != null && vs.length > 0) { +for (var j = 0; j < vs.length; j++) { +var vc = vs[j]; +var n = vc.size() - 1; +for (var k = 6; k < n; k++) { +var v = vc.get(k); +var d2 = this.coordinateInRange(x, y, v, dmin2, this.ptXY); +if (d2 >= 0) { +dmin2 = d2; +pickedContour = vc; +pickedJ = j; +this.pickedMesh = m; +this.pickedPt = v; +}} +} +if (pickedContour != null) return pickedContour.get(2).toString() + (JU.Logger.debugging ? " " + pickedJ : ""); +} else if (m.jvxlData.jvxlPlane != null && m.vvs != null) { +var vertices = (m.mat4 == null && m.scale3d == 0 ? m.vs : m.getOffsetVertices(m.jvxlData.jvxlPlane)); +for (var k = m.vc; --k >= ilast; ) { +var v = vertices[k]; +var d2 = this.coordinateInRange(x, y, v, dmin2, this.ptXY); +if (d2 >= 0) { +dmin2 = d2; +pickedVertex = k; +this.pickedMesh = m; +this.pickedPt = v; +}} +if (pickedVertex != -1) break; +} else if (m.vvs != null) { +if (m.bsSlabDisplay != null) { +for (var k = m.bsSlabDisplay.nextSetBit(0); k >= 0; k = m.bsSlabDisplay.nextSetBit(k + 1)) { +var p = m.pis[k]; +if (p != null) for (var l = 0; l < 3; l++) { +var v = m.vs[p[l]]; +var d2 = this.coordinateInRange(x, y, v, dmin2, this.ptXY); +if (d2 >= 0) { +dmin2 = d2; +pickedVertex = p[l]; +this.pickedMesh = m; +this.pickedPt = v; +}} +} +} else { +for (var k = m.vc; --k >= ilast; ) { +var v = m.vs[k]; +var d2 = this.coordinateInRange(x, y, v, dmin2, this.ptXY); +if (d2 >= 0) { +dmin2 = d2; +pickedVertex = k; +this.pickedMesh = m; +this.pickedPt = v; +}} +}if (pickedVertex != -1) break; +}} +return (pickedVertex == -1 ? null : (JU.Logger.debugging ? "$" + m.thisID + "[" + (pickedVertex + 1) + "] " + m.vs[pickedVertex] + ": " : m.thisID + ": ") + m.vvs[pickedVertex]); +}, "~N,~N,~B,JU.BS"); +Clazz.defineMethod(c$, "getCmd", +function(index){ +var sb = new JU.SB().append("\n"); +this.getMeshCommand(sb, index); +return (sb.toString()); +}, "~N"); +Clazz.overrideMethod(c$, "getValues", +function(mesh){ +return (mesh == null ? null : (mesh).getValidValues(null)); +}, "J.shape.Mesh"); +Clazz.overrideMethod(c$, "getVertices", +function(mesh){ +return (mesh == null ? null : (mesh).getValidVertices(null)); +}, "J.shape.Mesh"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/IsosurfaceMesh.js b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/IsosurfaceMesh.js new file mode 100755 index 000000000000..aa07fe0d5ddc --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/IsosurfaceMesh.js @@ -0,0 +1,709 @@ +Clazz.declarePackage("J.shapesurface"); +Clazz.load(["J.shape.Mesh"], "J.shapesurface.IsosurfaceMesh", ["java.util.Hashtable", "JU.AU", "$.BS", "$.CU", "$.Lst", "$.M4", "$.P3", "$.P3i", "$.PT", "$.SB", "$.V3", "J.api.Interface", "J.jvxl.data.JvxlCoder", "$.JvxlData", "JS.T", "JU.C", "$.ColorEncoder", "$.Logger", "$.SimpleUnitCell", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.jvxlData = null; +this.vertexIncrement = 1; +this.firstRealVertex = -1; +this.dataType = 0; +this.hasGridPoints = false; +this.calculatedArea = null; +this.calculatedVolume = null; +this.info = null; +this.assocGridPointMap = null; +this.assocGridPointNormals = null; +this.mergeAssociatedNormalCount = 0; +this.centers = null; +this.contourValues = null; +this.contourColixes = null; +this.colorEncoder = null; +this.bsVdw = null; +this.colorPhased = false; +this.probeValues = null; +Clazz.instantialize(this, arguments);}, J.shapesurface, "IsosurfaceMesh", J.shape.Mesh); +Clazz.makeConstructor(c$, +function(vwr, thisID, colix, index){ +Clazz.superConstructor (this, J.shapesurface.IsosurfaceMesh, []); +this.mesh1(vwr, thisID, colix, index); +this.jvxlData = new J.jvxl.data.JvxlData(); +this.checkByteCount = 2; +this.jvxlData.version = JV.Viewer.getJmolVersion(); +}, "JV.Viewer,~S,~N,~N"); +Clazz.overrideMethod(c$, "getResolution", +function(){ +return 1 / this.jvxlData.pointsPerAngstrom; +}); +Clazz.defineMethod(c$, "clearType", +function(meshType, iAddGridPoints){ +this.clear(meshType); +this.jvxlData.clear(); +this.assocGridPointMap = null; +this.assocGridPointNormals = null; +this.bsVdw = null; +this.calculatedVolume = null; +this.calculatedArea = null; +this.centers = null; +this.colorEncoder = null; +this.colorPhased = false; +this.colorsExplicit = false; +this.firstRealVertex = -1; +this.hasGridPoints = iAddGridPoints; +this.isColorSolid = true; +this.mergeAssociatedNormalCount = 0; +this.nSets = 0; +this.pcs = null; +this.showPoints = iAddGridPoints; +this.surfaceSet = null; +this.vcs = null; +this.vertexColorMap = null; +this.vertexIncrement = 1; +this.vertexSets = null; +this.vvs = null; +}, "~S,~B"); +Clazz.defineMethod(c$, "allocVertexColixes", +function(){ +if (this.vcs == null) { +this.vcs = Clazz.newShortArray (this.vc, 0); +for (var i = this.vc; --i >= 0; ) this.vcs[i] = this.colix; + +}this.isColorSolid = false; +}); +Clazz.defineMethod(c$, "addVertexCopy", +function(vertex, value, assocVertex, associateNormals, asCopy){ +var vPt = this.addVCVal(vertex, value, asCopy); +switch (assocVertex) { +case -1: +if (this.firstRealVertex < 0) this.firstRealVertex = vPt; +break; +case -2: +this.hasGridPoints = true; +break; +case -3: +this.vertexIncrement = 3; +break; +default: +if (this.firstRealVertex < 0) this.firstRealVertex = vPt; +if (associateNormals) { +if (this.assocGridPointMap == null) this.assocGridPointMap = new java.util.Hashtable(); +this.assocGridPointMap.put(Integer.$valueOf(vPt), Integer.$valueOf(assocVertex + this.mergeAssociatedNormalCount)); +}} +return vPt; +}, "JU.T3,~N,~N,~B,~B"); +Clazz.overrideMethod(c$, "setTranslucent", +function(isTranslucent, iLevel){ +this.colix = JU.C.getColixTranslucent3(this.colix, isTranslucent, iLevel); +if (this.vcs != null) for (var i = this.vc; --i >= 0; ) this.vcs[i] = JU.C.getColixTranslucent3(this.vcs[i], isTranslucent, iLevel); + +}, "~B,~N"); +Clazz.defineMethod(c$, "setMerged", +function(TF){ +this.isMerged = TF; +this.mergePolygonCount0 = (TF ? this.pc : 0); +this.mergeVertexCount0 = (TF ? this.vc : 0); +if (TF) { +this.mergeAssociatedNormalCount += this.jvxlData.nPointsX * this.jvxlData.nPointsY * this.jvxlData.nPointsZ; +this.assocGridPointNormals = null; +}}, "~B"); +Clazz.overrideMethod(c$, "sumVertexNormals", +function(vertices, vectorSums){ +J.shape.Mesh.sumVertexNormals2(this, vertices, vectorSums); +if (this.assocGridPointMap != null && vectorSums.length > 0 && !this.isMerged) { +if (this.assocGridPointNormals == null) this.assocGridPointNormals = new java.util.Hashtable(); +for (var entry, $entry = this.assocGridPointMap.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +var gridPoint = entry.getValue(); +if (!this.assocGridPointNormals.containsKey(gridPoint)) this.assocGridPointNormals.put(gridPoint, JU.V3.new3(0, 0, 0)); +this.assocGridPointNormals.get(gridPoint).add(vectorSums[entry.getKey().intValue()]); +} +for (var entry, $entry = this.assocGridPointMap.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) vectorSums[entry.getKey().intValue()] = this.assocGridPointNormals.get(entry.getValue()); + +}}, "~A,~A"); +Clazz.defineMethod(c$, "getCenters", +function(){ +if (this.centers != null) return this.centers; +this.centers = new Array(this.pc); +for (var i = 0; i < this.pc; i++) { +var p = this.pis[i]; +if (p == null) continue; +var pt = this.centers[i] = JU.P3.newP(this.vs[p[0]]); +pt.add(this.vs[p[1]]); +pt.add(this.vs[p[2]]); +pt.scale(0.33333334); +} +return this.centers; +}); +Clazz.defineMethod(c$, "getContours", +function(){ +var n = this.jvxlData.nContours; +if (n == 0 || this.pis == null) return null; +this.havePlanarContours = (this.jvxlData.jvxlPlane != null); +if (this.havePlanarContours) return null; +if (n < 0) n = -1 - n; +var vContours = this.jvxlData.vContours; +if (vContours != null) { +for (var i = 0; i < n; i++) { +if (vContours[i].size() > 6) return this.jvxlData.vContours; +J.jvxl.data.JvxlCoder.set3dContourVector(vContours[i], this.pis, this.vs); +} +return this.jvxlData.vContours; +}vContours = new Array(n); +for (var i = 0; i < n; i++) { +vContours[i] = new JU.Lst(); +} +if (this.jvxlData.contourValuesUsed == null) { +var dv = (this.jvxlData.valueMappedToBlue - this.jvxlData.valueMappedToRed) / (n + 1); +for (var i = 0; i < n; i++) { +var value = this.jvxlData.valueMappedToRed + (i + 1) * dv; +J.shapesurface.IsosurfaceMesh.get3dContour(this, vContours[i], value, this.jvxlData.contourColixes[i]); +} +JU.Logger.info(n + " contour lines; separation = " + dv); +} else { +for (var i = 0; i < n; i++) { +var value = this.jvxlData.contourValuesUsed[i]; +J.shapesurface.IsosurfaceMesh.get3dContour(this, vContours[i], value, this.jvxlData.contourColixes[i]); +} +}this.jvxlData.contourColixes = Clazz.newShortArray (n, 0); +this.jvxlData.contourValues = Clazz.newFloatArray (n, 0); +for (var i = 0; i < n; i++) { +this.jvxlData.contourValues[i] = (vContours[i].get(2)).floatValue(); +this.jvxlData.contourColixes[i] = (vContours[i].get(3))[0]; +} +return this.jvxlData.vContours = vContours; +}); +Clazz.defineMethod(c$, "getPmeshData", +function(isBinary){ +var mw = J.api.Interface.getInterface("J.shapesurface.PMeshWriter", this.vwr, "script"); +return mw.write(this, isBinary); +}, "~B"); +c$.get3dContour = Clazz.defineMethod(c$, "get3dContour", +function(m, v, value, colix){ +var bsContour = JU.BS.newN(m.pc); +var fData = new JU.SB(); +var color = JU.C.getArgb(colix); +J.shapesurface.IsosurfaceMesh.setContourVector(v, m.pc, bsContour, value, colix, color, fData); +for (var i = 0; i < m.pc; i++) if (m.setABC(i) != null) J.shapesurface.IsosurfaceMesh.addContourPoints(v, bsContour, i, fData, m.vs, m.vvs, m.iA, m.iB, m.iC, value); + +}, "J.shapesurface.IsosurfaceMesh,JU.Lst,~N,~N"); +c$.setContourVector = Clazz.defineMethod(c$, "setContourVector", +function(v, nPolygons, bsContour, value, colix, color, fData){ +v.add(0, Integer.$valueOf(nPolygons)); +v.add(1, bsContour); +v.add(2, Float.$valueOf(value)); +v.add(3, Clazz.newShortArray(-1, [colix])); +v.add(4, Clazz.newIntArray(-1, [color])); +v.add(5, fData); +}, "JU.Lst,~N,JU.BS,~N,~N,~N,JU.SB"); +c$.addContourPoints = Clazz.defineMethod(c$, "addContourPoints", +function(v, bsContour, i, fData, vertices, vertexValues, iA, iB, iC, value){ +var pt1 = null; +var pt2 = null; +var type = 0; +var f1 = J.shapesurface.IsosurfaceMesh.checkPt(vertexValues, iA, iB, value); +if (!Float.isNaN(f1)) { +pt1 = J.shapesurface.IsosurfaceMesh.getContourPoint(vertices, iA, iB, f1); +type |= 1; +}var f2 = (f1 == 1 ? NaN : J.shapesurface.IsosurfaceMesh.checkPt(vertexValues, iB, iC, value)); +if (!Float.isNaN(f2)) { +pt2 = J.shapesurface.IsosurfaceMesh.getContourPoint(vertices, iB, iC, f2); +if (type == 0) { +pt1 = pt2; +f1 = f2; +}type |= 2; +}switch (type) { +case 0: +return; +case 1: +if (f1 == 0) return; +case 2: +f2 = (f2 == 1 ? NaN : J.shapesurface.IsosurfaceMesh.checkPt(vertexValues, iC, iA, value)); +if (!Float.isNaN(f2)) { +pt2 = J.shapesurface.IsosurfaceMesh.getContourPoint(vertices, iC, iA, f2); +type |= 4; +}break; +} +switch (type) { +case 3: +case 5: +case 6: +break; +default: +return; +} +bsContour.set(i); +J.jvxl.data.JvxlCoder.appendContourTriangleIntersection(type, f1, f2, fData); +v.addLast(pt1); +v.addLast(pt2); +}, "JU.Lst,JU.BS,~N,JU.SB,~A,~A,~N,~N,~N,~N"); +c$.checkPt = Clazz.defineMethod(c$, "checkPt", +function(vertexValues, i, j, v){ +var v1; +var v2; +return (v == (v1 = vertexValues[i]) ? 0 : v == (v2 = vertexValues[j]) ? 1 : (v1 < v) == (v < v2) ? (v - v1) / (v2 - v1) : NaN); +}, "~A,~N,~N,~N"); +c$.getContourPoint = Clazz.defineMethod(c$, "getContourPoint", +function(vertices, i, j, f){ +var pt = new JU.P3(); +pt.sub2(vertices[j], vertices[i]); +pt.scaleAdd2(f, pt, vertices[i]); +return pt; +}, "~A,~N,~N,~N"); +Clazz.defineMethod(c$, "setDiscreteColixes", +function(values, colixes){ +if (values != null) this.jvxlData.contourValues = values; +if (values == null || values.length == 0) values = this.jvxlData.contourValues = this.jvxlData.contourValuesUsed; +if (colixes == null && this.jvxlData.contourColixes != null) { +colixes = this.jvxlData.contourColixes; +} else { +this.jvxlData.contourColixes = colixes; +this.jvxlData.contourColors = JU.C.getHexCodes(colixes); +}if (this.vs == null || this.vvs == null || values == null) return; +var n = values.length; +var vMax = values[n - 1]; +this.colorCommand = null; +var haveColixes = (colixes != null && colixes.length > 0); +this.isColorSolid = (haveColixes && this.jvxlData.jvxlPlane != null); +if (this.jvxlData.vContours != null) { +if (haveColixes) for (var i = 0; i < this.jvxlData.vContours.length; i++) { +var colix = colixes[i % colixes.length]; +(this.jvxlData.vContours[i].get(3))[0] = colix; +(this.jvxlData.vContours[i].get(4))[0] = JU.C.getArgb(colix); +} +return; +}var defaultColix = 0; +this.pcs = Clazz.newShortArray (this.pc, 0); +this.colorsExplicit = false; +for (var i = 0; i < this.pc; i++) { +var p = this.pis[i]; +if (p == null) continue; +this.pcs[i] = defaultColix; +var v = (this.vvs[p[0]] + this.vvs[p[1]] + this.vvs[p[2]]) / 3; +for (var j = n; --j >= 0; ) { +if (v >= values[j] && v < vMax) { +this.pcs[i] = (haveColixes ? colixes[j % colixes.length] : 0); +break; +}} +} +}, "~A,~A"); +Clazz.defineMethod(c$, "getContourList", +function(vwr){ +var ht = new java.util.Hashtable(); +ht.put("values", (this.jvxlData.contourValuesUsed == null ? this.jvxlData.contourValues : this.jvxlData.contourValuesUsed)); +var colors = new JU.Lst(); +if (this.jvxlData.contourColixes != null) { +for (var i = 0; i < this.jvxlData.contourColixes.length; i++) { +colors.addLast(JU.CU.colorPtFromInt(JU.C.getArgb(this.jvxlData.contourColixes[i]), null)); +} +ht.put("colors", colors); +}return ht; +}, "JV.Viewer"); +Clazz.defineMethod(c$, "deleteContours", +function(){ +this.jvxlData.contourValuesUsed = null; +this.jvxlData.contourValues = null; +this.jvxlData.contourColixes = null; +this.jvxlData.vContours = null; +}); +Clazz.defineMethod(c$, "setVertexColorMap", +function(){ +this.vertexColorMap = new java.util.Hashtable(); +var lastColix = -999; +var bs = null; +for (var i = this.vc; --i >= 0; ) { +var c = this.vcs[i]; +if (c != lastColix) { +var color = JU.C.getHexCode(lastColix = c); +bs = this.vertexColorMap.get(color); +if (bs == null) this.vertexColorMap.put(color, bs = new JU.BS()); +}bs.set(i); +} +}); +Clazz.defineMethod(c$, "setVertexColixesForAtoms", +function(vwr, colixes, atomMap, bs){ +this.jvxlData.vertexDataOnly = true; +this.jvxlData.vertexColors = Clazz.newIntArray (this.vc, 0); +this.jvxlData.nVertexColors = this.vc; +var atoms = vwr.ms.at; +var gdata = vwr.gdata; +for (var i = this.mergeVertexCount0; i < this.vc; i++) { +var iAtom = this.vertexSource[i]; +if (iAtom < 0 || !bs.get(iAtom)) continue; +this.jvxlData.vertexColors[i] = gdata.getColorArgbOrGray(this.vcs[i] = JU.C.copyColixTranslucency(this.colix, atoms[iAtom].colixAtom)); +var colix = (colixes == null ? 0 : colixes[atomMap[iAtom]]); +if (colix == 0) colix = atoms[iAtom].colixAtom; +this.vcs[i] = JU.C.copyColixTranslucency(this.colix, colix); +} +}, "JV.Viewer,~A,~A,JU.BS"); +Clazz.defineMethod(c$, "colorVertices", +function(colix, bs, isAtoms){ +if (this.vertexSource == null) return; +colix = JU.C.copyColixTranslucency(this.colix, colix); +var bsVertices = (isAtoms ? new JU.BS() : bs); +this.checkAllocColixes(); +if (isAtoms) for (var i = 0; i < this.vc; i++) { +var pt = this.vertexSource[i]; +if (pt >= 0 && bs.get(pt)) { +this.vcs[i] = colix; +if (bsVertices != null) bsVertices.set(i); +}} + else for (var i = 0; i < this.vc; i++) if (bsVertices.get(i)) this.vcs[i] = colix; + +if (!isAtoms) { +return; +}var color = JU.C.getHexCode(colix); +if (this.vertexColorMap == null) this.vertexColorMap = new java.util.Hashtable(); +J.shapesurface.IsosurfaceMesh.addColorToMap(this.vertexColorMap, color, bs); +}, "~N,JU.BS,~B"); +Clazz.defineMethod(c$, "checkAllocColixes", +function(){ +if (this.vcs == null || this.vertexColorMap == null && this.isColorSolid) this.allocVertexColixes(); +this.isColorSolid = false; +}); +c$.addColorToMap = Clazz.defineMethod(c$, "addColorToMap", +function(colorMap, color, bs){ +var bsMap = null; +for (var entry, $entry = colorMap.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) if (entry.getKey() === color) { +bsMap = entry.getValue(); +bsMap.or(bs); +} else { +entry.getValue().andNot(bs); +} +if (bsMap == null) colorMap.put(color, bs); +}, "java.util.Map,~S,JU.BS"); +Clazz.defineMethod(c$, "setJvxlColorMap", +function(isAll){ +this.jvxlData.diameter = this.diameter; +this.jvxlData.color = JU.C.getHexCode(this.colix); +this.jvxlData.meshColor = (this.meshColix == 0 ? null : JU.C.getHexCode(this.meshColix)); +this.jvxlData.translucency = ((this.colix & 30720) == 30720 ? -1 : JU.C.getColixTranslucencyFractional(this.colix)); +this.jvxlData.rendering = this.getRendering().substring(1); +this.jvxlData.colorScheme = (this.colorEncoder == null ? null : this.colorEncoder.getColorScheme()); +if (this.jvxlData.vertexColors == null) this.jvxlData.nVertexColors = (this.vertexColorMap == null ? 0 : this.vertexColorMap.size()); +if (this.vertexColorMap == null || this.vertexSource == null || !isAll) return; +if (this.jvxlData.vertexColorMap == null) this.jvxlData.vertexColorMap = new java.util.Hashtable(); +for (var entry, $entry = this.vertexColorMap.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +var bsMap = entry.getValue(); +if (bsMap.isEmpty()) continue; +var color = entry.getKey(); +var bs = new JU.BS(); +for (var i = 0; i < this.vc; i++) if (bsMap.get(this.vertexSource[i])) bs.set(i); + +J.shapesurface.IsosurfaceMesh.addColorToMap(this.jvxlData.vertexColorMap, color, bs); +} +this.jvxlData.nVertexColors = this.jvxlData.vertexColorMap.size(); +if (this.jvxlData.vertexColorMap.size() == 0) this.jvxlData.vertexColorMap = null; +}, "~B"); +Clazz.defineMethod(c$, "setColorCommand", +function(){ +if (this.colorEncoder == null || (this.colorCommand = this.colorEncoder.getColorScheme()) == null) return; +if (this.colorCommand.equals("inherit")) { +this.colorCommand = "#inherit;"; +return; +}this.colorCommand = "color $" + JU.PT.esc(this.thisID) + JU.PT.esc(this.colorCommand) + " range " + (this.jvxlData.isColorReversed ? this.jvxlData.valueMappedToBlue + " " + this.jvxlData.valueMappedToRed : this.jvxlData.valueMappedToRed + " " + this.jvxlData.valueMappedToBlue); +}); +Clazz.defineMethod(c$, "setColorsFromJvxlData", +function(colorRgb){ +this.diameter = this.jvxlData.diameter; +if (colorRgb == -1) { +} else if (colorRgb != -2147483648 && colorRgb != 2147483647) { +this.colix = JU.C.getColix(colorRgb); +} else if (this.jvxlData.color != null) { +this.colix = JU.C.getColixS(this.jvxlData.color); +}if (this.colix == 0) this.colix = 5; +this.colix = JU.C.getColixTranslucent3(this.colix, this.jvxlData.translucency != 0, this.jvxlData.translucency); +var translucencyLevel = (this.jvxlData.translucency == 0 ? NaN : this.jvxlData.translucency); +if (this.jvxlData.meshColor != null) this.meshColix = JU.C.getColixS(this.jvxlData.meshColor); +this.setJvxlDataRendering(); +this.isColorSolid = !this.jvxlData.isBicolorMap && this.jvxlData.vertexColors == null && this.jvxlData.vertexColorMap == null; +if (this.colorEncoder == null) return false; +if (this.jvxlData.vertexColorMap == null) { +if (this.jvxlData.colorScheme != null) { +var colorScheme = this.jvxlData.colorScheme; +var isTranslucent = colorScheme.startsWith("translucent "); +if (isTranslucent) { +colorScheme = colorScheme.substring(12); +translucencyLevel = NaN; +}this.colorEncoder.setColorScheme(colorScheme, isTranslucent); +this.remapColors(null, null, translucencyLevel); +}} else { +if (this.jvxlData.baseColor != null) { +for (var i = this.vc; --i >= 0; ) this.vcs[i] = this.colix; + +}for (var entry, $entry = this.jvxlData.vertexColorMap.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +var bsMap = entry.getValue(); +var colix = JU.C.copyColixTranslucency(this.colix, JU.C.getColixS(entry.getKey())); +for (var i = bsMap.nextSetBit(0); i >= 0; i = bsMap.nextSetBit(i + 1)) this.vcs[i] = colix; + +} +}return true; +}, "~N"); +Clazz.defineMethod(c$, "setJvxlDataRendering", +function(){ +if (this.jvxlData.rendering != null) { +var tokens = JU.PT.getTokens(this.jvxlData.rendering); +for (var i = 0; i < tokens.length; i++) this.setTokenProperty(JS.T.getTokFromName(tokens[i]), true); + +}}); +Clazz.defineMethod(c$, "remapColors", +function(vwr, ce, translucentLevel){ +if (ce == null) ce = this.colorEncoder; +if (ce == null) ce = this.colorEncoder = new JU.ColorEncoder(null, vwr); +this.colorEncoder = ce; +this.setColorCommand(); +if (Float.isNaN(translucentLevel)) { +translucentLevel = JU.C.getColixTranslucencyLevel(this.colix); +} else { +this.colix = JU.C.getColixTranslucent3(this.colix, true, translucentLevel); +}var min = ce.lo; +var max = ce.hi; +var inherit = (this.vertexSource != null && ce.currentPalette == 15); +this.vertexColorMap = null; +this.pcs = null; +this.colorsExplicit = false; +this.jvxlData.baseColor = null; +this.jvxlData.vertexCount = this.vc; +if (this.vvs == null || this.jvxlData.vertexCount == 0) return; +if (this.vcs == null || this.vcs.length != this.vc) this.allocVertexColixes(); +if (inherit) { +this.jvxlData.vertexDataOnly = true; +this.jvxlData.vertexColors = Clazz.newIntArray (this.vc, 0); +this.jvxlData.nVertexColors = this.vc; +var atoms = vwr.ms.at; +var gdata = vwr.gdata; +for (var i = this.mergeVertexCount0; i < this.vc; i++) { +var pt = this.vertexSource[i]; +if (pt >= 0 && pt < atoms.length) this.jvxlData.vertexColors[i] = gdata.getColorArgbOrGray(this.vcs[i] = JU.C.copyColixTranslucency(this.colix, atoms[pt].colixAtom)); +} +return; +}this.jvxlData.vertexColors = null; +this.jvxlData.vertexColorMap = null; +if (this.jvxlData.isBicolorMap) { +for (var i = this.mergeVertexCount0; i < this.vc; i++) this.vcs[i] = JU.C.copyColixTranslucency(this.colix, this.vvs[i] < 0 ? this.jvxlData.minColorIndex : this.jvxlData.maxColorIndex); + +return; +}this.jvxlData.isColorReversed = ce.isReversed; +if (max != 3.4028235E38) { +this.jvxlData.valueMappedToRed = min; +this.jvxlData.valueMappedToBlue = max; +}ce.setRange(this.jvxlData.valueMappedToRed, this.jvxlData.valueMappedToBlue, this.jvxlData.isColorReversed); +var isTranslucent = JU.C.isColixTranslucent(this.colix); +if (ce.isTranslucent) { +if (!isTranslucent) this.colix = JU.C.getColixTranslucent3(this.colix, true, 0.5); +isTranslucent = false; +}this.vcs = JU.AU.ensureLengthShort(this.vcs, this.vc); +for (var i = this.vc; --i >= this.mergeVertexCount0; ) this.vcs[i] = ce.getColorIndex(this.vvs[i]); + +this.setTranslucent(isTranslucent, translucentLevel); +this.colorEncoder = ce; +var contours = this.getContours(); +if (contours != null) { +for (var i = contours.length; --i >= 0; ) { +var value = (contours[i].get(2)).floatValue(); +var colix = (contours[i].get(3)); +colix[0] = ce.getColorIndex(value); +var color = (contours[i].get(4)); +color[0] = JU.C.getArgb(colix[0]); +} +}if (this.contourValues != null) { +this.contourColixes = Clazz.newShortArray (this.contourValues.length, 0); +for (var i = 0; i < this.contourValues.length; i++) this.contourColixes[i] = ce.getColorIndex(this.contourValues[i]); + +this.setDiscreteColixes(null, null); +}this.jvxlData.isJvxlPrecisionColor = true; +J.jvxl.data.JvxlCoder.jvxlCreateColorData(this.jvxlData, this.vvs); +this.setColorCommand(); +this.isColorSolid = false; +}, "JV.Viewer,JU.ColorEncoder,~N"); +Clazz.defineMethod(c$, "reinitializeLightingAndColor", +function(vwr){ +this.initialize(this.lighting, null, null); +if (this.colorEncoder != null || this.jvxlData.isBicolorMap) { +this.vcs = null; +this.remapColors(vwr, null, NaN); +}}, "JV.Viewer"); +Clazz.overrideMethod(c$, "getBoundingBox", +function(){ +return this.jvxlData.boundingBox; +}); +Clazz.overrideMethod(c$, "setBoundingBox", +function(pts){ +this.jvxlData.boundingBox = pts; +}, "~A"); +Clazz.defineMethod(c$, "merge", +function(m){ +var nV = this.vc + (m == null ? 0 : m.vc); +if (this.pis == null) this.pis = Clazz.newIntArray (0, 0, 0); +if (m != null && m.pis == null) m.pis = Clazz.newIntArray (0, 0, 0); +var nP = (this.bsSlabDisplay == null || this.pc == 0 ? this.pc : this.bsSlabDisplay.cardinality()) + (m == null || m.pc == 0 ? 0 : m.bsSlabDisplay == null ? m.pc : m.bsSlabDisplay.cardinality()); +if (this.vs == null) this.vs = new Array(0); +this.vs = JU.AU.ensureLength(this.vs, nV); +this.vvs = JU.AU.ensureLengthA(this.vvs, nV); +var haveSources = (this.vertexSource != null && (m == null || m.vertexSource != null)); +this.vertexSource = JU.AU.ensureLengthI(this.vertexSource, nV); +var newPolygons = JU.AU.newInt2(nP); +var ipt = J.shapesurface.IsosurfaceMesh.mergePolygons(this, 0, 0, newPolygons); +if (m != null) { +ipt = J.shapesurface.IsosurfaceMesh.mergePolygons(m, ipt, this.vc, newPolygons); +for (var i = 0; i < m.vc; i++, this.vc++) { +this.vs[this.vc] = m.vs[i]; +this.vvs[this.vc] = m.vvs[i]; +if (haveSources) this.vertexSource[this.vc] = m.vertexSource[i]; +} +}this.pc = this.polygonCount0 = nP; +this.vc = this.vertexCount0 = nV; +if (nP > 0) this.resetSlab(); +this.pis = newPolygons; +}, "J.jvxl.data.MeshData"); +c$.mergePolygons = Clazz.defineMethod(c$, "mergePolygons", +function(m, ipt, vertexCount, newPolygons){ +var p; +for (var i = 0; i < m.pc; i++) { +if ((p = m.pis[i]) == null || m.bsSlabDisplay != null && !m.bsSlabDisplay.get(i)) continue; +newPolygons[ipt++] = m.pis[i]; +if (vertexCount > 0) for (var j = 0; j < 3; j++) p[j] += vertexCount; + +} +return ipt; +}, "JU.MeshSurface,~N,~N,~A"); +Clazz.overrideMethod(c$, "getUnitCell", +function(){ +return (this.unitCell != null || (this.unitCell = this.vwr.ms.am[this.modelIndex].biosymmetry) != null || (this.unitCell = this.vwr.ms.getUnitCell(this.modelIndex)) != null || this.oabc != null && (this.unitCell = this.vwr.getSymTemp().getUnitCell(this.oabc, true, null)) != null ? this.unitCell : null); +}); +Clazz.defineMethod(c$, "fixLattice", +function(){ +if (this.getUnitCell() == null) return; +var minXYZ = new JU.P3i(); +var maxXYZ = JU.P3i.new3(Clazz.floatToInt(this.lattice.x), Clazz.floatToInt(this.lattice.y), Clazz.floatToInt(this.lattice.z)); +this.jvxlData.fixedLattice = this.lattice; +this.lattice = null; +JU.SimpleUnitCell.setMinMaxLatticeParameters(Clazz.floatToInt(this.unitCell.getUnitCellInfoType(6)), minXYZ, maxXYZ, 0); +var nCells = (maxXYZ.x - minXYZ.x) * (maxXYZ.y - minXYZ.y) * (maxXYZ.z - minXYZ.z); +var latticeOffset = new JU.P3(); +var vc0 = this.vc; +var vcNew = nCells * this.vc; +this.vs = JU.AU.arrayCopyPt(this.vs, vcNew); +this.vvs = (this.vvs == null ? null : JU.AU.ensureLengthA(this.vvs, vcNew)); +var pc0 = this.pc; +var pcNew = nCells * this.pc; +this.pis = JU.AU.arrayCopyII(this.pis, pcNew); +var off = 0; +this.normixes = JU.AU.arrayCopyShort(this.normixes, vcNew); +for (var tx = minXYZ.x; tx < maxXYZ.x; tx++) for (var ty = minXYZ.y; ty < maxXYZ.y; ty++) for (var tz = minXYZ.z; tz < maxXYZ.z; tz++) { +if (tx == 0 && ty == 0 && tz == 0) continue; +latticeOffset.set(tx, ty, tz); +this.unitCell.toCartesian(latticeOffset, false); +for (var i = 0; i < vc0; i++) { +this.normixes[this.vc] = this.normixes[i]; +var v = JU.P3.newP(this.vs[i]); +v.add(latticeOffset); +this.addVCVal(v, this.vvs[i], false); +} +off += vc0; +for (var i = 0; i < pc0; i++) { +var p = JU.AU.arrayCopyI(this.pis[i], -1); +p[0] += off; +p[1] += off; +p[2] += off; +this.addPolygon(p, null); +} +} + + +var xyzMin = new JU.P3(); +var xyzMax = new JU.P3(); +this.setBox(xyzMin, xyzMax); +this.jvxlData.boundingBox = Clazz.newArray(-1, [xyzMin, xyzMax]); +}); +Clazz.overrideMethod(c$, "getMinDistance2ForVertexGrouping", +function(){ +if (this.jvxlData.boundingBox != null && this.jvxlData.boundingBox[0] != null) { +var d2 = this.jvxlData.boundingBox[1].distanceSquared(this.jvxlData.boundingBox[0]); +if (d2 < 5) return 1e-10; +}return 1e-8; +}); +Clazz.overrideMethod(c$, "getVisibleVertexBitSet", +function(){ +var bs = this.getVisibleVBS(); +if (this.jvxlData.thisSet != null) for (var i = 0; i < this.vc; i++) if (!this.jvxlData.thisSet.get(this.vertexSets[i])) bs.clear(i); + +return bs; +}); +Clazz.defineMethod(c$, "updateCoordinates", +function(m, bs){ +var doUpdate = (bs == null || this.isModelConnected); +if (!doUpdate) for (var i = 0; i < this.connectedAtoms.length; i++) if (this.connectedAtoms[i] >= 0 && bs.get(this.connectedAtoms[i])) { +doUpdate = true; +break; +} +if (!doUpdate) return; +if (this.isModelConnected) { +this.mat4 = this.vwr.ms.am[this.modelIndex].mat4; +} else { +if (this.mat4 == null) this.mat4 = JU.M4.newM4(null); +this.mat4.mul2(m, this.mat4); +}this.recalcAltVertices = true; +}, "JU.M4,JU.BS"); +Clazz.defineMethod(c$, "getDataMinMax", +function(){ +var min = 3.4028235E38; +var max = -3.4028235E38; +for (var i = this.vvs.length; --i >= 0; ) { +var v = this.vvs[i]; +if (v < min) min = v; +if (v > max) max = v; +} +return Clazz.newFloatArray(-1, [min, max]); +}); +Clazz.defineMethod(c$, "getDataRange", +function(){ +return (this.jvxlData.jvxlPlane != null && this.colorEncoder == null ? null : Clazz.newFloatArray(-1, [this.jvxlData.mappedDataMin, this.jvxlData.mappedDataMax, (this.jvxlData.isColorReversed ? this.jvxlData.valueMappedToBlue : this.jvxlData.valueMappedToRed), (this.jvxlData.isColorReversed ? this.jvxlData.valueMappedToRed : this.jvxlData.valueMappedToBlue)])); +}); +Clazz.defineMethod(c$, "getInfo", +function(isAll){ +var info = Clazz.superCall(this, J.shapesurface.IsosurfaceMesh, "getInfo", [isAll]); +if (isAll) { +var bs = new JU.BS(); +var valid = this.getValidVertices(bs); +if (valid != null) { +info.put("allVertices", info.get("vertices")); +info.put("vertices", valid); +var values = info.get("vertexValues"); +if (values != null) { +var v = this.getValidValues(bs); +info.put("allValues", values); +info.put("vertexValues", v); +}}}return info; +}, "~B"); +Clazz.defineMethod(c$, "getValidValues", +function(bs){ +if (bs == null) this.getInvalidBS(bs = new JU.BS()); +var n = this.vc - bs.cardinality(); +var v = Clazz.newFloatArray (n, 0); +for (var pt = 0, i = bs.nextClearBit(0); i >= 0 && i < this.vc; i = bs.nextClearBit(i + 1)) v[pt++] = this.vvs[i]; + +return v; +}, "JU.BS"); +Clazz.defineMethod(c$, "getValidVertices", +function(bs){ +var allowNull = (bs != null); +if (bs == null) bs = new JU.BS(); +this.getInvalidBS(bs); +var n = this.vc - bs.cardinality(); +if (n == this.vc && allowNull) { +return null; +}var pa = new Array(n); +for (var pt = 0, i = bs.nextClearBit(0); i >= 0 && pt < n; i = bs.nextClearBit(i + 1)) { +pa[pt++] = this.vs[i]; +} +return pa; +}, "JU.BS"); +Clazz.defineMethod(c$, "getInvalidBS", +function(bs){ +var excluded = this.jvxlData.jvxlExcluded; +var invalid = excluded[1]; +var thisSet = this.jvxlData.thisSet; +if (invalid != null) bs.or(invalid); +if (thisSet != null) { +for (var i = this.vc; --i >= 0; ) { +if (!thisSet.get(this.vertexSets[i])) bs.set(i); +} +}}, "JU.BS"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/LcaoCartoon.js b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/LcaoCartoon.js new file mode 100755 index 000000000000..aaa936cab1bd --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/LcaoCartoon.js @@ -0,0 +1,221 @@ +Clazz.declarePackage("J.shapesurface"); +Clazz.load(["J.shapesurface.Isosurface"], "J.shapesurface.LcaoCartoon", ["JU.PT", "$.SB", "$.V3", "JU.C", "$.Escape"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.thisType = null; +this.myColorPt = 0; +this.lcaoID = null; +this.thisSet = null; +this.isMolecular = false; +this.rotationAxis = null; +this.lcaoScale = null; +this.lcaoTranslucent = false; +this.lcaoTranslucentLevel = 0; +this.lcaoColorPos = null; +this.lcaoColorNeg = null; +this.lcaoReverseColor = false; +this.isLonePair = false; +this.isRadical = false; +this.cappingObject = null; +this.slabbingObject = null; +this.fullCommand = null; +Clazz.instantialize(this, arguments);}, J.shapesurface, "LcaoCartoon", J.shapesurface.Isosurface); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shapesurface.LcaoCartoon, "initShape", []); +this.myType = "lcaoCartoon"; +this.allowMesh = false; +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +var setInfo = false; +if ("init" === propertyName) { +this.myColorPt = 0; +this.lcaoID = null; +this.thisSet = bs; +this.isMolecular = this.isLonePair = this.isRadical = false; +this.thisType = null; +this.rotationAxis = null; +this.fullCommand = value; +this.setPropI("init", null, null); +return; +}if ("lcaoID" === propertyName) { +this.lcaoID = value; +return; +}if ("thisID" === propertyName) { +this.lcaoID = value; +}if ("selectType" === propertyName) { +this.thisType = value; +return; +}if ("rotationAxis" === propertyName) { +this.rotationAxis = value; +return; +}if ("scale" === propertyName) { +this.lcaoScale = value; +}if ("colorRGB" === propertyName) { +this.lcaoColorPos = value; +if (this.myColorPt++ == 0) this.lcaoColorNeg = this.lcaoColorPos; +}if ("select" === propertyName) { +this.thisSet = value; +}if ("translucentLevel" === propertyName) { +this.lcaoTranslucentLevel = (value).floatValue(); +}if ("settranslucency" === propertyName) { +this.lcaoTranslucent = ((value).equals("translucent")); +return; +}if ("translucency" === propertyName) { +this.lcaoTranslucent = ((value).equals("translucent")); +if (this.lcaoID == null) return; +}if ("molecular" === propertyName) { +this.isMolecular = true; +if (value == null) return; +propertyName = "create"; +}if ("create" === propertyName) { +this.myColorPt = 0; +this.thisType = value; +this.createLcaoCartoon(); +return; +}if ("lonePair" === propertyName) { +this.isLonePair = true; +return; +}if ("lp" === propertyName) { +this.isLonePair = setInfo = true; +}if ("radical" === propertyName) { +this.isRadical = true; +return; +}if ("rad" === propertyName) { +this.isRadical = setInfo = true; +}if ("delete" === propertyName) { +this.deleteLcaoCartoon(); +return; +}if ("on" === propertyName) { +this.setLcaoOn(true); +return; +}if ("off" === propertyName) { +this.setLcaoOn(false); +return; +}if ("slab" === propertyName) { +this.slabbingObject = value; +}if ("cap" === propertyName) { +this.cappingObject = value; +}if ("lobe" === propertyName || "sphere" === propertyName) { +this.getCapSlabInfo(this.fullCommand); +}this.setPropI(propertyName, value, bs); +if (setInfo || "lobe" === propertyName || "sphere" === propertyName) { +this.setScriptInfo(null); +}}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "setLcaoOn", +function(TF){ +if (JU.PT.isWild(this.lcaoID)) { +var list = this.getMeshList(this.lcaoID, false); +for (var i = list.size(); --i >= 0; ) list.get(i).visible = TF; + +return; +}var ac = this.ms.ac; +var at = this.ms.at; +for (var i = ac; --i >= 0; ) { +if (this.lcaoID != null || this.thisSet.get(i)) this.setLcaoOn(i, TF && at[i] != null); +} +}, "~B"); +Clazz.defineMethod(c$, "setLcaoOn", +function(iAtom, TF){ +var id = this.getID(this.lcaoID, iAtom); +for (var i = this.meshCount; --i >= 0; ) if (this.meshes[i].thisID.indexOf(id) == 0) this.meshes[i].visible = TF; + +}, "~N,~B"); +Clazz.defineMethod(c$, "deleteLcaoCartoon", +function(){ +if (JU.PT.isWild(this.lcaoID)) { +this.deleteMeshKey(this.lcaoID); +return; +}var ac = this.ms.ac; +for (var i = ac; --i >= 0; ) if (this.lcaoID != null || this.thisSet.get(i)) this.deleteLcaoCartoon(i); + +}); +Clazz.defineMethod(c$, "deleteLcaoCartoon", +function(iAtom){ +var id = this.getID(this.lcaoID, iAtom); +for (var i = this.meshCount; --i >= 0; ) if (this.meshes[i].thisID.indexOf(id) == 0) this.deleteMeshI(i); + +}, "~N"); +Clazz.defineMethod(c$, "createLcaoCartoon", +function(){ +this.isMolecular = (this.isMolecular && (this.thisType.indexOf("px") >= 0 || this.thisType.indexOf("py") >= 0 || this.thisType.indexOf("pz") >= 0)); +var lcaoID0 = this.lcaoID; +for (var i = this.thisSet.nextSetBit(0); i >= 0; i = this.thisSet.nextSetBit(i + 1)) { +this.createLcaoCartoon(i); +this.lcaoID = lcaoID0; +} +}); +Clazz.defineMethod(c$, "createLcaoCartoon", +function(iAtom){ +var id = this.getID(this.lcaoID, iAtom); +var isCpk = (this.thisType.equals("cpk")); +for (var i = this.meshCount; --i >= 0; ) if (this.meshes[i].thisID.indexOf(id) == 0) this.deleteMeshI(i); + +this.setPropI("init", null, null); +this.translucentLevel = this.lcaoTranslucentLevel; +this.setPropI("thisID", id, null); +if (this.lcaoScale != null) this.setPropI("scale", this.lcaoScale, null); +if (isCpk) { +this.setPropI("colorRGB", Integer.$valueOf(this.vwr.gdata.getColorArgbOrGray(this.ms.at[iAtom].colixAtom)), null); +} else if (this.lcaoColorNeg != null) { +this.setPropI("colorRGB", this.lcaoColorNeg, null); +this.setPropI("colorRGB", this.lcaoColorPos, null); +}this.setPropI("reversecolor", Boolean.$valueOf(this.lcaoReverseColor), null); +if (this.slabbingObject != null) this.setPropI("slab", this.slabbingObject, null); +if (this.cappingObject != null) this.setPropI("cap", this.cappingObject, null); +this.setPropI("lcaoType", this.thisType, null); +this.setPropI("atomIndex", Integer.$valueOf(iAtom), null); +var axes = Clazz.newArray(-1, [ new JU.V3(), new JU.V3(), JU.V3.newV(this.ms.at[iAtom]), new JU.V3()]); +if (this.rotationAxis != null) axes[3].setT(this.rotationAxis); +if (this.isMolecular) { +if (this.thisType.indexOf("px") >= 0) { +axes[0].set(0, -1, 0); +axes[1].set(1, 0, 0); +} else if (this.thisType.indexOf("py") >= 0) { +axes[0].set(-1, 0, 0); +axes[1].set(0, 0, 1); +} else if (this.thisType.indexOf("pz") >= 0) { +axes[0].set(0, 0, 1); +axes[1].set(1, 0, 0); +}if (this.thisType.indexOf("-") == 0) axes[0].scale(-1); +}var type = this.thisType; +var isAnti = (type.indexOf("anti-sp") >= 0); +if (isAnti) { +type = type.substring(5); +}if (this.isMolecular || isCpk || this.thisType.equalsIgnoreCase("s") || this.vwr.getHybridizationAndAxes(iAtom, axes[0], axes[1], type) != null) { +this.setPropI((this.isRadical ? "radical" : this.isLonePair ? "lonePair" : "lcaoCartoon"), axes, null); +}if (isCpk) { +var colix = this.ms.at[iAtom].colixAtom; +if (JU.C.isColixTranslucent(colix)) { +this.setPropI("translucentLevel", Float.$valueOf(JU.C.getColixTranslucencyLevel(colix)), null); +this.setPropI("translucency", "translucent", null); +}} else if (this.lcaoTranslucent) for (var i = this.meshCount; --i >= 0; ) if (this.meshes[i].thisID.indexOf(id) == 0) this.meshes[i].setTranslucent(true, this.translucentLevel); + +}, "~N"); +Clazz.defineMethod(c$, "getID", +function(id, i){ +return (id != null ? id : (this.isLonePair || this.isRadical ? "lp_" : "lcao_") + (i + 1) + "_") + (this.thisType == null ? "" : JU.PT.rep(this.thisType, "-", (this.thisType.indexOf("-p") == 0 ? "" : "_"))); +}, "~S,~N"); +Clazz.defineMethod(c$, "getShapeState", +function(){ +var sb = new JU.SB(); +if (this.lcaoScale != null) J.shape.Shape.appendCmd(sb, "lcaoCartoon scale " + this.lcaoScale.floatValue()); +if (this.lcaoReverseColor) J.shape.Shape.appendCmd(sb, "lcaoCartoon reverse"); +if (this.lcaoColorNeg != null) J.shape.Shape.appendCmd(sb, "lcaoCartoon color " + JU.Escape.escapeColor(this.lcaoColorNeg.intValue()) + " " + JU.Escape.escapeColor(this.lcaoColorPos.intValue())); +if (this.lcaoTranslucent) J.shape.Shape.appendCmd(sb, "lcaoCartoon translucent " + this.translucentLevel); +for (var i = this.meshCount; --i >= 0; ) if (!this.meshes[i].visible) J.shape.Shape.appendCmd(sb, "lcaoCartoon ID " + this.meshes[i].thisID + " off"); + +return Clazz.superCall(this, J.shapesurface.LcaoCartoon, "getShapeState", []) + sb.toString(); +}); +Clazz.defineMethod(c$, "merge", +function(shape){ +var lc = shape; +this.lcaoScale = lc.lcaoScale; +this.lcaoColorNeg = lc.lcaoColorNeg; +this.lcaoTranslucent = lc.lcaoTranslucent; +this.lcaoTranslucentLevel = lc.lcaoTranslucentLevel; +this.lcaoReverseColor = lc.lcaoReverseColor; +Clazz.superCall(this, J.shapesurface.LcaoCartoon, "merge", [shape]); +}, "J.shape.MeshCollection"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/MolecularOrbital.js b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/MolecularOrbital.js new file mode 100755 index 000000000000..8cd983ec0126 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/MolecularOrbital.js @@ -0,0 +1,412 @@ +Clazz.declarePackage("J.shapesurface"); +Clazz.load(["J.shapesurface.Isosurface"], "J.shapesurface.MolecularOrbital", ["java.util.Hashtable", "JU.AU", "$.Lst", "$.PT", "$.SB", "J.jvxl.data.JvxlCoder", "J.quantum.QS", "JU.Escape"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.moTranslucency = null; +this.moTranslucentLevel = null; +this.moPlane = null; +this.moCutoff = null; +this.moResolution = null; +this.moScale = null; +this.moColorPos = null; +this.moColorNeg = null; +this.moMonteCarloCount = null; +this.moIsPositiveOnly = false; +this.moSquareData = null; +this.moSquareLinear = null; +this.moRandomSeed = null; +this.moFill = 1073742046; +this.moMesh = 1073742018; +this.moDots = 1073742042; +this.moFrontOnly = 1073741960; +this.moShell = 1073742057; +this.moTitleFormat = null; +this.moDebug = false; +this.myColorPt = 0; +this.strID = null; +this.$moNumber = 0; +this.$moLinearCombination = null; +this.htModels = null; +this.thisModel = null; +this.moSlab = null; +this.moSlabValue = null; +this.nboType = null; +Clazz.instantialize(this, arguments);}, J.shapesurface, "MolecularOrbital", J.shapesurface.Isosurface); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shapesurface.MolecularOrbital, "initShape", []); +this.myType = "mo"; +this.setPropI("thisID", this.myType, null); +}); +Clazz.overrideMethod(c$, "setProperty", +function(propertyName, value, bs){ +if ("init" === propertyName) { +this.myColorPt = 0; +this.moDebug = false; +var modelIndex = (value).intValue(); +this.strID = this.getId(modelIndex); +this.setPropI("init", null, null); +this.setPropI("modelIndex", Integer.$valueOf(modelIndex), null); +if (this.htModels == null) this.htModels = new java.util.Hashtable(); +if (!this.htModels.containsKey(this.strID)) this.htModels.put(this.strID, new java.util.Hashtable()); +this.thisModel = this.htModels.get(this.strID); +this.$moNumber = (!this.thisModel.containsKey("moNumber") ? 0 : (this.thisModel.get("moNumber")).intValue()); +this.$moLinearCombination = this.thisModel.get("moLinearCombination"); +this.moSquareData = (this.$moLinearCombination != null ? null : this.thisModel.get("moSquareData")); +this.moSquareLinear = (this.$moLinearCombination == null ? null : this.thisModel.get("moSquareLinear")); +return; +}if (this.htModels != null && this.strID != null) this.thisModel = this.htModels.get(this.strID); +if ("slab" === propertyName) { +if (Clazz.instanceOf(value, Integer)) { +this.thisModel.put("slabValue", value); +} else { +var slabInfo = value; +var tok = (slabInfo[0]).intValue(); +this.moSlab = this.thisModel.get("slab"); +if (this.moSlab == null) this.thisModel.put("slab", this.moSlab = new JU.Lst()); +if (tok == 1073742333) { +this.moSlab = null; +this.thisModel.remove("slab"); +return; +}this.moSlab.addLast(value); +}return; +}if ("cutoff" === propertyName) { +this.thisModel.put("moCutoff", value); +this.thisModel.put("moIsPositiveOnly", Boolean.FALSE); +return; +}if ("scale" === propertyName) { +this.thisModel.put("moScale", value); +return; +}if ("squareData" === propertyName) { +if (value === Boolean.TRUE) this.thisModel.put("moSquareData", Boolean.TRUE); + else this.thisModel.remove("moSquareData"); +this.moSquareData = value; +return; +}if ("squareLinear" === propertyName) { +if (value === Boolean.TRUE) this.thisModel.put("moSquareLinear", Boolean.TRUE); + else this.thisModel.remove("moSquareLinear"); +this.moSquareLinear = value; +return; +}if ("cutoffPositive" === propertyName) { +this.thisModel.put("moCutoff", value); +this.thisModel.put("moIsPositiveOnly", Boolean.TRUE); +return; +}if ("resolution" === propertyName) { +this.thisModel.put("moResolution", value); +return; +}if ("titleFormat" === propertyName) { +this.moTitleFormat = value; +return; +}if ("color" === propertyName) { +if (!(Clazz.instanceOf(value, Integer))) return; +this.thisModel.remove("moTranslucency"); +this.setPropI("color", value, bs); +propertyName = "colorRGB"; +this.myColorPt = 0; +}if ("colorRGB" === propertyName) { +this.moColorPos = value; +if (this.myColorPt++ == 0) this.moColorNeg = this.moColorPos; +this.thisModel.put("moColorNeg", this.moColorNeg); +this.thisModel.put("moColorPos", this.moColorPos); +return; +}if ("plane" === propertyName) { +if (value == null) this.thisModel.remove("moPlane"); + else this.thisModel.put("moPlane", value); +return; +}if ("monteCarloCount" === propertyName) { +this.thisModel.put("monteCarloCount", value); +return; +}if ("randomSeed" === propertyName) { +if (value == null) this.thisModel.remove("randomSeed"); + else this.thisModel.put("randomSeed", value); +return; +}if ("molecularOrbital" === propertyName) { +if (Clazz.instanceOf(value, Integer)) { +this.$moNumber = (value).intValue(); +this.thisModel.put("moNumber", value); +this.thisModel.remove("moLinearCombination"); +this.$moLinearCombination = null; +} else { +this.$moNumber = 0; +this.$moLinearCombination = value; +this.thisModel.put("moNumber", Integer.$valueOf(0)); +this.thisModel.put("moLinearCombination", this.$moLinearCombination); +}if (this.moSquareData === Boolean.TRUE) this.thisModel.put("moSquareData", Boolean.TRUE); + else this.thisModel.remove("moSquareData"); +if (this.moSquareLinear === Boolean.TRUE) this.thisModel.put("moSquareLinear", Boolean.TRUE); + else this.thisModel.remove("moSquareLinear"); +this.setOrbital(this.$moNumber, this.$moLinearCombination); +return; +}if (propertyName === "deleteModelAtoms") { +var modelIndex = ((value)[2])[0]; +var htModelsNew = new java.util.Hashtable(); +for (var i = this.meshCount; --i >= 0; ) { +if (this.meshes[i] == null) continue; +if (this.meshes[i].modelIndex == modelIndex) { +this.meshCount--; +if (this.meshes[i] === this.currentMesh) { +this.currentMesh = null; +this.thisModel = null; +}this.meshes = JU.AU.deleteElements(this.meshes, i, 1); +continue; +}var htModel = this.htModels.get(this.meshes[i].thisID); +if (this.meshes[i].modelIndex > modelIndex) { +this.meshes[i].modelIndex--; +this.meshes[i].thisID = this.getId(this.meshes[i].modelIndex); +}htModelsNew.put(this.meshes[i].thisID, htModel); +} +this.htModels = htModelsNew; +return; +}if ("moData" === propertyName) { +var moData = value; +this.nboType = moData.get("nboType"); +this.thisModel = this.htModels.get(this.strID); +if (this.nboType == null) this.thisModel.remove("nboType"); + else this.thisModel.put("nboType", this.nboType); +} else if ("translucentLevel" === propertyName) { +if (this.thisModel == null) { +if (this.currentMesh == null) return; +this.thisModel = this.htModels.get(this.currentMesh.thisID); +}this.thisModel.put("moTranslucentLevel", value); +} else if ("delete" === propertyName) { +this.htModels.remove(this.strID); +this.$moNumber = 0; +this.$moLinearCombination = null; +} else if ("token" === propertyName) { +var tok = (value).intValue(); +switch (tok) { +case 1112150019: +case 1073742042: +this.moDots = tok; +break; +case 1073741938: +case 1073742046: +this.moFill = tok; +break; +case 1073742018: +case 1073742052: +this.moMesh = tok; +break; +case 1073741862: +case 1073742057: +this.moShell = tok; +break; +case 1073741960: +case 1073742058: +this.moFrontOnly = tok; +break; +} +} else if ("translucency" === propertyName) { +if (this.thisModel == null) { +if (this.currentMesh == null) return; +this.thisModel = this.htModels.get(this.currentMesh.thisID); +}this.thisModel.put("moTranslucency", value); +}this.setPropI(propertyName, value, bs); +}, "~S,~O,JU.BS"); +Clazz.defineMethod(c$, "getId", +function(modelIndex){ +return "mo_model" + this.vwr.getModelNumberDotted(modelIndex); +}, "~N"); +Clazz.overrideMethod(c$, "getProperty", +function(propertyName, index){ +if (propertyName.startsWith("list")) { +var s = ""; +if (propertyName.equals("list")) { +s = this.getPropI("list", index); +if (s.length > 1) s += "cutoff = " + this.jvxlData.cutoff + "\n"; +s = "\n" + s; +}return this.getMoInfo(-1) + s; +}if (propertyName === "moLabel") { +var labels = this.sg.params.moData.get("nboLabels"); +if (this.$moNumber > 0 && labels != null && labels.length != 0) return labels[(this.$moNumber - 1) % labels.length]; +return ""; +}if (propertyName === "moNumber") return Integer.$valueOf(this.$moNumber); +if (propertyName === "moLinearCombination") return this.$moLinearCombination; +if (propertyName === "moSquareData") return this.moSquareData; +if (propertyName === "moSquareLinear") return this.moSquareLinear; +if (propertyName === "showMO") { +var str = new JU.SB(); +var mos = (this.sg.params.moData.get("mos")); +var nOrb = (mos == null ? 0 : mos.size()); +var thisMO = index; +var currentMO = this.$moNumber; +var isShowCurrent = (thisMO == -2147483648 || thisMO == 2147483647); +if (isShowCurrent) thisMO = currentMO; +if (nOrb == 0 || isShowCurrent && currentMO == 0) return ""; +var doOneMo = (thisMO != 0); +if (currentMO == 0) thisMO = 0; +var haveHeader = false; +var nTotal = (thisMO > 0 ? 1 : nOrb); +var i0 = (nTotal == 1 && currentMO > 0 ? currentMO : 1); +for (var i = i0; i <= nOrb; i++) if (thisMO == 0 || thisMO == i || !doOneMo && i == currentMO) { +if (!doOneMo) { +this.setPropI("init", this.sg.params, null); +this.setOrbital(i, null); +}this.jvxlData.moleculeXml = this.vwr.getModelCml(this.vwr.getModelUndeletedAtomsBitSet(this.thisMesh.modelIndex), 100, true, false); +if (!haveHeader) { +str.append(J.jvxl.data.JvxlCoder.jvxlGetFile(this.jvxlData, null, null, "HEADERONLY", true, nTotal, null, null)); +haveHeader = true; +}str.append(J.jvxl.data.JvxlCoder.jvxlGetFile(this.jvxlData, null, this.jvxlData.title, null, false, 1, this.thisMesh.getState(this.myType), (this.thisMesh.scriptCommand == null ? "" : this.thisMesh.scriptCommand))); +if (!doOneMo) this.setPropI("delete", "mo_show", null); +if (nTotal == 1) break; +} +str.append(J.jvxl.data.JvxlCoder.jvxlGetFile(this.jvxlData, null, null, "TRAILERONLY", true, 0, null, null)); +return str.toString(); +}return this.getPropI(propertyName, index); +}, "~S,~N"); +Clazz.defineMethod(c$, "getMoInfo", +function(modelIndex){ +var sb = new JU.SB(); +for (var m = 0, mc = this.ms.mc; m < mc; m++) { +if (modelIndex >= 0 && m != modelIndex) continue; +var moData = this.ms.getInfo(m, "moData"); +if (moData == null) continue; +var mos = (moData.get("mos")); +var nOrb = (mos == null ? 0 : mos.size()); +if (nOrb == 0) continue; +var moType = moData.get("nboType"); +if (moType == null) moType = "mo"; +for (var i = nOrb; --i >= 0; ) { +var mo = mos.get(i); +var type = mo.get("type"); +if (type == null) type = ""; +var units = mo.get("energyUnits"); +if (units == null) units = ""; +var occ = mo.get("occupancy"); +if (occ != null) type = "occupancy " + occ.floatValue() + " " + type; +var sym = mo.get("symmetry"); +if (sym != null) type += sym; +var energy = "" + mo.get("energy"); +if (Float.isNaN(JU.PT.parseFloat(energy))) sb.append(JU.PT.sprintf("model %-2s; %s %-2i # %s\n", "ssis", Clazz.newArray(-1, [this.ms.getModelNumberDotted(m), moType, Integer.$valueOf(i + 1), type]))); + else sb.append(JU.PT.sprintf("model %-2s; %s %-2i # energy %-8.3f %s %s\n", "ssifss", Clazz.newArray(-1, [this.ms.getModelNumberDotted(m), moType, Integer.$valueOf(i + 1), mo.get("energy"), units, type]))); +} +} +return sb.toString(); +}, "~N"); +Clazz.overrideMethod(c$, "clearSg", +function(){ +}); +Clazz.defineMethod(c$, "getSettings", +function(strID){ +this.thisModel = this.htModels.get(strID); +if (this.thisModel == null || this.thisModel.get("moNumber") == null) return false; +this.nboType = this.thisModel.get("nboType"); +this.moTranslucency = this.thisModel.get("moTranslucency"); +this.moTranslucentLevel = this.thisModel.get("moTranslucentLevel"); +this.moPlane = this.thisModel.get("moPlane"); +this.moCutoff = this.thisModel.get("moCutoff"); +if (this.moCutoff == null) this.moCutoff = this.sg.params.moData.get("defaultCutoff"); +if (this.moCutoff == null) { +this.moCutoff = Float.$valueOf(0.05); +}this.thisModel.put("moCutoff", Float.$valueOf(this.moCutoff.floatValue())); +this.moResolution = this.thisModel.get("moResolution"); +this.moScale = this.thisModel.get("moScale"); +this.moColorPos = this.thisModel.get("moColorPos"); +this.moColorNeg = this.thisModel.get("moColorNeg"); +this.moSquareData = this.thisModel.get("moSquareData"); +this.moSquareLinear = this.thisModel.get("moSquareLinear"); +this.moMonteCarloCount = this.thisModel.get("monteCarloCount"); +this.moRandomSeed = this.thisModel.get("randomSeed"); +this.moSlabValue = this.thisModel.get("slabValue"); +this.moSlab = this.thisModel.get("slab"); +if (this.moRandomSeed == null) this.thisModel.put("randomSeed", this.moRandomSeed = Integer.$valueOf((-System.currentTimeMillis()) % 10000)); +this.$moNumber = (this.thisModel.get("moNumber")).intValue(); +this.$moLinearCombination = this.thisModel.get("moLinearCombination"); +var b = this.thisModel.get("moIsPositiveOnly"); +this.moIsPositiveOnly = (b != null && ((b)).booleanValue()); +return true; +}, "~S"); +Clazz.defineMethod(c$, "setOrbital", +function(moNumber, linearCombination){ +this.setPropI("reset", this.strID, null); +if (this.moDebug) this.setPropI("debug", Boolean.TRUE, null); +this.getSettings(this.strID); +if (this.moScale != null) this.setPropI("scale", this.moScale, null); +if (this.moResolution != null) this.setPropI("resolution", this.moResolution, null); +if (this.moPlane != null) { +this.setPropI("plane", this.moPlane, null); +if (this.moCutoff != null) { +var max = this.moCutoff.floatValue(); +if (this.moSquareData === Boolean.TRUE || this.moSquareLinear === Boolean.TRUE) max = max * max; +this.setPropI("red", Float.$valueOf(-max), null); +this.setPropI("blue", Float.$valueOf(max), null); +}} else { +if (this.moCutoff != null) this.setPropI((this.moIsPositiveOnly ? "cutoffPositive" : "cutoff"), this.moCutoff, null); +if (this.moColorNeg != null) this.setPropI("colorRGB", this.moColorNeg, null); +if (this.moColorPos != null) this.setPropI("colorRGB", this.moColorPos, null); +if (this.moMonteCarloCount != null) { +this.setPropI("randomSeed", this.moRandomSeed, null); +this.setPropI("monteCarloCount", this.moMonteCarloCount, null); +}}this.setPropI("squareData", this.moSquareData, null); +this.setPropI("squareLinear", this.moSquareLinear, null); +this.setPropI("title", this.moTitleFormat, null); +this.setPropI("fileName", this.vwr.fm.getFileName(), null); +this.currentMesh.modelIndex = this.modelIndex; +this.setPropI("molecularOrbital", linearCombination == null ? Integer.$valueOf(moNumber) : linearCombination, null); +if (this.moPlane != null && this.moColorNeg != null) this.setPropI("colorRGB", this.moColorNeg, null); +if (this.moPlane != null && this.moColorPos != null) this.setPropI("colorRGB", this.moColorPos, null); +this.currentMesh.isColorSolid = false; +if (this.moSlabValue != null) this.setPropI("slab", this.moSlabValue, null); +if (this.moSlab != null) for (var i = 0; i < this.moSlab.size(); i++) this.setPropI("slab", this.moSlab.get(i), null); + +if (this.moTranslucentLevel != null) this.setPropI("translucentLevel", this.moTranslucentLevel, null); +if (this.moTranslucency != null) this.setPropI("translucency", this.moTranslucency, null); +this.setPropI("token", Integer.$valueOf(this.moFill), null); +this.setPropI("token", Integer.$valueOf(this.moMesh), null); +this.setPropI("token", Integer.$valueOf(this.moShell), null); +this.setPropI("token", Integer.$valueOf(this.moDots), null); +this.setPropI("token", Integer.$valueOf(this.moFrontOnly), null); +this.thisModel.put("mesh", this.currentMesh); +return; +}, "~N,~A"); +Clazz.overrideMethod(c$, "getShapeState", +function(){ +if (this.htModels == null) return ""; +var s = new JU.SB(); +var modelCount = this.ms.mc; +for (var iModel = 0; iModel < modelCount; iModel++) { +if (!this.getSettings(this.getId(iModel))) continue; +if (modelCount > 1) J.shape.Shape.appendCmd(s, "frame " + this.vwr.getModelNumberDotted(iModel)); +if (this.nboType != null) J.shape.Shape.appendCmd(s, "nbo type " + this.nboType); +if (this.moCutoff != null) J.shape.Shape.appendCmd(s, this.myType + " cutoff " + (this.sg.params.isPositiveOnly ? "+" : "") + this.moCutoff); +if (this.moScale != null) J.shape.Shape.appendCmd(s, this.myType + " scale " + this.moScale); +if (this.moMonteCarloCount != null) J.shape.Shape.appendCmd(s, this.myType + " points " + this.moMonteCarloCount + " " + this.moRandomSeed); +if (this.moResolution != null) J.shape.Shape.appendCmd(s, this.myType + " resolution " + this.moResolution); +if (this.moPlane != null) J.shape.Shape.appendCmd(s, this.myType + " plane {" + this.moPlane.x + " " + this.moPlane.y + " " + this.moPlane.z + " " + this.moPlane.w + "}"); +if (this.moTitleFormat != null) J.shape.Shape.appendCmd(s, this.myType + " titleFormat " + JU.PT.esc(this.moTitleFormat)); +if (this.moColorNeg != null) J.shape.Shape.appendCmd(s, this.myType + " color " + JU.Escape.escapeColor(this.moColorNeg.intValue()) + (this.moColorNeg.equals(this.moColorPos) ? "" : " " + JU.Escape.escapeColor(this.moColorPos.intValue()))); +if (this.moSlab != null) { +if (this.thisMesh.slabOptions != null) J.shape.Shape.appendCmd(s, this.thisMesh.slabOptions.toString()); +if (this.thisMesh.jvxlData.slabValue != -2147483648) J.shape.Shape.appendCmd(s, this.myType + " slab " + this.thisMesh.jvxlData.slabValue); +}if (this.$moLinearCombination == null) { +J.shape.Shape.appendCmd(s, this.myType + " " + (this.moSquareData === Boolean.TRUE ? "squared " : "") + this.$moNumber); +} else { +J.shape.Shape.appendCmd(s, this.myType + " " + J.quantum.QS.getMOString(this.$moLinearCombination) + (this.moSquareLinear === Boolean.TRUE ? " squared" : "")); +}if (this.moTranslucency != null) J.shape.Shape.appendCmd(s, this.myType + " translucent " + this.moTranslucentLevel); +J.shape.Shape.appendCmd(s, (this.thisModel.get("mesh")).getState(this.myType)); +} +return s.toString(); +}); +Clazz.defineMethod(c$, "merge", +function(shape){ +var mo = shape; +this.moColorNeg = mo.moColorNeg; +this.moColorPos = mo.moColorPos; +this.moCutoff = mo.moCutoff; +this.moPlane = mo.moPlane; +this.moResolution = mo.moResolution; +this.moScale = mo.moScale; +this.moSlab = mo.moSlab; +this.moSlabValue = mo.moSlabValue; +this.moTitleFormat = mo.moTitleFormat; +this.moTranslucency = mo.moTranslucency; +if (this.htModels == null) this.htModels = new java.util.Hashtable(); +var ht = mo.htModels; +if (ht != null) { +for (var entry, $entry = ht.entrySet().iterator (); $entry.hasNext()&& ((entry = $entry.next ()) || true);) { +var key = entry.getKey(); +this.htModels.put(key, entry.getValue()); +} +}Clazz.superCall(this, J.shapesurface.MolecularOrbital, "merge", [shape]); +}, "J.shape.MeshCollection"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/NBO.js b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/NBO.js new file mode 100755 index 000000000000..d7ae4a8a250e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/NBO.js @@ -0,0 +1,11 @@ +Clazz.declarePackage("J.shapesurface"); +Clazz.load(["J.shapesurface.MolecularOrbital"], "J.shapesurface.NBO", null, function(){ +var c$ = Clazz.declareType(J.shapesurface, "NBO", J.shapesurface.MolecularOrbital); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shapesurface.NBO, "initShape", []); +this.myType = "nbo"; +this.setPropI("thisID", "nbo", null); +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/PMeshWriter.js b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/PMeshWriter.js new file mode 100755 index 000000000000..26f98b39e258 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/PMeshWriter.js @@ -0,0 +1,196 @@ +Clazz.declarePackage("J.shapesurface"); +Clazz.load(null, "J.shapesurface.PMeshWriter", ["JU.BS", "JU.C"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.imesh = null; +this.isBinary = false; +this.oc = null; +this.i0 = 0; +this.polygonIndexes = null; +this.selectedPolyOnly = false; +this.bsPolygons = null; +this.haveBsDisplay = false; +this.colorSolid = false; +this.colorArrayed = false; +this.cx = 0; +this.vertexColixes = null; +this.noColor = false; +this.contourColixes = null; +this.vertexValues = null; +this.vertexCount = 0; +this.imap = null; +Clazz.instantialize(this, arguments);}, J.shapesurface, "PMeshWriter", null); +/*LV!1824 unnec constructor*/Clazz.defineMethod(c$, "write", +function(isosurfaceMesh, isBinary){ +this.imesh = isosurfaceMesh; +this.isBinary = isBinary; +var bsPoly = new JU.BS(); +var bsVert = new JU.BS(); +var bsPoints = new JU.BS(); +if (this.imesh.showPoints || this.imesh.pc <= 0) this.checkPoints(bsPoints); +bsVert.or(bsPoints); +if (this.imesh.drawTriangles) this.checkTriangles(false, bsPoly, bsVert); +if (this.imesh.pc > 0 && this.imesh.fillTriangles) this.checkTriangles(true, bsPoly, bsVert); +this.imap = Clazz.newIntArray (this.vertexCount, 0); +var iimap = Clazz.newIntArray (this.vertexCount, 0); +var nV = 0; +for (var i = bsVert.nextSetBit(0); i >= 0; i = bsVert.nextSetBit(i + 1)) { +iimap[nV] = i; +this.imap[i] = nV++; +} +this.writePmeshHeader(nV); +if (!isBinary) this.outputInt(nV); +for (var i = 0; i < nV; i++) this.outputXYZ(this.imesh.vs[iimap[i]]); + +if (!isBinary) this.outputInt(-1); +if (this.imesh.showPoints || this.imesh.pc <= 0) this.outputPoints(bsPoints); +bsVert.or(bsPoints); +var bsDone = new JU.BS(); +if (this.imesh.drawTriangles) this.outputTriangles(false, bsPoly, bsDone); +if (this.imesh.pc > 0 && this.imesh.fillTriangles) this.outputTriangles(true, bsPoly, bsDone); +if (isBinary) this.oc.writeInt(0); + else this.oc.append("0\n"); +this.oc.closeChannel(); +return (isBinary ? this.oc.toByteArray() : this.oc.toString()); +}, "J.shapesurface.IsosurfaceMesh,~B"); +Clazz.defineMethod(c$, "outputPoints", +function(bsPoints){ +var color = JU.C.getArgb(this.cx); +for (var i = bsPoints.nextSetBit(0); i >= 0; i = bsPoints.nextSetBit(i + 1)) { +if (!this.imesh.isColorSolid && this.imesh.vcs != null) { +this.cx = this.imesh.vcs[i]; +color = JU.C.getArgb(this.cx); +}this.outputPoint(this.imap[i], color); +} +}, "JU.BS"); +Clazz.defineMethod(c$, "outputTriangles", +function(fill, bsPoly, bsDone){ +var color = JU.C.getArgb(this.cx); +for (var i = bsPoly.nextSetBit(0); i >= 0; i = bsPoly.nextSetBit(i + 1)) { +var polygon = this.polygonIndexes[i]; +var iA = this.imap[polygon[0]]; +var iB = this.imap[polygon[1]]; +var iC = this.imap[polygon[2]]; +if (this.colorSolid) { +if (this.colorArrayed && i < this.imesh.pcs.length) this.cx = this.imesh.pcs[i]; +} else { +this.cx = this.vertexColixes[polygon[0]]; +}color = JU.C.getArgb(this.cx); +if (fill) { +if (iB == iC) { +if (iA == iB) this.outputPoint(iA, color); + else this.outputEdge(iA, iB, color); +bsDone.set(i); +} else { +if (this.imesh.colorsExplicit) color = polygon[4]; +this.outputTriangle(iA, iB, iC, color, 999); +}} else if (!bsDone.get(i)) { +var check = 7 & polygon[3]; +if (check == 0) continue; +if (this.noColor) { +} else if (this.colorArrayed) { +color = JU.C.getArgb(this.imesh.fillTriangles ? 4 : this.contourColixes[polygon[4] % this.contourColixes.length]); +}this.outputTriangle(iA, iB, iC, color, check); +}} +}, "~B,JU.BS,JU.BS"); +Clazz.defineMethod(c$, "checkPoints", +function(bsVert){ +var slabPoints = ((this.imesh.pc == 0) && this.selectedPolyOnly); +var incr = this.imesh.vertexIncrement; +for (var i = (!this.imesh.hasGridPoints || this.imesh.firstRealVertex < 0 ? 0 : this.imesh.firstRealVertex); i < this.vertexCount; i += incr) { +if (this.vertexValues != null && Float.isNaN(this.vertexValues[i]) || this.imesh.jvxlData.thisSet != null && !this.imesh.jvxlData.thisSet.get(this.imesh.vertexSets[i]) || !this.imesh.isColorSolid || this.haveBsDisplay && !this.imesh.bsDisplay.get(i) || slabPoints && !this.bsPolygons.get(i)) continue; +bsVert.set(i); +} +}, "JU.BS"); +Clazz.defineMethod(c$, "checkTriangles", +function(fill, bsPoly, bsVert){ +this.setup(fill); +for (var i = this.imesh.pc; --i >= 0; ) { +var polygon = this.polygonIndexes[i]; +if (polygon == null || this.selectedPolyOnly && !this.bsPolygons.get(i)) continue; +var iA = polygon[0]; +if (this.imesh.jvxlData.thisSet != null && this.imesh.vertexSets != null && !this.imesh.jvxlData.thisSet.get(this.imesh.vertexSets[iA])) continue; +var iB = polygon[1]; +var iC = polygon[2]; +if (this.haveBsDisplay && (!this.imesh.bsDisplay.get(iA) || !this.imesh.bsDisplay.get(iB) || !this.imesh.bsDisplay.get(iC))) continue; +if (this.colorSolid && this.colorArrayed && i < this.imesh.pcs.length && this.imesh.pcs[i] == 0) continue; +bsPoly.set(i); +bsVert.set(iA); +bsVert.set(iB); +bsVert.set(iC); +} +}, "~B,JU.BS,JU.BS"); +Clazz.defineMethod(c$, "setup", +function(fill){ +this.vertexCount = this.imesh.vc; +this.vertexValues = this.imesh.vvs; +this.polygonIndexes = this.imesh.pis; +this.cx = (!fill && this.imesh.meshColix != 0 ? this.imesh.meshColix : this.imesh.colix); +this.vertexColixes = (!fill && this.imesh.meshColix != 0 ? null : this.imesh.vcs); +this.colorSolid = (this.vertexColixes == null); +this.noColor = (this.vertexColixes == null || !fill && this.imesh.meshColix != 0); +this.colorArrayed = (this.colorSolid && this.imesh.pcs != null); +if (this.colorArrayed && !fill && this.imesh.fillTriangles) this.colorArrayed = false; +this.contourColixes = this.imesh.jvxlData.contourColixes; +this.haveBsDisplay = (this.imesh.bsDisplay != null); +this.selectedPolyOnly = (this.imesh.bsSlabDisplay != null); +this.bsPolygons = (this.selectedPolyOnly ? this.imesh.bsSlabDisplay : null); +}, "~B"); +Clazz.defineMethod(c$, "writePmeshHeader", +function(nV){ +this.oc = this.imesh.vwr.getOutputChannel(null, null); +if (this.isBinary) { +this.oc.writeByteAsInt(80); +this.oc.writeByteAsInt(77); +this.oc.writeByteAsInt(1); +this.oc.writeByteAsInt(0); +this.oc.writeInt(1); +this.oc.writeInt(nV); +this.oc.writeInt(-1); +for (var i = 0; i < 16; i++) this.oc.writeInt(0); + +} else { +this.oc.append("#JmolPmesh\n"); +}}, "~N"); +Clazz.defineMethod(c$, "outputInt", +function(i){ +if (this.isBinary) this.oc.writeInt(i); + else this.oc.append("" + i + "\n"); +}, "~N"); +Clazz.defineMethod(c$, "outputPoint", +function(iA, color){ +this.outputInt(-1); +this.outputInt(iA); +this.outputInt(color); +return 1; +}, "~N,~N"); +Clazz.defineMethod(c$, "outputXYZ", +function(pt){ +if (this.isBinary) { +this.oc.writeFloat(pt.x); +this.oc.writeFloat(pt.y); +this.oc.writeFloat(pt.z); +} else { +this.oc.append(pt.x + " " + pt.y + " " + pt.z + "\n"); +}}, "JU.T3"); +Clazz.defineMethod(c$, "outputEdge", +function(iA, iB, color){ +this.outputInt(-2); +this.outputInt(iA); +this.outputInt(iB); +this.outputInt(color); +}, "~N,~N,~N"); +Clazz.defineMethod(c$, "outputTriangle", +function(iA, iB, iC, color, check){ +if (check == 999) { +this.outputInt(-3); +this.outputInt(iA); +this.outputInt(iB); +this.outputInt(iC); +this.outputInt(color); +return; +}if ((check & 1) != 0) this.outputEdge(iA, iB, color); +if ((check & 2) != 0) this.outputEdge(iB, iC, color); +if ((check & 4) != 0) this.outputEdge(iC, iA, color); +}, "~N,~N,~N,~N,~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Plot3D.js b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Plot3D.js new file mode 100755 index 000000000000..e2f2cdb0b5f2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Plot3D.js @@ -0,0 +1,10 @@ +Clazz.declarePackage("J.shapesurface"); +Clazz.load(["J.shapesurface.Pmesh"], "J.shapesurface.Plot3D", null, function(){ +var c$ = Clazz.declareType(J.shapesurface, "Plot3D", J.shapesurface.Pmesh); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shapesurface.Plot3D, "initShape", []); +this.myType = "plot3d"; +}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Pmesh.js b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Pmesh.js new file mode 100755 index 000000000000..b43b162f64b5 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/shapesurface/Pmesh.js @@ -0,0 +1,75 @@ +Clazz.declarePackage("J.shapesurface"); +Clazz.load(["J.shapesurface.Isosurface"], "J.shapesurface.Pmesh", ["java.util.Hashtable", "JU.Measure", "$.P3", "$.V3"], function(){ +var c$ = Clazz.declareType(J.shapesurface, "Pmesh", J.shapesurface.Isosurface); +Clazz.defineMethod(c$, "initShape", +function(){ +Clazz.superCall(this, J.shapesurface.Pmesh, "initShape", []); +this.myType = "pmesh"; +}); +Clazz.overrideMethod(c$, "getProperty", +function(property, index){ +if (property === "face") { +var m = this.currentMesh; +if (index >= 0 && (index >= this.meshCount || (m = this.meshes[index]) == null)) return null; +return m == null ? null : this.getFace(m); +}return this.getPropI(property, index); +}, "~S,~N"); +Clazz.defineMethod(c$, "getFace", +function(m){ +if (m.haveQuads) return null; +var vs = m.vs; +var htEdges = new java.util.Hashtable(); +var v1 = 0; +var v0; +var v01; +var n = 0; +var edge0 = null; +for (var i = m.pc; --i >= 0; ) { +if (m.bsSlabDisplay != null && !m.bsSlabDisplay.get(i)) continue; +var triangle = m.pis[i]; +var mask = triangle[3]; +for (var j = 0; j < 3; j++) if ((mask & (1 << j)) != 0) { +v1 = triangle[j]; +var v2 = triangle[(j + 1) % 3]; +var key = v2 + "_" + v1; +if (htEdges.containsKey(key)) { +htEdges.remove(key); +n--; +} else { +n++; +edge0 = Clazz.newIntArray(-1, [v1, v2]); +htEdges.put(v1 + "_" + v2, edge0); +htEdges.put("" + v1, edge0); +}} +} +if (n == 0) return null; +var a = Clazz.newIntArray (n, 2, 0); +a[0] = edge0; +var vectorBA = new JU.V3(); +var vectorBC = new JU.V3(); +v01 = v0 = a[0][0]; +v1 = a[0][1]; +var pt = 0; +var min = 0.0001; +while (v1 != v0) { +var edge = htEdges.get("" + v1); +if (edge == null) break; +var angle = JU.Measure.computeAngle(vs[v01], vs[v1], vs[edge[1]], vectorBA, vectorBC, true); +var d2 = vs[v1].distanceSquared(vs[edge[1]]); +v1 = edge[1]; +if (angle < 179 && d2 > min) { +a[++pt] = edge; +v01 = edge[0]; +} else { +a[pt][1] = v1; +}} +if (JU.Measure.computeAngle(vs[v01], vs[v1], vs[a[0][1]], vectorBA, vectorBC, true) >= 179 || vs[v1].distanceSquared(vs[a[0][1]]) <= min) { +a[0][0] = a[pt--][0]; +}n = (pt < 0 ? 1 : ++pt); +var pts = new Array(n); +for (var i = 0; i < n; i++) pts[i] = JU.P3.newP(vs[a[i][0]]); + +return pts; +}, "J.shape.Mesh"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/thread/AnimationThread.js b/config/plugins/visualizations/jmol/static/j2s/J/thread/AnimationThread.js new file mode 100755 index 000000000000..4b85d0aa2424 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/thread/AnimationThread.js @@ -0,0 +1,91 @@ +Clazz.declarePackage("J.thread"); +Clazz.load(["J.thread.JmolThread"], "J.thread.AnimationThread", ["JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.am = null; +this.framePointer1 = 0; +this.framePointer2 = 0; +this.intThread = 0; +this.isFirst = false; +Clazz.instantialize(this, arguments);}, J.thread, "AnimationThread", J.thread.JmolThread); +Clazz.overrideMethod(c$, "setManager", +function(manager, vwr, params){ +var options = params; +this.framePointer1 = options[0]; +this.framePointer2 = options[1]; +this.intThread = options[2]; +this.am = manager; +this.setViewer(vwr, "AnimationThread"); +vwr.startHoverWatcher(false); +return 0; +}, "~O,JV.Viewer,~O"); +Clazz.defineMethod(c$, "interrupt", +function(){ +if (this.stopped) return; +this.stopped = true; +if (JU.Logger.debugging) JU.Logger.debug("animation thread interrupted!"); +try { +this.am.setAnimationOn(false); +} catch (e) { +if (Clazz.exceptionOf(e, Exception)){ +} else { +throw e; +} +} +Clazz.superCall(this, J.thread.AnimationThread, "interrupt", []); +}); +Clazz.overrideMethod(c$, "run1", +function(mode){ +while (true) { +switch (mode) { +case -1: +if (JU.Logger.debugging) JU.Logger.debug("animation thread " + this.intThread + " running"); +this.vwr.requestRepaintAndWait("animationThread"); +this.vwr.startHoverWatcher(false); +this.haveReference = true; +this.isFirst = true; +mode = 0; +break; +case 0: +if (!this.am.animationOn || this.checkInterrupted(this.am.animationThread)) { +mode = -2; +break; +}if (this.am.currentFrameIs(this.framePointer1)) { +this.targetTime += this.am.firstFrameDelayMs; +this.sleepTime = (this.targetTime - (System.currentTimeMillis() - this.startTime)); +if (!this.runSleep(this.sleepTime, 1)) return; +}mode = 1; +break; +case 1: +if (this.am.currentFrameIs(this.framePointer2)) { +this.targetTime += this.am.lastFrameDelayMs; +this.sleepTime = (this.targetTime - (System.currentTimeMillis() - this.startTime)); +if (!this.runSleep(this.sleepTime, 2)) return; +}mode = 2; +break; +case 2: +if (!this.isFirst && this.am.currentIsLast() && !this.am.setAnimationNext()) { +mode = -2; +break; +}this.isFirst = false; +this.targetTime += Clazz.floatToInt((1000 / this.am.animationFps) + this.vwr.ms.getFrameDelayMs(this.am.cmi)); +mode = 3; +break; +case 3: +while (this.am.animationOn && !this.checkInterrupted(this.am.animationThread) && !this.vwr.getRefreshing()) { +if (!this.runSleep(10, 3)) return; +} +if (!this.vwr.tm.spinOn) this.vwr.refresh(1, "animationThread"); +this.sleepTime = (this.targetTime - (System.currentTimeMillis() - this.startTime)); +if (!this.runSleep(this.sleepTime, 0)) return; +mode = 0; +break; +case -2: +if (JU.Logger.debugging) JU.Logger.debug("animation thread " + this.intThread + " exiting"); +if (this.am.animationThread === this) this.am.stopThread(false); + else this.interrupt(); +return; +} +} +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/thread/HoverWatcherThread.js b/config/plugins/visualizations/jmol/static/j2s/J/thread/HoverWatcherThread.js new file mode 100755 index 000000000000..f961add29cc5 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/thread/HoverWatcherThread.js @@ -0,0 +1,41 @@ +Clazz.declarePackage("J.thread"); +Clazz.load(["J.thread.JmolThread"], "J.thread.HoverWatcherThread", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.actionManager = null; +this.current = null; +this.moved = null; +this.hoverDelay = 0; +Clazz.instantialize(this, arguments);}, J.thread, "HoverWatcherThread", J.thread.JmolThread); +Clazz.makeConstructor(c$, +function(actionManager, current, moved, vwr){ +this.setViewer(vwr, "HoverWatcher"); +this.actionManager = actionManager; +this.current = current; +this.moved = moved; +this.start(); +}, "JV.ActionManager,JV.MouseState,JV.MouseState,JV.Viewer"); +Clazz.overrideMethod(c$, "run1", +function(mode){ +while (true) switch (mode) { +case -1: +if (!this.isJS) Thread.currentThread().setPriority(1); +mode = 0; +break; +case 0: +this.hoverDelay = this.vwr.getHoverDelay(); +if (this.stopped || this.hoverDelay <= 0 || !this.runSleep(this.hoverDelay, 1)) return; +mode = 1; +break; +case 1: +if (this.moved.is(this.current)) { +this.currentTime = System.currentTimeMillis(); +var howLong = (this.currentTime - this.moved.time); +if (howLong > (this.vwr.acm.zoomTrigger ? 100 : this.hoverDelay) && !this.stopped) { +this.actionManager.checkHover(); +}}mode = 0; +break; +} + +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/thread/JmolThread.js b/config/plugins/visualizations/jmol/static/j2s/J/thread/JmolThread.js new file mode 100755 index 000000000000..6ff5e56c5c99 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/thread/JmolThread.js @@ -0,0 +1,113 @@ +Clazz.declarePackage("J.thread"); +Clazz.load(["java.lang.Thread"], "J.thread.JmolThread", ["JU.Logger", "JV.Viewer"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.$name = "JmolThread"; +this.vwr = null; +this.eval = null; +this.sc = null; +this.haveReference = false; +this.hoverEnabled = false; +this.startTime = 0; +this.targetTime = 0; +this.lastRepaintTime = 0; +this.currentTime = 0; +this.sleepTime = 0; +this.isJS = false; +this.stopped = false; +this.isReset = false; +this.useTimeout = true; +this.junk = 0; +Clazz.instantialize(this, arguments);}, J.thread, "JmolThread", Thread); +Clazz.defineMethod(c$, "setManager", +function(manager, vwr, params){ +return 0; +}, "~O,JV.Viewer,~O"); +Clazz.defineMethod(c$, "setViewer", +function(vwr, name){ +this.setName(name); +this.$name = name + "_" + (++J.thread.JmolThread.threadIndex); +this.vwr = vwr; +this.isJS = vwr.isSingleThreaded; +}, "JV.Viewer,~S"); +Clazz.defineMethod(c$, "setEval", +function(eval){ +this.eval = eval; +this.sc = this.vwr.getEvalContextAndHoldQueue(eval); +if (this.sc != null) this.useTimeout = eval.getAllowJSThreads(); +}, "J.api.JmolScriptEvaluator"); +Clazz.defineMethod(c$, "resumeEval", +function(){ +if (this.eval == null || !this.isJS && !this.vwr.testAsync || !this.useTimeout) return; +this.sc.mustResumeEval = !this.stopped; +var eval = this.eval; +var sc = this.sc; +this.eval = null; +this.sc = null; +{ +setTimeout(function() { eval.resumeEval(sc); }, 1); +}}); +Clazz.overrideMethod(c$, "start", +function(){ +{ +this.run(); +}}); +Clazz.overrideMethod(c$, "run", +function(){ +this.startTime = System.currentTimeMillis(); +try { +this.run1(-1); +} catch (e$$) { +if (Clazz.exceptionOf(e$$,"InterruptedException")){ +var e = e$$; +{ +if (JU.Logger.debugging && !(Clazz.instanceOf(this,"J.thread.HoverWatcherThread"))) this.oops(e); +} +} else if (Clazz.exceptionOf(e$$, Exception)){ +var e = e$$; +{ +this.oops(e); +} +} else { +throw e$$; +} +} +}); +Clazz.defineMethod(c$, "oops", +function(e){ +JU.Logger.debug(this.$name + " exception " + e); +if (!JV.Viewer.isJS || JV.Viewer.isSwingJS) e.printStackTrace(); +this.vwr.queueOnHold = false; +}, "Exception"); +Clazz.defineMethod(c$, "runSleep", +function(millis, runPtr){ +if (this.isJS && !this.useTimeout) { +return true; +}{ +var me = this; +setTimeout(function(){me.run1(runPtr)}, Math.max(millis, 0)); +return false; +}}, "~N,~N"); +Clazz.defineMethod(c$, "interrupt", +function(){ +this.stopped = true; +this.vwr.startHoverWatcher(true); +if (!this.isJS) Clazz.superCall(this, J.thread.JmolThread, "interrupt", []); +}); +Clazz.defineMethod(c$, "checkInterrupted", +function(ref){ +if (this.haveReference && (ref == null || !ref.$name.equals(this.$name))) return true; +{ +return this.stopped; +}}, "J.thread.JmolThread"); +Clazz.defineMethod(c$, "reset", +function(){ +this.isReset = true; +this.interrupt(); +}); +Clazz.defineMethod(c$, "toString", +function(){ +return Clazz.superCall(this, J.thread.JmolThread, "toString", []) + "[" + this.$name + "]"; +}); +c$.threadIndex = 0; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/thread/MoveToThread.js b/config/plugins/visualizations/jmol/static/j2s/J/thread/MoveToThread.js new file mode 100755 index 000000000000..4685ec638bcf --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/thread/MoveToThread.js @@ -0,0 +1,278 @@ +Clazz.declarePackage("J.thread"); +Clazz.load(["J.thread.JmolThread"], "J.thread.MoveToThread", ["JU.A4", "$.M3", "$.P3", "$.V3"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.isMove = false; +this.aaStepCenter = null; +this.aaStepNavCenter = null; +this.aaStep = null; +this.aaTotal = null; +this.matrixStart = null; +this.matrixStartInv = null; +this.matrixStep = null; +this.matrixEnd = null; +this.center = null; +this.navCenter = null; +this.ptMoveToCenter = null; +this.zoom = null; +this.xTrans = null; +this.yTrans = null; +this.xNav = null; +this.yNav = null; +this.navDepth = null; +this.cameraDepth = null; +this.cameraX = null; +this.cameraY = null; +this.rotationRadius = null; +this.pixelScale = null; +this.fps = 0; +this.frameTimeMillis = 0; +this.doEndMove = false; +this.fStep = 0; +this.transformManager = null; +this.floatSecondsTotal = 0; +this.totalSteps = 0; +this.iStep = 0; +this.timePerStep = 0; +this.radiansXStep = 0; +this.radiansYStep = 0; +this.radiansZStep = 0; +this.dRot = null; +this.dTrans = null; +this.dZoom = 0; +this.dSlab = 0; +this.zoomPercent0 = 0; +this.slab = 0; +this.transX = 0; +this.transY = 0; +if (!Clazz.isClassDefined("J.thread.MoveToThread.Slider")) { +J.thread.MoveToThread.$MoveToThread$Slider$ (); +} +Clazz.instantialize(this, arguments);}, J.thread, "MoveToThread", J.thread.JmolThread); +Clazz.makeConstructor(c$, +function(){ +this.aaStepCenter = new JU.V3(); +this.aaStepNavCenter = new JU.V3(); +this.aaStep = new JU.A4(); +this.aaTotal = new JU.A4(); +this.matrixStart = new JU.M3(); +this.matrixStartInv = new JU.M3(); +this.matrixStep = new JU.M3(); +this.matrixEnd = new JU.M3(); +}); +Clazz.overrideMethod(c$, "setManager", +function(manager, vwr, params){ +var options = params; +this.isMove = (Clazz.instanceOf(options[0],"JU.V3")); +this.setViewer(vwr, (this.isMove ? "moveThread" : "MoveToThread")); +this.transformManager = manager; +return (this.isMove ? this.setManagerMove(options) : this.setManagerMoveTo(options)); +}, "~O,JV.Viewer,~O"); +Clazz.overrideMethod(c$, "run1", +function(mode){ +if (this.isMove) this.run1Move(mode); + else this.run1MoveTo(mode); +}, "~N"); +Clazz.defineMethod(c$, "interrupt", +function(){ +this.doEndMove = false; +Clazz.superCall(this, J.thread.MoveToThread, "interrupt", []); +}); +Clazz.defineMethod(c$, "setManagerMove", +function(options){ +this.dRot = options[0]; +this.dTrans = options[1]; +var f = options[2]; +this.dZoom = f[0]; +this.dSlab = f[1]; +this.floatSecondsTotal = f[2]; +var fps = Clazz.floatToInt(f[3]); +this.slab = this.transformManager.getSlabPercentSetting(); +this.transX = this.transformManager.getTranslationXPercent(); +this.transY = this.transformManager.getTranslationYPercent(); +this.timePerStep = Clazz.doubleToInt(1000 / fps); +this.totalSteps = Clazz.floatToInt(fps * this.floatSecondsTotal); +if (this.totalSteps <= 0) this.totalSteps = 1; +var radiansPerDegreePerStep = (1 / 57.29577951308232 / this.totalSteps); +this.radiansXStep = radiansPerDegreePerStep * this.dRot.x; +this.radiansYStep = radiansPerDegreePerStep * this.dRot.y; +this.radiansZStep = radiansPerDegreePerStep * this.dRot.z; +this.zoomPercent0 = this.transformManager.zmPct; +this.iStep = 0; +return this.totalSteps; +}, "~A"); +Clazz.defineMethod(c$, "setManagerMoveTo", +function(options){ +this.center = options[0]; +this.matrixEnd.setM3(options[1]); +var f = options[3]; +this.ptMoveToCenter = (this.center == null ? this.transformManager.fixedRotationCenter : this.center); +this.floatSecondsTotal = f[0]; +this.zoom = this.newSlider(this.transformManager.zmPct, f[1]); +this.xTrans = this.newSlider(this.transformManager.getTranslationXPercent(), f[2]); +this.yTrans = this.newSlider(this.transformManager.getTranslationYPercent(), f[3]); +this.rotationRadius = this.newSlider(this.transformManager.modelRadius, (this.center == null || Float.isNaN(f[4]) ? this.transformManager.modelRadius : f[4] <= 0 ? this.vwr.ms.calcRotationRadius(this.vwr.am.cmi, this.center, false) : f[4])); +this.pixelScale = this.newSlider(this.transformManager.scaleDefaultPixelsPerAngstrom, f[5]); +if (f[6] != 0) { +this.navCenter = options[2]; +this.navDepth = this.newSlider(this.transformManager.navigationDepthPercent, f[6]); +this.xNav = this.newSlider(this.transformManager.getNavigationOffsetPercent('X'), f[7]); +this.yNav = this.newSlider(this.transformManager.getNavigationOffsetPercent('Y'), f[8]); +}this.cameraDepth = this.newSlider(this.transformManager.getCameraDepth(), f[9]); +this.cameraX = this.newSlider(this.transformManager.camera.x, f[10]); +this.cameraY = this.newSlider(this.transformManager.camera.y, f[11]); +this.transformManager.getRotation(this.matrixStart); +this.matrixStartInv.invertM(this.matrixStart); +this.matrixStep.mul2(this.matrixEnd, this.matrixStartInv); +this.aaTotal.setM(this.matrixStep); +this.fps = 30; +this.totalSteps = Clazz.floatToInt(this.floatSecondsTotal * this.fps); +this.frameTimeMillis = Clazz.doubleToInt(1000 / this.fps); +this.targetTime = System.currentTimeMillis(); +this.aaStepCenter.sub2(this.ptMoveToCenter, this.transformManager.fixedRotationCenter); +this.aaStepCenter.scale(1 / this.totalSteps); +if (this.navCenter != null && this.transformManager.mode == 1) { +this.aaStepNavCenter.sub2(this.navCenter, this.transformManager.navigationCenter); +this.aaStepNavCenter.scale(1 / this.totalSteps); +}this.iStep = 0; +return this.totalSteps; +}, "~A"); +Clazz.defineMethod(c$, "newSlider", +function(start, value){ +return (Float.isNaN(value) || value == 3.4028235E38 ? null : Clazz.innerTypeInstance(J.thread.MoveToThread.Slider, this, null, start, value)); +}, "~N,~N"); +Clazz.defineMethod(c$, "run1Move", +function(mode){ +while (true) switch (mode) { +case -1: +if (this.floatSecondsTotal > 0) this.vwr.setInMotion(true); +mode = 0; +break; +case 0: +if (this.stopped || this.iStep >= this.totalSteps) { +mode = -2; +break; +}this.iStep++; +if (this.dRot.x != 0) this.transformManager.rotateXRadians(this.radiansXStep, null); +if (this.dRot.y != 0) this.transformManager.rotateYRadians(this.radiansYStep, null); +if (this.dRot.z != 0) this.transformManager.rotateZRadians(this.radiansZStep); +if (this.dZoom != 0) this.transformManager.zoomToPercent(this.zoomPercent0 + this.dZoom * this.iStep / this.totalSteps); +if (this.dTrans.x != 0) this.transformManager.translateToPercent('x', this.transX + this.dTrans.x * this.iStep / this.totalSteps); +if (this.dTrans.y != 0) this.transformManager.translateToPercent('y', this.transY + this.dTrans.y * this.iStep / this.totalSteps); +if (this.dTrans.z != 0) this.transformManager.translateToPercent('z', this.dTrans.z * this.iStep / this.totalSteps); +if (this.dSlab != 0) this.transformManager.slabToPercent(Clazz.doubleToInt(Math.floor(this.slab + this.dSlab * this.iStep / this.totalSteps))); +if (this.iStep == this.totalSteps) { +mode = -2; +break; +}var timeSpent = (System.currentTimeMillis() - this.startTime); +var timeAllowed = this.iStep * this.timePerStep; +if (timeSpent < timeAllowed) { +this.vwr.requestRepaintAndWait("moveThread"); +if (!this.isJS && !this.vwr.isScriptExecuting()) { +mode = -2; +break; +}timeSpent = (System.currentTimeMillis() - this.startTime); +this.sleepTime = timeAllowed - timeSpent; +if (!this.runSleep(this.sleepTime, 0)) return; +}break; +case -2: +if (this.floatSecondsTotal > 0) this.vwr.setInMotion(false); +this.resumeEval(); +return; +} + +}, "~N"); +Clazz.defineMethod(c$, "run1MoveTo", +function(mode){ +while (true) switch (mode) { +case -1: +if (this.totalSteps > 0) this.vwr.setInMotion(true); +mode = 0; +break; +case 0: +if (this.stopped || ++this.iStep >= this.totalSteps) { +mode = -2; +break; +}this.doStepTransform(); +this.doEndMove = true; +this.targetTime += this.frameTimeMillis; +this.currentTime = System.currentTimeMillis(); +var doRender = (this.currentTime < this.targetTime); +if (!doRender && this.isJS) { +this.targetTime = this.currentTime; +doRender = true; +}if (doRender) this.vwr.requestRepaintAndWait("movetoThread"); +if (this.transformManager.movetoThread == null || !this.transformManager.movetoThread.$name.equals(this.$name) || !this.isJS && this.eval != null && !this.vwr.isScriptExecuting()) { +this.stopped = true; +break; +}this.currentTime = System.currentTimeMillis(); +var sleepTime = (this.targetTime - this.currentTime); +if (!this.runSleep(sleepTime, 0)) return; +mode = 0; +break; +case -2: +if (this.totalSteps <= 0 || this.doEndMove && !this.stopped) this.doFinalTransform(); +if (this.totalSteps > 0) this.vwr.setInMotion(false); +this.vwr.moveUpdate(this.floatSecondsTotal); +if (this.transformManager.movetoThread != null && !this.stopped) { +this.transformManager.movetoThread = null; +this.vwr.finalizeTransformParameters(); +}this.resumeEval(); +return; +} + +}, "~N"); +Clazz.defineMethod(c$, "doStepTransform", +function(){ +if (!Float.isNaN(this.matrixEnd.m00)) { +this.transformManager.getRotation(this.matrixStart); +this.matrixStartInv.invertM(this.matrixStart); +this.matrixStep.mul2(this.matrixEnd, this.matrixStartInv); +this.aaTotal.setM(this.matrixStep); +this.aaStep.setAA(this.aaTotal); +this.aaStep.angle /= (this.totalSteps - this.iStep); +if (this.aaStep.angle == 0) this.matrixStep.setScale(1); + else this.matrixStep.setAA(this.aaStep); +this.matrixStep.mul(this.matrixStart); +}this.fStep = this.iStep / (this.totalSteps - 1); +if (this.center != null) this.transformManager.fixedRotationCenter.add(this.aaStepCenter); +if (this.navCenter != null && this.transformManager.mode == 1) { +var pt = JU.P3.newP(this.transformManager.navigationCenter); +pt.add(this.aaStepNavCenter); +this.transformManager.setNavigatePt(pt); +}this.setValues(this.matrixStep, null, null); +}); +Clazz.defineMethod(c$, "doFinalTransform", +function(){ +this.fStep = -1; +this.setValues(this.matrixEnd, this.center, this.navCenter); +}); +Clazz.defineMethod(c$, "setValues", +function(m, center, navCenter){ +this.transformManager.setAll(center, m, navCenter, this.getVal(this.zoom), this.getVal(this.xTrans), this.getVal(this.yTrans), this.getVal(this.rotationRadius), this.getVal(this.pixelScale), this.getVal(this.navDepth), this.getVal(this.xNav), this.getVal(this.yNav), this.getVal(this.cameraDepth), this.getVal(this.cameraX), this.getVal(this.cameraY)); +}, "JU.M3,JU.P3,JU.P3"); +Clazz.defineMethod(c$, "getVal", +function(s){ +return (s == null ? NaN : s.getVal(this.fStep)); +}, "J.thread.MoveToThread.Slider"); +c$.$MoveToThread$Slider$ = function(){ +/*if4*/;(function(){ +var c$ = Clazz.decorateAsClass(function(){ +Clazz.prepareCallback(this, arguments); +this.start = 0; +this.delta = 0; +this.value = 0; +Clazz.instantialize(this, arguments);}, J.thread.MoveToThread, "Slider", null); +Clazz.makeConstructor(c$, +function(start, value){ +this.start = start; +this.value = value; +this.delta = value - start; +}, "~N,~N"); +Clazz.defineMethod(c$, "getVal", +function(fStep){ +return (fStep < 0 ? this.value : this.start + fStep * this.delta); +}, "~N"); +/*eoif4*/})(); +}; +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/thread/SpinThread.js b/config/plugins/visualizations/jmol/static/j2s/J/thread/SpinThread.js new file mode 100755 index 000000000000..b58c086079c1 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/thread/SpinThread.js @@ -0,0 +1,131 @@ +Clazz.declarePackage("J.thread"); +Clazz.load(["J.thread.JmolThread"], "J.thread.SpinThread", ["JU.Logger"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.transformManager = null; +this.endDegrees = 0; +this.endPositions = null; +this.dihedralList = null; +this.nDegrees = 0; +this.bsAtoms = null; +this.isNav = false; +this.isGesture = false; +this.myFps = 0; +this.angle = 0; +this.haveNotified = false; +this.index = 0; +this.bsBranches = null; +this.isDone = false; +this.m4 = null; +Clazz.instantialize(this, arguments);}, J.thread, "SpinThread", J.thread.JmolThread); +Clazz.overrideMethod(c$, "setManager", +function(manager, vwr, params){ +this.transformManager = manager; +this.setViewer(vwr, "SpinThread"); +var options = params; +if (options == null) { +this.isNav = true; +} else { +this.endDegrees = (options[0]).floatValue(); +this.endPositions = options[1]; +this.dihedralList = options[2]; +if (this.dihedralList != null) this.bsBranches = vwr.ms.getBsBranches(this.dihedralList); +this.bsAtoms = options[3]; +this.isGesture = (options[4] != null); +}return 0; +}, "~O,JV.Viewer,~O"); +Clazz.overrideMethod(c$, "run1", +function(mode){ +while (true) switch (mode) { +case -1: +this.myFps = (this.isNav ? this.transformManager.navFps : this.transformManager.spinFps); +this.vwr.g.setB(this.isNav ? "_navigating" : "_spinning", true); +this.haveReference = true; +this.vwr.startHoverWatcher(false); +mode = 0; +break; +case 0: +if (this.isReset || this.checkInterrupted(this.transformManager.spinThread)) { +mode = -2; +break; +}if (this.isNav && this.myFps != this.transformManager.navFps) { +this.myFps = this.transformManager.navFps; +this.index = 0; +this.startTime = System.currentTimeMillis(); +} else if (!this.isNav && this.myFps != this.transformManager.spinFps && this.bsAtoms == null) { +this.myFps = this.transformManager.spinFps; +this.index = 0; +this.startTime = System.currentTimeMillis(); +}if (this.myFps == 0 || !(this.isNav ? this.transformManager.navOn : this.transformManager.spinOn)) { +mode = -2; +break; +}var refreshNeeded = (this.endDegrees >= 1e10 ? true : this.isNav ? this.transformManager.navX != 0 || this.transformManager.navY != 0 || this.transformManager.navZ != 0 : this.transformManager.isSpinInternal && this.transformManager.internalRotationAxis.angle != 0 || this.transformManager.isSpinFixed && this.transformManager.fixedRotationAxis.angle != 0 || !this.transformManager.isSpinFixed && !this.transformManager.isSpinInternal && (this.transformManager.spinX != 0 || this.transformManager.spinY != 0 || this.transformManager.spinZ != 0)); +this.targetTime = Clazz.floatToLong(++this.index * 1000 / this.myFps); +this.currentTime = System.currentTimeMillis() - this.startTime; +this.sleepTime = (this.targetTime - this.currentTime); +if (this.sleepTime < 0) { +if (!this.haveNotified) JU.Logger.info("spinFPS is set too fast (" + this.myFps + ") -- can't keep up!"); +this.haveNotified = true; +this.startTime -= this.sleepTime; +this.sleepTime = 0; +}var isInMotion = (this.bsAtoms == null && this.vwr.getInMotion(false)); +if (isInMotion) { +if (this.isGesture) { +mode = -2; +break; +}this.sleepTime += 1000; +}if (refreshNeeded && !isInMotion && (this.transformManager.spinOn || this.transformManager.navOn)) this.doTransform(); +mode = 1; +break; +case 1: +while (!this.checkInterrupted(this.transformManager.spinThread) && !this.vwr.getRefreshing()) if (!this.runSleep(10, 1)) return; + +if (this.bsAtoms != null || this.vwr.g.waitForMoveTo && this.endDegrees != 3.4028235E38) this.vwr.requestRepaintAndWait("spin thread"); + else this.vwr.refresh(1, "SpinThread"); +if (this.endDegrees >= 1e10 ? this.nDegrees / this.endDegrees > 0.99 : !this.isNav && this.endDegrees >= 0 ? this.nDegrees >= this.endDegrees - 0.001 : -this.nDegrees <= this.endDegrees + 0.001) { +this.isDone = true; +this.transformManager.setSpinOff(); +}if (!this.runSleep(this.sleepTime, 0)) return; +mode = 0; +break; +case -2: +if (this.dihedralList != null) { +this.vwr.setDihedrals(this.dihedralList, this.bsBranches, 0); +} else if (this.bsAtoms != null && this.endPositions != null) { +this.vwr.setAtomCoords(this.bsAtoms, 1145047049, this.endPositions); +this.bsAtoms = null; +this.endPositions = null; +}if (!this.isReset) { +this.transformManager.setSpinOff(); +this.vwr.startHoverWatcher(true); +}this.stopped = !this.isDone; +this.resumeEval(); +this.stopped = true; +return; +} + +}, "~N"); +Clazz.defineMethod(c$, "doTransform", +function(){ +if (this.dihedralList != null) { +var f = 1 / this.myFps / this.endDegrees; +this.vwr.setDihedrals(this.dihedralList, this.bsBranches, f); +this.nDegrees += 1 / this.myFps; +} else if (this.isNav) { +this.transformManager.setNavigationOffsetRelative(); +} else if (this.transformManager.isSpinInternal || this.transformManager.isSpinFixed) { +this.angle = (this.transformManager.isSpinInternal ? this.transformManager.internalRotationAxis : this.transformManager.fixedRotationAxis).angle / this.myFps; +if (this.transformManager.isSpinInternal) { +this.transformManager.rotateAxisAngleRadiansInternal(this.angle, this.bsAtoms, this.m4, false); +} else { +this.transformManager.rotateAxisAngleRadiansFixed(this.angle, this.bsAtoms); +}this.nDegrees += Math.abs(this.angle * 57.29577951308232); +} else { +if (this.transformManager.spinX != 0) { +this.transformManager.rotateXRadians((this.transformManager.spinX * 0.017453292519943295 / this.myFps), null); +}if (this.transformManager.spinY != 0) { +this.transformManager.rotateYRadians((this.transformManager.spinY * 0.017453292519943295 / this.myFps), null); +}if (this.transformManager.spinZ != 0) { +this.transformManager.rotateZRadians((this.transformManager.spinZ * 0.017453292519943295 / this.myFps)); +}}}); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/thread/TimeoutThread.js b/config/plugins/visualizations/jmol/static/j2s/J/thread/TimeoutThread.js new file mode 100755 index 000000000000..bb3f3d66065d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/thread/TimeoutThread.js @@ -0,0 +1,100 @@ +Clazz.declarePackage("J.thread"); +Clazz.load(["J.thread.JmolThread"], "J.thread.TimeoutThread", ["JU.SB"], function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.script = null; +this.status = 0; +this.triggered = true; +Clazz.instantialize(this, arguments);}, J.thread, "TimeoutThread", J.thread.JmolThread); +Clazz.makeConstructor(c$, +function(vwr, name, ms, script){ +this.setViewer(vwr, name); +this.$name = name; +this.set(ms, script); +}, "JV.Viewer,~S,~N,~S"); +Clazz.defineMethod(c$, "set", +function(ms, script){ +this.sleepTime = ms; +if (script != null) this.script = script; +}, "~N,~S"); +Clazz.overrideMethod(c$, "toString", +function(){ +return "timeout name=" + this.$name + " executions=" + this.status + " mSec=" + this.sleepTime + " secRemaining=" + (this.targetTime - System.currentTimeMillis()) / 1000 + " script=" + this.script; +}); +Clazz.overrideMethod(c$, "run1", +function(mode){ +while (true) { +switch (mode) { +case -1: +if (!this.isJS) Thread.currentThread().setPriority(1); +this.targetTime = System.currentTimeMillis() + Math.abs(this.sleepTime); +mode = 0; +break; +case 0: +if (this.checkInterrupted(null) || this.script == null || this.script.length == 0) return; +if (!this.runSleep(26, 1)) return; +mode = 1; +break; +case 1: +mode = (System.currentTimeMillis() < this.targetTime ? 0 : 2); +break; +case 2: +this.currentTime = System.currentTimeMillis(); +if (this.vwr.timeouts.get(this.$name) == null) return; +this.status++; +var continuing = (this.sleepTime < 0); +if (continuing) this.targetTime = System.currentTimeMillis() + Math.abs(this.sleepTime); + else this.vwr.timeouts.remove(this.$name); +if (this.triggered) { +this.triggered = false; +if (this.$name.equals("_SET_IN_MOTION_")) { +this.vwr.checkInMotion(2); +} else { +this.vwr.evalStringQuiet((continuing ? this.script + ";\ntimeout ID \"" + this.$name + "\";" : this.script)); +}}mode = (continuing ? 0 : -2); +break; +case -2: +this.vwr.timeouts.remove(this.$name); +return; +} +} +}, "~N"); +c$.clear = Clazz.defineMethod(c$, "clear", +function(timeouts){ +for (var o, $o = timeouts.values().iterator (); $o.hasNext()&& ((o = $o.next ()) || true);) { +var t = o; +if (!t.script.equals("exitJmol")) t.interrupt(); +} +timeouts.clear(); +}, "java.util.Map"); +c$.setTimeout = Clazz.defineMethod(c$, "setTimeout", +function(vwr, timeouts, name, mSec, script){ +var t = timeouts.get(name); +if (mSec == 0) { +if (t != null) { +t.interrupt(); +timeouts.remove(name); +}return; +}if (t != null) { +t.set(mSec, script); +return; +}t = new J.thread.TimeoutThread(vwr, name, mSec, script); +timeouts.put(name, t); +t.start(); +}, "JV.Viewer,java.util.Map,~S,~N,~S"); +c$.trigger = Clazz.defineMethod(c$, "trigger", +function(timeouts, name){ +var t = timeouts.get(name); +if (t != null) t.triggered = (t.sleepTime < 0); +}, "java.util.Map,~S"); +c$.showTimeout = Clazz.defineMethod(c$, "showTimeout", +function(timeouts, name){ +var sb = new JU.SB(); +if (timeouts != null) { +for (var o, $o = timeouts.values().iterator (); $o.hasNext()&& ((o = $o.next ()) || true);) { +var t = o; +if (name == null || t.$name.equalsIgnoreCase(name)) sb.append(t.toString()).append("\n"); +} +}return (sb.length() > 0 ? sb.toString() : " "); +}, "java.util.Map,~S"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/thread/VibrationThread.js b/config/plugins/visualizations/jmol/static/j2s/J/thread/VibrationThread.js new file mode 100755 index 000000000000..81596389f473 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/thread/VibrationThread.js @@ -0,0 +1,46 @@ +Clazz.declarePackage("J.thread"); +Clazz.load(["J.thread.JmolThread"], "J.thread.VibrationThread", null, function(){ +var c$ = Clazz.decorateAsClass(function(){ +this.transformManager = null; +Clazz.instantialize(this, arguments);}, J.thread, "VibrationThread", J.thread.JmolThread); +Clazz.overrideMethod(c$, "setManager", +function(manager, vwr, options){ +this.transformManager = manager; +this.setViewer(vwr, "VibrationThread"); +return 0; +}, "~O,JV.Viewer,~O"); +Clazz.overrideMethod(c$, "run1", +function(mode){ +var elapsed; +while (true) switch (mode) { +case -1: +this.lastRepaintTime = this.startTime = System.currentTimeMillis(); +this.vwr.startHoverWatcher(false); +this.haveReference = true; +mode = 0; +break; +case 0: +elapsed = (System.currentTimeMillis() - this.lastRepaintTime); +this.sleepTime = 33 - elapsed; +if (!this.runSleep(this.sleepTime, 1)) return; +mode = 1; +break; +case 1: +this.lastRepaintTime = System.currentTimeMillis(); +elapsed = (this.lastRepaintTime - this.startTime); +if (this.transformManager.vibrationPeriodMs == 0) { +mode = -2; +} else { +var t = (elapsed % this.transformManager.vibrationPeriodMs) / this.transformManager.vibrationPeriodMs; +this.transformManager.setVibrationT(t); +this.vwr.refresh(3, "VibrationThread"); +mode = (this.checkInterrupted(this.transformManager.vibrationThread) ? -2 : 0); +}break; +case -2: +this.vwr.startHoverWatcher(true); +return; +} + +}, "~N"); +}); +;//5.0.1-v2 Fri Jun 07 15:32:46 BST 2024 diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/JmolApplet.pot b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/JmolApplet.pot new file mode 100755 index 000000000000..c115b83405c2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/JmolApplet.pot @@ -0,0 +1,2563 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +msgid "&Close" +msgstr "" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +msgid "none" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "JavaScript Console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Open local file" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Open URL" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ar.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ar.po new file mode 100755 index 000000000000..a53b704732b0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ar.po @@ -0,0 +1,2601 @@ +# Arabic translation for jmol +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Dilmi Fethi \n" +"Language-Team: Arabic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Ù…Øرر الطرÙية لـ Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "أغلق" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "Ù…&ساعدة" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "ا&بØØ«..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&تØكم" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "رياضيات ودوال" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "اØÙظ &الإعدادات" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&المزيد" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "المÙØرّر" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "الØالة" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Ù†ÙØ°" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Ø§Ù…Ø³Ø Ø§Ù„Ù…Ø®Ø±Ø¬Ø§Øª" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Ø§Ù…Ø³Ø Ø§Ù„Ù…Ø¯Ø®Ù„Ø§Øª" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "المØÙوظات" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "تØميل" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"اظغط CTRL+ENTER لإضاÙØ© سطر جديد أو ألصق نموذج البيانات ثم أنقر زر تØميل" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "المØرر النصي لـ jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "الطرÙية" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Ø¥ÙتØ" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "الواجهة" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "برنامج نصّي" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "تØقق" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "خطوة" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "أوق٠مؤقتاً" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "إستأنÙ" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "أوقÙ" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "امسØ" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "أغلق" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "مل٠أو رابط URL" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "نوع الصورة" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG جودة عادية ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG مظغوط ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG جودة عادية ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "نعم" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "لا" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "هل تريد الكتابة على الملÙØŸ {0}" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "تØذير" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "كل الملÙات" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "ألغ الأمر" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Ø£Øبط المل٠المختار" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "التÙاصيل" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "الدليل" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Ø¥ÙØªØ Ø§Ù„Ù…Ø³Ø§Ø± المØدد" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "سمات" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "عدل" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "مل٠عام" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "الإسم" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "إسم الملÙ:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "الØجم" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "الملÙات Øسب النوع:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "النوع" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "المساعدة" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "تعليمات Øول المل٠المختار" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "البداية" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "قائمة" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "نظرة أقرب" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "خطأ ÙÙŠ إنشاء مجلد" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "مجلد جديد" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "أنشء مجلداً جديداً" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Ø¥ÙØªØ Ø§Ù„Ù…Ù„Ùات المØددة" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Ø¥ØÙظ" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Ø¥ØÙظ الملÙات المØددة" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Ø¥ØÙظ بالداخل:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "تØديث" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "تØديث قائمة الدليل" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "رÙع" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "ارÙع بمستوى واØد للأعلى" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "مواÙÙ‚" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "معاينة" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "إلØاق النماذج" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "كتلونية" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "تشيكية" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "دنماركية" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "ألمانية" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "يونانية" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "إنجليزية بريطانية" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "إنجليزية أمريكية" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "إسبانية" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "إستونية" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Ùرنسية" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "هنغارية" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "إيطالية" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "كورية" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "نرويجية بوكمال" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "هولندية" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "بولندية" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "برتغالية" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "برتغالية البرازيل" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "روسية" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "سلوÙينية" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "سويدية" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "تركية" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "أوكرانية" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "صينية مبسّطة" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "صينية تقليدية" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "لم يتم تØديد أي ذرة! لا شيئ Ø£Ùعله!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} ذرات سيتم تصغيرها إلى الØد الأدنى" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "لا شيء" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "الكل" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} معالج" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "الØجم الكلي {0} ميغابايت" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "الØجم الأقصى {0} ميغابايت" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Ù…Øرر الطرÙية لـ Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "لا ذرة Ù…Øملة" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "ظبط" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "عنصر" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "لغات" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Øسب إسم" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "نموذج الإستعمالات" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "إختر ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "الذرات: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "المجموعات: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "البوليميرات: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "النماذج {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "عرض {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "القائمة الرئيسية" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "لا شيء" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "إستعرض المØددة Ùقط" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "إعكس التØديد" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "عرض" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "الواجهة" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "اليسار" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "اليمين" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "الأسÙÙ„" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "عودة" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Ù…Øاور" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Ù…Øاور" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Ù…Øاور" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Ù…Øاور" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Ù…Øاور" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Ù…Øاور" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "البروتين" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "الأساس المتبقي (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "الØمض المتبقي (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "النواة" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "الأسس" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "جميع المذيبات" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "الشكل" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "مخطط" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "الإطار السلكي" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "كرتون" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "تعقّب" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "ذرات" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "مقÙÙ„" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "روابط" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Ù…Ùعّل" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Øساب" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "التراكيب" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "صواريخ الكرتون" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "إهتزاز" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "المتجهات" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "التصوير المجسامي" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "علامات" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "بإسم الذرة" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "برقم الذرة" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "موقع العلامة على الذرة" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "توسيط" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "اليمين العلوي" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "اليمين السÙلي" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "اليسار العلوي" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "اليسار السÙلي" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "اللون" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "جزيئ" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "سلسلة" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "مجموعة" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "أسود" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "أبيض" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "سماوي" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Ø£Øمر" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "برتقالي" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "أصÙر" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "أخضر" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "أزرق" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "نيلي" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "بنÙسجي" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "سالمون" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "أخضر زيتوني" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "رمادي" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "ذهبي" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "إجعله شبه Ø´ÙاÙ" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "الخلÙية" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "أسطØ" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Ù…Øاور" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "الØجم" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "تكبير" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "تصغير" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Ù„Ù" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Øركة" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "تكرار" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "أوقÙ" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Ù…Øرر الطرÙية لـ Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Ø¥ÙØªØ Ø§Ù„Ù…Ù„Ùات المØددة" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Ø¥ÙتØ" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "خطأ ÙÙŠ الملÙ:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "تØميل بريمج Applet جارÙ" + +#~ msgid " {0} seconds" +#~ msgstr " {0} ثانية" + +#~ msgid "1 processor" +#~ msgstr "معالج واØد" + +#~ msgid "unknown processor count" +#~ msgstr "لا يوجد معالج" + +#~ msgid "{0} MB free" +#~ msgstr "المساØØ© الØرة {0} ميغابايت" + +#~ msgid "unknown maximum" +#~ msgstr "الØد الأقصى غير معلوم" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/bs.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/bs.po new file mode 100755 index 000000000000..36f15df91420 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/bs.po @@ -0,0 +1,2564 @@ +# Bosnian translation for jmol +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Kenan DerviÅ¡ević \n" +"Language-Team: Bosnian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +msgid "&Close" +msgstr "" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Pomoć" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Pretraga..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Naredbe" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&ViÅ¡e" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "UreÄ‘ivaÄ" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "IzvrÅ¡i" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historija" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "UÄitaj" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +msgid "none" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "JavaScript Console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Open local file" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Open URL" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ca.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ca.po new file mode 100755 index 000000000000..9a26b9b9c047 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ca.po @@ -0,0 +1,2649 @@ +# Jmol application. +# Copyright (C) 1998-2004 The Jmol Development Team +# This file is distributed under the same license as the PACKAGE package. +# Toni Hermoso Pulido , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 23:44+0000\n" +"Last-Translator: Nicolas Vervelle \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Country: SPAIN\n" +"X-Poedit-Language: Catalan\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Element?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Consola de scripts del Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Fitxer" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Tanca" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "A&juda" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "Ce&rca…" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Ordres" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Funcions matemà tiques" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Defineix els &parà metres" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Més" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Estat" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Executa" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Neteja la sortida" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Neteja l'entrada" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historial" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Carrega" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"premeu Ctrl+Retorn per a una nova lÃnia o enganxeu les dades del model i " +"premeu Carrega" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Els missatges apareixeran acÃ. Introduïu les ordres en el quadre a " +"continuació. Feu clic a l'element Ajuda del menú de la consola per a " +"consultar l'ajuda en lÃnia, que es mostrarà en una nova finestra del " +"navegador." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Editor d'scripts del Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Consola" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Obre" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Frontal" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Script" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Comprova" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "A dalt" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Pas" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pausa" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Reprèn" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Atura" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Neteja" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Tanca" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Fitxer o URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Tipus d'imatge" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Qualitat del JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Compressió PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Qualitat del PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "SÃ" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "No" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Voleu sobreescriure el fitxer {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "AvÃs" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Tots els fitxers" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Cancel·la" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Avorta el dià leg de selecció de fitxers" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Detalls" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Directori" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Obre el directori seleccionat" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Atributs" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Modificat" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Fitxer genèric" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nom" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Nom del fitxer:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Mida" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Fitxers del tipus:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Tipus" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Ajuda" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Ajuda del selector de fitxers" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Inici" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Llista" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Cerca a:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "S'ha produït un error en crear la carpeta nova" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Carpeta nova" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Crea una carpeta nova" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Obre el fitxer seleccionat" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Desa" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Desa el fitxer seleccionat" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Desa a:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Actualitza" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Actualitza la llista de directoris" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Amunt" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Un nivell amunt" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "D'acord" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Previsualització" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Afegeix els models" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "Dibuixos del PDB" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"Nota: Existeixen posicions pels hidrògens amida de l'esquelet però seran " +"ignorats. Les seues posicions s'aproximaran, tal i com es fa en l''anà lisi " +"DSSP tÃpic.\n" +"Utilitzeu {0} si no voleu emprar aquest mètode.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"NOTA: Existeixen posicions per als hidrògens amida de l'esquelet i " +"s'utilitzaran. Els resultats poden diferir d'un mode significatiu dels d'una " +"anà lisi DSSP tÃpica.\n" +"Feu servir {0} per ignorar dites posicions dels hidrògens.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Àrab" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturià " + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "Àzeri" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosnià " + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Català " + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Txec" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Danès" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Alemany" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Grec" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Anglès d'Austrà lia" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Anglès brità nic" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Anglès americà " + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Espanyol" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estonià " + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "Euskera" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finès" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Feroès" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Francès" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Frisó" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Gallec" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Croat" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Hongarès" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armeni" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesi" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italià " + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japonès" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javanès" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Coreà " + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Malai" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Noruec Bökmal" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Holandès" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occità " + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polonès" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portuguès" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Portuguès del Brasil" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Rus" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Eslovè" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbi" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Suec" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tà mil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turc" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uigur" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ucraïnès" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Uzbek" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Xinès simplificat" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Xinès tradicional" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "No es pot aconseguir la classe del camp de força {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "No s'ha seleccionat cap à tom -- no hi ha res per fer!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "Es minimitzaran {0} à toms." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "no ha pogut configurar-se el camp de força {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "nou" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "desfés (CTRL + Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "refés (CTRL + Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "centre" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "afegeix els hidrògens" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimitza" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "corregeix els hidrògens i minimitza" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "neteja" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "desa l'arxiu" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "desa l'estat" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "inverteix l'estereoquÃmica de l'anell" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "suprimeix l'à tom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "arrossega per enllaçar" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "arrossega l'à tom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "arrossega l'à tom (i minimitza)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "arrossega i minimitza la molècula (acoblament)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "augmenta la cà rrega" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "disminueix la cà rrega" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "suprimeix l'enllaç" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "únic" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "doble" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "triple" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "augmenta l'ordre" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "disminueix l'ordre" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "rota l'enllaç (Mayús. + arrossega)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "surt del modelat" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Grup espacial" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Cap" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Tot" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processadors" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB en total" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB com a mà xim" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Consola de scripts del Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Manual del ratolÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Traduccions" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistema" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "No s'ha carregat cap à tom" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Configuracions" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Model/fotograma" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Idioma" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Per nom de residu" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Per HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Orbitals moleculars ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Simetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Informació del model" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Selecciona ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Tots els {0} models" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Configuracions ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Col·lecció de {0} models" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "à toms: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "enllaços: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "grups: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "cadenes: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polÃmers: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Vista {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menú principal" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolècules" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolècula {0} ({1} à toms)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "carrega la biomolècula {0} ({1} à toms)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Cap" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Mostra només allò seleccionat" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Inverteix la selecció" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Visualització" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Frontal" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Esquerra" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Dreta" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Des de dalt" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Inferior" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Dorsal" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Proteïna" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Esquelet" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Cadenes laterals" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Residus polars" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Residus no polars" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Residus bà sics (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Residus acÃdics (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Residus sense cà rrega" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nucleic" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "ADN" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "ARN" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Bases" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Parelles AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Parelles GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Parelles AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Estructura secundà ria" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Tots els «HETATM» del PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Tot el solvent" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Tota l'aigua" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Solvent no aquós" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "HETATM no aquosos" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Lligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Carbohidrat" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Cap dels anteriors" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Estil" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Esquema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "Esferes CPK" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Boles i bastons" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Bastons" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Filferro" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Dibuix" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Traç" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Àtoms" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Desactiva" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Enllaços" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Activa" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Enllaços d'hidrogen" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Calcula" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Defineix els enllaços d'hidrogen de les cadenes laterals" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Defineix els ponts d'hidrogen de l'esquelet" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Enllaços disulfur" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Defineix els enllaços disulfur de les cadenes laterals" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Defineix els enllaços disulfur de l'esquelet" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Estructures" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Dibuix en coets" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Cintes" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Coets" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Cadenes" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibració" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vectors" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Espectres" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pÃxels" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Escala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Estereogrà fic" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Ulleres vermell+cian" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Ulleres vermell+blau" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Ulleres vermell+verd" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Visió guenya" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Visió paral·lela" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Etiquetes" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Amb el sÃmbol de l'element" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Amb el nom de l'à tom" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Amb el número de l'à tom" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Posició de l'etiqueta a l'à tom" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Centrat" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Marge superior dret" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Marge inferior dret" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Marge superior esquerre" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Marge inferior esquerre" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Color" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Per esquema" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Element (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Ubicació alternativa" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molècula" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Cà rrega formal" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Cà rrega parcial" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperatura (relativa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperatura (fixada)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminoà cid" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Cadena" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Grup" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monòmer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Segons la forma" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Hereta" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Negre" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Blanc" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Cian" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Vermell" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Taronja" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Groc" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Verd" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Blau" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indi" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violeta" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Salmó" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Verd oliva" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Granat" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Gris" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Blau pissarra" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Daurat" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "OrquÃdia" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Fes opaca" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Fes translúcida" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Fons" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "SuperfÃcies" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Quadre" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Cel·la unitat" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Amplia" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Redueix" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Rotació" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Defineix la velocitat X" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Defineix la velocitat Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Defineix la velocitat Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Defineix els FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animació" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Mode d'animació" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Reprodueix una vegada" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "PalÃndrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "En bucle" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Reprodueix" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Atura" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Següent fotograma" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Anterior fotograma" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Rebobina" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Reproducció inversa" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Reinicia" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Amb doble clic es comencen i acaben totes les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Feu clic per a mesurar la distà ncia" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Feu clic per a mesurar l'angle" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Feu clic per a mesurar la torsió (angle dihèdric)" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Feu clic en dos à toms per mostrar una seqüència en la consola" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Suprimeix les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Llista les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Unitats de distà ncia en nanòmetres" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Unitats de distà ncia en Angstroms" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Unitats de distà ncia en picòmetres" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Defineix la tria" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Centre" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identitat" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Etiqueta" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Selecciona un à tom" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Selecciona una cadena" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Selecciona un element" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "surt del modelat" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Selecciona un grup" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Selecciona una molècula" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Selecciona un lloc" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Mostra l'operació de simetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Mostra" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Consola de scripts del Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Continguts del fitxer" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Capçalera del fitxer" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Dades JVXL de la isosuperfÃcie" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Dades JVXL de l'orbital molecular" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientació" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Grup espacial" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Estat actual" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Fitxer" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Torna a carregar" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Obre des del PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Obre el fitxer seleccionat" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Obre" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Carrega la cel·la unitat sencera" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Obre un script" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Desa una còpia de {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Desa l'script amb estat" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Desa l'script amb historial" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Exporta la imatge {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Desa-ho tot com un arxiu JMOL (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Desa la isosuperfÃcie JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Exporta el model 3D {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Cà lcul" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimitza l'estructura" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Eina de modelat" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Extreu-ne les dades MOL" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "SuperfÃcie puntejada" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "SuperfÃcie van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "SuperfÃcie molecular" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "SuperfÃcie del solvent (sonda de {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "SuperfÃcie accesible al solvent (VDW + {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Torna a carregar {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Torna a carregar {0} + Mostra {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Recà rrega + polihedres" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Amaga" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Puntejat" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Amplada del pÃxel" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Amplada de l'à ngstrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Selecció dels halos" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Mostra els hidrògens" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Mostra les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Perspectiva en profunditat" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Colors del RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Quant a..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "ERROR del compilador de script: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "s'esperava un eix x y z" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "no es permet {0} amb el model de fons que es mostra" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "nombre incorrecte d'arguments" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Els Ãndexs de Miller no poden ser tots zero." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "el color [R,G,B] és incorrecte" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "s'esperava un booleà " + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "s'esperava un booleà o un nombre" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "s''esperava un boolea, un nombre o {0}" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "No s'ha pogut posar el valor" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "s'esperava un color" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "cal un nom de color o de paleta (Jmol, Rasmol)" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "s'esperava una ordre" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "cal {x y z}, $name o (expressió atòmica)" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "l'objecte de dibuix no està definit" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "fi de l'ordre de l'script no esperat" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "s'esperava una (expressió atòmica) và lida" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "s'esperava una (expressió atòmica) o un nombre enter" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "s'esperava un nom de fitxer" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "no s'ha trobat el fitxer" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "arguments incompatibles" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "arguments insuficients" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "s'esperava un enter" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "l''enter és fora del rang ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "l'argument no és và lid" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "ordre dels parà metres no và lid" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "s'esperava una paraula clau" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "no hi ha dades del coeficient d'OM disponibles" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "És necessari un Ãndex d'OM d'1 a {0}" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "no hi ha dades de base/coeficient d'OM per a aquest fotograma" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "no hi ha dades d'ocupació d'OM disponibles" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Només hi ha un orbital molecular disponible en aquest fitxer" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} requereix que només es mostri un model" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} requereix que només s'haga carregat un model" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "No hi ha dades disponibles" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"No s'han llegit cà rregues parcials al fitxer; el Jmol les necessita per a " +"dibuixar les dades d'EPM." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "No hi ha cap cel·la unitat" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "s'esperava un nombre" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "el número ha de ser ({0} o {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "el nombre decimal està fora de l''abast ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "s'esperava el nom de l'objecte després de '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"s''esperava un pla -- tres punts, unes expressions atòmiques, {0}, {1} o {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "s'esperava un nom de propietat" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "no s''ha trobat el grup espacial {0}." + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "s'esperava una cadena entre cometes" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "s'esperava una cadena entre cometes o un identificador" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "s'han especificat massa punts de rotació" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "massa nivells de script" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "propietat de l'à tom no reconeguda" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "propietat de l'enllaç no reconeguda" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "ordre no reconegut" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "expressió d'execució no reconeguda" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "objecte no reconegut" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "parà metre {0} no reconegut" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" +"parà metre {0} a l'script d'estat del Jmol no reconegut (tot i aixà definit)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "parà metre no reconegut per a SHOW -- utilitzeu {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "què s'ha d'escriure? {0} o {1} \"nomdefitxer\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "ERROR de l'script: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} à toms suprimits" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} enllaços d'hidrogen" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "s'ha creat el fitxer '{0}'" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "el context no és và lid per a {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "s'esperava { nombre nombre nombre }" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "s'esperava la fi d'una expressió" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "s'esperava un identificador o una especifació de residu" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "l'especificació d'à tom no és và lida" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "l'especificació de cadena no és và lida" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "el testimoni d''expressió no és và lid: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "l'especificació de model no és và lida" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "Manca END per a {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "s'esperava un nombre o nom de variable" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "s'esperava una especificació de residu (ALA, AL?, A*)" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "esperava {0}" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "no esperava {0}" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "no es reconeix el testimoni de l''expressió: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "fitxa no reconeguda: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "s'han afegit '{0}' puntals" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "s''han suprimit {0} connexions" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} enllaços nous; {1} de modificats" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Nota: en aquest contacte hi estan implicats uns quants models!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Feu clic per al menú…" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Miniaplicació de Jmol, versió {0} {1}.\n" +"\n" +"Un projecte d'OpenScience. \n" +"\n" +"Consulteu http://www.jmol.org per a més informació" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Error de fitxer:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "assigna o afegix un à tom o enllaç (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "obre el menú contextual recent (prem el logotip del Jmol)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "esborra à tom (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "esborra enllaç (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "ajusta el pla posterior de secció (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "moure à tom (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "moure l'objecte dibuixat (requerix '{0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "moure un punt de l'objecte dibuixat (requerix '{0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "moure etiqueta (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "moure à tom i minimitza la molècula (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "mou i minimitza la molècula (requereix {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "mou els à toms seleccionats (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "arrossega els à toms en la direcció Z (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simula entrada multità ctil usant el ratolÃ)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "trasllada el punt de navegació (requereix {0} i {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "trieu un à tom" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "connecta els à toms (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "trieu un punt a la isosuperfÃcie (ISOSURFACE) (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "trieu una etiqueta per canviar la seva visibilitat (requereix {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"trieu un à tom per incloure'l en una mesura (després d'iniciar una mesura o " +"després de {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "trieu un punt o un à tom fins el qual navegar (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "trieu un punt d'un objecte dibuixat (per mesuraments) (requereix '{0})" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "obre el menú contextual complet" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "reinicia (quan es cliqui fora del model)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "gira" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "rota la branca al voltant de l'enllaç (requerix '{0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "rota els à toms seleccionats (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "gira la Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"rotació de l'eix Z (desplaçament horitzontal del ratolÃ) o mida " +"(desplaçament vertical del ratolÃ)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "seleccioneu un à tom (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "selecciona i arrossega els à toms (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "de-selecciona aquest grup d'à toms (requerix '{0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "cancel·la la selecció (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "afegix aquest grup d'à toms a la selecció (requerix '{0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "(des)activa la selecció (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"si estan tots seleccionats, suprimeix la selecció; si no, afegeix aquest " +"grup d'à toms a la selecció (requerix '{0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "trieu un à tom per iniciar o finalitzar una mesura" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "ajusta el pla davanter de secció (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "desplaça els plà nols de secció (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zoom (al llarg de la vora dreta de la finestra)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"feu clic en dos punts per a definir un eix de gir antihorari (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"feu clic en dos punts per a definir un eix de gir horari (requereix {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "atura el moviment (requerix {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" +"gira el model (llisqueu i deixeu anar el botó i atureu el moviment " +"simultà niament)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "trasllada" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "zoom" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "trieu un o més à toms per a fer girar el model al voltant d'un eix" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "trieu dos à toms per a fer girar el model al voltant d'un eix" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "trieu un à tom més per mostrar la relació de simetria" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" +"trieu en ordre dos à toms per a mostrar la relació de simetria entre ells" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Definint l'arxiu de registre com a '{0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "No es pot establir la ruta de l'arxiu de registre." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} à toms amagats" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} à toms seleccionats" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Arrossegueu per a moure l'etiqueta" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" +"el porta-retalls no és accessible -- utilitzeu una miniaplicació signada" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "s'han afegit '{0} hidrògens" + +#~ msgid "Hide Symmetry" +#~ msgstr "Amaga la simetria" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "S'està carregant la miniaplicació del Jmol…" + +#~ msgid " {0} seconds" +#~ msgstr " {0} segons" + +#~ msgid "Java version:" +#~ msgstr "Versió del Java:" + +#~ msgid "1 processor" +#~ msgstr "1 processador" + +#~ msgid "unknown processor count" +#~ msgstr "nombre de processadors desconegut" + +#~ msgid "Java memory usage:" +#~ msgstr "Ús de memòria del Java" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB lliures" + +#~ msgid "unknown maximum" +#~ msgstr "mà xim desconegut" + +#~ msgid "Open file or URL" +#~ msgstr "Obre un fitxer o un URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ca@valencia.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ca@valencia.po new file mode 100755 index 000000000000..3bb1cb8fab4d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ca@valencia.po @@ -0,0 +1,2544 @@ +# Catalan (Valencian) translation for jmol +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2013-10-09 20:04+0200\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Catalan (Valencian) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/applet/AppletWrapper.java:101 +msgid "Loading Jmol applet ..." +msgstr "S'està carregant la miniaplicació del Jmol…" + +#: org/jmol/applet/AppletWrapper.java:176 +#, java-format +msgid " {0} seconds" +msgstr " {0} segons" + +#: org/jmol/applet/Jmol.java:711 org/jmol/appletjs/Jmol.java:366 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Miniaplicació de Jmol, versio {0} {1}.\n" +"\n" +"Un projecte d'OpenScience. \n" +"\n" +"Consulteu http://www.jmol.org per a més informació" + +#: org/jmol/applet/Jmol.java:985 org/jmol/appletjs/Jmol.java:603 +msgid "File Error:" +msgstr "Error de fitxer:" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:76 +#: org/jmol/modelkit/ModelKitPopup.java:56 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:79 +msgid "&Help" +msgstr "A&juda" + +#: org/jmol/console/GenericConsole.java:80 +msgid "&Search..." +msgstr "Ce&rca…" + +#: org/jmol/console/GenericConsole.java:81 +msgid "&Commands" +msgstr "&Ordes" + +#: org/jmol/console/GenericConsole.java:82 +msgid "Math &Functions" +msgstr "&Funcions matemà tiques" + +#: org/jmol/console/GenericConsole.java:83 +msgid "Set &Parameters" +msgstr "Defineix els &parà metres" + +#: org/jmol/console/GenericConsole.java:84 +msgid "&More" +msgstr "&Més" + +#: org/jmol/console/GenericConsole.java:85 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:86 +msgid "State" +msgstr "Estat" + +#: org/jmol/console/GenericConsole.java:87 +#: org/jmol/console/ScriptEditor.java:140 +msgid "Run" +msgstr "Executa" + +#: org/jmol/console/GenericConsole.java:88 +msgid "Clear Output" +msgstr "Neteja l'eixida" + +#: org/jmol/console/GenericConsole.java:89 +msgid "Clear Input" +msgstr "Neteja l'entrada" + +#: org/jmol/console/GenericConsole.java:90 +#: org/jmol/popup/MainPopupResourceBundle.java:895 +msgid "History" +msgstr "Historial" + +#: org/jmol/console/GenericConsole.java:91 +msgid "Load" +msgstr "Carrega" + +#: org/jmol/console/GenericConsole.java:93 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"premeu Ctrl+Retorn per a una nova lÃnia o enganxeu les dades del model i " +"premeu Carrega" + +#: org/jmol/console/GenericConsole.java:95 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Els missatges apareixeran acÃ. Introduïu les ordes en el quadre a " +"continuació. Feu clic a l'element Ajuda del menú de la consola per a " +"consultar l'ajuda en lÃnia, que es mostrarà en una nova finestra del " +"navegador." + +#: org/jmol/console/GenericConsole.java:128 +msgid "Jmol Script Console" +msgstr "Consola script del Jmol" + +#: org/jmol/console/ScriptEditor.java:101 +msgid "Jmol Script Editor" +msgstr "Editor d'scripts del Jmol" + +#: org/jmol/console/ScriptEditor.java:133 +#: org/jmol/popup/MainPopupResourceBundle.java:891 +msgid "Console" +msgstr "Consola" + +#: org/jmol/console/ScriptEditor.java:135 org/jmol/dialog/Dialog.java:445 +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:472 +msgid "Open" +msgstr "Obri" + +#: org/jmol/console/ScriptEditor.java:136 +msgid "Script" +msgstr "Script" + +#: org/jmol/console/ScriptEditor.java:137 +msgid "Check" +msgstr "Comprova" + +#: org/jmol/console/ScriptEditor.java:138 +msgid "" +"Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "A dalt" + +#: org/jmol/console/ScriptEditor.java:139 +msgid "Step" +msgstr "Pas" + +#: org/jmol/console/ScriptEditor.java:141 +#: org/jmol/popup/MainPopupResourceBundle.java:847 +msgid "Pause" +msgstr "Pausa" + +#: org/jmol/console/ScriptEditor.java:143 +#: org/jmol/popup/MainPopupResourceBundle.java:848 +msgid "Resume" +msgstr "Reprén" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Halt" +msgstr "Atura" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Clear" +msgstr "Neteja" + +#: org/jmol/console/ScriptEditor.java:148 +msgid "Close" +msgstr "Tanca" + +#: org/jmol/dialog/Dialog.java:93 +msgid "File or URL:" +msgstr "Fitxer o URL:" + +#: org/jmol/dialog/Dialog.java:270 +msgid "Image Type" +msgstr "Tipus d'imatge" + +#: org/jmol/dialog/Dialog.java:285 org/jmol/dialog/Dialog.java:326 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Qualitat del JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:299 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Compressió PNG ({0})" + +#: org/jmol/dialog/Dialog.java:329 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Qualitat del PNG ({0})" + +#: org/jmol/dialog/Dialog.java:376 org/jmol/dialog/Dialog.java:488 +msgid "Yes" +msgstr "SÃ" + +#: org/jmol/dialog/Dialog.java:376 org/jmol/dialog/Dialog.java:486 +msgid "No" +msgstr "No" + +#: org/jmol/dialog/Dialog.java:378 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Voleu sobreescriure el fitxer {0}?" + +#: org/jmol/dialog/Dialog.java:379 +msgid "Warning" +msgstr "AvÃs" + +#: org/jmol/dialog/Dialog.java:437 +msgid "All Files" +msgstr "Tots els fitxers" + +#: org/jmol/dialog/Dialog.java:438 org/jmol/dialog/Dialog.java:485 +msgid "Cancel" +msgstr "Cancel·la" + +#: org/jmol/dialog/Dialog.java:440 +msgid "Abort file chooser dialog" +msgstr "Avorta el dià leg de selecció de fitxers" + +#: org/jmol/dialog/Dialog.java:442 org/jmol/dialog/Dialog.java:443 +msgid "Details" +msgstr "Detalls" + +#: org/jmol/dialog/Dialog.java:444 +msgid "Directory" +msgstr "Directori" + +#: org/jmol/dialog/Dialog.java:447 +msgid "Open selected directory" +msgstr "Obri el directori seleccionat" + +#: org/jmol/dialog/Dialog.java:448 +msgid "Attributes" +msgstr "Atributs" + +#: org/jmol/dialog/Dialog.java:449 +msgid "Modified" +msgstr "Modificat" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Generic File" +msgstr "Fitxer genèric" + +#: org/jmol/dialog/Dialog.java:451 +msgid "Name" +msgstr "Nom" + +#: org/jmol/dialog/Dialog.java:452 +msgid "File Name:" +msgstr "Nom del fitxer:" + +#: org/jmol/dialog/Dialog.java:453 +msgid "Size" +msgstr "Mida" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Files of Type:" +msgstr "Fitxers del tipus:" + +#: org/jmol/dialog/Dialog.java:455 +msgid "Type" +msgstr "Tipus" + +#: org/jmol/dialog/Dialog.java:456 +msgid "Help" +msgstr "Ajuda" + +#: org/jmol/dialog/Dialog.java:458 +msgid "FileChooser help" +msgstr "Ajuda del selector de fitxers" + +#: org/jmol/dialog/Dialog.java:459 org/jmol/dialog/Dialog.java:460 +msgid "Home" +msgstr "Inici" + +#: org/jmol/dialog/Dialog.java:461 org/jmol/dialog/Dialog.java:462 +msgid "List" +msgstr "Llista" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Look In:" +msgstr "Cerca a:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Error creating new folder" +msgstr "S'ha produït un error en crear la carpeta nova" + +#: org/jmol/dialog/Dialog.java:466 +msgid "New Folder" +msgstr "Carpeta nova" + +#: org/jmol/dialog/Dialog.java:468 +msgid "Create New Folder" +msgstr "Crea una carpeta nova" + +#: org/jmol/dialog/Dialog.java:471 +msgid "Open selected file" +msgstr "Obri el fitxer seleccionat" + +#: org/jmol/dialog/Dialog.java:473 org/jmol/dialog/Dialog.java:476 +msgid "Save" +msgstr "Alça" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Save selected file" +msgstr "Alça el fitxer seleccionat" + +#: org/jmol/dialog/Dialog.java:477 +msgid "Save In:" +msgstr "Alça a:" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Update" +msgstr "Actualitza" + +#: org/jmol/dialog/Dialog.java:480 +msgid "Update directory listing" +msgstr "Actualitza la llista de directoris" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Up" +msgstr "Amunt" + +#: org/jmol/dialog/Dialog.java:482 +msgid "Up One Level" +msgstr "Un nivell amunt" + +#: org/jmol/dialog/Dialog.java:487 +msgid "OK" +msgstr "D'acord" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Previsualització" + +#: org/jmol/dialog/FilePreview.java:97 +msgid "Append models" +msgstr "Afig els models" + +#: org/jmol/dialog/FilePreview.java:99 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Àrab" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Català " + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Txec" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Danés" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Alemany" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Grec" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Anglés brità nic" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Anglés americà " + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Espanyol" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estonià " + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Feroés" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Francés" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Hongarés" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesi" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italià " + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japonés" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Coreà " + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Noruec Bökmal" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Holandés" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occità " + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polonés" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugués" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Portugués del Brasil" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Rus" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Eslovè" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Suec" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tà mil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turc" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ucraïnés" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Xinés simplificat" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Xinés tradicional" + +#: org/jmol/minimize/Minimizer.java:219 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "No es pot aconseguir la classe del camp de força {0}" + +#: org/jmol/minimize/Minimizer.java:225 +msgid "No atoms selected -- nothing to do!" +msgstr "No s'ha seleccionat cap à tom -- no hi ha res per fer!" + +#: org/jmol/minimize/Minimizer.java:310 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "Es minimitzaran {0} à toms." + +#: org/jmol/minimize/Minimizer.java:325 +#, java-format +msgid "could not setup force field {0}" +msgstr "no ha pogut configurar-se el camp de força {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:84 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:85 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:86 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:87 +#: org/jmol/viewer/ActionManager.java:342 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:109 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:110 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:111 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:112 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/modelsetbio/AminoPolymer.java:579 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/modelsetbio/AminoPolymer.java:585 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:636 +#: org/jmol/popup/MainPopupResourceBundle.java:570 +msgid "No atoms loaded" +msgstr "No s'ha carregat cap à tom" + +#: org/jmol/popup/GenericPopup.java:913 +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "Space Group" +msgstr "Grup espacial" + +#: org/jmol/popup/GenericPopup.java:983 org/jmol/popup/GenericPopup.java:1033 +#: org/jmol/popup/MainPopupResourceBundle.java:603 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +msgid "All" +msgstr "Tot" + +#: org/jmol/popup/GenericPopup.java:1145 +#: org/jmol/popup/MainPopupResourceBundle.java:1000 +msgid "Mouse Manual" +msgstr "Manual del ratolÃ" + +#: org/jmol/popup/GenericPopup.java:1147 +#: org/jmol/popup/MainPopupResourceBundle.java:1001 +msgid "Translations" +msgstr "Translacions" + +#: org/jmol/popup/GenericPopup.java:1151 +msgid "System" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1156 +msgid "Java version:" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1170 +msgid "1 processor" +msgstr "1 processador" + +#: org/jmol/popup/GenericPopup.java:1171 +#, java-format +msgid "{0} processors" +msgstr "{0} processadors" + +#: org/jmol/popup/GenericPopup.java:1173 +msgid "unknown processor count" +msgstr "recompte de processadors desconegut" + +#: org/jmol/popup/GenericPopup.java:1174 +msgid "Java memory usage:" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1179 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB en total" + +#: org/jmol/popup/GenericPopup.java:1181 +#, java-format +msgid "{0} MB free" +msgstr "{0} MB lliures" + +#: org/jmol/popup/GenericPopup.java:1184 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB com a mà xim" + +#: org/jmol/popup/GenericPopup.java:1187 +msgid "unknown maximum" +msgstr "mà xim desconegut" + +#: org/jmol/popup/GenericPopup.java:1299 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:572 +msgid "Configurations" +msgstr "Configuracions" + +#: org/jmol/popup/MainPopupResourceBundle.java:573 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:574 +msgid "Model/Frame" +msgstr "Model/fotograma" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +msgid "Language" +msgstr "Llengua" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +#: org/jmol/popup/MainPopupResourceBundle.java:577 +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "By Residue Name" +msgstr "Per nom de residu" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "By HETATM" +msgstr "Per HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +#: org/jmol/popup/MainPopupResourceBundle.java:902 +#: org/jmol/popup/MainPopupResourceBundle.java:958 +msgid "Symmetry" +msgstr "Simetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Hide Symmetry" +msgstr "Amaga la simetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Model information" +msgstr "Informació del model" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +#, java-format +msgid "Select ({0})" +msgstr "Selecciona ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:586 +#, java-format +msgid "All {0} models" +msgstr "Tots els {0} models" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +#, java-format +msgid "Configurations ({0})" +msgstr "Configuracions ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#, java-format +msgid "Collection of {0} models" +msgstr "Col·lecció de {0} models" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +#, java-format +msgid "atoms: {0}" +msgstr "à toms: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:590 +#, java-format +msgid "bonds: {0}" +msgstr "enllaços: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +#, java-format +msgid "groups: {0}" +msgstr "grups: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +#, java-format +msgid "chains: {0}" +msgstr "cadenes: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +#, java-format +msgid "polymers: {0}" +msgstr "polÃmers: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +#, java-format +msgid "View {0}" +msgstr "Vista {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "Main Menu" +msgstr "Menú principal" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Biomolecules" +msgstr "Biomolècules" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolècula {0} ({1} à toms)" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "carrega una biomolècula {0} ({1} à toms)" + +#: org/jmol/popup/MainPopupResourceBundle.java:604 +#: org/jmol/popup/MainPopupResourceBundle.java:731 +#: org/jmol/popup/MainPopupResourceBundle.java:740 +msgid "None" +msgstr "Cap" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "Display Selected Only" +msgstr "Mostra només allò seleccionat" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "Invert Selection" +msgstr "Inverteix la selecció" + +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "View" +msgstr "Visualització" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Front" +msgstr "Frontal" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Left" +msgstr "Esquerra" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Right" +msgstr "Dreta" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Bottom" +msgstr "Inferior" + +#: org/jmol/popup/MainPopupResourceBundle.java:615 +msgid "Back" +msgstr "Dorsal" + +#: org/jmol/popup/MainPopupResourceBundle.java:617 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Protein" +msgstr "Proteïna" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +#: org/jmol/popup/MainPopupResourceBundle.java:632 +#: org/jmol/popup/MainPopupResourceBundle.java:702 +#: org/jmol/popup/MainPopupResourceBundle.java:799 +msgid "Backbone" +msgstr "Esquelet" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Side Chains" +msgstr "Cadenes laterals" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Polar Residues" +msgstr "Residus polars" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Nonpolar Residues" +msgstr "Residus no polars" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Basic Residues (+)" +msgstr "Residus bà sics (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Acidic Residues (-)" +msgstr "Residus acÃdics (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Uncharged Residues" +msgstr "Residus sense cà rrega" + +#: org/jmol/popup/MainPopupResourceBundle.java:628 +msgid "Nucleic" +msgstr "Nucleic" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "DNA" +msgstr "ADN" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "RNA" +msgstr "ARN" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "Bases" +msgstr "Bases" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "AT pairs" +msgstr "Parelles AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "GC pairs" +msgstr "Parelles GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "AU pairs" +msgstr "Parelles AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:638 +msgid "All PDB \"HETATM\"" +msgstr "Tots els «HETATM» del PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +msgid "All Solvent" +msgstr "Tot el solvent" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "All Water" +msgstr "Tot l'aigua" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +msgid "Nonaqueous Solvent" +msgstr "Solvent no aquós" + +#: org/jmol/popup/MainPopupResourceBundle.java:643 +msgid "Nonaqueous HETATM" +msgstr "HETATM no aquosos" + +#: org/jmol/popup/MainPopupResourceBundle.java:644 +msgid "Ligand" +msgstr "Lligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Carbohydrate" +msgstr "Carbohidrat" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "None of the above" +msgstr "Cap dels anteriors" + +#: org/jmol/popup/MainPopupResourceBundle.java:650 +msgid "Style" +msgstr "Estil" + +#: org/jmol/popup/MainPopupResourceBundle.java:651 +msgid "Scheme" +msgstr "Esquema" + +#: org/jmol/popup/MainPopupResourceBundle.java:652 +msgid "CPK Spacefill" +msgstr "Esferes CPK" + +#: org/jmol/popup/MainPopupResourceBundle.java:653 +msgid "Ball and Stick" +msgstr "Boles i bastons" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Sticks" +msgstr "Bastons" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Wireframe" +msgstr "Filferro" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +#: org/jmol/popup/MainPopupResourceBundle.java:703 +#: org/jmol/popup/MainPopupResourceBundle.java:801 +msgid "Cartoon" +msgstr "Disseny" + +#: org/jmol/popup/MainPopupResourceBundle.java:657 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +#: org/jmol/popup/MainPopupResourceBundle.java:800 +msgid "Trace" +msgstr "Traç" + +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:753 +msgid "Atoms" +msgstr "Àtoms" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +#: org/jmol/popup/MainPopupResourceBundle.java:669 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#: org/jmol/popup/MainPopupResourceBundle.java:690 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#: org/jmol/popup/MainPopupResourceBundle.java:711 +#: org/jmol/popup/MainPopupResourceBundle.java:719 +#: org/jmol/popup/MainPopupResourceBundle.java:825 +#: org/jmol/popup/MainPopupResourceBundle.java:876 +#: org/jmol/popup/MainPopupResourceBundle.java:956 +msgid "Off" +msgstr "Desactivat" + +#: org/jmol/popup/MainPopupResourceBundle.java:661 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +#: org/jmol/popup/MainPopupResourceBundle.java:663 +#: org/jmol/popup/MainPopupResourceBundle.java:664 +#: org/jmol/popup/MainPopupResourceBundle.java:665 +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#: org/jmol/popup/MainPopupResourceBundle.java:795 +msgid "Bonds" +msgstr "Enllaços" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +#: org/jmol/popup/MainPopupResourceBundle.java:680 +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:712 +#: org/jmol/popup/MainPopupResourceBundle.java:720 +#: org/jmol/popup/MainPopupResourceBundle.java:824 +msgid "On" +msgstr "Activat" + +#: org/jmol/popup/MainPopupResourceBundle.java:671 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +#: org/jmol/popup/MainPopupResourceBundle.java:674 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:686 +#: org/jmol/popup/MainPopupResourceBundle.java:687 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#: org/jmol/popup/MainPopupResourceBundle.java:695 +#: org/jmol/popup/MainPopupResourceBundle.java:696 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:722 +#: org/jmol/popup/MainPopupResourceBundle.java:723 +#: org/jmol/popup/MainPopupResourceBundle.java:980 +#: org/jmol/popup/MainPopupResourceBundle.java:981 +#: org/jmol/popup/MainPopupResourceBundle.java:982 +#: org/jmol/popup/MainPopupResourceBundle.java:983 +#: org/jmol/popup/MainPopupResourceBundle.java:984 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:796 +msgid "Hydrogen Bonds" +msgstr "Enllaços d'hidrogen" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +msgid "Calculate" +msgstr "Calcula" + +#: org/jmol/popup/MainPopupResourceBundle.java:681 +msgid "Set H-Bonds Side Chain" +msgstr "Defineix els enllaços d'hidrogen de les cadenes laterals" + +#: org/jmol/popup/MainPopupResourceBundle.java:682 +msgid "Set H-Bonds Backbone" +msgstr "Defineix els enllaços d'hidrogen de l'esquelet" + +#: org/jmol/popup/MainPopupResourceBundle.java:689 +#: org/jmol/popup/MainPopupResourceBundle.java:797 +msgid "Disulfide Bonds" +msgstr "Enllaços disulfur" + +#: org/jmol/popup/MainPopupResourceBundle.java:692 +msgid "Set SS-Bonds Side Chain" +msgstr "Defineix els enllaços disulfur de les cadenes laterals" + +#: org/jmol/popup/MainPopupResourceBundle.java:693 +msgid "Set SS-Bonds Backbone" +msgstr "Defineix els enllaços disulfur de l'esquelet" + +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:798 +msgid "Structures" +msgstr "Estructures" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Cartoon Rockets" +msgstr "Disseny en coets" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +#: org/jmol/popup/MainPopupResourceBundle.java:802 +msgid "Ribbons" +msgstr "Cintes" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +#: org/jmol/popup/MainPopupResourceBundle.java:803 +msgid "Rockets" +msgstr "Coets" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +#: org/jmol/popup/MainPopupResourceBundle.java:804 +msgid "Strands" +msgstr "Cadenes" + +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Vibration" +msgstr "Vibració" + +#: org/jmol/popup/MainPopupResourceBundle.java:715 +#: org/jmol/popup/MainPopupResourceBundle.java:808 +msgid "Vectors" +msgstr "Vectors" + +#: org/jmol/popup/MainPopupResourceBundle.java:716 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:717 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:718 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:721 +#, java-format +msgid "{0} pixels" +msgstr "{0} pÃxels" + +#: org/jmol/popup/MainPopupResourceBundle.java:724 +#: org/jmol/popup/MainPopupResourceBundle.java:725 +#: org/jmol/popup/MainPopupResourceBundle.java:726 +#: org/jmol/popup/MainPopupResourceBundle.java:727 +#: org/jmol/popup/MainPopupResourceBundle.java:728 +#, java-format +msgid "Scale {0}" +msgstr "Escala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:730 +msgid "Stereographic" +msgstr "Estereogrà fic" + +#: org/jmol/popup/MainPopupResourceBundle.java:732 +msgid "Red+Cyan glasses" +msgstr "Ulleres roig+cian" + +#: org/jmol/popup/MainPopupResourceBundle.java:733 +msgid "Red+Blue glasses" +msgstr "Ulleres roig+blau" + +#: org/jmol/popup/MainPopupResourceBundle.java:734 +msgid "Red+Green glasses" +msgstr "Ulleres roig+verd" + +#: org/jmol/popup/MainPopupResourceBundle.java:735 +msgid "Cross-eyed viewing" +msgstr "Visió guenya" + +#: org/jmol/popup/MainPopupResourceBundle.java:736 +msgid "Wall-eyed viewing" +msgstr "Visió paral·lela" + +#: org/jmol/popup/MainPopupResourceBundle.java:738 +#: org/jmol/popup/MainPopupResourceBundle.java:805 +msgid "Labels" +msgstr "Etiquetes" + +#: org/jmol/popup/MainPopupResourceBundle.java:741 +msgid "With Element Symbol" +msgstr "Amb el sÃmbol de l'element" + +#: org/jmol/popup/MainPopupResourceBundle.java:742 +msgid "With Atom Name" +msgstr "Amb el nom de l'à tom" + +#: org/jmol/popup/MainPopupResourceBundle.java:743 +msgid "With Atom Number" +msgstr "Amb el número de l'à tom" + +#: org/jmol/popup/MainPopupResourceBundle.java:745 +msgid "Position Label on Atom" +msgstr "Posició de l'etiqueta a l'à tom" + +#: org/jmol/popup/MainPopupResourceBundle.java:746 +msgid "Centered" +msgstr "Centrat" + +#: org/jmol/popup/MainPopupResourceBundle.java:747 +msgid "Upper Right" +msgstr "Marge superior dret" + +#: org/jmol/popup/MainPopupResourceBundle.java:748 +msgid "Lower Right" +msgstr "Marge inferior dret" + +#: org/jmol/popup/MainPopupResourceBundle.java:749 +msgid "Upper Left" +msgstr "Marge superior esquerre" + +#: org/jmol/popup/MainPopupResourceBundle.java:750 +msgid "Lower Left" +msgstr "Marge inferior esquerre" + +#: org/jmol/popup/MainPopupResourceBundle.java:752 +msgid "Color" +msgstr "Color" + +#: org/jmol/popup/MainPopupResourceBundle.java:755 +msgid "By Scheme" +msgstr "Per esquema" + +#: org/jmol/popup/MainPopupResourceBundle.java:756 +msgid "Element (CPK)" +msgstr "Element (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:757 +msgid "Alternative Location" +msgstr "Ubicació alternativa" + +#: org/jmol/popup/MainPopupResourceBundle.java:758 +msgid "Molecule" +msgstr "Molècula" + +#: org/jmol/popup/MainPopupResourceBundle.java:759 +msgid "Formal Charge" +msgstr "Cà rrega formal" + +#: org/jmol/popup/MainPopupResourceBundle.java:760 +msgid "Partial Charge" +msgstr "Cà rrega parcial" + +#: org/jmol/popup/MainPopupResourceBundle.java:761 +msgid "Temperature (Relative)" +msgstr "Temperatura (relativa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:762 +msgid "Temperature (Fixed)" +msgstr "Temperatura (fixada)" + +#: org/jmol/popup/MainPopupResourceBundle.java:764 +msgid "Amino Acid" +msgstr "Aminoà cid" + +#: org/jmol/popup/MainPopupResourceBundle.java:765 +msgid "Secondary Structure" +msgstr "Estructura secundà ria" + +#: org/jmol/popup/MainPopupResourceBundle.java:766 +msgid "Chain" +msgstr "Cadena" + +#: org/jmol/popup/MainPopupResourceBundle.java:767 +msgid "Group" +msgstr "Grup" + +#: org/jmol/popup/MainPopupResourceBundle.java:768 +msgid "Monomer" +msgstr "Monòmer" + +#: org/jmol/popup/MainPopupResourceBundle.java:769 +msgid "Shapely" +msgstr "Amb forma" + +#: org/jmol/popup/MainPopupResourceBundle.java:771 +msgid "Inherit" +msgstr "Hereta" + +#: org/jmol/popup/MainPopupResourceBundle.java:772 +msgid "Black" +msgstr "Negre" + +#: org/jmol/popup/MainPopupResourceBundle.java:773 +msgid "White" +msgstr "Blanc" + +#: org/jmol/popup/MainPopupResourceBundle.java:774 +msgid "Cyan" +msgstr "Cian" + +#: org/jmol/popup/MainPopupResourceBundle.java:776 +msgid "Red" +msgstr "Roig" + +#: org/jmol/popup/MainPopupResourceBundle.java:777 +msgid "Orange" +msgstr "Taronja" + +#: org/jmol/popup/MainPopupResourceBundle.java:778 +msgid "Yellow" +msgstr "Groc" + +#: org/jmol/popup/MainPopupResourceBundle.java:779 +msgid "Green" +msgstr "Verd" + +#: org/jmol/popup/MainPopupResourceBundle.java:780 +msgid "Blue" +msgstr "Blau" + +#: org/jmol/popup/MainPopupResourceBundle.java:781 +msgid "Indigo" +msgstr "Indi" + +#: org/jmol/popup/MainPopupResourceBundle.java:782 +msgid "Violet" +msgstr "Violeta" + +#: org/jmol/popup/MainPopupResourceBundle.java:784 +msgid "Salmon" +msgstr "Salmó" + +#: org/jmol/popup/MainPopupResourceBundle.java:785 +msgid "Olive" +msgstr "Oliva" + +#: org/jmol/popup/MainPopupResourceBundle.java:786 +msgid "Maroon" +msgstr "Granat" + +#: org/jmol/popup/MainPopupResourceBundle.java:787 +msgid "Gray" +msgstr "Gris" + +#: org/jmol/popup/MainPopupResourceBundle.java:788 +msgid "Slate Blue" +msgstr "Blau pissarra" + +#: org/jmol/popup/MainPopupResourceBundle.java:789 +msgid "Gold" +msgstr "Daurat" + +#: org/jmol/popup/MainPopupResourceBundle.java:790 +msgid "Orchid" +msgstr "OrquÃdia" + +#: org/jmol/popup/MainPopupResourceBundle.java:792 +#: org/jmol/popup/MainPopupResourceBundle.java:954 +msgid "Make Opaque" +msgstr "Fes opac" + +#: org/jmol/popup/MainPopupResourceBundle.java:793 +#: org/jmol/popup/MainPopupResourceBundle.java:955 +msgid "Make Translucent" +msgstr "Fes translúcid" + +#: org/jmol/popup/MainPopupResourceBundle.java:806 +msgid "Background" +msgstr "Fons" + +#: org/jmol/popup/MainPopupResourceBundle.java:807 +#: org/jmol/popup/MainPopupResourceBundle.java:945 +msgid "Surfaces" +msgstr "SuperfÃcies" + +#: org/jmol/popup/MainPopupResourceBundle.java:809 +#: org/jmol/popup/MainPopupResourceBundle.java:966 +#: org/jmol/popup/MainPopupResourceBundle.java:992 +msgid "Axes" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:810 +#: org/jmol/popup/MainPopupResourceBundle.java:967 +#: org/jmol/popup/MainPopupResourceBundle.java:991 +msgid "Boundbox" +msgstr "Quadre" + +#: org/jmol/popup/MainPopupResourceBundle.java:811 +#: org/jmol/popup/MainPopupResourceBundle.java:942 +#: org/jmol/popup/MainPopupResourceBundle.java:968 +#: org/jmol/popup/MainPopupResourceBundle.java:993 +msgid "Unit cell" +msgstr "Cel·la unitat" + +#: org/jmol/popup/MainPopupResourceBundle.java:813 +msgid "Zoom" +msgstr "Zoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:820 +msgid "Zoom In" +msgstr "Amplia" + +#: org/jmol/popup/MainPopupResourceBundle.java:821 +msgid "Zoom Out" +msgstr "Redueix" + +#: org/jmol/popup/MainPopupResourceBundle.java:823 +#: org/jmol/popup/MainPopupResourceBundle.java:888 +msgid "Spin" +msgstr "Rotació" + +#: org/jmol/popup/MainPopupResourceBundle.java:827 +msgid "Set X Rate" +msgstr "Defineix la velocitat X" + +#: org/jmol/popup/MainPopupResourceBundle.java:828 +msgid "Set Y Rate" +msgstr "Defineix la velocitat Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:829 +msgid "Set Z Rate" +msgstr "Defineix la velocitat Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:830 +#: org/jmol/popup/MainPopupResourceBundle.java:856 +msgid "Set FPS" +msgstr "Defineix els FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:840 +msgid "Animation" +msgstr "Animació" + +#: org/jmol/popup/MainPopupResourceBundle.java:841 +msgid "Animation Mode" +msgstr "Mode d'animació" + +#: org/jmol/popup/MainPopupResourceBundle.java:842 +msgid "Play Once" +msgstr "Reprodueix una vegada" + +#: org/jmol/popup/MainPopupResourceBundle.java:843 +msgid "Palindrome" +msgstr "PalÃndrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:844 +msgid "Loop" +msgstr "En bucle" + +#: org/jmol/popup/MainPopupResourceBundle.java:846 +msgid "Play" +msgstr "Reprodueix" + +#: org/jmol/popup/MainPopupResourceBundle.java:849 +msgid "Stop" +msgstr "Atura" + +#: org/jmol/popup/MainPopupResourceBundle.java:850 +msgid "Next Frame" +msgstr "Següent fotograma" + +#: org/jmol/popup/MainPopupResourceBundle.java:851 +msgid "Previous Frame" +msgstr "Anterior fotograma" + +#: org/jmol/popup/MainPopupResourceBundle.java:852 +msgid "Rewind" +msgstr "Rebobina" + +#: org/jmol/popup/MainPopupResourceBundle.java:853 +msgid "Reverse" +msgstr "Reproducció inversa" + +#: org/jmol/popup/MainPopupResourceBundle.java:854 +msgid "Restart" +msgstr "Reinicia" + +#: org/jmol/popup/MainPopupResourceBundle.java:863 +#: org/jmol/popup/MainPopupResourceBundle.java:897 +msgid "Measurements" +msgstr "Mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:864 +msgid "Double-Click begins and ends all measurements" +msgstr "Amb doble clic es comença i acaba totes les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:865 +msgid "Click for distance measurement" +msgstr "Feu clic per a mesurar la distà ncia" + +#: org/jmol/popup/MainPopupResourceBundle.java:866 +msgid "Click for angle measurement" +msgstr "Feu clic per a mesurar l'angle" + +#: org/jmol/popup/MainPopupResourceBundle.java:867 +msgid "Click for torsion (dihedral) measurement" +msgstr "Feu clic per a mesurar la torsió (angle dihèdric)" + +#: org/jmol/popup/MainPopupResourceBundle.java:868 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:869 +msgid "Delete measurements" +msgstr "Suprimeix les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:870 +msgid "List measurements" +msgstr "Llista les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:871 +msgid "Distance units nanometers" +msgstr "Unitats de distà ncia en nanòmetres" + +#: org/jmol/popup/MainPopupResourceBundle.java:872 +msgid "Distance units Angstroms" +msgstr "Unitats de distà ncia en Angstroms" + +#: org/jmol/popup/MainPopupResourceBundle.java:873 +msgid "Distance units picometers" +msgstr "Unitats de distà ncia en picòmetres" + +#: org/jmol/popup/MainPopupResourceBundle.java:875 +msgid "Set picking" +msgstr "Defineix la tria" + +#: org/jmol/popup/MainPopupResourceBundle.java:877 +msgid "Center" +msgstr "Centre" + +#: org/jmol/popup/MainPopupResourceBundle.java:879 +msgid "Identity" +msgstr "Identitat" + +#: org/jmol/popup/MainPopupResourceBundle.java:880 +msgid "Label" +msgstr "Etiqueta" + +#: org/jmol/popup/MainPopupResourceBundle.java:881 +msgid "Select atom" +msgstr "Selecciona un à tom" + +#: org/jmol/popup/MainPopupResourceBundle.java:882 +msgid "Select chain" +msgstr "Selecciona una cadena" + +#: org/jmol/popup/MainPopupResourceBundle.java:883 +msgid "Select element" +msgstr "Selecciona un element" + +#: org/jmol/popup/MainPopupResourceBundle.java:884 +msgid "Select group" +msgstr "Selecciona un grup" + +#: org/jmol/popup/MainPopupResourceBundle.java:885 +msgid "Select molecule" +msgstr "Selecciona una molècula" + +#: org/jmol/popup/MainPopupResourceBundle.java:886 +msgid "Select site" +msgstr "Selecciona un seti" + +#: org/jmol/popup/MainPopupResourceBundle.java:887 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:890 +msgid "Show" +msgstr "Mostra" + +#: org/jmol/popup/MainPopupResourceBundle.java:893 +msgid "File Contents" +msgstr "Continguts del fitxer" + +#: org/jmol/popup/MainPopupResourceBundle.java:894 +msgid "File Header" +msgstr "Capçalera del fitxer" + +#: org/jmol/popup/MainPopupResourceBundle.java:896 +msgid "Isosurface JVXL data" +msgstr "Dades JVXL d'isosuperfÃcie" + +#: org/jmol/popup/MainPopupResourceBundle.java:898 +msgid "Molecular orbital JVXL data" +msgstr "Dades JVXL de l'orbital molecular" + +#: org/jmol/popup/MainPopupResourceBundle.java:899 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:900 +msgid "Orientation" +msgstr "Orientació" + +#: org/jmol/popup/MainPopupResourceBundle.java:901 +msgid "Space group" +msgstr "Grup espacial" + +#: org/jmol/popup/MainPopupResourceBundle.java:903 +msgid "Current state" +msgstr "Estat actual" + +#: org/jmol/popup/MainPopupResourceBundle.java:905 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:906 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:907 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:908 +msgid "Open file or URL" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:909 +msgid "Load full unit cell" +msgstr "Carrega la cel·la unitat sencera" + +#: org/jmol/popup/MainPopupResourceBundle.java:910 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:912 +#: org/jmol/viewer/OutputManager.java:652 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:913 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:914 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:915 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:916 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:917 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:918 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:919 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:920 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:922 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:923 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:924 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:925 +#: org/jmol/popup/MainPopupResourceBundle.java:926 +#: org/jmol/popup/MainPopupResourceBundle.java:927 +#: org/jmol/popup/MainPopupResourceBundle.java:928 +#: org/jmol/popup/MainPopupResourceBundle.java:929 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:930 +msgid "Save all as JMOL file (zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:931 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:932 +#: org/jmol/popup/MainPopupResourceBundle.java:933 +#: org/jmol/popup/MainPopupResourceBundle.java:934 +#: org/jmol/popup/MainPopupResourceBundle.java:935 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:937 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:938 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:939 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:943 +msgid "Extract MOL data" +msgstr "Extreu les dades MOL" + +#: org/jmol/popup/MainPopupResourceBundle.java:946 +msgid "Dot Surface" +msgstr "SuperfÃcie puntejada" + +#: org/jmol/popup/MainPopupResourceBundle.java:947 +msgid "van der Waals Surface" +msgstr "SuperfÃcie van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:948 +msgid "Molecular Surface" +msgstr "SuperfÃcie molecular" + +#: org/jmol/popup/MainPopupResourceBundle.java:949 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "SuperfÃcie del solvent (sonda de {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:951 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "SuperfÃcie accesible al solvent (VDW + {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:952 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:953 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:959 +#: org/jmol/popup/MainPopupResourceBundle.java:960 +#: org/jmol/popup/MainPopupResourceBundle.java:961 +#, java-format +msgid "Reload {0}" +msgstr "Recarrega {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:962 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Torna a carregar {0} + Mostra {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:963 +msgid "Reload + Polyhedra" +msgstr "Recà rrega + polihedres" + +#: org/jmol/popup/MainPopupResourceBundle.java:970 +msgid "Hide" +msgstr "Amaga" + +#: org/jmol/popup/MainPopupResourceBundle.java:971 +msgid "Dotted" +msgstr "Puntejat" + +#: org/jmol/popup/MainPopupResourceBundle.java:973 +msgid "Pixel Width" +msgstr "Amplada del pÃxel" + +#: org/jmol/popup/MainPopupResourceBundle.java:974 +#: org/jmol/popup/MainPopupResourceBundle.java:975 +#: org/jmol/popup/MainPopupResourceBundle.java:976 +#: org/jmol/popup/MainPopupResourceBundle.java:977 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:979 +msgid "Angstrom Width" +msgstr "Amplada de l'à ngstrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:987 +msgid "Selection Halos" +msgstr "Selecció dels halos" + +#: org/jmol/popup/MainPopupResourceBundle.java:988 +msgid "Show Hydrogens" +msgstr "Mostra els hidrògens" + +#: org/jmol/popup/MainPopupResourceBundle.java:989 +msgid "Show Measurements" +msgstr "Mostra les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:990 +msgid "Perspective Depth" +msgstr "Perspectiva en profunditat" + +#: org/jmol/popup/MainPopupResourceBundle.java:994 +msgid "RasMol Colors" +msgstr "Colors del RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:995 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1348 +#: org/jmol/script/ScriptEvaluator.java:2922 +msgid "bad argument count" +msgstr "recompte incorrecte dels arguments" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1351 +#, java-format +msgid "invalid context for {0}" +msgstr "el testimoni d''expressió no és và lid: {0}" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1354 +#: org/jmol/script/ScriptEvaluator.java:2949 +msgid "command expected" +msgstr "s'esperava una orde" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1357 +msgid "{ number number number } expected" +msgstr "s'esperava { nombre nombre nombre }" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1360 +#: org/jmol/script/ScriptEvaluator.java:2958 +msgid "unexpected end of script command" +msgstr "fi de l'orde de l'script no esperat" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1363 +msgid "end of expression expected" +msgstr "s'esperava la fi d'una expressió" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1366 +msgid "identifier or residue specification expected" +msgstr "s'esperava un identificador o una especifació de residu" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1369 +msgid "invalid atom specification" +msgstr "l'especificació d'à tom no és và lida" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1372 +msgid "invalid chain specification" +msgstr "l'especificació de cadena no és và lida" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1375 +#, java-format +msgid "invalid expression token: {0}" +msgstr "el testimoni d''expressió no és và lid: {0}" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1378 +msgid "invalid model specification" +msgstr "l'especificació de model no és và lida" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1381 +#, java-format +msgid "missing END for {0}" +msgstr "Manca END per a {0}" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1384 +#: org/jmol/script/ScriptEvaluator.java:3025 +msgid "number expected" +msgstr "s'esperava un nombre" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1387 +msgid "number or variable name expected" +msgstr "s'esperava un nombre o nom de variable" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1390 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "s'esperava una especificació de residu (ALA, AL?, A*)" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1393 +#, java-format +msgid "{0} expected" +msgstr "esperava {0}" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1396 +#, java-format +msgid "{0} unexpected" +msgstr "no esperava {0}" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1399 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "no es reconeix el testimoni de l''expressió: {0}" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1402 +#: org/jmol/script/ScriptEvaluator.java:3074 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "el parà metre {0} no està reconegut" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1405 +#, java-format +msgid "unrecognized token: {0}" +msgstr "no es reconeix el testimoni: {0}" + +#: org/jmol/script/ScriptCompiler.java:2673 +msgid "script compiler ERROR: " +msgstr "Error del compilador script: " + +#: org/jmol/script/ScriptEvaluator.java:2762 +#: org/jmol/script/ScriptEvaluator.java:9339 +msgid "script ERROR: " +msgstr "Error de l'script: " + +#: org/jmol/script/ScriptEvaluator.java:2916 +msgid "x y z axis expected" +msgstr "s'esperava un eix x y z" + +#: org/jmol/script/ScriptEvaluator.java:2919 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "no es permet {0} amb el model de fons que es mostra" + +#: org/jmol/script/ScriptEvaluator.java:2925 +msgid "Miller indices cannot all be zero." +msgstr "Els Ãndexs de Miller no poden ser tots zero." + +#: org/jmol/script/ScriptEvaluator.java:2928 +msgid "bad [R,G,B] color" +msgstr "el color [R,G,B] és incorrecte" + +#: org/jmol/script/ScriptEvaluator.java:2931 +msgid "boolean expected" +msgstr "s'esperava un booleà " + +#: org/jmol/script/ScriptEvaluator.java:2934 +msgid "boolean or number expected" +msgstr "s'esperava un booleà o un nombre" + +#: org/jmol/script/ScriptEvaluator.java:2937 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "s''esperava un boolea, un nombre o {0}" + +#: org/jmol/script/ScriptEvaluator.java:2940 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2943 +msgid "color expected" +msgstr "s'esperava un color" + +#: org/jmol/script/ScriptEvaluator.java:2946 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "cal un nom de color o de paleta (Jmol, Rasmol)" + +#: org/jmol/script/ScriptEvaluator.java:2952 +msgid "{x y z} or $name or (atom expression) required" +msgstr "cal {x y z}, $name o (expressió atòmica)" + +#: org/jmol/script/ScriptEvaluator.java:2955 +msgid "draw object not defined" +msgstr "l'objecte de dibuix no està definit" + +#: org/jmol/script/ScriptEvaluator.java:2961 +msgid "valid (atom expression) expected" +msgstr "s'esperava una (expressió atòmica) và lida" + +#: org/jmol/script/ScriptEvaluator.java:2964 +msgid "(atom expression) or integer expected" +msgstr "s'esperava una (expressió atòmica) o un nombre enter" + +#: org/jmol/script/ScriptEvaluator.java:2967 +msgid "filename expected" +msgstr "s'esperava un nom de fitxer" + +#: org/jmol/script/ScriptEvaluator.java:2970 +msgid "file not found" +msgstr "no s'ha trobat el fitxer" + +#: org/jmol/script/ScriptEvaluator.java:2973 +msgid "incompatible arguments" +msgstr "arguments incompatibles" + +#: org/jmol/script/ScriptEvaluator.java:2976 +msgid "insufficient arguments" +msgstr "arguments insuficients" + +#: org/jmol/script/ScriptEvaluator.java:2979 +msgid "integer expected" +msgstr "s'esperava un enter" + +#: org/jmol/script/ScriptEvaluator.java:2982 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "l'enter està fora de l'abast ({0} - {1})" + +#: org/jmol/script/ScriptEvaluator.java:2985 +msgid "invalid argument" +msgstr "l'argument no és và lid" + +#: org/jmol/script/ScriptEvaluator.java:2988 +msgid "invalid parameter order" +msgstr "odre dels parà metres no và lid" + +#: org/jmol/script/ScriptEvaluator.java:2991 +msgid "keyword expected" +msgstr "s'esperava una paraula clau" + +#: org/jmol/script/ScriptEvaluator.java:2994 +msgid "no MO coefficient data available" +msgstr "no hi ha dades del coeficient d'OM disponibles" + +#: org/jmol/script/ScriptEvaluator.java:2997 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "És necessari un Ãndex d'OM d'1 a {0}" + +#: org/jmol/script/ScriptEvaluator.java:3000 +msgid "no MO basis/coefficient data available for this frame" +msgstr "no hi ha dades de base/coeficient d'OM per a este fotograma" + +#: org/jmol/script/ScriptEvaluator.java:3003 +msgid "no MO occupancy data available" +msgstr "no hi ha dades d'ocupació d'OM disponibles" + +#: org/jmol/script/ScriptEvaluator.java:3006 +msgid "Only one molecular orbital is available in this file" +msgstr "Només hi ha un orbital molecular disponible en este fitxer" + +#: org/jmol/script/ScriptEvaluator.java:3009 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "l''orde {0} requereix que només es mostre un model" + +#: org/jmol/script/ScriptEvaluator.java:3012 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3015 +msgid "No data available" +msgstr "no hi ha dades disponibles" + +#: org/jmol/script/ScriptEvaluator.java:3019 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"No s'han llegit les cà rregues parcials del tÃtol; el Jmol les necessita per " +"a rederitzar les dades d'EPM." + +#: org/jmol/script/ScriptEvaluator.java:3022 +msgid "No unit cell" +msgstr "No hi ha cap cel·la unitat" + +#: org/jmol/script/ScriptEvaluator.java:3028 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "el número ha de ser ({0} o {1})" + +#: org/jmol/script/ScriptEvaluator.java:3031 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "el nombre decimal està fora de l''abast ({0} - {1})" + +#: org/jmol/script/ScriptEvaluator.java:3034 +msgid "object name expected after '$'" +msgstr "s'esperava el nom de l'objectes després de '$'" + +#: org/jmol/script/ScriptEvaluator.java:3038 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"s''esperava un pla -- tres punts, unes expressions atòmiques, {0}, {1} o {2}" + +#: org/jmol/script/ScriptEvaluator.java:3041 +msgid "property name expected" +msgstr "s'esperava un nom de propietat" + +#: org/jmol/script/ScriptEvaluator.java:3044 +#, java-format +msgid "space group {0} was not found." +msgstr "no s''ha trobat el grup espacial {0}." + +#: org/jmol/script/ScriptEvaluator.java:3047 +msgid "quoted string expected" +msgstr "s'esperava una cadena entre cometes" + +#: org/jmol/script/ScriptEvaluator.java:3050 +msgid "quoted string or identifier expected" +msgstr "s'esperava una cadena entre cometes o un identificador" + +#: org/jmol/script/ScriptEvaluator.java:3053 +msgid "too many rotation points were specified" +msgstr "s'han especificat massa punts de rotació" + +#: org/jmol/script/ScriptEvaluator.java:3056 +msgid "too many script levels" +msgstr "masses nivells d'script" + +#: org/jmol/script/ScriptEvaluator.java:3059 +msgid "unrecognized atom property" +msgstr "no es reconeix la propietat de l'à tom" + +#: org/jmol/script/ScriptEvaluator.java:3062 +msgid "unrecognized bond property" +msgstr "no es reconeix la propietat de l'enllaç" + +#: org/jmol/script/ScriptEvaluator.java:3065 +msgid "unrecognized command" +msgstr "no es reconeix l'orde" + +#: org/jmol/script/ScriptEvaluator.java:3068 +msgid "runtime unrecognized expression" +msgstr "no es reconeix l'expressió d'execució" + +#: org/jmol/script/ScriptEvaluator.java:3071 +msgid "unrecognized object" +msgstr "no es reconeix l'objecte" + +#: org/jmol/script/ScriptEvaluator.java:3078 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" +"no es reconeix el parà metre {0} a l'script d'estat del Jmol (es defineix " +"aixà de totes maneres)" + +#: org/jmol/script/ScriptEvaluator.java:3081 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "no es reconeix el parà metre SHOW -- utilitzeu {0}" + +#: org/jmol/script/ScriptEvaluator.java:3087 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "què s'ha d'escriure? {0} o «nomdefitxer» {1}" + +#: org/jmol/script/ScriptEvaluator.java:5722 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:5724 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:7001 +#, java-format +msgid "{0} connections deleted" +msgstr "s''han suprimit {0} connexions" + +#: org/jmol/script/ScriptEvaluator.java:7013 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} enllaços nous; {1} modificats" + +#: org/jmol/script/ScriptEvaluator.java:8432 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:9492 +#: org/jmol/script/ScriptEvaluator.java:9675 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} à toms suprimits" + +#: org/jmol/script/ScriptEvaluator.java:10323 +#: org/jmol/scriptext/ScriptExt.java:5711 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} enllaços d'hidrogen" + +#: org/jmol/scriptext/ScriptExt.java:5689 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/ScriptExt.java:5770 +#, java-format +msgid "{0} struts mp.added" +msgstr "" + +#: org/jmol/scriptext/ScriptExt.java:6073 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:80 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/viewer/ActionManager.java:340 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:344 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:346 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:350 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:351 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:354 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:356 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:357 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:360 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:363 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:366 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:368 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:370 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:372 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:374 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:376 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:378 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:380 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:387 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:390 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:393 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:396 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:398 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:399 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:401 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:403 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:404 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:409 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:410 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:413 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:415 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:418 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:420 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:423 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:430 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:433 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:435 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:437 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:439 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:445 +#, java-format +msgid "" +"click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:448 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:451 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:456 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:457 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:458 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:2072 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "trieu un o més à toms per a fer girar el model al voltant d'un eix" + +#: org/jmol/viewer/ActionManager.java:2073 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "trieu dos à toms per a fer girar el model al voltant d'un eix" + +#: org/jmol/viewer/ActionManager.java:2077 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:2079 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:654 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:655 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:710 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:712 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:95 +#: org/jmol/viewer/SelectionManager.java:104 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} à toms amagats" + +#: org/jmol/viewer/SelectionManager.java:168 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} à toms seleccionats" + +#: org/jmol/viewer/Viewer.java:4849 +msgid "Drag to move label" +msgstr "Arrossegueu per a moure l'etiqueta" + +#: org/jmol/viewer/Viewer.java:8730 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" +"el porta-retalls no és accessible -- utilitzeu una miniaplicació signada" + +#: org/jmol/viewer/Viewer.java:10098 +#, java-format +msgid "{0} hydrogens added" +msgstr "" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/cs.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/cs.po new file mode 100755 index 000000000000..c4c4e1dd73b1 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/cs.po @@ -0,0 +1,2643 @@ +# Jmol application. +# Copyright (C) 1998-2004 The Jmol Development Team +# This file is distributed under the same license as the Jmol package. +# Pavel Jakubů AUTHOR , 2007. +# translation homework under supervision of Martin Slavik, . +# +msgid "" +msgstr "" +"Project-Id-Version: Jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 23:44+0000\n" +"Last-Translator: Konki \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Country: CZECH REPUBLIC\n" +"X-Poedit-Language: Czech\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Prvek?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol skriptovacà konzole" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Soubor" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "ZavÅ™Ãt" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "Nápo&vÄ›da" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Hledej..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&PÅ™Ãkazy" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Matematické &funkce" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Nastav ¶metry" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&VÃce" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Stav" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Spustit" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Vymaž výstup" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Vymaž vstup" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historie" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Nahrát" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"stisknÄ›te CTRL-ENTER pro vloženà nového řádku nebo vložte údaje o modelu a " +"stisknÄ›te Nahrát" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Zprávy se objevà zde. NapiÅ¡te pÅ™Ãkazy do pole nÞe. KlepnÄ›te na tlaÄÃtko " +"NápovÄ›da v konzoli pro on-line nápovÄ›du, která se objevà v novém oknÄ› " +"prohlÞeÄe." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol Skript Editor" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konzole" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "OtevÅ™Ãt" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "ZepÅ™edu" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Skript" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Zkontrolovat" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Nahoru" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Krok" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pozastavit" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "PokraÄovat" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Zastavit" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Vymazat" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "ZavÅ™Ãt" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Soubor nebo URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Typ obrázku" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG kvalita ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG komprese ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG kvalita ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Ano" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Ne" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Chcete pÅ™epsat soubor {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "VarovánÃ" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "VÅ¡echny soubory" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "ZruÅ¡it" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "ZruÅ¡ výbÄ›r souboru" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Podrobnosti" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Složka" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "OtevÅ™i vybranou složku" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Vlastnosti" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "ZmÄ›nÄ›no" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Obecný soubor" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Název" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Název souboru:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Velikost" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Typy souborů" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Typ" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "NápovÄ›da" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "NápovÄ›da k výbÄ›ru souborů" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Domů" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Seznam" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Hledej v:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Chyba pÅ™i vytvářenà nové složky" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Nová složka" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "VytvoÅ™it novou složku" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "OtevÅ™Ãt zvolený soubor" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Uložit" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Uložit vybraný soubor" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Ulož v:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Aktualizace" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Aktualizuj výpis složky" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Nahoru" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "O úroveň výše" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Náhled" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "PÅ™ipojené modely" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "PDB skica" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"POZNÃMKA: jsou uvedeny souÅ™adnice vodÃků v amidovém skeletu, ale budou " +"ignorovány. Jejich souÅ™adnice budou aproximovány standardnà DSSP analýzou.\n" +"Zvol {0} pokud nechceÅ¡ použÃt tuto aproximaci.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"POZNÃMKA: jsou uvedeny souÅ™adnice vodÃků v amidovém skeletu a budou použity. " +"Výsledky se mohou významnÄ› liÅ¡it od standardnà DSSP analýzy.\n" +"Zvol {0} pokud chceÅ¡ ignorovat uvedené souÅ™adnice vodÃků.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "arabÅ¡tina" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "AsturÅ¡tina" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "ÃzerbájdžánÅ¡tina" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "BosenÅ¡tina" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "KatalánÅ¡tina" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "ÄŒeÅ¡tina" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "DánÅ¡tina" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "NÄ›mÄina" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "ŘeÄtina" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Australská angliÄtina" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Britská angliÄtina" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Americká angliÄtina" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Å panÄ›lÅ¡tina" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "EstonÅ¡tina" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "BaskiÄtina" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "FinÅ¡tina" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "FaerÅ¡tina" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "FrancouzÅ¡tina" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "FrÃÅ¡tina" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "GalÅ¡tina" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "ChorvatÅ¡tina" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "MaÄarÅ¡tina" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "ArménÅ¡tina" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonéština" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "ItalÅ¡tina" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "JaponÅ¡tina" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "JavánÅ¡tina" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "KorejÅ¡tina" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "MalajÅ¡tina" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "NorÅ¡tina Bokmal" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "NizozemÅ¡tina" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "OkcitánÅ¡tina" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "PolÅ¡tina" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "PortugalÅ¡tina" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brazilská portugalÅ¡tina" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "RuÅ¡tina" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "SlovinÅ¡tina" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "SrbÅ¡tina" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Å védÅ¡tina" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "TamilÅ¡tina" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "TelugÅ¡tina" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "TureÄtina" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "UjgurÅ¡tina" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "UkrajinÅ¡tina" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "UzbeÄtina" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "ZjednoduÅ¡ená ÄÃnÅ¡tina" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "TradiÄnà ÄÃnÅ¡tina" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Nemohu zÃskat tÅ™Ãdu pro silové pole {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Nejsou vybrány žádné atomy -- nic na práci!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomy budou minimalizovány." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "nemohu nastavit silové pole {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "nový" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "zpÄ›t (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "znovu (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "stÅ™ed" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "pÅ™idat vodÃky" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimalizovat" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "fixovat vodÃky a minimalizovat" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "vyÄistit" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "uložit soubor" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "uložit stav" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "invertovat stereochemii kruhu" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "smazat atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "táhnout pro spojenà vazbou" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "táhnout atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "táhnout atom (a minimalizovat)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "táhnout a minimalizovat molekulu (dokovánÃ)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "zvýšit náboj" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "snÞit náboj" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "smazat vazbu" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "jednoduchá" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "dvojitá" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "trojitá" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "zvýšit řád" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "snÞit řád" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "rotovat vazbu (SHIFT-DRAG)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "ukonÄit modelovacà mód" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Prostorová grupa" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Nic" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "VÅ¡e" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} procesor/y" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "celkem: {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "maximálnÄ›: {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol skriptovacà konzole" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Návod pro myÅ¡ :-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Nastavenà jazyka" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Systém" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Žádný atom nenahrán" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Konfigurace" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Prvek" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Model/snÃmek" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Jazyk" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Podle názvu substituentu" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Podle HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Molekulové orbitaly ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Symetrie" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Informace o modelu" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Vybrat ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "VÅ¡echny {0} modely" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Konfigurace ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "SbÃrka {0} modelů" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomů: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "vazeb: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "skupin: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "Å™etÄ›zců: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polymerů: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "Model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Zobrazenà {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Hlavnà menu" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolekuly" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolekula {0} ({1} atomů)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "nahraj biomolekulu {0} ({1} atomů)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Nic" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Zobrazit pouze vybrané" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Obrátit výbÄ›r" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Pohled" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "ZepÅ™edu" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Zleva" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Zprava" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Shora" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Zespoda" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Zezadu" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Osy" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Osy" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Osy" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Osy" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Osy" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Osy" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "BÃlkovina" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Skelet" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Postrannà řetÄ›zce" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Polárnà substituenty" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Nepolárnà substituenty" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Zásadité substituenty (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Kyselé substituenty (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Neutrálnà substituenty" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nukleový" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Báze" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT páry" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC páry" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU páry" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Sekundárnà struktura" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "VÅ¡echny PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "VÅ¡echna rozpouÅ¡tÄ›dla" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "vÄetnÄ› molekulové vody" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Nevodné rozpouÅ¡tÄ›dlo" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "Nevodné HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Sacharid" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Nic z výše uvedeného" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Vzhled" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Schéma" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "Kalotový model (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "KuliÄky a tyÄinky" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "TyÄinky" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Drátový model" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Skica (Cartoon)" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Trace (Stopa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomy" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Vypnout" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Vazby" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Zapnout" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "VodÃkové můstky" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "VypoÄÃtat" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Ukázat vodÃkové můstky v postrannÃm Å™etÄ›zci" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Ukázat vodÃkové můstky v hlavnÃm Å™etÄ›zci" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disulfidové můstky" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Ukázat disulfidové můstky v postrannÃm Å™etÄ›zci" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Ukázat disulfidové můstky v hlavnÃm Å™etÄ›zci" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Struktury" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Skica s raketami (Cartoon Rockets)" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Stužky (Ribbons)" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Rakety (Rockets)" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Vlákna (Strands)" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibrace" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektory" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Spektra" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pixelů" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "MěřÃtko {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereografie" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "ÄŒervené + tyrkysové brýle" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "ÄŒervené + modré brýle" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "ÄŒervené + zelené brýle" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Cross-eyed (konvergentnÄ›)" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Wall-eyed (divergentnÄ›)" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Popisky" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "symboly prvků" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "symboly s ÄÃsly atomů" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "oÄÃslované atomy" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "UmÃstit popisek k atomu" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "VystÅ™edit" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Vpravo nahoÅ™e" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Vpravo dole" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Vlevo nahoÅ™e" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Vlevo dole" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Barvy" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Dle schématu" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Prvek (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Volitelné umÃstÄ›nÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekula" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Formálnà náboj" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "ČásteÄný náboj" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Teplota (RelativnÃ)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Teplota (KonstantnÃ)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminokyselina" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "ŘetÄ›zec" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Skupina" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Shapely" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "DÄ›dit (Inherit)" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "ÄŒerná" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "BÃlá" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Modrozelená" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "ÄŒervená" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Oranžová" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Žlutá" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Zelená" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Modrá" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigová" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Fialová" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Lososová" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Olivová" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "KaÅ¡tanová" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Å edá" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "SvÄ›tle modrá" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Zlatá" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orchidejová" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Zneprůhlednit" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Zprůsvitnit" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "PozadÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Povrchy" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Osy" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "HraniÄnà box" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Elementárnà buňka" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Lupa" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "PÅ™iblÞit" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Oddálit" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Rotace" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Nastavit rychlost rotace kolem osy X" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Nastavit rychlost rotace kolem osy Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Nastavit rychlost rotace kolem osy Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Nastavit FPS (poÄet snÃmků za sekundu)" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animace" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Typ animace" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "PÅ™ehrát 1×" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "PÅ™ehrávat dokola" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "PÅ™ehrát" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Zastavit" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "DalÅ¡Ã snÃmek" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "PÅ™edchozà snÃmek" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "PÅ™evinout zpÄ›t" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "PÅ™ehrát pozpátku" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Spustit znovu" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "MěřenÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Dvojklik zahajuje a ukonÄà vÅ¡echna měřenÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Klepnout pro změřenà vzdálenosti" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Klepnout pro změřenà úhlu" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Klepnout pro změřenà torze" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "KlepnÄ›te na dva atomy pro zobrazenà sekvence v konzoli" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Vymazat výsledky měřenÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Naměřené hodnoty" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "nm (1 nm = 1E-9 m)" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Ã… (1 Ã… = 1E-10 m)" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "pm (1 pm = 1E-12 m)" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Nastavit oznaÄovánÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "StÅ™ed" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identita" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Popisek" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Vybrat atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Vybrat Å™etÄ›zec" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Vybrat prvek" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "ukonÄit modelovacà mód" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Vybrat skupinu" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Vybrat molekulu" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Vybrat vazné mÃsto" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Zobraz operace symetrie" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Ukázat" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol skriptovacà konzole" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Obsah souboru" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Záhlavà souboru" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Izopovrchová JVXL data" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Molekulárnà orbital typu JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientace" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Prostorová grupa" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "SouÄasný stav" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Soubor" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Obnovit" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "OtevÅ™Ãt z PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "OtevÅ™Ãt zvolený soubor" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "OtevÅ™Ãt" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "NaÄti úplnou elementárnà buňku" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "OtevÅ™Ãt skript" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Uložit kopii {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Uložit skript se stavem" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Uložit skript s historiÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Exportovat obrázek {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Uložit vÅ¡e jako JMOL soubor (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Uložit JVXL isopovrch" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Exportovat {0} 3D model" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "VýpoÄty" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimalizovat strukturu" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "ModelovánÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Extrahovat MOL data" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "TeÄkovaný povrch" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "van der Waalsův povrch" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Molekulárnà povrch" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Povrch pro rozpouÅ¡tÄ›dlo (průmÄ›r sondy {0} Ã…)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Povrch pÅ™Ãstupný rozpouÅ¡tÄ›dlu (VDW + {0} Ã…)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Znovu naÄÃst {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "NaÄti {0} + Zobraz {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "NaÄti + Polyhedra (mnohostÄ›ny)" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Skrýt" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "TeÄkovanÄ›" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Å ÃÅ™ka v pixelech" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Å ÃÅ™ka v Ã…ngstrémech" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Zvýraznit výbÄ›r (halo)" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Ukázat vodÃky" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Ukázat výsledky měřenÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Hloubka perspektivy" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol barvy" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "O aplikaci..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "Chyba kompilátoru skriptu ERROR: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "oÄekávány osy x y z" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} nenà povoleno se zobrazeným modelem v pozadÃ" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "Å¡patnÄ› spoÄÃtaný argument" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "vÅ¡echny Millerovy indexy nemohou být rovny nule" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "Å¡patné [R,G,B] barvy" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "oÄekáván booleovský parametr" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "oÄekáván booleovský parametr nebo ÄÃslo" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "oÄekáván booleovský parametr, ÄÃslo nebo {0}" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "nelze nastavit hodnotu" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "oÄekávána barva" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "je nutné zadánà barvy nebo sady barev (Jmol, Rasmol)" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "oÄekáván pÅ™Ãkaz" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} nebo $name nebo (oznaÄenà atomů) požadováno" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "nakreslený objekt nenà definován" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "neoÄekávaný konec skriptovacÃho pÅ™Ãkazu" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "oÄekáváno platné oznaÄenà atomu" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "oÄekáváno oznaÄenà atomu nebo celé ÄÃslo" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "oÄekáván název souboru" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "soubor nenalezen" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "nesluÄitelné argumenty" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "nedostateÄné argumenty" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "oÄekáváno celé ÄÃslo" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "celé ÄÃslo mimo interval ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "neplatný argument" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "neplatný parametrový pÅ™Ãkaz" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "oÄekáváno klÃÄové slovo" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "MO koeficienty nejsou dostupné" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "MO index je požadován od 1 do {0}" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "žádné MO báze/koeficienty dostupné pro tento snÃmek" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "žádná data o obsazenà MO dostupná" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Pouze jeden molekulárnà orbital je dostupný pro tento soubor" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} vyžaduje zobrazenà pouze jednoho modelu" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} vyžaduje naÄtenà pouze jediného modelu" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Žádná data nejsou dostupná" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"NenaÄteny žádné parciálnà náboje ze souboru; Jmol je potÅ™ebuje pro " +"poskytutà MEP dat." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Žádná elementárnà buňka" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "oÄekáváno ÄÃslo" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "ÄÃslo musà být ({0} nebo {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "desetinné ÄÃslo neležà v intervalu ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "oÄekáván název objektu po '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"oÄekávána rovina -- buÄ tÅ™i body nebo oznaÄenà atomů nebo {0} nebo {1} nebo " +"{2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "oÄekáván název vlastnosti" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "nenalezená prostorová grupa: {0}" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "oÄekáván citovaný Å™etÄ›zec" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "oÄekáván citovaný Å™etÄ›zec nebo identifikátor" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "pÅ™ÃliÅ¡ mnoho specifikovaných bodů rotace" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "pÅ™ÃliÅ¡ mnoho úrovnà skriptů" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "neznámá vlastnost atomu" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "nerozpoznaná vlastnost vazby" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "neznámý pÅ™Ãkaz" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "neznámý výraz (oznaÄenÃ) v průbÄ›hu programu" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "neznámý objekt" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "neznámý parametr: {0}" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "nerozpoznaný {0} parameter v Jmol stavovém skriptu (pÅ™esto nastavený)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "nerozpoznaný SHOW parametr -- použij {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "Co zapsat? {0} nebo {1} \"název souboru\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "Chyba skriptu ERROR: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atomů smazáno" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} vodÃkových můstků" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "soubor {0} vytvoÅ™en" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "chybný kontext pro {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "oÄekáváno { number number number }" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "oÄekáván konec pÅ™Ãkazu" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "oÄekáván identifikátor nebo specifikace zbytku" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "chybná specifikace atomu" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "chybná specifikace Å™etÄ›zce" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "chybný token výrazu: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "chybná specifikace modelu" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "chybà END pro {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "oÄekáváno ÄÃslo nebo jméno promÄ›nné" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "oÄekávána specifikace zbytku (ALA, AL?, A*)" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} oÄekávána" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} neoÄekávána" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "nerozpoznaný token výrazu: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "nerozpoznaný token: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} podpÄ›r (struts) pÅ™idáno" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "vymazaná spojenÃ: {0}" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} nových vazeb; {1} zmÄ›nÄ›ných" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Poznámka: Tento kontakt zahrnuje vÃce než jeden model!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "KliknÄ›te pro menu..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Aplet verze {0} {1}.\n" +"\n" +"Open Science projekt.\n" +"\n" +"Pro vÃce informacà navÅ¡tivte http://www.jmol.org" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Chyba souboru:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "pÅ™iÅ™adit/nový atom nebo vazbu (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "zobraz poslednà vyskakovacà kontextové menu (klepni na Jmol frank)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "smazat atom (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "samž vazby (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "nastav tlouÅ¡Å¥ku (zadnà rovina; vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "pÅ™esunout atom (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "pÅ™esuň celý DRAW objekt (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "pÅ™esunout specifický DRAW bod ( vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "pÅ™esunout oznaÄenà (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "pÅ™esunout atom a minimalizovat molekulu (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "pÅ™esunout a minimalizovat molekulu (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "pÅ™esunout vybrané atomy ( vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "táhnout atomy ve smÄ›ru osy Z (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simulovat multi-touch pomocà myÅ¡i" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "pÅ™esuň navigaÄnà body (vyžaduje {0} a {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "vybrat atom" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "spoj atomy (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "vybrat ISOSURFACE bod (vyžaduje {0}" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "vybrat popisek pro skrytÃ/zobrazenà (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"vyber atom, který chceÅ¡ zahrnout do měřenà (po zahájenà měřenà nebo po {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "vybrat bod nebo atom ke kterému navigovat (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "vybrat DRAW bod (pro měřenÃ) (vyžaduje {0}" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "zobraz úplné vyskakovacà kontextové menu" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "obnovit (po klepnutà mimo model)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "otoÄit" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "rotovat Å™etÄ›zec kolem vazby (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "otoÄit vybrané atomy (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "Z otáÄenÃ" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"Z otáÄenà (horizontálnà pohyb myÅ¡i) nebo pÅ™iblÞenà (vertikálnà pohyb myÅ¡i)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "vybrat atom (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "vyber a táhni atomy (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "zruÅ¡it výbÄ›r skupiny atomů (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "vybrat NONE (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "pÅ™idej tuto skupinu atomů k již vybraným atomům (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "obrátit výbÄ›r (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"jestliže jsou vÅ¡echny vybrány, zruÅ¡ výbÄ›r, nebo pÅ™idej tuto skupinu atomů k " +"již vybraným atomům (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "vyber atom pro zahájenà nebo ukonÄenà měřenÃ" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "nastav desku/slab (pÅ™ednà rovina; vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "pÅ™esuň okno s deskou/tlouÅ¡Å¥kou (obÄ› roviny; vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "pÅ™iblÞenà (podél pravého okraje okna)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"klepnout na dva body pro otoÄenà kolem osy proti smÄ›ru hodinových ruÄiÄek " +"(vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"klepnout na dva body pro otoÄenà kolem osy po smÄ›ru hodinových ruÄiÄek " +"(vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "zastav pohyb (vyžaduje {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "otáÄej model (klepni a pusÅ¥ tlaÄÃtko a souÄasnÄ› zastav pohyb)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "pÅ™eložit" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "ZvÄ›tÅ¡enÃ" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "vybrat jeden Äi vÃce atomů k rotaci okolo osy" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "vybrat dva atomy k rotaci okolo osy" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "vyber jeden nebo vÃce atomů pro zobrazenà vzájemné symetrie" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "vyber dva atomy pro zobrazenà jejich vzájemné symetrie" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Nastavuji log soubor na {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Nemohu nastavit cestu k log souboru." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "skryté atomy: {0}" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atomů vybráno" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Táhni myÅ¡Ã pro pÅ™esun popisku" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "schránka nenà pÅ™Ãstupná -- použijte podepsaný applet" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} vodÃky pÅ™idány" + +#~ msgid "Hide Symmetry" +#~ msgstr "Skryj symetrii" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Nahrávám Jmol aplet..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} sekund" + +#~ msgid "Java version:" +#~ msgstr "Verze Javy:" + +#~ msgid "1 processor" +#~ msgstr "1 procesor" + +#~ msgid "unknown processor count" +#~ msgstr "neznámý poÄet procesorů" + +#~ msgid "Java memory usage:" +#~ msgstr "Využità pamÄ›ti Javy:" + +#~ msgid "{0} MB free" +#~ msgstr "volných: {0} MB" + +#~ msgid "unknown maximum" +#~ msgstr "neznámé maximum" + +#~ msgid "Open file or URL" +#~ msgstr "OtevÅ™Ãt soubor nebo URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/da.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/da.po new file mode 100755 index 000000000000..de8220d1c1ae --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/da.po @@ -0,0 +1,2636 @@ +# Danish translation for jmol +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 23:44+0000\n" +"Last-Translator: Kaki \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Grundstof?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol-scriptkonsol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Fil" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Luk" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Hjælp" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Søg..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Kommandoer" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Matematik&funktioner" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Indstil ¶metre" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Mere" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Redigering" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Tilstand" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Kør" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Ryd output" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Ryd input" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historik" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Indlæs" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "tryk CTRL-ENTER for ny linje eller indsæt modeldata og tryk Indlæs" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Beskeder vil blive vist her. Indtast kommandoer i boksen nedenfor. Klik " +"konsollens menupunkt Hjælp for at fÃ¥ hjælp pÃ¥ nettet - denne vil dukke op i " +"et nyt browservindue." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol-scriptredigering" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konsol" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Ã…ben" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Forside" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Script" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Tjek" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Toppen" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Trin" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pause" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Genoptag" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Stop" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Ryd" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Luk" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "File eller URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Billedtype" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG-kvalitet ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG-komprimering ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG-kvalitet ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Ja" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Nej" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Ønsker du at overskrive filen {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Advarsel" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Alle filer" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Annuller" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Om filvælgerdialogen" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Detaljer" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Katalog" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Ã…ben den valgte mappe" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Attributter" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Ændret" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Generisk fil" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Navn" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Filnavn:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Størrelse" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Filer af type:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Type" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Hjælp" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Hjælp til filvælger" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Hjem" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Liste" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Se i:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Fejl ved oprettelse af ny mappe" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Ny mappe" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Opret ny mappe" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Ã…bn den valgte fil" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Gem" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Gem den valgte fil" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Gem i:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Opdatér" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Opdater mappeoversigt" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Op" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Et niveau op" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "ForhÃ¥ndsvisning" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Vedhæft modeller" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "PDB tegneserier" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"BEMÆRK: Hydrogenpositioner pÃ¥ amid-rygraden er til stede og vil blive " +"ignoreret. Deres positioner vil blive tilnærmet som i sædvanlig DSSP-" +"analyse.\n" +"Brug {0} for at undlade at bruge denne tilnærmelse.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"BEMÆRK: Hydrogenpositioner pÃ¥ amid-rygraden er til stede og vil blive brugt. " +"Resultaterne kan være betydeligt forskellige fra sædvanlig DSSP-analyse.\n" +"Brug {0} for at ignorere disse hydrogenpositioner.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arabisk" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturisk" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "Azerbaijansk" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosnisk" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Catalansk" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Tjekkisk" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Dansk" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Tysk" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Græsk" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Australsk-engelsk" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Britisk engelsk" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Amerikansk engelsk" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Spansk" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estisk" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "Baskisk" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finsk" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Færøsk" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Fransk" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Frisisk" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Gælisk" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "kroatisk" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Ungarsk" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armensk" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesisk" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italiensk" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japansk" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javanesisk" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Koreansk" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Malay" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norsk (bokmÃ¥l)" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Hollandsk" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitansk" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polsk" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugisisk" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brasiliansk portugisisk" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Russisk" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Slovensk" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbisk" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Svensk" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Tyrkisk" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uyghur" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukrainsk" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Uzbekisk" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Forenklet kinesisk" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Traditionel kinesisk" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Kunne ikke indhente klasse for kraftfelt {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Ingen atomer valgt -- intet at gøre!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomer vil blive minimeret." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "kunne ikke sætte kraftfeltet {0} op" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "ny" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "fortryd (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "omgør (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "centrér" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "tilføj hydrogener" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimer" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "fastlÃ¥s hydrogener og minimer" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "ryd" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "gem fil" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "gem tilstand" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "omvend ring-stereokemi" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "slet atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "træk for at binde" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "træk atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "træk atom (og minimer)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "træk og minimer molekyle (dokning)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "forøg ladning" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "formindsk ladning" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "slet binding" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "enkelt" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "dobbelt" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "tripel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "forøg orden" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "formindsk orden" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "roter binding (SKIFT-TRÆK)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "afslut modelkit-tilstand" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Rumgruppe" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Ingen" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Alle" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processorer" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB i alt" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB maksimum" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol-scriptkonsol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Musemanual" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Oversættelser" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "System" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Ingen atomer indlæst" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Konfigurationer" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Model/billede" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Sprog" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Efter residuumnavn" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Efter HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Molekylorbitaler ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Symmetri" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Modelinformation" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Vælg ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Alle {0} modeller" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Konfiguration ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Samling af {0} modeller" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomer: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "bindinger: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "grupper: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "kæder: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polymerer: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Vis {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Hovedmenu" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolekyler" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolekyle {0} ({1} atomer)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "indlæs biomolekyle {0} ({1} atomer)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Ingen" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Vis kun de valgte" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Omvend markering" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Vis" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Forside" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Venstre" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Højre" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Set oppefra" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Bund" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Tilbage" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Protein" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Rygrad" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Sidekæder" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Polære residier" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Ikke-polære residier" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Basiske residier (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Sure residier (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Ikke-ladede residier" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nuklein" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Baser" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT-par" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC-par" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU-par" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Sekundær struktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Alle PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Kun opløsningsmiddel" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Kun vand" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Ikke-vandigt opløsningsmiddel" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "Ikke-vandig HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Kulhydrat" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Ingen af ovenstÃ¥ende" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Stil" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Skema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK-rumfyldning" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Kugle og pind" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Pinde" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "StÃ¥ltrÃ¥dsramme" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Tegneserie" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Spor" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Fra" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Bindinger" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Til" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Hydrogenbindinger" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Beregn" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Indstil H-bindingers sidekæder" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Indstil H-bindingers rygrad" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disulfidbindinger" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Indstil SS-bindingers sidekæder" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Indstil SS-bindingers rygrad" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Strukturer" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Tegneserieraketter" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "BÃ¥nd" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Raketter" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Strenge" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibration" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektorer" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Spektre" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pixels" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Skalér {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereografisk" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Rød/cyan-briller" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Rød/blÃ¥-briller" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Rød/grøn-briller" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Skeløjet metode" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Paralleløjet metode" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Etiketter" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Med grundstofsymbol" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Med atomnavn" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Med atomnummer" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Placer etiket ved atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Centreret" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Øverst til højre" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Nederst til højre" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Øverst til venstre" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Nederst til venstre" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Farve" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Efter skema" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Grundstof (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Alternativ placering" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekyle" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Formel ladning" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Delvis ladning" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperatur (relativ)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperatur (fastlÃ¥st)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminosyre" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Kæde" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Gruppe" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Velformet" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Nedarv" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Sort" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Hvid" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Cyan" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Rød" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Orange" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Gul" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Grøn" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "BlÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violet" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Laksefarvet" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Olivenfarvet" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Rødbrun" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "GrÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "SkifferblÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Guld" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orkidé" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Gør ugennemsigtig" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Gør gennemsigtigt" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Baggrund" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Overflader" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Afgrænsningsboks" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Enhedscelle" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Zoom ind" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Zoom ud" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Rotation" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Indstil X-rate" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Indstil Y-rate" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Indstil Z-rate" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Indstil FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animation" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Animationstilstand" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Afspil en gang" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Løkke" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Afspil" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Stop" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Næste billede" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Forrige billede" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Spol tilbage" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Baglæns" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Genstart" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "MÃ¥linger" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Dobbeltklik starter og slutter alle mÃ¥linger" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Klik for afstandsmÃ¥ling" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Klik for vinkelmÃ¥ling" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Klik for torsionsmÃ¥ling (dihedral)" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Klik pÃ¥ to atomer for at vise en sekvens i konsollen" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Slet mÃ¥linger" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Vis mÃ¥linger" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Aftstandsenhed nanometre" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Afstandsenhed Ã…ngstrøm" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Afstandsenhed pikometre" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Indstil udvælgelse" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Center" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identitet" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Etiket" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Vælg atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Vælg kæde" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Vælg element" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "afslut modelkit-tilstand" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Vælg gruppe" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Vælg molekyle" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Vælg sted" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Vis symmetrioperationer" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Vis" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol-scriptkonsol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Filindhold" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Filhoved" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "JVXL-data til isooverflade" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "JVXL-data til molekylær orbital" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Retning" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Rumgruppe" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Nuværende tilstand" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Fil" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Genindlæs" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Ã…bn fra PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Ã…bn den valgte fil" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Ã…ben" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Indlæs hele enhedscellen" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Ã…bn script" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Gem en kopi af {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Gem script med tilstand" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Gem script med historik" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Eksporter {0}-billede" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Gem alle som en JMOL-fil (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Gem JVXL-isooverflade" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Eksporter {0}-3D-model" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Beregning" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimer struktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Modelkit" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Udtræk MOL-data" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Prikoverflade" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "van Der Waals-overflade" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Molekylæroverflade" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Opløsningsmiddeloverflade ({0}-Ã…ngström probe)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Opløsningsmiddel-tilgængelig overflade (VDW + {0} Ã…ngström)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Genindlæs {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Genindlæs {0} + vis {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Genindlæs + polyeder" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Skjul" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Punkteret" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Pixelbredde" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Ã…ngström-bredde" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Markeringsfremhævning" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Vis hydrogen" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Vis mÃ¥linger" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Perspektivdybde" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol-farver" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Om..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "scriptkompileringsFEJL: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "forventede x y z-akser" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} er ikke tilladt med baggrundsmodellen vist" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "forkert antal argumenter" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Miller-indeks kan ikke alle være nul." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "ugyldig [R,G,B]-farve" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "forventede boolesk variabel" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "forventede boolesk variabel eller tal" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "forventede boolesk variabel, tal eller {0}" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "Kan ikke fastsætte værdi" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "forventede farve" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "et farve- eller palet-navn (Jmol, Rasmol) er pÃ¥krævet" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "forventede kommando" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} eller $name eller (atomudtryk) kræves" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "tegneobjekt ikke defineret" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "uventet afslutning af script-kommando" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "gyldigt (atomudtryk) forventet" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(atomudtryk) eller heltal forventet" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "forventede filnavn" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "fil ikke fundet" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "inkompatible argumenter" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "utilstrækkelige argumenter" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "heltal forventet" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "heltal uden for interval ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "ugyldigt argument" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "ugyldig rækkefølge af parametre" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "forventede nøgleord" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "ingen tilgængelige data for MO-koefficienter" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Der kræves et MO-indeks fra 1 til {0}" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "ingen tilgængelige data for MO-basis/koefficenter for dette billede" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "ingen tilgængelige MO-okkupationsdata" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Kun en enkelt molekylærbital er tilgængelig i denne fil" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} kræver at kun en model vises" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} kræver at kun en model indlæses" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Ingen data tilgængelige" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Ingen delvise ladninger blev læst fra filen; Jmol kræver disse for at tegne " +"MEP-dataene." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Ingen enhedscelle" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "nummer forventet" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "nummer skal være ({0} eller {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "decimaltal uden for interval ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "objektnavn forventet efter \"$\"" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"plan forventet -- enten tre punkter eller atomudtryk eller {0} eller {1} " +"eller {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "egenskabsnavn forventet" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "rumgruppen {0} blev ikke fundet." + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "streng i anførselstegn forventet" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "streng i anførselstegn eller variabelnavn forventet" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "der blev angivet for mange rotationspunkter" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "for mange scriptniveauer" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "ukendt atomegenskab" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "ukendt bindingsegenskab" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "ukendt kommando" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "ukendt udtryk ved kørsel" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "ukendt objekt" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "ukendt {0}-parameter" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "ukendt {0}-parameter i Jmol-tilstandsscript (tildelt alligevel)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "ukendt SHOW-parameter -- brug {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "skriv hvad? {0} eller {1} \"filnavn\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "scriptFEJL: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atomer slettet" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} hydrogenbindinger" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "filen {0} dannet" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "ugyldig kontekst for {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "forventede { nummer nummer nummer }" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "forventede afslutning pÃ¥ udtryk" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "forventede identifikator eller residuum" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "ugyldig atomspecifikation" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "ugyldig kædespecifikation" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "ugyldigt udtrykssymbol: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "ugyldig modelspecifikation" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "mangler END til {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "forventede tal eller variabelnavn" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "forventede residuumspecifikation (ALA, AL?, A*)" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "forventede {0}" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} ikke forventet" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "ukendt udtrykssymbol: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "ukendt symbol: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} afstivere tilføjet" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} forbindelser slettet" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} nye bindinger; {1} ændrede" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Bemærk: Der er mere end en model i denne kontakt!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Klik for menu..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet version {0} {1}.\n" +"\n" +"Et OpenScience-projekt.\n" +"\n" +"Se http://www.jmol.org for mere information" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Filfejl:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "tildel/opret atom eller binding (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "pop den seneste kontekstmenu op (klik pÃ¥ Jmol-mærket)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "slet atom (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "slet binding (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "juster dybde (bagerste plan; kræver {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "flyt atom (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "flyt hele DRAW-objekt (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "flyt specifikt DRAW-punkt (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "flyt etiket (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "flyt atom og minimer molekyle (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "flyt og minimer molekyle (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "flyt valgte atomer (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "træk atomerne i Z retning (requires {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simuler multiberøring ved hjælp af musen)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "parallelforskyd navigationspunkt (kræver {0} og {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "vælg et atom" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "forbind atomer (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "vælg et ISOSURFACE-punkt (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "vælg en etiket for at skifte den mellem skjult/vist (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"vælg et atom for at inkludere det i en mÃ¥ling (efter at have startet en " +"mÃ¥ling eller efter {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "vælg et punkt eller atom at navigere til (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "vælg et DRAW-punkt (til mÃ¥linger) (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "pop den fulde kontekstmenu op" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "nulstil (nÃ¥r der klikkes uden for modellen)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "rotér" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "roter gren rundt om binding (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "roter valgte atomer (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "rotér Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"rotér Z (vandret bevægelse af musen) eller zoom (lodret bevægelse af musen)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "vælg et atom (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "vælg og træk atomer (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "fravælg denne gruppe af atomer (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "vælg INGEN (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "tilføj denne gruppe atomer til sættet af valgte atomer (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "omvend udvalg (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"hvis alle er valgt, sÃ¥ fravælg alle, ellers tilføj denne gruppe af atomer " +"til sættet af valgte atomer (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "vælg et atom for at starte eller afslutte en mÃ¥ling" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "juster plade (slab) (forreste plan; kræver {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "flyt plade (slab)/dybde-vindue (begge planer; kræver {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zoom (langs højre vindueskant)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "klik pÃ¥ to punkter for at rotere rundt om akse mod uret (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "klik pÃ¥ to punkter for at rotere rundt om akse med uret (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "stop bevægelse (kræver {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "rotér model (stryg og slip knap og stop bevægelse samtidig)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "parallelforskyd" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "zoom" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "vælg et atom mere for at rotere modellen rundt om en akse" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "vælg to atomer for at rotere modellen rundt om en akse" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "vælg et atom mere for at vise symmetriforhold" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "vælg to atomer for at vise symmetriforholdet mellem dem" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Sætter logfil til {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Kan ikke indstille sti til logfil." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atomer gemt" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atomer valgt" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Træk for at flytte etiket" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "udklipsholder er ikke tilgængelig -- brug underskrevet applet" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} hydrogener tilføjet" + +#~ msgid "Hide Symmetry" +#~ msgstr "Skjul symmetri" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Indlæser Jmol-applet..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} sekunder" + +#~ msgid "Java version:" +#~ msgstr "Java-version:" + +#~ msgid "1 processor" +#~ msgstr "1 processor" + +#~ msgid "unknown processor count" +#~ msgstr "ukendt antal processorer" + +#~ msgid "Java memory usage:" +#~ msgstr "Java-hukommelsesforbrug:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB fri" + +#~ msgid "unknown maximum" +#~ msgstr "ukendt maksimum" + +#~ msgid "Open file or URL" +#~ msgstr "Ã…bn fil eller URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/de.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/de.po new file mode 100755 index 000000000000..e941b8512626 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/de.po @@ -0,0 +1,2661 @@ +# German translation of the Jmol applet +# Copyright (C) 2005-2008 by the Jmol Development Team +# This file is distributed under the same license as the Jmol package. +# Daniel Leidert , 2005,2007,2008. +# Sebastian Lisken , 2006. +# Oliver Stueker +# +# Bitte denkte daran, dass *Fachbegriffe* der Chemie und +# verwandter Fachbereiche benötigt und benutzt werden! +# +# +msgid "" +msgstr "" +"Project-Id-Version: JmolApplet 11\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 23:44+0000\n" +"Last-Translator: cmdrhenner \n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Element?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol-Skript-Konsole" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Datei" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Schließen" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Hilfe" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Suchen …" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Befehle" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Mathematische &Funktionen" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "&Parameter festlegen" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Mehr" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Zustand" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Ausführen" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Ausgabe leeren" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Eingabe leeren" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Verlauf" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Laden" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"Strg+Eingabe drücken für einen Zeilenumbruch oder Modelldaten einfügen und " +"auf »Laden« drücken" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Meldungen werden hier erscheinen. Geben Sie Kommandos in der unteren Box " +"ein. Klicken Sie auf das Hilfe-Menü für eine Online-Hilfe, die in einem " +"neuen Browser-Fenster erscheinen wird." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol-Skript-Editor" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konsole" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Öffnen" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Vorderseite" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Skript" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Prüfen" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "An die Spitze" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Stufe" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pause" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Fortsetzen" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Stoppen" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Leeren" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Schließen" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Datei oder URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Bildtyp" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG-Qualität ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG-Komprimierung ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG-Qualittät ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Ja" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Nein" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Möchten Sie die Datei {0} überschreiben?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Warnung" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Alle Dateien" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Abbrechen" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Dialogfeld für Dateiauswahl abbrechen" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Details" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Verzeichnis" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Ausgewähltes Verzeichnis öffnen" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Attribute" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Verändert" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Allgemeine Datei" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Name" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Dateiname:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Größe" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Dateityp:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Typ" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Hilfe" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Hilfe für Dateiauswahl" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Persönlicher Ordner" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Liste" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Suchen in:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Fehler beim Erstellen eines neuen Ordners" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Neuer Ordner" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Neuen Ordner erstellen" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Ausgewählte Datei öffnen" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Speichern" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Ausgewählte Datei speichern" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Speichern in:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Aktualisieren" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Verzeichnisliste aktualisieren" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Nach oben" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Eine Ebene nach oben" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Vorschau" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Modelle anhängen" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "PDB-Zeichentrick" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"HINWEIS: Wasserstoff Positionen der Backbone Amide sind vorhanden und werden " +"ignoriert. Ihre Positionen werden angenähert, so wie in der Standard DSSP " +"Analyse.\n" +"Verwenden Sie {0} um diese Annäherung nicht zu verwenden.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"HINWEIS: Wasserstoff Positionen der Backbone Amide sind vorhanden und werden " +"verwendet. Das Ergebnis kann signifikant von der Standard-DSSP-Analyse " +"abweichen.\n" +"Verwenden Sie {0} um diese Annäherung nicht zu verwenden.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "arabisch" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturisch" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "Aserbaidschanisch" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosnisch" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Katalanisch" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Tschechisch" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Dänisch" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Deutsch" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Griechisch" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Australisches Englisch" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "britisches Englisch" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "amerikanisches Englisch" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Spanisch" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estnisch" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "Baskisch" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finnisch" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Färöisch" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Französisch" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Friesisch" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Galizisch" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Kroatisch" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Ungarisch" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armenisch" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesisch" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italienisch" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japanisch" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javanisch" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Koreanisch" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Malaiisch" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norwegisches BokmÃ¥l" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Niederländisch" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Okzitanisch" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polnisch" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugiesisch" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brasilianisches Portugiesisch" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Russisch" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Slowenisch" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbisch" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Schwedisch" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Türkisch" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uigurisch" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukrainisch" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Usbekisch" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Chinesisch (vereinfacht)" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Chinesisch (traditionell)" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Kann keine Güteklasse für Karftfeld {0} feststellen" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Keine Atome ausgewählt -- es gibt nichts zu tun!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} Atome werden minimiert" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "kann Kraftfeld {0} nicht einrichten" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "Neu" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "Rückgängig (Strg+Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "Wiederherstellen (Strg+Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "Mittelpunkt" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "Wasserstoffe hinzufügen" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimieren" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "Wasserstoffe fixieren und minimieren" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "leeren" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "Datei speichern" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "Zustand speichern" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "invertiere Ring-Stereochemie" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "Atom löschen" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "verbinden durch Ziehen" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "Atom verschieben" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "Atom verschieben (und minimieren)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "Molekül verschieben und minimieren (Docking)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "Ladung erhöhen" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "Ladung verringern" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "Bindung löschen" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "einzeln" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "doppelt" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "dreifach" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "Bindunggsgrad erhöhen" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "Bindunggsgrad vermindern" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "Bindung rotieren (Umschalttaste+Ziehen)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "ModelKit Modus verlassen" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Raumgruppe" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Nichts" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Alle(s)" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} Prozessoren" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB insgesamt" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB maximal" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol-Skript-Konsole" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Maus-Handbuch" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Ãœbersetzungen" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "System" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Keine Atome geladen" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Einstellungen" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Modell/FRame" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Sprache" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Nach Residuen" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Nach HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Molekülorbital ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Symmetrie" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Modelldaten" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Auswahl ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Alle {0} Modelle" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Konfigurationen ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Gesamt {0} Modelle" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "Atome: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "Bindungen: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "Gruppen: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "Ketten: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "Polymere: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "Modell {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Ansicht {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Hauptmenü" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomoleküle" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "Biomolekül {0} ({1} Atome)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "Lade Biomolekül {0} ({1} Atome)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Nichts" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Nur Auswahl anzeigen" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Auswahl invertieren" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Ansicht" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Vorderseite" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Links" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Rechts" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Oberseite" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Unterseite" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Rückseite" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Achsen" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Achsen" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Achsen" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Achsen" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Achsen" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Achsen" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Protein" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Primärstruktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Seitenketten" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Polare Residuen" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Unpolare Residuen" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Basische Residuen (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Saure Residuen (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Ungeladene Residuen" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nukleinsäuren" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Basen" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT-Paare" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC-Paare" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU-Paare" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Sekundärstruktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Alle PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Alles Lösungsmittel" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Alles Wasser" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Nichtwässiges Lösungsmittel" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "Nichtwässiges HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Kohlenhydrate" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Keine der genannten" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Stil" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Schema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "Kalotten" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Kugel-Stab" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Stäbchen" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Drahtgitter" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Cartoon" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Spur" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atome" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Aus" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% Van-der-Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Bindungen" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "An" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Wasserstoff(brücken)bindungen" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Berechnen" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Setze H-Brücken Seitenkette" + +# The term "Backbone" seems to be commen in German too: +# http://de.wikipedia.org/wiki/Backbone_(Biochemie) +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Setze H-Brücken Backbone" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disulfidbindungen" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Setze SS-Bindungen Seitenkette" + +# The term "Backbone" seems to be commen in German too: +# http://de.wikipedia.org/wiki/Backbone_(Biochemie) +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Setze SS-Bindungen Backbone" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Strukturen" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Cartoon Raketen" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Bänder" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Raketen" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Bänder" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Schwingung" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektoren" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Spektren" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} Pixel" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Skalierung {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereografie" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "3D-Brille Rot/Cyan" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "3D-Brille Rot/Blau" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "3D-Brille Rot/Grün" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Kreuzblick" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Parallelblick" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Beschriftungen" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Mit Elementsymbol" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Mit Atomname" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Mit Atomnummer" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Beschriftung am Atom positionieren" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Zentriert" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Oben rechts" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Unten rechts" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Oben links" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Unten links" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Farbe" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Nach Schema" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Element (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Alternative Lage" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekül" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Formalladung" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Partialladung" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperatur (relativ)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperatur (fest)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminosäure" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Kette" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Gruppe" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Schattenhaft" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Umkehren" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Schwarz" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Weiß" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Cyan" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Rot" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Orange" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Gelb" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Grün" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Blau" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violett" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Lachsrosa" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Olivgrün" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Kastanienbraun" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Grau" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Schieferblau" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Gold" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orchideenrosa" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Lichtundurchlässig machen" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Lichtdurchlässig machen" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Hintergrund" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Oberflächen" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Achsen" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Zeichen-Box" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Elementarzelle" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Vergößerung" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Vergrößern" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Verkleinern" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Spin" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "X-Rate einstellen" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Y-Rate einstellen" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Z-Rate einstellen" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Framerate einstellen" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animation" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Animationsmodus" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Einmal abspielen" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Schleife" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Abspielen" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Anhalten" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Nächster Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Vorheriger Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Zurückspulen" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Umkehren" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Neustart" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Messungen" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Doppelklick startet und beendet alle Messungen" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Abstand messen" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Winkel messen" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Torsions-/Diederwinkel messen" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Klicke zwei Atome an um eine Sequenz in der Konsole anzuzeigen" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Messwerte löschen" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Messwerte listen" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Abstand in Nanometer" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Abstand in Ã…ngström" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Abstand in Picometer" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Auswahlmodus einstellen" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Zentriert" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identifiziere" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Beschriftung" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Atom selektieren" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Kette selektieren" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Element selektieren" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "ModelKit Modus verlassen" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Gruppe selektieren" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Molekül selektieren" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Seite selektieren" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Zeige Symmetrie Operation" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Anzeigen" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol-Skript-Konsole" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Dateininhalt" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Dateiheader" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Isoflächedaten JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Molekülorbitaldaten JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Modell" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientierung" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Raumgruppe" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Aktueller Zustand" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Datei" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Neu Laden" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Aus PDB öffnen" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Ausgewählte Datei öffnen" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Öffnen" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Lade gesamte Elementarzelle" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Skript öffnen" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Eine Kopie von {0} speichern" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Skript mit Status speichern" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Skript mit Verlauf speichern" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "exportiere {0} Abbild" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Alles als Jmol-Datei (zip) speichern" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "speichere JVXL Isooberfläche" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "expotiere {0} 3D Modell" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Berechnung" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "optimiere Struktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Model Kit" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "MOL-Daten extrahieren" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Gepunktete Oberfläche" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "van-der-Waals Oberfläche" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Moleküloberfläche" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Lösungsmittel Oberfläche ({0}-Angström Sonde)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Lösungsmittel-zugängliche Oberfläche \"SAS\" (VDW + {0} Ã…)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Erneut laden {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Neuladen {0} + Anzeige {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Neu Laden + Polyhedra" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Verbergen" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Gepunktet" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Pixelbreite" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Ã…ngström-Breite" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Auswahl Halo" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Wasserstoffe anzeigen" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Messungen anzeigen" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Perspektivische Tiefe" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol Farben" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Ãœber..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "Skript-Compiler FEHLER: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "x y z Achse erwartet" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} nicht erlaubt mit angezeigtem Hintergrund-Modell" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "falsche Argument Anzahl" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Nicht alle Miller-Indices können Null sein." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "fehlerhafte [R,G,B] Farbe" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "Logischer Term (Boolean) erwartet" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "Logischer Term (Boolean) oder Zahl erwartet" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "Logischer Term (Boolean), Zahl oder {0} erwartet" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "Wert konnte nicht gesetzt werden" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "Farbe erwartet" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "Eine Farbe oder ein Palettenname (Jmol, Rasmol) wird benötigt" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "Befehl erwartet" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} oder $name oder (Ausdruck) wird benötigt" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "Zeichnungs-Objekt nicht definiert" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "Unerwartetes Ende des Skript Befehls" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "gültiger (Atom Ausdruck) erwartet" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(Atom Ausdruck) oder Ganzzahl erwartet" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "Dateiname erwartet" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "Datei nicht gefunden" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "inkompatible Argumente" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "zu wenige Argumente" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "Ganzzahl erwartet" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "Ganzzahl nicht im gültigen Bereich ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "ungültiges Argument" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "ungültige Reihenfolge der Parameter" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "Schlüsselwort erwartet" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "keine MO Koeffizient Daten vorhanden" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Ein MO Index zwischen 1 und {0} wird benötigt" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "für diesen Frame sind keine MO Basis/Koeffizient Daten verfügbar" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "Keine Daten über die MO-Besetzung vorhanden" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "In dieser Datei isr nur ein Molekül-Orbital verfügbar" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} erfordert, dass nur ein Modell angezeigt wird" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} macht es erforderlich, dass nur ein Modell geladen wird" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Keine Daten verfügbar." + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Aus der Datei wurden keine Partialladungen gelesen; Jmol benötigt diese, um " +"die MEP-Daten darzustellen." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Keine Elementarzelle" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "Zahl erwartet" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "Zahl muss ({0} or {1}) sein" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "Dezimalzahl nicht im gültigen Bereich ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "Objektname erwartet nach '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"Fläche erwartet -- entweder drei Punkte oder Atom-Ausdrücke oder {0} oder " +"{1} oder {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "Eigenschafts Name erwartet" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "Raumgruppe {0} nicht gefunden" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "In Anführungszeichen gesetzte Zeichenkette erwartet" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "In Anführungszeichen gesetzte Zeichenkette oder Bezeichner erwartet" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "zu viele Rotationspunkte benannt" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "zu viele Skript-Ebenen" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "nicht erkannte Atom-Eigenschaft" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "nicht erkannte Bindungs-Eigenschaft" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "nicht erkannter Befehl" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "zur Laufzeit nicht erkannter Ausdruck" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "unbekanntes Objekt" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "unbekannter {0} Parameter" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "Unbekannter Parameter {0} in Jmol-Zustands-Skript (trotzdem gesetzt)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "unbekannter SHOW parameter -- benutze {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "Was schreiben? {0} oder {1} \"Dateiname\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "Skript FEHLER: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} Atome gelöscht" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} Wasserstoff(brücken)bindungen" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "Datei {0} erstellt" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "Ungültiger Kontext für {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ Zahl Zahl Zahl } erwartet" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "Ende des Ausdrucks erwartet" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "Bezeichner oder Residue-Spezifikation erwartet" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "ungültige Atom-Spezifikation" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "ungültige Ketten-Spezifikation" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "ungültiges Ausdrucks-Token: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "ungültige Modell-Spezifikation" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "fehlendes END für {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "Zahl oder Variablenname erwartet" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "Residue Spezifikation (ALA, AL?, A*) erwartet" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} erwartet" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} unerwartet" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "unbekanntes Ausdrucks-Token: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "Unbekanntes Token: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} Streben hunzugefügt" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} Bindungen gelöscht" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} neue Bindungen; {1} verändert" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "HINWEIS: Mehr als ein Modell ist in diesen Kontakt involviert!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Klicken um in das Menü zu kommen..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol-Applet Version {0} {1}.\n" +"\n" +"Ein OpenScience-Projekt.\n" +"\n" +"Mehr Informationen unter http://www.jmol.org." + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Datei-Fehler:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "zuweisen/neues Atom oder Bindung (erfordert {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "Letztes Kontextmenü aufklappen (Jmol-Emblem anklicken)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "Atom löschen (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "Bindung löschen (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "Tiefe anpassen (hintere Ebene; benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "Atom verschieben (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "ein ganzes DRAW Objekt verschieben (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "einen bestimmten DRAW-Punkt verschieben (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "Beschriftungen verschieben (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "Atom verschieben und Molekül minimieren (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "bewege und minimiere Molekül (erfordert {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "Ausgewählte Atome bewegen (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "ziehe Atome in Z-Richtung (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "multi-touch simulieren (mit der Maus)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "Navigationspunkt verschieben (benötigt {0} und {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "Atom auswählen" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "Atome verbinden (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "wähle einen ISOSURFACE Punkt (benötigt {0}" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" +"Eine Beschriftung auswählen um es zu verstecken/anzuzeigen (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"ein Atom auswählen um es in einer Messung zu verwenden (nach dem Starten " +"einer Messung oder nach {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "wähle einen Punkt oder Atom als Navigations-Ziel (erfordert {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "wähle einen DRAW Punkt (für Messungen) (erfordert {0})" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "komplettes Kontextmenü öffnen" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "zurücksetzen (wenn neben dem Modell geklickt)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "drehen" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "rotiere Verzweigung um Bindung (erfordert {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "Ausgewählte Atome drehen (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "rotieren Z-Achse" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"rotieren Z-Achse (horizontale Bewegung der Maus) oder zoomen (vertikale " +"Bewegung der Maus)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "ein Atom auswählen (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "wähle und verschiebe Atome (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "Auswahl für diese Gruppe von Atomen aufheben (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "nichts auswählen (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" +"diese Gruppe von Atomen den ausgewählten Atomen hinzufügen (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "Auswahl hin- und herschalten (erfordert {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"wenn alle ausgewählt sind, wähle alle ab, ansonsten füge diese Gruppe von " +"Atomen der Menge ausgewählten Atome hinzu (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "Atom auswählen um Messung zu initiieren oder abzuschließen" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "Schnittfläche anpassen (vordere Ebene; benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" +"Schnittfläche/Tiefe Ausschnitt verschieben (beide Ebenen; benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "Zoom (entlang der rechten Bildkante)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"klicke zwei Atome an um gegen den Uhrzeigersinn um die Achse zu drehen " +"(erfordert {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"klicke zwei Atome an um im Uhrzeigersinn um die Achse zu drehen (erfordert " +"{0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "Bewegung stoppen (benötigt {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" +"Modell in Rotation versetzen (wischen und Knopf loslassen und gleichzeitig " +"Bewegung stoppen)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "verschieben" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "Zoom" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "wähle ein weiteres Atom um das Modell um eine Achse zu drehen" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "wähle zwei Atome um das Modell um eine Achse zu drehen" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "wähle ein oder mehrere Atome um die Symmetrie-Beziehung anzuzeigen" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "wähle zwei Atome um ihre Symmetrie-Beziehung anzuzeigen" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Stelle Log Datei auf {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Kann Pfad für Log-Datei nicht setzen" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} Atome versteckt" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} Atome ausgewählt" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Ziehen um Beschriftung zu bewegen." + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" +"auf den Notizblock kann nicht zugegriffen werden -- verwenden Sie das " +"signierte Miniprogramm" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} Wasserstoff-Brücken hinzugefügt" + +#~ msgid "Hide Symmetry" +#~ msgstr "Symetrie verstecken" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Jmol-Applet wird geladen …" + +#~ msgid " {0} seconds" +#~ msgstr " {0} Sekunden" + +#~ msgid "Java version:" +#~ msgstr "Java Version" + +#~ msgid "1 processor" +#~ msgstr "1 Prozessor" + +#~ msgid "unknown processor count" +#~ msgstr "Prozessoranzahl unbekannt" + +#~ msgid "Java memory usage:" +#~ msgstr "Speicherbedarf von Java:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB frei" + +#~ msgid "unknown maximum" +#~ msgstr "Maximum unbekannt" + +#~ msgid "Open file or URL" +#~ msgstr "Datei oder URL öffnen" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/el.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/el.po new file mode 100755 index 000000000000..9e24468091cb --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/el.po @@ -0,0 +1,2605 @@ +# Greek translation for jmol +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Dimitrios - Georgios Kontopoulos \n" +"Language-Team: Greek \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Στοιχείο;" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Κονσόλα Script του Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "ΑÏχείο" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Κλείνω" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Βοήθεια" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Αναζήτηση..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Κατάσταση" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "ΙστοÏικό" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "ΦόÏτωση" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Κονσόλα" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Άνοιγμα" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Script" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Έλεγχος" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "ΠαÏση" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "ΣυνÎχιση" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Απαλοιφή" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Κλείνω" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "ΑÏχείο ή URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "ΤÏπος εικόνας" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Ποιότητα JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Συμπίεση PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Ποιότητα PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Îαι" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Όχι" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "ΘÎλετε να αντικαταστήσετε το αÏχείο {0};" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Όλα τα ΑÏχεία" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "ΑκÏÏωση" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Ενότητες:" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Κατάλογος" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Άνοιγμα επιλεγμÎνου καταλόγου" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Όνομα" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Όνομα αÏχείου:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "ÎœÎγεθος" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "ΑÏχεία Ï„Ïπου:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Βοήθεια" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Βοήθεια για τον ΕπιλογÎαΑÏχείων" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "ΑÏχική" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Λάθος δημιουÏγίας νÎου φακÎλου" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "ÎÎος Φάκελος" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "ΔημιουÏγία ÎÎου ΦακÎλου" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Άνοιγμα επιλεγμÎνου αÏχείου" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Αποθήκευση" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Αποθήκευση επιλεγμÎνου αÏχείου" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Αποθήκευση στο:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "ΕνημÎÏωση" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Πάνω" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Ένα επίπεδο πάνω" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "Εντάξει" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Î Ïοεπισκόπηση" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "ΑÏαβικά" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Καταλανικά" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "ΤσÎχικα" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "ΔανÎζικα" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "ΓεÏμανικά" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Ελληνικά" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Αγγλικά (Îœ. Î’Ïετανίας)" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Αγγλικά (ΑμεÏικής)" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Ισπανικά" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Εσθονικά" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Îήσων ΦεÏόε" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Γαλλικά" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "ΟυγγÏικά" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Ινδονησιακά" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Ιταλικά" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Ιαπωνικά" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "ΚοÏεάτικα" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Ολλανδικά" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "ΠολωνÎζικα" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "ΠοÏτογαλικά" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "ΠοÏτογαλικά Î’Ïαζιλίας" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Ρωσικά" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "ΣλοβÎνικα" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Σουηδικά" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "ΤοÏÏκικα" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "ΟυκÏανικά" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "ΑπλοποιημÎνα ΚινÎζικα" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "ΠαÏαδοσιακά ΚινÎζικα" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Δεν επιλÎχθηκαν άτομα -- δεν υπάÏχει κάτι να κάνω!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "νÎο" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "αναίÏεση (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "Ï€Ïοσθήκη υδÏογόνων" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "αποθήκευση αÏχείου" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "διαγÏαφή ατόμου" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "αÏξηση φοÏτίου" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "μείωση φοÏτίου" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "διαγÏαφή δεσμοÏ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "μονός" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "διπλός" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "Ï„Ïιπλός" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +msgid "none" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Όλα" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} επεξεÏγαστÎÏ‚" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB σÏνολο" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB μÎγιστο" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Κονσόλα Script του Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "ΜεταφÏάσεις" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "ΣÏστημα" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Δεν φοÏτώθηκαν άτομα" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Ρυθμίσεις" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Στοιχείο" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Γλώσσα" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Κατά Όνομα Καταλοίπου" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "ΜοÏιακά ΤÏοχιακά ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "ΣυμμετÏία" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "ΠληÏοφοÏίες ΜοντÎλου" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Επιλογή ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "άτομα: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "δεσμοί: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "ομάδες: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "αλυσίδες: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "πολυμεÏή: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "μοντÎλο {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "ΚεντÏικό ΜενοÏ" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "ΒιομόÏια" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "βιομόÏιο {0} ({1} άτομα)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "φόÏτωση βιομοÏίου {0} ({1} άτομα)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Άξονες" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Άξονες" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Άξονες" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Άξονες" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Άξονες" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Άξονες" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Î ÏωτεÎνη" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Ραχοκοκαλιά" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "ΠλευÏικÎÏ‚ Αλυσίδες" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Πολικά Κατάλοιπα" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Μη Πολικά Κατάλοιπα" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Βασικά Κατάλοιπα (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Όξινα Κατάλοιπα (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Μη ΦοÏτισμÎνα Κατάλοιπα" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Îουκλεϊκό" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Βάσεις" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "ζεÏγη AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "ζεÏγη GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "ζεÏγη AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "ΔευτεÏοταγής Δομή" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "ΕτεÏοάτομα" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Όλος ο ΔιαλÏτης" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Όλο το ÎεÏÏŒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Μη υδατικός ΔιαλÏτης" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Î ÏοσδÎτης" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "ΥδατάνθÏακας" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "ΚανÎνα από τα παÏαπάνω" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "ΚαÏτοÏν" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Άτομα" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Δεσμοί" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Δεσμοί ΥδÏογόνου" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Δισουλφιδικοί Δεσμοί" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "ΔομÎÏ‚" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "ΚοÏδÎλες" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} εικονοστοιχεία" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Κλίμακα {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "ΕτικÎτες" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Με το ΣÏμβολο του Στοιχείου" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Με το Όνομα του Ατόμου" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Με τον ΑÏιθμό του Ατόμου" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Πάνω Δεξιά" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Κάτω Δεξιά" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Πάνω ΑÏιστεÏά" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Κάτω ΑÏιστεÏά" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "ΧÏώμα" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "ΜόÏιο" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "ΜεÏικό ΦοÏτίο" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "ΘεÏμοκÏασία (Σχετική)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "ΑμινοξÏ" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Αλυσίδα" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Ομάδα" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "ΜονομεÏÎÏ‚" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "ΜαÏÏο" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Λευκό" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Κυανό" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Κόκκινο" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "ΠοÏτοκαλί" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "ΚίτÏινο" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Î Ïάσινο" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Μπλε" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Βιολετί" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Λαδί" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "ΓκÏι" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "ΧÏυσό" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "ΠαÏασκήνιο" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Άξονες" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Στοιχειώδης κυψελίδα" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "ΠαλινδÏομικά" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "ΑναπαÏαγωγή" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "ΜετÏήσεις" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Με διπλό κλικ ξεκινοÏν και τελειώνουν όλες οι μετÏήσεις" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Κάντε κλικ για μÎÏ„Ïηση απόστασης" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Κάντε κλικ για μετÏήση γωνίας" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "ΔιαγÏαφή μετÏήσεων" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Μονάδες απόστασης νανόμετÏα" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Μονάδες απόστασης Angstroms" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Μονάδες απόστασης πικόμετÏα" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Επιλογή ατόμου" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Επιλογή αλυσίδας" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Επιλογή στοιχείου" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Επιλογή ομάδας" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Επιλογή μοÏίου" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Κονσόλα Script του Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "ΠεÏιεχόμενα ΑÏχείου" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Κεφαλίδα ΑÏχείου" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "ΜοντÎλο" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Î Ïοσανατολισμός" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "ΑÏχείο" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Άνοιγμα από την PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Άνοιγμα επιλεγμÎνου αÏχείου" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Άνοιγμα" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Άνοιγμα script" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Αποθήκευση αντιγÏάφου από {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Εξαγωγή {0} εικόνας" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "ΑποθήκευσΠτα όλα ÏŽÏ‚ αÏχείο JMOL (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Εξαγωγή {0} 3D μοντÎλου" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Υπολογισμός" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Βελτίωση δομής" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "Επιφάνεια van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "ΜοÏιακή Επιφάνεια" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "ΕπαναφόÏτωση {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "ΑπόκÏυψη" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Πλάτος εικονοστοιχείου" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Πλάτος Angstrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Εμφάνιση ΥδÏογόνων" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Δείξε ΜετÏήσεις" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Βάθος Î Ïοοπτικής" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "ΧÏώματα RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "δε βÏÎθηκε το αÏχείου" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "ασÏμβατα οÏίσματα" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "ανεπαÏκή οÏίσματα" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "μη ÎγκυÏο ÏŒÏισμα" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Μόνο Îνα μοÏιακό Ï„Ïοχιακό είναι διαθÎσιμο σε αυτό το αÏχείο" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Δεν υπάÏχουν διαθÎσιμα δεδομÎνα" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Δεν υπάÏχει στοιχειώδης κυψελίδα" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "ο αÏιθμός Ï€ÏÎπει να είναι ({0} ή {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "μη αναγνωÏίσιμη εντολή" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "μη αναγνωÏίσιμο αντικείμενο" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "μη αναγνωÏίσιμη {0} παÏάμετÏος" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} άτομα διαγÏάφηκαν" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} δεσμοί υδÏογόνου" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "αÏχείο {0} δημιουÏγήθηκε" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, fuzzy, java-format +msgid "{0} struts added" +msgstr "{0} υδÏογόνα Ï€ÏοστÎθηκαν" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} συνδÎσεις διαγÏάφηκαν" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} νÎοι δεσμοί, {1} Ï„Ïοποποιήθηκαν" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Κάντε κλικ για μενοÏ..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Λάθος ΑÏχείου:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "διαγÏαφή ατόμου (απαιτείται {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "διαγÏαφή Î´ÎµÏƒÎ¼Î¿Ï (απαιτείται {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "μετακίνηση ατόμου (απαιτείται {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "μετακίνηση επιλεγμÎνων ατόμων (απαιτείται {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "επιλÎξτε Îνα άτομο" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "σÏνδεση ατόμων (απαιτείται {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "πεÏιστÏοφή" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "πεÏιστÏοφή επιλεγμÎνων ατόμων (απαιτείται {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "πεÏιστÏοφή του Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "επιλÎξτε Îνα άτομα (απαιτείται {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "επιλÎξτε Îνα άτομο για να ξεκινήσει ή να ολοκληÏωθεί μια μÎÏ„Ïηση" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "μετάφÏαση" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" +"επιλÎξτε Îνα ακόμα άτομο για να πεÏιστÏαφεί το μοντÎλο γÏÏω από Îναν άξονα" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "επιλÎξτε δÏο άτομα για να πεÏιστÏαφεί το μοντÎλο γÏÏω από Îναν άξονα" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "επιλÎξτε Îνα ακόμα άτομο για να απεικονιστεί η σχÎση συμμετÏίας" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "επιλÎξτε δÏο άτομα για να απεικονιστεί η σχÎση συμμετÏίας ανάμεσά τους" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} άτομα επιλÎχτηκαν" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} υδÏογόνα Ï€ÏοστÎθηκαν" + +#~ msgid "Hide Symmetry" +#~ msgstr "ΑπόκÏυψη ΣυμμετÏίας" + +#~ msgid " {0} seconds" +#~ msgstr " {0} δευτεÏόλεπτα" + +#~ msgid "Java version:" +#~ msgstr "Έκδοση Java:" + +#~ msgid "1 processor" +#~ msgstr "1 επεξεÏγαστής" + +#~ msgid "unknown processor count" +#~ msgstr "άγνωστος αÏιθμός επεξεÏγαστών" + +#~ msgid "Java memory usage:" +#~ msgstr "ΧÏήση μνήμης από Java:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} ελεÏθεÏα MB" + +#~ msgid "unknown maximum" +#~ msgstr "άγνωστο μÎγιστο" + +#~ msgid "Open file or URL" +#~ msgstr "Άνοιγμα αÏχείου ή URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/en_GB.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/en_GB.po new file mode 100755 index 000000000000..3b33c008fc00 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/en_GB.po @@ -0,0 +1,2636 @@ +# English (United Kingdom) translation for jmol +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 23:44+0000\n" +"Last-Translator: Nicolas Vervelle \n" +"Language-Team: English (United Kingdom) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Element?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol Script Console" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "File" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Close" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Help" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Search..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Commands" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Maths &Functions" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Set &Parameters" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&More" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "State" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Run" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Clear Output" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Clear Input" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "History" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Load" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "press CTRL-ENTER for new line or paste model data and press Load" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol Script Editor" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Console" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Open" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Front" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Script" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Check" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Top" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Step" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pause" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Resume" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Halt" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Clear" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Close" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "File or URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Image Type" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG Quality ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG Compression ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG Quality ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Yes" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "No" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Do you want to overwrite file {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Warning" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "All Files" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Cancel" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Abort file chooser dialog" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Details" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Directory" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Open selected directory" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Attributes" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Modified" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Generic File" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Name" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "File Name:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Size" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Files of Type:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Type" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Help" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "FileChooser help" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Home" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "List" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Look In:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Error creating new folder" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "New Folder" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Create New Folder" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Open selected file" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Save" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Save selected file" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Save In:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Update" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Update directory listing" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Up" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Up One Level" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Preview" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Append models" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "PDB cartoons" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arabic" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturian" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "Azerbaijani" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosnian" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Catalan" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Czech" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Danish" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "German" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Greek" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Australian English" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "British English" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "American English" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Spanish" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estonian" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "Basque" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finnish" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Faroese" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "French" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Frisian" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Galician" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Croatian" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Hungarian" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armenian" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesian" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italian" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japanese" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javanese" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Korean" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Malay" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norwegian Bokmal" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Dutch" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitan" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polish" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portuguese" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brazilian Portuguese" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Russian" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Slovenian" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbian" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Swedish" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turkish" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uyghur" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukrainian" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Uzbek" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Simplified Chinese" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Traditional Chinese" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Could not get class for force field {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "No atoms selected -- nothing to do!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atoms will be minimised." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "could not setup force field {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "new" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "undo (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "redo (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "centre" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "add hydrogens" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimise" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "fix hydrogens and minimise" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "clear" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "save file" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "save state" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "invert ring stereochemistry" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "delete atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "drag to bond" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "drag atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "drag atom (and minimise)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "drag and minimise molecule (docking)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "increase charge" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "decrease charge" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "delete bond" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "single" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "double" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "triple" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "increase order" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "decrease order" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "rotate bond (SHIFT-DRAG)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "exit modelkit mode" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Space group" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "None" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "All" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processors" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB total" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB maximum" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol Script Console" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Mouse Manual" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Translations" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "System" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "No atoms loaded" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Configurations" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Model/Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Language" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "By Residue Name" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "By HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Molecular Orbitals ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Symmetry" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Model information" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Select ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "All {0} models" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Configurations ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Collection of {0} models" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atoms: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "bonds: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "groups: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "chains: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polymers: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "View {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Main Menu" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolecules" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolecule {0} ({1} atoms)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "load biomolecule {0} ({1} atoms)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "None" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Display Selected Only" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Invert Selection" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "View" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Front" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Left" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Right" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Top" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Bottom" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Back" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Protein" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Backbone" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Side Chains" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Polar Residues" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Nonpolar Residues" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Basic Residues (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Acidic Residues (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Uncharged Residues" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nucleic" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Bases" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT pairs" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC pairs" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU pairs" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Secondary Structure" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "All PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "All Solvent" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "All Water" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Nonaqueous Solvent" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "Nonaqueous HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Carbohydrate" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "None of the above" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Style" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Scheme" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK Spacefill" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Ball and Stick" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Sticks" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Wireframe" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Cartoon" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Trace" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atoms" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Off" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Bonds" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "On" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Hydrogen Bonds" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Calculate" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Set H-Bonds Side Chain" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Set H-Bonds Backbone" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disulfide Bonds" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Set SS-Bonds Side Chain" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Set SS-Bonds Backbone" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Structures" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Cartoon Rockets" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Ribbons" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Rockets" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Strands" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibration" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vectors" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Spectra" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pixels" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Scale {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereographic" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Red+Cyan glasses" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Red+Blue glasses" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Red+Green glasses" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Cross-eyed viewing" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Wall-eyed viewing" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Labels" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "With Element Symbol" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "With Atom Name" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "With Atom Number" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Position Label on Atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Centred" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Upper Right" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Lower Right" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Upper Left" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Lower Left" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Colour" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "By Scheme" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Element (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Alternative Location" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molecule" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Formal Charge" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Partial Charge" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperature (Relative)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperature (Fixed)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Amino Acid" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Chain" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Group" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Shapely" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Inherit" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Black" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "White" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Cyan" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Red" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Orange" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Yellow" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Green" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Blue" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violet" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Salmon" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Olive" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Maroon" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Grey" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Slate Blue" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Gold" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orchid" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Make Opaque" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Make Translucent" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Background" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Surfaces" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Boundbox" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Unit cell" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Zoom In" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Zoom Out" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Spin" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Set X Rate" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Set Y Rate" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Set Z Rate" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Set FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animation" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Animation Mode" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Play Once" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindrome" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Loop" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Play" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Stop" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Next Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Previous Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Rewind" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Reverse" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Restart" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Measurements" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Double-Click begins and ends all measurements" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Click for distance measurement" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Click for angle measurement" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Click for torsion (dihedral) measurement" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Click two atoms to display a sequence in the console" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Delete measurements" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "List measurements" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Distance units nanometers" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Distance units Angstroms" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Distance units picometers" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Set picking" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Center" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identity" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Label" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Select atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Select chain" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Select element" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "exit modelkit mode" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Select group" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Select molecule" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Select site" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Show symmetry operation" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Show" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol Script Console" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "File Contents" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "File Header" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Isosurface JVXL data" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Molecular orbital JVXL data" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientation" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Space group" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Current state" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "File" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Reload" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Open from PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Open selected file" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Open" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Load full unit cell" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Open script" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Save a copy of {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Save script with state" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Save script with history" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Export {0} image" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Save all as JMOL file (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Save JVXL isosurface" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Export {0} 3D model" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Computation" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimise structure" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Model kit" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Extract MOL data" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Dot Surface" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "van der Waals Surface" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Molecular Surface" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Solvent Surface ({0}-Angstrom probe)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Solvent-Accessible Surface (VDW + {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Reload {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Reload {0} + Display {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Reload + Polyhedra" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Hide" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Dotted" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Pixel Width" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Angstrom Width" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Selection Halos" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Show Hydrogens" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Show Measurements" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Perspective Depth" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol Colours" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "About..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "Script compiler ERROR: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "x y z axis expected" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} not allowed with background model displayed" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "bad argument count" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Miller indices cannot all be zero." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "bad [R,G,B] colour" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "boolean expected" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "boolean or number expected" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "boolean, number, or {0} expected" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "cannot set value" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "colour expected" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "a colour or palette name (Jmol, Rasmol) is required" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "command expected" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} or $name or (atom expression) required" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "draw object not defined" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "unexpected end of script command" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "valid (atom expression) expected" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(atom expression) or integer expected" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "filename expected" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "file not found" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "incompatible arguments" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "insufficient arguments" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "integer expected" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "integer out of range ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "invalid argument" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "invalid parameter order" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "keyword expected" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "no MO coefficient data available" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "An MO index from 1 to {0} is required" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "no MO basis/coefficient data available for this frame" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "no MO occupancy data available" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Only one molecular orbital is available in this file" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} requires that only one model be displayed" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} requires that only one model be loaded" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "No data available" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "No unit cell" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "number expected" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "number must be ({0} or {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "decimal number out of range ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "object name expected after '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "property name expected" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "space group {0} was not found." + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "quoted string expected" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "quoted string or identifier expected" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "too many rotation points were specified" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "too many script levels" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "unrecognised atom property" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "unrecognised bond property" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "unrecognised command" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "runtime unrecognised expression" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "unrecognised object" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "unrecognised {0} parameter" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "unrecognised {0} parameter in Jmol state script (set anyway)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "unrecognised SHOW parameter -- use {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "write what? {0} or {1} \"filename\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "script ERROR: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atoms deleted" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} hydrogen bonds" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "file {0} created" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "invalid context for {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ number number number } expected" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "end of expression expected" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "identifier or residue specification expected" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "invalid atom specification" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "invalid chain specification" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "invalid expression token: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "invalid model specification" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "missing END for {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "number or variable name expected" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "residue specification (ALA, AL?, A*) expected" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} expected" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} unexpected" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "unrecognised expression token: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "unrecognised token: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} struts added" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} connections deleted" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} new bonds; {1} modified" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Note: More than one model is involved in this contact!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Click for menu..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "File Error:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "assign/new atom or bond (requires {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "pop up recent context menu (click on Jmol frank)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "delete atom (requires {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "delete bond (requires {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "adjust depth (back plane; requires {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "move atom (requires {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "move whole DRAW object (requires {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "move specific DRAW point (requires {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "move label (requires {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "move atom and minimise molecule (requires {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "move and minimise molecule (requires {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "move selected atoms (requires {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "Drag atoms in Z direction (requires {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simulate multi-touch using the mouse)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "translate navigation point (requires {0} and {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "pick an atom" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "connect atoms (requires {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "pick an ISOSURFACE point (requires {0}" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "pick a label to toggle it hidden/displayed (requires {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "pick a point or atom to navigate to (requires {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "pick a DRAW point (for measurements) (requires {0}" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "pop up the full context menu" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "reset (when clicked off the model)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "rotate" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "rotate branch around bond (requires {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "rotate selected atoms (requires {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "rotate Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "select an atom (requires {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "select and drag atoms (requires {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "deselect this group of atoms (requires {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "select NONE (requires {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "add this group of atoms to the set of selected atoms (requires {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "toggle selection (requires {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"if all are selected, deselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "pick an atom to initiate or conclude a measurement" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "adjust slab (front plane; requires {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "move slab/depth window (both planes; requires {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zoom (along right edge of window)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "click on two points to spin around axis anti-clockwise (requires {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "click on two points to spin around axis clockwise (requires {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "stop motion (requires {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "spin model (swipe and release button and stop motion simultaneously)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "translate" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "zoom" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "pick one more atom in order to spin the model around an axis" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "pick two atoms in order to spin the model around an axis" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "pick one more atom in order to display the symmetry relationship" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" +"pick two atoms in order to display the symmetry relationship between them" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Setting log file to {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Cannot set log file path." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atoms hidden" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atoms selected" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Drag to move label" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "clipboard is not accessible -- use signed applet" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} hydrogens added" + +#~ msgid "Hide Symmetry" +#~ msgstr "Hide Symmetry" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Loading Jmol applet ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} seconds" + +#~ msgid "Java version:" +#~ msgstr "Java version:" + +#~ msgid "1 processor" +#~ msgstr "1 processor" + +#~ msgid "unknown processor count" +#~ msgstr "unknown processor count" + +#~ msgid "Java memory usage:" +#~ msgstr "Java memory usage:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB free" + +#~ msgid "unknown maximum" +#~ msgstr "unknown maximum" + +#~ msgid "Open file or URL" +#~ msgstr "Open file or URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/es.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/es.po new file mode 100755 index 000000000000..69e5cd1781d8 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/es.po @@ -0,0 +1,2599 @@ +msgid "" +msgstr "" +"Project-Id-Version: Jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2015-12-27 20:42+0100\n" +"Last-Translator: Angel Herráez \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Country: SPAIN\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "¿Quieres reemplazar el modelo actual por el nuevo modelo seleccionado?" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "¿Elemento?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Consola de guiones de Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "&Guardar como..." + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "&Archivo" + +#: org/jmol/console/GenericConsole.java:92 +msgid "&Close" +msgstr "&Cerrar" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "Ay&uda" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Buscar..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Instrucciones" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Funciones matemáticas" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Establecer &parámetros" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Más" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Estado" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Ejecutar" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Limpiar salida" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Limpiar entrada" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historial" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Cargar" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "pulsa Ctrl+Intro para una lÃnea nueva o pega datos de un modelo y luego pulsa Cargar" + +#: org/jmol/console/GenericConsole.java:113 +msgid "Messages will appear here. Enter commands in the box below. Click the console Help menu item for on-line help, which will appear in a new browser window." +msgstr "Aquà aparecerán los mensajes. Escribe las instrucciones en el recuadro de abajo. Puedes solicitar ayuda en lÃnea usando el menú situado aquà encima; la ayuda se mostrará en una ventana nueva del navegador." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Editor de guiones de Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Consola" + +#: org/jmol/console/ScriptEditor.java:142 +#: org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 +#: org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Abrir" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "Letra" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Guión" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Comprobar" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Subir" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Un paso" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pausa" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Reanudar" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Detener" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Limpiar" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Cerrar" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Archivo o URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Tipo de imagen" + +#: org/jmol/dialog/Dialog.java:290 +#: org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Calidad de JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Compresión de PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Calidad de PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 +#: org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "SÃ" + +#: org/jmol/dialog/Dialog.java:385 +#: org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "No" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "¿Quieres sobreescribir el archivo {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Aviso" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Todos los archivos" + +#: org/jmol/dialog/Dialog.java:448 +#: org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Cancelar" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Cancelar el diálogo de elección de archivo" + +#: org/jmol/dialog/Dialog.java:452 +#: org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Detalles" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Carpeta" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Abrir carpeta seleccionada" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Atributos" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Modificado" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Archivo genérico" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nombre" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Nombre del archivo:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Tamaño" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Archivos del tipo:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Tipo" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Ayuda" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Ayuda para elegir archivo" + +#: org/jmol/dialog/Dialog.java:469 +#: org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Inicio" + +#: org/jmol/dialog/Dialog.java:471 +#: org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Lista" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Buscar en:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Error al crear nueva carpeta" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Nueva carpeta" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Crear nueva carpeta" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Abrir archivo seleccionado" + +#: org/jmol/dialog/Dialog.java:483 +#: org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Guardar" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Guardar archivo seleccionado" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Guardar en:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Actualizar" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Actualizar listado de carpeta" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Subir" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Subir un nivel" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "Aceptar" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Vista previa" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Añadir modelos" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "Esquemático PDB" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"NOTA: Existen posiciones para los hidrógenos amida del esqueleto, pero se ignorarán. Sus posiciones se aproximarán, tal como se hace en un análisis DSSP tÃpico.\n" +"Utiliza {0} si no quieres emplear este método.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"NOTA: Existen posiciones para los hidrógenos amida del esqueleto, y se utilizarán. Los resultados pueden diferir de modo significativo de los de un análisis DSSP tÃpico.\n" +"Utiliza {0} para ignorar dichas posiciones de los hidrógenos.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Ãrabe" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturiano (bable)" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "AzerÃ" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosnio" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Catalán" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Checo" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Danés" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Alemán" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Griego" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Inglés australiano" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Inglés británico" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Inglés de EE.UU." + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Español" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estonio" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "Vasco" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finés" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Feroés" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Francés" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Frisón" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Gallego" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Croata" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Húngaro" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armenio" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesio" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italiano" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japonés" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javanés" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Coreano" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Malayo" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Noruego «BokmÃ¥l»" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Neerlandés" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitano" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polaco" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugués" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Portugués de Brasil" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Ruso" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Esloveno" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbio" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Sueco" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugú" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turco" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uigur" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ucraniano" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Uzbeko" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Chino simplificado" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Chino tradicional" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Imposible obtener la clase para el campo de fuerza {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "No hay átomos seleccionados -- ¡nada que hacer!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "se minimizarán {0} átomos" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "imposible establecer el campo de fuerza {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "nuevo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "deshacer (Ctrl+Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "rehacer (Ctrl+Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "centrar" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "añadir hidrógenos" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimizar" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "corregir los hidrógenos y minimizar" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "Limpiar" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "guardar archivo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "guardar estado" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "invertir la estereoquÃmica del anillo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "borrar el átomo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "arrastrar para enlazar" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "arrastrar el átomo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "arrastrar el átomo (y minimizar)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "arrastrar la molécula (`Alt´ para rotarla)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "arrastrar y minimizar la molécula (acoplamiento)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "aumentar la carga" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "disminuir la carga" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "borrar enlace" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "sencillo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "doble" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "triple" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "aumentar el orden" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "disminuir el orden" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "rotar enlace (May.+arrastrar)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "salir del modelado" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Grupo espacial" + +#: org/jmol/popup/JmolGenericPopup.java:770 +msgid "none" +msgstr "No" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Todo" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} procesadores" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB en total" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB máximo" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "no se está capturando" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "Instrucciones para Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Manual del ratón" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Traducciones" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistema" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Ningún átomo cargado" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Configuraciones" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Modelo o fotograma" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Idioma" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Por nombre de residuo" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Por código HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Orbitales moleculares ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "SimetrÃa" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Información del modelo" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Seleccionar ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Los {0} modelos" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Configuraciones ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Colección de {0} modelos" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "{0} átomos" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "{0} enlaces" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "{0} grupos" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "{0} cadenas" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "{0} polÃmeros" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "Modelo {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Mostrar {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menú principal" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomoléculas" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolécula {0} ({1} átomos)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "abrir biomolécula {0} ({1} átomos)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "No" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Mostrar sólo lo seleccionado" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Invertir la selección" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Vista" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "Óptima" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Frontal" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Izquierda" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Derecha" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "Top[as in \"view from the top, from above\" - (translators: remove this bracketed part]" +msgstr "Desde arriba" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Desde abajo" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Desde atrás" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "Eje x" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "Eje y" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "Eje z" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "Eje a" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "Eje b" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "Eje c" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "Escenas" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "ProteÃna" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Esqueleto" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Cadenas laterales" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Residuos polares" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Residuos apolares" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Residuos básicos (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Residuos ácidos (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Residuos sin carga" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Ac. nucleicos" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "ADN" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "ARN" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Bases" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Pares AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Pares GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Pares AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "por estructura secundaria" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Grupos “heteroâ€" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Todos los “HETATM†de PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Todo el disolvente" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Todo el agua" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Disolvente excepto agua" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "HETATM excepto agua" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligandos" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Carbohidratos" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Ninguno de los anteriores" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Estilo" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Patrón" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "Esferas CPK" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Bolas y varillas" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Varillas" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Alambre" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Esquemático" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Cordón" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Ãtomos" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "No" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Enlaces" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "SÃ" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Enlaces de hidrógeno" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Calcular" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "A la cadena lateral" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Al esqueleto" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Enlaces disulfuro" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "A la cadena lateral" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Al esqueleto" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Estructuras" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Cohetes y cintas" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Cintas" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Cohetes" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Hebras" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibración" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vectores" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Espectros" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "RMN de protón" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "RMN de carbono-13" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pÃxeles" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Escala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "EstereografÃa" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Gafas rojo+cian" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Gafas rojo+azul" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Gafas rojo+verde" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Visión bizca (“crossed-eyedâ€)" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Visión paralela (“wall-eyedâ€)" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Etiquetas" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "SÃmbolo del elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Nombre del átomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Número del átomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Posición de la etiqueta" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Centrada sobre el átomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Superior derecha" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Inferior derecha" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Superior izquierda" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Inferior izquierda" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Color" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Patrón" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "por elemento (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "por ubicación alternativa" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "por molécula" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "por carga formal" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "por carga parcial" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperatura (relativa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperatura (fija)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "por aminoácido" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "por cadena" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "por grupo" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "por monómero" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "por esquema “shapelyâ€" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Heredado" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Negro" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Blanco" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Cian" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Rojo" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Anaranjado" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Amarillo" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Verde" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Azul" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Añil" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violeta" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Salmón" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Aceituna" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Granate" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Gris" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Azul pizarra" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Dorado" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "OrquÃdea" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Opaco" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Translúcido" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Fondo" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Superficies" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Ejes" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Caja" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Celda unidad" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Tamaño" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Acercar" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Alejar" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Giro" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Velocidad X" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Velocidad Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Velocidad Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Fotogramas/segundo" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animación" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Modalidad" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Una vez" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "PalÃndromo" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Bucle" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Reproducir" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Detener" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Fotograma siguiente" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Fotograma anterior" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Rebobinar" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Hacia atrás" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Reiniciar" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Mediciones" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Doble clic inicia y finaliza mediciones" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Clic para medir distancia" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Clic para medir ángulo" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Clic para medir torsión (ángulo diedro)" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Clic en dos átomos para mostrar una secuencia en la consola" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Borrar mediciones" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Lista de mediciones" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Distancia en nanómetros" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Distancia en ángstroms" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Distancia en picómetros" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Ãtomo elegido" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Centrar" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identificar" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Etiquetar" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Seleccionar átomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Seleccionar cadena" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Seleccionar elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "Modo de modelado" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Seleccionar grupo" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Seleccionar molécula" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Seleccionar sitio" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Mostrar operación de simetrÃa" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Mostrar" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "JavaScript Console" +msgstr "Consola JavaScript" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Contenido del archivo" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Cabecera del archivo" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Datos JVXL de isosuperficie" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Datos JVXL de orbital molecular" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Modelo" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientación" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Grupo espacial" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Estado actual" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Archivo" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "Exportar" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Recargar" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Abrir desde PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Open local file" +msgstr "Abrir un archivo local" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Open URL" +msgstr "Abrir desde URL" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Cargar celdilla completa" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Abrir guión" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "Capturar" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "Capturar oscilación" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "Capturar giro" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "Comenzar la captura" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "Terminar la captura" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "Desactivar la captura" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "Reactivar la captura" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "Velocidad de animación" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "(Des)activar repetición" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Guardar copia de {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Guardar guión con estado" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Guardar guión con historial" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Exportar imagen {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Guardar como archivo PNG/JMOL (imagen+zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Guardar isosuperficie JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Exportar modelo 3D {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Cálculo" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimizar estructura" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Herramienta de modelado" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Extraer datos MOL" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "de puntos" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "de van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "molecular" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "del disolvente (sonda de {0} &)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "accesible al disolvente (vdW + {0} &)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "potencial electrostático molecular (intervalo completo)" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "potencial electrostático molecular (intervalo -0.1 a 0.1)" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Recargar {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Recargar {0} y mostrar {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Recargar + Poliedros" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Oculta" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Punteados" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Grosor en pÃxeles" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Grosor en ángstroms" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Halos de selección" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Mostrar hidrógenos" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Mostrar mediciones" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Perspectiva" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Colores de Rasmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Acerca de..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "ERROR del compilador de guiones: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "se esperaba un eje x y z" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} no está permitido mientras se muestra un modelo de fondo" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "el número de argumentos no es correcto" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Alguno de los Ãndices de Miller debe ser distinto de cero" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "color [Rojo, Verde, Azul] incorrecto" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "se esperaba un valor lógico" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "se esperaba un valor lógico o un número" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "se esperaba un valor lógico, un número o {0}" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "no es posible fijar el valor" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "se esperaba un color" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "se requiere un nombre de color o de paleta (Jmol, Rasmol)" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "se esperaba una instrucción" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "se requiere {x y z} o $nombre o (expresión atómica)" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "objeto de dibujo no definido" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "final imprevisto de la instrucción de guión" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "se esperaba una (expresión atómica) válida" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "se esperaba una (expresión atómica) o un número entero" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "se esperaba un nombre de archivo" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "no se encuentra el archivo" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "argumentos incompatibles" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "argumentos insuficientes" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "se esperaba un número entero" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "número entero fuera del intervalo ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "el argumento no es válido" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "el orden de parámetros es incorrecto" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "se esperaba una palabra clave" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "no hay datos disponibles de coeficientes de orbitales moleculares" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Se requiere un Ãndice de orbitales moleculares entre 1 y {0}" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "en este modelo no hay datos disponibles de base o coeficientes de orbitales moleculares" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "no hay datos de ocupación para orbitales moleculares" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "En este archivo sólo hay un orbital molecular" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} requieren que sólo se esté mostrando un modelo" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} requiere que sólo se haya cargado un modelo" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "no hay datos disponibles" + +#: org/jmol/script/ScriptError.java:295 +msgid "No partial charges were read from the file; Jmol needs these to render the MEP data." +msgstr "No se han podido leer las cargas parciales en el archivo; Jmol las necesita para trazar los datos de MEP" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "No hay celda unidad" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "se esperaba un número" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "el número debe ser {0} o {1}" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "número decimal fuera del intervalo ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "se esperaba un nombre de objeto tras el '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "plane expected -- either three points or atom expressions or {0} or {1} or {2}" +msgstr "se esperaba un plano, bien en forma de tres puntos, o bien de expresiones atómicas, o {0}, o {1}, o {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "se esperaba un nombre de propiedad" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "no se ha encotrado el grupo espacial {0}" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "se esperaba un texto entre comillas" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "se esperaba un texto entre comillas o un identificador" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "se han indicado demasiados puntos de rotación" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "demasiados niveles de guión" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "no se reconoce la propiedad de átomo" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "no se reconoce la propiedad de enlace" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "no se reconoce la instrucción" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "no se reconoce la expresión en ejecución" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "no se reconoce el objeto" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "no se reconoce el parámetro {0}" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "no se reconoce el parámetro {0} en el guión de estado (defÃnase de todos modos)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "no se reconoce el parámetro SHOW; utilice {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "¿qué escribir? {0} o {1} “nombre de archivoâ€" + +#: org/jmol/script/ScriptError.java:412 +#: org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "ERROR en guión: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "mostrar lo guardado: {0}" + +#: org/jmol/script/ScriptEval.java:3277 +#: org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "se han borrado {0} átomos" + +#: org/jmol/script/ScriptEval.java:3995 +#: org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} enlaces de hidrógeno" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "se ha creado el archivo {0}" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "para reanudarlo, escribe: &{0}" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "contexto no válido para {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "se esperaba {número número número}" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "se esperaba el fin de una expresión" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "se esperaba un identificador o una identificación de residuo" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "identificación de átomo no válida" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "identificador de cadena no válido" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "palabra clave {0} no válida" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "identificación de modelo no válida" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "falta END para {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "se esperaba un número o un nombre de variable" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "se esperaba una identificación de residuo (ALA, AL?, A*)" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "se esperaba {0}" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "no se esperaba {0}" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "no se reconoce la palabra clave {0} en la expresión" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "no se reconoce la palabra clave {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "se han modificado {0} cargas" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "se han añadido {0} puntales" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "Nota: activados los bucles usando {0}" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "Demora de animación basada en {0}" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "se han borrado {0} conexiones" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} enlaces nuevos; {1} modificados" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Atención: en este contacto están implicados varios modelos" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Pulsa para un menú..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Miniaplicación Jmol, versión {0} {1}.\n" +"\n" +"Un proyecto OpenScience.\n" +"\n" +"Para más información, visita http://www.jmol.org" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Error de archivo:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "asignar o añadir átomo o enlace (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "abrir el menú contextual reciente (pulsar en el logotipo Jmol)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "borrar átomo (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "borrar enlace (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "ajustar el plano trasero de sección (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "mover un átomo (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "mover el objeto dibujado (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "mover un punto del objeto dibujado (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "mover una etiqueta (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "mover un átomo y minimizar la molécula (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "mover y minimizar la molécula (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "mover los átomos seleccionados (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "arrastrar átomos en la dirección Z (es necesario {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simular multitáctil usando el ratón)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "trasladar el punto de navegación (requiere {0} o {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "elige un átomo" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "conectar átomos (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "elige un punto en una isosuperficie (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "elige una etiqueta para cambiar su visibilidad (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "pick an atom to include it in a measurement (after starting a measurement or after {0})" +msgstr "elige un átomo para incluirlo en una medición (tras haber comenzado una medición o tras {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "elige un punto o un átomo hacia el que navegar (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "elige un punto de un objeto dibujado (para mediciones) (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "abrir el menú contextual completo" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "restaurar (cuando se pulse fuera del modelo)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "rotar" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "rotar la rama alrededor del enlace (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "rotar los átomos seleccionados (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "rotar en Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "rotación alrededor de Z (desplazamiento horizontal del ratón) o tamaño (desplazamiento vertical del ratón)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "seleccionar un átomo (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "seleccionar y arrastrar átomos (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "deseleccionar este grupo de átomos (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "cancelar la selección (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "añadir este grupo de átomos a la selección (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "(des)activar la selección (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "if all are selected, unselect all, otherwise add this group of atoms to the set of selected atoms (requires {0})" +msgstr "si están todos seleccionados, eliminar la selección; si no, añadir este grupo de átomos a la selección (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "elige un átomo para iniciar o concluir una medición" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "ajustar el plano delantero de sección (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "desplazar los planos de sección (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "tamaño (a lo largo del borde derecho de la ventana)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "pulsa en dos puntos para definir un eje de giro antihorario (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "pulsa en dos puntos para definir un eje de giro horario (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "detener movimiento (requiere {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "girar el modelo (deslizar, deteniendo el movimiento al tiempo que se suelta el botón)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "trasladar" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "tamaño" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "elige un átomo más para que el modelo gire en torno a un eje" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "elige en orden dos átomos para que el modelo gire en torno a un eje" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "elige un átomo más para mostrar la relación de simetrÃa" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "pick two atoms in order to display the symmetry relationship between them" +msgstr "elige en orden dos átomos para mostrar la relación de simetrÃa entre ambos" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "cancelado" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "{0} guardado(s)" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Definiendo el archivo de registro como {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Imposible establecer la ruta del archivo de registro." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} átomos ocultos" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} átomos seleccionados" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Arrastra para mover la etiqueta" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "no es posible acceder al portapapeles; para ello debe utilizarse la miniaplicación firmada" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "se han añadido {0} hidrógenos" + +#~ msgid "Hide Symmetry" +#~ msgstr "Ocultar simetrÃa" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Cargando Jmol..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} segundos" + +#~ msgid "Java version:" +#~ msgstr "Versión de Java:" + +#~ msgid "1 processor" +#~ msgstr "1 procesador" + +#~ msgid "unknown processor count" +#~ msgstr "nº de procesadores desconocido" + +#~ msgid "Java memory usage:" +#~ msgstr "Memoria usada por Java:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB libres" + +#~ msgid "unknown maximum" +#~ msgstr "máximo desconocido" + +#~ msgid "Open file or URL" +#~ msgstr "Abrir archivo o URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/et.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/et.po new file mode 100755 index 000000000000..3d1c732e90b1 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/et.po @@ -0,0 +1,2575 @@ +# Copyright (C) 2005 +# This file is distributed under the same license as the Jmol package. +# Ivo Sarak , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: Jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Ivo Sarak \n" +"Language-Team: Estonian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Country: Estonia\n" +"X-Poedit-Language: Estonian\n" +"X-Poedit-Basepath: ../../../..\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Fail" + +#: org/jmol/console/GenericConsole.java:92 +msgid "&Close" +msgstr "" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Abi" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "Ot&si..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Ava" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Soome" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "uus" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "keskel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimeeri" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "puhas" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "salvesta fail" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "üksik" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "topelt" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "kolmekordne" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Ei ühtegi" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Kõik" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Hiire Õpetus" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Tõlked" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Süsteem" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Ei ühtegi aatomit" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Jäänuse nime järgi" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Ei ühtegi" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Kuva Ainult Valitud" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Vaheta Valik" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Teljed" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Teljed" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Teljed" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Teljed" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Teljed" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Teljed" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Proteiin" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Selgroog" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Külgmised Ketid" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Polaarsed jäänused" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Mittepolaarsed jäänused" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Lihtsad jäänused (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Happelised jäänused (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Mittelaetud jäänused" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Tuuma" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Alused" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT paarid" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC paarid" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU paarid" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Teisene Struktuur" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Süsinikhüdraat" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Skeem" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK Spacefill" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Pall ja Kepp" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Kepid" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Sõrestik" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Pildijada" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Jälg" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Aatomid" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "välja" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Sidemed" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Sees" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Vesiniku Sidemed" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Arvuta" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Pane H-Sidemed Külgmisse Ketti" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Pane H-Sidemed Selgroogu" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disulfiidi Sidemed" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Pane SS-Sidemed Külgmisse Ketti" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Pane SS-Sidemed Selgroogu" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Struktuurid" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Ribad" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektorid" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pikselit" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Skaala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Punane+Sinine klaasid" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Punane+Roheline klaasid" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Rist-silmne vaatamine" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Otse vaatamine" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Sildid" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Koos Elementide Sümbolitega" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Koos Aatomite Nimetustega" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Koos Aatomite Numbritega" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Pane Aatomile Silt" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Tsentreeritud" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Ãœlemine Parem" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Alumine Vasak" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Ãœlemine Vasak" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Alumine Vasak" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Värv" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Skeemi järgi" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Element (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Formaalne Laeng" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Osaline Laeng" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Kett" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Omane" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Must" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Valge" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Rohekassinine" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Punane" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Oraanz" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Kollane" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Roheline" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Sinine" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violet" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Kollane" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Oliivroheline" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Punapruun" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Sinine" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Kuldne" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orchid" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Taust" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Teljed" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Boundbox" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Suurenda" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Suurenda sisse" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Vähenda" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Spinn" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Määra X Kiirus" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Määra Y Kiirus" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Määra Z Kiirus" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Määra FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Animatsiooni Reziim" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Mängi Ãœks Kord" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindroom" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Tagasiside" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Mängi" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Seiska" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Järgmine Kaader" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Eelmine Kaader" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Keri Tagasi" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "JavaScript Console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Mudel" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Praegune olek" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Fail" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Lae uuesti" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Open local file" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Ava" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Arvutus" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Peida" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Punktiir" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Pikseli Laius" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Angstromi Laius" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Näita Vesinikke" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Näita Mõõted" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Perspetkiivi Sügavus" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol Värvid" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Faili viga:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "pööramine" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "tõlgi" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/eu.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/eu.po new file mode 100755 index 000000000000..71061274ebc2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/eu.po @@ -0,0 +1,2628 @@ +# Basque translation for jmol +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 23:44+0000\n" +"Last-Translator: Nicolas Vervelle \n" +"Language-Team: Basque \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Elementua?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol script kontsola" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Fitxategia" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Itxi" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Laguntza" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Bilatu..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Komandoak" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Funtzio matematikoak" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Ezarri ¶metroak" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Gehiago" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editorea" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Egoera" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Exekutatu" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Garbitu irteera" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Garbitu sarrera" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historia" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Kargatu" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"sakatu KTRL+ENTER lerro berrirako edo kopiatu ereduaren datuak eta sakatu " +"Kargatu" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Mezuak hemen agertuko dira. Sartu komandoak beheko koadroan. Klikatu " +"kontsolako Laguntza menu-elementua lineako laguntza lortzeko. Laguntza hau " +"arakatzailearen leiho berri batean agertuko da." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol script editorea" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Kontsola" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Ireki" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Aurrealdea" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Script-a" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Egiaztatu" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Igo" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Pausoa" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pausatu" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Berrekin" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Gelditu" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Garbitu" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Itxi" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Fitxategia edo URLa:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Irudi-mota" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG kalitatea ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG konpresioa ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG kalitatea ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Bai" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Ez" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "{0} fitxategia gainidatzi nahi duzu?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Abisua" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Fitxategi guztiak" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Utzi" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Xehetasunak" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Direktorioa" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Ireki hautatutako direktorioa" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Atributuak" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Aldatze-data" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Fitxategi generikoa" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Izena" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Fitxategi-izena:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Tamaina" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Mota honetako fitxategiak:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Mota" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Laguntza" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Fitxategi-hautatzailearen laguntza" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Etxea" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Zerrenda" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Begiratu hemen:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Errorea karpeta berria sortzean" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Karpeta berria" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Sortu karpeta berria" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Ireki hautatutako fitxategia" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Gorde" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Gorde hautatutako fitxategia" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Gorde hemen:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Eguneratu" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Eguneratu direktorio-zerrenda" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Gora" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Igo maila bat" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "Ados" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Aurreikusi" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Gehitu ereduak" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arabiera" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturiera" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "Azerbaijanera" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosniera" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Katalana" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Txekiera" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Daniera" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Alemana" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Greziera" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Australiako ingelesa" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Erresuma Batuko ingelesa" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "AEBetako ingelesa" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Espainiera" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estoniera" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "Euskara" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finlandiera" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Faroera" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Frantsesa" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Frisiera" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Galiziera" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Kroaziera" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Hungariera" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armeniera" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesiera" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italiera" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japoniera" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javera" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Koreera" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Malaysiera" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Bokmal norvegiera" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Nederlandera" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Okzitaniera" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Poloniera" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugesa" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brasilgo portugesa" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Errusiera" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Esloveniera" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbiera" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Suediera" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamilera" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turkiera" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uigurrera" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukrainera" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Uzbekera" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Txinera sinplifikatua" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Txinera tradizionala" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Ezin izan da {0} indar-eremuarentzako klasea eskuratu" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Ez dago atomorik hautatuta -- egitekorik ez!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomo minimizatuko dira." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "ezin izan da {0} eremua konfiguratu" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "berria" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "desegin (Ktrl+Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "berregin (Ktrl+Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "erdia" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "gehitu hidrogenoak" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimizatu" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "garbitu" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "gorde fitxategia" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "gorde egoera" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "alderantzikatu eraztunaren estereokimika" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "ezabatu atomoa" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "arrastatu loturara" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "arrastatu atomoa" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "arrastatu atomoa (eta minimizatu)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "handitu karga" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "txikiagotu karga" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "ezabatu lotura" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "bakuna" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "bikoitza" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "hirukoitza" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "biratu lotura (SHIFT eta arrastatu)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "irten modelatze tresna-jokoa modutik" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Bat ere ez" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Guztiak" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} prozesatzaile" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "guztira {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB gehienez" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol script kontsola" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Itzulpenak" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistema" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Atomorik ez kargatuta" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Konfigurazioak" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Elementua" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Eredua/Markoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Hizkuntza" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Hondarraren izenaren arabera" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "HETATMen arabera" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Orbital molekularrak ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Simetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Ereduaren informazioa" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Hautatu ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "{0} ereduak" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "({0}) konfigurazio" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "{0} ereduren bilduma" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomoak: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "loturak: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "taldeak: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "kateak: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polimeroak: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "{0} eredua" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "{0} ikuspegia" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menu nagusia" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolekulak" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "{0} biomolekula ({1} atomo)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "kargatu {0} biomolekula ({1} atomo)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Bat ere ez" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Bistaratu hautatutakoak soilik" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Alderantzikatu hautapena" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Ikusi" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Aurrealdea" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Ezkerra" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Eskuina" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Goiko aldea" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Behealdea" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Atzealdea" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Ardatzak" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Ardatzak" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Ardatzak" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Ardatzak" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Ardatzak" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Ardatzak" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Proteina" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Bizkarrezurra" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Albo-kateak" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Hondar polarrak" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Hondar apolarrak" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Hondar basikoak (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Hondar azidoak (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Kargarik gabeko hondarrak" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nukleiko" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Baseak" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT pareak" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC pareak" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU pareak" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Egitura sekundarioa" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "PDB \"HETATM\" guztiak" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Disolbatzaile guztiak" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Guztia ura" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Disolbatzaile ez-akuosoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "HETATM ez-akuosoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Lotugaia" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Karbohidratoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Hauetako bat ere ez" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Estiloa" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Eskema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Bolak eta makilak" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Makilak" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Burdin-haria" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Marrazkia" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Arrastoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomoak" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Desaktibatuta" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "%{0} van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Loturak" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Aktibatuta" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Hidrogeno-loturak" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Kalkulatu" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Ezarri H-loturak albo-katean" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Ezarri H-loturen bizkarrezurrean" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disulfuro-loturak" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Ezarri SS-loturak albo-katean" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Ezarri SS-loturak bizkarrezurrean" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Egiturak" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Xingolak" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Bibrazioa" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Bektoreak" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Espektroa" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pixel" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "{0} eskala" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Estereografikoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Gorria+zian betaurrekoak" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Gorria+urdina betaurrekoak" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Gorria+berdea betaurrekoak" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Etiketak" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Elementuaren sinboloarekin" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Atomoaren izenarekin" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Atomo zenbakiarekin" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Labelaren kokapena atomoan" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Erdian" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Goian eskuinean" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Behean eskuinean" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Goian ezkerrean" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Behean ezkerrean" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Kolorea" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Eskemaren arabera" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Elementua (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Kokapen alternatiboa" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekula" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Karga formala" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Karga partziala" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Tenperatura (Erlatiboa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Tenperatura (Finkoa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminoazidoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Katea" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Taldea" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomeroa" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Heredatu" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Beltza" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Zuria" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Ziana" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Gorria" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Laranja" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Horia" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Berdea" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Urdina" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Anila" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Bioleta" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Izokina" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Oliba" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Granatea" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Grisa" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Arbel-urdina" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Urrea" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orkidea" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Bihurtu opako" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Bihurtu garden" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Atzeko planoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Gainazalak" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Ardatzak" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Gelaxka-unitatea" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zooma" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Handiagotu" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Txikiagotu" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Biratu" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Ezarri X proportzioa" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Ezarri Y proportzioa" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Ezarri Z proportzioa" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Ezarri FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animazioa" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Animazio-modua" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Erreproduzitu behin" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindromoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Begizta" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Erreproduzitu" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Gelditu" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Hurrengo markoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Aurreko markoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Birbobinatu" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Alderantziz" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Berrabiarazi" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Neurketak" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Klik bikoitzak neurketa guztiak hasi eta bukatzen ditu" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Klikatu distantzia neurtzeko" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Klikatu angelua neurtzeko" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Klikatu bihurdura (angelu diedroa) neurtzeko" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Klikatu bi atomo kontsolan sekuentzia bat bistaratzeko" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Ezabatu neurketak" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Zerrendatu neurketak" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Distantzia nanometrotan" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Distantzia Angstrometan" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Distantzia pikometroetan" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Erdian" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identitatea" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Etiketa" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Hautatu atomoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Hautatu katea" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Hautatu elementua" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "irten modelatze tresna-jokoa modutik" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Hautatu taldea" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Hautatu molekula" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Hautatu lekua" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Erakutsi simetria-eragiketa" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Erakutsi" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol script kontsola" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Fitxategiaren edukiak" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Fitxategiaren goiburua" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Isoazaleraren JVXL datuak" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Orbital molekularraren JVXL datuak" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Eredua" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientazioa" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Uneko egoera" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Fitxategia" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Birkargatu" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Ireki PDBtik" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Ireki hautatutako fitxategia" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Ireki" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Kargatu gelaxka-unitate osoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Ireki scripta" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Gorde {0}(r)en kopia" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Gorde scripta egoerarekin" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Gorde scripta historiarekin" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Esportatu {0} irudia" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Gorde guztia JMOL fitxategi bezala (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Gorde JVXL isogainazala" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Esportatu {0} 3Dko eredua" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Kalkulua" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimizatu egitura" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Modelatze tresna-jokoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Erauzi MOL datuak" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Puntu gainazala" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "van der Waals gainazala" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Gainazal molekularra" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Disolbatzaile-gainazala ({0}-Angstromeko zunda)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Birkargatu {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Birkargatu {0} + erakutsi {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Ezkutatu" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Pixel zabalera" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Erakutsi hidrogenoak" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Erakutsi neurketak" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Perspektiba sakonera" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol koloreak" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Honi buruz..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "script-konpilatzailearen ERROREA: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "x y z ardatza espero zen" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "argumentu kopuru okerra" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Miller indize guztiek ezin dute zero izan" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "[R,G,B] kolore okerra" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "boolearra espero zen" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "boolearra edo zenbakia espero zen" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "boolearra, zenbakia edo {0} espero zen" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "ezin da balioa ezarri" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "kolorea espero zen" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "kolore bat edo paleta-izen bat (Jmol, Rasmol) behar da" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "komandoa espero zen" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "fitxategi-izena espero zen" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "ez da aurkitu fitxategia" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "argumentu bateraezinak" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "argumentu gutxiegi" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "osokoa espero zen" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "osokoa ({0} - {1} tartetik kanpo)" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "argumentu baliogabea" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "parametroen ordena baliogabea" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "gako-hitza espero zen" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "ez dago orbital molekularren koefizienterik eskuragarri" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "1 eta {0} arteko orbital molekular indizea behar da" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Orbital molekular bakarra dago eskuragarri fitxategi honetan" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Ez dago daturik eskuragarri" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Ez da karga partzialik irakurri fitxategitik; Jmol-ek MEP datuak " +"errendatzeko beharrezkoak dira." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Unitate-gelaxkarik ez" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "zenbakia espero zen" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "zenbakiak ({0} edo {1}) izan behar du" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "zenbaki hamartarra ({0} - {1}) tartetik kanpo" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "objektu-izena espero zen '$'ren ondoren" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "propietate-izena espero zen" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "kakotx arteko katea espero zen" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "kakotx arteko katea edo identifikatzailea espero zen" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "errotazio-puntu gehiegi zehaztu dira" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "script-maila gehiegi" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "atomoaren propietate ezezaguna" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "loturaren propietate ezezaguna" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "komando ezezaguna" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "objektu ezezaguna" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "{0} parametro ezezaguna Jmol egoera-scriptean (ezarri hala ere)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "SHOW parametro ezezaguna -- erabili {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "zer idatzi? {0} ala {1} \"fitxategi-izena\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "script ERROREA: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atomo ezabatuta" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} hidrogeno-lotura" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "{0} fitxategia sortuta" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "{0}-(r)entzako testuinguru baliogabea" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ zenbakia zenbakia zenbakia } espero zen" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "identifikatzailea edo hondarraren zehaztapena espero zen" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "atomoaren zehaztapen baliogabea" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "katearen zehaztapen baliogabea" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "ereduaren zehaztapen baliogabea" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "zenbakia edo aldagai-izena espero zen" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} espero zen" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "ez zen {0} espero" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, fuzzy, java-format +msgid "{0} struts added" +msgstr "{0} hidrogeno gehituta" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} lotura ezabatuta" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} lotura berri; {1} aldatuta" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Klikatu menurako..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol appletaren {0} {1} bertsioa.\n" +"\n" +"OpenScience proiektu bat.\n" +"\n" +"Informazio gehiagorako bisitatu http://www.jmol.org" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Fitxategi-errorea:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "ezabatu atomoa ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "ezabatu lotura ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "mugitu atomoa ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "mugitu etiketa ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "mugitu atomoa eta minimizatu molekula ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "mugitu eta minimizatu molekula ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "mugitu hautatutako atomoak ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "arrastatu atomoak Z norabidean ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "aukeratu atomo bat" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "konektatu atomoak ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "aukeratu etiketa bat ezkutatu/bistaratu txandakatzeko ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "leheneratu (eredutik kanpora klikatzean)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "biratu" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "biratu adarra loturaren inguruan ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "biratu hautatutako atomoak ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "biratu Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"biratu Z (saguaren mugimendu horizontala) edo egin zoom (saguaren mugimendu " +"bertikala)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "hautatu atomo bat ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "hautatu eta arrastatu atomoak ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "desautatu atomo-talde hau ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "gehitu atomo-talde hau hautatutako atomo-sortara ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "txandakatu hautapena ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"guztiak hautatuta badaude, desautatu guztiak, bestela gehitu atomo-talde hau " +"hautatutako atomo-sortara ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "aukeratu atomo bat neurketa bat hasi edo bukatzeko" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zooma (leihoaren eskuineko ertzean zehar)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"klikatu bi puntutan ardatzaren inguruan ezkerrera biratzeko ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"klikatu bi puntutan ardatzaren inguruan eskuinera biratzeko ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "gelditu mugimendua ({0} behar du)" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "translazioa" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "zooma" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "aukeratu beste atomo bat eredua ardatz baten inguruan biratzeko" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "aukeratu bi atomo eredua ardatz baten inguruan biratzeko" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "aukeratu beste atomo bat simetria-erlazioa bistaratzeko" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "aukeratu bi atomo beren arteko simetria-erlazioa bistaratzeko" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "{0} egunkari-fitxategia ezartzen" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Ezin da egunkari-fitxategiaren bidea ezarri." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atomo ezkutatuta" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atomo hautatuta" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Arrastatu etiketa mugitzeko" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} hidrogeno gehituta" + +#~ msgid "Hide Symmetry" +#~ msgstr "Ezkutatu simetria" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Jmol appleta kargatzen..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} segundo" + +#~ msgid "Java version:" +#~ msgstr "Java bertsioa:" + +#~ msgid "1 processor" +#~ msgstr "Prozesatzaile 1" + +#~ msgid "unknown processor count" +#~ msgstr "prozesatzaile kopuru ezezaguna" + +#~ msgid "Java memory usage:" +#~ msgstr "Java memoria erabilera:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB libre" + +#~ msgid "unknown maximum" +#~ msgstr "maximo ezezaguna" + +#~ msgid "Open file or URL" +#~ msgstr "Ireki fitxategia edo URLa" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/fi.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/fi.po new file mode 100755 index 000000000000..831071b82473 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/fi.po @@ -0,0 +1,2647 @@ +# Finnish translation for jmol +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Johannes Pernaa \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Country: Finland\n" +"X-Poedit-Language: Finnish\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Alkuaine?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol-konsoli" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Tiedosto" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Sulje" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Ohje" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Etsi..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Komennot" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Matematiikka &Funktiot" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Aseta &Parametrit" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Lisää" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editori" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Tila" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Aja" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Tyhjennä ulostulo" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Tyhjennä sisääntulo" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historia" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Lataa" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"luo uusi rivi painamalla CTRL-ENTER tai liitä mallin tiedot ja paina Lataa" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Ilmoitukset ilmestyvät tähän. Kirjoita komennot laatikkoon alapuolelle. On-" +"line ohjeet löytyvät konsolin Ohje-valikosta, jotka ilmestyvät uuteen " +"selainikkunaan." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol-editori" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konsoli" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Avaa" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Edestä" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Komentosarja" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Tarkista" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Ylös" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Askel" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Tauko" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Jatka" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Pysäytä" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Tyhjennä" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Sulje" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Tiedosto tai URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Kuvatyyppi" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG laatu ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG pakkaaminen ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG laatu ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Kyllä" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Ei" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Korvataanko tiedosto {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Varoitus" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Kaikki tiedostot" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Lopeta" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Keskeytä tiedostovalitsimen dialogi" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Yksityiskohdat" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Kansio" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Avaa valittu kansio" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Attribuutit" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Muokattu" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Geneerinen tiedosto" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nimi" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Tiedoston nimi:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Koko" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "TIedostotyyppi:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Tyyppi" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Ohje" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Tiedostovalitsimen ohje" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Etusivulle" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Lista" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Katso" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Uuden kansion luominen epäonnistui" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Uusi kansio" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Luo uusi kansio" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Avaa valittu tiedosto" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Tallenna" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Tallenna valittu tiedosto" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Tallenna kansioon:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Päivitä" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Päivitä kansiolista" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Ylös" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Yksi taso ylöspäin" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Esikatselu" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Lisää malleja" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"HUOMIO: Proteiinirungon amidien vedyt paikat ovat läsnä, mutta ne jätetään " +"huomioimatta. Niiden paikat approksimoidaan kuten standardi DSSP-" +"analyysissä.\n" +"Käytä {0}, niin tätä approksimaatioita ei käytetä.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"HUOMIO: Proteiinirungon amidien vedyt ovat läsnä ja ne huomioidaan. Tulokset " +"voivat vaihdella merkittävästi standardi DSSP-analyysistä.\n" +"Käytä {0}, niin vetyjen asennot jätetään huomioimatta.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arabia" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturia" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosnia" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Katalonia" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Tsekki" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Tanska" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Saksa" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Kreikka" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Australian Englanti" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Brittienglanti" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Amerikanenglanti" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Espanja" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Viro" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Suomi" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Fääri" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Ranska" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Kroatia" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Unkari" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armenia" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesia" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italia" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japani" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Jaava" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Korea" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Kirjanorja" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Hollanti" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Oksitaani" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Puola" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugali" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Portugali (Bra)" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Venäjä" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Slovenia" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbia" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Ruotsi" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turkki" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uiguuri" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukraina" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Kiina (yksinkertainen)" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Kiina (perinteinen)" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Voimakentän luokkaa ei voida hakea. {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Atomeja ei valittu -- ei mitään tehtävänä!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomit minimoidaan." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "Voimakenttää ei voitu asettaa. {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "uusi" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "kumoa (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "toista (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "keskitä" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "lisää vedyt" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "optimoi rakenne" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "sovita vedyt ja optimoi rakenne" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "tyhjennä" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "tallenna tiedosto" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "tallenna tila" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "käännä renkaan stereokemia" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "poista atomi" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "liikuta atomia ja luo sidos" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "liikuta atomia" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "liikuta atomia ja optimoi rakenne" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "liikuta ja optimoi molekyyli (telakointi)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "lisää varaus" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "vähennä varaus" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "poista sidos" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "yksinkertainen sidos" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "kaksoissidos" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "kolmoissidos" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "lisää sidoksen kertalukua" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "vähennä sidoksen kertalukua" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "pyöritä sidosta (SHIFT - LIIKUTA)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "poistu mallityökalutilasta" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Avaruusryhmä" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Ei mitään" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Kaikki" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} prosessoria" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB totaalinen" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB maksimi" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol-konsoli" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Hiirimanuaali" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Käännökset" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Systeemi" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Atomeja ei ladattu" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Konfiguraatiot" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Alkuaine" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Malli/Ruutu" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Kieli" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Lyhenteen mukaan" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Heteroatomin mukaan" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Molekyyliorbitaalit ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Symmetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Mallin tiedot" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Valitse ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Kaikki {0} mallit" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Konfiguraatiot ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Mallivalikoima {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomit: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "sidokset: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "ryhmät: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "ketjut: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polymeerit: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "malli {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Näkymä {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Päävalikko" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolekyylit" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolekyyli {0} ({1} atomit)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "lataa biomolekyyli {0} ({1} atomit)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Ei mitään" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Näytä vain valitut" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Käännä valitut" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Näkymät" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Edestä" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Vasen" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Oikea" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Ala" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Takaa" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Akselit" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Akselit" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Akselit" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Akselit" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Akselit" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Akselit" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Proteiini" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Proteiinirunko" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Sivuketjut" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Polaariset" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Poolittomat" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Emäksiset (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Happamet (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Varauksettomat" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nukleiinihappo" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Emäkset" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT emäsparit" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC emäsparit" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU emäsparit" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Sekundäärirakenne" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Heteroatomi" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Kaikki PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Kaikki liuottimet" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Kaikki vesi" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Vedetön liuotin" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "Vedetön HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligandi" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Hiilihydraatti" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Ei mikään ylläolevista" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Tyylit" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Mallit" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "Kalotti (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Pallotikku" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Tikku" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Rautalanka" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Sarjakuva" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Jälki" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomit" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Pois" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Sidokset" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Päällä" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Vetysidokset" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Laske" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Aseta H-sidokset sivuketjuihin" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Aseta H-sidokset proteiinirunkoon" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disulfidisidokset" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Aseta SS-sidokset sivuketjuihin" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Aseta SS-sidokset proteiinirunkoon" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Rakenteet" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Raketti (sarjakuva)" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Nauha" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Raketti" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Helminauha" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Värähtelyt" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektorit" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pikselit" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Koko {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereografiikka" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Punainen+sinivihreä" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Punainen+sininen" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Punainen+vihreä" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Cross-eyed katselu" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Wall-eyed katselu" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Nimeäminen" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Kemiallinen merkki" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Atomin nimi" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Atominumero" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Etiketin paikka" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Keskitetty" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Ylhäällä oikealla" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Alhaalla oikealla" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Ylhäällä vasemmalla" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Alhaalla vasemmalla" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Värit" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Mallin mukaan" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Alkuaine (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Vaihtoehtoinen paikka" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekyyli" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Muodollinen varaus" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Osittaisvaraus" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Lämpötila (Suhteellinen)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Lämpötila (Sovitettu)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminohappo" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Ketju" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Ryhmä" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomeeri" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Muodokas" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Peritty" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Musta" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Valkoinen" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Sinivihreä" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Punainen" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Oranssi" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Keltainen" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Vihreä" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Sininen" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigosini" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violetti" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Lohenpunainen" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Oliivinvihreä" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Punaruskea" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Harmaa" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Siniharmaa" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Kultainen" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orkidea" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Kiinteä" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Läpinäkyvä" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Taustaväri" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Pinnat" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Akselit" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Rajoitelaatikko" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Alkeiskoppi" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Muuta kokoa" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Zoomaa lähemmäs" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Zoomaa kauemmas" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Pyörittäminen" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Aseta X asteet" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Aseta Y asteet" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Aseta Z asteet" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Aseta FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animaatio" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Animaatiotila" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Toista kerran" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindromi" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Silmukka" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Toista" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Lopeta" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Seuraava ruutu" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Edellinen ruutu" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Kelaa taaksepäin" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Toista taaksepäin" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Käynnistä uudelleen" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Mittaustyökalut" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Tuplaklikkaus: Mittaa etäisyyksiä tai kulmia" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Etäisyys" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Kulma" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Torsiokulma" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Näytä sekvenssi konsolissa aktivoimalla kaksi atomia" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Poista mittaukset" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Listaa mittaukset" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Etäisyys nanometreissä" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Etäisyys Ã¥ngtrömeissä" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Etäisyys pikometreissä" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Aseta poiminta" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Keskitä" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identiteetti" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Nimeä" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Valitse atomi" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Valitse ketju" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Valitse alkuaine" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "poistu mallityökalutilasta" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Valitse ryhmä" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Valitse molekyyli" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Valitse sijainti" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Näytä symmetriaoperaatio" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Näytä" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol-konsoli" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Tiedoston sisällys" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Tiedoston otsikko" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "JVXL-pinnan tiedot" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "JVXL-molekyyliorbitaalin tiedot" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Malli" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientaatio" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Avaruusryhmä" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Nykyinen tila" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Tiedosto" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Lataa uudelleen" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Avaa PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Avaa valittu tiedosto" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Avaa" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Lataa koko alkeiskoppi" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Avaa komentosarja-tiedosto (stp)" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Tallenna {0} kopio" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Tallenna komentosarja ja tila" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Tallenna komentosarja ja historia" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Vie tiedostoon {0} kuvana" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Tallenna kaikki JMOL-tiedostona (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Tallenna JVXL-pinta" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Vie tiedostoon {0} 3D-mallina" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Laskenta" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimoi rakenne" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Mallinnustyökalut" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Eristä MOL-data" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Pistepinta" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "van der Waals-pinta" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Molekyylipinta" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Liuotinpinta ({0}-Ã¥ngströmiä)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Liuottimen vaikutuspinta (VDW + {0} Ã¥ngströmiä)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Lataa uudelleen {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Lataa uudelleen {0} + näytä {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Lataa uudelleen + Polyhedra" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Piilota" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Pilkullinen" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Leveys pikseleinä" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Leveys Ã¥ngströmeinä" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Valinnan halovisualisointi" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Näytä vedyt" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Näytä mittaukset" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Syvyysnäkökulma" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol värit" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Tietoja..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "VIRHE komentosarjakääntäjässä: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "edellytetään x- y- z-akselit" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} ei sallittu, jos taustakuvamalli näytetään" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "huono argumenttimäärä" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Kaikki Miller indeksit eivät voi olla nollia." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "huono [R,G,B] väri" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "edellytetään boolean" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "edellytetään boolean tai numero" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "edellytetään boolean, numero, tai {0}" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "edellytetään väri" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "edellytetään värin tai paletin nimi (Jmol, Rasmol)" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "edellyttää komentoa" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "edellytetään {x y z} tai $name tai (atom expression)" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "piirrettyä objektia ei ole määritelty" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "odottamaton lopetus tai komentosarja" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "edellytetään pätevä (atom expression)" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "edellytetään (atom expression) tai kokonaisluku" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "edellytetään tiedoston nimi" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "tiedostoa ei löydy" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "yhteensopimaton argumentti" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "puutteellinen argumentti" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "edellytetään kokonaisluku" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "kokonaisluku alueen ({0} - {1}) ulkopuolelta" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "kelpaamaton argumentti" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "kelpaamaton parametrien järjestys" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "edellytetään avainsana" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "MO-kerroindataa ei ole saatavilla" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "edellytetään MO-indeksi väliltä 1 - {0}" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "MO-kantafunktio/kerroin-dataa ei ola saatavilla tälle ruudulle" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "MO hallintaan tarvittavaa dataa ei ole saatavilla" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "TIedosto sisältää vain yhden molekyyliorbitaalin" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} edellyttää vain yhden mallin näyttämistä" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} edellyttää vain yhden mallin lataamista" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Dataa ei ole saatavilla" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Osittaisvarauksia ei luettu tiedostosta; Jmol tarvitsee näitä MEP-datan " +"renderointiin." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Ei alkeiskoppia" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "edellyttää numeroa" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "numeron täytyy olla välillä ({0} tai {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "desimaali välin ({0} - {1}) ulkopuolella" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "objektin nimi edellytetään '$' jälkeen" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"edellytetään taso -- joko kolme pistettä tai atom expressions tai {0} tai " +"{1} tai {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "edellytetään ominaisuuksien nimi" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "avaruusryhmää {0} ei löytynyt." + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "edellytetään noteerattu merkkijono" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "edellytetään noteerattu merkkijono tai tunnistin" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "liian monta pyörimistasoa määritelty" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "liian monta komentosarjatasoa" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "tunnistamaton atomiominaisuus" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "tunnistamaton sidosominaisuus" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "tunnistamaton komento" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "tunnistamaton runtime-ilmaisu" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "tunnistamaton objekti" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "tunnistamaton parametri {0}" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" +"tunnistamaton {0} parametri Jmol-tila -komentosarjassa (aseta joka " +"tapauksessa)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "tunnistamaton SHOW-parametri -- käytä {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "kirjoita mitä? {0} tai {1} \"filename\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "VIRHE komentosarjassa: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atomia poistettu" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} vetysidokset" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "tiedosto {0} luotu" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "kelpaamaton konteksti: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "edellyttää { number number number }" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "edellyttää lopettamista tai lauseketta" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "edellyttää tunnistetta tai lyhenteen spesifiointia" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "atomin kelpaamaton määrittely" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "ketjun kelpaamaton määrittely" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "lausekkeessa kelpaamaton merkki: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "mallin kelpaamaton määrittely" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "puuttuva {0} END" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "edellytetetään numeroa tai muuttujan nimeä" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "edellyttää lyhenteen määrittelyä (ALA, AL?, A*)" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} edellyttää" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} odottamaton" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "lausekkeessa tunnistamaton merkki: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "tunnistamaton merkki: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} tukia lisätty" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} sidosta poistettu" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} uusia sidoksia; {1} muokattu" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Huom: Tähän yhteyteen vaikuttaa useampi kuin yksi malli!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Avaa menu klikkaamalla..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet versio {0} {1}.\n" +"\n" +"OpenScience-projekti.\n" +"\n" +"Lisätietoja: http://www.jmol.org" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Tiedostovirhe:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "aseta/uusi atomi tai sidos (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "esiin ponnahtava viimeksi käytetty valikko (valitse suoraan Jmollista)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "poista atomi (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "poista sidos (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "aseta syvyys (takataso; edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "liikuta atomia (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "liikuta koko DRAW-objektia (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "liikuta tiettyä DRAW-pistettä (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "liikuta etikettiä (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "liikuta atomia ja optimoi molekyyli (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "liikuta ja optimoi molekyyli (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "liikuta valittuja atomeja (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "liikuta atomeja Z-akselin suuntaisesti (vaatii {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simuloi multi-touch -toimintoa hiiren avulla)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "käännä navigointipiste (edellyttää {0} ja {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "valitse atomi" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "yhdistä atomeja (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "valitse ISOSURFACE-piste (edellyttää {0}" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "piilota/näytä valittu etiketti (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"valitse atomi ja sisällytä mittauksiin (mittaamisen aloittamisen tai {0} " +"jälkeen)" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "valitse piste tai atomi navigoidaksesi (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "valitse DRAW-piste (mittauksille) (edellyttää {0}" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "esiin ponnahtava koko valikko" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "nollaa (klikkaa pois mallista)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "pyöritä" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "liikuta haaraa sidoksen ympärillä (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "pyöritä valittuja atomeja (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "pyöritä Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"pyöritä Z (hiiren horisontaalinen liike) tai zoomaa (hiiren vertikaalinen " +"liike)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "valitse atomi (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "valitse ja liikuta atomeja (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "poista valinnoista tämä atomiryhmä (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "valitse EI MITÄÄN (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "lisää tämä atomijoukko valittujen atomien valikoimaan (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "vaihtele valintaa (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"jos kaikki on valittu, poista kaikki valinnat, muuten lisää tämä atomiryhmä " +"valittujen atomien valikoimaan (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "aloita tai lopeta mittaaminen valitsemalla atomi" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "aseta vaaka (etutaso; edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "siirrä vaaka/syvyysikkuna (molemmat tasot; edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zoom (ikkunan oikeaa reunaa pitkin)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"valitse kaksi akselin ympäri vastapäivään kiertävää pistettä (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"valitse kaksi akselin ympäri myötäpäivään kiertävää pistettä (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "lopeta liike (edellyttää {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" +"pyörimismalli (lopeta liike painamalla ja vapauttamalla painikkeet " +"samanaikaisesti)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "käännä" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "zoom" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "pyöritä mallia akselin ympäri valitsemalla yksi tai useampi atomi" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "pyöritä mallia akselin ympäri valitsemalla kaksi atomia" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" +"näytä atomien välinen symmetriasuhde valitsemalla yksi tai useampi atomi" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "näytä atomien välinen symmetriasuhde valitsemalla kaksi atomia" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Asetetaan lokitiedosto: {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Lokitiedoston polkua ei voitu asettaa." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} piilotettiin atomit" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atomia valittu" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Liikuta etikettiä vetämällä" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "leikepöytä ei käytettävissä -- käytä kirjattua applettia" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} lisättiin vedyt" + +#~ msgid "Hide Symmetry" +#~ msgstr "Piilota symmetria" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Ladataan Jmol applet ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} sekuntia" + +#~ msgid "Java version:" +#~ msgstr "Java-versio:" + +#~ msgid "1 processor" +#~ msgstr "1 prosessori" + +#~ msgid "unknown processor count" +#~ msgstr "tuntematon prosessorilukumäärä" + +#~ msgid "Java memory usage:" +#~ msgstr "Java-muistin käyttö:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB vapaa" + +#~ msgid "unknown maximum" +#~ msgstr "tuntematon maksimi" + +#~ msgid "Open file or URL" +#~ msgstr "Avaa tiedosto tai URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/fr.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/fr.po new file mode 100755 index 000000000000..15ae4411a7c9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/fr.po @@ -0,0 +1,2652 @@ +# Jmol french translation. +# Copyright (C) 2005 +# This file is distributed under the same license as the Jmol package. +# Nicolas Vervelle , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: Jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 23:44+0000\n" +"Last-Translator: Nicolas Vervelle \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Country: France\n" +"X-Poedit-Language: French\n" +"X-Poedit-Basepath: ../../../..\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Élément?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Console de Script Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Fichier" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Fermer" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Aide" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Recherche" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Commandes" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Fonctions Mathématiques" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Préférences & Paramètres" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Plus" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Éditeur" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Etat" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Lancer" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Effacer la sortie" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Effacer la saisie" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historique" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Charger" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"Appuyer sur Ctrl+Entrée pour une nouvelle ligne ou copier les données d'un " +"modèle et appuyer sur Load" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Les messages apparaissent ici. Saisissez les commandes dans la boîte ci-" +"dessous. Cliquez sur l'article Aide du menu de la console pour obtenir " +"l'aide en ligne, qui apparaitra dans une nouvelle fenêtre de navigateur." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Éditeur de scripts Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Console" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Ouvrir" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Face" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Script" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Vérifier" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Retourner en haut" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Incrément" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pause" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Reprendre" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Arrêter" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Effacer" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Fermer" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Fichier ou URL :" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Type d'image" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Qualité JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Compression PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Qualité PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Oui" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Non" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Voulez-vous écraser le fichier {0} ?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Avertissement" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Tous les Fichiers" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Annuler" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Ferme la boîte de dialogue du sélecteur de fichiers" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Détails" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "répertoire" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Ouvrir le répertoire sélectionné" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Caractéristiques" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Modifié" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Fichier générique" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nommer" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Nom du Fichier" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Taille" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Fichiers du type :" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Type" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Aide" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Aide sur le sélecteur de fichiers" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Dossier personnel" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Liste" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Rechercher dans :" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Erreur lors de la création du nouveau dossier" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Nouveau dossier" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Créer un nouveau dossier" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Ouvre le fichier sélectionné" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Sauvegarder" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Sauvegarder le fichier sélectionné" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Sauver dans:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Mise à jour" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Mise à jour de la liste des répertoires" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Haut" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Remonter d'un niveau" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "Ok" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Aperçu" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Ajouter les modèles" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "informations de débogage pour les dessins animés" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"NOTE : Les positions structurelles d''amides d''hydrogène sont présentes et " +"seront ignorées. Leurs positions seront évaluées, conformément à l''analyse " +"standard DSSP.\n" +"Utilisez {0} afin de ne pas effectuer cette évaluation.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"NOTE : Les positions structurelles d''amides d''hydrogène sont présentes et " +"seront utilisées. Les résultats peuvent différer de façon significative par " +"rapport à l''analyse standard DSSP.\n" +"Utilisez {0} afin d'ignorer ces positions d'hydrogène.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arabe" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturien" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "Azéri" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosnien" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Catalan" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Tchèque" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Danois" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Allemand" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Grec" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Anglais australien" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Anglais britannique" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Anglais américain" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Espagnol" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estonien" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "Basque" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finnois" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Féroïen" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Français" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "frison" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "galicien" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Croate" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Hongrois" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Arménien" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonésien" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italien" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japonais" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javanais" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Coréen" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Malais" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norvégien « Bokmal »" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Néerlandais" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitan" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polonais" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugais" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Portugais brésilien" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Russe" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Slovène" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbe" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Suédois" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamoul" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Télugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turc" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Ouïghour" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukrainien" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Ouzbek" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Chinois Simplifié" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Chinois traditionnel" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Impossible d''obtenir la classe du champ de force {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Aucun atome sélectionné -- rien à faire!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomes seront minimisés." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "Impossible d''installer le champ de force {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "Nouveau" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "Annuler (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "Rétablir (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "centre" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "ajouter hydrogènes" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "réduire" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "fixer les hydrogènes et réduire" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "réinitialiser" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "Sauvegardez le fichier" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "sauvegardez l'état" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "inverser anneau stéréochimie" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "Effacez l'atome" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "faire glisser pour lier" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "faire glisser atome" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "faire glisser atome (et réduire)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "faire glisser et réduire la molécule (attachement)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "augmenter la charge" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "réduire la charge" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "supprimer le lien" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "simple" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "double" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "triple" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "augmenter l'ordre" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "réduire l'ordre" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "pivoter le lien (MAJ.+ glisser)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "quitter le mode kit de modélisation" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Groupe d'espace" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Aucun(e)" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Tout" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processeurs" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "Total de {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "Maximum de {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Console de Script Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Manuel Souris" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Traductions" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Système" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Aucun atome chargé" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Configurations" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Elément" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Modèle/Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Langue" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Par nom de résidu" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Par HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Orbites moléculaires ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Symétrie" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Informations du modèle" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Sélectionner ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Tous les {0} modèles" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Configurations ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Collection de {0} modèles" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "{0} atomes" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "{0} liens" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "{0} groupes" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "{0} chaînes" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "{0} polymères" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "modèle {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Voir {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menu Principal" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolécules" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolécule {0} ({1} atomes)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "charger la biomolécule {0} ({1} atomes)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Aucun(e)" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Afficher uniquement la sélection" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Inverser la sélection" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Vue" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Face" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Gauche" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Droite" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Haut" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Bas" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Fond" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Protéine" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Squelette" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Chaînes latérales" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Résidus polaires" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Résidus non polaires" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Résidues basiques (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Résidus acides (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Résidus non chargés" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nucléique" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "ADN" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "ARN" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Bases" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Paires AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Paires GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Paires AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Structure secondaire" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hétéro" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Tous les \"HETATM\" PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Tout Solvant" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Tout Eau" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Solvant non-aqueux" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "HETATM non-aqueux" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Glucide" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Aucun ci-dessus" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Style" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Combinaison" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK Remplissage" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Boule et bâton" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Bâtons" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Fil de fer" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Cartoon" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Trace" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomes" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Off" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Liens" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Activer" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Liens Hydrogène" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Calculer" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Liens H sur la chaîne latérale" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Liens H sur le squelette" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Liens disulfure" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Liens SS sur la chaîne latérale" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Liens SS sur le squelette" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Structures" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Roquettes Cartoon" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Rubans" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Roquettes" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Rives" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibration" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vecteurs" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Spectre" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-RMN" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-RMN" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pixels" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Echelle {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stéréographique" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Lunettes Rouge+Cyan" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Lunettes Rouge+Bleu" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Lunettes Rouge+Vert" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Vision yeux croisés" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Vision yeux parallèles" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Étiquettes" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Avec le symbole de l'élément" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Avec le nom de l'atome" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Avec le numéro de l'atome" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Position du texte par rapport à l'atome" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Centré" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Haut droite" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Bas droite" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Haut gauche" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Bas gauche" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Couleur" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Par combinaison" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Elément (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Emplacement alternatif" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molécule" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Charge formelle" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Charge partielle" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Température (Relative)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Température (fixée)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aicde Aminé" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Chaîne" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Groupe" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomère" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Galbé" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Hérite" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Noir" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Blanc" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Cyan" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Rouge" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Orange" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Jaune" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Vert" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Bleu" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violet" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Saumon" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Olive" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Marron" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Gris" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Bleu ardoise" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Or" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orchidée" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Rendre opaque" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Rendre translucide" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Fond" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Surfaces" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Axes" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Boîte englobante" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Cellule unitaire" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Zoom avant" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Zoom arrière" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Rotation" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Changer la vitesse X" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Changer la vitesse Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Changer la vitesse Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Changer FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animation" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Mode d'Animation" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Une fois" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindrome" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "En boucle" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Lancer" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Arrêter" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Trame suivante" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Trame précédente" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Revenir au début" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "En arrière" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Redémarrer" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Double-clic commence et finit toutes les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Cliquer pour une mesure de distance" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Cliquer pour une mesure d'angle" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Cliquer pour une mesure de torsion (dihédrale)" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Cliquez sur deux atomes afin d'afficher la séquence dans la console" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Effacer les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Donner la liste des mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Unité pour les distances en nanomètres" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Unité pour les distances en Angstroms" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Unité pour les distances en picomètres" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Réglez la cueillette" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Centre" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identité" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Texte" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Sélectionner atome" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Sélectionner chaîne" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Sélectionner élément" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "quitter le mode kit de modélisation" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Sélectionner groupe" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Sélectionner molécule" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Sélectionner site" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "opération de symétrie montrent" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Afficher" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Console de Script Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Contenu du fichier" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Entête du fichier" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Données isosurface au format JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Données orbites moléculaires au format JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Modèle" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientation" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Groupe spatial" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Etat courant" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Fichier" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Recharger" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Ouvert du PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Ouvre le fichier sélectionné" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Ouvrir" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Charger la maille élémentaire entière" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Ouvrir le script" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Enregistrer une copie de « {0} »" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Enregistrer le script avec l'état" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Enregistrer le script avec l'historique" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Exporter une image {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Tout enregistrer en tant que fichier JMOL (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Enregistrer l'isosurface JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Exporter le modèle 3D {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Calcul" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimiser la structure" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Kit de modélisation" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Extraire les données MOL" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Surface pointillée" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "Surface de van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Surface moléculaire" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Surface du solvant (sonde de {0} Ã…)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Surface accessible au solvant (VDW + {0} Ã…)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Recharger {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Recharger {0} + Afficher {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Recharger + Polyhèdre" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Masquer" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Pointillé" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Largeur en Pixels" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Largeur en Angströms" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Halos de sélection" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Afficher les Hydrogènes" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Afficher les mesures" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Profondeur de la perspective" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Couleurs RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "À propos ..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "Erreur du compilateur de script: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "axe x y z attendu" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} n'est pas autorisé avec un modèle de fond affiché" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "mauvais nombre d'arguments" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Les indices de Miller ne peuvent pas être tous égaux à 0." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "couleur [R, V, B] incorrecte" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "booléen attendu" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "boolean ou nombre attendu" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "boolean, nombre, ou {0} attendu" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "impossible d'assigner la valeur" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "couleur attendue" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "un nom de couleur ou de palette (Jmol, Rasmol) est requis" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "commande attendue" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} o $name o une expression atome requis" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "objet de dessin non défini" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "fin inattendue du script de commande" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "(expression d'atomes) valide attendue" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(expression d'atomes) ou entier attendu" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "nom de fichier attendu" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "fichier non trouvé" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "arguments incompatibles" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "nombre d'arguments insuffisant" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "entier attendu" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "entier en dehors de la plage de valeurs ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "argument incorrect" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "ordre des paramètres incorrect" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "mot clé attendu" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "pas de données MO coefficient disponibles" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Un indice MO de 1 à {0} est requis" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "aucune base MO / données coefficient disponible pour ce cadre" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "no MO occupancy data available" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Une seule orbite moléculaire est disponible dans ce fichier" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} requière qu'un seul modèle soit affiché" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} requiert qu'un seul modèle être chargé" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Pas de données disponibles" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Aucune charge partielle n'a été lue depuis le fichier; Jmol en a besoin pour " +"générer les données MEP." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Pas de cellule unitaire" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "nombre attendu" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "le nombre doit être ({0} ou {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "nombre décimal en dehors de la plage de valeurs ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "nom d'objet attendu après '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"plan attendu -- soit 3 points ou une expression d''atomes ou {0} ou {1} ou " +"{2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "nom de propriété attendu" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "Le groupe spatial {0} n'a pas été trouvé" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "chaîne de caractères entre guillemets attendue" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "chaîne de caractères entre guillemets ou identifiant attendu" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "trop de points de rotation ont été spécifiés" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "trop de niveaux de script" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "Propriété d'atome non reconnue" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "Propriété de lien non reconnue" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "commande non reconnue" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "expression non reconnue" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "objet non reconnu" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "Paramètre {0} non reconnu" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" +"méconnue {0} paramètre dans le script Jmol état (ensemble de toute façon)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "Paramètre SHOW non reconnu -- utiliser {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "écrire quoi? {0} ou {1} \"nom de fichier\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "ERREUR de script: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atomes supprimés" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} liens hydrogène" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "Fichier {0} crée" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "context incorrect pour {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ nombre nombre nombre } attendu" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "fin d'expression attendue" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "spécification identifiant ou de résidus prévus" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "spécification d'atome incorrecte" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "spécification de chaîne incorrecte" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "élément d''expression incorrect: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "spécification de modèle incorrecte" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "manquantes END pour {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "nombre ou nom de variable attendu" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "spécification de résidu (ALA, AL?, A*) attendue" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} attendu" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} inattendue" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "élément d''expression non reconnu: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "élément non reconnu: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} traverse(s) ajoutée(s)" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} connexions supprimées" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} de nouveaux liens; {1} modification" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Note : plus d'un modèle interagit dans ce contact !" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Cliquer pour le menu ..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet version {0} {1}.\n" +"\n" +"Fait partie du projet OpenScience.\n" +"\n" +"Voir http://www.jmol.org pour de plus amples informations" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Erreur de Fichier:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "assigner/nouvel atome ou lien (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "afficher le menu contextuel récent ( cliquez sur frank Jmol )" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "supprimer atome (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "supprimer le lien (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "ajuster la profondeur (plan arrière ; requiert {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "déplacer atome (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "déplacer objet DRAW entier (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "déplacer un point DRAW (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "déplacer le label (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "déplacer atome et réduire la molécule (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "déplacer et réduire la molécule (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "déplacer les atomes sélectionnés (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "Faire glisser les atomes selon la direction Z (nécessite {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simuler le multi-touches via la souris)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "déplacer le point de navigation (requiert {0} et {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "choisir un atome" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "connecter les atomes (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "choisir un point ISOSURFACE (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "choisir un label afin de basculer entre affiché/masqué (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"choisir un atome afin de l'inclure dans la mesure (après le début d'une " +"mesure ou après {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "choisir un point ou un atome au(x)quel(s) se rendre (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "choisir un point DRAW (pour des mesures) (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "afficher le menu contextuel complet" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "réinitialiser (lors d'un clic hors du modèle)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "rotation" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "faire pivoter la branche autour du lien (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "faire pivoter les atomes sélectionnés (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "Faire tourner Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"pivoter Z (mouvement horizontal de la souris) ou zoomer (mouvement vertical " +"de la souris)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "sélectionner un atome (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "sélectionner et faire glisser les atomes (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "Dé-sélectionner ce groupe d''atomes (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "Ne rien sélectionner (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "ajouter ce groupe d'atomes au set d'atomes sélectionnés (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "activer/désactiver sélection (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"si tous sont sélectionnés, désélectionnez les tous, autrement ajoutez ce " +"groupe d'atomes au set d'atomes sélectionnés (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "choisir un atome afin de lancer ou compléter une mesure" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "ajuster la dalle (plan frontal ; requiert {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" +"déplacer la fenêtre de dalle/profondeur (les deux plans ; requiert {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zoomer (le long du bord droit de la fenêtre)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"Cliquez sur deux points afin de tourner autour de l'axe dans le sens inverse " +"des aiguilles d'une montre (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"Cliquez sur deux points afin de tourner autour de l'axe dans le sens des " +"aiguilles d'une montre (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "interrompre le mouvement (requiert {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" +"modèle de rotation (faire glisser vivement, relâcher le bouton et arrêter le " +"mouvement simultanément)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "Translation" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "Zoom" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" +"Choisir un atome supplémentaire pour faire tourner le modèle autour d'un axe" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "Choisir deux atomes pour faire tourner le modèle autour d'un axe" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "choisir un atome supplémentaire afin d'afficher la relation symétrique" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "choisir deux atomes afin d'afficher la relation symétrique entre eux" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Configuration du fichier journal dans {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Impossible de définir le chemin de fichier journal" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atomes cachés" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atomes sélectionnés" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Faire glisser afin de déplacer le label" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "Le presse-papiers est inacessible -- utiliser l'applet signée" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} hydrogène(s) ajouté(s)" + +#~ msgid "Hide Symmetry" +#~ msgstr "Masquer la symétrie" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Chargement de l'applet Jmol ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} secondes" + +#~ msgid "Java version:" +#~ msgstr "Version de Java :" + +#~ msgid "1 processor" +#~ msgstr "1 processeur" + +#~ msgid "unknown processor count" +#~ msgstr "Nombre de processeurs inconnu" + +#~ msgid "Java memory usage:" +#~ msgstr "Utilisation mémoire de Java" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB libres" + +#~ msgid "unknown maximum" +#~ msgstr "Maximum inconnu" + +#~ msgid "Open file or URL" +#~ msgstr "Ouvrir un fichier ou une URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/fy.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/fy.po new file mode 100755 index 000000000000..3c8a7ce5496d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/fy.po @@ -0,0 +1,2564 @@ +# Frisian translation for jmol +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Egon Willighagen \n" +"Language-Team: Frisian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +msgid "&Close" +msgstr "" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Help" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +msgid "none" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "JavaScript Console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Open local file" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Open URL" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/hu.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/hu.po new file mode 100755 index 000000000000..fb4dc63e71d9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/hu.po @@ -0,0 +1,2619 @@ +# Hungarian translation of the Jmol applet +# Copyright (C) 2005-2007 by the Jmol Development Team +# +# This file is distributed under the same license as the Jmol package. +# Zoltán ZörgÅ‘ , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: JmolApplet 11.7.x\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Krasznecz Zoltán \n" +"Language-Team: Hungarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Country: HUNGARY\n" +"X-Poedit-Language: Hungarian\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol parancsnyelvi konzol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Fájl" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Bezár" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Súgó" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Keresés" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Parancsok" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Matematikai &függvények" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Paraméterek &beállÃtása" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Továbbiak" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "SzerkesztÅ‘" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Státus" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Futtat" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Kimenet törlése" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Bemenet törlése" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "ElÅ‘zmények" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Betöltés" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"Nyomjon Ctrl-Enter-t új sorhoz, vagy illesszen be modelladatotés nyomja meg " +"a Betöltés gombot" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Az üzenetek itt fognak megjelenni. A parancsokat az alábbi mezÅ‘be Ãrja be." +"Kattintson a konzol Súgó menüpontjára segÃtségért, mely egy új böngészÅ‘-" +"ablakban fog megjelenni." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konzol" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Megnyitás" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Elölnézet" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Skript" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "EllenÅ‘rzés" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Lépés" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "MegállÃt" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Folytatás" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "LeállÃt" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Törlés" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Bezár" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Fájl vagy URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Kép tÃpus" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG minÅ‘ség ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG tömörÃtés ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG tömörÃtés ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Igen" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Nem" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Fölül akarja Ãrnia a {0} fájlt?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Figyelmeztetés" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Minden fájl" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Mégsem" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "A fájlkiválastás megszakÃtása" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Részletek" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Könyvtár" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "A kijelölt könyvtár megnyitása" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Attribútumok" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "MódosÃtva" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Ãltalános fájl" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Név" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Fájlnév:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Méret" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Fájlok ezzel a tÃpussal:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "TÃpus" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Súgó" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Fájlkiválasztó súgója" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Haza" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Lista" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Keresés itt:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Hiba a mappalétrehozás közben" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Új mappa" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Új mappa létrehozása" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Kijelölt fájl megnyitása" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Mentés" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Kijelölt fájl mentése" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Mentés ide:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "FrissÃtés" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Könyvtártartalom frissÃtése" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Fel" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Egy szintet fel" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "ElÅ‘nézet" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Modellek hozzáfűzése" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arab" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Katalán" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Cseh" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Dán" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Német" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Görög" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Britt angol" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Amerikai angol" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Spanyol" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Észt" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Francia" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +# Hungarian message ID not yet implemented! +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Magyar" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Olasz" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Kóreai" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norvég" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Holland" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Lengyel" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugál" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brazil portugál" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Orosz" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Szlovén" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Svéd" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Török" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukrán" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "EgyszerűsÃtett kÃnai" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "KÃnai (hagyományos)" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Nem található meg az erÅ‘térhez tartozó {0} osztály" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Nincs kiválasztott atom - nincs mit tenni!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atom lessz minimalizálva." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "nem sikerült a {0} erÅ‘teret beállÃtani" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Egyik sem" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Mind" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processzor" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "Összesen: {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "Maximum: {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol parancsnyelvi konzol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Egérkezelés" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "FordÃtások" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Rendszer" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Nincs atom betöltve" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "BeállÃtások" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Elem" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Modell/Keret" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Nyelv" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Gyök neve szerint" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "HETATM szerint" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Szimmetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Modell jellemzÅ‘i" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Kiválasztás ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Mind a {0} modellt" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Konfigurációk ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "{0} modell gyűjteménye" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "Atomok száma: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "Kötések száma: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "Csoportok száma: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "Láncok száma: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "Polimérek száma: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "Modell {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "{0} nézet" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "FÅ‘menü" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Bio-molekulák" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "{0}. biomolekula ({1} atom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "{0}. biomolekula betöltése ({1} atom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Egyik sem" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Csak a kijelöltek látszanak" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Kijelölés megfordÃtása" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Nézet" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Elölnézet" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Balról" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Jobbról" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Alulnézet" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Hátulnézet" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Tengelyek" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Tengelyek" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Tengelyek" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Tengelyek" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Tengelyek" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Tengelyek" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Protein" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Váz" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Oldalláncok" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Poláros gyökök" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Nempoláros gyökök" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Bázikus gyökök (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Savas gyökök (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Semleges gyökök" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nukleikus" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNS" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNS" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Bázisok" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT-párok" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC-párok" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU-Párok" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Másodlagos struktúra" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Minden PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Minden oldószer" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Minden vÃz" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "VÃzmentes oldószer" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "VÃzmentes HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Szénhidrát" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Egy sem a fentiek közül" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "StÃlus" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Séma" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CKP térkitöltés" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Golyók és pálcikák" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Pálcikák" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Rács" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Rajzfilm" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Követés" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomok" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Ki" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Kötések" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Be" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Hidrogénkötések" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "SzámÃtás" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Hidrogén-kötés oldallánc beállÃtása" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Hidrogén-kötés gerinc beállÃtása" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Diszulfid kötések" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "S-S kötés oldallánc beállÃtása" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "S-S kötés gerinc beállÃtása" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Struktúrák" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Rajzfilm-rakéta" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Szalagok" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Rakéták" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Fonalak" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibráció" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektorok" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} képpont" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Méretezés {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Sztereó" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Piros-cián szemüveg" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Piros-kék szemüveg" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Piros-zöld szemüveg" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Szemkeresztezés" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Párhuzamos nézés" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Feliratok" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Az elem jelével" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Az atom nevével" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Az atom sorszámával" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "A feliratok helyzete az atomokon" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Középen" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Jobb-felsÅ‘ rész" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Bal-alsó rész" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Bal-feslÅ‘ rész" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Bal-alsó rész" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "SzÃnek" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Séma szerint" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Eleme (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "AlternatÃv elhelyezkedés" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekula" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Formális töltés" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Részleges töltés" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "(RelatÃv) hÅ‘mérsékle" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "(RögzÃtett) hÅ‘mérséklet" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminósav" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Lánc" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Csoport" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomér" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Shapely" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Öröklés" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Fekete" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Fehér" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Ciánkék" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Piros" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Narancs" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Sárga" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Zöld" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Kék" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigó" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Ibolya" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Salmon" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Oliva" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Gesztenyebarna" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Szürke" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Angol kék" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Arany" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "OrchidearózsaszÃn" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Nem áttetszÅ‘" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "ÃttetszÅ‘" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Háttér" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Felületek" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Tengelyek" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Befoglaló doboz" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Egységcella" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "NagyÃtás" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "NagyÃtás" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "KicsinyÃtés" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Spin" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "X érték beállÃtása" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Y érték beállÃtása" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Z érték beállÃtása" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Framerate beállÃtása" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animáció" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Animáció módja" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Egyszeri lejátszás" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Oda-vissza játszás" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Ugrás" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Lejátszás" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "LeállÃt" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "KövetkezÅ‘ kocka" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "ElÅ‘zÅ‘ kocka" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Visszateker" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Visszafele" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Újrakezdés" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Méretezés" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "A dupla kattintás indÃtja és zárja a méretezést" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Távolságmérés" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Szögméréshez" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Csavarodásmérés (diéder-torzÃó)" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Mérési eredmények törlése" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Mérési eredmények listázása" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Mérték: nanométer" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Mérték: Ã…ngström" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Mérték: pikométer" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Kiválasztási mód beállÃtása" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Közép" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "AzonosÃtás" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Felirat" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Atom kiválasztása" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Lánc kiválasztása" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Elem kiválasztása" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Csoport kiválasztása" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Molekula kiválasztása" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Oldal kiválasztása" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Mutat" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol parancsnyelvi konzol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Fájl tartalma" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Fájl fejléce" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Izofelület JVXL formában" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Molekuláris orbitálok JVXL formában" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Modell" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientációk" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Térbeli csoport" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Aktuállis állapot" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Fájl" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Újratölt" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Kijelölt fájl megnyitása" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Megnyitás" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Teljes egységcella betöltése" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "MOL adatok kivonatolása" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Pontozott felület" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "van der Waals felszÃn" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Molekuláris felszÃn" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Oldószer felszÃn ({0}-Angstrom próba)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Oldószerrel elérhetÅ‘ felszÃn (VDW + {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "{0} újratöltése" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Újratöltés + poliéder" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Elrejt" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Pontozott" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Piszelvastagság" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Ã…ngström szélesség" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Jelölési környezet" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Hidrogén látszik" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Méretezések látszanak" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "PerspektÃvikus mélységszámÃtás" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol szÃnek" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Névjegy…" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "skript fordÃtási HIBA: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "x y z tengelyeket vártam" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} nem megengedett látható háttérmodell mellett" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "nem megfelelÅ‘ argumentumszám" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "A Miller-index nem lehet zéró" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "rossz RGB szÃnkód" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "logikai adatot vártam" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "logikai adatot vagy számot vártam" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "logikai értéket, számot vagy {0}-t vártam" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "szÃnt vártam" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "egy szÃn vagy paletta név (Jmol, Rasmol) szükséges" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "parancsot vártam" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} vagy $name vagy (atom kifejezés) szükséges" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "rajzobjektum nincs definiálva" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "a skriptnek váratlanul lett vége" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "érvényes (atom kifejezést) vártam" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(atom kifejezést) vagy egészt vártam" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "fájnevet vártam" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "A fájl nem található" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "összeférhetetlen argumentumok" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "elégtelen argumentum" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "egészt vártam" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "az egésznek a {0}-{1} tartományba kell esni" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "érvénytelen argumentum" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "érvéntelen paramétersorrend" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "kulcszót vártam" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "nincs MO együttható adat" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Egy 1 és {0} közé esÅ‘ MO sorszám kell" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "nincs MO bázis/együttható adat ebben a keretben" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "nincs MO térfoglalási adat" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Ebben a fájlban csak egy elérhetÅ‘ molekuláris orbitál van." + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} megköveteli, hogy csak egy modell legyen látható" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Nincs adat" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Nem lett részleges töltés kiolvasva a fájlból; a Jmol-nak ezekre szükségevan " +"a MEP adatok rendereléséhez." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Nincs egységcella" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "számot vártam" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "A szám csak {0} vagy {1} lehet" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "A számnak {0} - {1} közé kell esni" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "objektumnév kell legyen a '$' után" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"sÃkot vártam -- vagy három pontot, vagy atom kifejezést vagy {0} vagy {1} " +"vagy {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "tulajdonságnevet vártam" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "A {0} tércsoport nem található" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "idézÅ‘jeles stringet vártam" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "idézÅ‘jeles stringet vagy azonosÃtót vártam" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "ez túl sok forgáspont" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "túl kevés parancsfájl szint" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "ismeretlen atomjellemzÅ‘" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "ismeretlen kötésjellemzÅ‘" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "ismeretlen parancs" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "futási idÅ‘ben értelmezhetetlen kifejezés" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "ismeretlen objektum" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "ismeretlen {0} paraméter" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" +"ismeretlen {0} paraméter a Jmol állapot parancsfájlban (mindenképp beállÃtva)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "ismeretlen SHOW paraméter, használja ezt: {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "mit Ãrjak? {0} vagy {1} \"fájlnév\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "skript HIBA: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atom tötölve" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} hidrogénkötés" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "érvénytelen környezet {0} számára" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ szám szám szám } várva" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "a kifejezés végét vártam" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "azonosÃtót vagy csapadék specifikációt vártam" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "érvénytelen atom specifikáció" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "érvénytelen lánc specifikáció" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "érvénytelen kifejezéselem: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "érvénytelen modell specifikáció" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "hiányzik a {0} végeleme" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "számot vagy változónevet vártam" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "csapadék specifikációt (ALA, AL?, A*) vártam" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} atom kiválasztva" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} atom kiválasztva" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "ismeretlen kifejezés elem: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "ismeretlen elem: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, fuzzy, java-format +msgid "{0} struts added" +msgstr "{0} atom elrejtve" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} kapcsolat törölve" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} új kötés, {1} módosÃtva" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol kisalkalmazás {0} {1} verzió.\n" +"\n" +"Egy OpenScience Projekt.\n" +"\n" +"További információk a http://www.jmol.org oldalon" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Adathiba:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "fordÃtás" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "válassz ki még egy atomot, hogy a modell a tengely körül forogjon" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "válassz ki két atomot, hogy a modell a tengely körül forogjon" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atom elrejtve" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atom kiválasztva" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "a vágólap nem érhetÅ‘ el, használjon aláÃrt Java kisalkalmazást" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "A Jmol kisalkalmazás töltÅ‘dik..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} másodperc" + +#~ msgid "1 processor" +#~ msgstr "1 processzor" + +#~ msgid "unknown processor count" +#~ msgstr "Processzorok száma ismeretlen" + +#~ msgid "{0} MB free" +#~ msgstr "Szabad: {0} MB" + +#~ msgid "unknown maximum" +#~ msgstr "Ismeretlen maximum" + +#~ msgid "Open file or URL" +#~ msgstr "Fájl vagy URL megnyitása" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/hy.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/hy.po new file mode 100755 index 000000000000..c4d062fb32e2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/hy.po @@ -0,0 +1,2568 @@ +# Armenian translation for jmol +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Serj Safarian \n" +"Language-Team: Armenian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "ÕÕ¡ÕžÖ€Ö€" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Õ“Õ¡Õ¯Õ¥Õ¬" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Õ•Õ£Õ¶Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&ÕˆÖ€Õ¸Õ¶Õ¥Õ¬..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Ô±Õ¾Õ¥Õ¬Õ«Õ¶" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "ÕŽÕ«Õ³Õ¡Õ¯" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Ô³Õ¸Ö€Õ®Õ¡Ö€Õ¯Õ¥Õ¬" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "ÕŠÕ¡Õ¿Õ´Õ¸Ö‚Õ©ÕµÕ¸Ö‚Õ¶" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Ô²Õ¥Õ¼Õ¶Õ¥Õ¬" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Ô³Ö€Õ¾Õ¡Õ®Ö„" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "ÕÕ¿Õ¸Ö‚Õ£Õ¸Ö‚Õ´" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Õ”Õ¡ÕµÕ¬" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Ô´Õ¡Õ¤Õ¡Ö€" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Õ„Õ¡Ö„Ö€Õ¥Õ¬" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Õ“Õ¡Õ¯Õ¥Õ¬" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Ô±ÕµÕ¸" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "ÕˆÕ¹" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Ô²Õ¸Õ¬Õ¸Ö€ Õ¶Õ·Õ¸ÖÕ¶Õ¥Ö€Õ¨" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Õ‰Õ¥Õ²Õ¡Ö€Õ¯Õ¥Õ¬" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Õ„Õ¡Õ¶Ö€Õ¡Õ´Õ¡Õ½Õ¶Õ¥Ö€" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Ô³Ö€Õ¡ÖÕ¸Ö‚ÖÕ¡Õ¯" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Õ€Õ¡Õ¿Õ¯Õ¡Õ¶Õ«Õ·Õ¥Ö€" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "ÕÕ¥Ö‚Õ¡ÖƒÕ¸ÕÕ¾Õ¡Õ®" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Ô±Õ¶Õ¸Ö‚Õ¶Õ¨" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Õ†Õ·Õ¸ÖÕ« Õ¡Õ¶Õ¸Ö‚Õ¶Õ¨Õ" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Õ‰Õ¡ÖƒÕ¨" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Õ†Õ·Õ¸ÖÕ« Õ¿Õ¥Õ½Õ¡Õ¯Õ¨Õ" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "ÕÕ¥Õ½Õ¡Õ¯Õ¨" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Õ‘Õ¡Õ¶Õ¯" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Õ†Õ¸Ö€ ÕºÕ¡Õ¶Õ¡Õ¯" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Ô¹Õ¡Ö€Õ´Õ¡ÖÕ¶Õ¥Õ¬" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "ÕŽÕ¥Ö€Õ¥Ö‚" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "Ô¼Õ¡Õ¾" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Ô±Ö€Õ¡Õ¢Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Ô²Õ¸Õ½Õ¶Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Ô³Õ¥Ö€Õ´Õ¡Õ¶Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Õ€Õ¸Ö‚Õ¶Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Ô²Ö€Õ«Õ¿Õ¡Õ¶Õ¡Õ¯Õ¡Õ¶ Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Ô±Õ´Õ¥Ö€Õ«Õ¯ÕµÕ¡Õ¶ Õ¡Õ¶Õ£Õ¬Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Õ§Õ½Õ¿Õ¸Õ¶Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Õ–Õ«Õ¶Õ¶Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Õ–Ö€Õ¡Õ¶Õ½Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Õ€Õ¸Ö‚Õ¶Õ£Õ¡Ö€Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Ô»Õ¶Õ¤Õ¸Õ¶Õ¥Õ¦Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "ÕƒÕ¡ÕºÕ¸Õ¶Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "ÕƒÕ¡Õ¾Õ¡Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Ô¿Õ¸Ö€Õ¥Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Õ€Õ¸Õ¬Õ¡Õ¶Õ¤Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Õ•Ö„Õ½Õ«Õ¿Õ¡Õ¶Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Ô¼Õ¥Õ°Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "ÕŠÕ¸Ö€Õ¿Õ¸Ö‚Õ£Õ¡Õ¬Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Ռուսերեն" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Ô¹Õ¡Õ´Õ«Õ¬Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Ô¹Õ¸Ö‚Ö€Ö„Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "ÕˆÖ‚Õ¯Ö€Õ¡Õ«Õ¶Õ¥Ö€Õ¥Õ¶" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Ô±Õ¾Õ¡Õ¶Õ¤Õ¡Õ¯Õ¡Õ¶ Õ¹Õ«Õ¶Õ¡Ö€Õ¥Õ¶" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "Õ¶Õ¸Ö€" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "Õ´Õ¡Ö„Ö€Õ¥Õ¬" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "ÕºÕ¡Õ°Õ¥Õ¬ Õ¶Õ·Õ¸ÖÕ¨" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +msgid "none" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "JavaScript Console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Open local file" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Open URL" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid " {0} seconds" +#~ msgstr " {0} Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/id.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/id.po new file mode 100755 index 000000000000..760040175096 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/id.po @@ -0,0 +1,2641 @@ +# Indonesian translation for jmol +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 23:44+0000\n" +"Last-Translator: Andika Triwidada \n" +"Language-Team: Indonesian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Unsur?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Konsul Skrip Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Berkas" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Tutup" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Bantuan" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Cari..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Perintah" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Fungsi Matematika" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Atur &Parameter" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Lainnya" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Penyunting" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Keadaan" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Jalankan" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Bersihkan Keluaran" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Bersihkan Masukan" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Riwayat" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Muat" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"tekan CTRL-ENTER untuk baris baru atau tempelkan model data dan tekan Muat" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Pesan akan ditampilkan disini. Tuliskan perintah dalam boks dibawah. Klik " +"konsul menu Bantuan untuk bantuan on-line yang akan ditampilkan di jendela " +"baru penjelajah." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Penyunting Skrip Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konsul" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Buka" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Depan" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Skrip" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Periksa" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Paling Atas" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Langkah" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Jeda" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Lanjutkan" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Berhenti" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Bersihkan" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Tutup" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Berkas atau URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Tipe Gambar" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Kualitas JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Pemampatan PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Kualitas PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Ya" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Tidak" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Apakah anda akan menindih berkas {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Peringatan" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Semua Berkas" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Batal" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Batalkan dialog pemilihan berkas" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Rincian" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Direktori" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Buka direktori yang dipilih" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Atribut" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Diubah" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Berkas Generik" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nama" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Nama Berkas:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Ukuran" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Berkas Bertipe:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Tipe" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Bantuan" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Bantuan PemilihBerkas" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Beranda" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Daftar" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Lihat Pada:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Kesalahan membuat folder baru" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Folder Baru" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Buat Folder Baru" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Buka berkas yang dipilih" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Simpan" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Simpan berkas yang dipilih" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Simpan Dalam:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Perbarui" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Perbarui daftar direktori" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Naik" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Naik Satu Aras" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Pratinjau" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Tambahkan model" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"CATATAN: Tulang punggung posisi hidrogen amide ada dan akan diabaikan. " +"Posisinya akan diperkirakan, sesuai standar analisis DSSP.\n" +"Pilih {0} agar tidak menggunakan perkiraan ini.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"CATATAN:Tulang punggung posisi hidrogen amide ada dan akan digunakan. " +"Hasilnya mungkin berbeda jauh dari snadar analisis DSSP.\n" +"Pilih {0} untuk mengabaikan posisi hidrogen.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arab" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturia" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "Azerbaijan" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosnia" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Katala" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Ceko" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Denmark" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Jerman" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Yunani" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Inggris Australia" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Inggris Britania" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Inggris Amerika" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Spanyol" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estonia" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "Basque" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finlandia" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Faro" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Perancis" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Frisia" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Galisia" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Kroasia" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Hungaria" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armenia" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesia" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italia" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Jepang" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Jawa" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Korea" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Melayu" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norwegia Bokmal" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Belanda" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occita" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polandia" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugis" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Portugis Brasil" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Rusia" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Slovenia" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbia" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Swedia" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turki" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uyghur" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukraina" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Uzbek" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Cina Sederhana" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Cina Tradisional" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Tidak bisa memperoleh class untuk gaya bidang {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Tidak ada atom yang dipilih -- tidak ada yang perlu dikerjakan!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atom akan diminimalkan." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "tidak bisa menyiapkan bidang gaya {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "baru" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "tidakjadi (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "jadilagi (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "tengah" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "tambah hidrogen" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimalkan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "perbaiki hidrogen dan minimalkan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "bersih" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "simpan berkas" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "simpan keadaan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "balik cincin kimia stereo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "hapus atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "seret ke ikatan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "seret atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "seret atom (dan memperkecil)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "seret dan minimalkan molekul (docking)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "menaikkan muatan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "kurangi muatan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "hapus ikatan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "tunggal" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "ganda" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "rangkap tiga" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "urutan naik" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "urutan menurun" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "putar ikatan (SHIFT-DRAG)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "keluar mode modelkit" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Kelompok Ruang" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Tidak ada" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Semua" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} prosesor" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "total {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "maksimum {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Konsul Skrip Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Petunjuk Tetikus" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Terjemahan" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistem" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Tidak ada atom yang dimuat" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Konfigurasi" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Elemen" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Model/Bingkai" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Bahasa" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Menurut Nama Residu" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Menurut HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Orbit Molekuler ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Simetri" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Informasi Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Pilih ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Semua {0} model" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Konfigurasi ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Koleksi dari {0} model" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atom: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "ikatan: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "grup: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "rantai: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polimer: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Tampilan {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menu Utama" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolekul" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolekul {0} ({1} atom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "muat biomolekul {0} ({1} atom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Tidak ada" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Tampilkan Hanya Yang Dipilih" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Pilih Sebaliknya" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Tampilan" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Depan" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Kiri" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Kanan" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Puncak" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Dasar" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Mundur" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Sumbu" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Sumbu" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Sumbu" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Sumbu" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Sumbu" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Sumbu" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Protein" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Tulangpunggung" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Rantai Sisi" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Residu Kutub" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Residu Nonkutub" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Residu Dasar (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Residu Asam (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Residu Tanpamuatan" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nukleat" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Dasar" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "pasangan AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "pasangan GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "pasangan AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Struktur Sekunder" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Semua PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Semua Pelarut" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Semua Air" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Pelarut BukanAir" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "HETATM BukanAir" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Karbohidrat" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Bukan yang diatas" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Gaya" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Skema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK Spacefill" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Bola dan Batang" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Batang" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Wireframe" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Kartun" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Telusur" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Mati" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Ikatan" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Hidup" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Ikatan Hidrogen" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Hitung" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Tetapkan Rantai Samping Ikatan-H" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Tetapkan Tulangpunggung Ikatan-H" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Ikatan Disulfida" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Tetapkan Rantai Samping Ikatan-SS" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Tetapkan Tulangpunggung Ikatan-SS" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Struktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Kartun Roket" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Pita" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Roket" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Strands" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Getaran" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektor" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Spektra" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} piksel" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Skala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereografik" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Kaca mata merah+cyan" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Kaca mata merah+biru" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Kaca mata merah+hijau" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Penilikan juling" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Tampilan Wall-eyed" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Label" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Dengan Simbol Unsur" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Dengan Nama Atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Dengan Nomor Atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Posisi Label pada Atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Ditengahkan" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Kanan Atas" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Kanan Bawah" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Kiri Atas" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Kiri Bawah" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Warna" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Menurut Skema" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Unsur (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Lokasi Alternatif" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekul" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Muatan Formal" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Muatan Parsial" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Suhu (Relatif)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Suhu (Tetap)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Asam Amino" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Rantai" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Kelompok" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Dengan bentuk" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Mewarisi" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Hitam" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Putih" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Cyan" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Merah" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Oranye" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Kuning" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Hijau" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Biru" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Ungu" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Salmon" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Zaitun" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Marun" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Abu-abu" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Biru Batu" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Emas" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Anggrek" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Jadikan Legap" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Jadikan Tembus Pandang" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Latar Belakang" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Permukaan" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Sumbu" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Kotak bingkai" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Satuan sel" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zum" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Perbesar" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Perkecil" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Putar" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Tata Laju X" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Tata Laju Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Tata Laju Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Tata FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animasi" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Mode Animasi" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Mainkan Sekali" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Perulangan" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Mainkan" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Henti" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Bingkai Berikutnya" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Bingkai Sebelumnya" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Gulung Balik" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Kebalikan" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Mulai Ulang" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Pengukuran" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Klik-ganda memulai dan mengakhiri semua pengukuran" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Klik untuk pengukuran jarak" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Klik untuk pengukuran sudut" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Klik untuk pengukuran torsi (dihedral)" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Klik dua atom untuk menampilkan urutan di konsul" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Hapus pengukuran" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Daftar pengukuran" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Satuan jarak nanometer" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Satuan jarak Angstrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Satuan jarak pikometer" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Tetapkan pilihan" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Tengah" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identitas" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Label" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Pilih atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Pilih rantai" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Pilih unsur" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "keluar mode modelkit" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Pilih grup" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Pilih molekul" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Pilih situs" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Tampilkan operasi simetri" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Tampilkan" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Konsul Skrip Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Kandungan Berkas" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Kepala Berkas" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Data permukaan iso JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Data orbit molekuler JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientasi" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Kelompok ruang" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Status sekarang" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Berkas" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Muat Ulang" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Buka dari PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Buka berkas yang dipilih" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Buka" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Muat satu sel utuh" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Buka skrip" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Simpan salinan dari {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Simpan skrip dengan status" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Simpan skrip dengan riwayat" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Ekspor gambar {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Simpan semua sebagai berkas JMOL (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Simpan permukaan iso JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Ekspor 3D model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Komputasi" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimalkan struktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Model kit" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Ekstrak data MOL" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Permukaan Dot" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "Permukaan van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Permukaan Molekuler" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Pelarut Permukaan ({0}-Angstrom probe)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Pelarut-Permukaan yang bisa diakses (VDW + {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Muat ulang {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Muat ulang {0} + Tampilkan {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Mulat ulang + Polihedra" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Sembunyikan" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Bertitik" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Lebar Piksel" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Lebar Angstrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Seleksi Halo" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Tampilkan Hidrogen" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Tampilkan Pengukuran" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Kedalaman Perspektif" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Warna RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Tentang..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "KESALAHAN kompiler skrip: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "sumbu x y z diharapkan" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} tidak diijinkan dengan model latar ditampilkan" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "cacah argumen salah" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Indeks Miller tidak semuanya bisa nol." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "warna [R,G,B] buruk" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "bolean diharapkan" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "bolean atau angka diharapkan" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "bolean, angka, atau {0} diharapkan" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "tak bisa menata nilai" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "warna diharapkan" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "diperlukan warna atau nama palet (Jmol, Rasmol)" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "perintah diharapkan" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} atau $name atau (ekspresi atom) diharapkan" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "obyek gambar tidak didefinisikan" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "perintah akhir skrip yang tidak diharapkan" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "ekspresi atom (yang valid) diharapkan" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(ekspresi atom) atau bilangan bulat diharapkan" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "namaberkas diharapkan" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "berkas tidak ditemukan" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "argumen tidak sesuai" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "argumen tidak mencukupi" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "bilangan bulat diharapkan" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "bilangan bulat diluar jangkauan ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "argumen tidak valid" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "urutan parameter tidak valid" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "katakunci diharapkan" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "tidak tersedia data koefisien MO" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Diperlukan indeks MO dari 1 sampai {0}" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "tidak tersedia data basis/koefisien MO untuk bingkai ini" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "tidak tersedia data okupansi MO" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Hanya satu orbit molekuler tersedia pada berkas ini" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} memungkinkan hanya satu model ditampilkan" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} memungkinkan hanya satu model dimuat" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Tidak tersedia data" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Tidak ada muatan parsial dibaca dari berkas; Jmol memerlukan hal ini untuk " +"pencitraan data MEP." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Tidak ada satu sel" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "angka diharapkan" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "angka harus diantara ({0} atau {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "angka desimal diluar jangkauan ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "nama obyek diharapkan setelah '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"diharapkan bidang -- menggunakan tiga poin atau ekspresi atom atau {0} atau " +"{1} atau {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "nama properti diharapkan" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "kelompok ruang {0} tidak ditemukan." + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "karakter dengan tanda petik diharapkan" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "karakter dengan tanda petik atau pengenal diharapkan" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "terlalu banyak titik rotasi yang dinyatakan" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "terlalu banyak aras skrip" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "properti atom tidak dikenal" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "properti ikatan tidak dikenal" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "perintah tidak dikenal" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "ekspresi runtime tidak dikenal" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "obyek tidak dikenal" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "{0} parameter tidak dikenal" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "parameter {0} tidak dikenal dalam status skrip Jmol (ditetapkan saja)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "parameter SHOW tidak dikenal -- gunakan {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "menulis apa? \"berkas\" {0} atau {1}" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "KESALAHAN skrip: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atom dihapus" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} ikatan hidrogen" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "berkas {0} dibuat" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "konteks tidak valid untuk {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ angka angka angka } diharapkan" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "akhir ekspresi diharapkan" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "pengenal atau spesifikasi residu diharapkan" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "spesifikasi atom tidak valid" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "spesifikasi rantai tidak valid" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "ekspresi token tidak valid: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "spesifikasi model tidak valid" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "kurang END untuk {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "angka atau nama variabel diharapkan" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "spesifikasi residu (ALA, AL?, A*) diharapkan" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} diharapkan" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} tidak diharapkan" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "tanda ekspresi tidak dikenal: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "token tidak dikenal: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} batang ditambahkan" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} koneksi dihapus" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} ikatan baru; {1} modifikasi" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Catatan: Lebih dari satu model terlibat dalam kontak ini!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "klik untuk menu..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Aplet Jmol versi {0} {1}.\n" +"\n" +"Proyek OpenScience.\n" +"\n" +"Kunjungi http://www.jmol.org untuk keterangan lanjut" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Galat Berkas:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "tetapkan atom baru atau ikatan (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "munculkan konteks menu terkini (klik di cap Jmol)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "hapus atom (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "hapus ikatan (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "atur kedalaman (sisi belakang; memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "pindahkan atom (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "pindahkan seluruh obyek DRAW (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "pindahkan titik DRAW tertentu (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "pindahkan label (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "pindahkan atom dan perkecil molekul (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "pindahkan dan perkecil molekul (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "pindahkan atom-atom yang dipilih (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "seret atom dalam arah Z (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simulasikan sentuhan ganda menggunakan tetikus" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "geser titik navigasi (memerlukan {0} dan {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "pilih satu atom" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "hubungkan ataom (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "pilih satu titik PERMUKAAN ISO (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "pilih satu label yang disembunyikan/ditampilkan (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"pilih atom untuk disertakan dalam pengukuran (setelah menjalankan ulang " +"pengukuran atau setelah {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "pilih satu titik atu atom untuk navigasi ke (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "pilih satu titik DRAW (untuk pengukuran) (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "munculkan seluruh konteks menu" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "atur ulang (waktu mematikan model)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "putar" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "putar cabang sekitar ikatan (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "putar atom yang dipilih (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "putar Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"putar Z (gerak horisontal tetikus) atau pembesaran (gerak vertikal tetikus)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "pilih satu atom (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "pilih dan geser atom (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "lepaskan pilihan kelompok atom ini (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "pilih KOSONG (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "tambahkan kelompok atom pada atom yang sudah dipilih (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "suis pilihan (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"jika semua dipilih, lepaskan semua pilihan, atau tambahkan kelompok ini pada " +"kelompok atom yang dipilih (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "pilih satu atom untuk memulai atau mengakhiri pengukuran" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "atur dataran (sisi depan; memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "pindah dataran/kedalaman jendela (kedua sisi;memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "pembesaran (sepanjang sudut kanan jendela)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"klik dua titik untuk memutar pada sumbu berlawanan arah jarum jam " +"(memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"klik pada dua titik untuk memutar terhadap sumbu searah jarum jam " +"(memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "hentikan gerakan (memerlukan {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" +"putar model (geser dan lepaskan tombol dan hentikan gerakan secara bersamaan)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "geser" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "pembesaran" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "pilih satu atom lagi untuk memutar model pada salah satu sumbu" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "pilih dua atom untuk memutar model pada salah satu sumbu" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "pilih satu atom lagi untuk menampilkan hubungan simetri" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "pilih dua atom untuk menampilkan hubungan simetrinya" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Tetapkan berkas log menjadi {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Tidak bisa menetapkan lokasi berkas log." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atom disembunyikan" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atom dipilih" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Seret untuk memindah label" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "clipboard tidak bisa diakses -- gunakan aplet yang disetujui" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} hidrogen ditambahkan" + +#~ msgid "Hide Symmetry" +#~ msgstr "Sembunyikan Simetri" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Memuat aplet Jmol..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} detik" + +#~ msgid "Java version:" +#~ msgstr "Versi Java:" + +#~ msgid "1 processor" +#~ msgstr "1 prosesor" + +#~ msgid "unknown processor count" +#~ msgstr "cacah prosesor tidak diketahui" + +#~ msgid "Java memory usage:" +#~ msgstr "Pemakaian memori Java:" + +#~ msgid "{0} MB free" +#~ msgstr "sisa {0} MB" + +#~ msgid "unknown maximum" +#~ msgstr "maksimum tidak diketahui" + +#~ msgid "Open file or URL" +#~ msgstr "Buka berkas atau URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/it.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/it.po new file mode 100755 index 000000000000..6ea319f33ab9 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/it.po @@ -0,0 +1,2650 @@ +# Italian translation for jmol +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Leonardo Corato \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Elemento?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol Script Console" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "File" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Chiude" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Aiuto" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Cerca" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Comandi" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Funzioni matematiche" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Imposta &Parametri" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Altro" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Stato" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Esegui" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Cancella l'Output" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Cancella l'Input" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Cronologia" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Carica" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"premi CTRL-ENTER per una nuova linea o copia il modello di dati e premi " +"Carica" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"I messaggi appariranno qui. Inserisci i comandi nel box qui sotto. Clicca il " +"menu Help per ottenere aiuto on-line, che apparirà in una nuova finestra del " +"browser." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Editor di script Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Console" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Apri" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Fronte" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Script" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Verifica" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Sopra" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Passo" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pausa" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Riprendi" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Arresta" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Pulisce" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Chiude" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "File o URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Tipo di Immagine" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Qualità JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Compressione PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Qualità PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Sì" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "No" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Vuoi sovrascrivere il file {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Attenzione" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Tutti i File" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Annulla" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Esci schermata selezione file" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Dettagli" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Cartella" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Apri la cartella selezionata" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Attributi" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Modificato" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "File Generico" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nome" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Nome File:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Dimensione" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "File di Tipo:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Tipo" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Aiuto" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Aiuto Scelta File" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Home" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Elenco" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Guarda in:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Errore nella creazione della nuova cartella" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Nuova Cartella" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Crea una Nuova Cartella" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Apri il file selezionato" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Salva" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Salva il file selezionato" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Salva In:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Aggiorna" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Aggiorna l'elenco delle cartelle" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Su" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Livello superiore" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Anteprima" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Accoda modelli" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"NOTA: le posizioni di idrogeno amidico Backbone presenti saranno ignorate. " +"Le loro posizioni saranno ravvicinate, come nelle analisi standard DSSP.\n" +"Usa {0} per non usare questa approssimazione.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"NOTA: Le posizioni di idrogeno amidico Backbone sono presenti e verranno " +"utilizzati. I risultati possono differire dagli standard di analisi DSSP.\n" +"Usa {0} per ignorare queste posizioni idrogeno.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arabo" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturiano" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosniaco" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Catalano" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Ceco" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Danese" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Tedesco" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Greco" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Inglese Australiano" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Inglese Britannico" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Inglese Americano" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Spagnolo" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estone" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "finlandese" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Faeroese" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Francese" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Frisone" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Galiziano" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Croato" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Ungherese" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armeno" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesiano" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italiano" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Giapponese" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Giavanese" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Coreano" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Malese" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norvegese Bokmal" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Olandese" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitana" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polacco" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portoghese" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Portoghese brasiliano" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Russo" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Sloveno" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbo" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Svedese" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turco" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uiguro" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ucraino" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Cinese semplificato" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Cinese tradizionale" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Non posso ottenere la classe per il campo di forze {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Nessun atomo selezionato -- niente da fare!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomi saranno minimizzati." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "impossibile impostare il campo di forze {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "nuovo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "annulla (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "ripeti (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "centra" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "aggiungi idrogeni" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimizza" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "sistema gli idrogeni e minimizza" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "cancella" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "salva file" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "salva stato" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "anello stereochimico invertito" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "elimina atomo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "trascina al legame" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "trascina atomo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "trascina atomo (e minimizza)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "trascina e minimizza molecola (docking)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "aumento di carica" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "diminuzione di carica" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "elimina legame" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "singolo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "doppio" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "triplo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "per aumentare" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "per diminuire" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "ruota legame (SITFT-TRASCINA)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "esci dalla modalità modelkit" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Gruppo Spazio" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Nessuna" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Tutti" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processori" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB totali" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB al massimo" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol Script Console" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Manuale Mouse" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Traduzioni" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistema" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Nessun atomo caricato" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Configurazioni" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Modello/Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Lingua" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Per Nome di Residuo" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Per HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Orbitale molecolare ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Simmetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Informazioni sul modello" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Seleziona({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Tutti i {0} modelli" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Configurazioni ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Libreria di {0} modelli" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomi: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "legami: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "gruppi: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "catene: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polimeri: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "modello {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Vista {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menu principale" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolecole" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolecola {0} ({1} atomi)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "carica biomolecola {0} ({1} atomi)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Nessuna" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Mostra solo la Selezione" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Inverti Selezione" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Visualizza" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Fronte" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Sinistra" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Destra" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Sopra" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "In fondo" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Parte posteriore" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Assi" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Assi" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Assi" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Assi" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Assi" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Assi" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Proteina" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Backbone (Spina dorsale)" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Catene Laterali" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Residui Polari" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Residui Apolari" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Residui Basici (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Residui Acidi (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Residui Privi Di Carica" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nucleico" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Basi" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Coppie AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Coppie Gc" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Coppie AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Struttura Secondaria" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Etero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Tutti gli \"HETATM\" PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Tutti i solventi" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Tutta l'Acqua" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Solvente non acquoso" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "HETATM non acquosi" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligando" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Carboidrato" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Nessuno dei precedenti" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Stile" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Schema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK Spacefill" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Sferette e Bastoni" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Sticks" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Wireframe" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Fumetto" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Traccia" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomi" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Disattivo" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Legami" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Attivo" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Legami ad Idrogeno" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Calcola" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Imposta Legame Idrogeno lungo la catena" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Imposta Legame Idrogeno lungo la catena principale" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Legame Disulfuro" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Imposta Legami disolfuro accanto la catena" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Imposta Legami disolfuro dietro la catena principale" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Strutture" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Cartoon Rockets" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Nastri" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Rockets" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Trefoli" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibrazione" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vettori" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Spettri" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pixels" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Scala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereografico" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Lenti Rosso+Ciano" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Lenti Rosso+Blu" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Lenti Rosso+Verde" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Visualizzazione Incrociata" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Visualizzazione 3D" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Etichette" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Con Simbolo dell'Elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Con Nome Atomico" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Con Numero Atomico" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Metti una Etichetta sull'Atomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Al centro" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "In Alto a Destra" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "In Basso a Destra" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "In Alto a Sinistra" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "In Basso a Sinistra" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Colore" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Secondo Schema" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Elemento (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Posizione Alternativa" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molecola" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Carica Formale" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Carica Parziale" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperatura (Relativa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperatura (Fissa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Amminoacido" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Catena" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Gruppo" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomero" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Proporzionato" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Eredita" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Nero" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Bianco" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Ciano" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Rosso" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Arancione" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Giallo" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Verde" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Blu" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indaco" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Viola" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Salmone" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Verde Oliva" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Marrone Rossiccio" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Grigio" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Slate Blue" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Oro" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orchidea" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Rendi Opaco" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Rendi Trasparente" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Sfondo" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Superfici" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Assi" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Boundbox" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Cella Unitaria" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Ingrandimento" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Ingrandisci" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Riduci Ingrandimento" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Rotazione" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Imposta il fattore per X" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Imposta il fattore per Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Imposta il fattore per Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Imposta FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animazione" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Modalità Animazione" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Riproduci Una Sola Volta" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindromo" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Ciclo" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Riproduci" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Stop" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Fotogramma Successivo" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Fotogramma Precedente" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Riavvolgi" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Inverti" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Riavvia" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Misurazioni" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Tutte le misurazioni iniziano e terminano con il Doppio-Clic" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Fare Clic per la misurazione della distanza" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Fare Clic per la misurazione dell'angolo" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Clicca per misurare l'angolo torsionale (diedro)" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Clicca su due atomi per visualizzare una sequenza nella console" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Cancella le misurazioni" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Elenca le misurazioni" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Unità di distanza in nanometri" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Unità di distanza in Ã…ngstrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Unità di distanza in picometri" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Imposta selezione" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Al centro" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identità " + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Etichetta" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Seleziona atomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Seleziona catena" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Seleziona elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "esci dalla modalità modelkit" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Seleziona gruppo" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Seleziona molecola" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Seleziona sito" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Mostra simmetria operazione" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Mostra" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol Script Console" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Contenuti del File" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Intestazione del File" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Isosuperficie dati JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Dati dell'orbitale molecolare JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Modello" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientazione" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Gruppo Spaziale" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Stato Attuale" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "File" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Ricarica" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Apri da PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Apri il file selezionato" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Apri" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Unità di carico completo cella" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Apri script" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Salva una copia di {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Salva script con stato" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Salva script con cronologia" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Esporta {0} immagine" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Salva tutto come file JMOL (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Salva isosuperficie JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Esporta {0} Modello 3D" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Computo" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Ottimizza struttura" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Kit Modello" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Estrai l'informazione MOL" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Superficie puntinata" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "Superficie di van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Superficie Molecolare" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Superficie del Solvente (sonda {0}-Angstrom )" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Superficie Accessibile al Solvente (VDW + {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Ricarica {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Ricarica {0} + Mostra {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Ricarica + Poliedri" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Nascondi" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Punteggiato" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Ampiezza in Pixel" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Ampiezza in Angstrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Selezione Aloni" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Mostra Idrogeni" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Mostra Misure" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Profondità della Prospettiva" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Colori di RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "A proposito di..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "ERRORE compilazione script: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "attesi assi x y z" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} non permesso con il modello di sfondo mostrato" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "numero di argomenti non valido" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Gli indici di Miller non possono essere tutti e tre zero" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "colore [R,G,B] mal formulato" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "atteso valore booleano" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "atteso un valore booleano o un numero" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "atteso un valore booleano, un numero o {0}" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "Impossibile impostare il valore" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "atteso un colore" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "si richiede un colore od una paletta (Jmol, Rasmol)" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "atteso comando" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} or $nome o (espressione atomo) richiesta" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "disegna gli oggetti non definiti" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "fine imprevista del comando script" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "valido (espressione atomo) previsto" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(espressione atomo) o un numero intero previsto" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "atteso un nome file" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "file non trovato" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "argomenti incompatibili" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "argomenti insufficienti" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "atteso valore intero" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "intero fuori dal range ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "argomento non valido" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "ordine dei parametri non valido" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "attesa keyword" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "nessuna informazione disponibile sui coefficienti dei MO" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Un indice di MO da 1 a {0} è richiesto" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" +"Nessuna informazione relativa alla base MO/coefficienti disponibile per " +"questo frame" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "Nessuna informazione sull'occupazione dei MO" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Solo un MO è disponibile in questo file" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} necessità uno o più modelli mostrati" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} richiede che un solo modello sia caricato" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Nessuna informazione disponibile" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Nessun cambiamento parziale è stato letto dal file; Jmol ha bisogno di " +"questi dati per il rendering dei dati MEP." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Nessuna cella unitaria" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "atteso numero" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "il numero deve essere ({0} or {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "numero decimale fuori dal range ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "nome oggetto atteso dopo '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"piano previsto - sia tre punti o espressioni di atomo o {0} o {1} o {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "nome di proprietà atteso" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "il gruppo spaziale {0} non è stato trovato" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "stringa tra virgolette prevista" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "stringa tra virgolette o identificatore previsto" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "sono stati specificati troppi punti di rotazione" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "troppi livelli di script" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "proprietà di atomo non riconosciuta" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "proprietà di legame non riconosciuta" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "comando non riconosciuto" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "espressione runtime non riconosciuta" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "oggetto non riconosciuto" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "parametro {0} inatteso" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "parametro {0} non riconosciuto in Jmol state script (imposta comunque)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "parametro SHOW non riconosciuto -- usa {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "cosa scrivere? Nome del file {0} o {1}" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "script ERROR: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "cancellati {0} atomi" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} legami idrogeno" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "file {0} creato" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "contesto non valido per {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "atteso { numero numero numero }" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "attesa fine dell'espressione" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "specificazione identificativo o residui previsto" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "specifica dell'atomo invalida" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "specifica della catena laterale invalida" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "espressione non valida simbolo: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "specifica del modello invalida" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "manca END per {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "atteso numero o nome di variabile" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "attesa specifica del residuo (ALA, AL?, A*)" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "atteso {0}" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} inatteso" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "espressione non riconosciuta simbolo : {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "simbolo sconosciuto: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} puntoni aggiunti" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "cancellate {0} connessioni" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} nuovi legami; {1} modificati" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Nota: In questo contatto è coinvolto più di un modello!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Clicca per i menu ..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet version2 {0} {1}.\n" +"\n" +"Un progetto OpenScience.\n" +"\n" +"Visita http://www.jmol.org per ulteriori informazioni." + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Errore nel file:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "assegna/nuovo atomo o legame (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "mostra menu di contesto recente (clicca su Jmol frank)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "elimina atomo (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "elimina legame (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "regolare la profondità (piano dietro, richiede {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "spostare atomo (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "sposta intero oggetto DISEGNO (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "spostare il punto di DISEGNO specifico (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "muovi etichetta (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "sposta atomo e minimizza molecole (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "sposta e minimizza molecole (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "spostare gli atomi selezionati (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "trascina gli atomi nella direzione Z (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simulare il multi-touch con il mouse)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "tradurre punto di navigazione (richiede {0}) e {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "scegliere un atomo" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "collega atomi (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "scegliere un punto isosuperficie (richiede {0}" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" +"scegliere una etichetta per attivarlo nascosto/visualizzato (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"scegliere un atomo da includere in una misura (dopo aver iniziato una " +"misurazione o dopo {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "scegliere un punto o atomo per la navigazione (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "scegliere un punto di DISEGNO (per le misurazioni) (richiede {0}" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "mostra il menu contestuale completo" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "reset (quando si spense il modello)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "ruotare" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "ruotare il ramo intorno al legame (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "ruota gli atomi selezionati (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "ruotare Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"ruotrare Z(movimento orizzontale del mouse) o zoom (movimento verticale del " +"mouse)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "seleziona un atomo (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "seleziona e sposta gli atomi (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "deseleziona questo gruppo di atomi (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "selezionare NULLA (richiede{0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" +"aggiungere questo gruppo di atomi a un insieme di atomi selezionati " +"(richiede {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "passa selezione (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"se tutti sono selezionati, deselezionare tutti, altrimenti aggiungere questo " +"gruppo di atomi a un insieme di atomi selezionati (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "scegliere un atomo di avviare o concludere una misura" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "regolare lastra (piano frontale, richiede {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" +"spostare lastra / finestra di profondità (entrambi i piani, richiede {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zoom (lungo il bordo destro della finestra)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"cliccare su due punti a ruotare attorno al proprio asse in senso antiorario " +"(richiede {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"cliccare su due punti a ruotare attorno al proprio asse in senso orario " +"(richiede {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "stop motion (richiede {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" +"modello di rotazione (colpire e rilasciare il pulsante e fermare il " +"movimento simultaneamente)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "tradurre" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "zoom" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" +"scegliere un altro atomo, al fine di ruotare il modello attorno a un asse" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "scegliere due atomi in modo da ruotare il modello intorno a un asse" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "scegliere un altro atomo per visualizzare il rapporto di simmetria" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "scegliere due atomi per visualizzare il rapporto di simmetria fra loro" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Impostazione file di log su {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Impossibile impostare il percorso del file di registro." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atomi nascosti" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atomi selezionati" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Trascinare per spostare l'etichetta" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "Gli appunti non sono accessibili - utilizzare applet firmati" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} idrogeni aggiunti" + +#~ msgid "Hide Symmetry" +#~ msgstr "Nascondi Simmetria" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Caricamento Jmol applet" + +#~ msgid " {0} seconds" +#~ msgstr " {0} secondi" + +#~ msgid "Java version:" +#~ msgstr "Versione java:" + +#~ msgid "1 processor" +#~ msgstr "1 processore" + +#~ msgid "unknown processor count" +#~ msgstr "conta dei processi sconosciuta" + +#~ msgid "Java memory usage:" +#~ msgstr "Utilizzo memoria java:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB liberi" + +#~ msgid "unknown maximum" +#~ msgstr "massimo sconosciuto" + +#~ msgid "Open file or URL" +#~ msgstr "Apri file o URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ja.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ja.po new file mode 100755 index 000000000000..6c447d9a4079 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ja.po @@ -0,0 +1,2637 @@ +# Javanese translation for jmol +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Hiroshi Kihara \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Country: Japan\n" +"X-Poedit-Language: Japanese\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "å…ƒç´ ?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol スクリプト・コンソール" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "ファイル" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "é–‰ã˜ã‚‹" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "ヘルプ" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "検索" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "命令" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "æ•°å¦é–¢æ•°" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "パラメータã®è¨å®š" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "ã•ã‚‰ã«" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "エディタ" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "状態" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "実行" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "出力をクリアã™ã‚‹" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "入力をクリア" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "å±¥æ´" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "èªã¿è¾¼ã¿" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"改行ã™ã‚‹ã«ã¯Ctrl-Enterã‚ーを押ã—ã¦ãã ã•ã„。ã¾ãŸã¯ãƒ‡ãƒ¼ã‚¿ã‚’ペーストã—ã¦[èªã¿è¾¼" +"ã¿]ボタンをクリックã—ã¦ãã ã•ã„。" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"メッセージã¯ã“ã“ã«è¡¨ç¤ºã•ã‚Œã¾ã™ã€‚下ã®ãƒœãƒƒã‚¯ã‚¹ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’入力ã—ã¦ãã ã•ã„。コ" +"ンソールã®ãƒ˜ãƒ«ãƒ—メニューã®é …目をクリックã™ã‚‹ã¨ãƒ–ラウザã®æ–°ã—ã„ウィンドウã§ã‚ª" +"ンラインヘルプãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol スクリプト・エディタ" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "コンソール" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "é–‹ã" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "å‰" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "スクリプト" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "ãƒã‚§ãƒƒã‚¯" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "トップ" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "ステップ" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "一時åœæ¢" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "å†é–‹ã™ã‚‹" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "åœæ¢" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "クリア" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "é–‰ã˜ã‚‹" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "ファイルã¾ãŸã¯URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "ç”»åƒã®ç¨®é¡ž" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG画質 ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG圧縮率 ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG画質 ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Yes" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "No" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "ファイル {0} を上書ãã—ã¾ã™ã‹ï¼Ÿ" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "è¦å‘Š" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "ã™ã¹ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "ã‚ャンセル" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "ファイルé¸æŠžãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’ä¸æ¢" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "詳細" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "ディレクトリ" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "é¸æŠžã—ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’é–‹ã" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "属性" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "変更ã•ã‚ŒãŸ" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "一般的ãªãƒ•ã‚¡ã‚¤ãƒ«" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "å称" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "ファイルå:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "サイズ" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "ファイルã®åž‹:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "タイプ" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "ヘルプ" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "ファイルé¸æŠžãƒ€ã‚¤ã‚¢ãƒã‚°ã®ãƒ˜ãƒ«ãƒ—" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "ホーム" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "リスト" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "検索対象:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "æ–°è¦ãƒ•ã‚©ãƒ«ãƒ€ã®ä½œæˆä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "æ–°è¦ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "æ–°è¦ãƒ•ã‚©ãƒ«ãƒ€ã‚’作æˆã™ã‚‹" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "é¸æŠžã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’é–‹ã" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "ä¿å˜ã™ã‚‹" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "é¸æŠžã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¿å˜ã™ã‚‹" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "ä¿å˜:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "æ›´æ–°" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "ディレクトリ・リストã®æ›´æ–°" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Up" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "1ã¤ä¸Šã®ãƒ¬ãƒ™ãƒ«ã¸" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "プレビュー" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "ãƒ¢ãƒ‡ãƒ«ã‚’è¿½åŠ ã™ã‚‹" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"注æ„: ãƒãƒƒã‚¯ãƒœãƒ¼ãƒ³ã®ã‚¢ãƒŸãƒ‰æ°´ç´ ã®ä½ç½®ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚ãれらã®ä½ç½®ã¯æ¨™æº–DSSP解" +"æžã®ã‚ˆã†ã«è¿‘ä¼¼ã•ã‚Œã¾ã™ã€‚\n" +"ã“ã®è¿‘似を用ã„ãªã„ãŸã‚ã«ã¯ {0}を使用ã—ã¦ãã ã•ã„。\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"注æ„: ãƒãƒƒã‚¯ãƒœãƒ¼ãƒ³ã®ã‚¢ãƒŸãƒ‰æ°´ç´ ã®ä½ç½®ãŒåˆ©ç”¨ã•ã‚Œã¾ã™ã€‚çµæžœã¯æ¨™æº–DSSP解æžã¨å¤§ã" +"ãç•°ãªã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚\n" +"ã“れらã®æ°´ç´ ã®ä½ç½®ã‚’無視ã™ã‚‹ã«ã¯ {0} を使用ã—ã¦ãã ã•ã„。\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "アラビア語" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "アストゥリアス語" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "ボスニア語" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "ã‚«ã‚¿ãƒãƒ‹ã‚¢èªž" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "ãƒã‚§ã‚³èªž" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "デンマーク語" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "ドイツ語" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "ギリシャ語" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "オーストラリア英語" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "イギリス英語" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "アメリカ英語" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "スペイン語" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "エストニア語" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "フィンランド語" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "フェãƒãƒ¼èªž" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "フランス語" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "フリジア語" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "ガリシア語" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "クãƒã‚¢ãƒã‚¢èªž" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "ãƒãƒ³ã‚¬ãƒªãƒ¼èªž" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "アルメニア語" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "インドãƒã‚·ã‚¢èªž" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "イタリア語" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "日本語" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "ジャワ語" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "韓国語" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "マレー語" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "ノルウェー語 ブークモール" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "オランダ語" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "オック語" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªž" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "ãƒãƒ«ãƒˆã‚¬ãƒ«èªž" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "ãƒãƒ«ãƒˆã‚¬ãƒ«èªžï¼ˆãƒ–ラジル)" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "ãƒã‚·ã‚¢èªž" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "スãƒãƒ™ãƒ‹ã‚¢èªž" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "セルビア語" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "スウェーデン語" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "タミル語" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "テルグ語" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "トルコ語" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "ウイグル語" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "ウクライナ語" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "ä¸å›½èªžï¼ˆç°¡ä½“å—)" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "ä¸å›½èªžï¼ˆç¹ä½“å—)" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "åŠ›å ´ {0} ã«å¯¾ã™ã‚‹ã‚¯ãƒ©ã‚¹ã‚’å–å¾—ã§ãã¾ã›ã‚“" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "原åãŒé¸æŠžã•ã‚Œã¦ã„ã¾ã›ã‚“ï¼ä½•ã‚‚ã§ãã¾ã›ã‚“。" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} 原åã‚’æ§‹é€ æœ€é©åŒ–ã™ã‚‹" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "åŠ›å ´ {0}ã‚’è¨å®šã§ãã¾ã›ã‚“" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "æ–°è¦" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "å…ƒã«æˆ»ã™ (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "ã‚„ã‚Šç›´ã— (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "ä¸å¿ƒ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "æ°´ç´ ã‚’ä»˜åŠ ã™ã‚‹" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "æ§‹é€ æœ€é©åŒ–" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "æ°´ç´ åŽŸåã¨ã®è·é›¢ã‚’一定ã«ã—ã¦æ§‹é€ 最é©åŒ–" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "クリア" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "æ§‹é€ ã‚’ãƒ•ã‚¡ã‚¤ãƒ«ã«ä¿å˜" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "状態(イメージ)をä¿å˜" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "ç’°ã®ç«‹ä½“化å¦ã‚’å転ã™ã‚‹" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "原åを削除" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "ドラッグã—ã¦çµåˆã‚’作æˆ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "原åをドラッグ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "原åをドラッグ (ãã®å¾Œã€æ§‹é€ 最é©åŒ–ã™ã‚‹)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "ドラッグã—ã¦åˆ†åã‚’æ§‹é€ æœ€é©åŒ– (ドッã‚ング)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "é›»è·ã‚’増やã™" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "é›»è·ã‚’減らã™" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "çµåˆã‚’削除" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "å˜çµåˆ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "二é‡çµåˆ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "三é‡çµåˆ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "çµåˆæ¬¡æ•°ã‚’増やã™" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "çµåˆæ¬¡æ•°ã‚’減らã™" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "çµåˆã‚’回転ã•ã›ã‚‹(SHIFT-ドラッグ)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "モデル組立ã¦ãƒ¢ãƒ¼ãƒ‰ã‚’終了" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "空間群" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "ãªã—" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "ã™ã¹ã¦" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} プãƒã‚»ãƒƒã‚µ" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "åˆè¨ˆ {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "最大 {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol スクリプト・コンソール" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "マウスã®ä½¿ã„æ–¹" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "翻訳" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "システム" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "何も原åãŒèªã¿è¾¼ã¾ã‚Œã¦ã„ã¾ã›ã‚“" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "立体é…ç½®" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "å…ƒç´ " + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "モデル/フレーム" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "言語" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "残基ã®ç¨®é¡žã§" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "HETATMã§" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "分åè»Œé“ ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "対称性" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "ãƒ¢ãƒ‡ãƒ«æƒ…å ±" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "é¸æŠž ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "ã™ã¹ã¦ã® {0} モデル" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "立体é…ç½® ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "{0} モデルã®é›†åˆ" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "原å: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "çµåˆ: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "基: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "鎖: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "ãƒãƒªãƒžãƒ¼: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "モデルl {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "{0}を表示" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "メインメニュー" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "生体分å" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "生体分å {0} ({1} 原å)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "生体分å {0}ã‚’èªã¿è¾¼ã‚€ ({1} 原å)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "ãªã—" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "é¸æŠžã—ãŸã‚‚ã®ã ã‘を表示" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "é¸æŠžç¯„囲をå転" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "表示" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "å‰" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "å·¦" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "å³" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "上" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "下" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "後" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "軸" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "軸" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "軸" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "軸" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "軸" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "軸" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "タンパク質" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "ãƒãƒƒã‚¯ãƒœãƒ¼ãƒ³" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "å´éŽ–" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "極性残基" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "éžæ¥µæ€§æ®‹åŸº" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "塩基性残基 (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "酸性残基 (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "éžè·é›»æ€§æ®‹åŸº" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "æ ¸é…¸" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "塩基" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT対" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC対" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU対" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "äºŒæ¬¡æ§‹é€ " + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "ヘテãƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "ã™ã¹ã¦ã®PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "ã™ã¹ã¦ã®æº¶åª’" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "ã™ã¹ã¦ã®æ°´åˆ†å" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "éžæ°´æº¶åª’" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "水以外ã®ãƒ˜ãƒ†ãƒåŽŸå" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "é…ä½å" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "ç‚水化物" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "上ã®ã©ã‚Œã§ã‚‚ãªã„" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "スタイル" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "モデルã®è¡¨ç¤ºæ–¹æ³•" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK 空間充填" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "棒çƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "棒" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "ワイヤフレーム" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "カートゥーン" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "トレース" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "原å" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "オフ" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "van der WaalsåŠå¾„ã®{0}%" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "çµåˆ" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "オン" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "æ°´ç´ çµåˆ" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "計算ã™ã‚‹" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "å´éŽ–ã«æ°´ç´ çµåˆã‚’è¨å®š" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "ãƒãƒƒã‚¯ãƒœãƒ¼ãƒ³ã«æ°´ç´ çµåˆã‚’è¨å®š" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "ジスルフィドçµåˆ" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "å´éŽ–ã«ã‚¸ã‚¹ãƒ«ãƒ•ã‚£ãƒ‰çµåˆã‚’è¨å®š" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "ãƒãƒƒã‚¯ãƒœãƒ¼ãƒ³ã«ã‚¸ã‚¹ãƒ«ãƒ•ã‚£ãƒ‰çµåˆã‚’è¨å®š" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "æ§‹é€ " + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "カーツゥーン・ãƒã‚±ãƒƒãƒˆ" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "リボン" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "ãƒã‚±ãƒƒãƒˆ" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "ストランド" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "振動" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "ベクトル" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} ピクセル" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "{0} å€" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "立体視ã®æ–¹å¼" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "赤+é’ç·‘ 立体視眼é¡" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "赤+é’ ç«‹ä½“è¦–çœ¼é¡" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "赤+ç·‘ 立体視眼é¡" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "交差法ã«ã‚ˆã‚‹ç«‹ä½“視" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "平行法ã«ã‚ˆã‚‹ç«‹ä½“視" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "ラベル" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "å…ƒç´ è¨˜å·" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "原åå" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "原å番å·" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "表示ä½ç½®" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "ä¸å¿ƒã«" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "å³è‚©" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "å³ä¸‹" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "左肩" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "左下" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "色" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "スã‚ームã§" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "å…ƒç´ ï¼ˆCPKモデル)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "別ãªå ´æ‰€" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "分å" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "å½¢å¼é›»è·" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "部分電è·" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "温度(相対)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "温度(固定)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "アミノ酸" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "鎖" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "基" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "モノマー" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Shapely" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "継承" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "é»’" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "白" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "é’ç·‘" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "赤" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "æ©™" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "黄色" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "ç·‘" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "é’" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "è—" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "ç´«" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "サーモン" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "オリーブ色" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "æ —è‰²" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "ç°è‰²" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "スレートブルー(é’ç°è‰²)" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "金色" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "オーã‚ッド(薄赤紫)" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "ä¸é€æ˜Žã«ã™ã‚‹" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "åŠé€æ˜Žã«ã™ã‚‹" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "背景" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "é¢" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "軸" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "ãƒã‚¦ãƒ³ãƒ‰ãƒœãƒƒã‚¯ã‚¹" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "å˜ä½æ ¼å" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "ズーム" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "表示を拡大" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "表示を縮å°" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "回転" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "X軸ã®å›žã‚Šã®å›žè»¢é€Ÿåº¦" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Y軸ã®å›žã‚Šã®å›žè»¢é€Ÿåº¦" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Z軸ã®å›žã‚Šã®å›žè»¢é€Ÿåº¦" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "FPSã‚’è¨å®š" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "アニメーション" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "アニメーション・モード" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "一度実行ã™ã‚‹" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "往復繰り返ã—" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "ループ" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "å†ç”Ÿ" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "åœæ¢" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "次ã®ãƒ•ãƒ¬ãƒ¼ãƒ " + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "å‰ã®ãƒ•ãƒ¬ãƒ¼ãƒ " + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "å·»ã戻ã—" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "逆転" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "å†èµ·å‹•" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "計測" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "始点ã¨çµ‚点ã§ãƒ€ãƒ–ルクリックã—ã¦è¨ˆæ¸¬" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "クリックã—ã¦è·é›¢ã‚’計測" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "クリックã—ã¦çµåˆè§’を計測" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "クリックã—ã¦äºŒé¢è§’を計測" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "2原åをクリックã—ã¦ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã«é †åºã‚’表示" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "計測値を消去" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "計測値をコンソールã«è¡¨ç¤º" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "é•·ã•ã®å˜ä½ ナノメータ" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "é•·ã•ã®å˜ä½ オングストãƒãƒ¼ãƒ " + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "é•·ã•ã®å˜ä½ ピコメータ" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "クリックã®æ©Ÿèƒ½" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "ä¸å¿ƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "原åã®ç•ªå·ã¨ä½ç½®" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "ラベル" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "原åã‚’é¸æŠž" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "鎖をé¸æŠž" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "å…ƒç´ ã‚’é¸æŠž" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "モデル組立ã¦ãƒ¢ãƒ¼ãƒ‰ã‚’終了" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "基をé¸æŠž" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "分åã‚’é¸æŠž" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "サイトをé¸æŠž" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "対称æ“作を表示" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "表示" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol スクリプト・コンソール" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "ファイルã®å†…容" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "ファイルã®ãƒ˜ãƒƒãƒ€ãƒ¼" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "ç‰é«˜é¢JVXLデータ" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "分å軌é“ã®JVXLデータ" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "モデル" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "æ–¹å‘" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "空間群" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "ç¾åœ¨ã®çŠ¶æ…‹" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "ファイル" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "å†èªã¿è¾¼ã¿" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "PDBã‹ã‚‰é–‹ã" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "é¸æŠžã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’é–‹ã" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "é–‹ã" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "å…¨å˜ä½æ ¼åã‚’èªã¿è¾¼ã‚€" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "スクリプトを開ã" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "{0}ã®ã‚³ãƒ”ーをä¿å˜" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "状態ã¨ã‚¹ã‚¯ãƒªãƒ—トをä¿å˜ã™ã‚‹" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "å±¥æ´ã¨ã‚¹ã‚¯ãƒªãƒ—トをä¿å˜ã™ã‚‹" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "{0} イメージを書ã出ã™" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "ã™ã¹ã¦ã‚’JMOLファイル (zip)ã¨ã—ã¦ä¿å˜" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "JVXLç‰é«˜é¢ã‚’ä¿å˜" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "{0} 3Dモデルを書ã出ã™" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "計算" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "æ§‹é€ æœ€é©åŒ–" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "モデル組立ã¦" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "MOLデータを抽出" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "点ã§æã" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "van der Waals 表é¢" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "分å表é¢" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "æº¶åª’è¡¨é¢ ({0}-オングストãƒãƒ¼ãƒ ・プãƒãƒ¼ãƒ–)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "æº¶åª’æŽ¥è§¦è¡¨é¢ (VDW + {0} オングストãƒãƒ¼ãƒ )" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "{0}ã‚’å†èªã¿è¾¼ã¿ã™ã‚‹" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "{0}ã‚’å†èªã¿è¾¼ã¿ã—{1}を表示" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "å†èªã¿è¾¼ã¿ + 多é¢ä½“" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "éžè¡¨ç¤º" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "点線" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "ピクセル幅" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "オングストãƒãƒ¼ãƒ å¹…" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "é¸æŠžå¯¾è±¡ã‚’暈ã§å›²ã‚€" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "æ°´ç´ ã‚’è¡¨ç¤º" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "è·é›¢ã‚„角度を表示" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "視点ã®å¥¥è¡Œã" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMollã§ä½¿ã‚ã‚Œã¦ã„る色" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Jmolã«ã¤ã„ã¦..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "スクリプト・コンパイラ エラー: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "x y z 軸を指定ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} 背景モデルãŒè¡¨ç¤ºã•ã‚Œã¦ã„ã‚‹å ´åˆã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "引数ã®æ•°ãŒèª¤ã£ã¦ã„ã¾ã™" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "ミラー指数ã¯ã™ã¹ã¦0ã«ã¯ã§ãã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "[R,G,B] 色指定ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "ブール値を入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "ブール値ã¾ãŸã¯æ•°å€¤ã‚’入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "ブール値ã€æ•°å€¤ã¾ãŸã¯{0} を入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "色を指定ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "色ã¾ãŸã¯ãƒ‘レットå (Jmol, Rasmol)ãŒå¿…è¦ã§ã™" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "命令を入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} ã¾ãŸã¯$name ã‚ã‚‹ã„ã¯ï¼ˆåŽŸåå¼ï¼‰ãŒå¿…è¦ã§ã™" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "æ画オブジェクトãŒå®šç¾©ã•ã‚Œã¦ã„ã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "スクリプトコマンドãŒäºˆæœŸã›ãšçµ‚了ã—ã¾ã—ãŸ" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "æ£ã—ã„ (原åå¼) を入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(原åå¼) ã¾ãŸã¯æ•´æ•°ã‚’入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "ファイルåを指定ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "引数ãŒçŸ›ç›¾ã—ã¦ã„ã¾ã™" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "引数ãŒè¶³ã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "整数を入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "整数㌠({0} - {1})ã®ç¯„囲を超ãˆã¦ã„ã¾ã™" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "引数ãŒä¸æ£ã§ã™" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "パラメータã®é †åºãŒä¸æ£ã§ã™" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "ã‚ーワードを指定ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "MOã®ä¿‚数データãŒã‚ã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "分å軌é“ã‚’1 ã‹ã‚‰ {0}ã®é–“ã§æŒ‡å®šã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "ã“ã®ãƒ•ãƒ¬ãƒ¼ãƒ ã«å¯¾ã™ã‚‹MO基底関数/係数データãŒã‚ã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "分å軌é“ã®å 有電å数データãŒã‚ã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã§ã¯ä¸€ã¤ã®åˆ†å軌é“ã—ã‹åˆ©ç”¨ã§ãã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} ã¯ãƒ¢ãƒ‡ãƒ«ãŒ1ã¤ã ã‘表示ã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} ã¯ãƒ¢ãƒ‡ãƒ«ãŒ1ã¤ã ã‘èªã¿è¾¼ã¾ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "データãŒã‚ã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Jmolã§MEPデータを表示ã™ã‚‹ã®ã«å¿…è¦ãªéƒ¨åˆ†é›»è·ãŒãƒ•ã‚¡ã‚¤ãƒ«ã‹ã‚‰èªã¿è¾¼ã¾ã‚Œã¦ã„ã¾ã›" +"ん。" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "å˜ä½æ ¼åãŒã‚ã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "数値を入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "æ•°ã¯({0} ã¾ãŸã¯ {1}) ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "å°æ•°ç‚¹æ•°ãŒ ({0} - {1}) ã®ç¯„囲を超ãˆã¦ã„ã¾ã™" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "'$' ã®å¾Œã«ã‚ªãƒ–ジェクトã®åå‰ã‚’指定ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "三点ã€åŽŸåå¼ã€ {0} ã€{1} ã¾ãŸã¯ {2}ã®ã„ãšã‚Œã‹ã§å¹³é¢ã‚’指定ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "プãƒãƒ‘ティã®åå‰ã‚’指定ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "空間群 {0} ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "æ–‡å—列を入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "æ–‡å—列をã¾ãŸã¯è˜åˆ¥åを入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "回転軸を指定ã™ã‚‹ãŸã‚ã®ç‚¹ã®æ•°ãŒå¤šã™ãŽã¾ã™" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "スクリプトã®ãƒ¬ãƒ™ãƒ«ãŒå¤šã™ãŽã¾ã™" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "èªè˜ã§ããªã„原åã®ãƒ—ãƒãƒ‘ティ" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "èªè˜ã§ããªã„çµåˆã®ãƒ—ãƒãƒ‘ティ" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "èªè˜ã§ããªã„命令" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "実行時ã«èªè˜ã§ããªã„表ç¾" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "èªè˜ã§ããªã„オブジェクト" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "èªè˜ã§ããªã„ {0} パラメーター" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" +"Jmol state スクリプトã§ã®èªè˜ã§ããªã„ {0} パラメーター (ã„ãšã‚Œã«ã›ã‚ˆè¨å®š)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "èªè˜ã§ããªã„SHOWパラメータ -- use {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "何を書ãã¾ã™ã‹? {0} ã¾ãŸã¯ {1} \"ファイルå\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "スクリプト エラー: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} 原åãŒå‰Šé™¤ã•ã‚Œã¾ã—ãŸ" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} æ°´ç´ çµåˆ" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "ファイル {0} ãŒä½œæˆã•ã‚Œã¾ã—ãŸ" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "{0} ã«å¯¾ã—ã¦ç„¡åŠ¹ãªã‚³ãƒ³ãƒ†ã‚ストã§ã™" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ æ•° æ•° æ•° } を入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "å¼ã®æœ€å¾Œã‚’指定ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "è˜åˆ¥åã¾ãŸã¯æ®‹åŸºã‚’指定ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "原åã®æŒ‡å®šãŒç„¡åŠ¹ã§ã™" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "鎖ã®æŒ‡å®šãŒç„¡åŠ¹ã§ã™" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "å¼ã®ãƒˆãƒ¼ã‚¯ãƒ³: {0}ãŒç„¡åŠ¹ã§ã™" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "モデルã®æŒ‡å®šãŒç„¡åŠ¹ã§ã™" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "{0}ã«å¯¾ã™ã‚‹ENDãŒã‚ã‚Šã¾ã›ã‚“" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "数値ã¾ãŸã¯å¤‰æ•°åを入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "残基 (ALA, AL?, A*) を指定ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} を入力ã—ã¦ãã ã•ã„" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} ã¯æƒ³å®šã•ã‚Œã¦ã„ã¾ã›ã‚“" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "èªè˜ã§ããªã„å¼ã®ãƒˆãƒ¼ã‚¯ãƒ³: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "èªè˜ã§ããªã„トークン: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} ストラットãŒè¿½åŠ ã•ã‚Œã¾ã—ãŸ" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} 原åãŒå‰Šé™¤ã•ã‚Œã¾ã—ãŸ" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "æ–°è¦çµåˆ {0} ; 変更 {1}" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "注æ„: 複数ã®ãƒ¢ãƒ‡ãƒ«ãŒã“ã®æŽ¥è§¦ã«é–¢ä¸Žã—ã¦ã„ã¾ã™ï¼" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "クリックã—ã¦ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’表示..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmolアプレット ãƒãƒ¼ã‚¸ãƒ§ãƒ³ {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"詳ã—ã㯠http://www.jmol.org ã‚’å‚ç…§ã—ã¦ãã ã•ã„" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "ファイルエラー:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "原åã¾ãŸã¯çµåˆã®å‰²ã‚Šå½“ã¦/æ–°è¦ä½œæˆ ({0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" +"最近ã®ã‚³ãƒ³ãƒ†ã‚ストメニューをãƒãƒƒãƒ—アップ表示ã™ã‚‹(å³ä¸‹ã®Jmolãƒã‚´ã‚’クリック)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "原åを削除ã™ã‚‹ ( {0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "çµåˆã‚’削除ã™ã‚‹ ( {0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "深度を調節ã™ã‚‹ (後é¢; {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "原åを移動ã™ã‚‹ ( {0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "ã™ã¹ã¦ã®DRAWオブジェクトトを移動ã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "特定ã®DRAWãƒã‚¤ãƒ³ãƒˆã‚’移動ã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "ラベルを移動ã™ã‚‹ ( {0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "移動ã—ã¦åˆ†åã‚’æ§‹é€ æœ€é©åŒ–ã™ã‚‹ ( {0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "移動ã—ã¦åˆ†åã‚’æ§‹é€ æœ€é©åŒ–ã™ã‚‹ ( {0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "é¸æŠžã•ã‚ŒãŸåŽŸåを移動ã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "Z軸方å‘ã«åŽŸåをドラッグã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "マウスを使ã£ã¦ãƒžãƒ«ãƒã‚¿ãƒƒãƒã‚’シミュレートã™ã‚‹" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "ナビゲーションãƒã‚¤ãƒ³ãƒˆã‚’平行移動 ({0} 㨠{1} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "原åã‚’é¸æŠžã™ã‚‹" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "原åを接続ã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "ç‰é«˜é¢ä¸Šã®ç‚¹ã‚’é¸æŠžã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "ラベルをé¸æŠžã—ã¦è¡¨ç¤º/éžè¡¨ç¤ºã‚’切り替ãˆã‚‹ ({0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "(計測を開始ã—ãŸå¾Œã¾ãŸã¯{0} ã®å¾Œã«)計測ã«å«ã‚ã‚‹ãŸã‚ã«åŽŸåã‚’é¸æŠžã™ã‚‹" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "( {0} ãŒå¿…è¦)ã«ç§»å‹•ã•ã›ã‚‹ãŸã‚ã«åŽŸåã‚’é¸æŠžã™ã‚‹" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "(計測ã®ãŸã‚ã«)DRAWãƒã‚¤ãƒ³ãƒˆã‚’é¸æŠžã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "完全ãªã‚³ãƒ³ãƒ†ã‚ストメニューをãƒãƒƒãƒ—アップ表示ã™ã‚‹" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "リセット (モデル以外ã®å ´æ‰€ã‚’クリックã—ãŸæ™‚)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "回転ã•ã›ã‚‹" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "çµåˆã®å›žã‚Šã«åˆ†æžã‚’回転ã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "é¸æŠžã•ã‚ŒãŸåŽŸåを回転ã•ã›ã‚‹ ( {0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "Z軸ã®å›žã‚Šã®å›žè»¢" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"Z軸ã®å›žã‚Šã®å›žè»¢(マウスã®æ¨ªæ–¹å‘移動) ã¾ãŸã¯è¡¨ç¤ºã®æ‹¡å¤§(マウスã®ç¸¦æ–¹å‘移動)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "原åã‚’é¸æŠžã—ã¦ãã ã•ã„ ( {0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "é¸æŠžã—ã¦åŽŸåをドラッグã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "ã“ã®åŽŸåã®ã‚°ãƒ«ãƒ¼ãƒ—ã®é¸æŠžã‚’解除ã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "é¸æŠžãªã— ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "é¸æŠžã•ã‚ŒãŸåŽŸåã®ã‚»ãƒƒãƒˆã«ã“ã®åŽŸåã®ã‚°ãƒ«ãƒ¼ãƒ—ã‚’è¿½åŠ ã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "é¸æŠžã‚’トグルã§åˆ‡ã‚Šæ›ãˆã‚‹ ( {0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"ã™ã¹ã¦ãŒé¸æŠžã•ã‚Œã¦ã„ã‚‹å ´åˆã¯ã™ã¹ã¦ã‚’é¸æŠžè§£é™¤ã—ã¦ãã ã•ã„。ã•ã‚‚ãªã‘ã‚Œã°ã€é¸æŠž" +"ã•ã‚ŒãŸåŽŸåã®é›†åˆã«ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã®åŽŸåã‚’è¿½åŠ ã—ã¦ãã ã•ã„。( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "原åã‚’é¸æŠžã—ã¦è¨ˆæ¸¬ã‚’開始ã¾ãŸã¯çµ‚了ã™ã‚‹" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "スラブを調節ã™ã‚‹ (å‰é¢; {0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "スラブ/深度ウィンドウを移動ã™ã‚‹ (両é¢; {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "ズーム(ウィンドウã®å³ç¸ã«æ²¿ã£ã¦ï¼‰" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "2点をクリックã—ã¦è»¸ã®å›žã‚Šã«å時計回りã«å›žè»¢ã•ã›ã‚‹ ({0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "2点をクリックã—ã¦è»¸ã®å›žã‚Šã«æ™‚計回りã«å›žè»¢ã•ã›ã‚‹ ({0}ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "動作をåœæ¢ã™ã‚‹ ( {0} ãŒå¿…è¦)" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "モデルを回転ã•ã›ã‚‹(スワイプã—ã¦ãƒœã‚¿ãƒ³ã‚’離ã™ã¨åŒæ™‚ã«åœæ¢ã—ã¾ã™)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "移動ã•ã›ã‚‹" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "ズーム" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "モデルを軸ã®å›žã‚Šã§å›žè»¢ã•ã›ã‚‹ãŸã‚ã«ã‚‚ã†ï¼‘ã¤ã®åŽŸåã‚’é¸æŠžã™ã‚‹" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "モデルを軸ã®å›žã‚Šã§å›žè»¢ã•ã›ã‚‹ãŸã‚ã«ï¼’ã¤ã®åŽŸåã‚’é¸æŠžã™ã‚‹" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "対称性ã®é–¢ä¿‚を表示ã™ã‚‹ãŸã‚ã«ã‚‚ã†ï¼‘ã¤ã®åŽŸåã‚’é¸æŠžã™ã‚‹" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "対称性ã®é–¢ä¿‚を表示ã™ã‚‹ãŸã‚ã«2ã¤ã®åŽŸåã‚’é¸æŠžã™ã‚‹" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ {0} ã«è¨å®šã™ã‚‹" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ‘スをè¨å®šã§ãã¾ã›ã‚“" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} 原åãŒéžè¡¨ç¤ºã§ã™" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} 原åãŒé¸æŠžã•ã‚Œã¦ã„ã¾ã™" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "ドラッグã—ã¦ãƒ©ãƒ™ãƒ«ã‚’移動" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "クリップボードã¯åˆ©ç”¨ã§ãã¾ã›ã‚“ -- ç½²å付ãアプレットを利用ã—ã¦ãã ã•ã„" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} 個ã®æ°´ç´ ãŒä»˜åŠ ã•ã‚Œã¾ã—ãŸ" + +#~ msgid "Hide Symmetry" +#~ msgstr "対称性をéžè¡¨ç¤º" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Jmolアプレットをèªã¿è¾¼ã‚“ã§ã„ã¾ã™ ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} 秒" + +#~ msgid "Java version:" +#~ msgstr "Java ãƒãƒ¼ã‚¸ãƒ§ãƒ³:" + +#~ msgid "1 processor" +#~ msgstr "1 プãƒã‚»ãƒƒã‚µ" + +#~ msgid "unknown processor count" +#~ msgstr "プãƒã‚»ãƒƒã‚µæ•°ã€€ä¸æ˜Ž" + +#~ msgid "Java memory usage:" +#~ msgstr "Java メモリ使用é‡:" + +#~ msgid "{0} MB free" +#~ msgstr "未使用 {0} MB" + +#~ msgid "unknown maximum" +#~ msgstr "最大値 ä¸æ˜Ž" + +#~ msgid "Open file or URL" +#~ msgstr "ファイルã¾ãŸã¯URLã‚’é–‹ã" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/jv.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/jv.po new file mode 100755 index 000000000000..c853617f93d6 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/jv.po @@ -0,0 +1,2585 @@ +# Javanese translation for jmol +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: zaenal arifin \n" +"Language-Team: Javanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol Script Console" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Tutup" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Bantu" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Ngluru..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Perintahe" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Matematiko & Fungsine" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Set &Parameters" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Luweh" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Penyusun" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Negoro" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Mblayu" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Ngresikno Output" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Ngresiki Input" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Petilasan" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Ngemot" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"pejet CTRL-ENTER kanggo garis anyar utowo templekno modele doto lan pejet " +"Load" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Messages pingen dipetuk'i ningkene. Enter commands in the box below. Click " +"the console Help menu item for on-line help, which will appear in a new " +"browser window." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol Script Editor" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konsolan" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Mengo" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Script" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Check" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" +"Duwur[as in \"go to the top\" - (translators: remove this bracketed part]" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Langkahe" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Mandeg sakmentoro" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Mbaleni meneh" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Berenti" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Resik" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Tutup" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "File utowo URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Type gambar" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG Quality ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG Compression ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG Quality ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "yo i" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Mboten" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Opo kowe pingin numpuki file {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Peringatno" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Sedoyo file" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Rak sido" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Mbatalke file pemilih dialog" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Rinci" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Direktori" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Mbukak pilihan direktori" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Kelengkapan" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Modifikasi" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Brekas turunan" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Jenenge" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "nami berkas" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "ukur" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Berkas seko Type:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Jenis" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Bantu" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Bantu FileChooser" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Berondo" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Daftar" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Ndelok ning:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +msgid "none" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol Script Console" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol Script Console" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Open local file" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Mengo" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"Deloki http://www.jmol.org for more information" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Berkase keliru:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Ngemot Jmol applet ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} seconds" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ko.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ko.po new file mode 100755 index 000000000000..affabdcb09ad --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ko.po @@ -0,0 +1,2617 @@ +# Translation file of the JmolApplet for Korean. +# Copyright (C) 1998-2008 The Jmol Development Team +# This file is distributed under the same license as the Jmol package. +# Won-Kyu Park , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: Jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Bundo \n" +"Language-Team: Korean \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol 스í¬ë¦½íŠ¸ 콘솔" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "파ì¼" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "닫기" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "ë„움ë§(&H)" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "찾기(&S)..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "ëª…ë ¹(&C)" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "수학 함수(&F)" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "파ë¼ë©”í„° ì„¤ì •(&P)" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "편집ìž" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "ìƒíƒœ" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "실행" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "ì¶œë ¥ 지우기" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "ìž…ë ¥ 지우기" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "기ë¡" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "불러옴" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"CTRL-ENTER를 누르면 다ìŒì¤„ë¡œ 넘어가며 í˜¹ì€ ëª¨ë¸ ë°ì´íƒ€ë¥¼ 붙여넣기한 í›„ì— ë¶ˆëŸ¬" +"ì˜´ì„ ëˆ„ë¥´ì„¸ìš”" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol 스í¬ë¦½íŠ¸ 편집기" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "콘솔" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "열기" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "ì•žë©´" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "스í¬ë¦½íŠ¸" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "검사" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "단계" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "멈춤" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "다시" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "ë내기" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "지우기" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "닫기" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "íŒŒì¼ í˜¹ì€ URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "그림 형ì‹" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG 화질 ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG 압축 ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG 품질 ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "확ì¸" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "취소" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "íŒŒì¼ {0}ì„(를) ë®ì–´ì“¸ê¹Œìš”?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "주ì˜" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "ëª¨ë“ íŒŒì¼" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "취소" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "íŒŒì¼ ì„ íƒ ëŒ€í™”ì°½ 취소" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "ìžì„¸ížˆ" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "ë””ë ‰í† ë¦¬" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "ì„ íƒëœ ë””ë ‰í† ë¦¬ 열기" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "ì†ì„±" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "ìˆ˜ì •ë¨" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "ì¼ë°˜ 파ì¼" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "ì´ë¦„" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "íŒŒì¼ ì´ë¦„:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "í¬ê¸°" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "íŒŒì¼ í˜•ì‹:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "종류" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "ë„움ë§" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "íŒŒì¼ ì„ íƒê¸° ë„움ë§" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "홈" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "목ë¡" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "보기 ë°©ì‹:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "새 í´ë” 만들기 실패" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "새 í´ë”" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "새 í´ë” 만들기" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "ì„ íƒí•œ íŒŒì¼ ì—´ê¸°" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "ì €ìž¥" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "ì„ íƒí•œ íŒŒì¼ ì €ìž¥" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "ê°±ì‹ " + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "ë””ë ‰í† ë¦¬ 리스트 ê°±ì‹ " + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "위로" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "ìƒìœ„ í´ë”" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "확ì¸" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "미리보기" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "ëª¨ë¸ ì¶”ê°€" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "ì•„ëžì–´" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "카탈로니아어" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "체코어" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "ë´ë§ˆí¬ì–´" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "ë…ì¼ì–´" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "그리스어" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "ì˜êµ ì˜ì–´" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "ë¯¸êµ ì˜ì–´" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "스페ì¸ì–´" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "ì—ìŠ¤í† ë‹ˆì•„ì–´" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "프랑스어" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "í—가리어" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "ì¸ë„네시아어" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "ì´íƒˆë¦¬ì•„ì–´" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "ì¼ë³¸ì–´" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "í•œêµì–´" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "노르웨ì´ì–´" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "네ë¸ëž€ë“œì–´" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "오시탄어" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "í´ëž€ë“œì–´" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "í¬ë£¨íˆ¬ê°ˆì–´" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "í¬ë£¨íˆ¬ê°ˆì–´(브ë¼ì§ˆ)" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "러시아어" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "ìŠ¬ë¡œë² ë‹ˆì•„ì–´" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "스웨ë´ì–´" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "터키어" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "ìš°í¬ë¼ì´ë‚˜ì–´" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "중êµì–´ ê°„ì²´" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "중êµì–´ 번체" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "í¬ìŠ¤í•„ë“œ {0}ì„(를) 위한 í´ëž˜ìŠ¤ë¥¼ ê°€ì ¸ì˜¬ 수 ì—†ìŒ" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "아무 ì›ìžë„ ì„ íƒì•ˆë¨ -- 실행 안함!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} ì›ìžë¥¼ 최ì í™”í•˜ë ¤ 함" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "í¬ìŠ¤í•„ë“œ {0}(ì„)를 ì„¤ì •í• ìˆ˜ ì—†ìŒ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "중앙" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "ì—†ìŒ" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "모ë‘" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} 프로세서" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "ì´ {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB 최대" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol 스í¬ë¦½íŠ¸ 콘솔" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "마우스 설명서" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "번ì—" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "시스템" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "ì›ìž ì—†ìŒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "구성" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "ì›ì†Œ" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "모ë¸/í”„ë ˆìž„" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "언어" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Residue ì´ë¦„으로" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "HETATM으로" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "대ì¹" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "ëª¨ë¸ ì •ë³´" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "ì„ íƒ ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "ì „ì²´ {0} 모ë¸" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "구성 ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "{0} 모ë¸ì˜ ì½œë ‰ì…˜" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "ì›ìž: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "ê²°í•©: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "그룹: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "ì²´ì¸: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "중합체: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "ëª¨ë¸ {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "ë·° {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "주 메뉴" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "ë°”ì´ì˜¤ë¶„ìž" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "ë°”ì´ì˜¤ë¶„ìž {0} ({1}ê°œ ì›ìž)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "ë°”ì´ì˜¤ë¶„ìž {0} 부르기 ({1}ê°œ ì›ìž)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "ì—†ìŒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "ì„ íƒí•œ 것만 보기" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "ì„ íƒ ë°˜ì „" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "보기" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "ì•žë©´" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "왼쪽" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "오른쪽" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "아래" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "ë’·ë©´" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "축" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "축" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "축" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "축" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "축" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "축" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "단백질" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "백본" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "ê³ê°€ì§€ ì²´ì¸" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "극성 Residues" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "무극성 Residues" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "기본 Residues (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "산성 Residues (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "ë¬´ì „í•˜ Residues" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "핵산" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "염기" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT ì§" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC ì§" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU ì§" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "ì œ2 스트ëŸì³" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "헤테로" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "PDBì˜ ëª¨ë“ \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "ëª¨ë“ ìš©ë§¤" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "ëª¨ë“ ë¬¼ë¶„ìž" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Nonaqueous 용매" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "리간드" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "탄수화물" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "ìœ„ì— ì—†ìŒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "ì†ì„±" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "형ì‹" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK 공간채움" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "ê³µ 막대기" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "막대기" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "뼈대" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "카툰" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "íŠ¸ë ˆì´ìŠ¤" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "ì›ìž" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "ë”" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% ë°˜ë°ë¥´ë°œìŠ¤" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "ê²°í•©" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "켬" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "수소 ê²°í•©" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "계산" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "스트ëŸì³" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "카본 로켓" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "리본" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "로켓" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "진ë™" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "벡터" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} 픽셀" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "ìŠ¤ì¼€ì¼ {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "ìž…ì²´" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "빨강+시안 안경" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "빨강+파랑 안경" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "빨강+녹색 안경" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Cross-eyed 보기" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Wall-eyed 보기" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "표지" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "ì›ì†Œê¸°í˜¸ë¡œ" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "ì›ìžì´ë¦„으로" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "ì›ìž 번호로" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "ì›ìžì— ë²ˆí˜¸ì§€ì •" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "가운ë°" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "ìš°ìƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "우하" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "좌ìƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "좌하" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "색ìƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "ì›ì†Œ (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "다른 위치" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "분ìž" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Formal ì „í•˜" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "부분 ì „í•˜" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "ì˜¨ë„ (ìƒëŒ€ì )" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "ì˜¨ë„ (ì ˆëŒ€ê°’)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "아미노산" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "ì²´ì¸" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "그룹" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "모노머" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "ìƒì†" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "ê²€ì •" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "í°ìƒ‰" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "시안" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "빨강" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "ì˜¤ë Œì§€" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "노랑" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "녹색" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "파랑" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "ì¸ë””ê³ " + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "ë³´ë¼" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "연어살색" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "올리브" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "진한빨강" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "회색" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "ì—°ì²" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "금색" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "ì—°ë³´ë¼" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "불투명으로" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "투명으로" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "ë°°ê²½" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "표면" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "축" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "경계ìƒìž" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "단위 cell" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "확대" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "확대" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "축소" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "íšŒì „" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "X축 íšŒì „" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Y축 íšŒì „" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Z축 íšŒì „" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "FPS ì„¤ì •" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "ë™ì˜ìƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "ë™ì˜ìƒ 모드" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "한번만" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "왔다갔다" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "반복" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "재ìƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "ì •ì§€" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "ë‹¤ìŒ ìž¥ë©´" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "ì´ì „ 장면" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "ë˜ê°ê¸°" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "반대로" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "재시작" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "ì¸¡ì •" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "ì‹œìž‘í•˜ê³ ë낼때 ë”블 í´ë¦ì„ 누름" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "í´ë¦í•˜ë©´ 거리 ì¸¡ì •" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "í´ë¦í•˜ë©´ ê°ë„ ì¸¡ì •" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "í´ë¦í•˜ë©´ 꼬ì¸ê° (ì´ë©´ê°) ì¸¡ì •" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "ì¸¡ì • 지우기" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "ì¸¡ì • 리스트" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "길ì´ë‹¨ìœ„ 나노미터" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "ê¸¸ì´ ë‹¨ìœ„ 옹스트롬" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "ê¸¸ì´ ë‹¨ìœ„ 피코미터" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "ì„ íƒ ì„¤ì •" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "가운ë°" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "ì‹ë³„ìž" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "표지" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "ì›ìž ì„ íƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "ì²´ì¸ ì„ íƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "ì›ì†Œ ì„ íƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "그룹 ì„ íƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "ë¶„ìž ì„ íƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "사ì´íŠ¸ ì„ íƒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "보기" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol 스í¬ë¦½íŠ¸ 콘솔" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "íŒŒì¼ ë‚´ìš©" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "íŒŒì¼ í—¤ë”" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Isosurface JVXL ë°ì´í„°" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "ë¶„ìž ì˜¤ë¹„íƒˆ JVXL ë°ì´í„°" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "모ë¸" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "ë°°í–¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "공간 그룹" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "현재 ìƒíƒœ" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "파ì¼" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "다시 ì½ê¸°" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "PDBì—ì„œ 열기" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "ì„ íƒí•œ íŒŒì¼ ì—´ê¸°" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "열기" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "ì „ì²´ 단위 ì„¸í¬ ë¶ˆëŸ¬ì˜¤ê¸°" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "{0}ì˜ ë³µì‚¬ë³¸ì„ ì €ìž¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "ìƒíƒœë¥¼ 스í¬ë¦½íŠ¸ë¡œ ì €ìž¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "기ë¡ì„ 스í¬ë¦½íŠ¸ë¡œ ì €ìž¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "{0} ì´ë¯¸ì§€ 내보내기" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "{0} 3D ëª¨ë¸ ë‚´ë³´ë‚´ê¸°" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "ì—°ì‚°" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "최ì í™” 구조" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "MOL í…Œì´íƒ€ 추출" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "ì í¬ë©´" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "ë°˜ë°ë¥´ë°œìŠ¤ 표면" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "ë¶„ìž í‘œë©´" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "용매 표면 ({0}-옹스트롬 프로브)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Solvent-Accessiable 표면 (VDW + {0} 옹스트롬)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "다시부르기 {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "{0} 다시ì½ê¸° + {1} 보기" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "숨기기" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "ì " + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "픽셀 너비" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "옹스트롬 너비" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "ì„ íƒ í‘œì‹œ" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "수소 보기" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "ì¸¡ì • 보기" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "ì›ê·¼ 깊ì´" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol색" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "ì •ë³´..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "스í¬ë¦½íŠ¸ 컴파ì¼ëŸ¬ 오류: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "x y z 축 í•„ìš”" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "ì¸ìž 개수 오류" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "밀러 지수는 ëª¨ë“ ê°’ì´ 0ì¼ ìˆ˜ ì—†ìŒ" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "ìž˜ëª»ëœ [R,G,B] 색ìƒ" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "부울린값 í•„ìš”" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "부울린 í˜¹ì€ ìˆ«ìž í•„ìš”" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "부울린, ìˆ«ìž í˜¹ì€ {0} í•„ìš”" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "ìƒ‰ìƒ í•„ìš”" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "ìƒ‰ìƒ í˜¹ì€ íŒ”ë ˆíŠ¸ ì´ë¦„ (Jmol, Rasmol)ì´ í•„ìš”" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "ëª…ë ¹ì´ í•„ìš”í•¨" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "그림 ê°ì²´ê°€ ì •ì˜ ì•ˆë¨" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "예ìƒì¹˜ì•Šì€ 스í¬ë¦½íŠ¸ ëª…ë ¹" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "ìœ íš¨í•œ (ì›ìž 표현ì‹) í•„ìš”" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(ì›ìž 표현ì‹) í˜¹ì€ ì •ìˆ˜ í•„ìš”" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "íŒŒì¼ ì´ë¦„ í•„ìš”" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "íŒŒì¼ ì—†ìŒ" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "비호환 ì¸ìž" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "부족한 ì¸ìž" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "ì •ìˆ˜ê°€ í•„ìš”" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "ì •ìˆ˜ê°€ ë²”ìœ„ì— ë²—ì–´ë‚¨ ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "ìž˜ëª»ëœ ì¸ìž" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "ìž˜ëª»ëœ ì¸ìž 순서" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "키워드 í•„ìš”" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "MO 계수 ì •ë³´ ì—†ìŒ" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "1ì—ì„œ {0} 사ì´ì˜ MO ì§€ì •ê°’ì´ í•„ìš”í•¨" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "현재 í”„ë ˆìž„ì— ëŒ€í•œ MO basis/계수 ì •ë³´ê°€ ì—†ìŒ" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "MO ì ìœ ê°’ì´ ì—†ìŒ" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "단 í•˜ë‚˜ì˜ ë¶„ìžê¶¤ë„ê°€ 있습니다" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0}(ì€)는 단 í•˜ë‚˜ì˜ ëª¨ë¸ë§Œ 표시ë¨" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "아무 ì •ë³´ê°€ ì—†ìŒ" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"부분 ì „í•˜ ì •ë³´ê°€ 없습니다; Jmolì€ MEP ì •ë³´ë¥¼ 보여주기 위해 ì´ ì •ë³´ê°€í•„ìš”í•©ë‹ˆ" +"다." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "단위 cell ì—†ìŒ" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "ìˆ«ìž í•„ìš”" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "ìœ íš¨í•œ 숫ìžëŠ” ({0} í˜¹ì€ {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "ì‹ì§„수가 ë²”ìœ„ì— ë²—ì–´ë‚¨ ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "'$' ë’¤ì— ê°ì²´ ì´ë¦„ì´ í•„ìš”" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "í‰ë©´ì´ 필요함 -- ì„¸ê°œì˜ ì í˜¹ì€ ì›ìž í‘œí˜„ì‹ í˜¹ì€ {0} í˜¹ì€ {1} í˜¹ì€ {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "ì†ì„± ì´ë¦„ í•„ìš”" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "공간 그룹 {0}(ì„)를 ì°¾ì„ ìˆ˜ ì—†ìŒ" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "따옴표로 ê°ì‹¼ 문ìžì—´ í•„ìš”" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "ì¸ìš©ëœ 문ìžì—´ í˜¹ì€ ì§€ì •ìž í•„ìš”" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "너무 ë§Žì€ íšŒì „ í¬ì¸íŠ¸ê°€ ì§€ì •ë¨" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "너무 ë§Žì€ ìŠ¤í¬ë¦½íŠ¸ 단계" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "모르는 ì›ìž ì†ì„±" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "모르는 ê²°í•© ì†ì„±" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "모르는 ëª…ë ¹" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "런타임시 ì¸ì‹ì•ˆë˜ëŠ” 표현ì‹" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "모르는 ê°ì²´" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "ì´í•´í• 수 없는 {0} 파ë¼ë©”í„°" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "SHOW ì¸ìžê°€ ì¸ì‹ì•ˆë¨ -- {0} 사용" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "ë¬´ì—‡ì„ ì“°ë‚˜ìš”? {0} í˜¹ì€ {1} \"파ì¼ì´ë¦„\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "스í¬ë¦½íŠ¸ 오류: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} ì›ìž 지움" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} 수소 ê²°í•©" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "{0}ì— ëŒ€í•œ ìž˜ëª»ëœ ì»¨í…스트" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ ìˆ«ìž ìˆ«ìž ìˆ«ìž } í•„ìš”" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "수ì‹ì˜ ëì´ ìš”êµ¬ë¨" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "ì‹ë³„ìž í˜¹ì€ residue ì§€ì •ì´ í•„ìš”í•¨" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "ìž˜ëª»ëœ ì›ìž ì§€ì •" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "ìž˜ëª»ëœ ì²´ì¸ ì§€ì •" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "ìž˜ëª»ëœ ìˆ˜ì‹ í† í°: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "ìž˜ëª»ëœ ëª¨ë¸ ì§€ì •" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "{0}ì— ENDê°€ 없습니다" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "ìˆ«ìž í˜¹ì€ ë³€ìˆ˜ ì´ë¦„ì´ í•„ìš”" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0}ì´(ê°€) 필요함" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0}ì€(는) 불필요함" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "ì´í•´í• 수 없는 ìˆ˜ì‹ í† í°: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "ì´í•´í• 수 없는 í† í°: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, fuzzy, java-format +msgid "{0} struts added" +msgstr "{0} ì›ìž 숨김" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} 결함 ì œê±°" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} 새 ê²°í•©: {1} 변경ë¨" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol ì• í”Œë¦¿ ë²„ì „ {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"ë” ë§Žì€ ì •ë³´ëŠ” http://www.jmol.org를 참조하세요" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "íŒŒì¼ ì˜¤ë¥˜:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "íšŒì „" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "번ì—" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "확대" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "축ìƒìœ¼ë¡œ ëŒë¦¬ê¸°ìœ„í•´ 하나 í˜¹ì€ ë” ë§Žì€ ì›ìžë¥¼ ê³ ë¥´ì„¸ìš”" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "모ë¸ì„ 축ìƒìœ¼ë¡œ íšŒì „í•˜ê¸° 위해 ë‘ê°œì˜ ì›ìžë¥¼ ê³ ë¥´ì„¸ìš”" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} ì›ìž 숨김" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} ì›ìž ì„ íƒ" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid "Hide Symmetry" +#~ msgstr "ëŒ€ì¹ ìˆ¨ê¸°ê¸°" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Jmol ì• í”Œë¦¿ 부르기 ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} ì´ˆ" + +#~ msgid "Java version:" +#~ msgstr "ìžë°” ë²„ì „:" + +#~ msgid "1 processor" +#~ msgstr "1 프로세서" + +#~ msgid "unknown processor count" +#~ msgstr "프로세서 개수 모름" + +#~ msgid "Java memory usage:" +#~ msgstr "ìžë°” 메모리 ìƒí™©:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB ì—¬ìœ " + +#~ msgid "unknown maximum" +#~ msgstr "최대 모름" + +#~ msgid "Open file or URL" +#~ msgstr "íŒŒì¼ ë˜ëŠ” URL 열기" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ms.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ms.po new file mode 100755 index 000000000000..15dc9ccf263a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ms.po @@ -0,0 +1,2641 @@ +# Malay translation for jmol +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: abuyop \n" +"Language-Team: Malay \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Unsur?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Konsol Skrip Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Fail" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Tutup" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Bantuan" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Gelintar..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Perintah" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Fungsi Matematik" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Tetapkan &Parameter" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Lagi" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Penyunting" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Keadaan" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Jalankan" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Kosongkan Output" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Kosongkan Input" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Sejarah" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Muat" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"tekan CTRL-ENTER untuk baris baru atau tampal data model dan tekan Muat" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Mesej akan muncul disini. Masukkan perintah didalam kotak dibawah. Klik pada " +"konsol item menu Bantuan untuk bantuan atas-talian, yang mana akan muncul " +"didalam tetingkap pelayar baru." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Penyunting Skrip Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konsol" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Buka" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Hadapan" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Skrip" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Semak" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Atas[sebagaimana \"pergi ke atas\"" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Langkah" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Jeda" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Sambung" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Henti" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Kosongkan" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Tutup" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Fail atau URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Jenis Imej" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Kualiti JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Pemampatan PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Kualiti PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Ya" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Tidak" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Anda ingin menulis-ganti fail {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Amaran" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Semua Fail" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Batal" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Henti paksa dialog pemilih fail" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Perincian" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Direktori" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Buka direktori pilihan" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Atribut" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Diubahsuai" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Fail Generik" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nama" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Nama Fail:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Saiz" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Jenis Fail:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Jenis" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Bantuan" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Bantuan Pemilih Fail" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Rumah" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Senarai" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Lihat Dalam:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Ralat mencipta folder baru" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Folder Baru" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Cipta Folder Baru" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Buka fail pilihan" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Simpan" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Simpan fail pilihan" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Simpan Dalam:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Kemaskini" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Kemaskini penyenaraian direktori" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Naik" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Naik Satu Aras" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Pratonton" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Tambah model" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "Karton PDB" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"PERHATIAN: Kedudukan tulang belakang hidrogen amida adalah hadir dan akan " +"diabaikan. Kedudukan mereka akan dianggarkan, sebagaimana didalam analisis " +"DSSP piawai.\n" +"Guna {0} untuk tidak gunakan anggaran ini.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"PERHATIAN: Kedudukan tulang belakang hidrogen amida adalah hadir dan akan " +"digunakan. Keputusan akan berbeza sedikit daripada analisis DSSP piawai.\n" +"Guna {0} untuk abaikan kedudukan hidrogen ini.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arab" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturia" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "Azerbaijan" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosnia" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Catalan" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Czech" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Denmark" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Jerman" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Yunani" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Inggeris Australia" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Inggeris Britain" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Inggeris Amerika" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Sepanyol" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estonia" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "Basque" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finland" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Faroese" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Perancis" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Frisian" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Galician" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Croatia" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Hungari" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armenia" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesia" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Itali" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Jepun" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Jawa" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Korea" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Melayu" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norwegian Bokmal" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Belanda" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitan" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Poland" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugis" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Portugis Brazil" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Rusia" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Slovenia" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbia" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Sweden" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turki" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uighur" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukraine" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Uzbek" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Cina Ringkas" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Cina Tradisional" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Tidak dapat kelas untuk medan kuasa {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Tiada atom dipilih -- tiada apa dilakukan!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atom akan diminimumkan." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "tidak dapat pasang medan kuasa {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "baru" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "buat asal (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "buat semula (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "tengah" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "tambah hidrogen" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimakan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "baiki hidrogen dan minimumkan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "kosongkan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "simpan fail" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "simpan keadaan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "Songsangkan gelang stereokimia" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "padam atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "seret ke ikatan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "seret atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "seret atom (dan minimakan)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "seret dan minimumkan molekul (labuhkan)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "naikkan cas" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "kurangkan cas" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "padam ikatan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "tunggal" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "ganda dua" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "ganda tiga" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "tingkatkan tertib" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "kurangkan tertib" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "putar ikatan (SHIFT-SERET)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "keluar dari mod kit model" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Kumpulan Ruang" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Tiada" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Semua" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "Pemproses {0}" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB keseluruhan" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB maksimum" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Konsol Skrip Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Panduan Tetikus" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Terjemahan" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistem" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Tiada atom dimuatkan" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Konfigurasi" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Unsur" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Model/Bingkai" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Bahasa" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Mengikut Nama Residu" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Berdasarkan HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Petala Molekul ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Simetri" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Maklumat model" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Pilih ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Semua {0} model" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Konfigurasi ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Koleksi dari {0} model" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atom: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "ikatan: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "kumpulsn: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "rantaian: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polimer: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Paparan {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menu Utama" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolekul" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolekul {0} ({1} atom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "muatkan biomolekul {0} ({1} atom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Tiada" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Papar Dipilih Sahaja" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Terbalik Pemilihan" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Papar" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Hadapan" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Kiri" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Kanan" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Atas" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Bawah" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Undur" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Paksi" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Paksi" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Paksi" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Paksi" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Paksi" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Paksi" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Protein" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Tulang Belakang" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Rantai Sisi" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Residu Kutub" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Residu Bukan Kutub" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Residu Asas (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Residu Berasid (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Residu Tidak Dicas" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nukleik" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Asas" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Pasangan AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Pasangan GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Pasangan AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Struktur Sekunder" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Semua PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Semua Pelarut" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Semua Air" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Pelarut Bukan-Air" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "HETATM Bukan-Air" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligan" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Karbohidrat" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Tiada seperti diatas" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Gaya" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Skema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "Isian Ruang CPK" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Bola dan Kayu" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Ranting" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Bingkai Wayar" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Kartun" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Surih" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Dimatikan" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Ikatan" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Dihidupkan" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Kira Hidrogen" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Kira" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Tetapkan Rantai Sisi Ikatan-H" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Tetapkan Tulang Belakang Ikatan-H" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Ikatan Disulfida" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Tetapkan Rantai Sisi Ikatan-SS" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Tetapkan Tulang Belakang Ikatan-SS" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Struktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Roket Karton" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Reben" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Roket" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Bebenang" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Getaran" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektor" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Spektra" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} piksel" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Skala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereografik" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Kaca Merah+Sian" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Kaca Merah+Biru" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Kaca Merah+Hijau" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Pemaparan mata-silang" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Pemaparan mata-dinding" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Label" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Dengan Simbol Unsur" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Dengan Nama Atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Dengan Nombor Atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Kedudukan Label Atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Ditengah" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Kanan Atas" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Kanan Bawah" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Kiri Atas" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Kiri Bawah" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Warna" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Berdasarkan Skema" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Unsur (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Lokasi Alternatif" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekul" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Cas Formal" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Cas Separa" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Suhu (Relatif)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Suhu (Tetap)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Acid Amino" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Rantai" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Kumpulan" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Berbentuk" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Warisi" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Hitam" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Putih" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Sian" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Merah" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Jingga" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Kuning" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Hijau" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Biru" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Ungu" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Salmon" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Hijau Zaitun" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Merah Manggis" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Kelabu" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Biru Loh" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Emas" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orkid" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Jadikan Legap" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Jadikan Lutsinar" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Latar belakang" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Permukaan" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Paksi" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Kotak Ikatan" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Sel unit" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zum" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Zum Masuk" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Zum Keluar" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Putar" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Tetapkan Kadar X" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Tetapkan Kadar Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Tetapkan Kadar Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Tetapkan FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animasi" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Mod Anijmasi" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Main Sekali" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Gelung" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Main" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Henti" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Bingkai Berikut" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Bingkai Terdahulu" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Ulang" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Undur" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Mula Semula" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Pengukuran" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Dwi-Klik untuk mula dan akhirkan semua pengukuran" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Klik untuk pengukuran jarak" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Klik untuk pengukuran sudut" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Klik untuk pengukuran torsion (dihedral)" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Klik dua atom untuk paparkan jujukan didalam konsol" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Padam pengukuran" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Senarai pengukuran" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Unit jarak nanometer" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Unit jarak Angstroms" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Unit jarak pikometer" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Tetapkan pengambilan" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Tengah" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identiti" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Label" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Pilih atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Pilih rantai" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Pilih unsur" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "keluar dari mod kit model" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Pilih kumpulan" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Pilih molekul" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Pilih laman" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Papar operasi simetri" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Papar" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Konsol Skrip Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Kandungan Fail" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Pengepala Fail" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Data Isosurface JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Data JVXL orbital molekul" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientasi" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Kumpulan ruang" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Keadaan semasa" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Fail" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Muat semula" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Buka dari PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Buka fail pilihan" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Buka" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Muatkan sel unit penuh" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Buka skrip" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Simpan Salinan {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Simpan skrip dengan keadaan" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Simpan skrip dengan sejarah" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Eksport {0} imej" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Simpan sebagai fail JMOL (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Simpan isosurface JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Eksport {0} model 3D" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Pengiraan" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimumkan struktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Kit model" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Ekstrak data MOL" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Permukaan Titik" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "Permukaan van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Permukaan Molekul" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Permukaan Pelarut ({0}-Angstrom probe)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Permukaan Pelarut-Boleh-Capai (VDW + {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Muat semula {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Muat semula {0} + Papar {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Muat semula + Polyhedra" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Sembunyi" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Berbintik" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Lebar Piksel" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Lebar Angstrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Pemilihan Halo" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Papar Hidrogen" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Papar Pengukuran" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Kedalaman Perspektif" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Warna RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Perihal..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "Ralat pengompil skrip: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "paksi x y z dijangka" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} tidak dibenarkan dengan model latar belakang dipaparkan" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "Kiraan argumen teruk" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Indeks Miller tidak boleh semua kosong." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "warna [R,G,B] teruk" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "boolean dijangka" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "boolean atau nombor dijangka" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "boolean, nombor, atau {0} dijangka" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "tidak dapat tetapkan nilai" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "warna dijangka" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "nama palet atau warna (Jmol, Rasmol) diperlukan" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "perintah dijangka" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} atai $name atau (ungkapan atom) diperlukan" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "objek lukis tidak ditakrif" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "Pengakhiran perintah skrip tidak dijangka" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "(ungkapan atom) sah dijangka" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(ungkapan atom) atau integer dijangka" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "nama fail dijangka" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "fail tidak ditemui" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "argumen tidak serasi" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "argumen tidak mencukupi" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "integer dijangka" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "integer diluar julat ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "argumen tidak sah" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "Tertib parameter tidak sah" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "kata kunci dijangka" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "tiada data pemalar MO tersedia" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Indeks MO dari 1 ke {0} diperlukan" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "tiada data pemalar MO tersedia untuk bingkai ini" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "tiada data kependudukan MO tersedia" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Hanya satu petala molekul tersedia dalam fail ini" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} perlukan hanya satu model dipaparkan" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} perlukan hanya satu model dimuatkan" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Tiada data tersedia" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Tiada cas separa dibaca dari fail; Jmol perlukan ini untuk terapkan data MEP." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Tiada sel unit" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "nombor dijangka" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "nombor mesti ({0} atau {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "bilangan desimal di luar julat ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "nama objek dijangka selepas '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"satah dijangka -- sama ada tiga titik atau ungkapan atom atau {0} atau {1} " +"atau {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "nama ciri-ciri dijangka" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "kumpulan ruang {0} tidak ditemui." + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "rentetan terpetik dijangka" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "pengecam atau rentetan terpetik dijangka" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "terlalu banyak titik putaran ditentukan" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "terlalu banyak aras skrip" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "ciri-ciri atom tidak dikenalpasti" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "ciri-ciri ikatan tidak dikenalpasti" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "perintah tidak dikenalpasti" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "ungkapan masa-jalan tidak dikenalpasti" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "objek tidak dikenalpasti" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "parameter {0} tidak dikenali" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "parameter {0} tidak dikenali didalam skrip keadaan Jmol (tetapkan jua)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "Parameter SHOW tidak dikenalpasti -- guna {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "tulis apa? \"nama fail\" {0} atau {1}" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "RALAT skrip: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atom dipadam" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} ikatan hidrogen" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "fail {0} dicipta" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "konteks tidak sah untuk {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ number number number } dijangka" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "pengakhiran ungkapan tidak dijangka" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "pengecam atau spesifikasi residu dijangka" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "spesifikasi atom tidak sah" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "spesifikasi rantaian tidak sah" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "token ungkapan tidak sah: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "spesifikasi model tidak sah" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "hilang END untuk {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "nombor atau nama pembolehubah dijangka" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "spesifikasi residu (ALA ,AL?, A*) dijangka" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} dijangka" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} tidak dijangka" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "Token ungkapan tidak dikenali: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "Token tidak dikenali: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} struts ditambah" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} sambungan dipadam" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} ikatan baru; {1} diubahsuai" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Perhatian: Lebih dari satu model terlibat dalam kenalan ini!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Klik pada menu..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Aplet Jmol versi {0} {1}.\n" +"\n" +"Merupakan projek OpenScience.\n" +"\n" +"Lihat http://www.jmol.org untuk maklumat lanjut" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Ralat Fail:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "atom atau ikatan diumpukkan/baru (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "timbulkan menu konteks terkini (klik pada frank Jmol)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "padam atom (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "padam ikatan (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "laras kedalaman (belakang satah; perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "alih atom (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "alih keseluruhan objek LUKIS (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "alih titik LUKIS tertentu (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "alih label (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "alih atom dan minimumkan molekul (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "alih dan minimumkan molekul (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "alih atom pilihan (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "seret atom dalam arah Z (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simulasi sentuhan-berbilang menggunakan tetikus)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "terjemah titik navigasi (perlukan {0} dan {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "ambil atom" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "sambung atom (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "ambil titik ISOSURFACE (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "ambil label untuk togolkannya tersembunyi/paparkan (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"ambil atom untuk sertakannya didalam pengukuran (selepas memulakan " +"pengukuran atau selepas {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "ambil titik atau atom untuk dinavigasikan (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "ambil titik LUKIS (untuk pengukuran) (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "timbulkan menu konteks penuh" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "tetap (bila diklik diluar dari model)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "putar" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "putar ranting disekitar ikatan (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "putar atom pilihan (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "putar Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "putar Z (gerakan melintang tetikus) atau zum (gerakan menegak tetikus)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "alih satu atom (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "pilih dan seret atom (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "nyahpilih kumpulan atom ini (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "pilih TIADA (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "tambah kumpulan atom ini untuk tetapkan atom pilihan (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "togol pemilihan (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"jika semua dipilih, nyahpilih semua, jika tidak tambah kumpulan atom ini " +"untuk tetapkan atom pilihan (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "ambil satu atom untuk mulakan atau tentukan pengukuran" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "laras loh (satah hadapan; perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "alih loh/kedalaman tetingkap (kedua-dia satah; perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zum (sepanjang bucu kanan tetingkap)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"klik pada dua titik untuk putar disekeliling paksi lawan jam (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"klik pada dua titik untuk putar disekeliling paksi ikut jam (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "henti gerakan (perlukan {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" +"model putar (leret dan lepaskan butang dan hentikan gerakan secara serentak)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "terjemah" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "zum" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" +"ambil lebi dari satu atom dalam tertib untuk putarkan model mengelilingi " +"paksi" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "ambil dua atom dalam tertib untuk putarkan model mengelilingi paksi" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "ambil dua atom dalam tertib untuk paparkan hubungan simetri" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" +"ambil dua atom dalam tertib untuk paparkan hubungan simetri diantara mereka" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Tetapkan fail log ke {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Tidak dapat tetapkan laluan log fail." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atom tersembunyi" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atom dipilih" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Seret untuk alihkan label" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "papan keratan tidak boleh dicapai -- guna aplet terdaftar" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} hidrogen ditambah" + +#~ msgid "Hide Symmetry" +#~ msgstr "Sembunyi Simetri" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Memuatkan aplet Jmol ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} saat" + +#~ msgid "Java version:" +#~ msgstr "Versi Java:" + +#~ msgid "1 processor" +#~ msgstr "Pemproses 1" + +#~ msgid "unknown processor count" +#~ msgstr "kiraan pemproses tidak diketahui" + +#~ msgid "Java memory usage:" +#~ msgstr "Penggunaan ingatan Java" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB bebas" + +#~ msgid "unknown maximum" +#~ msgstr "maximum tidak diketahui" + +#~ msgid "Open file or URL" +#~ msgstr "Buka fail atau URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/nb.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/nb.po new file mode 100755 index 000000000000..71e57c3b1e2d --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/nb.po @@ -0,0 +1,2590 @@ +# Norwegian Bokmal translation for jmol +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Anders Oftedal \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Element ?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "jmol skriptkonsoll" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Lukk" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Hjelp" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Søk..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Kommandoer" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Mer" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Redigeringsverktøy" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Status" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Kjør" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historikk" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Last inn" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"trykk CTRL-ENTER for ny linje eller lim inn modelldata og trykk last inn" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konsoll" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Ã…pne" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Foran" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Skript" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Steg" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pause" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Gjenoppta" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Stans" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Tøm" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Lukk" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Fil eller URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Bildetype:" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG Kvalitet ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG komprimering ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG Kvalitet ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Ja" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Nei" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Vil du overskrive filen ({0})?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Advarsel" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Alle filer" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Avbryt" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Detaljer" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Mappe" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Ã…pne valgt mappe" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Attributter" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Endret" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Navn" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Filnavn:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Størrelse" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Filer av typen:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Type" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Hjelp" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Hjem" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Liste" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Se i:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Klarte ikke Ã¥ opprette ny mappe" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Ny mappe" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Opprett ny mappe" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Ã…pne valgt fil" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Lagre" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Lagre valgt fil" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Lagre i:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Oppdater" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Opp" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Opp et nivÃ¥" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "ForhÃ¥ndsvisning" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arabisk" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Katalansk" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Tsjekkisk" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Dansk" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Tysk" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Gresk" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Engelsk (Storbritannia)" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Engelsk (Amerikansk)" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Spansk" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estisk" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finsk" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Færøyisk" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Fransk" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Kroatisk" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Ungarsk" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesisk" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italiensk" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japansk" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javansk" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Koreansk" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norsk BokmÃ¥l" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Nederlandsk" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitansk" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polsk" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugisisk" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brasiliansk Portugisisk" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Russisk" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Slovensk" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Svensk" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamilsk" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Tyrkisk" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukrainsk" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Forenklet kinesisk" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Tradisjonell kinesisk" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Ingen atomer er valgt -- ingen ting Ã¥ utføre!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomer vil bli minimert" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "ny" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "Angre" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "Gjør om" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "Legg til hydrogener" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimer" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "fiks hydrogener og minimer" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "tøm" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "lagre fil" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "slett atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "dra atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "dra atom (og minimer)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "dobbel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "trippel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Ingen" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Alle" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} prosessorer" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB totalt" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB maks" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "jmol skriptkonsoll" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Oversettelser" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "System" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Inge atomer er lastet inn" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Oppsett" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "SprÃ¥k" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Av HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Symmetri" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Modell informasjon" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Velg ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Alle {0} modeller" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Samling av {0} modeller" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomer: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "grupper: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "modell {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Vis {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Hovedmeny" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolekyler" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolekyl {0} ({1} atomer)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "last inn biomolekyl {0} ({1} atomer)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Ingen" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Vis kun merkede" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Omgjør valg" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Vis" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Foran" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Venstre" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Høyre" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Nederst" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Tilbake" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Protein" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Ryggmarg" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Baser" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT par" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC par" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Au par" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Stil" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Kuler og pinner" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Pinner" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Tegneserie" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Spor" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Av" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "PÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Beregn" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Strukturer" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibrasjon" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektorer" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} piksler" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereografisk" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Etiketter" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Med atomnavn" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Med atomnummer" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Midtstilt" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Øverst til høyre" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Nederst til høyre" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Øverst til venstre" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Nederst til venstre" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Farge" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekyl" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Kjede" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Gruppe" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Svart" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Hvit" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "CyanblÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Rød" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Oransje" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Gul" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Grønn" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "BlÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Fiolett" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Lakserød" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Olivengrønn" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "GrÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Gull" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Gjør gjennomskinnelig" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Bakgrunn" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Overflater" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Akser" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Forstørr" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Zoom Inn" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Zoom Ut" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Snurr" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animasjon" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Animasjonsmodus" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Spill av" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Stopp" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Spol tilbake" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Bakover" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Start pÃ¥ nytt" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identitet" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Etikett" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Velg atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Velg kjede" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Velg element" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Velg gruppe" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Velg molekyl" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Vis" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "jmol skriptkonsoll" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Filinnhold" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Modell" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Ã…pne valgt fil" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Ã…pne" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Skjul" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Prikket" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Pikselbredde" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Vis hydrogener" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} slettede atomer" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} forventet" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} uventet" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, fuzzy, java-format +msgid "{0} struts added" +msgstr "{0} skjulte atomer" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Fil feil:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} skjulte atomer" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} valgte atomer" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid " {0} seconds" +#~ msgstr " {0} sekunder" + +#~ msgid "Java version:" +#~ msgstr "Java versjon:" + +#~ msgid "1 processor" +#~ msgstr "1 prosessor" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB ledig" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/nl.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/nl.po new file mode 100755 index 000000000000..020a12132b87 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/nl.po @@ -0,0 +1,2641 @@ +# translation of nl.po to Nederlands +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Egon Willighagen , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: nl\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Egon Willighagen \n" +"Language-Team: Nederlands \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Country: Nederlands\n" +"X-Poedit-Language: Dutch\n" +"X-Poedit-Basepath: ../../../..\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Element?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol Script Console" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Bestand" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Sluiten" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Hulp" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Zoeken..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Opdracthen" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Wiskundige &Functies" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Verander &Parameters" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Meer" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Toestand" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Uitvoeren" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Wis uitvoer" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Wis invoer" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Geschiedenis" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Laden" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"Druk CTRL-ENTER for een nieuwe regel of het plakken van data en daarna Load" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Berichten verschijnen hier. Voer commando's in via het vak hieronder. Klik " +"op de console Help menu voor meer informatie, die in een nieuwe browser-" +"scherm zal verschijnen." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol Script Editor" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Console..." + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Openen" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Voorkant" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Script" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Controleer" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Omhoog" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Stap" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pauzeren" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Hervatten" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Stoppen" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Wissen" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Sluiten" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Bestand of URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Afbeeldingstype" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG-kwaliteit ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG-compressie ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG-kwaliteit ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Ja" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Nee" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Wilt u het bestand {0} overschrijven?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Waarschuwing" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Alle bestanden" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Annuleren" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Sluit Bestandskeuze" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Details" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Werkfolder" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Geselecteerde folder openen" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Eigenschappen" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Veranderd" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Onbekend formaat" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Naam" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Bestandsnaam:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Grootte" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Bestanden van het type:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Type" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Help" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Help Bestandskiezer" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Persoonlijke map" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Lijst" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Kijken in:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Fout tijdens maken van nieuwe folder" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Nieuwe folder" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Nieuw folder maken" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Geselecteerd bestand openen" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Opslaan" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Geselecteerd bestand opslaan" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Opslaan in:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Verversen" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Folderinhoud verversen" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Boven" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Eén niveau hoger" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Voorbeeld" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Modellen toevoegen" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"OPMERKING: backbone amide-waterstof posities zijn aanwezig maar worden " +"genegeerd. De posities worden bij benadering bepaald, as gebruikelijk in een " +"DSSP-analyse. Gebruik {0} om deze benadering niet te gebruiken.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"OPMERKING: aanwezige backbone amide-waterstof posities worden gebruikt. De " +"resultaten kunnen significant afwijken van een standaard DSSP-analyse. " +"Gebruik {0} om de aanwezige posities niet te gebruiken.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arabisch" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturisch" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosnisch" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Catalaans" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Tsjechisch" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Deens" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Duits" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Grieks" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Australisch Engels" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Brits" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Amerikaans" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Spaans" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estlands" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Fins" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Faroese" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Frans" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Kroatisch" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Hongaars" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armeens" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesisch" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italiaans" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japans" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javaans" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Koreaans" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Maleisisch" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Noors" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Nederlands" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitaans" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Pools" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugees" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Braziliaans" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Russisch" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Sloveens" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Servisch" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Zweeds" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turks" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Oekraïns" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Vereenvoudigd Chinees" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Traditioneel Chinees" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Kon niet de Class vinden voor het krachtveld {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Geen atomen geselecteerd -- niets te doen!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomen worden geminimaliseerd." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "Kon het krachtveld {0} niet starten" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "nieuw" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "Ongedaan maken (Ctrl+Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "Opnieuw uitvoeren (Ctrl+Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "Midden" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "voeg waterstof toe" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimaliseren" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "repareer waterstof en minimaliseer" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "helder" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "bestand opslaan" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "opslagstatus" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "verander de ring stereochemie" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "verwijder atoom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "versleep naar verbinding" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "versleep atoom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "versleep atoom (en minimalizeer)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "versleep en minimalizeer molecuul (koppelen)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "verhoog lading" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "verlaag lading" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "verwijder koppeling" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "enkel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "dubbel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "driedubbel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "verhoog order" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "verlaag order" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "roteer verbinding (SHIFT+slepen)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "verlaat modelkit modus" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Ruimte groep" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Uit" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Alles" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processors" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB totaal" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB maximaal" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol Script Console" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Handleiding Muiscontrole" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Translaties" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Systeem" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Geen atomen geladen" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Orientaties" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Model/Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Taal" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Op residuenaam" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Op HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Moleculaire orbitalen ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Symmetrie" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Model details" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Selecteren ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Alle {0} modellen" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Configuraties ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Collectie van {0} modellen" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomen: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "bindingen: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "groepen: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "ketens {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polymeren: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Orientatie {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Hoofdmenu" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomoleculen" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolecuul {0} ({1} atomen)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "Laad biomolecuul {0} ({1} atomen)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Uit" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Laat alleen Selectie zien" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Inverteer Selectie" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Orientatie" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Voorkant" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Linker kant" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Rechts" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Top" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Onderkant" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Achterkant" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Assen" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Assen" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Assen" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Assen" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Assen" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Assen" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Proteïne" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Backbone" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Zijketens" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Polaire Residuen" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Niet-polaire Residuen" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Basische Residuen (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Zure Residuen (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Ongeladen Residuen" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nucleïnezuur" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Basen" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT paren" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC paren" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU paren" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Secondaire Structuur" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero-groepen" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Alle PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Al het oplosmiddel" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Al het water" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Oplosmiddel anders dan water" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "HETATM anders dan water" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Koolwaterstof" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Geen van deze" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Stijl" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Schema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK Spacefill" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Bal en staaf" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Stokjes" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Draadmodel" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Tekening" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Spoor" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomen" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Uit" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% vanderWaals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Bindingen" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Aan" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Waterstofbruggen" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Berekenen" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Kies H-bruggen van zijketens" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Kies H-bruggen van backbone" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disulfide-bindingen" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Kies SS-bindingen van zijketens" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Kies SS-bindingen van backbone" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Structuren" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Tekening" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Banden" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Tekening" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Strands" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibratie" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vectoren" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pixels" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Schaal {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereografisch" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Rood+Cyaan-bril" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Rood+Blauw-bril" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Rood+Groen-bril" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Kruisende Blik-modus" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Muur-kijk-modus" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Labels" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Met Symbool" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Met Atoomnaam" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Met Atoomnummber" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Positie van Label op Atoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Gecentreerd" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Rechtsboven" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Rechtsonder" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Linksboven" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Linksonder" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Kleuren" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Volgens model" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Element (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Alternatieve locatie" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molecuul" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Formele lading" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Partiele lading" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperatuur" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperatuur (vast)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminozuur" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Keten" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Groep" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomeer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Gevormd" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Overnemen" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Zwart" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Wit" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Cyaan" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Rood" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Oranje" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Geel" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Groen" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Blauw" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violet" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Zalm" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Olijfgroen" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Maroon" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Grijs" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Blauw" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Goud" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orchidee" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Solide maken" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Transparant maken" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Achtergrond" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Oppervlakken" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Assen" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Boundbox" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Eenheidscel" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Inzoomen" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Inzoomen" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Uitzoomen" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Spin" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Stel X-snelheid in" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Stel Y-snelheid in" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Stel Z-snelheid in" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Stel FPS in" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animatie-modus" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Animatie-modus" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Eenmaal afspelen" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindroom" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Gelusd" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Afspelen" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Stoppen" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Volgende Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Vorige Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Terugspoelen" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Achteruitspelen" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Herstarten" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Metingen" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Dubbel-klik begint en eindigt een meting" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Klik voor een afstandsmeting" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Klik voor een hoekmeting" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Klik voor een torsiehoekmeting" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Kies twee atomen om een sequentie de laten zien op de commandoregel" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Wis metingen" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Lijst van metingen" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Nanometer afstandsmaat" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Angstrom afstandsmaat" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Picometer afstandsmaat" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Kies klikvolgorde" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Gecentreerd" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identiteit" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Label" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Selecteer atoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Selecteer keten" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Selecteer element" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "verlaat modelkit modus" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Selecteer groep" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Selecteer molecuul" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Selecteer site" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Toon symetrische operatie" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Laat zien" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol Script Console" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Inhoud bestand" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Kopregels bestand" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Isosurface JVXL data" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Moleculaire orbitaal JVXL data" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientatie" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Ruimtegroep" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Huidige toestand" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Bestand" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Herlaad" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Open vanuit PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Geselecteerd bestand openen" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Openen" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Hele eenheidscel laden" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Open script" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Sla een kopie op van {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Bewaar script met status" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Bewaar script met geschiedenis" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Exporteer {0} afbeelding" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Opslaan als JMOL-bestand (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Sla JVXL iso-oppervlak" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Exporteer {0} 3D model" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Berekening" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimaliseer structuur" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Model kit" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Extraheer MOL data" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Puntenoppervlak" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "vanderWaalsoppervlak" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Moleculaire oppervlak" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Oplosmiddeloppervlak ({0}-Angstrom probe)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Oplosmiddeltoegankelijk oppervlak (VDW + {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "{0} herladen" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Herlaad {0} + Weergeven {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Herladen + Polyhedra" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Onzichtbaar" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Puntjes" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Puntgrootte" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Angstrombreedte" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Selectiewolk" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Laat waterstoffen zien" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Laat metingen zien" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Perspectiefdiepte" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Rasmol-kleuren" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Info..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "scriptcompiler FOUT: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "x-y-z-as verwacht" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} is niet toegestaan als een achtergrondmodel is weergegeven" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "injuist aantal parameters" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "De Miller-indices kunnen niet allemaal nul zijn." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "ongeldige [R,G,B] kleur" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "bool verwacht" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "boolean of getal verwacht" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "boolean, getal, of {0} vereist" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "kleur verwacht" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "een kleur of kleurenset (Jmol, Rasmol) is vereist" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "commando verwacht" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} of $naam of (atoomselectie) vereist" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "object niet gedefinieerd" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "overwacht einde van het script" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "geldige atoomexpressie verwacht" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "atoomexpressie of geheel getal verwacht" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "bestandsnaam verwacht" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "bestand niet gevonden" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "Ongeldige combinatie van parameters" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "te weinig parameters" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "geheel getal verwacht" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "geheel getal buiten bereik ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "ongeldig argument" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "ongeldige parametervolgorde" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "commandowoord verwacht" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "geen MO-coefficienten beschikbaar" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Een MO-index van 1 tot {0} is verwacht" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "geen MO basis set of coefficienten beschikbaar voor dit frame" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "Geen MO-data beschikbaar" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Maar een moleculaire orbitaal is aanwezig in dit bestand" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} vereist dat er maar een model getoond wordt" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} vereist dat slechts een model geladen is" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Geen data beschikbaar" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Geen partiele ladingen zijn gelezen van het bestaand. Jmol heeft deze nodig " +"om MEP data te visualiseren." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Geen eenheidscel" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "getal verwacht" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "getal moet zijn ({0} of {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "getal buiten bereik ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "objectnaam verwacht na '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"Vlak verwacht -- of drie punten of een atoomexpressie of {0} or {1} or {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "naam van eigenschap verwacht" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "ruimtegroep {0} is niet bekend" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "string in haakjes verwacht" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "String-inhaakjes of geheel getal verwacht" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "te veel rotatiepunten gedefinieerd" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "te veel scriptnivo's" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "onbekend atoomeigenschap" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "onbekende bindingseigenschap" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "onbekend commando" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "ongeldige expressie" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "onbekend object" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "onbekende {0} parameter" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "onbekende {0} parameter in Jmol status script (toch gedefinieerd)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "onbekend SHOW parameter -- gebruik {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "wat opslaan? {0} of {1} \"bestandsnaam\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "script FOUT: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atomen verwijderd" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} waterstofbruggen" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "bestand {0} aangemaakt" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "ongeldige context voor {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ getal getal getal } verwacht" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "einde van commando verwacht" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "identificatie of residuespecificatie verwacht" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "ongeldige atoomspecificatie" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "ongeldige ketenspecificatie" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "ongeldige expressie woord: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "ongeldige modelspecificatie" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "missende END voor {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "getal of variabelenaam verwacht" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "residueindicator (ALA, AL?, A*) verwacht" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} verwacht" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} onverwacht" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "onbekend expressie woord: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "onbekend woord: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} stutten toegevoegd" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} bindingen verwijderd" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} nieuwe bindingen; {1} veranderd" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" +"Opmerking: Dit contact vind plaats tussen atomen uit meerdere modellen." + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Klik voor menu..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet versie {0} {1}.\n" +" \n" +"Onderdeel van het OpenScience project. \n" +"\n" +"Zie http://www.jmol.org voor meer informatie." + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Bestandsfout:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "toon recent contextmenu (klik op Jmol frank)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "wis atoom (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "verwijder binding (heeft {0} nodig)" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "pas diepte aan (achterplaat; vereist {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "verplaats atoom (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "verplaats compleet tekenobject (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "verplaats specifiek tekenpunt (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "verplaats label (heeft {0} nodig)" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "verplaats atoom en minimaliseer molecuul (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "verplaats en minimaliseer molecuul (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "verplaats geselecteerde atomen (heeft {0} nodig)" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "sleep de atomen in de Z-richting (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "vertaal navigatiepunt (vereist {0} en {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "kies een atoom" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "verbind atomen (heeft {0} nodig)" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"kies een atoom om het aan de meting toe te voegen (nadat een meting of {0} " +"is gestart)" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "kies een atoom om naar te navigeren (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "toon het volledige contextmenu" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "Draai" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "draai zijtak rond een binding (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "draau geselecteerde atomen (heeft {0} nodig)" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "roteer Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"roteer Z (horizontale beweging van de muis) of zoom (verticale beweging van " +"de muis)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "selecteer een atoom (heeft {0} nodig)" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "selecteer en sleep atomen (heeft {0} nodig)" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "deselecteer deze groep van atomen (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "selecteer GEEN (heeft {0} nodig)" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "voeg deze groep atomen toe aan de geselecteerde atoomset (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "schakel selectie (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"als alle geselecteerd zijn, deselecteer alle. Voeg anders deze groep atomen " +"toe aan de geselecteerde atoomset (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "kies een atoom om een meting te begiggen of eindigen" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zoom (langs de rechterzijde van het scherm)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "klik op twee punten om tegen de klok in rond te draaien (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"klik op twee punten om met de klok mee te rond te draaien (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "stop beweging (vereist {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "spin model (veeg en laat de muisknop tegelijk opkomen)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "vertaal" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "Vergroot" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "kies nog een atoom om het model rond een as te laten spinnen" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "kies twee atomen om het model rond een as te laten spinnen" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "kies nog een atoom om de symmetrierelatie te laten zien" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "kies twee atomen om de de symmetrierelatie te laten zien" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "logbestand veranderd naar {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} verborgen atomen" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atomen geselecteerd" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Sleep om de label te verplaatsen" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "clipboard is niet toegankelijke -- gebruik de gesigneerde applet" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} waterstofatomen toegevoegd" + +#~ msgid "Hide Symmetry" +#~ msgstr "Verberg Symmetrie" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Laden Jmol applet ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} seconden" + +#~ msgid "Java version:" +#~ msgstr "Java versie:" + +#~ msgid "1 processor" +#~ msgstr "1 processor" + +#~ msgid "unknown processor count" +#~ msgstr "onbekend aantal processoren" + +#~ msgid "Java memory usage:" +#~ msgstr "Java geheugen gebruik:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB beschikbaar" + +#~ msgid "unknown maximum" +#~ msgstr "onbekend maximum" + +#~ msgid "Open file or URL" +#~ msgstr "Open bestand van URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/oc.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/oc.po new file mode 100755 index 000000000000..e9589375aed8 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/oc.po @@ -0,0 +1,2603 @@ +# Occitan (post 1500) translation for jmol +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Cédric VALMARY (Tot en òc) \n" +"Language-Team: Occitan (post 1500) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Consòla d'Escript Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Tampar" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Ajuda" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "Rec&ercar..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "Co&mandas" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Foncions Matematicas" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Preferéncias & Paramètres" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Mai" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Estat" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Aviar" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Escafar la sortida" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Escafar la picada" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Istoric" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Cargar" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Editor d'escripts Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Consòla" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Dobrir" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Fà cia" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Escript" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Verificar" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Tornar amont" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Etapa" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pausa" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Contunhar" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Arrestar" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Escafar" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Tampar" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Fichièr o URL :" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Tipe d'imatge" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Qualitat JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Compression PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Qualitat PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Ã’c" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Non" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Volètz espotir lo fichièr {0} ?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Avertiment" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Totes los fichièrs" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Anullar" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Detalhs" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Dorsièr" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Atributs" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Modificat" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Fichièr generic" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nom" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Nom del fichièr :" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Talha" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Fichièrs del tipe :" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Tipe" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Ajuda" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Ajuda sul selector de fichièrs" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Dorsièr personal" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Lista" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Recercar dins :" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Dorsièr novèl" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Crear un dorsièr novèl" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "DobrÃs lo fichièr seleccionat" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Salvar" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Salvar dins :" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Metre a jorn" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Naut" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Remontar d'un nivèl" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "D'acòrdi" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Apercebut" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Apondre los modèls" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arabi" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Catalan" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Chèc" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Danés" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Alemand" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Grèc" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Anglés britanic" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Anglés american" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Espanhòl" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estonian" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Francés" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Ongrés" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesian" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italian" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japonés" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Corean" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norvegian (Bokmal)" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Neerlandés" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitan" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polonés" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugués" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Portugués de Brasil" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Rus" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Eslovèn" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Suedés" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turc" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ucraïnian" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Chinés simplificat" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Chinés tradicional" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Impossible d''obténer la classa del camp de fòrça {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Cap d'atòm pas seleccionat -- pas res a far !" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atòms serà n minimizats." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Grop d'espaci" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Pas cap" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Tot" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processors" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "Total de {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "Maximum de {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Consòla d'Escript Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Manual Mirga" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Traduccions" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistèma" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Configuracions" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Modèl/Frame" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Lenga" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Per nom de residut" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Per HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Simetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Informacions del modèl" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Seleccionar ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Totes los {0} modèls" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Configuracions ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Colleccion de {0} modèls" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "{0} atòms" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "{0} ligams" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "{0} gropes" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "{0} cadenas" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "{0} polimèrs" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "modèl {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Veire {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menut principal" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomoleculas" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolecula {0} ({1} atòms)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "cargar la biomolecula {0} ({1} atòms)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Pas cap" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Afichar unicament la seleccion" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Inversar la seleccion" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Afichatge" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Fà cia" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Esquèrra" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Drecha" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Bas" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Fons" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Proteïna" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Colomna vertebrala" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Cadenas lateralas" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Residuts polars" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Residuts basics (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Residuts acids (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nucleïc" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "ADN" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "ARN" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Basas" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Pars AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Paras GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Paras AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Etèro" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Totes los \"HETATM\" PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Tot Solvent" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Tot Aiga" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Glucid" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Estil" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Combinason" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Bastons" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Fial de fèrre" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Dessenh animat" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Traça" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atòms" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Desactivat" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Ligams" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Activar" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Calcular" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Consòla d'Escript Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "DobrÃs lo fichièr seleccionat" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Dobrir" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet version {0} {1}.\n" +"\n" +"Fat partida del projècte OpenScience.\n" +"\n" +"Vejatz http://www.jmol.org per mai d'entresenhas" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Error de Fichièr :" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid "Hide Symmetry" +#~ msgstr "Amagar la simetria" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Cargament de l'applet Jmol ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} segondas" + +#~ msgid "Java version:" +#~ msgstr "Version de Java :" + +#~ msgid "1 processor" +#~ msgstr "1 processor" + +#~ msgid "unknown processor count" +#~ msgstr "Nombre de processors desconegut" + +#~ msgid "Java memory usage:" +#~ msgstr "Utilizacion memòria de Java" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB liures" + +#~ msgid "unknown maximum" +#~ msgstr "Maximum desconegut" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/pl.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/pl.po new file mode 100755 index 000000000000..39bed81f0e0e --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/pl.po @@ -0,0 +1,2605 @@ +# Polish translation for jmol +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Nicolas Vervelle \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Konsola skryptów Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Zamknij" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "Pomoc" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "Wy&szukaj..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "Pole&cenia" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Funkcje matematyczne" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Ustaw ¶metry" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "WiÄ™cej" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Edytor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Stan" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Uruchom" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Wyczyść wyniki" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Wyczyść dane wejÅ›ciowe" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historia" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "ZaÅ‚aduj" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"naciÅ›nij CTRL-ENTER żeby rozpocząć nowÄ… liniÄ™ lub wklej dane modelu i " +"wciÅ›nij przycisk ZaÅ‚aduj" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Tutaj bÄ™dÄ… wyÅ›wietlane informacje. Komendy należy wpisywać w polu poniżej. " +"Kliknij element Pomocy w konsoli aby uzyskać pomoc online (zostanie otwarte " +"okno przeglÄ…darki)" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Edytor skryptów Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konsola" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Otwórz" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Przód" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Skrypt" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pauza" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Wznów" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Wstrzymaj" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Wyczyść" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Zamknij" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Plik lub adres URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Typ obrazu" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Jakość JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Kompresja PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Jakość PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Tak" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Nie" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Czy chcesz nadpisać plik {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Ostrzeżenie" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Wszystkie pliki" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Anuluj" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Zamknij okno wyboru pliku" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Szczegóły" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Folder" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Otwórz wybrany folder" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Atrybuty" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Zmodyfikowany" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Plik ogólny" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nazwa" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Nazwa pliku" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Rozmiar" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Pliki typu:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Typ" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Pomoc" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Pomoc okna wyboru plików" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Katalog domowy" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Lista" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Zobacz w:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "BÅ‚Ä…d podczas tworzenia nowgo folderu" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Nowy Folder" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Utwórz nowy folder" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Otwórz wybrany plik" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Zapisz" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Zapisz wybrany plik" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Zapisz w:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Aktualizacja" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Uaktualnij listÄ™ katalogów" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "W górÄ™" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "W górÄ™ o jeden poziom" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "PodglÄ…d" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "DoÅ‚Ä…cz modele" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "arabski" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "KataloÅ„ski" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Czeski" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "DuÅ„ski" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Niemiecki" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "grecki" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Brytyjski Angielski" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "AmerykaÅ„ski angielski" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "HiszpaÅ„ski" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "EstoÅ„ski" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Francuski" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "WÄ™gierski" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonezyjski" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "WÅ‚oski" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "japoÅ„ski" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "KoreaÅ„ski" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norweski (Bokmal)" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Holenderski" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polski" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugalski" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brazylijski Portugalski" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Rosyjski" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "SÅ‚oweÅ„ski" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Szwedzki" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turecki" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "ukraiÅ„ski" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "ChiÅ„ski uproszczony" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "ChiÅ„ski tradycyjny" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Nie zaznaczono żadnego atomu -- brak zadaÅ„ do wykonania!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomów zostanie zminimalizowanych." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "cofnij" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "żaden" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Wszystkie" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} procesorów" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "w caÅ‚oÅ›ci {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB maksimum" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Konsola skryptów Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "ObsÅ‚uga myszy" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "TÅ‚umaczenia" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Brak zaÅ‚adowanych atomów" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Konfiguracje" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Pierwiastek" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "JÄ™zyk" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Symetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Informacje o modelu" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Wybierz ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Wszystkie {0} modeli" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Konfiguracje ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Kolekcja {0} modeli" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomy: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "wiÄ…zania: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "grupy: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "Å‚aÅ„cuchy: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polimery: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Widok {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menu główne" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "BiomolekuÅ‚y" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolekuÅ‚a {0} ({1} atomy)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "Å‚aduj biomolekuÅ‚Ä™ {0} ({1} atomy)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "żaden" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "WyÅ›wietlaj tylko zaznaczone" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Odwróć zaznaczenie" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Pokaż" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Przód" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Lewo" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Prawo" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Dół" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "W tyÅ‚" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Osie" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Osie" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Osie" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Osie" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Osie" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Osie" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "BiaÅ‚ka" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Szkielet" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "ÅaÅ„cuchy boczne" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Reszty polarne" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Reszty niepolanrne" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Reszty zasadowe (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Reszty kwasowe (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Reszty pozbawione Å‚adunku" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Kwas nukleinowy" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Zasady" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Pary AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Pary GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Pary AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Struktura drugorzÄ™dowa" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Rozpuszczalnik bezwodny" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "wodorowÄ™glan" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Å»aden z wymienionych" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Styl" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Schemat" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Kula i kreska" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Kreski" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Obraz szkieletowy" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Rysunek" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Åšlad" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomy" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "WyÅ‚Ä…czone" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "WiÄ…zania" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "WÅ‚Ä…czone" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "WiÄ…zania wodorowe" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Oblicz" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "WiÄ…zania dwusiarczkowe" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Struktury" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Wibracja" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Wektory" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pikseli" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Skala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereograficzne" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Okulary Czerwono-Cyjanowe" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Okulary czerwono-Niebieskie" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Okulary Czerwono-Zielone" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Patrzenie zbieżne" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Etykiety" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Z symbolem atomu" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Z nazwa atomu" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Z numerem atomu" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Ustal pozycje etykiety" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "WyÅ›rodkowanie" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Na górze po prawej" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Na dole po prawej" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Na górze po lewej" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Na dole po lewej" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Kolor" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Inna lokalizacja" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "CzÄ…steczka" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Åadunek" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Åadunek częściowy" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperatura (WzglÄ™dna)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperatura (BezwzglÄ™dna)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminokwas" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "ÅaÅ„cuch" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Grupa" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Dziedziczyć" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Czarny:" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "BiaÅ‚y" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Cyjan" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Czerwony" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "PomaraÅ„czowy" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Żółty" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Zielony" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Niebieski" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indygo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Fioletowy" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Åososiowy" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Oliwkowy" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Kasztanowy" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Szary" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Niebieski Å‚upkowy" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "ZÅ‚oty" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orchidowy" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Nieprzezroczystosty" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Przezroczysty" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "TÅ‚o" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Powierzchnie" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Osie" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "PowiÄ™kszenie" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "PowiÄ™ksz" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Pomniejsz" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Ilość klatek na sekundÄ™" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animacja" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Tryb animacji" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Odtwórz raz" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "ZapÄ™tlanie" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Odtwórz" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Stop" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Nastepna klatka" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Poprzednia klatka" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "PrzewiÅ„ w tyÅ‚" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Odwróć" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Restartuj" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Pomiary" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Podwójne klikniÄ™ce rozpoczyna i koÅ„czy pomiary" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Kliknij dla pomiaru odlegÅ‚oÅ›ci" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Kliknij dla pomiaru kÄ…ta" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "UsuÅ„ pomiary" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Pokaż pomiary" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Pomiar w nanometrach" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Pomiar w Angstroemach" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Pomiar w pikometrack" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "WyÅ›rodkuj" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identyfikacja" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Etykieta" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Wyberz atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Wybierz Å‚aÅ„cuch" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Wybierz element" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Wybierz grupÄ™" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Wybierz czÄ…steczkÄ™" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Pokaż" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Konsola skryptów Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Zawartość pliku" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Nagłówek pliku" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientacja" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Bieżący stan" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Otwórz wybrany plik" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Otwórz" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "WydobÄ…dź dane MOL" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "PrzeÅ‚aduj {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Ukryj" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Kropki" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Pokaż Wodory" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Pokaż Pomiary" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "GÅ‚Ä™bokość perspektywy" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Kolory RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "niewÅ‚aÅ›ciwy kolor [R, G, B]" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "oczekiwano koloru" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "nieoczekiwany koniec skryptu" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "oczekiwano nazwy pliku" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "nie odnaleziono pliku" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "niepoprawne argumenty" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "niewystarczajÄ…ce argumenty" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "bÅ‚Ä™dny argument" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Beak dostepnych danych" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "oczekiwano liczby" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "nierozpoznany obiekt" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "BÅÄ„D skryptu: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atomy usuniÄ™to" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} wiÄ…zania wodorowe" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ number number number } oczekiwano" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, fuzzy, java-format +msgid "{0} struts added" +msgstr "{0} atomy ukryte" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Aplet Jmol wersja {0} {1}.\n" +"\n" +"Projek OpenScience.\n" +"\n" +"WiÄ™cej informacji na http://www.jmol.org" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "BÅ‚Ä…d pliku:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "wybierz atom aby obrócić model wokół osi" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "wybierz dwa atomy aby obrócić model wokół osi" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atomy ukryte" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atomy wybrane" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Åadowanie apletu Jmol" + +#~ msgid " {0} seconds" +#~ msgstr " {0} sekund" + +#~ msgid "1 processor" +#~ msgstr "1 procesor" + +#~ msgid "unknown processor count" +#~ msgstr "nieznana liczba procesorów" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB wolnych" + +#~ msgid "unknown maximum" +#~ msgstr "maksimum nieznane" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/pt.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/pt.po new file mode 100755 index 000000000000..b09bbd164362 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/pt.po @@ -0,0 +1,2611 @@ +# Copyright (C) 2005 +# This file is distributed under the same license as the Jmol package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Nicolas Vervelle \n" +"Language-Team: Portugal@Folding \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Country: Portugal\n" +"X-Poedit-Language: Portuguese\n" +"X-Poedit-Basepath: ../../../..\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Consola de Script Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Fechar" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Ajuda" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Localizar" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Comandos" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Funções Matemáticas" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Definir &Parâmetros" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Mais" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Estado" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Executar" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Limpar Output" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Limpar Output" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Histórico" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Carregar" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"Clique em CTRL-ENTER para uma nova linha ou cole os dados do modelo e clique " +"em Carregar" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"As mensagens aparecem aqui. Introduza os comandos na caixa abaixo. Clique no " +"menú Ajuda para obter ajuda on-line, a qual aparecerá numa nova janela do " +"browser." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Editor de Script Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Consola" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Abrir" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Frente" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Script" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Verificar" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Passo" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pausa" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Resumir" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Parar" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Limpar" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Fechar" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Ficheiro ou URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Tipo de Imagem" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Qualidade JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Compressão PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Qualidade PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Sim" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Não" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Pretende substituir o ficheiro {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Aviso" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Todos os Ficheiros" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Cancelar" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Detalhes" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Directório" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Abrir directório seleccionado" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Atributos" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Modificado" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Ficheiro genérico" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nome" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Nome do Ficheiro:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Tamanho" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Ficheiros do Tipo:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Tipo" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Ajuda" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Ajuda do FileChooser" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "InÃcio" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Listar" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Procurar em:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Erro ao criar nova pasta" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Nova Pasta" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Criar Nova Pasta" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Abrir ficheiro seleccionado" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Guardar" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Guardar ficheiro seleccionado" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Guardar Em:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Actualizar" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Actualizar lista de ficheiros" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Para cima" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Subir Um NÃvel" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Pré-visualizar" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Anexar modelos" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Ãrabe" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Catalão" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Checo" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Dinamarquês" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Alemão" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Grego" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Inglês de Inglaterra" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Inglês Americano" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Espanhol" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estónio" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Francês" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Húngaro" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonésio" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italiano" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japonês" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Coreano" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norueguês Bokmal" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Holandês" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polaco" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Português" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Português do Brasil" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Russo" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Esloveno" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Sueco" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turco" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ucraniano" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Chinês Simplificado" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Chinês Tradicional" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Nenhum átomo seleccionado -- nada a fazer!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Nenhum" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Todos" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processadores" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB totais" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB Máximo" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Consola de Script Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Traduções" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistema" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Nenhum átomo foi carregado" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Configurações" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Idioma" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Por nome do resÃduo" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Por HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Simetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Informação do Modelo" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Seleccionar ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Todos {0} modelos" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Configurações ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Collecção de {0} modelos" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "átomos: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "ligações: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "grupos: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "cadeias: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polÃmeros: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "modelo {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Ver {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menu Principal" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomoléculas" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolécula {0} ({1} átomos)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "carregar biomolécula {0} ({1} átomos)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Nenhum" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Mostrar Somente as Escolhas" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Inverter Selecção" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Visualizar" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Frente" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Esquerda" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Direita" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Fundo" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Retroceder" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "ProteÃna" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Esqueleto/Cadeia principal/raiz" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Cadeias laterais" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "ResÃduos polares" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "ResÃduos apolares" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "ResÃduos básicos (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "ResÃduos acÃdicos (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "ResÃduos não carregados" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nucleico" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "ADN" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "ARN" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Bases" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Pares AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Pares GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "ParesAU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Estrutura Secundária" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Apenas Solvente" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Apenas Ãgua" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Solvente não aquoso" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligando" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Carbohidrato" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Nenhum dos acima seleccionados" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Estilo" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Esquema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "Espaço de preenchimento (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Bola ou barra" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Barras" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Ligarframe" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Desenho" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Traçar" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Ãtomos" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Off" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Ligações" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "On" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Ligações de Hidrogénio" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Calcular" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Definir Ligações-H das cadeias laterais" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Definir Ligações-H da cadeia principal" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Ligações Disulito" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Definir Ligações-SS das cadeias lateriais" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Definir Ligações-SS da cadeia principal" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Estruturas" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Tiras" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Foguetes" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibração" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vectores" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pÃxeis" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Escala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Estereográfico" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Óculo Vermelho+Turquesa" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Óculo Vermelho+Azul" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Óculo Vermelho+Verde" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Visualização 'Cross-eyed'" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Visualização 'Wall-eyed'" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Etiquetas" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Com o SÃmbolo do Elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Com o Nome do Ãtomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Com o Número do Ãtomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Colocar etiqueta em átomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Centrado" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Em cima, à Direita" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Em baixo, à Direita" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Em Cima, à Direita" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Em Baixo, à Esquerda" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Cor" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Por Esquema" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Elemento (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Localização Alternativa" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molécula" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Carga Formal" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Carga Parcial" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperatura (Relativa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperatura (Fixa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminoácido" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Cadeia" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Grupo" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monómero" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Inato" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Preto" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Branco" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Ciano" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Vermelho" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Laranja" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Amarelo" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Verde" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Azul" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violeta" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Salmão" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Azeitona" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Castanho" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "'Slate Blue'" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Dourado" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "OrquÃdea" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Tornar Opaco" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Tornar Translúcido" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Fundo" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "SuperfÃcies" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Caixa de ligação" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Célula Unitária" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Aumentar Zoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Diminuir Zoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Spin" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Definir X" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Definir Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Definir Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Definir FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animação" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Modo de Animação" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Reproduzir/tocar uma vez" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "palindroma" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Curva" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Reproduzir" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Para" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Frame seguinte" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Frame anterior" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Rebobinar" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Inverter" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Reiniciar" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Medidas" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Clique para medir o ângulo" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Apagar medições" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Listar medições" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Unidades de distância em picómetros" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identidade" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Seleccionar átomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Seleccionar cadeia" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Seleccionar molécula" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Consola de Script Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Modelo" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientação" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Abrir ficheiro seleccionado" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Abrir" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "SuperfÃcie Molecular" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Esconder" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Tracejado" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Tamanho do pixel" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Tamanho Angstrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Mostrar Hidrogénios" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Mostrar medições" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Profundidade da perspectiva" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Cores RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "eixo x y z esperado" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Ãndices de Miller não podem ser todos iguais a zero" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "cor esperada" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "ficheiro não encontrado" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "argumentos incompatÃveis" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "argumentos insuficientes" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "esperado inteiro" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "argumento inválido" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Apenas uma orbital molecular está disponÃvel neste ficheiro" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "número experado" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "parâmetro {0} não reconhecido" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} esperado" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} inesperado" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet versão {0} {1}.\n" +"Um projecto OpenScience.\n" +"Ver http://www.jmol.org para mais informação" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Erro no ficheiro..." + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} átomos seleccionados" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid "Hide Symmetry" +#~ msgstr "Esconder Simetria" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "A carregar a applet Jmol ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} segundos" + +#~ msgid "Java version:" +#~ msgstr "Versão Java:" + +#~ msgid "1 processor" +#~ msgstr "1 processador" + +#~ msgid "Java memory usage:" +#~ msgstr "Utilização de memória Java:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB livres" + +#~ msgid "unknown maximum" +#~ msgstr "máximo desconhecido" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/pt_BR.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/pt_BR.po new file mode 100755 index 000000000000..7fdaf24d102a --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/pt_BR.po @@ -0,0 +1,2633 @@ +# Copyright (C) 2005 +# This file is distributed under the same license as the Jmol package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2022-02-14 23:16-0300\n" +"Last-Translator: Sérgio Ceroni da Silva \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Poedit 3.0.1\n" +"X-Poedit-Basepath: ../../../..\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "Gostaria de substituir o modelo atual por aquele selecionado?" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Elemento?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Console de \"scripts\" Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "Gravar como..." + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "Arquivo" + +#: org/jmol/console/GenericConsole.java:92 +msgid "&Close" +msgstr "Fe&char" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "A&juda" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Pesquisar..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Comandos" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "&Funções matemáticas" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Definir &parâmetros" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Mais" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Editor" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Estado" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Executar" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Apagar a saÃda de dados" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Apagar a entrada de dados" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Histórico" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Carregar" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"pressione CTRL-ENTER para uma nova linha ou cole os dados do modelo e " +"pressione Carregar" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Mensagens aparecerão aqui. Entre com os comandos na caixa abaixo. Clique no " +"menu de ajuda do console para ajuda via Internet, a qual será mostrada em " +"nova janela do navegador." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Editor de \"script\" do Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Console" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Abrir" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "Fonte" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "\"Script\"" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Conferir" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "InÃcio" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Passo" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Pausa" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Continuar" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Parar" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Apagar" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Fechar" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Arquivo ou URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Tipo de imagem" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Qualidade JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Compressão PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Qualidade PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Sim" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Não" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Deseja sobrescrever o arquivo {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Aviso" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Todos os arquivos" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Cancelar" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Cancelar diálogo do selecionador de arquivo" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Detalhes" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Pasta" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Abrir a pasta selecionada" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Atributos" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Modificado" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Arquivo genérico" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Nome" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Nome do arquivo:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Tamanho" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Arquivos do tipo:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Tipo" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Ajuda" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Ajuda do Selecionador de Arquivo" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "InÃcio" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Listar" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Procurar em:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Erro ao criar pasta nova" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Pasta nova" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Criar pasta nova" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Abrir arquivo selecionado" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Gravar" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Gravar arquivo selecionado" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Gravar em:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Atualizar" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Atualizar listagem de pasta" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Acima" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Um nÃvel acima" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Pré-visualizar" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Anexar modelos" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "\"Cartoons\" PDB" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"NOTA: posições contendo hidrogênio das amidas na espinha estão presentes e " +"serão ignoradas. Suas posições serão calculadas de acordo com uma análise " +"DSSP padrão.\n" +"Utilize {0} se não quiser usar este cálculo aproximado.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"NOTA: posições contendo hidrogênio das amidas na espinha estão presentes e " +"serão utilizadas. Os resultados podem diferir bastante da análise DSSP " +"padrão.\n" +"Utilize {0} para ignorar estas posições de hidrogênio.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Ãrabe" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturiano" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "Azerbaijano" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bósnio" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Catalão" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Tcheco" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Dinamarquês" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Alemão" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Grego" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Inglês australiano" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Inglês britânico" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Inglês americano" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Espanhol" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estoniano" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "Basco" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finlandês" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Feroês" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Francês" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "FrÃsio" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Galego" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Croata" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Húngaro" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armênio" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonésio" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italiano" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japonês" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javanês" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Coreano" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Malasiano" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Bokmal Norueguês" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Holandês" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitano" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polonês" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Português" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Português brasileiro" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Russo" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Esloveno" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Sérvio" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Sueco" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tâmil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turco" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uigur" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ucraniano" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Usbesquistano" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Chinês simplificado" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Chinês tradicional" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Não foi possÃvel obter a classe para o campo de força {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Nenhum átomo selecionado -- nada a fazer!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} átomo(s) será(ão) minimizado(s)" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "não foi possÃvel configurar o campo de força {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "novo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "desfazer (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "refazer (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "centralizar" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "adicionar hidrogênios" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimizar" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "reparar hidrogênios e minimizar" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "limpar" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "gravar arquivo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "gravar instantâneo do estado" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "inverter a estereoquÃmica do anel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "remover átomo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "arrastar para fazer a ligação" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "arrastar o átomo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "arrastar o átomo (e minimizar)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "arrastar a molécula (ALT para girar)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "arrastar e minimizar a molécula (ancoragem)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "aumentar carga" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "diminuir carga" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "remover ligação" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "ligação simples" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "ligação dupla" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "ligação tripla" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "aumentar ordem de ligações" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "diminuir ordem de ligações" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "girar a ligação (SHIFT-arrastar)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "sair do modo \"modelkit\"" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Grupo Espacial" + +#: org/jmol/popup/JmolGenericPopup.java:770 +msgid "none" +msgstr "nenhum" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Todos" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processadores" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB total" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB máximo" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "sem capturar" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "Comandos de \"script\" Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Manual do \"mouse\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Traduções" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistema" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Nenhum átomo foi carregado" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Configurações" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Modelo/Quadro" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Idioma" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Por nome do resÃduo" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Por HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Orbitais moleculares ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Simetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Informações do modelo" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Selecionar ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Todos os {0} modelos" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Configurações ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Coleção de {0} modelos" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "átomos: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "ligações: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "grupos: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "cadeias: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polÃmeros: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "modelo {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Visualizar {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Menu Principal" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomoléculas" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolécula {0} ({1} átomos)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "carregar biomolécula {0} ({1} átomos)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Nenhum" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Mostrar somente os selecionados" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Inverter seleção" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Visualização" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "Ótima" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Frontal" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Lateral esquerda" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Lateral direita" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Topo" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Inferior" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Trazeira" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "Eixo x" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "Eixo y" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "Eixo z" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "Eixo a" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "Eixo b" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "Eixo c" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "Cenas" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "ProteÃna" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Espinha" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Cadeias laterais" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "ResÃduos polares" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "ResÃduos apolares" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "ResÃduos básicos (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "ResÃduos ácidos (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "ResÃduos sem carga" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Ãcido Nucleico" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Bases" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Pares AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Pares GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Pares AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Estrutura secundária" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Todos os \"HETATM\" do PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Todo o solvente" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Toda a água" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Solvente não aquoso" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "HETATM não aquoso" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligante" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "GlicÃdio" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Nenhum dos anteriores" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Estilo" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Esquema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "Preenchimento CPK" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Esferas e Varetas" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Varetas" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Arames" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Desenhos" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Traçados" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Ãtomos" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Desligado" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Ligações" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Ligado" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Pontes de Hidrogênio" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Calcular" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Definir pontes de H (cadeias laterais)" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Definir pontes de H (espinha)" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Pontes dissulfeto" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Definir pontes SS (cadeias lateriais)" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Definir pontes SS (espinha)" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Estruturas" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Desenhos e Foguetes" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Fitas" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Foguetes" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Tiras" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibração" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vetores" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Espectro" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pixel(éis)" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Escala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Visão estereográfica" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Óculos Vermelho+Ciano" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Óculos Vermelho+Azul" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Óculos Vermelho+Verde" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Visualização \"estrábica\" convergente" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Visualização \"estrábica\" divergente" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Rótulos" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Com sÃmbolo do elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Com nome do átomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Com número do átomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Posicionar rótulo no átomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Centralizado" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Superior direito" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Inferior direito" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Superior esquerdo" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Inferior esquerdo" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Cor" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Por esquema" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Elemento (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Localização alternativa" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molécula" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Carga formal" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Carga parcial" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperatura (Relativa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperatura (Fixa)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminoácido" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Cadeia" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Grupo" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monômero" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Formato" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Herdar" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Preto" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Branco" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Ciano" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Vermelho" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Laranja" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Amarelo" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Verde" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Azul" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Ãndigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violeta" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Salmão" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Verde-oliva" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Marrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Acinzentado" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Azul-acinzentado" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Dourado" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Roxo" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Tornar opaco" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Tornar translúcido" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Fundo" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "SuperfÃcies" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Eixos" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Caixa limitante" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Cela unitária" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zoom" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Zoom [+]" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Zoom [-]" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Rotação" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Definir taxa X" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Definir taxa Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Definir taxa Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Definir FPS" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animação" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Modo de animação" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Reproduzir uma vez" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "PalÃndromo (vai-volta)" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Repetição" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Reproduzir" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Parar" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Próximo quadro" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Quadro anterior" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Rebobinar" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Reverter" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Reiniciar" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Medições" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Clique duplo inicia e termina todas as medições" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Clique para medição de distância" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Clique para medição de ângulo" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Clique para medição da torção (diédrica)" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Clique em dois átomos para exibir uma sequência no console" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Remover medições" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Listar medições" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Unidade de distância em nanômetros" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Unidade de distância em Angstroms" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Unidade de distância em picometros" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Definir modo de seleção" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Centralizar" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identidade" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Rotular" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Selecionar átomo" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Selecionar cadeia" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Selecionar elemento" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "modo \"modelKit\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Selecionar grupo" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Selecionar molécula" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Selecionar sÃtio" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Mostrar operação de simetria" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Exibir" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "JavaScript Console" +msgstr "Console do JavaScritp" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Conteúdo do arquivo" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Cabeçalho do arquivo" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Dados JVXL da isosuperfÃcie" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Dados JVXL do orbital molecular" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Modelo" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientação" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Grupo Espacial" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Estado atual" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Arquivo" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "Exportar" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Recarregar" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Abrir de arquivo PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Open local file" +msgstr "Abrir arquivo local" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Open URL" +msgstr "Abrir URL" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Carregar cela unitária completa" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Abrir \"script\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "Capturar" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "Capturar balanço" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "Capturar rotação" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "Iniciar captura" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "Finalizar captura" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "Desabilitar captura" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "Habilitar novamente captura" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "Definir taxa de repetição da captura" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "Ligar/desligar repetição da captura" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Gravar uma cópia de {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Gravar \"script\" com estado" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Gravar \"script\" com histórico" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Exportar {0} imagem" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Gravar como PNG/JMOL (imagem+zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Gravar isosuperfÃcie JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Exportar {0} modelo(s) 3D" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Computação" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Otimizar estrutura" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Kit de modelagem" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Extrair dados MOL" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "SuperfÃcie pontilhada" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "SuperfÃcie de van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "SuperfÃcie molecular" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "SuperfÃcie de solvente (sonda de {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "SuperfÃcie acessÃvel ao solvente (VDW + {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "Potencial Eletrostático Molecular - MEP (TODAS as faixas)" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "Potencial Eletrostático Molecular - MEP (faixa de -0.1 a 0.1)" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Recarregar {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Recarregar {0} + Mostrar {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Recarregar + poliédro" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Ocultar" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Pontilhado" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Espessura (pixel)" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Espessura (Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Halos de seleção" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Exibir Hidrogênios" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Exibir medições" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Profundidade de perspectiva" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Cores conforme RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Sobre..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "ERRO no compilador de \"script\": " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "esperado um eixo x y z" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} não é permitido com o modelo de fundo sendo mostrado" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "número de argumentos errôneo" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Ãndices Miller não podem ser todos iguais a zero." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "cor [R,G,B] errônea" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "esperado um booleano" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "esperado um booleano ou um número" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "esperado um booleano, um número ou um {0}" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "valor não pode ser definido" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "esperada uma cor" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "uma cor ou nome de paleta (Jmol, Rasmol) é necessária" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "esperado um comando" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "necessário {x y z} ou $name ou (atom expression)" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "objeto de desenho não definido" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "comando de término de \"script\" não esperado" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "esperada uma (atom expression) válida" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "esperada uma (atom expression) ou número inteiro" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "esperado um nome de arquivo" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "arquivo não encontrado" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "argumentos incompatÃveis" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "argumentos insuficientes" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "esperado um número inteiro" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "número inteiro fora de limite ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "argumento inválido" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "ordem de parâmetros inválida" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "esperada uma palavra-chave" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "nenhum dado de coeficiente MO está disponÃvel" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Um Ãndice MO de 1 a {0} é necessário" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "nenhum dado de base/coeficiente MO está disponÃvel para este quadro" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "nenhum dado de utilização MO está disponÃvel" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Somente um Orbital Molecular (MO) está disponÃvel neste arquivo" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} requer que somente um modelo seja mostrado" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} requer que só um modelo seja carregado" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Nenhum dado disponÃvel" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Nenhuma carga parcial foi lida do arquivo; Jmol necessita isto para gerar os " +"dados de MEP." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Sem cela unitária" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "esperado um número" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "número deve ser ({0} ou {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "número decimal fora de limite ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "esperado um nome de objeto depois de '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"esperado um plano -- três pontos ou uma \"atom expression\" ou {0} ou {1} ou " +"{2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "esperado um nome de propriedade" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "o Grupo Espacial {0} não foi encontrado." + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "esperado um conjunto de caracteres entre aspas" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "esperado um conjunto de caracteres entre aspas ou um identificador" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "especificados excessivos pontos de rotação" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "excessivos nÃveis de \"script\"" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "propriedade de átomo não identificável" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "propriedade de ligação não identificável" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "comando não identificável" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "expressão não identificável durante a execução" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "objeto não identificável" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "parâmetro {0} não identificável" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" +"parâmetro {0} não identificável no \"script\" de estado do Jmol (mesmo assim " +"foi definido)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "parâmetro SHOW não identificável -- usar {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "escrever o quê? {0} ou {1} \"nome-de-arquivo\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "ERRO no \"script\": " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "mostrar gravado: {0}" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} átomo(s) removido(s)" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} ponte(s) de Hidrogênio" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "criado o arquivo {0}" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "para continuar, entre: &{0}" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "contexto inválido para {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "esperado { número número número }" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "esperado um término de expressão" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "esperado um identificador ou especificação de resÃduo" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "especificação de átomo inválida" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "especificação de cadeia inválida" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "sÃmbolo de expressão inválido: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "especificação de modelo inválido" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "END faltando para {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "esperado um número ou um nome de variável" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "esperada uma especificação de resÃduo (ALA, AL?, A*)" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "esperado(a) {0}" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "não esperado(a) {0}" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "sÃmbolo de expressão não identificável: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "sÃmbolo não identificável: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "{0} carga(s) modificada(s)" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} estrutura(s) adicionada(s)" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "Observação: habilitar repetição usando {0}" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "Atraso na animação baseado em: {0}" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} conexão(ões) removida(s)" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} ligação(ões) nova(s); {1} modificada(s)" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Observação: mais que um modelo está envolvido neste contato!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Clicar para ver menu..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet versão {0} {1}.\n" +"\n" +"Um projeto OpenScience.\n" +"\n" +"Consulte http://www.jmol.org para mais informações" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Erro no arquivo:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "designar/criar novo átomo ou ligação (requer {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "menu de contexto recente em janela extra (clicar em Jmol frank)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "remover átomo (requer {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "remover ligação (requer {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "ajustar profundidade (plano trazeiro; requer {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "mover átomo (requer {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "mover todo o objeto \"DRAW\" (requer {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "mover um ponto \"DRAW\" especÃfico (requer {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "mover rótulo (requer {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "mover átomo e minimizar molécula (requer {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "mover e minimizar a molécula (requer {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "mover os átomos selecionados (requer {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "arrastar átomos na direção Z (requer {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simular multitoque usando o \"mouse\")" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "mover ponto de navegação (requer {0} e {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "selecionar um átomo" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "conectar átomos (requer {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "selecione um ponto de isosuperfÃcie (requer {0})" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "selecione um rótulo para alternar entre escondido/visÃvel (requer {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"selecione um átomo para incluÃ-lo em uma medição (após iniciar a medição ou " +"após {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "selecione um ponto ou um átomo ir (requer {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "selecione um ponto DRAW (para medições) (requer {0})" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "menu de contexto completo em janela extra" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "reiniciar (quando clicado fora do modelo)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "girar" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "girar estrutura em torno da ligação (requer {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "girar os átomos selecionados (requer {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "girar no eixo Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"girar no eixo Z (movimento horizontal do \"mouse\") ou zoom (movimento " +"vertical do \"mouse\")" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "selecionar um átomo (requer {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "selecionar e arrastar átomos (requer {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "cancelar a seleção deste grupo de átomos (requer {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "selecionar NENHUM (requer {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" +"adicionar este grupo de átomos ao conjunto de átomos selecionados (requer " +"{0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "marcar/desmarcar seleção (requer {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"se todos estão selecionados, cancelar a seleção; senão, adicionar este grupo " +"de átomos ao conjunto de átomos selecionados (requer {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "selecione um átomo para iniciar ou concluir uma medição" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "ajustar fatia (plano frontal; requer {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "mover fatia/profundidade (ambos os planos; requer {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zoom (ao longo da borda direita da janela)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"clique em dois pontos para girar o eixo no sentido anti-horário (requer {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"clique em dois pontos para girar o eixo no sentido horário (requer {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "parar movimento (requer {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" +"girar o modelo (deslize e solte o botão e pare o movimento simultaneamente)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "translação" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "zoom" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" +"selecione um átomo adicional para poder girar o modelo em torno de um eixo" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "selecione dois átomos para poder girar o modelo em torno de um eixo" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "selecione um átomo adicional para mostrar a relação de simetria" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "selecione dois átomos para mostrar a relação de simetria entre eles" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "cancelado" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "{0} gravado(s)" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Arquivo de log definido para {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "ImpossÃvel definir caminho para arquivo de log." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} átomo(s) oculto(s)" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} átomo(s) selecionado(s)" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Arraste para mover rótulo" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "área de transferência não está acessÃvel -- use o \"applet\" assinado" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} hidrogênio(s) adicionado(s)" + +#~ msgid "Hide Symmetry" +#~ msgstr "Ocultar Simetria" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Carregando o mini-aplicativo Jmol ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} segundos" + +#~ msgid "Java version:" +#~ msgstr "Versão do Java:" + +#~ msgid "1 processor" +#~ msgstr "1 processador" + +#~ msgid "unknown processor count" +#~ msgstr "número de processadores desconhecido" + +#~ msgid "Java memory usage:" +#~ msgstr "Memória usada pelo Java:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB livre(s)" + +#~ msgid "unknown maximum" +#~ msgstr "máximo desconhecido" + +#~ msgid "Open file or URL" +#~ msgstr "Abrir arquivo ou URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ru.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ru.po new file mode 100755 index 000000000000..406505b8c1cb --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ru.po @@ -0,0 +1,2636 @@ +# Russian translation for jmol +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2016-03-26 17:00+0200\n" +"Last-Translator: Ivlev Denis \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Poedit 1.8.7\n" +"Language: ru\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "Хотите заменить текущую модель выбранной?" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Ðлемент?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "КонÑоль Ñценариев Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Файл" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Закрыть" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Справка" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&ПоиÑк..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Команды" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Матем. &функции" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Применить &параматры" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Больше" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Редактор" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "СоÑтоÑние" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Выполнить" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "ОчиÑтить вывод" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "ОчиÑтить ввод" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "ИÑториÑ" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Загрузить" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"нажмите CTRL-ENTER Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° новой Ñтроки или вÑтавьте данные модели и " +"нажмите Загрузить" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"ЗдеÑÑŒ будут поÑвлÑÑ‚ÑŒÑÑ ÑообщениÑ. Вводите команды в поле ниже. Чтобы " +"получить помощь онлайн, выберите пункт меню конÑоли Справка, и она откроетÑÑ " +"в новом окне браузера." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Редактор Ñценариев Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "КонÑоль" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Открыть" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Спереди" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Сценарий" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Проверить" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Ðаверх" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Шаг" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "ПриоÑтановить" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Продолжить" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Завершить работу" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "ОчиÑтить" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Закрыть" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Файл или URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Тип изображениÑ" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "КачеÑтво JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Сжатие PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "КачеÑтво PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Да" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Ðет" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Хотите перезапиÑать файл {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Предупреждение" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Ð’Ñе файлы" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Отмена" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Прервать диалог выбора файла" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Подробно" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Папка" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Открыть выбранную папку" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "СвойÑтва" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Изменён" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Общий файл" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Ðазвание" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Размер" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Файлы типа:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Тип" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Справка" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Помощь окна выбора файла" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Ðачало" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "СпиÑок" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "ИÑкать в:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Ошибка ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ папки" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "ÐÐ¾Ð²Ð°Ñ Ð¿Ð°Ð¿ÐºÐ°" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Создать папку" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Открыть выбранный файл" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Сохранить" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Сохранить выбранный файл" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Сохранить в:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Обновить" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Обновить папку" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Вверх" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Вверх на один уровень" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "ПредпроÑмотр" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Добавить модели" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "ПредпроÑмотр PDB " + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"ЗÐМЕЧÐÐИЕ: ÐŸÐ¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð°Ñ‚Ð¾Ð¼Ð¾Ð² водорода в амидных группах Ñкелета уÑтановлены, " +"но будут игнорированы. Их позиции будут вычиÑлены приблизительно, как в " +"Ñтандартном анализе DSSP.\n" +"ИÑпользуйте {0}, чтобы не применÑÑ‚ÑŒ Ñту аппрокÑимацию.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"ЗÐМЕЧÐÐИЕ: ÐŸÐ¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð°Ñ‚Ð¾Ð¼Ð¾Ð² водорода в амидных группах Ñкелета уÑтановлены и " +"будут иÑпользоватьÑÑ. Результаты могут значительно отличатьÑÑ Ð¾Ñ‚ " +"Ñтандартного анализа DSSP.\n" +"ИÑпользуйте {0}, чтобы игнорировать Ñти позиции атомов водорода.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "ÐрабÑкий" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "ÐÑтурианÑкий" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "ÐзербайджанÑкий" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "БоÑнийÑкий" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "КаталанÑкий" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "ЧешÑкий" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "ДатÑкий" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Ðемецкий" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "ГречеÑкий" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "ÐвÑтралийÑкий английÑкий" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "БританÑкий английÑкий" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "ÐмериканÑкий английÑкий" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "ИÑпанÑкий" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "ÐÑтонÑкий" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "БаÑкÑкий" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "ФинÑкий" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "ФарерÑкий" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "ФранцузÑкий" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "ФризÑкий" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "ГалиÑийÑкий" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "ХорватÑкий" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "ВенгерÑкий" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "ÐрмÑнÑкий" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "ИндонезийÑкий" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "ИтальÑнÑкий" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "ЯпонÑкий" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "ЯванÑкий" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "КорейÑкий" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "МалайÑкий" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "ÐорвежÑкий (букмол)" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "ГолландÑкий" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "ОкÑитанÑкий" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "ПольÑкий" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "ПортугальÑкий" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "БразильÑкий португальÑкий" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "РуÑÑкий" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "СловенÑкий" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "СербÑкий" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "ШведÑкий" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "ТамильÑкий" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Телугу" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Турецкий" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "УйгурÑкий" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "УкраинÑкий" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "УзбекÑкий" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Упрощённый китайÑкий" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Традиционный китайÑкий" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Ðе удалоÑÑŒ получить клаÑÑ Ð´Ð»Ñ Ñилового Ð¿Ð¾Ð»Ñ {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Ðтомы не выбраны — нечего делать!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} атомов будут минимизированы." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "невозможно уÑтановить Ñиловое поле {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "новый" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "отменить (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "повторить (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "по центру" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "добавить атомы водорода" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "Ñвернуть" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "зафикÑировать атомы водорода и Ñвернуть" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "очиÑтить" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "Ñохранить файл" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "Ñохранить ÑоÑтоÑние" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "Обратить Ñтереохимию кольца" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "удалить атом" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "перетащить Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑвÑзи" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "перетащить атом" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "перетащить атом (и минимизировать)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "перетащить молекулу (ALT Ð´Ð»Ñ Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "перетащить и минимизировать молекулу (докинг)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "увеличить зарÑд" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "уменьшить зарÑд" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "удалить ÑвÑзь" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "одинарнаÑ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "двойнаÑ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "тройнаÑ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "увеличить порÑдок" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "уменьшить порÑдок" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "повернуть ÑвÑзь (SHIFT-ТЯÐУТЬ)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "выйти из режима моделированиÑ" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "ПроÑтранÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Ðичего" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Ð’Ñе" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} процеÑÑоров" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} МБ вÑего" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} МБ макÑимум" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "не захватываю" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "Команды Ñценариев Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "РуководÑтво по работе Ñ Ð¼Ñ‹ÑˆÑŒÑŽ" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Переводы" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "СиÑтема" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Ðтомы не загружены" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Конфигурации" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Ðлемент" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Модель/Структура" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Язык" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "По названию оÑтатка" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "По HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "МолекулÑрные орбитали ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "СимметриÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ модели" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Выберите ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Ð’Ñе {0} моделей" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Конфигурации ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "ÐšÐ¾Ð»Ð»ÐµÐºÑ†Ð¸Ñ Ð¸Ð· {0} моделей" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "атомов: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "ÑвÑзей: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "групп: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "цепей: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "полимеров: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "модель {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Вид {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Главное меню" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Биомолекулы" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "биомолекула {0} ({1} атомов)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "загрузить биомолекулу {0} ({1} атомов)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Ðичего" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Отображать только выделенное" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Обратить выделение" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Вид" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "Ðаилучший" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Спереди" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Слева" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Справа" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Сверху" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Снизу" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Сзади" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "ОÑÑŒ Ñ…" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "ОÑÑŒ y" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "ОÑÑŒ z" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "ОÑÑŒ а" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "ОÑÑŒ b" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "Axis c" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "Сцены" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Белок" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "КаркаÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Боковые цепи" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "ПолÑрные оÑтатки" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "ÐеполÑрные оÑтатки" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "ОÑнòвные оÑтатки (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "КиÑлотные оÑтатки(-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "ÐезарÑженные оÑтатки" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Ðуклеиновые" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "ДÐК" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "Ð ÐК" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "ОÑнованиÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Пары AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Пары GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Пары AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Ð’Ñ‚Ð¾Ñ€Ð¸Ñ‡Ð½Ð°Ñ Ñтруктура" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Гетеро" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Ð’Ñе \"HETATM\" из PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Ð’Ñе молекулы раÑтворителÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Ð’Ñе молекулы воды" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Ðеводный раÑтворитель" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "Ðеводный HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Лиганд" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Углеводы" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Ðичего из перечиÑленного" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Стиль" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Схема" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "СРК полуÑферичеÑÐºÐ°Ñ (Стюарта-Бриглеба)" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "ШароÑтержневаÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "СтержневаÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "КаркаÑнаÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "КомикÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "След" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Ðтомы" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Выкл" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% Ван-дер-ВаальÑова радиуÑа" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "СвÑзи" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Вкл." + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Водородные ÑвÑзи" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "РаÑÑчитать" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Показывать Ð-ÑвÑзи как идущие от боковых групп" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Показывать Ð-ÑвÑзи как идущие от Ñкелета" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "ДиÑульфидные моÑтики" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Показывать SS-ÑвÑзи как идущие от боковых групп" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Показывать SS-ÑвÑзи как идущие от Ñкелета" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Структуры" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "КомикÑ+ракеты" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Ленты" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Ракеты" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Ðити" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "ВибрациÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Векторы" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Спектры" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "ЯМР1H" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "ЯМР13С" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} пикÑелей" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "МаÑштаб {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "СтереографичеÑкаÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Очки КраÑный+Голубой" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Очки КраÑный+Синий" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Очки КраÑный+Зелёный" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Метод перекрёÑтного взглÑда" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Метод параллельного взглÑда" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Метки" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Символ Ñлемента" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Ðазвание атома" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Ðтомный номер" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "РаÑположение метки на атоме" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "По центру" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Вверху Ñправа" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Внизу Ñправа" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Вверху Ñлева" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Внизу Ñлева" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Цвет" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "По Ñхеме" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Ðлемент (СРК)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Ðльтернативное раÑположение" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Молекула" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Формальный зарÑд" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "ЧаÑтичный зарÑд" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Температура (отноÑÐ¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑˆÐºÐ°Ð»Ð°)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Температура (фикÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ ÑˆÐºÐ°Ð»Ð°)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "ÐминокиÑлота" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Цепь" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Группа" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Мономер" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "По аминокиÑлоте/нуклеотиду" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "По умолчанию" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Черный" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Белый" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Голубой" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "КраÑный" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Оранжевый" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Жёлтый" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Зелёный" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Синий" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Индиго" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Фиолетовый" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Оранжево-розовый" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Оливковый" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Тёмно-бордовый" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Серый" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Синевато-Ñерый" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Золотой" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Светло-лиловый" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Сделать непрозрачным" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Сделать прозрачным" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Фон" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "ПоверхноÑти" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "ОÑи" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Рамка" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "ÐÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°Ñ€Ð½Ð°Ñ Ñчейка" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "МаÑштаб" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Увеличить" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Уменьшить" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Вращение" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "СкороÑÑ‚ÑŒ по Ð¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "СкороÑÑ‚ÑŒ по Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "СкороÑÑ‚ÑŒ по Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Кадров в Ñекунду" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "ÐнимациÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Режим анимации" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Проиграть однократно" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Палиндром" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Зациклить" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "ВоÑпроизвеÑти" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Стоп" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Следующий кадр" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Предыдущий кадр" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Перемотать к началу" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "От конца к началу" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "ПерезапуÑк" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "ИзмерениÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Двойной щелчок начинает и завершает измерениÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Щелчок Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ Ñ€Ð°ÑÑтоÑний" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Щелчок Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ ÑƒÐ³Ð»Ð¾Ð²" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Щелчок Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ñ€Ñионных (диÑдральных) углов" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Щелкните два атома чтобы показать поÑледовательноÑÑ‚ÑŒ в конÑоли" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Удалить измерениÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Показать результаты измерений" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Единицы раÑÑтоÑÐ½Ð¸Ñ - нанометры" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Единицы раÑÑтоÑÐ½Ð¸Ñ - ангÑтремы" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Единицы раÑÑтоÑÐ½Ð¸Ñ - пикометры" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "ДейÑтвие по щелчку" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Центрировать" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "СвойÑтва" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Метка" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Выделить атом" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Выделить цепь" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Выделить Ñлемент" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "Ðабор инÑтрументов" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Выделить группу" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Выделить молекулу" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Выберите Ñайт" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Показать операцию Ñимметрии" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Показать" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "КонÑоль Ñценариев Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Содержимое файла" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Заголовок файла" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "JVXL-данные изоповерхноÑти" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "JVXL-данные молекулÑрной орбитали" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Модель" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "ОриентациÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "ПроÑтранÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Текущее ÑоÑтоÑние" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Файл" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "ÐкÑпорт" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Перезагрузить" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Открыть файл PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Open local file" +msgstr "Открыть локальный файл" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Open URL" +msgstr "Открыть URL" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Загрузить Ñлементарную Ñчейку" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Открыть Ñценарий" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "Захват" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "Захватить качаниÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "Захватить вращение" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "Ðачать захват" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "Закончить захват" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "Отключить захват" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "Возобновить захват" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "УÑтановить ÑкороÑÑ‚ÑŒ Ð¿Ñ€Ð¾Ð¸Ð³Ñ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ñ…Ð²Ð°Ñ‚Ð°" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "Переключить зацикливание захвата" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Сохранить копию {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Сохранить Ñценарий Ñ ÑоÑтоÑнием" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Сохранить Ñценарий Ñ Ð¸Ñторией" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "ÐкÑпорт {0} изображениÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Сохранить как файл PNG/JMOL (риÑунок+zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Сохранить JVXL-изоповерхноÑÑ‚ÑŒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "ÐкÑпорт {0} 3D модели" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "РаÑчет" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "ÐžÐ¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñтруктуры" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Ðабор инÑтрументов" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Извлечь MOL-данные" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Ð¢Ð¾Ñ‡ÐµÑ‡Ð½Ð°Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾ÑÑ‚ÑŒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "ПоверхноÑÑ‚ÑŒ Ван-дер-ВаальÑа" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "МолекулÑÑ€Ð½Ð°Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ð¾ÑÑ‚ÑŒ" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "ПоверхноÑÑ‚ÑŒ раÑÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚ÐµÐ»Ñ (зонд в {0}-ÐнгÑтрем )" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "ПоверхноÑÑ‚ÑŒ, доÑÑ‚ÑƒÐ¿Ð½Ð°Ñ Ñ€Ð°Ñтворителю (VDW + {0} ÐнгÑтрем)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "ÐлектроÑтатичеÑкий потенциал молекулы (ВЕСЬ диапазон)" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "ÐлектроÑтатичеÑкий потенциал молекулы (диапазон -0.1 0.1)" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Перезагрузить {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Перезагрузить {0} + Показать {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Перезагрузить + полиÑдры" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Скрыть" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "ТочечнаÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Ширина в пикÑелÑÑ…" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} пикÑелей" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Ширина в ÐнгÑтремах" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Ореол выделениÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Показать атомы водорода" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Показывать измерениÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Глубина перÑпективы" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Цвета RasMol " + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "О программе..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "ОШИБКРкомпилÑтора Ñкрипта:" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "ожидаютÑÑ Ð¾Ñи x y z" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} не разрешен при отображении фоновой модели" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "неверное чиÑло аргументов" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Ð’Ñе индекÑÑ‹ Миллера не могут равнÑÑ‚ÑŒÑÑ Ð½ÑƒÐ»ÑŽ." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "плохой цвет [R,G,B]" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "ожидаетÑÑ Ð±ÑƒÐ»ÐµÐ²Ð° переменнаÑ" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "ожидаетÑÑ Ð±ÑƒÐ»ÐµÐ²Ð° или чиÑÐ»Ð¾Ð²Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "ожидаетÑÑ Ð±ÑƒÐ»ÐµÐ²Ð° или чиÑÐ»Ð¾Ð²Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¸Ð»Ð¸ {0}" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "не могу уÑтановить значение" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "ожидаетÑÑ Ñ†Ð²ÐµÑ‚" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "требуетÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ цвета или палитры (Jmol, Rasmol)" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "ожидаетÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "требуетÑÑ {x y z} или $name или (atom expression)" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "объект Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ñовки не определен" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "неожиданное окончании команды ÑценариÑ" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "ожидаетÑÑ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¹ (atom expression)" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "ожидаетÑÑ (atom expression) или целое чиÑло" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "ожидаетÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ файла" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "файл не найден" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "неÑовмеÑтимые аргументы" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "недоÑтаточно аргументов" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "ожидаетÑÑ Ñ†ÐµÐ»Ð¾Ðµ чиÑло" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "целое чиÑло вне диапазона ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "недопуÑтимый аргумент" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "неверный порÑдок параметров" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "ожидалоÑÑŒ ключевое Ñлово" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "нет доÑтупных данных по коÑффициентам МО" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "ТребуетÑÑ Ð¸Ð½Ð´ÐµÐºÑ ÐœÐž от 1 до {0}" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "Ð´Ð»Ñ Ñтого кадра нет доÑтупных данных по базиÑу/коÑффициентам МО" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "нет доÑтупных данных по заÑеленноÑти МО" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Ð’ Ñтом файле еÑÑ‚ÑŒ только одна молекулÑÑ€Ð½Ð°Ñ Ð¾Ñ€Ð±Ð¸Ñ‚Ð°Ð»ÑŒ" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} требует, чтобы была отображена только одна модель" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} требует, чтобы была загружена только одна модель" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Данные недоÑтупны" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Из файла не Ñчитаны чаÑтичные зарÑды, они необходимы Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ данных в " +"MEP в Jmol." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Ðет Ñлементарной Ñчейки" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "ожидаетÑÑ Ñ‡Ð¸Ñло" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "чиÑло должно быть ({0} или {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "деÑÑтичное чиÑло вне диапазона ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "ожидаетÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ объекта поÑле '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"ожидаетÑÑ Ð¿Ð»Ð¾ÑкоÑÑ‚ÑŒ -- три точки либо atom expressions либо {0} либо {1} " +"либо {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "ожидаетÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ ÑвойÑтва" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr " проÑтранÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° {0} не найдена" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "ожидаетÑÑ Ñтрока в кавычках" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "ожидаетÑÑ Ñтрока в кавычках или идентификатор" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "указано Ñлишком много точек вращениÑ" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "Ñлишком много уровней ÑценариÑ" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "нераÑпознанное ÑвойÑтво атома" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "нераÑпознанное ÑвойÑтво ÑвÑзи" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "нераÑÐ¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "нераÑпознанное выражение во Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "нераÑпознанный объект" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "нераÑпознанный {0} параметр" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" +"нераÑпознанный {0} параметр в Ñценарии ÑоÑтоÑÐ½Ð¸Ñ Jmol (вÑе равно уÑтановлен)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "неопознанный параметр SHOW — иÑпользуйте {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "что запиÑать? Â«Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°Â» {0} или {1}" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "ОШИБКРÑкрипта:" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "показ Ñохранен: {0}" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} атомов удалено" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} водородных ÑвÑзей" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "файл {0} Ñоздан" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "чтобы вернутьÑÑ, введите: &{0}" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "недейÑтвительный контекÑÑ‚ Ð´Ð»Ñ {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "ожидаетÑÑ { чиÑло чиÑло чиÑло} " + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "ожидаетÑÑ ÐºÐ¾Ð½ÐµÑ† выражениÑ" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "ожидаетÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ или опиÑание оÑтатка" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "неверное опиÑание атома" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "неверное опиÑание цепи" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "недейÑтвительный Ñимвол выражениÑ: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "неверное опиÑание модели" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "отÑутÑтвует КОÐЕЦ Ð´Ð»Ñ {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "ожидаетÑÑ Ñ‡Ð¸Ñло или Ð¸Ð¼Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "ожидаетÑÑ Ð¾Ð¿Ð¸Ñание оÑтатка (ALA, AL?, A*)" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "ожидаетÑÑ {0}" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "неожиданный {0}" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "нераÑпознанный Ñимвол выражениÑ: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "нераÑпознанный Ñимвол: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "{0} зарÑдов изменено" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "{0} каркаÑов добавлено" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "Примечание: Включите зацикливание, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ {0}" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "Задержка анимации, оÑÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð½Ð°: {0}" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} Ñоединений удалено" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} новых ÑвÑзей; {1} изменено" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "Примечание: Более, чем одна модель задейÑтвована в Ñтом контакте!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Ðажмите Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы вызвать меню..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Ðпплет Jmol верÑии {0} {1}.\n" +"\n" +"Проект OpenScience.\n" +"\n" +"Подробнее на Ñайте http://www.jmol.org" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Ошибка файла:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "назначить/новый атом или ÑвÑзь (требует {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "показать недавнее контекÑтное меню (click on Jmol frank)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "удалить атом (требует {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "удалить ÑвÑзь (требует {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "наÑтроить глубину (Ñ‡ÐµÑ€Ð½Ð°Ñ Ð¿Ð»Ð¾ÑкоÑÑ‚ÑŒ; требует {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "передвинуть атом (требует {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "передвинуть веÑÑŒ объект DRAW (требует {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "передвинуть отдельную точку DRAW (требует {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "передвинуть метку (требует {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "передвинуть атом и минимизировать молекулу (требует {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "передвинуть и минимизировать молекулу (требует {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "передвинуть выбранные атомы (требует {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "Ñ‚Ñнуть атомы в направлении Z (требует {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "Ñимулировать мульти-тач иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¼Ñ‹ÑˆÑŒ)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "перемеÑтить навигационную точку (требует {0} и {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "выбрать атом" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "Ñоединить атомы (требует {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "выбрать точку ИЗОПОВЕРХÐОСТИ (требует {0})" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "выбрать метку Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñкрыть/отображать (требует {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"выбрать атом Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð² измерение (поÑле начала Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ поÑле {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "выбрать точку или атом чтобы перемеÑтитьÑÑ Ñ‚ÑƒÐ´Ð° (требует {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "выбрать точку DRAW (Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ð¹) (требует {0})" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "показать полное контекÑтное меню" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "ÑÐ±Ñ€Ð¾Ñ (при отщелкивании модели)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "повернуть" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "повернуть ветвь вокруг ÑвÑзи (требует {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "повернуть выделенные атомы (требует {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "повернуть вокруг Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"повернуть вокруг Z (горизонтальным движением мыши) или маÑштаб (вертикальным " +"движением мыши)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "выделить атом (требует {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "выделить и Ñ‚Ñнуть атомы (требует {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "ÑнÑÑ‚ÑŒ выделение Ñ Ñтой группы атомов (требует {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "ÑнÑÑ‚ÑŒ выделение (требует {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "добавить Ñту группу атомов к выделенным (требует {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "вкл/выкл выделение (требует {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"еÑли выделено вÑÑ‘, ÑнÑÑ‚ÑŒ выделение, в противном Ñлучае добавить Ñту группу " +"атомов к выделенным (требует {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "выбрать атом Ð´Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° или Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ð¸Ð·Ð¼ÐµÑ€ÐµÐ½Ð¸Ð¹" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "наÑтроить Ñлой (переднÑÑ Ð¿Ð»Ð¾ÑкоÑÑ‚ÑŒ; требует {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "передвинуть Ñлой/окно глубины (обе плоÑкоÑти; требует {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "маÑштаб (по правому краю окна)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"нажмите на две точки чтобы повернуть вокруг оÑи против чаÑовой Ñтрелки " +"(требует {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"нажмите на две точки чтобы повернуть вокруг оÑи по чаÑовой Ñтрелке (требует " +"{0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "оÑтановить движение (требует {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" +"поворачивать модель (Ñдвиньте и отпуÑтите кнопку и оÑтановите движение " +"одновременно)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "перемеÑтить" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "маÑштаб" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "выберите еще один атом чтобы повернуть модель вокруг оÑи" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "выберите два атома чтобы повернуть модель вокруг оÑи" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "выберите еще один атом, чтобы отобразить отношение Ñимметрии" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "выберите два атома, чтобы отобразить отношение Ñимметрии между ними" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "отменено" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "{0} Ñохранен" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "УÑтановка файла журнала в {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Ðевозможно уÑтановить путь к файлу журнала." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} атомов Ñкрыто" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} атомов выбрано" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Перетащите Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚ÐºÐ¸" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "буфер недоÑтупен — иÑпользуйте подпиÑанный апплет" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "добавлено {0} атомов водорода" + +#~ msgid "Hide Symmetry" +#~ msgstr "Скрыть Ñимметрию" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Загрузка апплета Jmol..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} Ñекунд" + +#~ msgid "Java version:" +#~ msgstr "ВерÑÐ¸Ñ Java:" + +#~ msgid "1 processor" +#~ msgstr "1 процеÑÑор" + +#~ msgid "unknown processor count" +#~ msgstr "неизвеÑтное чиÑло процеÑÑоров" + +#~ msgid "Java memory usage:" +#~ msgstr "ИÑпользрвание памÑти Java:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} МБ Ñвободно" + +#~ msgid "unknown maximum" +#~ msgstr "неизвеÑтный макÑимум" + +#~ msgid "Open file or URL" +#~ msgstr "Открыть файл или URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/sl.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/sl.po new file mode 100755 index 000000000000..d96c59f14b13 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/sl.po @@ -0,0 +1,2599 @@ +# Slovenian translation for jmol +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Domen \n" +"Language-Team: Slovenian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Element?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Skriptna konzola Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Zapri" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&PomoÄ" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Iskanje ..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Ukazi" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "MatematiÄne &funkcije" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Nastavi ¶metre" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&VeÄ" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Urejevalnik" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Stanje" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Zaženi" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "PoÄisti izhod" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "PoÄisti vnos" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Zgodovina" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Naloži" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Urejevalnik skriptov Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konzola" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Odpri" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Spredaj" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Skript" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Preveri" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Vrh" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Korak" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Premor" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Nadaljuj" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "PoÄisti" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Zapri" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Datoteka ali URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Vrsta slike" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "Kakovost JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "Stiskanje PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "Kakovost PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Da" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Ne" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Želite prepisati datoteko {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Opozorilo" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Vse datoteke" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "PrekliÄi" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Prekini pogovorno okno izbirnika datoteke" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Podrobnosti" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Mapa" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Odpri izbrano mapo" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Lastnosti" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Spremenjeno" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Ime" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Ime datoteke:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Velikost" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Datoteke vrste:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Vrsta" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "PomoÄ" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Domov" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Seznam" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Poglej v:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Napaka pri ustvarjanju nove mape" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Nova mapa" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Ustvari novo mapo" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Odpri izbrano datoteko" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Shrani" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Shrani izbrano datoteko" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Shrani v:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Posodobi" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Gor" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Eno raven navzgor" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "V redu" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Predogled" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "ArabÅ¡Äina" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "KatalonÅ¡Äina" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "ÄŒeÅ¡Äina" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "DanÅ¡Äina" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "NemÅ¡Äina" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "GrÅ¡Äina" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Britanska angleÅ¡Äina" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "AmeriÅ¡ka angleÅ¡Äina" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Å panÅ¡Äina" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "EstonÅ¡Äina" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "FinÅ¡Äina" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "FrancoÅ¡Äina" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "HrvaÅ¡Äina" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "MadžarÅ¡Äina" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "IndonezijÅ¡Äina" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "ItalijanÅ¡Äina" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "JaponÅ¡Äina" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "KorejÅ¡Äina" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "NizozemÅ¡Äina" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "PoljÅ¡Äina" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "PortugalÅ¡Äina" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brazilska portugalÅ¡Äina" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "RuÅ¡Äina" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "SlovenÅ¡Äina" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Å vedÅ¡Äina" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "TurÅ¡Äina" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "UkrajinÅ¡Äina" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Poenostavljena kitajÅ¡Äina" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Tradicionalna kitajÅ¡Äina" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Izbran ni noben atom -- niÄesar ni za narediti!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomi bodo minimirani." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "novo" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "razveljavi (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "uveljavi (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "dodaj vodike" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimiraj" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "poÄisti" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "shrani datoteko" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "shrani stanje" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "obrni stereokemijo obroÄa" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "izbriÅ¡i atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "povleci na vez" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "povleci atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "povleci atom (in minimiraj)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "poveÄaj naboj" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "zmanjÅ¡aj naboj" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "izbriÅ¡i vez" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "enojna" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "dvojna" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "trojna" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "zavrti vez (SHIFT-VLEÄŒENJE)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "zapusti naÄin modeliranja" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Brez" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Vsi" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} procesorjev" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB skupno" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB najveÄ" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Skriptna konzola Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "PriroÄnik miÅ¡ke" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Prevodi" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistem" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Jezik" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Molekulske orbitale ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Simetrija" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Informacije o modelu" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Izberi ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Vseh {0} modelov" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Zbirka {0} modelov" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomi: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "vezi: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "skupine: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "verige: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polimeri: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Poglej {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Glavni meni" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolekule" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolekula {0} ({1} atomov)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "naloži biomolekulo {0} ({1} atomov)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Brez" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Prikaži samo izbrane" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Obrni izbor" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Pogled" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Spredaj" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Levo" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Desno" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Spodaj" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Zadaj" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Beljakovina" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Stranske verige" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nukleinsko" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Baze" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "Pari AT" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "Pari GC" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "Pari AU" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Ogljikov hidrat" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Noben od zgornjih" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Slog" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Shema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomi" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "IzkljuÄeno" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0} % van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Vezi" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "VkljuÄeno" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Vodikove vezi" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "IzraÄunaj" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disulfidne vezi" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Zgradbe" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektorji" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} slikovnih pik" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "RdeÄa+cian oÄala" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "RdeÄa+modra oÄala" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "RdeÄa+zelena oÄala" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Oznake" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "S simbolom elementa" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Z imenom atoma" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "S Å¡tevilom atoma" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "zapusti naÄin modeliranja" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Skriptna konzola Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Odpri izbrano datoteko" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Odpri" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Napaka datoteke:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid "Hide Symmetry" +#~ msgstr "Skrij simetrijo" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Nalaganje programÄka Jmol ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} sekund" + +#~ msgid "Java version:" +#~ msgstr "RazliÄica Jave:" + +#~ msgid "1 processor" +#~ msgstr "1 procesor" + +#~ msgid "unknown processor count" +#~ msgstr "neznano Å¡tevilo procesorjev" + +#~ msgid "Java memory usage:" +#~ msgstr "Uporaba spomina Jave:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB prosto" + +#~ msgid "unknown maximum" +#~ msgstr "neznan maksimum" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/sv.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/sv.po new file mode 100755 index 000000000000..ff049bbcf751 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/sv.po @@ -0,0 +1,2637 @@ +# Swedish translation for jmol +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 23:46+0000\n" +"Last-Translator: Nicolas Vervelle \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Grundämne?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol skriptkonsol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Arkiv" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Stäng" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Hjälp" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Sök..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Kommandon" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Matte &Funktioner" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Bestäm &Parametrar" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Mer" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Redigerare" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "TillstÃ¥nd" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Kör" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Rensa utmatning" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Rensa inmatning" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Historik" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Ladda" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"tryck CTRL-ENTER för en ny rad eller klistra in modelldata och tryck pÃ¥ Ladda" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Meddelanden kommer att synas här. Skriv in kommandon i rutan nedan. Klicka " +"pÃ¥ konsolens Hjälpmeny för on-linehjälp, den kommer att visas i ett nytt " +"fönster." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol Skriptredigerare" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konsol" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Öppna" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "FramifrÃ¥n" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Skript" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Kontrollera" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Överst" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Stega" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Paus" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Fortsätt" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Stopp" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Rensa" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Stäng" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Fil eller URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Bildtyp" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG-kvalitet ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG-komprimering ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG-kvalitet ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Ja" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Nej" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Vill du skriva över filen {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Varning" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Alla filer" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Avbryt" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Avbryt filväljardialog" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Detaljer" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Mapp" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Öppna vald mapp" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Attribut" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Ändrad" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Ospecificerad fil" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Namn" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Filnamn:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Storlek" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Filer av typen:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Typ" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Hjälp" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Filväljarhjälp" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Hem" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Lista" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Titta i:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Fel vid skapandet av ny mapp" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Ny mapp" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Skapa ny mapp" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Öppna vald fil" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Spara" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Spara vald fil" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Spara i:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Uppdatera" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Uppdatera kataloglistan" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Upp" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Upp en nivÃ¥" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "OK" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Förhandsgranska" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Lägg till modeller" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"NOTERA: Backbone-amiders vätepositioner finns men ignoreras. Deras " +"positioner approximeras, som i standard DSSP-analys.\n" +"Använd {0} för att inte utnyttja denna approximation.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"NOTERA: Backbone-amiders vätepositioner finns och kommer att användas. " +"Resultaet kan skilja signifikant frÃ¥n standard DSSP-analys.\n" +"Använd {0} för att ignorera dessa vätepositioner.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arabiska" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "Asturiska" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "Bosniska" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Katalanska" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Tjeckiska" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Danska" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Tyska" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Grekisk" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "Australiensisk engelska" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Brittisk engelska" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Amerikansk engelska" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Spanska" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estniska" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Finska" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Färöiska" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Franska" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Frisiska" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "Galiciska" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Kroatiska" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Ungerska" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "Armenska" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Indonesiska" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Italienska" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japanska" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Javanesiska" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Koreanska" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "Malaysiska" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norska (BokmÃ¥l)" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Holländska" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitanska" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Polska" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portugisiska" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brasiliansk portugisiska" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Ryska" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Slovenska" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "Serbiska" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Svenska" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamilska" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Telugu" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Turkiska" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "Uiguriska" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukrainska" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Kinesiska (förenklad)" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Kinesiska (Traditionell)" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Hittar inte class för kraftfält {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Inga atomer valda -- inget att göra!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomer kommer att bli minimerade" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "kan inte ställa in kraftfält {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "nytt" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "Ã¥ngra (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "gör om (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "centrera" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "lägg till väte" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "minimera" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "ordna väte och minimera" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "rensa" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "spara fil" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "spara tillstÃ¥nd" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "invertera ringstereokemi" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "radera atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "dra till bindning" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "dra atom" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "dra atom (och minimera)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "dra och minimera molekyl (docka)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "öka laddning" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "minska laddning" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "radera bindning" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "enkel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "dubbel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "trippel" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "öka ordning" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "minska ordning" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "rotera bindning (SHIFT-DRA)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "avsluta modelkit mode" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Rymdgrupp" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Ingen" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Alla" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} processorer" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "{0} MB totalt" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "{0} MB maximalt" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol skriptkonsol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Musmanual" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Översättningar" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "System" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Inga atomer hämtade" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Konfigurationer" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Grundämne" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Modell/Ram" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "SprÃ¥k" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Efter rest-namn" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "Efter HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Molekylorbitaler ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Symmetri" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Modellinformation" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Välj ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Alla {0} modeller" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Konfigurationer ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Samling av {0} modeller" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomer: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "bindningar: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "grupper: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "kedjor: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polymerer: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "modell {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Vy {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Huvudmeny" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biomolekyler" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biomolekyl {0} ({1} atomer)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "hämta biomolekyl {0} ({1} atomer)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Ingen" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Visa enbart valda" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Omvänd markering" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Vy" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "FramifrÃ¥n" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Vänster" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Höger" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "UppifrÃ¥n" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "UnderifrÃ¥n" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Tillbaka" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Axlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Axlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Axlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Axlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Axlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Axlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Protein" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Backbone" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Sidokedjor" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Polära enheter" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Opoära enheter" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Basiska enheter" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Sura enheter" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "Oladdade enheter" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nucleär" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Baser" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT-par" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC-par" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU-par" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Sekundär struktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Alla PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Enbart lösningsmedel" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Enbart vatten" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Icke vattenhaltigt lösningsmedel" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "Icke vattenhaltigt HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Kolhydrat" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Inget av ovanstÃ¥ende" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Visa" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Schema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK Spacefill" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Kula och pinne" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Pinnar" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "TrÃ¥dmodell" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Avbild" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "SpÃ¥ra" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Av" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Bindningar" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "PÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Vätebindningar" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Beräkna" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Bestäm vätebindningars sidokedjor" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Bestäm vätebindningar i grundstruktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disulfidbindningar" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Bestäm SS-bindningars sidokedja" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Bestäm SS-bindningar i grundstruktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Strukturer" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "Vibration" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektorer" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Spectrum" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} pixlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Skala {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "3D-vy" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Röd+Cyan glas" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Röd+BlÃ¥ glas" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Röd+Gröna glas" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Etiketter" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Med grundämnessymbol" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Med atomnamn" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Med atomnummer" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Placera etikett pÃ¥ atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Centrerad" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Övre högra hörnet" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Nedre högra hörnet" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Övre vänstra hörnet" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Nedre vänstra hörnet" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Färg" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Efter schema" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Grundämne (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Alternativ placering" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekyl" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Formell laddning" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Partiell laddning" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Temperatur (Relativ)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Temperatur (Fast)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Aminosyra" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Kedja" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Grupp" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Välskapad" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Ärva" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Svart" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Vit" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "CyanblÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Röd" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Orange" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Gul" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Grön" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "BlÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Indigo" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Violett" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Laxrosa" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Olivgrön" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Kastanjebrun" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "GrÃ¥" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Guldfärgad" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Gör opak" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Gör halvgenomskinlig" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Bakgrund" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Ytor" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Axlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Enhetscell" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zooma" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Zooma in" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Zooma ut" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Rotera" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Animering" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Spela en gÃ¥ng" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Upprepa" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Spela upp" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Stopp" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Nästa ruta" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "FöregÃ¥ende ruta" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Spola tillbaka" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "BakÃ¥t" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Starta om" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Mätningar" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Dubbelklick börjar och avslutar alla mätningar" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Klicka för avständsmätning" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Klicka för vinkelmätning" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Klicka för torsionsmätning (dihedral)" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Klicka pÃ¥ tvÃ¥ atormer för att visa sekvens i konsolen" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Radera mätningar" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Lista mätningar" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Avständsenhet nanometer" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "AvstÃ¥ndsenhet Ã…ngström" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Avständsenhet picometer" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Centrera" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Identitet" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Etikett" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Välj atom" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Välj kedja" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Välj element" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "avsluta modelkit mode" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Välj grupp" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Välj molekyl" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Välj plats" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Visa symmetrioperation" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Visa" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol skriptkonsol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "FilinnehÃ¥ll" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Filhuvud" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Molekylorbital JVXL data" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Modell" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Orientering" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Rymdgrupp" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Aktuellt tillstÃ¥nd" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Arkiv" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Hämta igen" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Öppna frÃ¥n PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Öppna vald fil" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Öppna" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Hämta fullständig enhetscell" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Öppna skript" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Spara en kopia av {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Spara skript med status" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Spara skript med history" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "Exportera {0} bild" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Spara sllt som JMOL-fil (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Spara JVXL isosurface" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "Exportera {0} 3D-modell" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Beräkning" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Optimera struktur" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Modelluppsättning" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Extrahera MOL-data" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Dot-yta" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "van der Waals-yta" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Molekylyta" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Hämta igen {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Dölj" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Punktmarkerad" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Pixelbredd" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Visa väte" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Visa mÃ¥tt" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Perspektivdjup" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol-färger" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Om..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "script compiler ERROR: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "x y z-axlar förväntas" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} inte tillÃ¥tet när bakgrundsmodell visas" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "felaktigt antal argument" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Miller indices kan inte alla vara noll." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "felaktig [R,G,B]-färg" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "boolesk förväntas" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "boolesk eller tal förväntas" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "boolesk, tal, eller {0} förväntas" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "färg förväntas" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "en färg eller palettnamn (Jmol, Rasmol) krävs" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "Kommando förväntas" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} eller $namn eller (atomuttryck) krävs" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "ritobjekt inte definierat" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "oväntat end of script command" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "filnamn förväntas" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "otillräckliga argument" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "ogiltigt argument" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "ogiltig parameterordning" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "nyckelord förväntat" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "inga MO-koefficientdata tillgängliga" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "Ett MO-index frÃ¥n 1 till {0} krävs" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "inga MO bas/koefficientdata tillgängliga för denna bildruta" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "Inga MO occupancy data tillgängliga" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Endast en molekylorbital är tillgänglig i denna fil" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} kräver att endast en modell visas" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} kräver att endast en modell hämtas" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Inga data tillgängliga" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Inga partiella laddningar lästes frÃ¥n filen; Jmol behöver det för att " +"rendera MEP-data." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Ingen enhetscell" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "tal förväntas" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "tal mÃ¥ste vara ({0} eller {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "decimaltal utanför intervallet ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "objektnamn förväntat efter '$'" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"plan förväntat -- antingen tre punkter eller atomuttryck eller {0} or {1} or " +"{2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "egenskapsnamn förväntat" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "space group {0} hittades inte." + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "sträng inom citationstecken förväntad" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "sträng inom citationstecken eller identifierare förväntad" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "för mÃ¥nga rotationspunkter specifierade" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "för mÃ¥nga script-nivÃ¥er" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "okänd atomegenskap" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "okänd bindningsegenskap" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "okänt kommando" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "runtime okänt uttryck" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "okänt objekt" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "okänd {0} parameter i Jmol state script (set ändÃ¥)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "okänd VISA-parameter -- använd {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "skriva vad? {0} eller {1} \"filename\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "script-FEL: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atomer raderade" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} vätebindningar" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "fil {0} skapad" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "end of expression förväntat" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "identifier eller residue specification förväntad" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "ogiltig atomspecifikation" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "ogiltig kedjespecifikation" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "ogiltig modellspecifikation" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "END fattas för {0}" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "tal eller variabelnamn förväntas" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "rest-specificering (ALA, AL?, A*) förväntas" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} förväntas" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, fuzzy, java-format +msgid "{0} struts added" +msgstr "{0} väte tillagda" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} anslutningar raderade" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} nya bindningar; {1} modifierade" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Klicka för meny..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet version {0} {1}.\n" +"\n" +"Ett projekt inom OpenScience.\n" +"\n" +"Se http://www.jmol.org för mer information" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Filfel:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "inför/ny atom eller bindning (requires {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "popup föregÃ¥ende kontextmeny (klicka pÃ¥ Jmol frank)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "radera atom (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "radera bindning (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "justera djup (back plane; requires {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "flytta atom (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "flytta hela DRAW-objektet (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "flytta specifik DRAW-punkt (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "flytta etikett (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "flytta atom och minimera molekyl (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "flytta och minimera molekyl (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "flytta markerade atomer (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "dra atomer i z-riktning (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "simulera multi-touch med musen)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "navigationspunkt för förflyttning (kräver {0} och {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "välj en atom" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "förbind atomer (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "välj en ISOSURFACE-punkt (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "välj en etikett för för att byta mellan dold/visa (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"välj en atom för att inkludera den i en mätning (efter att ha startat en " +"mätning eller efter {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "välj en punkt eller atom att navigera till (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "välj en DRAW-punkt (för mätning) (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "popup fullständig kontextmeny" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "Ã¥terställ (vid klickning utaför modellen)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "rotera" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "rotera del kring bindning (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "rotera markerade atomer (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "rotera Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"rotera Z (horisontell förflyttning av musen) eller zooma (vertikal " +"förflyttning av musen)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "välj en atom (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "markera och dra atomer (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "avmarkera denna atomgrupp (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "välj NONE (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "lägg till denna atomgrupp till markerade atomer (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "omvänd markering (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"om alla är markerade, avmarkera alla, annars lägg till denna atomgrupp till " +"markerade atomer (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "välj en atom för att initiera eller avsluta en mätning" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "justera slab (front plane; requires {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "flytta slab/depth-fönster (both planes; requires {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "zooma (längs högra sidan av fönstret)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "klicka pÃ¥ tvÃ¥ punkter för att rotera runt axel moturs (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "klicka pÃ¥ tvÃ¥ punkter för att rotera runt axel medurs (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "stanna rörelse (kräver {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "rotera modell (svep och släpp knapp och stanna rörelsen samtidigt)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "förflytta" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "zooma" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "välj en atom till för att rotera modellen runt en axel" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "välj tvÃ¥ atomer för att rotera modellen runt en axel" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "välj en atom till för att visa symmetriförhÃ¥llande" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "välj tvÃ¥ atomer för att visa symmetriförhÃ¥llandet mellan dem" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Loggfil sätts till {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Kan inte etablera väg till loggfil" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atomer dolda" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atomer markerade" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Drag för att flytta etikett" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "urklipp är inte tillgängligt - används den signerade appleten" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} väte tillagda" + +#~ msgid "Hide Symmetry" +#~ msgstr "Göm symmetri" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Hämtar Jmol applet..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} sekunder" + +#~ msgid "Java version:" +#~ msgstr "Java-version:" + +#~ msgid "1 processor" +#~ msgstr "1 processor" + +#~ msgid "unknown processor count" +#~ msgstr "okänt antal processorer" + +#~ msgid "Java memory usage:" +#~ msgstr "Java minnesanvändning:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB ledigt" + +#~ msgid "unknown maximum" +#~ msgstr "okänt maximum" + +#~ msgid "Open file or URL" +#~ msgstr "Öppna fil eller URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ta.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ta.po new file mode 100755 index 000000000000..4f0b0ab1db83 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ta.po @@ -0,0 +1,2578 @@ +# Tamil translation for jmol +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Ramesh \n" +"Language-Team: Tamil \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "மூடà¯à®•" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&உதவி" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&தேடà¯à®•..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&கடà¯à®Ÿà®³à¯ˆà®•à®³à¯" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "கணிதம௠மறà¯à®±à¯à®®à¯ சாரà¯à®ªà¯à®•à®³à¯" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&மேலà¯à®®à¯" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "தொகà¯à®ªà¯à®ªà®¾à®³à®°à¯" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "நிலை" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "இயகà¯à®•à¯" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "வரலாறà¯" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "à®à®±à¯à®±à¯à®•" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "பணியகமà¯" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "திற" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "à®®à¯à®©à¯" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "சிறà¯à®¨à®¿à®°à®²à¯" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "சரிபாரà¯" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "படி" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "இடைநிறà¯à®¤à¯à®¤à¯" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "மீணà¯à®Ÿà¯à®®à¯ தà¯à®µà®•à¯à®•à¯" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "சà¯à®¤à¯à®¤à®®à¯ (Clear)" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "மூடà¯à®•" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "பிமà¯à®ªà®¤à¯à®¤à®¿à®©à¯ வகை" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG தரம௠({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG தரம௠({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "அனà¯à®®à®¤à®¿" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "மறà¯" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆ" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "அனைதà¯à®¤à¯ கோபà¯à®ªà¯à®•à®³à¯à®®à¯" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "ரதà¯à®¤à¯" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "விவரஙà¯à®•à®³à¯" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "அடைவà¯" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "தெரிவ௠செயà¯à®¤ அடிவைத௠திற" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "பணà¯à®ªà¯à®•à®³à¯" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿ" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "பெயரà¯" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "கோபà¯à®ªà¯à®ªà¯ பெயரà¯:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "அளவà¯" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "வகை" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "உதவி" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "கோபà¯à®ªà¯à®¤à¯à®¤à¯†à®°à®¿à®µà®¿à®¯à®¿à®©à¯ உதவி" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "à®®à¯à®•à®ªà¯à®ªà¯" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "படà¯à®Ÿà®¿à®¯à®²à¯" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "இஙà¯à®•à¯ பாரà¯:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "பà¯à®¤à®¿à®¯ அடைவை உரà¯à®µà®¾à®•à¯à®•à¯à®µà®¤à®¿à®²à¯ பிழை" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "பà¯à®¤à®¿à®¯ அடைவà¯" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "பà¯à®¤à®¿à®¯ அடைவை உரà¯à®µà®¾à®•à¯à®•à¯" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà®¿à®©à¯ˆ திற" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "சேமி" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "தெரிவ௠செயà¯à®¤ கோபà¯à®ªà¯ˆ சேமி" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "இதில௠சேமி:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "பà¯à®¤à¯à®ªà¯à®ªà®¿" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "அடைவà¯à®ªà¯ படà¯à®Ÿà®¿à®¯à®²à¯ˆ பà¯à®¤à¯à®ªà¯à®ªà®¿" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "மேலே" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "சரி" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "à®®à¯à®©à¯à®ªà®¾à®°à¯à®µà¯ˆ" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "அராபிகà¯" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "காடà¯à®Ÿà®²à®¾à®©à¯" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "செகà¯" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "டானிஷà¯" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "ஜெரà¯à®®à®©à¯" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "கிரேகà¯à®•à®®à¯" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "பிரிடà¯à®Ÿà®¿à®·à¯ ஆஙà¯à®•à®¿à®²à®®à¯" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "அமெரிகà¯à®• ஆஙà¯à®•à®¿à®²à®®à¯" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "ஸà¯à®ªà®¾à®©à®¿à®·à¯" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "எஸà¯à®Ÿà¯‹à®©à®¿à®¯à®©à¯" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "பிரெஞà¯à®šà¯" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "ஹஙà¯à®•à¯‡à®°à®¿à®¯à®©à¯" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "இநà¯à®¤à¯‹à®©à¯‡à®·à®¿à®¯à®©à¯" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "இதà¯à®¤à®¾à®²à®¿à®¯à®©à¯" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "ஜபà¯à®ªà®¾à®©à®¿à®¯" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "கொரியனà¯" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "நாரà¯à®µà¯‡à®œà®¿à®¯à®©à¯ பà¯à®•à¯à®®à®¾à®²à¯" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "ஆகà¯à®Ÿà®¿à®šà®¿à®¯à®©à¯" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "போலிஷà¯" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "போரà¯à®¤à¯à®¤à¯à®•à¯à®•à¯€à®šà®¿à®¯" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "பிரேஸிலிய போரà¯à®¤à¯à®¤à¯à®•à¯à®•à¯€à®šà®¿à®¯" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "à®°à®·à¯à®¯à®©à¯" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "ஸà¯à®²à¯‹à®µà¯‡à®©à®¿à®¯à®©à¯" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "சà¯à®µà¯€à®Ÿà®¿à®·à¯" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "தமிழà¯" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "தà¯à®°à¯à®•à¯à®•à®¿à®¯" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "உகà¯à®°à¯‡à®©à®¿à®¯à®©à¯" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "எளிய சைனீஸà¯" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "பாரமà¯à®ªà®°à®¿à®¯ சைனீஸà¯" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "எநà¯à®¤ அணà¯à®•à¯à®•à®³à¯à®®à¯ தெரிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ -- செயà¯à®µà®¤à®±à¯à®•à¯ ஒனà¯à®±à¯à®®à®¿à®²à¯à®²à¯ˆ!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "எதà¯à®µà¯à®®à®¿à®²à¯à®²à¯ˆ" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "அனைதà¯à®¤à¯à®®à¯" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "மொழிபெயரà¯à®ªà¯à®ªà¯à®•à®³à¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "அமைபà¯à®ªà¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "எநà¯à®¤ அணà¯à®•à¯à®•à®³à¯à®®à¯ à®à®±à¯à®±à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "மூலகமà¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "மொழி" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "சமசà¯à®šà¯€à®°à¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "தெரிவ௠செய௠({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "அணà¯à®•à¯à®•à®³à¯: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "பிணைபà¯à®ªà¯à®•à®³à¯: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "கà¯à®´à¯à®•à¯à®•à®³à¯: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "சஙà¯à®•à®¿à®²à®¿à®•à®³à¯: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "பலà¯à®ªà®•à¯à®¤à®¿à®¯à®™à¯à®•à®³à¯: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "à®®à¯à®¤à®©à¯à®®à¯ˆ படà¯à®Ÿà®¿" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "உயிரியல௠மூலகà¯à®•à¯‚à®±à¯à®•à®³à¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "எதà¯à®µà¯à®®à®¿à®²à¯à®²à¯ˆ" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "தெரிவ௠செயà¯à®¤à®¤à¯ˆ மடà¯à®Ÿà¯à®®à¯ காணà¯à®ªà®¿" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "தேரà¯à®µà¯ˆ தலைகீழாகà¯à®•à¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "பாரà¯à®µà¯ˆ" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "à®®à¯à®©à¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "இடதà¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "வலதà¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "கீழà¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "பின௠செலà¯à®•" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "பà¯à®°à®¤à®®à¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "பகà¯à®• சஙà¯à®•à®¿à®²à®¿à®•à®³à¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT சோடிகளà¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC சோடிகளà¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU சோடிகளà¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "பலà¯à®²à®¿à®©" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "இணையி" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "காபோவைதரேறà¯à®±à¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "மேலà¯à®³à¯à®³à®µà®±à¯à®±à®¿à®²à¯ எதà¯à®µà®®à®©à¯à®±à¯" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "பாணி" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "JavaScript Console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà®¿à®©à¯ˆ திற" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "திற" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "கோபà¯à®ªà¯ பிழை:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" + +#~ msgid "Hide Symmetry" +#~ msgstr "சமசà¯à®šà¯€à®°à¯ˆ மறை" + +#~ msgid " {0} seconds" +#~ msgstr " {0} நொடிகளà¯" + +#~ msgid "Java version:" +#~ msgstr "ஜாவா பதிபà¯à®ªà¯:" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/te.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/te.po new file mode 100755 index 000000000000..b045cf31dbbc --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/te.po @@ -0,0 +1,2566 @@ +# Telugu translation for jmol +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Praveen Illa \n" +"Language-Team: Telugu \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "మూసివేయి" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "సహాయం (&H)" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "వెతà±à°•à±...(&S)" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "ఆదేశాలౠ(&C)" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "కూరà±à°ªà°•à°®à±" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "నడà±à°ªà±" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "à°šà°°à°¿à°¤à±à°°" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "నిలిపివేయి" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "మూసివేయి" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "బొమà±à°® à°°à°•à°®à±" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "à°…à°µà±à°¨à±" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "కాదà±" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "హెచà±à°›à°°à°¿à°•" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "à°…à°¨à±à°¨à°¿ ఫైళà±à°³à±" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "à°°à°¦à±à°¦à±à°šà±‡à°¯à°¿" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "వివరాలà±" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "పేరà±" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "ఫైలౠపేరà±:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "పరిమాణం" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "à°°à°•à°®à±" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "సహాయం" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "నివాసం" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "కొతà±à°¤ సంచయం" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "కొతà±à°¤ సంచయానà±à°¨à°¿ సృషà±à°Ÿà°¿à°‚à°šà±" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "à°Žà°‚à°šà±à°•à±à°¨à±à°¨ ఫైలౠతెరà±à°µà±" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "à°à°¦à±à°°à°ªà°°à°šà±" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "నవీకరించà±" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "సరే" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "à°®à±à°¨à±à°œà±‚à°ªà±" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "అరబికà±" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "బోసà±à°¨à°¿à°¯à°¨à±" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "కాటలానà±" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "చెకà±" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "డానిషà±" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "జరà±à°®à°¨à±" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "à°—à±à°°à±€à°•à±" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "à°¸à±à°ªà°¾à°¨à°¿à°·à±" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "à°«à±à°°à±†à°‚à°šà±" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "à°•à±à°°à±‹à°Ÿà°¿à°¯à°¨à±" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +msgid "none" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "JavaScript Console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "à°Žà°‚à°šà±à°•à±à°¨à±à°¨ ఫైలౠతెరà±à°µà±" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Open URL" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/tr.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/tr.po new file mode 100755 index 000000000000..9d2f043b3ec0 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/tr.po @@ -0,0 +1,2626 @@ +# translation of JmolApplet-tr.po to Turkish. +# Copyright (C) 1998-2011 The Jmol Development Team +# This file is distributed under the same license as the JmolApplet package. +# Muhammet Kara , 2006, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: JmolApplet\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Muhammet Kara \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" +"X-Poedit-Language: Turkish\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Element mi?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Jmol Betik Uçbirimi" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Dosya" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Kapat" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Yardım" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Ara..." + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Komutlar" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Matematiksel &Fonksiyonlar" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "&Parametreleri Ayarla" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Daha Fazla" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Düzenleyici" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Durum" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "Çalıştır" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Çıktıyı Temizle" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Girdiyi Temizle" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "GeçmiÅŸ" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Yükle" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"yeni satır için CTRL-ENTER'a basın veya model verisini yapıştırın ve " +"Yükle'ye basın" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Mesajlar burada görünecek. Komutları aÅŸağıdaki kutuya girin. Yeni bir " +"tarayıcı penceresinde görüntülenecek olan çevrimiçi yardım için Uçbirim " +"Yardım menüsüne tıklayın." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Jmol Betik Düzenleyicisi" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "Konsol" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Aç" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Ön" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Betik" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Denetle" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Yukarı" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Adım" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Duraklat" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Sürdür" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Durdur" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Temizle" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Kapat" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Dosya veya URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Görüntü Türü" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "JPEG Kalitesi ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "PNG Sıkıştırması ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "PNG Kalitesi ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Evet" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "Hayır" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "{0} dosyasının üzerine yazılsın mı?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Uyarı" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "Tüm Dosyalar" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "Ä°ptal" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Dosya seçici penceresini kapat" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Ayrıntılar" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Dizin" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Seçili dizini aç" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Nitelikler" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "DeÄŸiÅŸtirildi" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Genel Dosya" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Adı" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Dosya Adı:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Boyut" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Tür Dosyaları:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Tür" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Yardım" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "DosyaSeçici yardımı" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Anasayfa" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "Liste" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Bak:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Yeni klasör oluÅŸturma hatası" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Yeni Klasör" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Yeni Klasör OluÅŸtur" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Seçilen dosyayı aç" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Kaydet" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Seçilen dosyayı kaydet" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "İçine Kaydet:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Güncelle" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Dizin listelemesini güncelle" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Yukarı" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Bir Seviye Yukarı" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "TAMAM" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "Önizleme" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Modelleri BirleÅŸtir" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "Arapça" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "Katalanca" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "Çekçe" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "Danca" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Almanca" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Yunanca" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "Ä°ngiliz Ä°ngilizcesi" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "Amerikan Ä°ngilizcesi" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "Ä°spanyolca" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "Estonyaca" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "Fince" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "Faroese" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Fransızca" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "Hırvatça" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "Macarca" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "Endonezce" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "Ä°talyanca" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "Japonca" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "Cavaca" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "Korece" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Norveç Bokmal" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "Flemenkçe" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "Occitan" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "Lehçe" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "Portekizce" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "Brezilya Portekizcesi" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "Rusça" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "Slovence" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "Ä°sveçce" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "Tamil" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Türkçe" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "Ukraynaca" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "BasitleÅŸtirilmiÅŸ Çince" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Geleneksel Çince" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Güç alanı sınıfı alınamadı {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Herhangi bir atom seçili deÄŸil -- yapacak bir ÅŸey yok!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} atomlar küçültülecek." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "Güç alanını ayarlanamadı {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "yeni" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "geri al (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "yinele (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "merkez" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "hidrojen ekle" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "küçült" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "hidrojenleri sabitle ve küçült" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "temizle" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "kayıt dosyası" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "kayıt durumu" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "halka stereokimyasını ters çevir" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "atomu sil" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "baÄŸa sürükle" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "atom sürükle" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "atomu sürükle (ve küçült)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "yükü artır" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "yükü azalt" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "bağı sil" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "tek" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "çift" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "üçlü" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "dereceyi artır" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "dereceyi azalt" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "modelkit modundan çık" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "Uzay Grubu" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Hiçbiri" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Tümü" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} iÅŸlemci" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "Toplam {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "En yüksek {0} MB" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Jmol Betik Uçbirimi" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Fare Elle" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Çeviriler" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "Sistem" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Hiç atom yüklenmedi" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "Yapılandırmalar" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Element" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Model/Yapı" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Dil" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "Artık Adına Göre" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "HETATM' e Göre" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "Moleküler Orbitaller ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "Simetri" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "Model bilgisi" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Seç ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Tüm {0} modeller" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "Yapılandırmalar ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "{0} modellik koleksiyon" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "atomlar: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "baÄŸlar: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "gruplar: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "zincirler: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "polimerler: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "model {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "Görünüm {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Ana Menü" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Biyomoleküller" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "biyomolekül {0} ({1} atom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "biyomolekülü yükle {0} ({1} atom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Hiçbiri" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Sadece Seçileni Göster" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Seçimi Tersine Çevir" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "Görünüm" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Ön" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Sol" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "SaÄŸ" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Alt" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Geri" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "Eksenler" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "Eksenler" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "Eksenler" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "Eksenler" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "Eksenler" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "Eksenler" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Protein" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "Omurga" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Yan Zincirler" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "Polar Artıklar" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "Apolar Artıklar" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Temel Artıklar (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "Asidik Artıklar (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "YüklenmemiÅŸ Artıklar" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Nükleik" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "DNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "RNA" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Bazlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "AT çiftleri" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "GC çiftleri" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "AU çiftleri" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Ä°kincil Yapı" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Hetero" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Tüm PDB \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Tümü Çözücü" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Tümü Su" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Su İçermeyen Çözücü" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "Su İçermeyen HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ligand" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Karbonhidrat" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Yukarıdakilerin hiçbiri" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Stil" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Åžema" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "CPK BoÅŸlukdoldurma" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Küre ve Çubuk" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Çubuklar" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "Telkafes" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Çizgi Film" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "Kordon" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Atomlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Kapalı" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% van der Waals" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "BaÄŸlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Açık" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Hidrojen BaÄŸları" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "Hesapla" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "H-BaÄŸları Yan Zincirini Ayarla" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "H-BaÄŸları Omurgasını Ayarla" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "Disülfür BaÄŸları" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "SS-BaÄŸları Yan Zincirini Ayarla" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "SS-BaÄŸları Omurgasını Ayarla" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Yapılar" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Çizgi Film Roketleri" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Åžeritler" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Roketler" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Lifler" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "TitreÅŸim" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Vektörler" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} piksel" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "Ölçü {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Stereografik" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Kırmızı+CamgöbeÄŸi camlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Kırmızı+Mavi camlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Kırmızı+YeÅŸil camlar" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "Åžaşı görünüş" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "Akçıl gözbebeÄŸi görünüşü" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Etiketler" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "Element Sembolüyle Birlikte" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "Atom Adıyla Birlikte" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "Atom Numarası ile Birlikte" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Atomdaki Konum Etiketi" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "Ortalı" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Yukarı SaÄŸ" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "AÅŸağı SaÄŸ" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Yukarı Sol" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "AÅŸağı Sol" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Renk" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "Åžemaya Göre" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Element (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Alternatif Konum" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Molekül" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Formülsel Yük" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "Kısmi Yük" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Sıcaklık (Görece)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Sıcaklık (Sabit)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "Amino Asit" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Zincir" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Grup" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Monomer" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "Güzel biçimli" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "Miras" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Siyah" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Beyaz" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "CamgöbeÄŸi" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Kırmızı" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "Turuncu" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Sarı" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "YeÅŸil" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Mavi" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Çivit Rengi" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "MenekÅŸe Moru" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Sarımsı pembe" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Zeytin YeÅŸili" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Kestane Rengi" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Gri" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "KurÅŸun Mavisi" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Altın" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "Orkide" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Donuk Yap" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Yarı Geçirgen Yap" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Arkaplan" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Yüzeyler" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "Eksenler" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "BaÄŸlıkutu" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Birim hücre" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "Zum" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "YaklaÅŸ" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "UzaklaÅŸ" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "Dönüş" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "X Hızını Ayarla" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Y Hızını Ayarla" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Z Hızını Ayarla" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "FPS'i Ayarla" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "Canlandırma" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Canlandırma Modu" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Bir Kere Oynat" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Palindrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Döngü" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "Oynat" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Durdur" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "Sonraki Kare" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Önceki Kare" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Geri Sar" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "Ters Çevir" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "Yeniden BaÅŸlat" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "Ölçüler" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Çift tıklama tüm ölçümleri baÅŸlatır ve bitirir" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "Mesafe ölçümü için tıklayın" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "Açı ölçümü için tıklayın" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Bükülme(iki düzlemli) ölçümü için tıklayın" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Uçbirimde bir dizilim görüntülemek için iki atoma tıklayın" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Ölçümleri sil" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "Ölçümleri listele" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Uzaklık birimleri nanometre" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Uzaklık birimleri Angstrom" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Uzaklık birimleri pikometre" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Seçimi Ayarla" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "Merkez" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Kimlik" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Etiket" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Atomu seç" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Zinciri seç" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Elementi seç" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "modelkit modundan çık" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Grubu seç" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Molekülü seç" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Yeri seç" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Simetri iÅŸlemini göster" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Göster" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Jmol Betik Uçbirimi" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "Dosya İçeriÄŸi" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Dosya BaÅŸlığı" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "EÅŸyüzey JVXL verisi" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Moleküler orbital JVXL verisi" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Model" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "Yönlendirme" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "Uzay grubu" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Mevcut durum" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Dosya" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Tekrar Yükle" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "PDB'den aç" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Seçilen dosyayı aç" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Aç" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Tam birim hüce yükle" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Betik aç" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "{0} ın bir kopyasını kaydet" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "BetiÄŸi durum ile kaydet" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "BetiÄŸi geçmiÅŸ ile kaydet" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "{0} resim dışa aktar" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Tümünü JMOL dosyası (zip) olarak kaydet" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "JVXL eÅŸyüzeyini kaydet" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "{0} 3B model dışa aktar" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "Hesaplama" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Ä°yileÅŸtirilmiÅŸ yapı" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "Model kiti" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "MOL verisini çıkart" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Nokta Yüzey" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "van der Waals Yüzeyi" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "Moleküler Yüzey" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "Çözücü Yüzeyi ({0}-Angstrom araÅŸtırması)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "Çözücü- Girilebilir Yüzey (VDW + {0} Angstrom)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Tekrar Yükle {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "{0} + Ektan {1} i Yeniden Yükle" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Yenidenyükle + Çokyüzlü" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Gizle" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Noktalanmış" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Piksel GeniÅŸliÄŸi" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} px" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Angstrom GeniÅŸliÄŸi" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Seçme Işık Halkaları" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Hidrojenleri Göster" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Ölçümleri Göster" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Perspektif DerinliÄŸi" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "RasMol Renkleri" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Hakkında..." + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "betik derteyici HATASI: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "x y z eksenleri bekleniyor" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "{0} arkaplan model gösterimiyle birlikte izin verilmez" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "Yanlış bağımsız deÄŸiÅŸken hesabı" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "Miller dizinlerinin hepsi sıfır olamaz." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "hatalı [R,G,B] rengi" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "boolean bekleniyor" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "boole veya sayı gerekli" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "boole, sayı, veya {0} gerekli" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "renk gerekli" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "bir renk ya da palet adı (Jmol,Rasmol) gerekli" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "komut bekleniyor" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "{x y z} veya $name veya (atom ifadesi) gerekiyor" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "çizim nesnesi tanımlanmamış" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "beklenmeyen komut satırı sonu komutu" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "geçerli (atom ifadesi) gerekli" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "(atom ifadesi) veya tam sayı gerekli" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "dosyaadı gerekli" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "dosya bulunamadı" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "uyumsuz bağımsız deÄŸiÅŸkenler" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "yetersiz bağımsız deÄŸiÅŸken" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "tamsayı gerekli" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "alan dışı tamsayı ({0} - {1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "geçersiz bağımsız deÄŸiÅŸken" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "geçersiz parametre dizisi" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "anahtar sözcük gerekli" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "Kullanılabilir MO katsayı verisi yok" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "1 den {0} 'a bir MO dizini gerekli" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "Bu çerçeve için kullanılabilir MO taban/katsayı verisi yok" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "Kullanılabilir MO iÅŸgal verisi yok" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "Bu dosyada sadece bir kullanılabilir moleküler orbital var" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "{0} sadece bir modelin gösterilmesine ihtiyaç duyuyor" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Kullanılabilir veri yok" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Dosyadan hiç kısmi yük okunmadı; Jmol MEP verisini iÅŸlemek için bunlara " +"ihtiyaç duyuyor." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Birim hücre yok" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "sayı gerekli" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "sayı ({0} veya {1}) olmalı" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "alan dışı ondalık sayı ({0} - {1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "'$' 'dan sonra nesne adı gerekli" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"düzlem bekleniyor -- ya üç nokta ya atom ifadeleri ya da {0} veya {1} veya " +"{2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "özellik adı gerekli" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "Uzay grubu {0} bulunamadı." + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "Tırnak içindeki karakter dizgisi gerekli" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "tırnak içindeki karakter dizgisi veya tanımlayıcı gerekli" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "çok fazla dönme noktası belirtilmiÅŸ" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "çok fazla betik düzeyi" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "tanınmayan atom özelliÄŸi" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "tanınmayan baÄŸ özelliÄŸi" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "tanınmayan komut" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "tanınmayan çalışma zamanı deyimi" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "tanınmayan nesne" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "tanınmayan {0} parametre" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" +"Jmol durum betiÄŸinde bilinmeyen {0} parametre (ne olursa olsun ayarlandı)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "tanınmayan GÖSTER parametresi -- {0} kullanın" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "neyi yaz? {0} ya da {1} \"dosyaadı\"" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "betik HATASI: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "{0} atom silindi" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} hidrojen baÄŸ(lar)ı" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "{0} dosyası oluÅŸturuldu" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "{0} için geçersiz içerik" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "{ number number number } gerekli" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "ifade sonu bekleniyor" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "tanımlayıcı ya da artık belirtimi bekleniyor" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "geçersiz atom belirtimi" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "geçersiz zincir belirtimi" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "geçersiz ifade belirtkesi: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "geçersiz model belirtimi" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "{0} için END bulunamıyor" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "sayı ya da deÄŸiÅŸken adı bekleniyor" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "artık belirtimi (ALA, AL?, A*) bekleniyor" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "{0} bekleniyor" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "{0} beklenmiyor" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "tanınmayan ifade belirtkesi: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "tanınmayan belirtke: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, fuzzy, java-format +msgid "{0} struts added" +msgstr "{0} hidrojen eklendi" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "{0} baÄŸlantı(lar) silindi" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} yeni baÄŸ; {1} düzenlenmiÅŸ" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Menü için tıklayın..." + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet sürümü {0} {1}.\n" +"\n" +"Bir OpenScience projesi.\n" +"\n" +"Daha fazla bilgi için http://www.jmol.org 'u ziyaret ediniz" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Dosya Hatası:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "yeni atom ya da baÄŸ ata ({0} gerekir)" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "atom sil ({0} gerekir)" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "baÄŸ sil ({0} gerekir)" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "atomu taşı ({0} gerektirir)" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "etiketi taşı ({0} gerektirir)" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "seçili atomları hareket ettir ({0} gerektirir)" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "bir atom seç" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "atomları birleÅŸtir ({0} gerektirir)" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "döndür" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "seçili atomları döndür ({0} gerektirir)" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "bir atom seç ({0} gerektirir)" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "atomları seç ve sürükle ({0} gerektirir)" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "HİÇBÄ°RÄ°NÄ° seçme ({0} gerektirir)" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "seçimi deÄŸiÅŸtir ({0} gerektirir)" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "yaklaÅŸ (pencerenin saÄŸ kenarı boyunca)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "hareketi durdur ({0} gerektirir)" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "dönüştür" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "yaklaÅŸ" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "modeli bir eksen etrafında döndürebilmek için bir tane daha atom seçin" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "modeli bir eksen etrafında döndürebilmek için iki atom seçin" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Günlük dosyası {0} olarak ayarlanıyor" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Günlük dosyası yolu ayarlanamıyor." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "{0} atomlar gizli" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "{0} atom(lar) seçildi" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "Etiketi taşımak için sürükleyin" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "panoya eriÅŸilemiyor -- iÅŸaretli uygulamacığı kullanın" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "{0} hidrojen eklendi" + +#~ msgid "Hide Symmetry" +#~ msgstr "Simetriyi Gizle" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Jmol küçük uygulaması yükleniyor ..." + +#~ msgid " {0} seconds" +#~ msgstr " {0} saniye" + +#~ msgid "Java version:" +#~ msgstr "Java sürümü:" + +#~ msgid "1 processor" +#~ msgstr "1 iÅŸlemci" + +#~ msgid "unknown processor count" +#~ msgstr "bilinmeyen iÅŸlemci sayısı" + +#~ msgid "Java memory usage:" +#~ msgstr "Java hafıza kullanımı:" + +#~ msgid "{0} MB free" +#~ msgstr "{0} MB boÅŸ" + +#~ msgid "unknown maximum" +#~ msgstr "bilinmeyen maksimum" + +#~ msgid "Open file or URL" +#~ msgstr "Dosya veya URL aç" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ug.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ug.po new file mode 100755 index 000000000000..bb1b57a52b1c --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/ug.po @@ -0,0 +1,2564 @@ +# Uyghur translation for jmol +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Gheyret T.Kenji \n" +"Language-Team: Uyghur \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:57+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +msgid "&File" +msgstr "" + +#: org/jmol/console/GenericConsole.java:92 +msgid "&Close" +msgstr "" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "ياردەم(&H)" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "بۇيرۇقلار(&C)" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "تÛخىمۇ ÙƒÛ†Ù¾(&M)" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:143 +msgid "Font" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:770 +msgid "none" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +msgid "Jmol Script Commands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +msgid "Axis x" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +msgid "Axis y" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +msgid "Axis z" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +msgid "Axis a" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +msgid "Axis b" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +msgid "Axis c" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "modelKitMode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "JavaScript Console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Open local file" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Open URL" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Save as PNG/JMOL (image+zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/uk.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/uk.po new file mode 100755 index 000000000000..2cfe05a5b322 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/uk.po @@ -0,0 +1,2656 @@ +# Ukrainian translation for jmol +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the jmol package. +# +# Yuri Chornoivan , 2010. +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-10-09 20:00+0000\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/awt/FileDropper.java:106 +msgid "Would you like to replace the current model with the selected model?" +msgstr "" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:89 +#: org/jmol/modelkit/ModelKitPopup.java:72 +msgid "Element?" +msgstr "Елемент?" + +#: org/jmol/console/GenericConsole.java:54 +msgid "Jmol Script Console" +msgstr "Скриптова конÑоль Jmol" + +#: org/jmol/console/GenericConsole.java:90 +msgid "&Save As..." +msgstr "" + +#: org/jmol/console/GenericConsole.java:91 +#, fuzzy +msgid "&File" +msgstr "Файл" + +#: org/jmol/console/GenericConsole.java:92 +#, fuzzy +msgid "&Close" +msgstr "Закрити" + +#: org/jmol/console/GenericConsole.java:97 +msgid "&Help" +msgstr "&Довідка" + +#: org/jmol/console/GenericConsole.java:98 +msgid "&Search..." +msgstr "&Знайти…" + +#: org/jmol/console/GenericConsole.java:99 +msgid "&Commands" +msgstr "&Команди" + +#: org/jmol/console/GenericConsole.java:100 +msgid "Math &Functions" +msgstr "Математичні &функції" + +#: org/jmol/console/GenericConsole.java:101 +msgid "Set &Parameters" +msgstr "Вк&азати параметри" + +#: org/jmol/console/GenericConsole.java:102 +msgid "&More" +msgstr "&Додатково" + +#: org/jmol/console/GenericConsole.java:103 +msgid "Editor" +msgstr "Редактор" + +#: org/jmol/console/GenericConsole.java:104 +msgid "State" +msgstr "Стан" + +#: org/jmol/console/GenericConsole.java:105 +#: org/jmol/console/ScriptEditor.java:148 +msgid "Run" +msgstr "ЗапуÑтити" + +#: org/jmol/console/GenericConsole.java:106 +msgid "Clear Output" +msgstr "Спорожнити поле виводу" + +#: org/jmol/console/GenericConsole.java:107 +msgid "Clear Input" +msgstr "Спорожнити поле вводу" + +#: org/jmol/console/GenericConsole.java:108 +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "History" +msgstr "Журнал" + +#: org/jmol/console/GenericConsole.java:109 +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Load" +msgstr "Завантажити" + +#: org/jmol/console/GenericConsole.java:111 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" +"натиÑніть CTRL-ENTER, щоб почати Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ñ€Ñдка, або вÑтавте дані " +"моделі Ñ– натиÑніть кнопку «Завантажити»" + +#: org/jmol/console/GenericConsole.java:113 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" +"Тут буде наведено повідомленнÑ. Команди Ñлід вводити у поле, розташоване " +"нижче. Щоб отримати довідку, ÑкориÑтайтеÑÑ Ð¿ÑƒÐ½ÐºÑ‚Ð¾Ð¼ «Довідка» меню конÑолі: " +"довідку буде відкрито у новому вікні переглÑдача інтернету." + +#: org/jmol/console/ScriptEditor.java:107 +msgid "Jmol Script Editor" +msgstr "Редактор Ñкриптів Jmol" + +#: org/jmol/console/ScriptEditor.java:140 +#: org/jmol/popup/MainPopupResourceBundle.java:604 +msgid "Console" +msgstr "КонÑоль" + +#: org/jmol/console/ScriptEditor.java:142 org/jmol/dialog/Dialog.java:455 +#: org/jmol/dialog/Dialog.java:479 org/jmol/dialog/Dialog.java:482 +msgid "Open" +msgstr "Відкрити" + +#: org/jmol/console/ScriptEditor.java:143 +#, fuzzy +msgid "Font" +msgstr "Спереду" + +#: org/jmol/console/ScriptEditor.java:144 +msgid "Script" +msgstr "Скрипт" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Check" +msgstr "Перевірити" + +#: org/jmol/console/ScriptEditor.java:146 +msgid "Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "Вгору" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Step" +msgstr "Крок" + +#: org/jmol/console/ScriptEditor.java:149 +#: org/jmol/popup/MainPopupResourceBundle.java:559 +msgid "Pause" +msgstr "Пауза" + +#: org/jmol/console/ScriptEditor.java:151 +#: org/jmol/popup/MainPopupResourceBundle.java:560 +msgid "Resume" +msgstr "Поновити" + +#: org/jmol/console/ScriptEditor.java:153 +msgid "Halt" +msgstr "Перервати" + +#: org/jmol/console/ScriptEditor.java:155 +msgid "Clear" +msgstr "Спорожнити" + +#: org/jmol/console/ScriptEditor.java:156 +msgid "Close" +msgstr "Закрити" + +#: org/jmol/dialog/Dialog.java:94 +msgid "File or URL:" +msgstr "Файл або URL:" + +#: org/jmol/dialog/Dialog.java:275 +msgid "Image Type" +msgstr "Тип зображеннÑ" + +#: org/jmol/dialog/Dialog.java:290 org/jmol/dialog/Dialog.java:332 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "ЯкіÑÑ‚ÑŒ JPEG ({0})" + +#: org/jmol/dialog/Dialog.java:304 +#, java-format +msgid "PNG Compression ({0})" +msgstr "СтиÑÐºÐ°Ð½Ð½Ñ PNG ({0})" + +#: org/jmol/dialog/Dialog.java:335 +#, java-format +msgid "PNG Quality ({0})" +msgstr "ЯкіÑÑ‚ÑŒ PNG ({0})" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:498 +msgid "Yes" +msgstr "Так" + +#: org/jmol/dialog/Dialog.java:385 org/jmol/dialog/Dialog.java:496 +msgid "No" +msgstr "ÐÑ–" + +#: org/jmol/dialog/Dialog.java:387 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "Ви бажаєте перезапиÑати файл {0}?" + +#: org/jmol/dialog/Dialog.java:388 +msgid "Warning" +msgstr "Увага" + +#: org/jmol/dialog/Dialog.java:447 +msgid "All Files" +msgstr "УÑÑ– файли" + +#: org/jmol/dialog/Dialog.java:448 org/jmol/dialog/Dialog.java:495 +msgid "Cancel" +msgstr "СкаÑувати" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Abort file chooser dialog" +msgstr "Закрити діалогове вікно вибору файла" + +#: org/jmol/dialog/Dialog.java:452 org/jmol/dialog/Dialog.java:453 +msgid "Details" +msgstr "Подробиці" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Directory" +msgstr "Каталог" + +#: org/jmol/dialog/Dialog.java:457 +msgid "Open selected directory" +msgstr "Відкрити позначений каталог" + +#: org/jmol/dialog/Dialog.java:458 +msgid "Attributes" +msgstr "Ðтрибути" + +#: org/jmol/dialog/Dialog.java:459 +msgid "Modified" +msgstr "Змінено" + +#: org/jmol/dialog/Dialog.java:460 +msgid "Generic File" +msgstr "Звичайний файл" + +#: org/jmol/dialog/Dialog.java:461 +msgid "Name" +msgstr "Ðазва" + +#: org/jmol/dialog/Dialog.java:462 +msgid "File Name:" +msgstr "Ðазва файла:" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Size" +msgstr "Розмір" + +#: org/jmol/dialog/Dialog.java:464 +msgid "Files of Type:" +msgstr "Файли типу:" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Type" +msgstr "Тип" + +#: org/jmol/dialog/Dialog.java:466 +msgid "Help" +msgstr "Довідка" + +#: org/jmol/dialog/Dialog.java:468 +msgid "FileChooser help" +msgstr "Довідка щодо вибору файлів" + +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:470 +msgid "Home" +msgstr "Домівка" + +#: org/jmol/dialog/Dialog.java:471 org/jmol/dialog/Dialog.java:472 +msgid "List" +msgstr "СпиÑок" + +#: org/jmol/dialog/Dialog.java:473 +msgid "Look In:" +msgstr "Шукати у:" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Error creating new folder" +msgstr "Помилка під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÐ¸" + +#: org/jmol/dialog/Dialog.java:476 +msgid "New Folder" +msgstr "Ðова тека" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Create New Folder" +msgstr "Створити теку" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Open selected file" +msgstr "Відкрити вибраний файл" + +#: org/jmol/dialog/Dialog.java:483 org/jmol/dialog/Dialog.java:486 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +msgid "Save" +msgstr "Зберегти" + +#: org/jmol/dialog/Dialog.java:485 +msgid "Save selected file" +msgstr "Зберегти вибраний файл" + +#: org/jmol/dialog/Dialog.java:487 +msgid "Save In:" +msgstr "Зберегти у:" + +#: org/jmol/dialog/Dialog.java:488 +msgid "Update" +msgstr "Оновити" + +#: org/jmol/dialog/Dialog.java:490 +msgid "Update directory listing" +msgstr "Оновити ÑпиÑок каталогів" + +#: org/jmol/dialog/Dialog.java:491 +msgid "Up" +msgstr "Вгору" + +#: org/jmol/dialog/Dialog.java:492 +msgid "Up One Level" +msgstr "Рівнем вище" + +#: org/jmol/dialog/Dialog.java:497 +msgid "OK" +msgstr "Гаразд" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "ПереглÑд" + +#: org/jmol/dialog/FilePreview.java:98 +msgid "Append models" +msgstr "Долучити моделі" + +#: org/jmol/dialog/FilePreview.java:100 +msgid "PDB cartoons" +msgstr "Ð—Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð· банку протеїнів" + +#: org/jmol/dssx/DSSP.java:288 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" +"ЗауваженнÑ: виÑвлено дані щодо Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ñ‚Ð¾Ð¼Ñ–Ð² водню Ñкелетного аміду, " +"Ñкі буде проігноровано. Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ñ‚Ð¾Ð¼Ñ–Ð² буде визначено наближено, Ñк у " +"Ñтандартному аналізі вторинної Ñтруктури білків.\n" +"СкориÑтайтеÑÑ Ð¿ÑƒÐ½ÐºÑ‚Ð¾Ð¼ {0}, щоб наказати програмі не викориÑтовувати це " +"наближеннÑ.\n" +"\n" + +#: org/jmol/dssx/DSSP.java:294 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" +"ЗауваженнÑ: виÑвлено дані щодо Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ñ‚Ð¾Ð¼Ñ–Ð² водню Ñкелетного аміду, " +"Ñкі буде викориÑтано. Отримані результати можуть значно відрізнÑтиÑÑ Ð²Ñ–Ð´ " +"даних аналізу вторинної Ñтруктури білків.\n" +"СкориÑтайтеÑÑ Ð¿ÑƒÐ½ÐºÑ‚Ð¾Ð¼ {0}, щоб наказати програмі ігнорувати дані щодо " +"Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ñ‚Ð¾Ð¼Ñ–Ð² водню.\n" +"\n" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "ÐрабÑька" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "ÐÑтурійÑька" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "ÐзербайджанÑька" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "БоÑнійÑька" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "КаталанÑька" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "ЧеÑька" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "ДанÑька" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "Ðімецька" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "Грецька" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "ÐвÑтралійÑька англійÑька" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "БританÑька англійÑька" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "ÐмериканÑька англійÑька" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "ІÑпанÑька" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "ЕÑтонÑька" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "БаÑкÑька" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "ФінÑька" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "ФарерÑька" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "Французька" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "Фризька" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "ГаліÑійÑька" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "ХорватÑька" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "УгорÑька" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "ВірменÑька" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "ІндонезійÑька" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "ІталійÑька" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "ЯпонÑька" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "ЯванÑька" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "КорейÑька" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "МалайÑька" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "Ðорвезька (Бокмал)" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "ÐідерландÑька" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "ОкÑітанÑька" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "ПольÑька" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "ПортугальÑька" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "БразильÑька португальÑька" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "РоÑійÑька" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "СловенÑька" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "СербÑька" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "ШведÑька" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "ТамільÑька" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "Телугу" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "Турецька" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "УйгурÑька" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "УкраїнÑька" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "Узбецька" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "Спрощена китайÑька" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "Традиційна китайÑька" + +#: org/jmol/minimize/Minimizer.java:221 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ ÐºÐ»Ð°Ñ Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ Ñили {0}" + +#: org/jmol/minimize/Minimizer.java:227 +msgid "No atoms selected -- nothing to do!" +msgstr "Ðе позначено жодного атома — дії не виконуватимутьÑÑ!" + +#: org/jmol/minimize/Minimizer.java:312 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "{0} атомів буде мінімізовано." + +#: org/jmol/minimize/Minimizer.java:327 +#, java-format +msgid "could not setup force field {0}" +msgstr "не вдалоÑÑ Ð²Ñтановити поле Ñили {0}" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "new" +msgstr "Ñтворити" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "undo (CTRL-Z)" +msgstr "вернути (CTRL-Z)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "redo (CTRL-Y)" +msgstr "повторити (CTRL-Y)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +#: org/jmol/viewer/ActionManager.java:233 +msgid "center" +msgstr "центр" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "add hydrogens" +msgstr "додати атоми водню" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "minimize" +msgstr "мінімізувати" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "fix hydrogens and minimize" +msgstr "виправити кількіÑÑ‚ÑŒ водню Ñ– мінімізувати" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "clear" +msgstr "Ñпорожнити" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "save file" +msgstr "зберегти файл" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "save state" +msgstr "зберегти Ñтан" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "invert ring stereochemistry" +msgstr "інвертувати Ñтерехімічне Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÑ–Ð»ÐµÑ†ÑŒ" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "delete atom" +msgstr "вилучити атом" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag to bond" +msgstr "перетÑгнути до зв’Ñзку" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:101 +msgid "drag atom" +msgstr "перетÑгнути атом" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:102 +msgid "drag atom (and minimize)" +msgstr "перетÑгнути атом (Ñ– мінімізувати)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:103 +msgid "drag molecule (ALT to rotate)" +msgstr "перетÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð»ÐµÐºÑƒÐ»Ð¸ (ALT — обертаннÑ)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:104 +msgid "drag and minimize molecule (docking)" +msgstr "перетÑгнути Ñ– мінімізувати молекулу (швартуваннÑ)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "increase charge" +msgstr "збільшити зарÑд" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "decrease charge" +msgstr "зменшити зарÑд" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "delete bond" +msgstr "вилучити зв’Ñзок" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "single" +msgstr "одинарний" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "double" +msgstr "подвійний" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "triple" +msgstr "потрійний" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:119 +msgid "increase order" +msgstr "збільшити порÑдок" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:120 +msgid "decrease order" +msgstr "зменшити порÑдок" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:121 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "обертати зв’Ñзок (SHIFT-ПЕРЕТЯГУВÐÐÐЯ)" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:122 +msgid "exit modelkit mode" +msgstr "вийти з режиму моделюваннÑ" + +#: org/jmol/popup/JmolGenericPopup.java:754 +#: org/jmol/popup/MainPopupResourceBundle.java:287 +msgid "Space Group" +msgstr "ПроÑторова група" + +#: org/jmol/popup/JmolGenericPopup.java:770 +#, fuzzy +msgid "none" +msgstr "Ðемає" + +#: org/jmol/popup/JmolGenericPopup.java:829 +#: org/jmol/popup/JmolGenericPopup.java:880 +#: org/jmol/popup/MainPopupResourceBundle.java:307 +#: org/jmol/popup/MainPopupResourceBundle.java:330 +#: org/jmol/popup/MainPopupResourceBundle.java:339 +#: org/jmol/popup/MainPopupResourceBundle.java:357 +msgid "All" +msgstr "Ð’Ñе" + +#: org/jmol/popup/JmolGenericPopup.java:991 +#, java-format +msgid "{0} processors" +msgstr "{0} процеÑорів" + +#: org/jmol/popup/JmolGenericPopup.java:993 +#, java-format +msgid "{0} MB total" +msgstr "Ð’Ñього: {0} МБ" + +#: org/jmol/popup/JmolGenericPopup.java:996 +#, java-format +msgid "{0} MB maximum" +msgstr "МакÑимум: {0} MБ" + +#: org/jmol/popup/JmolGenericPopup.java:1050 +msgid "not capturing" +msgstr "Ð·Ð°Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ Ð½Ðµ виконуєтьÑÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:266 +#, fuzzy +msgid "Jmol Script Commands" +msgstr "Скриптова конÑоль Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:267 +msgid "Mouse Manual" +msgstr "Довідник з кориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¸ÑˆÐµÑŽ" + +#: org/jmol/popup/MainPopupResourceBundle.java:268 +msgid "Translations" +msgstr "Переклади" + +#: org/jmol/popup/MainPopupResourceBundle.java:269 +msgid "System" +msgstr "СиÑтема" + +#: org/jmol/popup/MainPopupResourceBundle.java:276 +msgid "No atoms loaded" +msgstr "Ðтомів не завантажено" + +#: org/jmol/popup/MainPopupResourceBundle.java:277 +msgid "Configurations" +msgstr "ÐалаштуваннÑ:" + +#: org/jmol/popup/MainPopupResourceBundle.java:278 +msgid "Element" +msgstr "Елемент" + +#: org/jmol/popup/MainPopupResourceBundle.java:279 +msgid "Model/Frame" +msgstr "Модель/Структура" + +#: org/jmol/popup/MainPopupResourceBundle.java:280 +msgid "Language" +msgstr "Мова" + +#: org/jmol/popup/MainPopupResourceBundle.java:281 +#: org/jmol/popup/MainPopupResourceBundle.java:282 +#: org/jmol/popup/MainPopupResourceBundle.java:283 +msgid "By Residue Name" +msgstr "За назвою залишку" + +#: org/jmol/popup/MainPopupResourceBundle.java:284 +msgid "By HETATM" +msgstr "За HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:285 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "МолекулÑрні орбіталі ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:286 +#: org/jmol/popup/MainPopupResourceBundle.java:615 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +msgid "Symmetry" +msgstr "СиметріÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:288 +msgid "Model information" +msgstr "ВідомоÑÑ‚Ñ– щодо моделі" + +#: org/jmol/popup/MainPopupResourceBundle.java:289 +#, java-format +msgid "Select ({0})" +msgstr "Вибір ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:290 +#, java-format +msgid "All {0} models" +msgstr "Ð’ÑÑ– {0} моделі" + +#: org/jmol/popup/MainPopupResourceBundle.java:291 +#, java-format +msgid "Configurations ({0})" +msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ({0})" + +#: org/jmol/popup/MainPopupResourceBundle.java:292 +#, java-format +msgid "Collection of {0} models" +msgstr "Збірка {0} моделей" + +#: org/jmol/popup/MainPopupResourceBundle.java:293 +#, java-format +msgid "atoms: {0}" +msgstr "атоми: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:294 +#, java-format +msgid "bonds: {0}" +msgstr "зв’ÑзкиЖ {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:295 +#, java-format +msgid "groups: {0}" +msgstr "групи: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:296 +#, java-format +msgid "chains: {0}" +msgstr "ланцюги: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:297 +#, java-format +msgid "polymers: {0}" +msgstr "полімери: {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:298 +#, java-format +msgid "model {0}" +msgstr "модель {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:299 +#, java-format +msgid "View {0}" +msgstr "ПереглÑд {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:300 +msgid "Main Menu" +msgstr "Головне меню" + +#: org/jmol/popup/MainPopupResourceBundle.java:301 +msgid "Biomolecules" +msgstr "Біомолекули" + +#: org/jmol/popup/MainPopupResourceBundle.java:302 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "біомолекула {0} ({1} атомів)" + +#: org/jmol/popup/MainPopupResourceBundle.java:303 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð±Ñ–Ð¾Ð¼Ð¾Ð»ÐµÐºÑƒÐ»Ð¸ {0} ({1} атомів)" + +#: org/jmol/popup/MainPopupResourceBundle.java:308 +#: org/jmol/popup/MainPopupResourceBundle.java:442 +#: org/jmol/popup/MainPopupResourceBundle.java:451 +msgid "None" +msgstr "Ðемає" + +#: org/jmol/popup/MainPopupResourceBundle.java:309 +msgid "Display Selected Only" +msgstr "Показати лише позначені" + +#: org/jmol/popup/MainPopupResourceBundle.java:310 +msgid "Invert Selection" +msgstr "Інвертувати вибір" + +#: org/jmol/popup/MainPopupResourceBundle.java:312 +msgid "View" +msgstr "ПереглÑд" + +#: org/jmol/popup/MainPopupResourceBundle.java:313 +msgid "Best" +msgstr "Ðайкраще" + +#: org/jmol/popup/MainPopupResourceBundle.java:314 +msgid "Front" +msgstr "Спереду" + +#: org/jmol/popup/MainPopupResourceBundle.java:315 +msgid "Left" +msgstr "Зліва" + +#: org/jmol/popup/MainPopupResourceBundle.java:316 +msgid "Right" +msgstr "Справа" + +#: org/jmol/popup/MainPopupResourceBundle.java:317 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "Згори" + +#: org/jmol/popup/MainPopupResourceBundle.java:318 +msgid "Bottom" +msgstr "Знизу" + +#: org/jmol/popup/MainPopupResourceBundle.java:319 +msgid "Back" +msgstr "Ззаду" + +#: org/jmol/popup/MainPopupResourceBundle.java:320 +#, fuzzy +msgid "Axis x" +msgstr "ОÑÑ–" + +#: org/jmol/popup/MainPopupResourceBundle.java:321 +#, fuzzy +msgid "Axis y" +msgstr "ОÑÑ–" + +#: org/jmol/popup/MainPopupResourceBundle.java:322 +#, fuzzy +msgid "Axis z" +msgstr "ОÑÑ–" + +#: org/jmol/popup/MainPopupResourceBundle.java:323 +#, fuzzy +msgid "Axis a" +msgstr "ОÑÑ–" + +#: org/jmol/popup/MainPopupResourceBundle.java:324 +#, fuzzy +msgid "Axis b" +msgstr "ОÑÑ–" + +#: org/jmol/popup/MainPopupResourceBundle.java:325 +#, fuzzy +msgid "Axis c" +msgstr "ОÑÑ–" + +#: org/jmol/popup/MainPopupResourceBundle.java:327 +msgid "Scenes" +msgstr "Сцени" + +#: org/jmol/popup/MainPopupResourceBundle.java:329 +msgid "Protein" +msgstr "Протеїн" + +#: org/jmol/popup/MainPopupResourceBundle.java:331 +#: org/jmol/popup/MainPopupResourceBundle.java:342 +#: org/jmol/popup/MainPopupResourceBundle.java:413 +#: org/jmol/popup/MainPopupResourceBundle.java:511 +msgid "Backbone" +msgstr "ОÑнова" + +#: org/jmol/popup/MainPopupResourceBundle.java:332 +msgid "Side Chains" +msgstr "Бічні ланцюжки" + +#: org/jmol/popup/MainPopupResourceBundle.java:333 +msgid "Polar Residues" +msgstr "ПолÑрні залишки" + +#: org/jmol/popup/MainPopupResourceBundle.java:334 +msgid "Nonpolar Residues" +msgstr "ÐеполÑрні залишки" + +#: org/jmol/popup/MainPopupResourceBundle.java:335 +msgid "Basic Residues (+)" +msgstr "Базові залишки (+)" + +#: org/jmol/popup/MainPopupResourceBundle.java:336 +msgid "Acidic Residues (-)" +msgstr "КиÑлотні залишки (-)" + +#: org/jmol/popup/MainPopupResourceBundle.java:337 +msgid "Uncharged Residues" +msgstr "ÐезарÑджені залишки" + +#: org/jmol/popup/MainPopupResourceBundle.java:338 +msgid "Nucleic" +msgstr "Ðуклеотиди" + +#: org/jmol/popup/MainPopupResourceBundle.java:340 +msgid "DNA" +msgstr "ДÐК" + +#: org/jmol/popup/MainPopupResourceBundle.java:341 +msgid "RNA" +msgstr "Ð ÐК" + +#: org/jmol/popup/MainPopupResourceBundle.java:343 +msgid "Bases" +msgstr "Базові" + +#: org/jmol/popup/MainPopupResourceBundle.java:344 +msgid "AT pairs" +msgstr "ÐТ-пари" + +#: org/jmol/popup/MainPopupResourceBundle.java:345 +msgid "GC pairs" +msgstr "ГЦ-пари" + +#: org/jmol/popup/MainPopupResourceBundle.java:346 +msgid "AU pairs" +msgstr "ÐУ-пари" + +#: org/jmol/popup/MainPopupResourceBundle.java:347 +#: org/jmol/popup/MainPopupResourceBundle.java:477 +msgid "Secondary Structure" +msgstr "Вторинна Ñтруктура" + +#: org/jmol/popup/MainPopupResourceBundle.java:348 +msgid "Hetero" +msgstr "Гетеро" + +#: org/jmol/popup/MainPopupResourceBundle.java:349 +msgid "All PDB \"HETATM\"" +msgstr "Ð’ÑÑ– з ПБД \"HETATM\"" + +#: org/jmol/popup/MainPopupResourceBundle.java:350 +msgid "All Solvent" +msgstr "Ð’ÑÑ– розчинні" + +#: org/jmol/popup/MainPopupResourceBundle.java:351 +msgid "All Water" +msgstr "Ð’ÑÑ– водорозчинні" + +#: org/jmol/popup/MainPopupResourceBundle.java:353 +msgid "Nonaqueous Solvent" +msgstr "Ð’ÑÑ– неводорозчинні" + +#: org/jmol/popup/MainPopupResourceBundle.java:354 +msgid "Nonaqueous HETATM" +msgstr "Ðеводорозчинні HETATM" + +#: org/jmol/popup/MainPopupResourceBundle.java:355 +msgid "Ligand" +msgstr "Ліганд" + +#: org/jmol/popup/MainPopupResourceBundle.java:358 +msgid "Carbohydrate" +msgstr "Карбогідрат" + +#: org/jmol/popup/MainPopupResourceBundle.java:359 +msgid "None of the above" +msgstr "Ðічого з наведеного вище" + +#: org/jmol/popup/MainPopupResourceBundle.java:361 +msgid "Style" +msgstr "Стиль" + +#: org/jmol/popup/MainPopupResourceBundle.java:362 +msgid "Scheme" +msgstr "Схема" + +#: org/jmol/popup/MainPopupResourceBundle.java:363 +msgid "CPK Spacefill" +msgstr "Ð—Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñтору за моделлю CPK" + +#: org/jmol/popup/MainPopupResourceBundle.java:364 +msgid "Ball and Stick" +msgstr "Кульки Ñ– Ñтрижні" + +#: org/jmol/popup/MainPopupResourceBundle.java:365 +msgid "Sticks" +msgstr "Стрижні" + +#: org/jmol/popup/MainPopupResourceBundle.java:366 +msgid "Wireframe" +msgstr "КаркаÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:367 +#: org/jmol/popup/MainPopupResourceBundle.java:414 +#: org/jmol/popup/MainPopupResourceBundle.java:513 +msgid "Cartoon" +msgstr "Макет" + +#: org/jmol/popup/MainPopupResourceBundle.java:368 +#: org/jmol/popup/MainPopupResourceBundle.java:419 +#: org/jmol/popup/MainPopupResourceBundle.java:512 +msgid "Trace" +msgstr "ТраÑуваннÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:370 +#: org/jmol/popup/MainPopupResourceBundle.java:464 +msgid "Atoms" +msgstr "Ðтоми" + +#: org/jmol/popup/MainPopupResourceBundle.java:371 +#: org/jmol/popup/MainPopupResourceBundle.java:380 +#: org/jmol/popup/MainPopupResourceBundle.java:389 +#: org/jmol/popup/MainPopupResourceBundle.java:401 +#: org/jmol/popup/MainPopupResourceBundle.java:412 +#: org/jmol/popup/MainPopupResourceBundle.java:422 +#: org/jmol/popup/MainPopupResourceBundle.java:430 +#: org/jmol/popup/MainPopupResourceBundle.java:537 +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +msgid "Off" +msgstr "Вимкнено" + +#: org/jmol/popup/MainPopupResourceBundle.java:372 +#: org/jmol/popup/MainPopupResourceBundle.java:373 +#: org/jmol/popup/MainPopupResourceBundle.java:374 +#: org/jmol/popup/MainPopupResourceBundle.java:375 +#: org/jmol/popup/MainPopupResourceBundle.java:376 +#: org/jmol/popup/MainPopupResourceBundle.java:377 +#, java-format +msgid "{0}% van der Waals" +msgstr "{0}% Ван-дер-ВаальÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:379 +#: org/jmol/popup/MainPopupResourceBundle.java:507 +msgid "Bonds" +msgstr "Зв’Ñзки" + +#: org/jmol/popup/MainPopupResourceBundle.java:381 +#: org/jmol/popup/MainPopupResourceBundle.java:391 +#: org/jmol/popup/MainPopupResourceBundle.java:402 +#: org/jmol/popup/MainPopupResourceBundle.java:423 +#: org/jmol/popup/MainPopupResourceBundle.java:431 +#: org/jmol/popup/MainPopupResourceBundle.java:536 +msgid "On" +msgstr "Увімкнено" + +#: org/jmol/popup/MainPopupResourceBundle.java:382 +#: org/jmol/popup/MainPopupResourceBundle.java:383 +#: org/jmol/popup/MainPopupResourceBundle.java:384 +#: org/jmol/popup/MainPopupResourceBundle.java:385 +#: org/jmol/popup/MainPopupResourceBundle.java:386 +#: org/jmol/popup/MainPopupResourceBundle.java:394 +#: org/jmol/popup/MainPopupResourceBundle.java:395 +#: org/jmol/popup/MainPopupResourceBundle.java:396 +#: org/jmol/popup/MainPopupResourceBundle.java:397 +#: org/jmol/popup/MainPopupResourceBundle.java:398 +#: org/jmol/popup/MainPopupResourceBundle.java:405 +#: org/jmol/popup/MainPopupResourceBundle.java:406 +#: org/jmol/popup/MainPopupResourceBundle.java:407 +#: org/jmol/popup/MainPopupResourceBundle.java:408 +#: org/jmol/popup/MainPopupResourceBundle.java:409 +#: org/jmol/popup/MainPopupResourceBundle.java:433 +#: org/jmol/popup/MainPopupResourceBundle.java:434 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:699 +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#, java-format +msgid "{0} Ã…" +msgstr "{0} Ã…" + +#: org/jmol/popup/MainPopupResourceBundle.java:388 +#: org/jmol/popup/MainPopupResourceBundle.java:508 +msgid "Hydrogen Bonds" +msgstr "Водневі зв’Ñзки" + +#: org/jmol/popup/MainPopupResourceBundle.java:390 +msgid "Calculate" +msgstr "ОбчиÑлити" + +#: org/jmol/popup/MainPopupResourceBundle.java:392 +msgid "Set H-Bonds Side Chain" +msgstr "Ð’Ñтановити бічний ланцюжок H-зв’Ñзків" + +#: org/jmol/popup/MainPopupResourceBundle.java:393 +msgid "Set H-Bonds Backbone" +msgstr "Ð’Ñтановити ÐºÐ°Ñ€ÐºÐ°Ñ H-зв’Ñзків" + +#: org/jmol/popup/MainPopupResourceBundle.java:400 +#: org/jmol/popup/MainPopupResourceBundle.java:509 +msgid "Disulfide Bonds" +msgstr "ДиÑульфідні зв’Ñзки" + +#: org/jmol/popup/MainPopupResourceBundle.java:403 +msgid "Set SS-Bonds Side Chain" +msgstr "Ð’Ñтановити бічний ланцюжок диÑульфідних зв’Ñзків" + +#: org/jmol/popup/MainPopupResourceBundle.java:404 +msgid "Set SS-Bonds Backbone" +msgstr "Ð’Ñтановити ÐºÐ°Ñ€ÐºÐ°Ñ Ð´Ð¸Ñульфідних зв’Ñзків" + +#: org/jmol/popup/MainPopupResourceBundle.java:411 +#: org/jmol/popup/MainPopupResourceBundle.java:510 +msgid "Structures" +msgstr "Структури" + +#: org/jmol/popup/MainPopupResourceBundle.java:415 +msgid "Cartoon Rockets" +msgstr "Ракетки" + +#: org/jmol/popup/MainPopupResourceBundle.java:416 +#: org/jmol/popup/MainPopupResourceBundle.java:514 +msgid "Ribbons" +msgstr "Стрічки" + +#: org/jmol/popup/MainPopupResourceBundle.java:417 +#: org/jmol/popup/MainPopupResourceBundle.java:515 +msgid "Rockets" +msgstr "Ракети" + +#: org/jmol/popup/MainPopupResourceBundle.java:418 +#: org/jmol/popup/MainPopupResourceBundle.java:516 +msgid "Strands" +msgstr "Ðитки" + +#: org/jmol/popup/MainPopupResourceBundle.java:421 +msgid "Vibration" +msgstr "ВібраціÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:426 +#: org/jmol/popup/MainPopupResourceBundle.java:470 +#: org/jmol/popup/MainPopupResourceBundle.java:520 +msgid "Vectors" +msgstr "Вектори" + +#: org/jmol/popup/MainPopupResourceBundle.java:427 +msgid "Spectra" +msgstr "Спектри" + +#: org/jmol/popup/MainPopupResourceBundle.java:428 +msgid "1H-NMR" +msgstr "1H-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:429 +msgid "13C-NMR" +msgstr "13C-NMR" + +#: org/jmol/popup/MainPopupResourceBundle.java:432 +#, java-format +msgid "{0} pixels" +msgstr "{0} пікÑелів" + +#: org/jmol/popup/MainPopupResourceBundle.java:435 +#: org/jmol/popup/MainPopupResourceBundle.java:436 +#: org/jmol/popup/MainPopupResourceBundle.java:437 +#: org/jmol/popup/MainPopupResourceBundle.java:438 +#: org/jmol/popup/MainPopupResourceBundle.java:439 +#, java-format +msgid "Scale {0}" +msgstr "МаÑштаб {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:441 +msgid "Stereographic" +msgstr "Стереографічна" + +#: org/jmol/popup/MainPopupResourceBundle.java:443 +msgid "Red+Cyan glasses" +msgstr "Червоно-блакитні окулÑри" + +#: org/jmol/popup/MainPopupResourceBundle.java:444 +msgid "Red+Blue glasses" +msgstr "Червоно-Ñині окулÑри" + +#: org/jmol/popup/MainPopupResourceBundle.java:445 +msgid "Red+Green glasses" +msgstr "Червоно-зелені окулÑри" + +#: org/jmol/popup/MainPopupResourceBundle.java:446 +msgid "Cross-eyed viewing" +msgstr "СтереоÑкопіÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:447 +msgid "Wall-eyed viewing" +msgstr "ÐвтоÑтереограма" + +#: org/jmol/popup/MainPopupResourceBundle.java:449 +#: org/jmol/popup/MainPopupResourceBundle.java:517 +msgid "Labels" +msgstr "Мітки" + +#: org/jmol/popup/MainPopupResourceBundle.java:452 +msgid "With Element Symbol" +msgstr "З Ñимволом елемента" + +#: org/jmol/popup/MainPopupResourceBundle.java:453 +msgid "With Atom Name" +msgstr "З назвою атома" + +#: org/jmol/popup/MainPopupResourceBundle.java:454 +msgid "With Atom Number" +msgstr "З номером атома" + +#: org/jmol/popup/MainPopupResourceBundle.java:456 +msgid "Position Label on Atom" +msgstr "Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ñ‚ÐºÐ¸ щодо атома" + +#: org/jmol/popup/MainPopupResourceBundle.java:457 +msgid "Centered" +msgstr "По центру" + +#: org/jmol/popup/MainPopupResourceBundle.java:458 +msgid "Upper Right" +msgstr "Вгорі праворуч" + +#: org/jmol/popup/MainPopupResourceBundle.java:459 +msgid "Lower Right" +msgstr "Внизу праворуч" + +#: org/jmol/popup/MainPopupResourceBundle.java:460 +msgid "Upper Left" +msgstr "Вгорі ліворуч" + +#: org/jmol/popup/MainPopupResourceBundle.java:461 +msgid "Lower Left" +msgstr "Внизу ліворуч" + +#: org/jmol/popup/MainPopupResourceBundle.java:463 +msgid "Color" +msgstr "Колір" + +#: org/jmol/popup/MainPopupResourceBundle.java:466 +msgid "By Scheme" +msgstr "За Ñхемою" + +#: org/jmol/popup/MainPopupResourceBundle.java:467 +msgid "Element (CPK)" +msgstr "Елемент (CPK)" + +#: org/jmol/popup/MainPopupResourceBundle.java:468 +msgid "Alternative Location" +msgstr "Ðльтернативне розташуваннÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:469 +msgid "Molecule" +msgstr "Молекула" + +#: org/jmol/popup/MainPopupResourceBundle.java:471 +msgid "Formal Charge" +msgstr "Формальний зарÑд" + +#: org/jmol/popup/MainPopupResourceBundle.java:472 +msgid "Partial Charge" +msgstr "ЧаÑтковий зарÑд" + +#: org/jmol/popup/MainPopupResourceBundle.java:473 +msgid "Temperature (Relative)" +msgstr "Температура (відноÑна)" + +#: org/jmol/popup/MainPopupResourceBundle.java:474 +msgid "Temperature (Fixed)" +msgstr "Температура (абÑолютна)" + +#: org/jmol/popup/MainPopupResourceBundle.java:476 +msgid "Amino Acid" +msgstr "ÐмінокиÑлота" + +#: org/jmol/popup/MainPopupResourceBundle.java:478 +msgid "Chain" +msgstr "Ланцюжок" + +#: org/jmol/popup/MainPopupResourceBundle.java:479 +msgid "Group" +msgstr "Група" + +#: org/jmol/popup/MainPopupResourceBundle.java:480 +msgid "Monomer" +msgstr "Мономер" + +#: org/jmol/popup/MainPopupResourceBundle.java:481 +msgid "Shapely" +msgstr "ОбриÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:483 +msgid "Inherit" +msgstr "УÑпадкувати" + +#: org/jmol/popup/MainPopupResourceBundle.java:484 +msgid "Black" +msgstr "Чорний" + +#: org/jmol/popup/MainPopupResourceBundle.java:485 +msgid "White" +msgstr "Білий" + +#: org/jmol/popup/MainPopupResourceBundle.java:486 +msgid "Cyan" +msgstr "Блакитний" + +#: org/jmol/popup/MainPopupResourceBundle.java:488 +msgid "Red" +msgstr "Червоний" + +#: org/jmol/popup/MainPopupResourceBundle.java:489 +msgid "Orange" +msgstr "ЖовтогарÑчий" + +#: org/jmol/popup/MainPopupResourceBundle.java:490 +msgid "Yellow" +msgstr "Жовтий" + +#: org/jmol/popup/MainPopupResourceBundle.java:491 +msgid "Green" +msgstr "Зелений" + +#: org/jmol/popup/MainPopupResourceBundle.java:492 +msgid "Blue" +msgstr "Синій" + +#: org/jmol/popup/MainPopupResourceBundle.java:493 +msgid "Indigo" +msgstr "Індиго" + +#: org/jmol/popup/MainPopupResourceBundle.java:494 +msgid "Violet" +msgstr "Фіалковий" + +#: org/jmol/popup/MainPopupResourceBundle.java:496 +msgid "Salmon" +msgstr "Оранжево-рожевий" + +#: org/jmol/popup/MainPopupResourceBundle.java:497 +msgid "Olive" +msgstr "Оливковий" + +#: org/jmol/popup/MainPopupResourceBundle.java:498 +msgid "Maroon" +msgstr "Каштановий" + +#: org/jmol/popup/MainPopupResourceBundle.java:499 +msgid "Gray" +msgstr "Сірий" + +#: org/jmol/popup/MainPopupResourceBundle.java:500 +msgid "Slate Blue" +msgstr "Сизий" + +#: org/jmol/popup/MainPopupResourceBundle.java:501 +msgid "Gold" +msgstr "Золотий" + +#: org/jmol/popup/MainPopupResourceBundle.java:502 +msgid "Orchid" +msgstr "СинÑво-рожевий" + +#: org/jmol/popup/MainPopupResourceBundle.java:504 +#: org/jmol/popup/MainPopupResourceBundle.java:671 +msgid "Make Opaque" +msgstr "Зробити непрозорим" + +#: org/jmol/popup/MainPopupResourceBundle.java:505 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +msgid "Make Translucent" +msgstr "Зробити прозорим" + +#: org/jmol/popup/MainPopupResourceBundle.java:518 +msgid "Background" +msgstr "Тло" + +#: org/jmol/popup/MainPopupResourceBundle.java:519 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +msgid "Surfaces" +msgstr "Поверхні" + +#: org/jmol/popup/MainPopupResourceBundle.java:521 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:709 +msgid "Axes" +msgstr "ОÑÑ–" + +#: org/jmol/popup/MainPopupResourceBundle.java:522 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +msgid "Boundbox" +msgstr "Рамка" + +#: org/jmol/popup/MainPopupResourceBundle.java:523 +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Unit cell" +msgstr "Комірка одиниці" + +#: org/jmol/popup/MainPopupResourceBundle.java:525 +msgid "Zoom" +msgstr "МаÑштабуваннÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:532 +msgid "Zoom In" +msgstr "Збільшити" + +#: org/jmol/popup/MainPopupResourceBundle.java:533 +msgid "Zoom Out" +msgstr "Зменшити" + +#: org/jmol/popup/MainPopupResourceBundle.java:535 +#: org/jmol/popup/MainPopupResourceBundle.java:601 +msgid "Spin" +msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð°Ð²ÐºÐ¾Ð»Ð¾ оÑÑ–" + +#: org/jmol/popup/MainPopupResourceBundle.java:539 +msgid "Set X Rate" +msgstr "Ð’Ñтановити швидкіÑÑ‚ÑŒ за X" + +#: org/jmol/popup/MainPopupResourceBundle.java:540 +msgid "Set Y Rate" +msgstr "Ð’Ñтановити швидкіÑÑ‚ÑŒ за Y" + +#: org/jmol/popup/MainPopupResourceBundle.java:541 +msgid "Set Z Rate" +msgstr "Ð’Ñтановити швидкіÑÑ‚ÑŒ за Z" + +#: org/jmol/popup/MainPopupResourceBundle.java:542 +#: org/jmol/popup/MainPopupResourceBundle.java:568 +msgid "Set FPS" +msgstr "Ð’Ñтановити чаÑтоту кадрів" + +#: org/jmol/popup/MainPopupResourceBundle.java:552 +msgid "Animation" +msgstr "ÐнімаціÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:553 +msgid "Animation Mode" +msgstr "Режим анімації" + +#: org/jmol/popup/MainPopupResourceBundle.java:554 +msgid "Play Once" +msgstr "Одноразове відтвореннÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:555 +msgid "Palindrome" +msgstr "Паліндром" + +#: org/jmol/popup/MainPopupResourceBundle.java:556 +msgid "Loop" +msgstr "Цикл" + +#: org/jmol/popup/MainPopupResourceBundle.java:558 +msgid "Play" +msgstr "ПуÑк" + +#: org/jmol/popup/MainPopupResourceBundle.java:561 +msgid "Stop" +msgstr "Зупинити" + +#: org/jmol/popup/MainPopupResourceBundle.java:562 +msgid "Next Frame" +msgstr "ÐаÑтупний кадр" + +#: org/jmol/popup/MainPopupResourceBundle.java:563 +msgid "Previous Frame" +msgstr "Попередній кадр" + +#: org/jmol/popup/MainPopupResourceBundle.java:564 +msgid "Rewind" +msgstr "Повний назад" + +#: org/jmol/popup/MainPopupResourceBundle.java:565 +msgid "Reverse" +msgstr "РеверÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:566 +msgid "Restart" +msgstr "ПерезапуÑтити" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Measurements" +msgstr "ВимірюваннÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +msgid "Double-Click begins and ends all measurements" +msgstr "Подвійне ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð¿Ð¾Ñ‡Ð¸Ð½Ð°Ñ” Ñ– завершує вÑÑ– вимірюваннÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:577 +msgid "Click for distance measurement" +msgstr "ÐатиÑніть Ð´Ð»Ñ Ð²Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ñтані" + +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "Click for angle measurement" +msgstr "ÐатиÑніть, щоб вимірÑти кут" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "Click for torsion (dihedral) measurement" +msgstr "Клацніть, щоб почати Ð²Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð²Ð¾Ð³Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ кута крученнÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +msgid "Click two atoms to display a sequence in the console" +msgstr "Позначте клацаннÑм два атоми, щоб переглÑнути поÑлідовніÑÑ‚ÑŒ у конÑолі." + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +msgid "Delete measurements" +msgstr "Вилучити виміри" + +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "List measurements" +msgstr "СпиÑок вимірів" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Distance units nanometers" +msgstr "Вимір відÑтані у нанометрах" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Distance units Angstroms" +msgstr "Ð’Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ñтані у ангÑтремах" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +msgid "Distance units picometers" +msgstr "Ð’Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ñтані у пікометрах" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +msgid "Set picking" +msgstr "Ð’Ñтановити вибір" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +msgid "Center" +msgstr "По центру" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +msgid "Identity" +msgstr "Профіль" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +msgid "Label" +msgstr "Мітка" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +msgid "Select atom" +msgstr "Вибрати атом" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +msgid "Select chain" +msgstr "Вибрати ланцюжок" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +msgid "Select element" +msgstr "Вибрати елемент" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +#, fuzzy +msgid "modelKitMode" +msgstr "вийти з режиму моделюваннÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Select group" +msgstr "Вибрати групу" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +msgid "Select molecule" +msgstr "Вибрати молекулу" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +msgid "Select site" +msgstr "Вибрати міÑце" + +#: org/jmol/popup/MainPopupResourceBundle.java:600 +msgid "Show symmetry operation" +msgstr "Показати дію пошуку Ñиметричної чаÑтини" + +#: org/jmol/popup/MainPopupResourceBundle.java:603 +msgid "Show" +msgstr "Показати" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +#, fuzzy +msgid "JavaScript Console" +msgstr "Скриптова конÑоль Jmol" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "File Contents" +msgstr "ВміÑÑ‚ файла" + +#: org/jmol/popup/MainPopupResourceBundle.java:607 +msgid "File Header" +msgstr "Заголовок файла" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Isosurface JVXL data" +msgstr "Дані ізоповерхні JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Molecular orbital JVXL data" +msgstr "Дані молекулÑрних орбіталей JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Model" +msgstr "Модель" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "Orientation" +msgstr "ОрієнтаціÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Space group" +msgstr "ПроÑторова група" + +#: org/jmol/popup/MainPopupResourceBundle.java:616 +msgid "Current state" +msgstr "Поточний Ñтан" + +#: org/jmol/popup/MainPopupResourceBundle.java:618 +msgid "File" +msgstr "Файл" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +msgid "Export" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Reload" +msgstr "Перезавантажити" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Open from PDB" +msgstr "Відкрити з PDB" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +#, fuzzy +msgid "Open local file" +msgstr "Відкрити вибраний файл" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +#, fuzzy +msgid "Open URL" +msgstr "Відкрити" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Load full unit cell" +msgstr "Завантажити комірку одиниць" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Open script" +msgstr "Відкрити Ñкрипт" + +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/viewer/OutputManager.java:792 +msgid "Capture" +msgstr "ЗахопленнÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "Capture rock" +msgstr "Захопити коливаннÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "Capture spin" +msgstr "Захопити обертаннÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:632 +msgid "Start capturing" +msgstr "Розпочати захопленнÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "End capturing" +msgstr "Завершити захопленнÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "Disable capturing" +msgstr "Вимкнути захопленнÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "Re-enable capturing" +msgstr "Повторно увімкнути захопленнÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "Set capture replay rate" +msgstr "Ð’Ñтановити чаÑтоту Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ð°Ñ…Ð¾Ð¿Ð»ÐµÐ½Ð½Ñ" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Toggle capture looping" +msgstr "Увімкнути/Вимкнути циклічне захопленнÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +#, java-format +msgid "Save a copy of {0}" +msgstr "Зберегти копію {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "Save script with state" +msgstr "Зберегти Ñкрипт зі Ñтаном" + +#: org/jmol/popup/MainPopupResourceBundle.java:641 +msgid "Save script with history" +msgstr "Зберегти Ñкрипт з журналом" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +#: org/jmol/popup/MainPopupResourceBundle.java:643 +#: org/jmol/popup/MainPopupResourceBundle.java:644 +#: org/jmol/popup/MainPopupResourceBundle.java:645 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +#, java-format +msgid "Export {0} image" +msgstr "ЕкÑпортувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +#, fuzzy +msgid "Save as PNG/JMOL (image+zip)" +msgstr "Зберегти вÑÑ– дані до файла JMOL (zip)" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "Save JVXL isosurface" +msgstr "Зберегти ізоповерхню JVXL" + +#: org/jmol/popup/MainPopupResourceBundle.java:649 +#: org/jmol/popup/MainPopupResourceBundle.java:650 +#: org/jmol/popup/MainPopupResourceBundle.java:651 +#: org/jmol/popup/MainPopupResourceBundle.java:652 +#, java-format +msgid "Export {0} 3D model" +msgstr "ЕкÑпортувати проÑторову модель {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Computation" +msgstr "ОбчиÑленнÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Optimize structure" +msgstr "Оптимізувати Ñтруктуру" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +msgid "Model kit" +msgstr "МоделюваннÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +msgid "Extract MOL data" +msgstr "Видобути дані MOL" + +#: org/jmol/popup/MainPopupResourceBundle.java:663 +msgid "Dot Surface" +msgstr "Точкова поверхнÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:664 +msgid "van der Waals Surface" +msgstr "ÐŸÐ¾Ð²ÐµÑ€Ñ…Ð½Ñ Ð’Ð°Ð½-дер-ВаальÑа" + +#: org/jmol/popup/MainPopupResourceBundle.java:665 +msgid "Molecular Surface" +msgstr "МолекулÑрна поверхнÑ" + +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "ÐŸÐ¾Ð²ÐµÑ€Ñ…Ð½Ñ Ñ€Ð¾Ð·Ñ‡Ð¸Ð½Ð½Ð¸ÐºÐ° ({0}-ангÑтремне зондуваннÑ)" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "ДоÑтупна Ð´Ð»Ñ Ñ€Ð¾Ð·Ñ‡Ð¸Ð½Ð½Ð¸ÐºÐ° Ð¿Ð¾Ð²ÐµÑ€Ñ…Ð½Ñ (ВДВ + {0} ангÑтрем)" + +#: org/jmol/popup/MainPopupResourceBundle.java:669 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "МолекулÑрний електроÑтатичний потенціал (діапазон ALL)" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "МолекулÑрний електроÑтатичний потенціал (діапазон -0.1 – 0.1)" + +#: org/jmol/popup/MainPopupResourceBundle.java:676 +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#, java-format +msgid "Reload {0}" +msgstr "Перезавантажити {0}" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "Перезавантажити {0} + показати {1}" + +#: org/jmol/popup/MainPopupResourceBundle.java:680 +msgid "Reload + Polyhedra" +msgstr "Перезавантажити + Багатогранник" + +#: org/jmol/popup/MainPopupResourceBundle.java:687 +msgid "Hide" +msgstr "Приховати" + +#: org/jmol/popup/MainPopupResourceBundle.java:688 +msgid "Dotted" +msgstr "Пунктир" + +#: org/jmol/popup/MainPopupResourceBundle.java:690 +msgid "Pixel Width" +msgstr "Ширина у пікÑелÑÑ…" + +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:692 +#: org/jmol/popup/MainPopupResourceBundle.java:693 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#, java-format +msgid "{0} px" +msgstr "{0} пк" + +#: org/jmol/popup/MainPopupResourceBundle.java:696 +msgid "Angstrom Width" +msgstr "Ширина у ангÑтремах" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Selection Halos" +msgstr "Ореоли позначених" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +msgid "Show Hydrogens" +msgstr "Показувати атоми водню" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +msgid "Show Measurements" +msgstr "Показувати розміри" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +msgid "Perspective Depth" +msgstr "Глибина перÑпективи" + +#: org/jmol/popup/MainPopupResourceBundle.java:711 +msgid "RasMol Colors" +msgstr "Кольори RasMol" + +#: org/jmol/popup/MainPopupResourceBundle.java:712 +msgid "About..." +msgstr "Про програму…" + +#: org/jmol/script/ScriptCompiler.java:3051 +msgid "script compiler ERROR: " +msgstr "ПОМИЛКРобробки Ñкрипту: " + +#: org/jmol/script/ScriptError.java:192 +msgid "x y z axis expected" +msgstr "Ñлід викориÑтовувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° віÑÑми x y z" + +#: org/jmol/script/ScriptError.java:195 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "Ðе можна викориÑтовувати {0}, Ñкщо у тлі показано модель" + +#: org/jmol/script/ScriptError.java:198 +#: org/jmol/script/ScriptTokenParser.java:1487 +msgid "bad argument count" +msgstr "помилкова кількіÑÑ‚ÑŒ параметрів" + +#: org/jmol/script/ScriptError.java:201 +msgid "Miller indices cannot all be zero." +msgstr "ІндекÑи Міллера не можуть бути нульовими." + +#: org/jmol/script/ScriptError.java:204 +msgid "bad [R,G,B] color" +msgstr "помилкова трійка кольорів [R,G,B]" + +#: org/jmol/script/ScriptError.java:207 +msgid "boolean expected" +msgstr "Ñлід викориÑтовувати булівÑьке значеннÑ" + +#: org/jmol/script/ScriptError.java:210 +msgid "boolean or number expected" +msgstr "Ñлід викориÑтовувати булівÑьке або чиÑлове значеннÑ" + +#: org/jmol/script/ScriptError.java:213 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "Ñлід викориÑтовувати булівÑьке, чиÑлове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ {0}" + +#: org/jmol/script/ScriptError.java:216 +msgid "cannot set value" +msgstr "не вдалоÑÑ Ð²Ñтановити значеннÑ" + +#: org/jmol/script/ScriptError.java:219 +msgid "color expected" +msgstr "Ñлід викориÑтовувати колір" + +#: org/jmol/script/ScriptError.java:222 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "Ñлід викориÑтовувати колір або назву палітри (Jmol, Rasmol)" + +#: org/jmol/script/ScriptError.java:225 +#: org/jmol/script/ScriptTokenParser.java:1493 +msgid "command expected" +msgstr "Ñлід було викориÑтати команду" + +#: org/jmol/script/ScriptError.java:228 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" +"Ñлід викориÑтовувати {x y z}, $name або (Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° допомогою Ñимволів атомів)" + +#: org/jmol/script/ScriptError.java:231 +msgid "draw object not defined" +msgstr "об’єкт креÑÐ»ÐµÐ½Ð½Ñ Ð½Ðµ визначено" + +#: org/jmol/script/ScriptError.java:234 +#: org/jmol/script/ScriptTokenParser.java:1499 +msgid "unexpected end of script command" +msgstr "помилкове Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ Ñкрипту" + +#: org/jmol/script/ScriptError.java:237 +msgid "valid (atom expression) expected" +msgstr "Ñлід викориÑтовувати коректний (Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° допомогою Ñимволів атомів)" + +#: org/jmol/script/ScriptError.java:240 +msgid "(atom expression) or integer expected" +msgstr "" +"Ñлід викориÑтовувати (Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° допомогою Ñимволів атомів) або ціле чиÑло" + +#: org/jmol/script/ScriptError.java:243 +msgid "filename expected" +msgstr "Ñлід викориÑтовувати назву файла" + +#: org/jmol/script/ScriptError.java:246 +msgid "file not found" +msgstr "файл не знайдено" + +#: org/jmol/script/ScriptError.java:249 +msgid "incompatible arguments" +msgstr "неÑуміÑні параметри" + +#: org/jmol/script/ScriptError.java:252 +msgid "insufficient arguments" +msgstr "недоÑÑ‚Ð°Ñ‚Ð½Ñ ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ параметрів" + +#: org/jmol/script/ScriptError.java:255 +msgid "integer expected" +msgstr "Ñлід було викориÑтовувати ціле чиÑло" + +#: org/jmol/script/ScriptError.java:258 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "ціле чиÑло поза межами діапазону ({0}-{1})" + +#: org/jmol/script/ScriptError.java:261 +msgid "invalid argument" +msgstr "некоректний параметр" + +#: org/jmol/script/ScriptError.java:264 +msgid "invalid parameter order" +msgstr "некоректний порÑдок параметрів" + +#: org/jmol/script/ScriptError.java:267 +msgid "keyword expected" +msgstr "Ñлід було викориÑтовувати ключове Ñлово" + +#: org/jmol/script/ScriptError.java:270 +msgid "no MO coefficient data available" +msgstr "не виÑвлено даних коефіцієнтів молекулÑрних орбіталей" + +#: org/jmol/script/ScriptError.java:273 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" +"Слід викориÑтовувати Ñ–Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð»ÐµÐºÑƒÐ»Ñрних орбіталей у межах від 1 до {0}" + +#: org/jmol/script/ScriptError.java:276 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" +"Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ кадру не виÑвлено даних базових значень та коефіцієнтів " +"молекулÑрних орбіталей" + +#: org/jmol/script/ScriptError.java:279 +msgid "no MO occupancy data available" +msgstr "дані щодо Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¼Ð¾Ð»ÐµÐºÑƒÐ»Ñрних орбіталей недоÑтупні" + +#: org/jmol/script/ScriptError.java:282 +msgid "Only one molecular orbital is available in this file" +msgstr "У цьому файлі визначено лише одну молекулÑрну орбіталь" + +#: org/jmol/script/ScriptError.java:285 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "Ð”Ð»Ñ {0} потрібно, щоб було показано лише одну модель" + +#: org/jmol/script/ScriptError.java:288 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "{0} вимагає Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐµ однієї моделі" + +#: org/jmol/script/ScriptError.java:291 +msgid "No data available" +msgstr "Ðе виÑвлено даних" + +#: org/jmol/script/ScriptError.java:295 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" +"Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані щодо чаÑткових зарÑдів з файла; Jmol ці дані " +"потрібні Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ даних MEP." + +#: org/jmol/script/ScriptError.java:298 +msgid "No unit cell" +msgstr "Ðемає комірки одиниць" + +#: org/jmol/script/ScriptError.java:301 +#: org/jmol/script/ScriptTokenParser.java:1523 +msgid "number expected" +msgstr "Ñлід було викориÑтати чиÑло" + +#: org/jmol/script/ScriptError.java:304 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "чиÑлом має бути ({0} або {1})" + +#: org/jmol/script/ScriptError.java:307 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "деÑÑткове чиÑло поза діапазоном ({0}-{1})" + +#: org/jmol/script/ScriptError.java:310 +msgid "object name expected after '$'" +msgstr "піÑÐ»Ñ Â«$» Ñлід вказувати назву об’єкта" + +#: org/jmol/script/ScriptError.java:314 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" +"Ñлід викориÑтовувати площину — або три точки, або Ð·Ð°Ð¿Ð¸Ñ Ñимволами атомів, " +"або {0}, або {1}, або {2}" + +#: org/jmol/script/ScriptError.java:317 +msgid "property name expected" +msgstr "Ñлід було викориÑтовувати назву влаÑтивоÑÑ‚Ñ–" + +#: org/jmol/script/ScriptError.java:320 +#, java-format +msgid "space group {0} was not found." +msgstr "не знайдено проÑторову групу {0}." + +#: org/jmol/script/ScriptError.java:323 +msgid "quoted string expected" +msgstr "Ñлід викориÑтовувати Ñ€Ñдок у лапках" + +#: org/jmol/script/ScriptError.java:326 +msgid "quoted string or identifier expected" +msgstr "Ñлід викориÑтовувати Ñ€Ñдок у лапках або ідентифікатор" + +#: org/jmol/script/ScriptError.java:329 +msgid "too many rotation points were specified" +msgstr "було вказано забагато точок обертаннÑ" + +#: org/jmol/script/ScriptError.java:332 +msgid "too many script levels" +msgstr "занадто багато рівнів Ñкрипту" + +#: org/jmol/script/ScriptError.java:335 +msgid "unrecognized atom property" +msgstr "невідома влаÑтивіÑÑ‚ÑŒ атома" + +#: org/jmol/script/ScriptError.java:338 +msgid "unrecognized bond property" +msgstr "невідома влаÑтивіÑÑ‚ÑŒ зв’Ñзку" + +#: org/jmol/script/ScriptError.java:341 +msgid "unrecognized command" +msgstr "невідома команда" + +#: org/jmol/script/ScriptError.java:344 +msgid "runtime unrecognized expression" +msgstr "невідомий вираз під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ" + +#: org/jmol/script/ScriptError.java:347 +msgid "unrecognized object" +msgstr "невідомий об’єкт" + +#: org/jmol/script/ScriptError.java:350 +#: org/jmol/script/ScriptTokenParser.java:1541 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "невідомий параметр {0}" + +#: org/jmol/script/ScriptError.java:354 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "невідомий параметр {0} у Ñкрипті Ñтану Jmol (вÑтановлено попри вÑе)" + +#: org/jmol/script/ScriptError.java:357 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "невідомий параметр SHOW — викориÑтано {0}" + +#: org/jmol/script/ScriptError.java:363 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "що запиÑувати? {0} або «назву файла» {1}" + +#: org/jmol/script/ScriptError.java:412 org/jmol/script/ScriptEval.java:6447 +msgid "script ERROR: " +msgstr "ПОМИЛКРÑкрипту: " + +#: org/jmol/script/ScriptEval.java:3263 +#, java-format +msgid "show saved: {0}" +msgstr "" + +#: org/jmol/script/ScriptEval.java:3277 org/jmol/script/ScriptEval.java:7960 +#, java-format +msgid "{0} atoms deleted" +msgstr "вилучено {0} атомів" + +#: org/jmol/script/ScriptEval.java:3995 org/jmol/scriptext/CmdExt.java:643 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "{0} водневих зв’Ñзки" + +#: org/jmol/script/ScriptEval.java:4649 +#, java-format +msgid "file {0} created" +msgstr "Ñтворено файл {0}" + +#: org/jmol/script/ScriptEval.java:7667 +#, java-format +msgid "to resume, enter: &{0}" +msgstr "" + +#: org/jmol/script/ScriptTokenParser.java:1490 +#, java-format +msgid "invalid context for {0}" +msgstr "некоректний контекÑÑ‚ {0}" + +#: org/jmol/script/ScriptTokenParser.java:1496 +msgid "{ number number number } expected" +msgstr "Ñлід було викориÑтати набір { чиÑло чиÑло чиÑло }" + +#: org/jmol/script/ScriptTokenParser.java:1502 +msgid "end of expression expected" +msgstr "Ñлід було викориÑтати команду Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ð¸Ñ€Ð°Ð·Ñƒ" + +#: org/jmol/script/ScriptTokenParser.java:1505 +msgid "identifier or residue specification expected" +msgstr "Ñлід було викориÑтати ідентифікатор або Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð»Ð¸ÑˆÐºÑƒ" + +#: org/jmol/script/ScriptTokenParser.java:1508 +msgid "invalid atom specification" +msgstr "некоректний Ð¾Ð¿Ð¸Ñ Ð°Ñ‚Ð¾Ð¼Ð°" + +#: org/jmol/script/ScriptTokenParser.java:1511 +msgid "invalid chain specification" +msgstr "некоректний Ð¾Ð¿Ð¸Ñ Ð»Ð°Ð½Ñ†ÑŽÐ¶ÐºÐ°" + +#: org/jmol/script/ScriptTokenParser.java:1514 +#, java-format +msgid "invalid expression token: {0}" +msgstr "некоректний елементи виразу: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1517 +msgid "invalid model specification" +msgstr "некоректний Ð¾Ð¿Ð¸Ñ Ð¼Ð¾Ð´ÐµÐ»Ñ–" + +#: org/jmol/script/ScriptTokenParser.java:1520 +#, java-format +msgid "missing END for {0}" +msgstr "у {0} не виÑтачає команди END" + +#: org/jmol/script/ScriptTokenParser.java:1526 +msgid "number or variable name expected" +msgstr "Ñлід було викориÑтати чиÑло або назву змінної" + +#: org/jmol/script/ScriptTokenParser.java:1529 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "Ñлід було вказати Ð¾Ð¿Ð¸Ñ Ð·Ð°Ð»Ð¸ÑˆÐºÑƒ (ALA, AL?, A*)" + +#: org/jmol/script/ScriptTokenParser.java:1532 +#, java-format +msgid "{0} expected" +msgstr "Ñлід було викориÑтати {0}" + +#: org/jmol/script/ScriptTokenParser.java:1535 +#, java-format +msgid "{0} unexpected" +msgstr "не Ñлід викориÑтовувати {0}" + +#: org/jmol/script/ScriptTokenParser.java:1538 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "невідомий елементи виразу: {0}" + +#: org/jmol/script/ScriptTokenParser.java:1544 +#, java-format +msgid "unrecognized token: {0}" +msgstr "невідомий елемент: {0}" + +#: org/jmol/scriptext/CmdExt.java:621 +#, java-format +msgid "{0} charges modified" +msgstr "Змінено {0} зарÑдів" + +#: org/jmol/scriptext/CmdExt.java:729 +#, java-format +msgid "{0} struts added" +msgstr "додано {0} розпірки" + +#: org/jmol/scriptext/CmdExt.java:865 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "ЗауваженнÑ: циклічніÑÑ‚ÑŒ можна увімкнути за допомогою {0}" + +#: org/jmol/scriptext/CmdExt.java:867 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "Затримка анімації на оÑнові: {0}" + +#: org/jmol/scriptext/CmdExt.java:1872 +#, java-format +msgid "{0} connections deleted" +msgstr "вилучено {0} з’єднань" + +#: org/jmol/scriptext/CmdExt.java:1884 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "{0} нові зв’Ñзки; {1} змінено" + +#: org/jmol/scriptext/MathExt.java:3661 +msgid "Note: More than one model is involved in this contact!" +msgstr "ЗауваженнÑ: у цей контакт включено декілька моделей!" + +#: org/jmol/shape/Frank.java:92 +msgid "Click for menu..." +msgstr "Клацніть, щоб відкрити меню…" + +#: org/jmol/util/GenericApplet.java:294 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Ðплет Jmol, верÑÑ–Ñ {0} {1}.\n" +"\n" +"Проект OpenScience.\n" +"\n" +"Див. http://www.jmol.org Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— інформації" + +#: org/jmol/util/GenericApplet.java:681 +msgid "File Error:" +msgstr "Помилка у файлі:" + +#: org/jmol/viewer/ActionManager.java:231 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "призначити/додати атом або зв’Ñзок (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:235 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "відкрити нещодавнє контекÑтне меню (ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ñƒ Ñамому Jmol)" + +#: org/jmol/viewer/ActionManager.java:237 +#, java-format +msgid "delete atom (requires {0})" +msgstr "вилучити атом (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:239 +#, java-format +msgid "delete bond (requires {0})" +msgstr "вилучити зв’Ñзок (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:241 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "Ñкоригувати глибину (Ð·Ð°Ð´Ð½Ñ Ð¿Ð»Ð¾Ñ‰Ð¸Ð½Ð°, потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:242 +#, java-format +msgid "move atom (requires {0})" +msgstr "переÑунути атом (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:245 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "переÑунути веÑÑŒ об’єкт креÑÐ»ÐµÐ½Ð½Ñ (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:247 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "переÑунути певну точку креÑÐ»ÐµÐ½Ð½Ñ (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:248 +#, java-format +msgid "move label (requires {0})" +msgstr "переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ñ‚ÐºÐ¸ (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:251 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "переÑунути атом Ñ– мінімізувати молекулу (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:254 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "переÑунути Ñ– мінімізувати молекулу (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:257 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "переÑунути позначені атоми (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:259 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "перетÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ñ‚Ð¾Ð¼Ñ–Ð² у напрÑмку Z (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:261 +msgid "simulate multi-touch using the mouse)" +msgstr "імітувати ÑенÑорне ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° допомогою миші)" + +#: org/jmol/viewer/ActionManager.java:263 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "паралельно перенеÑти точку навігації (потрібно {0} Ñ– {1})" + +#: org/jmol/viewer/ActionManager.java:265 +msgid "pick an atom" +msgstr "вибрати атом" + +#: org/jmol/viewer/ActionManager.java:267 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "з’єднати атоми (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:269 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "вибрати точку ISOSURFACE (потрібно {0}" + +#: org/jmol/viewer/ActionManager.java:271 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "вибрати мітку Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñтану приховано/показано (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:278 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" +"вибрати атом Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¹Ð¾Ð³Ð¾ у виміри (піÑÐ»Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ Ð²Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ " +"піÑÐ»Ñ {0})" + +#: org/jmol/viewer/ActionManager.java:281 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "вибрати точку або атом Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:284 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "вибрати точку DRAW (Ð´Ð»Ñ Ð²Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ) (потрібно {0}" + +#: org/jmol/viewer/ActionManager.java:287 +msgid "pop up the full context menu" +msgstr "відкрити повне контекÑтне меню" + +#: org/jmol/viewer/ActionManager.java:289 +msgid "reset (when clicked off the model)" +msgstr "відновити (піÑÐ»Ñ ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ð»Ñ–Ð²Ð¾ÑŽ кнопкою миші поза моделлю)" + +#: org/jmol/viewer/ActionManager.java:290 +msgid "rotate" +msgstr "обертаннÑ" + +#: org/jmol/viewer/ActionManager.java:292 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "обертати гілку навколо зв’Ñзку (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:294 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "обертати позначені атоми (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:295 +msgid "rotate Z" +msgstr "Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð°Ð²ÐºÐ¾Ð»Ð¾ Z" + +#: org/jmol/viewer/ActionManager.java:300 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" +"обертати навколо Z (горизонтальне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° миші) або змінювати " +"маÑштаб (вертикальне переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° миші)" + +#: org/jmol/viewer/ActionManager.java:301 +#, java-format +msgid "select an atom (requires {0})" +msgstr "позначити атом (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:304 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ– перетÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ñ‚Ð¾Ð¼Ñ–Ð² (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:306 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "знÑти Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· групи атомів (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:309 +#, java-format +msgid "select NONE (requires {0})" +msgstr "знÑти Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· уÑÑ–Ñ… (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:311 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "додати цю групу атомів до набору позначених атомів (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:314 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "позначити або знÑти Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:321 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" +"Ñкщо позначено вÑе, знÑти позначеннÑ, інакше додати цю групу атомів до " +"набору позначених атомів (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:324 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "вибрати атом Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб розпочати або завершити вимірюваннÑ" + +#: org/jmol/viewer/ActionManager.java:326 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "Ñкоригувати оÑнову (Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ð¿Ð»Ð¾Ñ‰Ð¸Ð½Ð°, потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:328 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "переÑунути вікно площини/глибини (обидві площини; потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:330 +msgid "zoom (along right edge of window)" +msgstr "зміна маÑштабу (вздовж правого краю вікна)" + +#: org/jmol/viewer/ActionManager.java:336 +#, java-format +msgid "click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" +"клацніть лівою кнопкою миші у двох точках, щоб почати Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð°Ð²ÐºÐ¾Ð»Ð¾ віÑÑ– " +"проти годинникової Ñтрілки (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:339 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" +"клацніть лівою кнопкою миші у двох точках, щоб почати Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð½Ð°Ð²ÐºÐ¾Ð»Ð¾ віÑÑ– " +"за годинниковою Ñтрілкою (потрібно {0})" + +#: org/jmol/viewer/ActionManager.java:342 +#, java-format +msgid "stop motion (requires {0})" +msgstr "зупинити рух (потрібен {0})" + +#: org/jmol/viewer/ActionManager.java:347 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" +"обертати модель навколо віÑÑ– (ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ð· наÑтупним відпуÑканнÑм кнопки " +"призведе до зупинки обертаннÑ)" + +#: org/jmol/viewer/ActionManager.java:348 +msgid "translate" +msgstr "паралельне переÑуваннÑ" + +#: org/jmol/viewer/ActionManager.java:349 +msgid "zoom" +msgstr "маÑштаб" + +#: org/jmol/viewer/ActionManager.java:1991 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "вибрати ще один атом Ð´Ð»Ñ Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð´ÐµÐ»Ñ– навколо віÑÑ–" + +#: org/jmol/viewer/ActionManager.java:1992 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "вибрати два атоми Ð´Ð»Ñ Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð´ÐµÐ»Ñ– навколо віÑÑ–" + +#: org/jmol/viewer/ActionManager.java:1996 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "вибрати ще один атом Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ взаємозв’Ñзків Ñиметрії" + +#: org/jmol/viewer/ActionManager.java:1998 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "вибрати два атоми Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ взаємозв’Ñзків Ñиметрії між ними" + +#: org/jmol/viewer/OutputManager.java:794 +msgid "canceled" +msgstr "ÑкаÑовано" + +#: org/jmol/viewer/OutputManager.java:795 +#, java-format +msgid "{0} saved" +msgstr "{0} збережено" + +#: org/jmol/viewer/OutputManager.java:861 +#, java-format +msgid "Setting log file to {0}" +msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° журналу {0}" + +#: org/jmol/viewer/OutputManager.java:863 +msgid "Cannot set log file path." +msgstr "Ðе вдалоÑÑ Ð²Ñтановити шлÑÑ… до файла журналу." + +#: org/jmol/viewer/SelectionManager.java:114 +#: org/jmol/viewer/SelectionManager.java:125 +#, java-format +msgid "{0} atoms hidden" +msgstr "приховано атоми {0}" + +#: org/jmol/viewer/SelectionManager.java:186 +#, java-format +msgid "{0} atoms selected" +msgstr "позначено атоми {0}" + +#: org/jmol/viewer/Viewer.java:4158 +msgid "Drag to move label" +msgstr "ПеретÑгніть, щоб переÑунути мітку" + +#: org/jmol/viewer/Viewer.java:7868 +msgid "clipboard is not accessible -- use signed applet" +msgstr "доÑтуп до буфера даних заборонено — викориÑтовуйте підпиÑаний аплет" + +#: org/jmol/viewer/Viewer.java:9049 +#, java-format +msgid "{0} hydrogens added" +msgstr "додано атоми водню {0}" + +#~ msgid "Hide Symmetry" +#~ msgstr "Приховати Ñиметричні" + +#~ msgid "Loading Jmol applet ..." +#~ msgstr "Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð°Ð¿Ð»ÐµÑ‚Ñƒ Jmol…" + +#~ msgid " {0} seconds" +#~ msgstr " {0} Ñекунд" + +#~ msgid "{0} struts mp.added" +#~ msgstr "Додано {0} розпинок" + +#~ msgid "Java version:" +#~ msgstr "ВерÑÑ–Ñ Java:" + +#~ msgid "1 processor" +#~ msgstr "1 процеÑор" + +#~ msgid "unknown processor count" +#~ msgstr "невідома кількіÑÑ‚ÑŒ процеÑорів" + +#~ msgid "Java memory usage:" +#~ msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ– Java:" + +#~ msgid "{0} MB free" +#~ msgstr "Вільно: {0} MБ" + +#~ msgid "unknown maximum" +#~ msgstr "макÑимум невідомий" + +#~ msgid "Open file or URL" +#~ msgstr "Відкрити файл або адреÑу URL" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/uz.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/uz.po new file mode 100755 index 000000000000..c2a7dcfd55d2 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/uz.po @@ -0,0 +1,2532 @@ +# Uzbek translation for jmol +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the jmol package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2013-10-09 20:04+0200\n" +"PO-Revision-Date: 2013-06-02 23:46+0000\n" +"Last-Translator: Nicolas Vervelle \n" +"Language-Team: Uzbek \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2013-10-10 00:56+0000\n" +"X-Generator: Launchpad (build 16799)\n" + +#: org/jmol/applet/AppletWrapper.java:101 +msgid "Loading Jmol applet ..." +msgstr "Jmol аплети юкланмоқда..." + +#: org/jmol/applet/AppletWrapper.java:176 +#, java-format +msgid " {0} seconds" +msgstr " {0} Ñекунд" + +#: org/jmol/applet/Jmol.java:711 org/jmol/appletjs/Jmol.java:366 +#, java-format +msgid "" +"Jmol Applet version {0} {1}.\n" +"\n" +"An OpenScience project.\n" +"\n" +"See http://www.jmol.org for more information" +msgstr "" +"Jmol Applet верÑÐ¸Ñ {0}{1}.\n" +"\n" +"Очиқ кодли лойиҳа.\n" +"\n" +"Маълумот олиш учун http://www.jmol.org ни кўринг." + +#: org/jmol/applet/Jmol.java:985 org/jmol/appletjs/Jmol.java:603 +msgid "File Error:" +msgstr "Файлда ҳатолик:" + +#: org/jmol/awtjs2d/JSModelKitPopup.java:76 +#: org/jmol/modelkit/ModelKitPopup.java:56 +msgid "Element?" +msgstr "" + +#: org/jmol/console/GenericConsole.java:79 +msgid "&Help" +msgstr "&Ðрдам" + +#: org/jmol/console/GenericConsole.java:80 +msgid "&Search..." +msgstr "Қидириш..." + +#: org/jmol/console/GenericConsole.java:81 +msgid "&Commands" +msgstr "Буйруқлар" + +#: org/jmol/console/GenericConsole.java:82 +msgid "Math &Functions" +msgstr "Математик ФункциÑлар" + +#: org/jmol/console/GenericConsole.java:83 +msgid "Set &Parameters" +msgstr "Параметрларни аниқла" + +#: org/jmol/console/GenericConsole.java:84 +msgid "&More" +msgstr "&Кўпроқ" + +#: org/jmol/console/GenericConsole.java:85 +msgid "Editor" +msgstr "Таҳрирчи" + +#: org/jmol/console/GenericConsole.java:86 +msgid "State" +msgstr "Ҳолат" + +#: org/jmol/console/GenericConsole.java:87 +#: org/jmol/console/ScriptEditor.java:140 +msgid "Run" +msgstr "Ishga tushirish" + +#: org/jmol/console/GenericConsole.java:88 +msgid "Clear Output" +msgstr "" + +#: org/jmol/console/GenericConsole.java:89 +msgid "Clear Input" +msgstr "" + +#: org/jmol/console/GenericConsole.java:90 +#: org/jmol/popup/MainPopupResourceBundle.java:895 +msgid "History" +msgstr "Тарих" + +#: org/jmol/console/GenericConsole.java:91 +msgid "Load" +msgstr "Юклаш" + +#: org/jmol/console/GenericConsole.java:93 +msgid "press CTRL-ENTER for new line or paste model data and press Load" +msgstr "" + +#: org/jmol/console/GenericConsole.java:95 +msgid "" +"Messages will appear here. Enter commands in the box below. Click the " +"console Help menu item for on-line help, which will appear in a new browser " +"window." +msgstr "" + +#: org/jmol/console/GenericConsole.java:128 +msgid "Jmol Script Console" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:101 +msgid "Jmol Script Editor" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:133 +#: org/jmol/popup/MainPopupResourceBundle.java:891 +msgid "Console" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:135 org/jmol/dialog/Dialog.java:445 +#: org/jmol/dialog/Dialog.java:469 org/jmol/dialog/Dialog.java:472 +msgid "Open" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:136 +msgid "Script" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:137 +msgid "Check" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:138 +msgid "" +"Top[as in \"go to the top\" - (translators: remove this bracketed part]" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:139 +msgid "Step" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:141 +#: org/jmol/popup/MainPopupResourceBundle.java:847 +msgid "Pause" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:143 +#: org/jmol/popup/MainPopupResourceBundle.java:848 +msgid "Resume" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:145 +msgid "Halt" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:147 +msgid "Clear" +msgstr "" + +#: org/jmol/console/ScriptEditor.java:148 +msgid "Close" +msgstr "" + +#: org/jmol/dialog/Dialog.java:93 +msgid "File or URL:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:270 +msgid "Image Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:285 org/jmol/dialog/Dialog.java:326 +#, java-format +msgid "JPEG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:299 +#, java-format +msgid "PNG Compression ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:329 +#, java-format +msgid "PNG Quality ({0})" +msgstr "" + +#: org/jmol/dialog/Dialog.java:376 org/jmol/dialog/Dialog.java:488 +msgid "Yes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:376 org/jmol/dialog/Dialog.java:486 +msgid "No" +msgstr "" + +#: org/jmol/dialog/Dialog.java:378 +#, java-format +msgid "Do you want to overwrite file {0}?" +msgstr "" + +#: org/jmol/dialog/Dialog.java:379 +msgid "Warning" +msgstr "" + +#: org/jmol/dialog/Dialog.java:437 +msgid "All Files" +msgstr "" + +#: org/jmol/dialog/Dialog.java:438 org/jmol/dialog/Dialog.java:485 +msgid "Cancel" +msgstr "" + +#: org/jmol/dialog/Dialog.java:440 +msgid "Abort file chooser dialog" +msgstr "" + +#: org/jmol/dialog/Dialog.java:442 org/jmol/dialog/Dialog.java:443 +msgid "Details" +msgstr "" + +#: org/jmol/dialog/Dialog.java:444 +msgid "Directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:447 +msgid "Open selected directory" +msgstr "" + +#: org/jmol/dialog/Dialog.java:448 +msgid "Attributes" +msgstr "" + +#: org/jmol/dialog/Dialog.java:449 +msgid "Modified" +msgstr "" + +#: org/jmol/dialog/Dialog.java:450 +msgid "Generic File" +msgstr "" + +#: org/jmol/dialog/Dialog.java:451 +msgid "Name" +msgstr "" + +#: org/jmol/dialog/Dialog.java:452 +msgid "File Name:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:453 +msgid "Size" +msgstr "" + +#: org/jmol/dialog/Dialog.java:454 +msgid "Files of Type:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:455 +msgid "Type" +msgstr "" + +#: org/jmol/dialog/Dialog.java:456 +msgid "Help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:458 +msgid "FileChooser help" +msgstr "" + +#: org/jmol/dialog/Dialog.java:459 org/jmol/dialog/Dialog.java:460 +msgid "Home" +msgstr "" + +#: org/jmol/dialog/Dialog.java:461 org/jmol/dialog/Dialog.java:462 +msgid "List" +msgstr "" + +#: org/jmol/dialog/Dialog.java:463 +msgid "Look In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:465 +msgid "Error creating new folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:466 +msgid "New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:468 +msgid "Create New Folder" +msgstr "" + +#: org/jmol/dialog/Dialog.java:471 +msgid "Open selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:473 org/jmol/dialog/Dialog.java:476 +msgid "Save" +msgstr "" + +#: org/jmol/dialog/Dialog.java:475 +msgid "Save selected file" +msgstr "" + +#: org/jmol/dialog/Dialog.java:477 +msgid "Save In:" +msgstr "" + +#: org/jmol/dialog/Dialog.java:478 +msgid "Update" +msgstr "" + +#: org/jmol/dialog/Dialog.java:480 +msgid "Update directory listing" +msgstr "" + +#: org/jmol/dialog/Dialog.java:481 +msgid "Up" +msgstr "" + +#: org/jmol/dialog/Dialog.java:482 +msgid "Up One Level" +msgstr "" + +#: org/jmol/dialog/Dialog.java:487 +msgid "OK" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:77 +msgid "Preview" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:97 +msgid "Append models" +msgstr "" + +#: org/jmol/dialog/FilePreview.java:99 +msgid "PDB cartoons" +msgstr "" + +#: org/jmol/i18n/Language.java:77 +msgid "Arabic" +msgstr "" + +#: org/jmol/i18n/Language.java:78 +msgid "Asturian" +msgstr "" + +#: org/jmol/i18n/Language.java:79 +msgid "Azerbaijani" +msgstr "" + +#: org/jmol/i18n/Language.java:80 +msgid "Bosnian" +msgstr "" + +#: org/jmol/i18n/Language.java:81 +msgid "Catalan" +msgstr "" + +#: org/jmol/i18n/Language.java:82 +msgid "Czech" +msgstr "" + +#: org/jmol/i18n/Language.java:83 +msgid "Danish" +msgstr "" + +#: org/jmol/i18n/Language.java:84 +msgid "German" +msgstr "" + +#: org/jmol/i18n/Language.java:85 +msgid "Greek" +msgstr "" + +#: org/jmol/i18n/Language.java:86 +msgid "Australian English" +msgstr "" + +#: org/jmol/i18n/Language.java:87 +msgid "British English" +msgstr "" + +#: org/jmol/i18n/Language.java:88 +msgid "American English" +msgstr "" + +#: org/jmol/i18n/Language.java:89 +msgid "Spanish" +msgstr "" + +#: org/jmol/i18n/Language.java:90 +msgid "Estonian" +msgstr "" + +#: org/jmol/i18n/Language.java:91 +msgid "Basque" +msgstr "" + +#: org/jmol/i18n/Language.java:92 +msgid "Finnish" +msgstr "" + +#: org/jmol/i18n/Language.java:93 +msgid "Faroese" +msgstr "" + +#: org/jmol/i18n/Language.java:94 +msgid "French" +msgstr "" + +#: org/jmol/i18n/Language.java:95 +msgid "Frisian" +msgstr "" + +#: org/jmol/i18n/Language.java:96 +msgid "Galician" +msgstr "" + +#: org/jmol/i18n/Language.java:97 +msgid "Croatian" +msgstr "" + +#: org/jmol/i18n/Language.java:98 +msgid "Hungarian" +msgstr "" + +#: org/jmol/i18n/Language.java:99 +msgid "Armenian" +msgstr "" + +#: org/jmol/i18n/Language.java:100 +msgid "Indonesian" +msgstr "" + +#: org/jmol/i18n/Language.java:101 +msgid "Italian" +msgstr "" + +#: org/jmol/i18n/Language.java:102 +msgid "Japanese" +msgstr "" + +#: org/jmol/i18n/Language.java:103 +msgid "Javanese" +msgstr "" + +#: org/jmol/i18n/Language.java:104 +msgid "Korean" +msgstr "" + +#: org/jmol/i18n/Language.java:105 +msgid "Malay" +msgstr "" + +#: org/jmol/i18n/Language.java:106 +msgid "Norwegian Bokmal" +msgstr "" + +#: org/jmol/i18n/Language.java:107 +msgid "Dutch" +msgstr "" + +#: org/jmol/i18n/Language.java:108 +msgid "Occitan" +msgstr "" + +#: org/jmol/i18n/Language.java:109 +msgid "Polish" +msgstr "" + +#: org/jmol/i18n/Language.java:110 +msgid "Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:111 +msgid "Brazilian Portuguese" +msgstr "" + +#: org/jmol/i18n/Language.java:112 +msgid "Russian" +msgstr "" + +#: org/jmol/i18n/Language.java:113 +msgid "Slovenian" +msgstr "" + +#: org/jmol/i18n/Language.java:114 +msgid "Serbian" +msgstr "" + +#: org/jmol/i18n/Language.java:115 +msgid "Swedish" +msgstr "" + +#: org/jmol/i18n/Language.java:116 +msgid "Tamil" +msgstr "" + +#: org/jmol/i18n/Language.java:117 +msgid "Telugu" +msgstr "" + +#: org/jmol/i18n/Language.java:118 +msgid "Turkish" +msgstr "" + +#: org/jmol/i18n/Language.java:119 +msgid "Uyghur" +msgstr "" + +#: org/jmol/i18n/Language.java:120 +msgid "Ukrainian" +msgstr "" + +#: org/jmol/i18n/Language.java:121 +msgid "Uzbek" +msgstr "" + +#: org/jmol/i18n/Language.java:122 +msgid "Simplified Chinese" +msgstr "" + +#: org/jmol/i18n/Language.java:123 +msgid "Traditional Chinese" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:219 +#, java-format +msgid "Could not get class for force field {0}" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:225 +msgid "No atoms selected -- nothing to do!" +msgstr "" + +#: org/jmol/minimize/Minimizer.java:310 +#, java-format +msgid "{0} atoms will be minimized." +msgstr "" + +#: org/jmol/minimize/Minimizer.java:325 +#, java-format +msgid "could not setup force field {0}" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:84 +msgid "new" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:85 +msgid "undo (CTRL-Z)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:86 +msgid "redo (CTRL-Y)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:87 +#: org/jmol/viewer/ActionManager.java:342 +msgid "center" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:88 +msgid "add hydrogens" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:89 +msgid "minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:90 +msgid "fix hydrogens and minimize" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:91 +msgid "clear" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:92 +msgid "save file" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:93 +msgid "save state" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:94 +msgid "invert ring stereochemistry" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:95 +msgid "delete atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:96 +msgid "drag to bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:97 +msgid "drag atom" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:98 +msgid "drag atom (and minimize)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:99 +msgid "drag molecule (ALT to rotate)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:100 +msgid "drag and minimize molecule (docking)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:109 +msgid "increase charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:110 +msgid "decrease charge" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:111 +msgid "delete bond" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:112 +msgid "single" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:113 +msgid "double" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:114 +msgid "triple" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:115 +msgid "increase order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:116 +msgid "decrease order" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:117 +msgid "rotate bond (SHIFT-DRAG)" +msgstr "" + +#: org/jmol/modelkit/ModelKitPopupResourceBundle.java:118 +msgid "exit modelkit mode" +msgstr "" + +#: org/jmol/modelsetbio/AminoPolymer.java:579 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be ignored. " +"Their positions will be approximated, as in standard DSSP analysis.\n" +"Use {0} to not use this approximation.\n" +"\n" +msgstr "" + +#: org/jmol/modelsetbio/AminoPolymer.java:585 +#, java-format +msgid "" +"NOTE: Backbone amide hydrogen positions are present and will be used. " +"Results may differ significantly from standard DSSP analysis.\n" +"Use {0} to ignore these hydrogen positions.\n" +"\n" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:636 +#: org/jmol/popup/MainPopupResourceBundle.java:570 +msgid "No atoms loaded" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:913 +#: org/jmol/popup/MainPopupResourceBundle.java:582 +msgid "Space Group" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:983 org/jmol/popup/GenericPopup.java:1033 +#: org/jmol/popup/MainPopupResourceBundle.java:603 +#: org/jmol/popup/MainPopupResourceBundle.java:620 +#: org/jmol/popup/MainPopupResourceBundle.java:629 +#: org/jmol/popup/MainPopupResourceBundle.java:646 +msgid "All" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1145 +#: org/jmol/popup/MainPopupResourceBundle.java:1000 +msgid "Mouse Manual" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1147 +#: org/jmol/popup/MainPopupResourceBundle.java:1001 +msgid "Translations" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1151 +msgid "System" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1156 +msgid "Java version:" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1170 +msgid "1 processor" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1171 +#, java-format +msgid "{0} processors" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1173 +msgid "unknown processor count" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1174 +msgid "Java memory usage:" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1179 +#, java-format +msgid "{0} MB total" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1181 +#, java-format +msgid "{0} MB free" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1184 +#, java-format +msgid "{0} MB maximum" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1187 +msgid "unknown maximum" +msgstr "" + +#: org/jmol/popup/GenericPopup.java:1299 +msgid "not capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:572 +msgid "Configurations" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:573 +msgid "Element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:574 +msgid "Model/Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:575 +msgid "Language" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:576 +#: org/jmol/popup/MainPopupResourceBundle.java:577 +#: org/jmol/popup/MainPopupResourceBundle.java:578 +msgid "By Residue Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:579 +msgid "By HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:580 +#, java-format +msgid "Molecular Orbitals ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:581 +#: org/jmol/popup/MainPopupResourceBundle.java:902 +#: org/jmol/popup/MainPopupResourceBundle.java:958 +msgid "Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:583 +msgid "Hide Symmetry" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:584 +msgid "Model information" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:585 +#, java-format +msgid "Select ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:586 +#, java-format +msgid "All {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:587 +#, java-format +msgid "Configurations ({0})" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:588 +#, java-format +msgid "Collection of {0} models" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:589 +#, java-format +msgid "atoms: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:590 +#, java-format +msgid "bonds: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:591 +#, java-format +msgid "groups: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:592 +#, java-format +msgid "chains: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:593 +#, java-format +msgid "polymers: {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:594 +#, java-format +msgid "model {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:595 +#, java-format +msgid "View {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:596 +msgid "Main Menu" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:597 +msgid "Biomolecules" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:598 +#, java-format +msgid "biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:599 +#, java-format +msgid "load biomolecule {0} ({1} atoms)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:604 +#: org/jmol/popup/MainPopupResourceBundle.java:731 +#: org/jmol/popup/MainPopupResourceBundle.java:740 +msgid "None" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:605 +msgid "Display Selected Only" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:606 +msgid "Invert Selection" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:608 +msgid "View" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:609 +msgid "Best" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:610 +msgid "Front" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:611 +msgid "Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:612 +msgid "Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:613 +msgid "" +"Top[as in \"view from the top, from above\" - (translators: remove this " +"bracketed part]" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:614 +msgid "Bottom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:615 +msgid "Back" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:617 +msgid "Scenes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:619 +msgid "Protein" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:621 +#: org/jmol/popup/MainPopupResourceBundle.java:632 +#: org/jmol/popup/MainPopupResourceBundle.java:702 +#: org/jmol/popup/MainPopupResourceBundle.java:799 +msgid "Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:622 +msgid "Side Chains" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:623 +msgid "Polar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:624 +msgid "Nonpolar Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:625 +msgid "Basic Residues (+)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:626 +msgid "Acidic Residues (-)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:627 +msgid "Uncharged Residues" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:628 +msgid "Nucleic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:630 +msgid "DNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:631 +msgid "RNA" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:633 +msgid "Bases" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:634 +msgid "AT pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:635 +msgid "GC pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:636 +msgid "AU pairs" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:637 +msgid "Hetero" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:638 +msgid "All PDB \"HETATM\"" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:639 +msgid "All Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:640 +msgid "All Water" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:642 +msgid "Nonaqueous Solvent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:643 +msgid "Nonaqueous HETATM" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:644 +msgid "Ligand" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:647 +msgid "Carbohydrate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:648 +msgid "None of the above" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:650 +msgid "Style" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:651 +msgid "Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:652 +msgid "CPK Spacefill" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:653 +msgid "Ball and Stick" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:654 +msgid "Sticks" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:655 +msgid "Wireframe" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:656 +#: org/jmol/popup/MainPopupResourceBundle.java:703 +#: org/jmol/popup/MainPopupResourceBundle.java:801 +msgid "Cartoon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:657 +#: org/jmol/popup/MainPopupResourceBundle.java:708 +#: org/jmol/popup/MainPopupResourceBundle.java:800 +msgid "Trace" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:659 +#: org/jmol/popup/MainPopupResourceBundle.java:753 +msgid "Atoms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:660 +#: org/jmol/popup/MainPopupResourceBundle.java:669 +#: org/jmol/popup/MainPopupResourceBundle.java:678 +#: org/jmol/popup/MainPopupResourceBundle.java:690 +#: org/jmol/popup/MainPopupResourceBundle.java:701 +#: org/jmol/popup/MainPopupResourceBundle.java:711 +#: org/jmol/popup/MainPopupResourceBundle.java:719 +#: org/jmol/popup/MainPopupResourceBundle.java:825 +#: org/jmol/popup/MainPopupResourceBundle.java:876 +#: org/jmol/popup/MainPopupResourceBundle.java:956 +msgid "Off" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:661 +#: org/jmol/popup/MainPopupResourceBundle.java:662 +#: org/jmol/popup/MainPopupResourceBundle.java:663 +#: org/jmol/popup/MainPopupResourceBundle.java:664 +#: org/jmol/popup/MainPopupResourceBundle.java:665 +#: org/jmol/popup/MainPopupResourceBundle.java:666 +#, java-format +msgid "{0}% van der Waals" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:668 +#: org/jmol/popup/MainPopupResourceBundle.java:795 +msgid "Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:670 +#: org/jmol/popup/MainPopupResourceBundle.java:680 +#: org/jmol/popup/MainPopupResourceBundle.java:691 +#: org/jmol/popup/MainPopupResourceBundle.java:712 +#: org/jmol/popup/MainPopupResourceBundle.java:720 +#: org/jmol/popup/MainPopupResourceBundle.java:824 +msgid "On" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:671 +#: org/jmol/popup/MainPopupResourceBundle.java:672 +#: org/jmol/popup/MainPopupResourceBundle.java:673 +#: org/jmol/popup/MainPopupResourceBundle.java:674 +#: org/jmol/popup/MainPopupResourceBundle.java:675 +#: org/jmol/popup/MainPopupResourceBundle.java:683 +#: org/jmol/popup/MainPopupResourceBundle.java:684 +#: org/jmol/popup/MainPopupResourceBundle.java:685 +#: org/jmol/popup/MainPopupResourceBundle.java:686 +#: org/jmol/popup/MainPopupResourceBundle.java:687 +#: org/jmol/popup/MainPopupResourceBundle.java:694 +#: org/jmol/popup/MainPopupResourceBundle.java:695 +#: org/jmol/popup/MainPopupResourceBundle.java:696 +#: org/jmol/popup/MainPopupResourceBundle.java:697 +#: org/jmol/popup/MainPopupResourceBundle.java:698 +#: org/jmol/popup/MainPopupResourceBundle.java:722 +#: org/jmol/popup/MainPopupResourceBundle.java:723 +#: org/jmol/popup/MainPopupResourceBundle.java:980 +#: org/jmol/popup/MainPopupResourceBundle.java:981 +#: org/jmol/popup/MainPopupResourceBundle.java:982 +#: org/jmol/popup/MainPopupResourceBundle.java:983 +#: org/jmol/popup/MainPopupResourceBundle.java:984 +#, java-format +msgid "{0} Ã…" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:677 +#: org/jmol/popup/MainPopupResourceBundle.java:796 +msgid "Hydrogen Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:679 +msgid "Calculate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:681 +msgid "Set H-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:682 +msgid "Set H-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:689 +#: org/jmol/popup/MainPopupResourceBundle.java:797 +msgid "Disulfide Bonds" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:692 +msgid "Set SS-Bonds Side Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:693 +msgid "Set SS-Bonds Backbone" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:700 +#: org/jmol/popup/MainPopupResourceBundle.java:798 +msgid "Structures" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:704 +msgid "Cartoon Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:705 +#: org/jmol/popup/MainPopupResourceBundle.java:802 +msgid "Ribbons" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:706 +#: org/jmol/popup/MainPopupResourceBundle.java:803 +msgid "Rockets" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:707 +#: org/jmol/popup/MainPopupResourceBundle.java:804 +msgid "Strands" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:710 +msgid "Vibration" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:715 +#: org/jmol/popup/MainPopupResourceBundle.java:808 +msgid "Vectors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:716 +msgid "Spectra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:717 +msgid "1H-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:718 +msgid "13C-NMR" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:721 +#, java-format +msgid "{0} pixels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:724 +#: org/jmol/popup/MainPopupResourceBundle.java:725 +#: org/jmol/popup/MainPopupResourceBundle.java:726 +#: org/jmol/popup/MainPopupResourceBundle.java:727 +#: org/jmol/popup/MainPopupResourceBundle.java:728 +#, java-format +msgid "Scale {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:730 +msgid "Stereographic" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:732 +msgid "Red+Cyan glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:733 +msgid "Red+Blue glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:734 +msgid "Red+Green glasses" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:735 +msgid "Cross-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:736 +msgid "Wall-eyed viewing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:738 +#: org/jmol/popup/MainPopupResourceBundle.java:805 +msgid "Labels" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:741 +msgid "With Element Symbol" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:742 +msgid "With Atom Name" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:743 +msgid "With Atom Number" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:745 +msgid "Position Label on Atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:746 +msgid "Centered" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:747 +msgid "Upper Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:748 +msgid "Lower Right" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:749 +msgid "Upper Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:750 +msgid "Lower Left" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:752 +msgid "Color" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:755 +msgid "By Scheme" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:756 +msgid "Element (CPK)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:757 +msgid "Alternative Location" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:758 +msgid "Molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:759 +msgid "Formal Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:760 +msgid "Partial Charge" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:761 +msgid "Temperature (Relative)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:762 +msgid "Temperature (Fixed)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:764 +msgid "Amino Acid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:765 +msgid "Secondary Structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:766 +msgid "Chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:767 +msgid "Group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:768 +msgid "Monomer" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:769 +msgid "Shapely" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:771 +msgid "Inherit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:772 +msgid "Black" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:773 +msgid "White" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:774 +msgid "Cyan" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:776 +msgid "Red" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:777 +msgid "Orange" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:778 +msgid "Yellow" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:779 +msgid "Green" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:780 +msgid "Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:781 +msgid "Indigo" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:782 +msgid "Violet" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:784 +msgid "Salmon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:785 +msgid "Olive" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:786 +msgid "Maroon" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:787 +msgid "Gray" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:788 +msgid "Slate Blue" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:789 +msgid "Gold" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:790 +msgid "Orchid" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:792 +#: org/jmol/popup/MainPopupResourceBundle.java:954 +msgid "Make Opaque" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:793 +#: org/jmol/popup/MainPopupResourceBundle.java:955 +msgid "Make Translucent" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:806 +msgid "Background" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:807 +#: org/jmol/popup/MainPopupResourceBundle.java:945 +msgid "Surfaces" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:809 +#: org/jmol/popup/MainPopupResourceBundle.java:966 +#: org/jmol/popup/MainPopupResourceBundle.java:992 +msgid "Axes" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:810 +#: org/jmol/popup/MainPopupResourceBundle.java:967 +#: org/jmol/popup/MainPopupResourceBundle.java:991 +msgid "Boundbox" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:811 +#: org/jmol/popup/MainPopupResourceBundle.java:942 +#: org/jmol/popup/MainPopupResourceBundle.java:968 +#: org/jmol/popup/MainPopupResourceBundle.java:993 +msgid "Unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:813 +msgid "Zoom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:820 +msgid "Zoom In" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:821 +msgid "Zoom Out" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:823 +#: org/jmol/popup/MainPopupResourceBundle.java:888 +msgid "Spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:827 +msgid "Set X Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:828 +msgid "Set Y Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:829 +msgid "Set Z Rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:830 +#: org/jmol/popup/MainPopupResourceBundle.java:856 +msgid "Set FPS" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:840 +msgid "Animation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:841 +msgid "Animation Mode" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:842 +msgid "Play Once" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:843 +msgid "Palindrome" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:844 +msgid "Loop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:846 +msgid "Play" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:849 +msgid "Stop" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:850 +msgid "Next Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:851 +msgid "Previous Frame" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:852 +msgid "Rewind" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:853 +msgid "Reverse" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:854 +msgid "Restart" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:863 +#: org/jmol/popup/MainPopupResourceBundle.java:897 +msgid "Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:864 +msgid "Double-Click begins and ends all measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:865 +msgid "Click for distance measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:866 +msgid "Click for angle measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:867 +msgid "Click for torsion (dihedral) measurement" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:868 +msgid "Click two atoms to display a sequence in the console" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:869 +msgid "Delete measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:870 +msgid "List measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:871 +msgid "Distance units nanometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:872 +msgid "Distance units Angstroms" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:873 +msgid "Distance units picometers" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:875 +msgid "Set picking" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:877 +msgid "Center" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:879 +msgid "Identity" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:880 +msgid "Label" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:881 +msgid "Select atom" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:882 +msgid "Select chain" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:883 +msgid "Select element" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:884 +msgid "Select group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:885 +msgid "Select molecule" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:886 +msgid "Select site" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:887 +msgid "Show symmetry operation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:890 +msgid "Show" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:893 +msgid "File Contents" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:894 +msgid "File Header" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:896 +msgid "Isosurface JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:898 +msgid "Molecular orbital JVXL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:899 +msgid "Model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:900 +msgid "Orientation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:901 +msgid "Space group" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:903 +msgid "Current state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:905 +msgid "File" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:906 +msgid "Reload" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:907 +msgid "Open from PDB" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:908 +msgid "Open file or URL" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:909 +msgid "Load full unit cell" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:910 +msgid "Open script" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:912 +#: org/jmol/viewer/OutputManager.java:652 +msgid "Capture" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:913 +msgid "Capture rock" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:914 +msgid "Capture spin" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:915 +msgid "Start capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:916 +msgid "End capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:917 +msgid "Disable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:918 +msgid "Re-enable capturing" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:919 +msgid "Set capture replay rate" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:920 +msgid "Toggle capture looping" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:922 +#, java-format +msgid "Save a copy of {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:923 +msgid "Save script with state" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:924 +msgid "Save script with history" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:925 +#: org/jmol/popup/MainPopupResourceBundle.java:926 +#: org/jmol/popup/MainPopupResourceBundle.java:927 +#: org/jmol/popup/MainPopupResourceBundle.java:928 +#: org/jmol/popup/MainPopupResourceBundle.java:929 +#, java-format +msgid "Export {0} image" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:930 +msgid "Save all as JMOL file (zip)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:931 +msgid "Save JVXL isosurface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:932 +#: org/jmol/popup/MainPopupResourceBundle.java:933 +#: org/jmol/popup/MainPopupResourceBundle.java:934 +#: org/jmol/popup/MainPopupResourceBundle.java:935 +#, java-format +msgid "Export {0} 3D model" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:937 +msgid "Computation" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:938 +msgid "Optimize structure" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:939 +msgid "Model kit" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:943 +msgid "Extract MOL data" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:946 +msgid "Dot Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:947 +msgid "van der Waals Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:948 +msgid "Molecular Surface" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:949 +#, java-format +msgid "Solvent Surface ({0}-Angstrom probe)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:951 +#, java-format +msgid "Solvent-Accessible Surface (VDW + {0} Angstrom)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:952 +msgid "Molecular Electrostatic Potential (range ALL)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:953 +msgid "Molecular Electrostatic Potential (range -0.1 0.1)" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:959 +#: org/jmol/popup/MainPopupResourceBundle.java:960 +#: org/jmol/popup/MainPopupResourceBundle.java:961 +#, java-format +msgid "Reload {0}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:962 +#, java-format +msgid "Reload {0} + Display {1}" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:963 +msgid "Reload + Polyhedra" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:970 +msgid "Hide" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:971 +msgid "Dotted" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:973 +msgid "Pixel Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:974 +#: org/jmol/popup/MainPopupResourceBundle.java:975 +#: org/jmol/popup/MainPopupResourceBundle.java:976 +#: org/jmol/popup/MainPopupResourceBundle.java:977 +#, java-format +msgid "{0} px" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:979 +msgid "Angstrom Width" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:987 +msgid "Selection Halos" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:988 +msgid "Show Hydrogens" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:989 +msgid "Show Measurements" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:990 +msgid "Perspective Depth" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:994 +msgid "RasMol Colors" +msgstr "" + +#: org/jmol/popup/MainPopupResourceBundle.java:995 +msgid "About..." +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1348 +#: org/jmol/script/ScriptEvaluator.java:2922 +msgid "bad argument count" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1351 +#, java-format +msgid "invalid context for {0}" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1354 +#: org/jmol/script/ScriptEvaluator.java:2949 +msgid "command expected" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1357 +msgid "{ number number number } expected" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1360 +#: org/jmol/script/ScriptEvaluator.java:2958 +msgid "unexpected end of script command" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1363 +msgid "end of expression expected" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1366 +msgid "identifier or residue specification expected" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1369 +msgid "invalid atom specification" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1372 +msgid "invalid chain specification" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1375 +#, java-format +msgid "invalid expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1378 +msgid "invalid model specification" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1381 +#, java-format +msgid "missing END for {0}" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1384 +#: org/jmol/script/ScriptEvaluator.java:3025 +msgid "number expected" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1387 +msgid "number or variable name expected" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1390 +msgid "residue specification (ALA, AL?, A*) expected" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1393 +#, java-format +msgid "{0} expected" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1396 +#, java-format +msgid "{0} unexpected" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1399 +#, java-format +msgid "unrecognized expression token: {0}" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1402 +#: org/jmol/script/ScriptEvaluator.java:3074 +#, java-format +msgid "unrecognized {0} parameter" +msgstr "" + +#: org/jmol/script/ScriptCompilationTokenParser.java:1405 +#, java-format +msgid "unrecognized token: {0}" +msgstr "" + +#: org/jmol/script/ScriptCompiler.java:2673 +msgid "script compiler ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2762 +#: org/jmol/script/ScriptEvaluator.java:9339 +msgid "script ERROR: " +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2916 +msgid "x y z axis expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2919 +#, java-format +msgid "{0} not allowed with background model displayed" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2925 +msgid "Miller indices cannot all be zero." +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2928 +msgid "bad [R,G,B] color" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2931 +msgid "boolean expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2934 +msgid "boolean or number expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2937 +#, java-format +msgid "boolean, number, or {0} expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2940 +msgid "cannot set value" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2943 +msgid "color expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2946 +msgid "a color or palette name (Jmol, Rasmol) is required" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2952 +msgid "{x y z} or $name or (atom expression) required" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2955 +msgid "draw object not defined" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2961 +msgid "valid (atom expression) expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2964 +msgid "(atom expression) or integer expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2967 +msgid "filename expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2970 +msgid "file not found" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2973 +msgid "incompatible arguments" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2976 +msgid "insufficient arguments" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2979 +msgid "integer expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2982 +#, java-format +msgid "integer out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2985 +msgid "invalid argument" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2988 +msgid "invalid parameter order" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2991 +msgid "keyword expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2994 +msgid "no MO coefficient data available" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:2997 +#, java-format +msgid "An MO index from 1 to {0} is required" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3000 +msgid "no MO basis/coefficient data available for this frame" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3003 +msgid "no MO occupancy data available" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3006 +msgid "Only one molecular orbital is available in this file" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3009 +#, java-format +msgid "{0} requires that only one model be displayed" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3012 +#, java-format +msgid "{0} requires that only one model be loaded" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3015 +msgid "No data available" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3019 +msgid "" +"No partial charges were read from the file; Jmol needs these to render the " +"MEP data." +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3022 +msgid "No unit cell" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3028 +#, java-format +msgid "number must be ({0} or {1})" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3031 +#, java-format +msgid "decimal number out of range ({0} - {1})" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3034 +msgid "object name expected after '$'" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3038 +#, java-format +msgid "" +"plane expected -- either three points or atom expressions or {0} or {1} or " +"{2}" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3041 +msgid "property name expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3044 +#, java-format +msgid "space group {0} was not found." +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3047 +msgid "quoted string expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3050 +msgid "quoted string or identifier expected" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3053 +msgid "too many rotation points were specified" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3056 +msgid "too many script levels" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3059 +msgid "unrecognized atom property" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3062 +msgid "unrecognized bond property" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3065 +msgid "unrecognized command" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3068 +msgid "runtime unrecognized expression" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3071 +msgid "unrecognized object" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3078 +#, java-format +msgid "unrecognized {0} parameter in Jmol state script (set anyway)" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3081 +#, java-format +msgid "unrecognized SHOW parameter -- use {0}" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:3087 +#, java-format +msgid "write what? {0} or {1} \"filename\"" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:5722 +#, java-format +msgid "Note: Enable looping using {0}" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:5724 +#, java-format +msgid "Animation delay based on: {0}" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:7001 +#, java-format +msgid "{0} connections deleted" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:7013 +#, java-format +msgid "{0} new bonds; {1} modified" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:8432 +#, java-format +msgid "file {0} created" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:9492 +#: org/jmol/script/ScriptEvaluator.java:9675 +#, java-format +msgid "{0} atoms deleted" +msgstr "" + +#: org/jmol/script/ScriptEvaluator.java:10323 +#: org/jmol/scriptext/ScriptExt.java:5711 +#, java-format +msgid "{0} hydrogen bonds" +msgstr "" + +#: org/jmol/scriptext/ScriptExt.java:5689 +#, java-format +msgid "{0} charges modified" +msgstr "" + +#: org/jmol/scriptext/ScriptExt.java:5770 +#, java-format +msgid "{0} struts mp.added" +msgstr "" + +#: org/jmol/scriptext/ScriptExt.java:6073 +msgid "Note: More than one model is involved in this contact!" +msgstr "" + +#: org/jmol/shape/Frank.java:80 +msgid "Click for menu..." +msgstr "" + +#: org/jmol/viewer/ActionManager.java:340 +#, java-format +msgid "assign/new atom or bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:344 +msgid "pop up recent context menu (click on Jmol frank)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:346 +#, java-format +msgid "delete atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:348 +#, java-format +msgid "delete bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:350 +#, java-format +msgid "adjust depth (back plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:351 +#, java-format +msgid "move atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:354 +#, java-format +msgid "move whole DRAW object (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:356 +#, java-format +msgid "move specific DRAW point (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:357 +#, java-format +msgid "move label (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:360 +#, java-format +msgid "move atom and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:363 +#, java-format +msgid "move and minimize molecule (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:366 +#, java-format +msgid "move selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:368 +#, java-format +msgid "drag atoms in Z direction (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:370 +msgid "simulate multi-touch using the mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:372 +#, java-format +msgid "translate navigation point (requires {0} and {1})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:374 +msgid "pick an atom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:376 +#, java-format +msgid "connect atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:378 +#, java-format +msgid "pick an ISOSURFACE point (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:380 +#, java-format +msgid "pick a label to toggle it hidden/displayed (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:387 +#, java-format +msgid "" +"pick an atom to include it in a measurement (after starting a measurement or " +"after {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:390 +#, java-format +msgid "pick a point or atom to navigate to (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:393 +#, java-format +msgid "pick a DRAW point (for measurements) (requires {0}" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:396 +msgid "pop up the full context menu" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:398 +msgid "reset (when clicked off the model)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:399 +msgid "rotate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:401 +#, java-format +msgid "rotate branch around bond (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:403 +#, java-format +msgid "rotate selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:404 +msgid "rotate Z" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:409 +msgid "" +"rotate Z (horizontal motion of mouse) or zoom (vertical motion of mouse)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:410 +#, java-format +msgid "select an atom (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:413 +#, java-format +msgid "select and drag atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:415 +#, java-format +msgid "unselect this group of atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:418 +#, java-format +msgid "select NONE (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:420 +#, java-format +msgid "add this group of atoms to the set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:423 +#, java-format +msgid "toggle selection (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:430 +#, java-format +msgid "" +"if all are selected, unselect all, otherwise add this group of atoms to the " +"set of selected atoms (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:433 +msgid "pick an atom to initiate or conclude a measurement" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:435 +#, java-format +msgid "adjust slab (front plane; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:437 +#, java-format +msgid "move slab/depth window (both planes; requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:439 +msgid "zoom (along right edge of window)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:445 +#, java-format +msgid "" +"click on two points to spin around axis counterclockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:448 +#, java-format +msgid "click on two points to spin around axis clockwise (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:451 +#, java-format +msgid "stop motion (requires {0})" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:456 +msgid "spin model (swipe and release button and stop motion simultaneously)" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:457 +msgid "translate" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:458 +msgid "zoom" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:2072 +msgid "pick one more atom in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:2073 +msgid "pick two atoms in order to spin the model around an axis" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:2077 +msgid "pick one more atom in order to display the symmetry relationship" +msgstr "" + +#: org/jmol/viewer/ActionManager.java:2079 +msgid "" +"pick two atoms in order to display the symmetry relationship between them" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:654 +msgid "canceled" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:655 +#, java-format +msgid "{0} saved" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:710 +#, java-format +msgid "Setting log file to {0}" +msgstr "" + +#: org/jmol/viewer/OutputManager.java:712 +msgid "Cannot set log file path." +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:95 +#: org/jmol/viewer/SelectionManager.java:104 +#, java-format +msgid "{0} atoms hidden" +msgstr "" + +#: org/jmol/viewer/SelectionManager.java:168 +#, java-format +msgid "{0} atoms selected" +msgstr "" + +#: org/jmol/viewer/Viewer.java:4849 +msgid "Drag to move label" +msgstr "" + +#: org/jmol/viewer/Viewer.java:8730 +msgid "clipboard is not accessible -- use signed applet" +msgstr "" + +#: org/jmol/viewer/Viewer.java:10098 +#, java-format +msgid "{0} hydrogens added" +msgstr "" diff --git a/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/zh_CN.po b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/zh_CN.po new file mode 100755 index 000000000000..5d77d24cb384 --- /dev/null +++ b/config/plugins/visualizations/jmol/static/j2s/J/translation/JmolApplet/zh_CN.po @@ -0,0 +1,2623 @@ +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the jmol package. +# Li Anbang , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: jmol\n" +"Report-Msgid-Bugs-To: jmol-developers@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-12-23 20:33+0100\n" +"PO-Revision-Date: 2013-06-02 18:20+0000\n" +"Last-Translator: Wang Dianjin \n" +"Language-Team: Simplified Chinese