public class index extends Applet{
private SimpleUniverse u = null;
GraphicsConfiguration config;
Canvas3D c;
BranchGroup rootBG, boxBG, lineBG;
BoundingSphere BigBounds = new BoundingSphere(new Point3d(),100000);
Box box;
TransformGroup boxTG;
Point3d bar;
Point3f[] plaPts;
Point3f tmpPt;
Color3f white = new Color3f(1.0f, 1.0f, 1.0f);
TransformGroup BoxTG, BoxTG2;
Transform3D BoxT3D, BoxT3D2;
Shape3D plShape;
Appearance boxAppearance;
/*************************************************************/
public void init(){
System.out.println("init");
setLayout(new BorderLayout());
config = SimpleUniverse.getPreferredConfiguration();
c= new Canvas3D(config);
add("Center", c);
u = new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(createSceneGraph());
}
public void licht(){
AmbientLight ALgt = new AmbientLight(new Color3f(1f,1f,1f));
DirectionalLight DLgt = new DirectionalLight(new Color3f(1f,1f,1f),
new Vector3f(-0.5f,-0.5f,-1f));
ALgt.setInfluencingBounds(BigBounds);
DLgt.setInfluencingBounds(BigBounds);
rootBG.addChild(ALgt);
rootBG.addChild(DLgt);
}
public void newNode(){
System.out.println("newNode");
boxBG = new BranchGroup();
boxTG = new TransformGroup();
box= new Box(0.01f,0.01f,0.01f, boxAppearance);
boxTG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
boxTG.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
boxTG.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
boxTG.addChild(box);
boxBG.addChild(boxTG);
rootBG.addChild(boxBG);
}
public class MyCallbackClass extends Object implements PickingCallback{
public void transformChanged(int type, TransformGroup tg) {
//todo
}
}
private BranchGroup createSceneGraph() {
System.out.println("createSceneGraph");
rootBG = new BranchGroup();
rootBG.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
rootBG.setCapability(BranchGroup.ALLOW_CHILDREN_READ);
rootBG.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
//PickTranslateBehavior
PickTranslateBehavior pickT = new PickTranslateBehavior(rootBG, c, BigBounds);
PickingCallback myCallback = new MyCallbackClass();
pickT.setupCallback(myCallback);
boxAppearance = new Appearance();
boxAppearance.setMaterial( new Material(new Color3f(0f,0f,1f),
new Color3f(0f,0f,0f),
new Color3f(1f,0f,0f),
new Color3f(1f,1f,1f),
100f));
licht();
rootBG.addChild(pickT);
rootBG.compile();
return rootBG;
}
public void destroy(){
System.out.println("destroy");
u.cleanup();
}
}