Clazz.declarePackage("JS");
Clazz.load(["JU.M4"], "JS.HallRotation", null, function(){
var c$ = Clazz.decorateAsClass(function(){
this.rotCode = null;
this.seitzMatrix = null;
this.seitzMatrixInv = null;
Clazz.instantialize(this, arguments);}, JS, "HallRotation", null);
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)).charCodeAt(0)) {
case 32:
ipt++;
continue;
case 43:
case 49:
value = 1;
break;
case 45:
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);
});
c$.hallRotationTerms = null;
});
;//5.0.1-v2 Tue Jul 23 17:25:20 CDT 2024
