X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fscenegraph%2FPipelineComponent.java;h=6ddd7a09fc9ba3d68c83fd8bb6c6534d84485619;hb=refs%2Fchanges%2F28%2F3328%2F1;hp=36c6dde1b77e0667b50b1f7a6be4cb7f4f395c6f;hpb=9fcc0bba531cd91842769f293b155c99cc5c5937;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java index 36c6dde1..6ddd7a09 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/scenegraph/PipelineComponent.java @@ -14,7 +14,7 @@ import org.simantics.objmap.graph.annotations.RelatedGetObj; import org.simantics.objmap.graph.annotations.RelatedSetObj; import org.simantics.plant3d.ontology.Plant3D; import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint; -import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint.Type; +import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint.PointType; import org.simantics.plant3d.scenegraph.controlpoint.PipingRules; /** @@ -31,6 +31,10 @@ public abstract class PipelineComponent extends GeometryNode { private PipelineComponent next; private PipelineComponent previous; + public PipeRun getPipeRun() { + return pipeRun; + } + /** * Sets the pipe run. * @@ -88,8 +92,8 @@ public abstract class PipelineComponent extends GeometryNode { public void setNext(PipelineComponent comp) { if (next == comp) return; - if (comp == null) - this.next._removeRef(this); + if (this.next != null) + this.next._removeRef(this); this.next = comp; this.syncnext = false; syncNext(); @@ -109,8 +113,8 @@ public abstract class PipelineComponent extends GeometryNode { public void setPrevious(PipelineComponent comp) { if (previous == comp) return; - if (comp == null) - this.previous._removeRef(this); + if (this.previous != null) + this.previous._removeRef(this); this.previous = comp; this.syncprev = false; syncPrevious(); @@ -130,8 +134,8 @@ public abstract class PipelineComponent extends GeometryNode { public void setBranch0(PipelineComponent comp) { if (branch0 == comp) return; - if (comp == null) - this.branch0._removeRef(this); + if (this.branch0 != null) + this.branch0._removeRef(this); this.branch0 = comp; this.syncbr0 = false; syncBranch0(); @@ -142,25 +146,25 @@ public abstract class PipelineComponent extends GeometryNode { } @GetPropertyValue(name="Previous",tabId="Debug",value=Plant3D.URIs.HasPrevious) - public String getPreviousDebug() { - if (previous == null) - return null; - return previous.getName(); - } - - @GetPropertyValue(name="Next",tabId="Debug",value=Plant3D.URIs.HasNext) - public String getNextDebug() { - if (next == null) - return null; - return next.getName(); - } - + public String getPreviousDebug() { + if (previous == null) + return null; + return previous.getName(); + } + + @GetPropertyValue(name="Next",tabId="Debug",value=Plant3D.URIs.HasNext) + public String getNextDebug() { + if (next == null) + return null; + return next.getName(); + } + @GetPropertyValue(name="Branch0",tabId="Debug",value=Plant3D.URIs.HasBranch0) - public String getBR0Debug() { - if (branch0 == null) - return null; - return branch0.getName(); - } + public String getBR0Debug() { + if (branch0 == null) + return null; + return branch0.getName(); + } @@ -173,7 +177,7 @@ public abstract class PipelineComponent extends GeometryNode { return null; branchPoint = new PipeControlPoint(this,branch0.getPipeRun()); branchPoint.setFixed(false); - branchPoint.setType(Type.END); + branchPoint.setType(PointType.END); branchPoint.parent = getControlPoint(); getControlPoint().children.add(branchPoint); branchPoint.setWorldOrientation(getControlPoint().getWorldOrientation()); @@ -215,33 +219,33 @@ public abstract class PipelineComponent extends GeometryNode { // When link to a component is removed, also link to the other direction must be removed at the same time, or // Control point structure is left into illegal state. private void _removeRef(PipelineComponent comp) { - if (next == comp) { - next = null; - syncnext = false; - syncNext(); - } else if (previous == comp) { - previous = null; - syncprev = false; - syncPrevious(); - } else if (branch0 == comp) { - branch0 = null; - syncbr0 = false; - syncBranch0(); - } + if (next == comp) { + next = null; + syncnext = false; + syncNext(); + } else if (previous == comp) { + previous = null; + syncprev = false; + syncPrevious(); + } else if (branch0 == comp) { + branch0 = null; + syncbr0 = false; + syncBranch0(); + } } boolean syncnext = false; - private void syncNext() { - if (syncnext) - return; - syncnext = _syncNext(); - } + private void syncNext() { + if (syncnext) + return; + syncnext = _syncNext(); + } private boolean _syncNext() { - PipeControlPoint pcp = getControlPoint(); + PipeControlPoint pcp = getControlPoint(); if (pcp != null) { - + if (next != null ) { if (next.getControlPoint() != null) { @@ -253,15 +257,15 @@ public abstract class PipelineComponent extends GeometryNode { } else if (br0) { return _connectNext(pcp, next.getBranchPoint()); } else { - return false; + return false; } } else { return false; } } else if (pcp.getNext() != null) { - pcp.setNext(null); - return true; + pcp.setNext(null); + return true; } } else { return false; @@ -270,14 +274,14 @@ public abstract class PipelineComponent extends GeometryNode { } boolean syncprev = false; - private void syncPrevious() { - if (syncprev) - return; - syncprev = _syncPrevious(); - } + private void syncPrevious() { + if (syncprev) + return; + syncprev = _syncPrevious(); + } private boolean _syncPrevious() { - PipeControlPoint pcp = getControlPoint(); + PipeControlPoint pcp = getControlPoint(); if (pcp != null) { if (previous != null ) { if (previous.getControlPoint() != null) { @@ -290,15 +294,15 @@ public abstract class PipelineComponent extends GeometryNode { } else if (br0) { return _connectPrev(pcp, previous.getBranchPoint()); } else { - return false; + return false; } } else { return false; } } else if (pcp.getPrevious() != null) { - pcp.setPrevious(null); - return true; + pcp.setPrevious(null); + return true; } } else { return false; @@ -308,9 +312,9 @@ public abstract class PipelineComponent extends GeometryNode { boolean syncbr0 = false; private void syncBranch0() { - if (syncbr0) - return; - syncbr0 = _syncBranch0(); + if (syncbr0) + return; + syncbr0 = _syncBranch0(); } private boolean _syncBranch0() { @@ -322,6 +326,8 @@ public abstract class PipelineComponent extends GeometryNode { if (branch0 != null) { if (branch0.getControlPoint() != null) { PipeControlPoint branchPoint = getBranchPoint(); + if (branchPoint == null) + return false; PipeControlPoint pcp = branch0.getControlPoint(); // TODO, relying that the other direction is connected. boolean next = branch0.getPrevious() == this; // this --> branch0 @@ -331,7 +337,7 @@ public abstract class PipelineComponent extends GeometryNode { } else if (prev){ _connectPrev(branchPoint, pcp); } else { - return false; + return false; } } else { @@ -368,10 +374,6 @@ public abstract class PipelineComponent extends GeometryNode { return Collections.EMPTY_MAP; } - public PipeRun getPipeRun() { - return pipeRun; - } - public abstract String getType(); public abstract PipeControlPoint getControlPoint(); @@ -456,19 +458,13 @@ public abstract class PipelineComponent extends GeometryNode { double a = pcp.getTurnAngle(); return a*r; } - default: - return null; + default: + return null; } } - public void getControlPointEnds(Tuple3d p1, Tuple3d p2) { + public void getEnds(Tuple3d p1, Tuple3d p2) { getControlPoint().getControlPointEnds(p1, p2); } - public Vector3d getNormal() { - Vector3d v = new Vector3d(); - MathTools.rotate(getWorldOrientation(), MathTools.Z_AXIS, v); - return v; - } - }