// Path: gdx-bullet-gwt/src/com/badlogic/gdx/physics/bullet/gwt/emu/com/badlogic/gdx/physics/bullet/BulletBase.java
// public class BulletBase implements Disposable
// {
// 	public JavaScriptObject jsObject; // public to be able to easily access in js code.
// 	boolean disposed;
// 
// 	@Override
// 	public void dispose()
// 	{
// 		disposed = true;
// 		if(jsObject != null)
// 			internaldispose();
// 		jsObject = null;
// 	}
// 
// 	private native void internaldispose() /*-{
// 		var bulletBase = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
// 		$wnd.Ammo.destroy(bulletBase);
// 	}-*/;
// 
// 	public boolean isDisposed()
// 	{
// 		return disposed;
// 	}
// 	
// 	/** Obtains a reference to this object, call release to free the reference. */
// 	public void obtain() {
// 	}
// 	
// 	/** Release a previously obtained reference, causing the object to be disposed when this was the last reference. */
// 	public void release() {
// 	}
// 	
// 	/** @return Whether this instance is obtained using the {@link #obtain()} method. */
// 	public boolean isObtained() {
// 		return false;
// 	}
// 	
// 	protected void construct() {
// 	}
// 	
// 	public void takeOwnership() {
// 	}
// }


import com.badlogic.gdx.math.Matrix4;
import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.physics.bullet.BulletBase;
import com.google.gwt.core.client.JavaScriptObject;

	public native float getCurrentSpeedKmHour() /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		return vehicleJS.getCurrentSpeedKmHour();
	}-*/;

	public native void setCoordinateSystem(int rightIndex, int upIndex, int forwardIndex) /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		vehicleJS.setCoordinateSystem(rightIndex, upIndex, forwardIndex);
	}-*/;

	public native int getUserConstraintType() /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		return vehicleJS.getUserConstraintType();
	}-*/;

	public native void setUserConstraintType(int userConstraintType) /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		vehicleJS.setUserConstraintType(userConstraintType);
	}-*/;

	public native void setUserConstraintId(int uid) /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		vehicleJS.setUserConstraintId(uid);
	}-*/;

	public native int getUserConstraintId() /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		return vehicleJS.getUserConstraintId();
	}-*/;
	

// Path: gdx-bullet-gwt/src/com/badlogic/gdx/physics/bullet/gwt/emu/com/badlogic/gdx/physics/bullet/BulletBase.java
// public class BulletBase implements Disposable
// {
// 	public JavaScriptObject jsObject; // public to be able to easily access in js code.
// 	boolean disposed;
// 
// 	@Override
// 	public void dispose()
// 	{
// 		disposed = true;
// 		if(jsObject != null)
// 			internaldispose();
// 		jsObject = null;
// 	}
// 
// 	private native void internaldispose() /*-{
// 		var bulletBase = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
// 		$wnd.Ammo.destroy(bulletBase);
// 	}-*/;
// 
// 	public boolean isDisposed()
// 	{
// 		return disposed;
// 	}
// 	
// 	/** Obtains a reference to this object, call release to free the reference. */
// 	public void obtain() {
// 	}
// 	
// 	/** Release a previously obtained reference, causing the object to be disposed when this was the last reference. */
// 	public void release() {
// 	}
// 	
// 	/** @return Whether this instance is obtained using the {@link #obtain()} method. */
// 	public boolean isObtained() {
// 		return false;
// 	}
// 	
// 	protected void construct() {
// 	}
// 	
// 	public void takeOwnership() {
// 	}
// }


// Path: gdx-bullet-gwt/src/com/badlogic/gdx/physics/bullet/gwt/emu/com/badlogic/gdx/physics/bullet/dynamics/btRaycastVehicle.java
import com.badlogic.gdx.math.Matrix4;
import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.physics.bullet.BulletBase;
import com.google.gwt.core.client.JavaScriptObject;

	public native float getCurrentSpeedKmHour() /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		return vehicleJS.getCurrentSpeedKmHour();
	}-*/;

	public native void setCoordinateSystem(int rightIndex, int upIndex, int forwardIndex) /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		vehicleJS.setCoordinateSystem(rightIndex, upIndex, forwardIndex);
	}-*/;

	public native int getUserConstraintType() /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		return vehicleJS.getUserConstraintType();
	}-*/;

	public native void setUserConstraintType(int userConstraintType) /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		vehicleJS.setUserConstraintType(userConstraintType);
	}-*/;

	public native void setUserConstraintId(int uid) /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		vehicleJS.setUserConstraintId(uid);
	}-*/;

	public native int getUserConstraintId() /*-{
		var vehicleJS = this.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject;
		return vehicleJS.getUserConstraintId();
	}-*/;
	

	static public class btVehicleTuning extends BulletBase {
