X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Feditor%2FPlant3DEditor.java;h=a7559f8009b35a599469a6d7d45cc7845b698a43;hb=d207cfa3235339e7d7b894494be400160b121bd5;hp=a97be312f5e3605947f3a45a80c2c2a735bce984;hpb=8a0cd33ffd13d79465f8a7b54ae19945599a99bf;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/editor/Plant3DEditor.java b/org.simantics.plant3d/src/org/simantics/plant3d/editor/Plant3DEditor.java index a97be312..a7559f80 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/editor/Plant3DEditor.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/editor/Plant3DEditor.java @@ -16,10 +16,10 @@ import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; -import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Menu; import org.eclipse.ui.views.contentoutline.IContentOutlinePage; +import org.simantics.Simantics; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.Session; @@ -120,6 +120,11 @@ public class Plant3DEditor extends ResourceEditorPart { private P3DNodeMap nodeMap; + /** Constants for selecting the up-direction */ + public static final int X = 0, Y = 1, Z = 2; + + protected int upDirection = 1; + @Override public void createPartControl(Composite parent) { this.parent = parent; @@ -162,13 +167,25 @@ public class Plant3DEditor extends ResourceEditorPart { new ContextMenuListener(panel, contextMenu); cameraAction = createCameraAction(); + switch (upDirection) { + case 0: + cameraAction.setUpDirection(new double[] { 1, 0, 0 }); + break; + case 1: + cameraAction.setUpDirection(new double[] { 0, 1, 0 }); + break; + case 2: + cameraAction.setUpDirection(new double[] { 0, 0, 1 }); + break; + } + panel.setDefaultAction(cameraAction); panel.useDefaultAction(); panel.setPickType(4); try { - ControlPointFactory.preloadCache(getLibraryUri()); - ComponentUtils.preloadCache(); + ControlPointFactory.preloadCache(Simantics.getSession(), getLibraryUri()); + ComponentUtils.preloadCache(Simantics.getSession()); } catch (Exception e) { ExceptionUtils.logAndShowError("Cannot open Plant3D editor",e); return; @@ -240,6 +257,10 @@ public class Plant3DEditor extends ResourceEditorPart { } + public void setUpDirection(int upDirection) { + this.upDirection = upDirection; + } + protected vtkCameraAndSelectorAction createCameraAction() { return new vtkCameraAndSelectorAction(panel); } @@ -378,7 +399,8 @@ public class Plant3DEditor extends ResourceEditorPart { ren1.SetGradientBackground(true); // vtkActor grid = vtkShape.createGridActor(8,1.0,1|2|4); - vtkActor grid = vtkShape.createGridActor(8,1.0, 2 ); + int dir = 1 << upDirection; + vtkActor grid = vtkShape.createGridActor(8, 1.0, dir); grid.SetPickable(0); ren1.AddActor(grid); panel.addDeletable(grid); @@ -428,7 +450,7 @@ public class Plant3DEditor extends ResourceEditorPart { if (node instanceof Equipment) { m.add(translateAction); m.add(rotateAction); - for (Item eq : P3DUtil.getNozzles(getLibraryUri())) { + for (Item eq : P3DUtil.getNozzles(Simantics.getSession(), getLibraryUri())) { AddNozzleAction add = new AddNozzleAction(rootNode, eq); add.setEquipment((Equipment)node); m.add(add);