Prototype

This commit is contained in:
2026-06-26 11:23:09 -05:00
commit 2a52e0546e
19 changed files with 1406 additions and 0 deletions
+106
View File
@@ -0,0 +1,106 @@
import { defineGroup, FlowerBed, Tree } from "../lib/yard-features.js";
import { east, ft, lngLat, offset } from "../lib/geometry.js";
import { topLeftLotCorner } from "./anchors.js";
export const juniperTreesGroup = defineGroup("group:juniper-trees", "Juniper Trees");
const flowerBeds = [
new FlowerBed("Herbs").trace([
[-100.89863446807426, 46.82677625460535],
[-100.89862628077022, 46.82677780036216],
[-100.89863677743469, 46.82681615158733],
[-100.89864678466313, 46.826814966528865],
]),
new FlowerBed("Garden").trace([
[-100.89865910125202, 46.82684024777001],
[-100.89865409763779, 46.82682773882406],
[-100.89853785983037, 46.82684209119338],
[-100.89854344078469, 46.82685618021274],
]),
new FlowerBed("Back day lily").trace([
[-100.89854344078469, 46.82685618021274],
[-100.89852458100802, 46.82685815530862],
[-100.89850764569832, 46.82680482769446],
[-100.89851239198609, 46.82679937725647],
[-100.89851803782018, 46.82680087749872],
[-100.89852554324152, 46.826804564348095],
]),
new FlowerBed("Coneflowers").trace([
[-100.89852458100802, 46.82685815530862],
[-100.89851482473702, 46.82685818966149],
[-100.89850049853712, 46.82681602228328],
[-100.89850764569832, 46.82680482769446],
]),
new FlowerBed("Pathway border").trace([
[-100.89881515684904, 46.82671629075389],
[-100.89881830278543, 46.82671252471132],
[-100.89882138193263, 46.82670673108083],
[-100.89881445385141, 46.8266828981853],
[-100.89877269291729, 46.82668908683872],
[-100.89877211557717, 46.8266923786754],
[-100.89876884398328, 46.82669501214458],
[-100.89876326302891, 46.82669764561363],
[-100.89875979898829, 46.82670304422476],
[-100.89875979898829, 46.826708574508785],
[-100.89876461015585, 46.826720556788906],
[-100.8988050654378, 46.82671481119343],
]),
];
const trees = [
new Tree("Japanese Empress Elm", {
species: "Japanese Empress Elm",
canopyDiameterMeters: 6,
heightMeters: 7,
}).add(lngLat(-100.89889018162828, 46.82675624026659)),
new Tree("Boulevard Linden", {
species: "Boulevard Linden",
canopyDiameterMeters: 3,
heightMeters: 6,
plantedDate: "2021-06-08",
}).add(lngLat(-100.8990003556445, 46.826776648309774)),
new Tree("Boulevard Linden 2", {
species: "Boulevard Linden",
canopyDiameterMeters: 3,
heightMeters: 6,
}).add(lngLat(-100.89898269567485, 46.826709328342595)),
new Tree("Evergreen", {
species: "Evergreen",
canopyDiameterMeters: 8,
heightMeters: 15,
}).add(lngLat(-100.89888268258135, 46.826680107011924)),
new Tree("Medora Juniper 1", {
species: "Medora Juniper",
canopyDiameterMeters: 1.5,
heightMeters: 2.5,
}).inGroup(juniperTreesGroup).add(lngLat(-100.89880933964611, 46.826705259550664)),
new Tree("Medora Juniper 2", {
species: "Medora Juniper",
canopyDiameterMeters: 1.5,
heightMeters: 2.5,
}).inGroup(juniperTreesGroup).add(lngLat(-100.89877004677517, 46.82670396593881)),
new Tree("Medora Juniper 3", {
species: "Medora Juniper",
canopyDiameterMeters: 1.5,
heightMeters: 2.5,
}).inGroup(juniperTreesGroup).add(lngLat(-100.898799106227, 46.82669830398086)),
new Tree("Medora Juniper 4", {
species: "Medora Juniper",
canopyDiameterMeters: 1.5,
heightMeters: 2.5,
}).inGroup(juniperTreesGroup).add(lngLat(-100.89878871410515, 46.82669251034885)),
new Tree("Medora Juniper 5", {
species: "Medora Juniper",
canopyDiameterMeters: 1.5,
heightMeters: 2.5,
}).inGroup(juniperTreesGroup).add(lngLat(-100.8987812086838, 46.82671120797719)),
new Tree("Offset Test Tree", {
species: "Test tree",
canopyDiameterMeters: 4,
heightMeters: 5,
note: "70 feet east of top-left lot corner using assumedNorth",
}).add(offset(topLeftLotCorner), east(ft(70))),
];
export const plantFeatures = [...flowerBeds, ...trees];
export const plantGroups = [juniperTreesGroup];