package com.akjava.gwt.three.client.gwt.extras;
import com.akjava.gwt.three.client.js.math.Color;
import com.akjava.gwt.three.client.js.math.Matrix4;
import com.akjava.gwt.three.client.js.math.Vector3;
import com.akjava.gwt.three.client.js.renderers.WebGLRenderTarget;
import com.akjava.gwt.three.client.js.textures.Texture;
import com.google.gwt.core.client.JavaScriptObject;
/*
* Cannot set property 'value' of undefined is usually TYPO
*/
public class Uniforms extends JavaScriptObject{
public final static Uniforms create(){
return (Uniforms) Uniforms.createObject();
}
protected Uniforms(){}
public native final Uniforms setTypeAndValue(String key,double value)/*-{
this[key]={type:"f",value:value};
return this;
}-*/;
public native final Uniforms setTypeAndValue(String key,Color value)/*-{
this[key]={type:"c",value:value};
return this;
}-*/;
public native final Uniforms gwtIncrementValue(String key,double value)/*-{
this[key].value+=value;
return this;
}-*/;
public native final Uniforms setTypeAndValue(String key,Texture texture)/*-{
this[key]={type:"t",value:texture};
return this;
}-*/;
public native final void set(String key,Texture texture)/*-{
this[key].value=texture;
}-*/;
public native final void set(String key,WebGLRenderTarget texture)/*-{
this[key].value=texture;
}-*/;
public native final void set(String key,Color value)/*-{
this[key].value=value;
}-*/;
public native final void setRGB(String key,double r,double g,double b)/*-{
this[key].value.setRGB(r,g,b);
}-*/;
public native final void set(String key,boolean bool)/*-{
this[key].value=bool;
}-*/;
public native final void set(String key,double value)/*-{
this[key].value=value;
}-*/;
public native final void setHex(String key,int hex)/*-{
this[key].value.setHex(hex);
}-*/;
public native final void set(String key,double x,double y)/*-{
this[key].value.set(x,y);
}-*/;
public native final void set(String key,double x,double y,double z)/*-{
this[key].value.set(x,y,z);
}-*/;
public native final void set(String key,Matrix4 matrix)/*-{
this[key].value=matrix
}-*/;
public native final void set(String key,Vector3 vector)/*-{
this[key].value=vector
}-*/;
public native final WebGLRenderTarget getTexture(String key)/*-{
return this[key].value;
}-*/;
public native final Color getColor(String key)/*-{
return this[key].value;
}-*/;
public native final double getNumber(String key)/*-{
return this[key].value;
}-*/;
}