package framework.test;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.GraphicsConfiguration;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Clip;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.Locale;
import javax.media.j3d.Transform3D;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3d;
import javax.vecmath.Vector3f;
import com.sun.j3d.utils.universe.SimpleUniverse;
import cv97.Constants;
import cv97.SceneGraph;
import cv97.j3d.SceneGraphJ3dObject;
import framework.RWT.RWTCanvas3D;
import framework.RWT.RWTFrame3D;
import framework.model3D.Model3D;
import framework.model3D.ModelFactory;
import framework.model3D.Object3D;
import framework.model3D.Position3D;
import framework.model3D.Universe;
import framework.view3D.Camera3D;
public class TestModel extends Frame implements Constants {
SceneGraph sg;
Canvas3D c;
TestModel(){
super("VRML Simple Viewer");
sg = new SceneGraph(SceneGraph.NORMAL_GENERATION);
setLayout(new BorderLayout());
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
c = new Canvas3D(config);
add("Center",c);
SceneGraphJ3dObject sgObject = new SceneGraphJ3dObject(c,sg);
sg.setObject(sgObject);
// sg.load("data\\Q07077-2.3ds");
// sg.save("newGLViewLib.wrl");
// setSize(400,400);
// sg.print();
// show();
}
public static void main(String[] args) {
// TestModel testModel = new TestModel();
RWTFrame3D frame = new RWTFrame3D();
RWTCanvas3D canvas = new RWTCanvas3D();
frame.add(canvas);
// Model3D model = ModelFactory.loadModel("data\\doordemo.wrl");
// Model3D model = ModelFactory.loadModel("data\\cube2.3ds");
Model3D model = ModelFactory.loadModel("data\\Head.3ds");
Object3D obj = model.createObject();
Transform3D s = new Transform3D();
// s.setScale(0.01);
obj.children[0].scale.setTransform(s);
Universe universe = new Universe();
DirectionalLight light = new DirectionalLight( true,
new Color3f(1.0f, 1.0f, 1.0f),
new Vector3f(0.0f, 0.0f, -1.0f));
light.setInfluencingBounds(new BoundingSphere(new Point3d(), 500.0));
universe.place(light);
// SimpleUniverse universe = new SimpleUniverse(testModel.c);
universe.place(obj);
universe.compile();
Camera3D camera = new Camera3D(universe);
camera.setViewPoint(new Position3D(0.0, 0.0, 1000.0));
camera.adjust(0L);
canvas.attachCamera(camera);
frame.setVisible(true);
// obj.rotate(0.0, 1.0, 0.0, 2 * Math.PI / 4);
// Transform3D trans = new Transform3D();
// Transform3D trans2 = new Transform3D();
// obj.children[0].children[4].pos.getTransform(trans);
// obj.children[0].children[0].rot.getTransform(trans2);
//
// Vector3d vector = new Vector3d();
// trans.get(vector);
// vector.x = vector.x + 20;
// trans.set(vector);
//
// trans2.rotY(2 * Math.PI / 8);
//
// frame.setSize(600, 480);
// obj.children[0].children[4].pos.setTransform(trans);
// obj.children[0].children[0].rot.setTransform(trans2);
}
}