]> 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 261ab8c36d88dd2ec8c092a579838e1db9764134..1088a894347af1ab908d26083059e1220ebfdc5c 100644 (file)
@@ -7,6 +7,7 @@ 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;
@@ -23,8 +24,8 @@ 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"));
     }
@@ -64,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;
         
@@ -91,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;