public void activate() { viewGroup.compile(); objGroup.compile(); locale.addBranchGraph(viewGroup); locale.addBranchGraph(objGroup); }
private void start() throws PluginException, IfcModelInterfaceException { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); try { setIconImage(ImageIO.read(getClass().getResource("haussmall.png"))); } catch (IOException e) { LOGGER.error("", e); } setSize(800, 600); getContentPane().setBackground(Color.BLACK); setTitle("IFC Visualiser"); setVisible(true); VirtualUniverse universe = new VirtualUniverse(); Locale locale = new Locale(universe); canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); sceneBranchGroup = new BranchGroup(); sceneBranchGroup.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND); sceneBranchGroup.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE); createLoaderSceneGraph(); locale.addBranchGraph(sceneBranchGroup); showLoader = true; new Thread() { public void run() { float x = 0; float y = 0; while (showLoader) { Matrix3f matrixX = new Matrix3f(); matrixX.rotX(x); Matrix3f matrixY = new Matrix3f(); matrixY.rotY(y); Matrix3f rot = new Matrix3f(); rot.mul(matrixX, matrixY); Transform3D transform3d = new Transform3D(); transform3d.setRotation(rot); transform3d.setTranslation(new Vector3d(10, 0, 0)); loaderTransformGroup.setTransform(transform3d); y -= 0.05; x += 0.015; try { Thread.sleep(25); } catch (InterruptedException e) { LOGGER.error("", e); } } }; }.start(); viewBranchGroup = new BranchGroup(); createViewBranch(); viewBranchGroup.compile(); locale.addBranchGraph(viewBranchGroup); add(canvas, BorderLayout.CENTER); canvas.setVisible(true); validate(); sharedGroup = new SharedGroup(); try { pluginManager = LocalDevPluginLoader.createPluginManager(new File("home")); } catch (PluginException e) { LOGGER.error("", e); } DeserializerPlugin deserializerPlugin = pluginManager.getFirstDeserializer("ifc", true); Deserializer deserializer = deserializerPlugin.createDeserializer(new PluginConfiguration()); deserializer.init(pluginManager.requireSchemaDefinition()); File file = new File("../TestData/data/AC11-Institute-Var-2-IFC.ifc"); try { model = deserializer.read(file); } catch (DeserializationException e) { LOGGER.error("", e); } catch (Exception e) { LOGGER.error("", e); } ifcEngine = pluginManager.requireRenderEngine().createRenderEngine(new PluginConfiguration()); ifcEngine.init(); try { ifcEngineModel = ifcEngine.openModel(file); try { RenderEngineSurfaceProperties initializeModelling = ifcEngineModel.initializeModelling(); geometry = ifcEngineModel.finalizeModelling(initializeModelling); createSceneGraph(); } finally { ifcEngineModel.close(); } } finally { ifcEngine.close(); } }