]> git.r.bdr.sh - rbdr/map/blob - Map/Presentation/Base Components/MapRender/MapGroups.swift
84f7fb2debb36cd975f315e362be2ce22345aa70
[rbdr/map] / Map / Presentation / Base Components / MapRender / MapGroups.swift
1 import ConcaveHull
2 import SwiftUI
3
4 struct MapGroups: View {
5
6 let mapSize: CGSize
7 let vertexSize: CGSize
8 let groups: [[Vertex]]
9
10 var body: some View {
11 ForEach(Array(groups.enumerated()), id: \.element) { index, group in
12 MapGroup(mapSize: mapSize, vertexSize: vertexSize, group: group, color: color(index))
13 }
14 }
15
16 private func color(_ index: Int) -> Color {
17 return .map.groupColors[index % Color.map.groupColors.count]
18 }
19 }
20
21 #Preview {
22 MapGroups(
23 mapSize: CGSize(width: 400.0, height: 400.0), vertexSize: CGSize(width: 25.0, height: 25.0),
24 groups: [
25 [
26 Vertex(id: 0, label: "A Circle", position: CGPoint(x: 50.0, y: 50.0)),
27 Vertex(id: 1, label: "A Square", position: CGPoint(x: 10.0, y: 20.0), shape: .square),
28 Vertex(id: 2, label: "A triangle", position: CGPoint(x: 25, y: 32.0), shape: .triangle),
29 Vertex(id: 3, label: "An X", position: CGPoint(x: 70.0, y: 70.0), shape: .x),
30 ]
31 ])
32 }