* 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 */
}
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) {
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);
+ }
}