- if (list.size() <= 1)
- return; // nothing to do.
-
- for (int i = 0 ; i < list.size(); i++) {
- boolean first = i == 0;
- boolean last = i == list.size() - 1;
- PipeControlPoint current = list.get(i);
- PipeControlPoint currentSub = null;
- if (current.isDualInline())
- currentSub = current.getSubPoint().get(0);
- if (first) {
- PipeControlPoint next = list.get(i+1);
- if (next.isDualInline())
- next = next.getSubPoint().get(0);
- if (current.getNext() == next)
- current.setNext(null);
- current.setPrevious(next);
- if (currentSub != null) {
- if (currentSub.getNext() == next)
- currentSub.setNext(null);
- currentSub.setPrevious(next);
- }
- } else if (last) {
- PipeControlPoint prev = list.get(i-1);
-
- if (current.getPrevious() == prev)
- current.setPrevious(null);
- current.setNext(prev);
-
- if (currentSub != null) {
- if (currentSub.getPrevious() == prev)
- currentSub.setPrevious(null);
- currentSub.setNext(prev);
- }
- } else {
- PipeControlPoint prev = list.get(i-1);
- PipeControlPoint next = list.get(i+1);
- if (next.isDualInline())
- next = next.getSubPoint().get(0);
-
-
- current.setPrevious(next);
- current.setNext(prev);
-
- if (currentSub != null) {
- currentSub.setPrevious(next);
- currentSub.setNext(prev);
- }
-
- }
- if (current.isTurn() && current.isFixed()) {
- current.setReversed(!current._getReversed());
- }
- if (current.isInline() && current.isReverse()) {
- current.setReversed(!current._getReversed());
- }
- }
- }
-
- public static void merge(PipeRun run1, PipeRun r2) {
- Map<PipeControlPoint, Vector3d> positions = new HashMap<PipeControlPoint, Vector3d>();
- Map<PipeControlPoint, Quat4d> orientations = new HashMap<PipeControlPoint, Quat4d>();
- for (PipeControlPoint pcp : r2.getControlPoints()) {
- positions.put(pcp, pcp.getWorldPosition());
- orientations.put(pcp, pcp.getWorldOrientation());
- }
- for (PipeControlPoint pcp : r2.getControlPoints()) {
- r2.deattachChild(pcp);
- run1.addChild(pcp);
- PipelineComponent component = pcp.getPipelineComponent();
- if (component != null) {
- if (!(component instanceof Nozzle)) {
- component.deattach();
- run1.addChild(component);
- } else {
- Nozzle n = (Nozzle)component;
- n.setPipeRun(run1);
+ if (list.size() <= 1)
+ return; // nothing to do.
+
+ for (int i = 0 ; i < list.size(); i++) {
+ boolean first = i == 0;
+ boolean last = i == list.size() - 1;
+ PipeControlPoint current = list.get(i);
+ PipeControlPoint currentSub = null;
+ if (current.isDualInline())
+ currentSub = current.getDualSub();
+ if (first) {
+ PipeControlPoint next = list.get(i+1);
+ if (next.isDualInline())
+ next = next.getDualSub();
+ if (current.getNext() == next)
+ current.setNext(null);
+ current.setPrevious(next);
+ if (currentSub != null) {
+ if (currentSub.getNext() == next)
+ currentSub.setNext(null);
+ currentSub.setPrevious(next);
+ }
+ } else if (last) {
+ PipeControlPoint prev = list.get(i-1);
+
+ if (current.getPrevious() == prev)
+ current.setPrevious(null);
+ current.setNext(prev);
+
+ if (currentSub != null) {
+ if (currentSub.getPrevious() == prev)
+ currentSub.setPrevious(null);
+ currentSub.setNext(prev);
+ }
+ } else {
+ PipeControlPoint prev = list.get(i-1);
+ PipeControlPoint next = list.get(i+1);
+ if (next.isDualInline())
+ next = next.getDualSub();
+
+
+ current.setPrevious(next);
+ current.setNext(prev);
+
+ if (currentSub != null) {
+ currentSub.setPrevious(next);
+ currentSub.setNext(prev);