]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/actions/TranslateFreeVariableLengthAction.java
Add units to ComponentSelectionDialog
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / actions / TranslateFreeVariableLengthAction.java
index e693f1fb2163a6658e6ac86c1f93c9f453c6b278..1088a894347af1ab908d26083059e1220ebfdc5c 100644 (file)
@@ -7,11 +7,10 @@ import javax.vecmath.Vector3d;
 
 import org.simantics.g3d.math.Ray;
 import org.simantics.g3d.scenegraph.IG3DNode;
+import org.simantics.g3d.toolbar.ToolComposite;
 import org.simantics.g3d.vtk.swt.InteractiveVtkComposite;
 import org.simantics.g3d.vtk.utils.vtkUtil;
 import org.simantics.plant3d.Activator;
-import org.simantics.plant3d.actions.RoutePipeAction.LockType;
-import org.simantics.plant3d.actions.RoutePipeAction.ToolState;
 import org.simantics.plant3d.scenegraph.EndComponent;
 import org.simantics.plant3d.scenegraph.InlineComponent;
 import org.simantics.plant3d.scenegraph.Nozzle;
@@ -19,16 +18,14 @@ import org.simantics.plant3d.scenegraph.P3DRootNode;
 import org.simantics.plant3d.scenegraph.PipelineComponent;
 import org.simantics.plant3d.scenegraph.TurnComponent;
 import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint;
-import org.simantics.plant3d.scenegraph.controlpoint.PipingRules;
 import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint.Direction;
-import org.simantics.plant3d.utils.ComponentUtils;
 
 public class TranslateFreeVariableLengthAction extends RoutePipeAction{
 
     private InlineComponent component;
     
-    public TranslateFreeVariableLengthAction(InteractiveVtkComposite panel, P3DRootNode root) {
-        super(panel, root, false);
+    public TranslateFreeVariableLengthAction(InteractiveVtkComposite panel, P3DRootNode root, ToolComposite toolComposite) {
+        super(panel, root, toolComposite, false);
         setText("Translate");
         setImageDescriptor(Activator.imageDescriptorFromPlugin("com.famfamfam.silk", "icons/arrow_refresh.png"));
     }
@@ -68,7 +65,7 @@ public class TranslateFreeVariableLengthAction extends RoutePipeAction{
     @Override
     protected void activateNextPrev(PipeControlPoint start) throws Exception {
         if (!reversed && start.isDualInline())
-            start = start.getSubPoint().get(0);
+            start = start.getDualSub();
         else if (reversed && start.isDualSub())
             start = start.parent;
         
@@ -95,7 +92,8 @@ public class TranslateFreeVariableLengthAction extends RoutePipeAction{
             lock = LockType.CUSTOM;
         } else if (startComponent instanceof PipelineComponent){
             if (startComponent instanceof InlineComponent) {
-                direction = startComponent.getControlPoint().getPathLegDirection(reversed ? Direction.PREVIOUS : Direction.NEXT);
+                direction = startComponent.getControlPoint().getInlineDir();
+                if (reversed) direction.negate();
                 lock = LockType.CUSTOM;
                 if (((InlineComponent) startComponent).isVariableLength()) {
                     direction = null;
@@ -108,7 +106,7 @@ public class TranslateFreeVariableLengthAction extends RoutePipeAction{
                     start.getControlPointEnds(previousPosition,v);
                 }
             } else if (startComponent instanceof TurnComponent) {
-                if (start.isFixed()) {
+                if (start.asFixedAngle()) {
                     direction = startComponent.getControlPoint().getPathLegDirection(reversed ? Direction.PREVIOUS : Direction.NEXT);
                     lock = LockType.CUSTOM;
                 } else {