aboutsummaryrefslogtreecommitdiff
path: root/Map/MapRenderComponents/MapVertices.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Map/MapRenderComponents/MapVertices.swift')
-rw-r--r--Map/MapRenderComponents/MapVertices.swift90
1 files changed, 0 insertions, 90 deletions
diff --git a/Map/MapRenderComponents/MapVertices.swift b/Map/MapRenderComponents/MapVertices.swift
deleted file mode 100644
index 24d49b8..0000000
--- a/Map/MapRenderComponents/MapVertices.swift
+++ /dev/null
@@ -1,90 +0,0 @@
-import SwiftUI
-
-struct MapVertices: View {
-
- @Environment(\.colorScheme) var colorScheme
-
- let mapSize: CGSize
- let vertexSize: CGSize
- let vertices: [Vertex]
- let padding = CGFloat(4.0)
-
- var color: MapColor {
- MapColor.colorForScheme(colorScheme)
- }
-
- var body: some View {
- ForEach(vertices, id: \.id) { vertex in
- getVertexShape(vertex).fill(color.foreground)
- Text(vertex.label).foregroundColor(color.secondary).offset(
- CGSize(
- width: w(vertex.position.x) + vertexSize.width + padding,
- height: h(vertex.position.y)))
- }
- }
-
- func h(_ dimension: CGFloat) -> CGFloat {
- max(0.0, min(mapSize.height, dimension * mapSize.height / 100.0))
- }
-
- func w(_ dimension: CGFloat) -> CGFloat {
- max(0.0, min(mapSize.width, dimension * mapSize.width / 100.0))
- }
-
- func getVertexShape(_ vertex: Vertex) -> Path {
- switch vertex.shape {
- case .circle:
- return Path { path in
- path.addEllipse(
- in: CGRect(
- origin: CGPoint(x: w(vertex.position.x), y: h(vertex.position.y)), size: vertexSize
- ))
- }
- case .square:
- return Path { path in
- path.addRect(
- CGRect(
- x: w(vertex.position.x), y: h(vertex.position.y), width: vertexSize.width,
- height: vertexSize.height
- ))
- }
- case .triangle:
- return Path { path in
- path.move(to: CGPoint(x: w(vertex.position.x), y: h(vertex.position.y) + vertexSize.height))
- path.addLine(
- to: CGPoint(
- x: w(vertex.position.x) + vertexSize.width, y: h(vertex.position.y) + vertexSize.height)
- )
- path.addLine(
- to: CGPoint(x: w(vertex.position.x) + vertexSize.width / 2.0, y: h(vertex.position.y)))
- path.addLine(
- to: CGPoint(x: w(vertex.position.x), y: h(vertex.position.y) + vertexSize.height))
- path.closeSubpath()
- }
- case .x:
- return Path { path in
- path.move(to: CGPoint(x: w(vertex.position.x), y: h(vertex.position.y)))
- path.addLine(
- to: CGPoint(
- x: w(vertex.position.x) + vertexSize.width, y: h(vertex.position.y) + vertexSize.height)
- )
- path.closeSubpath()
- path.move(to: CGPoint(x: w(vertex.position.x) + vertexSize.width, y: h(vertex.position.y)))
- path.addLine(
- to: CGPoint(x: w(vertex.position.x), y: h(vertex.position.y) + vertexSize.height))
- path.closeSubpath()
- }.strokedPath(StrokeStyle(lineWidth: 5.0, lineCap: .butt))
- }
- }
-}
-
-struct MapVertices_Previews: PreviewProvider {
- static var previews: some View {
- MapVertices(
- mapSize: CGSize(width: 400.0, height: 400.0), vertexSize: CGSize(width: 25.0, height: 25.0),
- vertices: [
- Vertex(id: 0, label: "A", position: CGPoint(x: 50.0, y: 50.0)),
- Vertex(id: 0, label: "A", position: CGPoint(x: 10.0, y: 20.0)),
- ])
- }
-}