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;
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"));
}
@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;
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;