kind: Solution
version: v0
router:
  kind: Router
  routes:
    - frame: main-frame
frames:
  main-frame:
    kind: Frame
    layout:
      kind: GridLayout
      widths: [1fr, 600px, 600px, 1fr]
      heights:
        - 10px
        - 400px
        - 400px
        - 20px
      areas:
        - ["", "", "", ""]
        - ["", my-viewer, my-map, ""]
        - ["", my-viewer, my-controls, ""]
        - ["", "", "", ""]
    contents:
      my-model:
        kind: Model
        modelFile: map-example.gh
        subscribe:
          - kind: ControlPanel
            frame: main-frame
            source: my-controls
            action: update
          - kind: Map
            frame: main-frame
            source: my-map
            setInputFromMarkers: location
      my-map:
        kind: Map
        bounds:
          bottomLeft:
            latitude: 35.686200
            longitude: -11.350331
          topRight:
            latitude: 55.187442
            longitude: 27.035105
        placeMarker:
          title: Specify your location.
          text: Click 'ok' to specify your location.
          ok: OK
          cancel: Cancel
      my-viewer:
        kind: Viewer
        settings:
          kind: BasicSettings
          size: 300
        viewerControls:
          topLeft:
            kind: ButtonBar
            orientation: vertical
            buttons:
              - kind: ZoomToFit
        materials:
          mat1:
            kind: StandardMaterial
            color: [255, 125, 125]
          mat2:
            kind: StandardMaterial
            color: [0, 0, 255]
        subscribe:
          - kind: Model
            frame: main-frame
            source: my-model
            assignMaterials:
              sun: mat1
              bldg: mat2
      my-controls:
        kind: ControlPanel
        controls:
          title:
            kind: Text
            type: h1
            text: Solar Settings
          north:
            kind: Slider
            value: 0
            min: -180
            max: 180
            precision: 2
            label: North
          resolution:
            kind: Slider
            value: 8
            min: 4
            max: 16
            precision: 0
            label: Resolution
          cosine-weighting:
            kind: Dropdown
            label: Cosine Weighting
            value: 0
            choices:
              - label: No Cosine Weighting
                value: 0
              - label: Apply Cosine Weighting
                value: 1
