]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.network.ui/src/org/simantics/district/network/ui/DNEdgeBuilder.java
Allow starting/ending of manual network creation to vertices only
[simantics/district.git] / org.simantics.district.network.ui / src / org / simantics / district / network / ui / DNEdgeBuilder.java
index e47e9a8743f8f66557cbbcf8a228fe846621a168..92a6187b59c7975fb70d4789c0e14eb88bcc686a 100644 (file)
@@ -45,7 +45,7 @@ public class DNEdgeBuilder {
         glm = context.get(GraphSynchronizationHints.GRAPH_LAYER_MANAGER);
     }
 
-    public static Optional<Resource> create(WriteGraph graph, Resource diagramResource, double[] start, double startElevation, double[] end, double endElevation, double padding) throws DatabaseException {
+    public static Optional<Resource> create(WriteGraph graph, Resource diagramResource, double[] start, double startElevation, double[] end, double endElevation, double[] detailedGeometryCoords, double padding) throws DatabaseException {
         Collection<Resource> vertices = graph.syncRequest(new ObjectsWithType(diagramResource, Layer0.getInstance(graph).ConsistsOf, DistrictNetworkResource.getInstance(graph).Vertex));
         double halfPadding = padding / 2;
 
@@ -59,11 +59,10 @@ public class DNEdgeBuilder {
             Envelope e = new Envelope(x1, x2, y1, y2);
             vv.insert(e, new ResourceVertex(vertex, coords, false));
         }
-        return create(graph, vv, diagramResource, null, start, startElevation, end, endElevation, padding, false);
+        return create(graph, vv, diagramResource, null, start, startElevation, end, endElevation, detailedGeometryCoords, padding, false);
     }
     
-    public static Optional<Resource> create(WriteGraph graph, Quadtree vertices, Resource diagramResource, Resource mapping, double[] start, double startElevation, double[] end, double endElevation, double padding, boolean writeElevationToEdgeFromPoints) throws DatabaseException {
-        
+    public static Optional<Resource> create(WriteGraph graph, Quadtree vertices, Resource diagramResource, Resource mapping, double[] start, double startElevation, double[] end, double endElevation, double[] detailedGeometryCoords, double padding, boolean writeElevationToEdgeFromPoints) throws DatabaseException {
         DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph);
 
      // 2. Add vertices
@@ -75,7 +74,7 @@ public class DNEdgeBuilder {
         }
         
         // 1. Get diagram edge to construct
-        Resource edge = getOrCreateEdge(graph, diagramResource, mapping);
+        Resource edge = getOrCreateEdge(graph, diagramResource, mapping, detailedGeometryCoords);
         
         if (writeElevationToEdgeFromPoints) {
             graph.claimLiteral(edge, DN.Edge_HasElevation, calculateElevationFromVertices(graph, startVertex, endVertex), Bindings.DOUBLE);
@@ -107,9 +106,8 @@ public class DNEdgeBuilder {
         return 0;
     }
 
-    public void create(WriteGraph graph,  double[] start, double startElevation, double[] end, double endElevation, double padding) throws DatabaseException {
-        
-        Optional<Resource> edge = create(graph, diagramResource, start, startElevation, end, endElevation, padding);
+    public void create(WriteGraph graph,  double[] start, double startElevation, double[] end, double endElevation, double[] detailedGeometryCoords, double padding) throws DatabaseException {
+        Optional<Resource> edge = create(graph, diagramResource, start, startElevation, end, endElevation, detailedGeometryCoords, padding);
         // 7. Put the element on all the currently active layers if possible.
         if (glm != null) {
             putOnActiveLayer(graph, edge.get());
@@ -155,8 +153,8 @@ public class DNEdgeBuilder {
         return vertex;
     }
 
-    private static Resource getOrCreateEdge(WriteGraph graph, Resource diagramResource, Resource mapping) throws DatabaseException {
-        return DistrictNetworkUtil.createEdge(graph, diagramResource, mapping);
+    private static Resource getOrCreateEdge(WriteGraph graph, Resource diagramResource, Resource mapping, double[] detailedGeometryCoords) throws DatabaseException {
+        return DistrictNetworkUtil.createEdge(graph, diagramResource, mapping, detailedGeometryCoords);
     }
 
     public static class ResourceVertex {