X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosQuaternion.java;h=98c2fe51322851e5b7fb1e5b95723fc173f4655e;hb=7175774c4f60ed3efd54417f2035b50ea0108c7b;hp=f78b50653b4e474849418db7cbfb7575517f3fb5;hpb=87c8bb3956897830da1f7aaca2990a9571767b73;p=fw%2Faltos diff --git a/altoslib/AltosQuaternion.java b/altoslib/AltosQuaternion.java index f78b5065..98c2fe51 100644 --- a/altoslib/AltosQuaternion.java +++ b/altoslib/AltosQuaternion.java @@ -15,9 +15,9 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_8; +package org.altusmetrum.altoslib_11; -public class AltosQuaternion { +public class AltosQuaternion implements AltosJsonable { double r; /* real bit */ double x, y, z; /* imaginary bits */ @@ -115,10 +115,17 @@ public class AltosQuaternion { } public AltosQuaternion(AltosQuaternion q) { - this.r = q.r; - this.x = q.x; - this.y = q.y; - this.z = q.z; + r = q.r; + x = q.x; + y = q.y; + z = q.z; + } + + public AltosQuaternion() { + r = 1; + x = 0; + y = 0; + z = 0; } static public AltosQuaternion vector(double x, double y, double z) { @@ -147,4 +154,24 @@ public class AltosQuaternion { c_x * s_y * c_z + s_x * c_y * s_z, c_x * c_y * s_z - s_x * s_y * c_z); } + + public AltosJson json() { + AltosJson j = new AltosJson(); + + j.put("r", r); + j.put("x", x); + j.put("y", y); + j.put("z", z); + return j; + } + + public AltosQuaternion(AltosJson j) { + if (j == null) + return; + + r = j.get_double("r", 1); + x = j.get_double("x", 0); + y = j.get_double("y", 0); + z = j.get_double("z", 0); + } }