private Canvas3D createCanvas()
{
GraphicsConfigTemplate3D tmpl = new GraphicsConfigTemplate3D();
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = env.getDefaultScreenDevice();
GraphicsConfiguration config = device.getBestConfiguration(tmpl);
CapturingCanvas3D ret = new CapturingCanvas3D(config);
return ret;
}
private View createView(Canvas3D c) {
PhysicalBody body = new PhysicalBody();
PhysicalEnvironment environment = new PhysicalEnvironment();
View view = new View();
view.addCanvas3D(c);
view.setBackClipDistance(1000.0);
view.setPhysicalBody(body);
view.setPhysicalEnvironment(environment);
return view;
}
private BranchGroup createViewgroup(View v) {
BranchGroup viewRoot = new BranchGroup();
viewTransform = new TransformGroup();
viewTransform.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
viewTransform.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
Transform3D transform = new Transform3D();
transform.set(new Vector3d(0, 0, 18));
viewTransform.setTransform(transform);
viewRoot.addChild(viewTransform);
// AmbientLight al = new AmbientLight(new Color3f(0.3f, 0.3f, 0.3f));
// al.setInfluencingBounds(new BoundingSphere(new Point3d( 0.0, 0.0, 0.0 ),1000.0));
// viewTransform.addChild(al);
AmbientLight al = new AmbientLight(new Color3f(.4f, 0.4f, 0.4f));
al.setInfluencingBounds(new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 1000.0));
viewTransform.addChild(al);
DirectionalLight dLight = new DirectionalLight(new Color3f(0.4f, 0.4f, 0.4f), new Vector3f(1.0f, -1.0f, -2.0f));
dLight.setInfluencingBounds(new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 1000.0));
viewTransform.addChild(dLight);
PointLight pLight = new PointLight(true, new Color3f(0.4f, 0.4f, 0.4f), new Point3f(220.0f, -220.0f, 220.0f), new Point3f(0.3f, 0.0f, 0.0f));
pLight.setInfluencingBounds(new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 1000.0));
viewTransform.addChild(pLight);
ViewPlatform vp = new ViewPlatform();
v.attachViewPlatform(vp);
viewTransform.addChild(vp);
viewRoot.compile();
return viewRoot;
}
locale.addBranchGraph(createViewgroup(createView(canvas3D)));