private int decimals = 2;
private P3DRootNode root;
- private PipelineComponent startComponent;
- private PipeRun pipeRun;
+ protected PipelineComponent startComponent;
+ protected PipeRun pipeRun;
+ private boolean allowBranches;
- private TranslateAxisGizmo translateAxisGizmo = new TranslateAxisGizmo();
+ protected TranslateAxisGizmo translateAxisGizmo = new TranslateAxisGizmo();
private SplitPointSelectionGizmo splitPointSelectionGizmo;
private ConstraintPointGizmo constraintPointGizmo;
private TerminalSelectionGizmo terminalSelectionGizmo;
private NodeMap<Resource,vtkProp,INode> nodeMap;
- private enum ToolState{NOT_ACTIVE, INITIALIZING, SELECTING_POSITION, SELECTING_SPLIT, ROUTING};
- private ToolState state = ToolState.NOT_ACTIVE;
+ protected enum ToolState{NOT_ACTIVE, INITIALIZING, SELECTING_POSITION, SELECTING_SPLIT, ROUTING};
+ protected ToolState state = ToolState.NOT_ACTIVE;
private ConstraintDetector detector;// = new DummyConstraintDetector();
- private boolean useDefault = false;
- private Vector3d direction = null;
- private Vector3d previousPosition = null;
- private Vector3d currentPosition = null;
+ protected boolean useDefault = false;
+ protected Vector3d direction = null;
+ protected Vector3d previousPosition = null;
+ protected Vector3d currentPosition = null;
boolean step = false;
private Set<PositionType> allowed = new HashSet<PositionType>();
-
public RoutePipeAction(InteractiveVtkComposite panel, P3DRootNode root) {
+ this(panel,root, true);
+ }
+
+ public RoutePipeAction(InteractiveVtkComposite panel, P3DRootNode root, boolean allowBranches) {
super(panel);
this.root = root;
+ this.allowBranches = allowBranches;
setText("Route Pipe");
setImageDescriptor(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/Straight.png"));
nodeMap = root.getNodeMap();
allowed.add(PositionType.NEXT);
if (this.startComponent.getPrevious() == null && !(this.startComponent instanceof Nozzle))
allowed.add(PositionType.PREVIOUS);
- if (this.startComponent instanceof InlineComponent && !this.startComponent.getControlPoint().isFixed())
+ if (allowBranches && this.startComponent instanceof InlineComponent && !this.startComponent.getControlPoint().isFixed())
allowed.add(PositionType.SPLIT);
setEnabled(allowed.size() > 0);
}
panel.unlock();
}
- private List<PipelineComponent> added = new ArrayList<PipelineComponent>();
+ protected List<PipelineComponent> added = new ArrayList<PipelineComponent>();
@Override
public boolean keyPressed(KeyEvent e) {
boolean startRemovable = false;
- private void activate() throws Exception {
+ protected void activate() throws Exception {
state = ToolState.INITIALIZING;
added.clear();
- private void activateNextPrev(PipeControlPoint start) throws Exception{
+ protected void activateNextPrev(PipeControlPoint start) throws Exception{
if (!reversed && start.isDualInline())
start = start.getSubPoint().get(0);
else if (reversed && start.isDualSub())
updateCurrentPoint();
}
- private void setPreviousPosition(Vector3d v) {
+ protected void setPreviousPosition(Vector3d v) {
previousPosition = new Vector3d(v);
if (translateAxisGizmo.isAttached())
translateAxisGizmo.setPosition(previousPosition);
addPoint();
}
} else {
- throw new RuntimeException("kjf");
+ throw new RuntimeException("RoutePipeAction initlialization has been failed, no added components found");
// // user was selecting position of branch
// lastPoint.set(startPoint);
// controlPoints.add(new Point3d(startPoint));
INode hoverObject = null;
- private void updateRouting(double x, double y) {
-// if(input.keyPressed(KeyEvent.VK_ESCAPE)) {
-// controlPoints.clear();
-// end();
-// return;
-// }
-// if (input.keyPressed(KeyEvent.VK_C)) {
-// useCamera = !useCamera;
-// cameraAction.setChecked(useCamera);
-// }
+ protected void updateRouting(double x, double y) {
if (useDefault) {
//panel.getDefaultAction().update();
return;
panel.refresh();
}
- private boolean updateCurrentPoint(Vector3d o, Vector3d d) {
+ protected boolean updateCurrentPoint(Vector3d o, Vector3d d) {
Vector3d point = new Vector3d(this.previousPosition);
return null;
}
- private void updateRoute(Vector3d o, Vector3d d) {
+ protected void updateRoute(Vector3d o, Vector3d d) {
detector.clearConstraintHighlights();
Point3d previousPipePoint = new Point3d(previousPosition);
String s = "";
}
private PositionType endingToStraight(INode straightNode, double mu[], Vector3d o, Vector3d d) {
+ if (!allowBranches) {
+ updateCurrentPoint();
+ return null;
+ }
InlineComponent s = (InlineComponent)straightNode;
String info = "";
Point3d sStart = new Point3d();
}
private PositionType endingLockToStraight(INode straightNode, double mu[]) {
+ if (!allowBranches) {
+ updateCurrentPoint();
+ return null;
+ }
InlineComponent s = (InlineComponent)straightNode;
Point3d sStart = new Point3d();
Point3d sEnd = new Point3d();
return null;
}
- private void addPoint() throws Exception {
+ protected void addPoint() throws Exception {
InlineComponent previous = (InlineComponent)getLast();
PipeControlPoint previousCP = previous.getControlPoint();
TurnComponent turn = ComponentUtils.createTurn(root);
/**
* Updates tool graphics for current point
*/
- private void updateCurrentPoint() {
+ protected void updateCurrentPoint() {
InlineComponent straight = (InlineComponent)added.get(added.size()-1);
// TODO: the inline length is from previous update step.
double l;
}
- private void endPiping() throws Exception {
+ protected void endPiping() throws Exception {
state = ToolState.NOT_ACTIVE;
if (endTo != null) {