// 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.physics.bullet.BulletBase;
import com.google.gwt.core.client.JavaScriptObject;

package com.badlogic.gdx.physics.bullet.collision;


public class ContactResultCallback extends BulletBase
{
	public ContactResultCallback() {
		jsObject = createObj();
	}
	
	private native JavaScriptObject createObj() /*-{
		var obj = new $wnd.Ammo.ConcreteContactResultCallback();
		var self = this;
		obj.addSingleResult = function(cp, colObj0Wrap, partId0, index0, colObj1Wrap, partId1, index1)
		{
			cp = $wnd.Ammo.wrapPointer(cp, $wnd.Ammo.btManifoldPoint);
			colObj0Wrap = $wnd.Ammo.wrapPointer(colObj0Wrap, $wnd.Ammo.btCollisionObjectWrapper);
			colObj1Wrap = $wnd.Ammo.wrapPointer(colObj1Wrap, $wnd.Ammo.btCollisionObjectWrapper);
			var btManifoldPoint = @com.badlogic.gdx.physics.bullet.Bullet::TMP_btManifoldPoint_1;
			btManifoldPoint.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject = cp;
			var btCollisionObjectWrapper1 = @com.badlogic.gdx.physics.bullet.Bullet::TMP_btCollisionObjectWrapper_1;
			btCollisionObjectWrapper1.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject = colObj0Wrap;

// 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/collision/ContactResultCallback.java
import com.badlogic.gdx.physics.bullet.BulletBase;
import com.google.gwt.core.client.JavaScriptObject;

package com.badlogic.gdx.physics.bullet.collision;


public class ContactResultCallback extends BulletBase
{
	public ContactResultCallback() {
		jsObject = createObj();
	}
	
	private native JavaScriptObject createObj() /*-{
		var obj = new $wnd.Ammo.ConcreteContactResultCallback();
		var self = this;
		obj.addSingleResult = function(cp, colObj0Wrap, partId0, index0, colObj1Wrap, partId1, index1)
		{
			cp = $wnd.Ammo.wrapPointer(cp, $wnd.Ammo.btManifoldPoint);
			colObj0Wrap = $wnd.Ammo.wrapPointer(colObj0Wrap, $wnd.Ammo.btCollisionObjectWrapper);
			colObj1Wrap = $wnd.Ammo.wrapPointer(colObj1Wrap, $wnd.Ammo.btCollisionObjectWrapper);
			var btManifoldPoint = @com.badlogic.gdx.physics.bullet.Bullet::TMP_btManifoldPoint_1;
			btManifoldPoint.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject = cp;
			var btCollisionObjectWrapper1 = @com.badlogic.gdx.physics.bullet.Bullet::TMP_btCollisionObjectWrapper_1;
			btCollisionObjectWrapper1.@com.badlogic.gdx.physics.bullet.BulletBase::jsObject = colObj0Wrap;

			var btCollisionObjectWrapper2 = @com.badlogic.gdx.physics.bullet.Bullet::TMP_btCollisionObjectWrapper_2;
