this.state = state;
this.axisShowing = state.isAxisShowing();
this.universe = new BasicUniverse(state.getUniverseState());
canvas3D = new BasicSimLifeCanvas3D(fpsCounter, state.getCanvasState());
SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
// limit to graphic to 40 FPS (interval = 1000ms / 40 = 25)
simpleU.getViewer().getView().setMinimumFrameCycleTime(25);
root = new BranchGroup();
// allow to add children to the root
root.setCapability(Group.ALLOW_CHILDREN_EXTEND);
// allow the remove children from the root
root.setCapability(Group.ALLOW_CHILDREN_WRITE);
viewTransform = simpleU.getViewingPlatform().getViewPlatformTransform();
viewTransform.setTransform(new Transform3D(state.getViewerTransform3D()));
addNavigators();
root.addChild(universe.getUniverse3D().getUniverseRoot());
root.compile();
simpleU.addBranchGraph(root);
synchronizer = new BasicMainSynchronizer(state.getSynchronizer(), universe);
setAxisShowing(state.isAxisShowing());
setFpsShowing(state.isFpsShowing());