]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/editor/Plant3DEditor.java
Allow selection of vertical direction in Plant3DEditor
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / editor / Plant3DEditor.java
index a97be312f5e3605947f3a45a80c2c2a735bce984..2c626c95a00dd91b46eaff7f98b808bbf694ec34 100644 (file)
@@ -16,7 +16,6 @@ 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;
@@ -120,6 +119,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,6 +166,18 @@ 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);
@@ -240,6 +256,10 @@ public class Plant3DEditor extends ResourceEditorPart {
                
        }
        
+       public void setUpDirection(int upDirection) {
+               this.upDirection = upDirection;
+       }
+
        protected vtkCameraAndSelectorAction createCameraAction() {
            return new vtkCameraAndSelectorAction(panel); 
        }
@@ -378,7 +398,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);