import java.util.HashSet;
import java.util.Set;
-import javax.vecmath.Vector3d;
-
import org.eclipse.swt.widgets.Display;
+import org.simantics.db.Resource;
+import org.simantics.g3d.math.MathTools;
import org.simantics.g3d.scenegraph.NodeMap;
import org.simantics.g3d.scenegraph.base.INode;
import org.simantics.g3d.vtk.swt.InteractiveVtkComposite;
import org.simantics.plant3d.scenegraph.InlineComponent;
import org.simantics.plant3d.scenegraph.Nozzle;
import org.simantics.plant3d.scenegraph.P3DRootNode;
-import org.simantics.plant3d.scenegraph.PipeRun;
import org.simantics.plant3d.scenegraph.PipelineComponent;
-import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint;
-import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint.Direction;
import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint.PositionType;
-import org.simantics.plant3d.scenegraph.controlpoint.PipingRules;
import org.simantics.plant3d.utils.ComponentUtils;
-import org.simantics.plant3d.utils.Item;
import org.simantics.plant3d.utils.ComponentUtils.InsertInstruction;
-import org.simantics.plant3d.utils.Item.Type;
+import org.simantics.plant3d.utils.Item;
import org.simantics.utils.threads.ThreadUtils;
import org.simantics.utils.ui.ExceptionUtils;
private P3DRootNode root;
private PipelineComponent component;
- private NodeMap<vtkProp,INode> nodeMap;
+ private NodeMap<Resource,vtkProp,INode> nodeMap;
private TerminalSelectionGizmo gizmo;
private Item toAdd = null;
private PositionType insertPosition;
+ @SuppressWarnings("unused")
private boolean insertAdjustable;
+ @SuppressWarnings("unused")
private boolean lengthAdjustable;
private String libUri;
if (component.getPrevious() == null) {
allowed.add(PositionType.PREVIOUS);
}
- if (component instanceof InlineComponent && !component.getControlPoint().isFixed()){
+ if (component instanceof InlineComponent && !component.getControlPoint().isFixedLength()){
allowed.add(PositionType.SPLIT);
}
}
private Double length;
private Double angle;
+ private Double rotationAngle;
private Double diameter;
private Double turnRadius;
this.lengthAdjustable = dialog.isLenghtAdjustable();
this.length = dialog.getLength();
this.angle = dialog.getAngle();
+ this.rotationAngle = dialog.getRotationAngle();
this.diameter = dialog.getDiameter();
this.turnRadius = dialog.getTurnRadius();
allowed = dialog.filterAllowed();
try {
InsertInstruction inst = new InsertInstruction();
inst.typeUri = toAdd.getUri();
- inst.angle = angle;
+ inst.angle = angle != null ? MathTools.degToRad(angle) : null;
inst.diameter = diameter;
inst.length = length;
inst.turnRadius = turnRadius;
inst.insertPosition = insertPosition;
+ inst.rotationAngle = rotationAngle;
inst.position = position;
ComponentUtils.addComponent(root, component, inst);
} catch (Exception e) {