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;
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;
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;
@Override
public void run(ReadGraph graph) throws DatabaseException {
- System.out.println("START PLANT3D LOAD");
+ //System.out.println("START PLANT3D LOAD");
PipingRules.setEnabled(false);
IMappingSchema<Resource,INode> schema = getSchema(graph);
mapping = Mappings.createWithListening(schema);
throw new DatabaseException(e);
}
- System.out.println("END PLANT3D LOAD");
+ //System.out.println("END PLANT3D LOAD");
}
});
}
+ public void setUpDirection(int upDirection) {
+ this.upDirection = upDirection;
+ }
+
protected vtkCameraAndSelectorAction createCameraAction() {
return new vtkCameraAndSelectorAction(panel);
}
if (nodeMap.isRangeModified());
nodeMap.commit("Load sync");
} catch (Exception e) {
+ ExceptionUtils.logAndShowError("Failed to load model correctly", e);
//throw new DatabaseException(e);
}
panel.removeListener(this);
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);
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);