package com.akjava.gwt.three.client.js.loaders;
import com.akjava.gwt.three.client.gwt.loader.JSONLoaderObject;
import com.akjava.gwt.three.client.js.core.Geometry;
import com.akjava.gwt.three.client.js.loaders.XHRLoader.XHRErrorHandler;
import com.akjava.gwt.three.client.js.loaders.XHRLoader.XHRProgressHandler;
import com.akjava.gwt.three.client.js.materials.Material;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
public class JSONLoader extends Loader{
protected JSONLoader(){
}
public final native LoadingManager getManager()/*-{
return this.manager;
}-*/;
public final native void setManager(LoadingManager manager)/*-{
this.manager = manager;
}-*/;
/**
* don't set null ,set JavaScriptUtils.createUndefinedValue();
* @param path
*/
public final native void setTexturePath(String path)/*-{
this.setTexturePath(path);
}-*/;
/**
* @deprecated texturePath is set by setTexturePath();
* @param path
* @param handler
* @param texturePath
*/
public final native void load(String path,JSONLoadHandler handler,String texturePath)/*-{
if(texturePath==null){
texturePath=undefined;
}
this.load(path,function ( geometry,materials ) {
handler.@com.akjava.gwt.three.client.js.loaders.JSONLoader$JSONLoadHandler::loaded(Lcom/akjava/gwt/three/client/js/core/Geometry;Lcom/google/gwt/core/client/JsArray;)(geometry,materials);
},texturePath);
}-*/;
public final native void load(String path,JSONLoadHandler handler)/*-{
this.load(path,function ( geometry,materials ) {
handler.@com.akjava.gwt.three.client.js.loaders.JSONLoader$JSONLoadHandler::loaded(Lcom/akjava/gwt/three/client/js/core/Geometry;Lcom/google/gwt/core/client/JsArray;)(geometry,materials);
});
}-*/;
public final native void load(String path,JSONLoadHandler handler,XHRProgressHandler progressHandler,XHRErrorHandler errorHandler)/*-{
this.load(path,function ( geometry,materials ) {
handler.@com.akjava.gwt.three.client.js.loaders.JSONLoader$JSONLoadHandler::loaded(Lcom/akjava/gwt/three/client/js/core/Geometry;Lcom/google/gwt/core/client/JsArray;)(geometry,materials);
},function ( onProgress ) {
progressHandler.@com.akjava.gwt.three.client.js.loaders.XHRLoader$XHRProgressHandler::onProgress(Lcom/google/gwt/dom/client/NativeEvent;)(onProgress);
},function ( onError ) {
errorHandler.@com.akjava.gwt.three.client.js.loaders.XHRLoader$XHRErrorHandler::onError(Lcom/google/gwt/dom/client/NativeEvent;)(onError);
});
}-*/;
public final native void load(String path,JSONLoadHandler handler,XHRProgressHandler progressHandler)/*-{
this.load(path,function ( geometry,materials ) {
handler.@com.akjava.gwt.three.client.js.loaders.JSONLoader$JSONLoadHandler::loaded(Lcom/akjava/gwt/three/client/js/core/Geometry;Lcom/google/gwt/core/client/JsArray;)(geometry,materials);
},function ( onProgress ) {
progressHandler.@com.akjava.gwt.three.client.js.loaders.XHRLoader$XHRProgressHandler::onProgress(Lcom/google/gwt/dom/client/NativeEvent;)(onProgress);
});
}-*/;
public static interface JSONLoadHandler {
public void loaded(Geometry geometry,JsArray<Material> materials);
}
//TODO implement class to easy access
public final native JSONLoaderObject parse(JavaScriptObject json,String texturePath)/*-{
return this.parse(json,texturePath);
}-*/;
public final native JSONLoaderObject parse(JavaScriptObject json)/*-{
return this.parse(json);
}-*/;
/** @deprecated don't work anymore*/
//public final native void createModel(JavaScriptObject object,JSONLoadHandler handler,String texturepath)/*-{
//this.createModel(object,function ( geometry ) {
// handler.@com.akjava.gwt.three.client.js.loaders.JSONLoader$JSONLoadHandler::loaded(Lcom/akjava/gwt/three/client/core/Geometry;)(geometry);
// },texturepath);
//}-*/;
}