package com.akjava.gwt.three.client.js.math;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArrayNumber;
public class Quaternion extends JavaScriptObject{
protected Quaternion(){}
public final native Quaternion set(double x,double y,double z,double w)/*-{
return this.set(x,y,z,w);
}-*/;
public final native Quaternion copy(Quaternion quaternion)/*-{
return this.copy(quaternion);
}-*/;
public final native Quaternion setFromEuler(Euler euler,boolean update)/*-{
return this.setFromEuler(euler,update);
}-*/;
public final native Quaternion setFromEuler(Euler euler)/*-{
return this.setFromEuler(euler);
}-*/;
public final native Quaternion setFromAxisAngle(Vector3 axis,double angle)/*-{
return this.setFromAxisAngle(axis,angle);
}-*/;
public final native Quaternion setFromRotationMatrix(Matrix4 m)/*-{
return this.setFromRotationMatrix(m);
}-*/;
public final native Quaternion inverse()/*-{
return this.inverse();
}-*/;
public final native Quaternion conjugate()/*-{
return this.conjugate();
}-*/;
public final native double lengthSq()/*-{
return this.lengthSq();
}-*/;
public final native double length()/*-{
return this.length();
}-*/;
public final native Quaternion normalize()/*-{
return this.normalize();
}-*/;
//use multiplyQuaternions(this,q);
public final native Quaternion multiply(Quaternion q)/*-{
return this.multiply(q);
}-*/;
public final native Quaternion multiplyQuaternions(Quaternion a,Quaternion b)/*-{
return this.multiplyQuaternions(a,b);
}-*/;
/**
* @deprecated
* @param vector
* @return
*/
public final native Object multiplyVector3(Vector3 vector)/*-{
return this.multiplyVector3(vector);
}-*/;
public static final native Quaternion slerp(Quaternion qb,double t)/*-{
return $wnd.THREE.Quaternion.slerp(qb,t);
}-*/;
public final native boolean equals(Quaternion quaternion)/*-{
return this.equals(quaternion);
}-*/;
public final native Quaternion fromArray(JsArrayNumber array)/*-{
return this.fromArray(array);
}-*/;
public final native JsArrayNumber toArray()/*-{
return this.toArray();
}-*/;
public static native final Quaternion slerp( Quaternion qa,Quaternion qb,Quaternion qm,double t)/*-{
return $wnd.THREE.Quaternion.slerp( qa, qb, qm, t);
}-*/;
/**
* @deprecated
* //use multiplyQuaternions(this,q);
* @return
*/
public native final Quaternion multiplySelf(Quaternion q)/*-{
return this.multiply(q);
}-*/;
/**
* @deprecated
* @return
*/
public native final Quaternion multiply(Quaternion q,Quaternion q2)/*-{
return this.multiply(q,q2);
}-*/;
public native final double getX()/*-{
return this.x;
}-*/;
public native final double getY()/*-{
return this.y;
}-*/;
public native final double getZ()/*-{
return this.z;
}-*/;
public native final double getW()/*-{
return this.w;
}-*/;
public native final void setX(double x)/*-{
this.x=x;
}-*/;
public native final void setY(double y)/*-{
this.y=y;
}-*/;
public native final void setZ(double z)/*-{
this.z=z;
}-*/;
public native final void setW(double w)/*-{
this.w=w;
}-*/;
public final native double dot(Vector4 vector)/*-{
return this.dot(vector);
}-*/;
public final native Quaternion fromArray(JsArrayNumber array,int offset)/*-{
return this.fromArray(array,offset);
}-*/;
public final native JsArrayNumber toArray(JsArrayNumber array)/*-{
return this.toArray(array);
}-*/;
public final native JsArrayNumber toArray(JsArrayNumber array,int offset)/*-{
return this.toArray(array,offset);
}-*/;
public final native Quaternion clone()/*-{
return this.clone();
}-*/;
public static final native Quaternion slerpFlat(JsArrayNumber dst,int dstOffset, JsArrayNumber src0,int srcOffset0,JsArrayNumber src1,int srcOffset1,double t)/*-{
return $wnd.THREE.Quaternion.slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t);
}-*/;
public final native Quaternion setFromUnitVectors(Vector3 p1,Vector3 p2)/*-{
return this.setFromUnitVectors(p1,p2);
}-*/;
}