/**
 * Sample 3DzzD Applet
 * 
 * You can use this applet as a base for your own  3D Applet
 *
 * @author Bruno Augier
 */
 
import dzzd.DzzD;
import dzzd.*;

public class Sample3D extends DzzDApplet implements IScene3DRenderCallBack
{
	private boolean loaded;
	private String file3DS;
	public void init3DzzD()
	{
		this.file3DS="JEEP.3DS";
		this.loaded=false;
		this.getScene3DRender().getScene3D().loadScene3DFrom3DS(this.getBaseURL(),this.file3DS);
		this.getScene3DRender().setScene3DRenderCallBack(this);
	}	
	
	public void start3DzzD()
	{
		
	}	
	
	public void render3DObjectMonitor(IScene3DRender r)
	{
		if(r.getScene3D().getMesh3DByName(this.file3DS)==null)
			return;
			
		this.loaded=true;
		
		r.getScene3D().getCamera3DById(0).getPosition().setZ(-35);
		r.getScene3D().getCamera3DById(0).getPosition().setY(20);
		r.getScene3D().getCamera3DById(0).getRotation().setX(-0.6);
		r.getScene3D().getCamera3DById(0).setFOV(45);
		
		r.getScene3D().getLight3DById(0).getRotation().setX(-0.9);
		
		//r.getScene3D().getMesh3DByName("GROUND").getRenderMode().disableRenderMode(DzzD.RM_LIGHT|DzzD.RM_TEXTURE_MIPMAP);
		r.getScene3D().getMesh3DByName("GROUND").getRenderMode().disableRenderMode(1|8);
		
	}	
	
	
	public void render3DWorldSpace(IScene3DRender r)
	{
		if(!this.loaded)
			return;
			
		IPoint3D rot=r.getScene3D().getMesh3DById(0).getRotation();
		rot.setY(rot.getY()+0.05);
	}
	
	
	
	
	public void render3DstartCallBack(IScene3DRender r){}
	public void render3DStart(IScene3DRender r){}
	public void render3DCameraSpace(IScene3DRender r){}
	public void render3DPixelsUpdate(IScene3DRender r){}
	public void render3DPixelsUpdated(IScene3DRender r){}	
	public void render3DEnd(IScene3DRender r){}		
	
}
