以前からJSNIは使っていたが、自分でJavaScriptObjectを継承したクラスを作ったことはなかった。今回初めてそれをやったわけだが、protectedなコンストラクタを用意する以外は普通だったようなので特に気にすることも無かったようだ
package net.d_kami.mmd.client.math.physics; import com.google.gwt.core.client.JavaScriptObject; public class BTVector3 extends JavaScriptObject{ protected BTVector3() { } public final native void setValue(float x, float y, float z) /*-{ this.setValue(x, y, z); }-*/; public final native float getX() /*-{ return this.x(); }-*/; public final native float getY() /*-{ return this.y(); }-*/; public final native float getZ() /*-{ return this.z(); }-*/; public final native void setX(float x) /*-{ this.setX(x); }-*/; public final native void setY(float y) /*-{ this.setY(y); }-*/; public final native void setZ(float z) /*-{ this.setZ(z); }-*/; public final native String toJSSrting() /*-{ return "" + this.x() + ", " + this.y() + ", " + this.z(); }-*/; }