]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.plant3d/src/org/simantics/plant3d/utils/ComponentUtils.java
Removing components left orphan piperuns in the plant
[simantics/3d.git] / org.simantics.plant3d / src / org / simantics / plant3d / utils / ComponentUtils.java
index 4e3571444ae3bf759436fe01054330cf586b197b..14dce68dc351c71c913141c27f3aeb2239280eb7 100644 (file)
@@ -344,7 +344,7 @@ public class ComponentUtils {
                        switch (position) {
                        case NEXT: 
                                if (toPcp.isDualInline()) {
-                                       toPcp = toPcp.getSubPoint().get(0);
+                                       toPcp = toPcp.getDualSub();
                                        pipeRun = toPcp.getPipeRun();
                                }
                                
@@ -443,7 +443,7 @@ public class ComponentUtils {
                        switch (position) {
                        case NEXT: 
                                if (toPcp.isDualInline())
-                                       toPcp = toPcp.getSubPoint().get(0);
+                                       toPcp = toPcp.getDualSub();
                                newPcp.insert(toPcp, Direction.NEXT);
                                newPcp.setWorldPosition(pos);
                                break;
@@ -538,7 +538,7 @@ public class ComponentUtils {
                                requiresReverse = true;
                        }
                        PipeRun other = endCP.getPipeRun();
-                       boolean mergeRuns = other == null ? true : pipeRun.equalSpecs(other);
+                       boolean mergeRuns = other == null ? true : pipeRun.canMerge(other);
                        
                        if (requiresReverse) {
                                // Pipe line must be traversible with next/previous relations without direction change.
@@ -546,10 +546,11 @@ public class ComponentUtils {
                                PipingRules.reverse(other);
                                
                        }
+
                        if (mergeRuns) {
                                // Runs have compatible specs and must be merged
                                if (other != null && pipeRun != other)
-                                       PipingRules.merge(pipeRun, other);
+                                       pipeRun.merge(other);
                                else if (other == null) {
                                        if (!(endTo instanceof Nozzle)) {
                                                pipeRun.addChild(endTo);