| Clazz.declarePackage ("JS"); | |
| Clazz.load (["JU.M4"], "JS.HallRotation", null, function () { | |
| c$ = Clazz.decorateAsClass (function () { | |
| this.rotCode = null; | |
| this.seitzMatrix = null; | |
| this.seitzMatrixInv = null; | |
| Clazz.instantialize (this, arguments); | |
| }, JS, "HallRotation"); | |
| Clazz.prepareFields (c$, function () { | |
| this.seitzMatrix = new JU.M4 (); | |
| this.seitzMatrixInv = new JU.M4 (); | |
| }); | |
| Clazz.makeConstructor (c$, | |
| function (code, matrixData) { | |
| this.rotCode = code; | |
| var data = Clazz.newFloatArray (16, 0); | |
| var dataInv = Clazz.newFloatArray (16, 0); | |
| data[15] = dataInv[15] = 1; | |
| for (var i = 0, ipt = 0; ipt < 11; i++) { | |
| var value = 0; | |
| switch (matrixData.charAt (i)) { | |
| case ' ': | |
| ipt++; | |
| continue; | |
| case '+': | |
| case '1': | |
| value = 1; | |
| break; | |
| case '-': | |
| value = -1; | |
| break; | |
| } | |
| data[ipt] = value; | |
| dataInv[ipt] = -value; | |
| ipt++; | |
| } | |
| this.seitzMatrix.setA (data); | |
| this.seitzMatrixInv.setA (dataInv); | |
| }, "~S,~S"); | |
| c$.lookup = Clazz.defineMethod (c$, "lookup", | |
| function (code) { | |
| for (var i = JS.HallRotation.getHallTerms ().length; --i >= 0; ) if (JS.HallRotation.hallRotationTerms[i].rotCode.equals (code)) return JS.HallRotation.hallRotationTerms[i]; | |
| return null; | |
| }, "~S"); | |
| c$.getHallTerms = Clazz.defineMethod (c$, "getHallTerms", | |
| function () { | |
| return (JS.HallRotation.hallRotationTerms == null ? JS.HallRotation.hallRotationTerms = Clazz.newArray (-1, [ new JS.HallRotation ("1_", "+00 0+0 00+"), new JS.HallRotation ("2x", "+00 0-0 00-"), new JS.HallRotation ("2y", "-00 0+0 00-"), new JS.HallRotation ("2z", "-00 0-0 00+"), new JS.HallRotation ("2'", "0-0 -00 00-"), new JS.HallRotation ("2\"", "0+0 +00 00-"), new JS.HallRotation ("2x'", "-00 00- 0-0"), new JS.HallRotation ("2x\"", "-00 00+ 0+0"), new JS.HallRotation ("2y'", "00- 0-0 -00"), new JS.HallRotation ("2y\"", "00+ 0-0 +00"), new JS.HallRotation ("2z'", "0-0 -00 00-"), new JS.HallRotation ("2z\"", "0+0 +00 00-"), new JS.HallRotation ("3x", "+00 00- 0+-"), new JS.HallRotation ("3y", "-0+ 0+0 -00"), new JS.HallRotation ("3z", "0-0 +-0 00+"), new JS.HallRotation ("3*", "00+ +00 0+0"), new JS.HallRotation ("4x", "+00 00- 0+0"), new JS.HallRotation ("4y", "00+ 0+0 -00"), new JS.HallRotation ("4z", "0-0 +00 00+"), new JS.HallRotation ("6x", "+00 0+- 0+0"), new JS.HallRotation ("6y", "00+ 0+0 -0+"), new JS.HallRotation ("6z", "+-0 +00 00+")]) : JS.HallRotation.hallRotationTerms); | |
| }); | |
| Clazz.defineStatics (c$, | |
| "hallRotationTerms", null); | |
| }); | |