import { definePlugin, type PatternGenerator } from "@altnautica/plugin-sdk";
const concentricRings: PatternGenerator = {
id: "com.example.concentric-rings",
name: "Concentric rings",
description: "Inspection orbit at increasing radii.",
fields: [
{ id: "center", kind: "latlng", label: "Center" },
{ id: "minRadius", kind: "number", label: "Min radius (m)", default: 5 },
{ id: "maxRadius", kind: "number", label: "Max radius (m)", default: 30 },
{ id: "step", kind: "number", label: "Step (m)", default: 5 },
{ id: "altitude", kind: "number", label: "Altitude (m AGL)", default: 20 },
],
generate(input) {
const items = [];
for (let r = input.minRadius; r <= input.maxRadius; r += input.step) {
for (let theta = 0; theta < 360; theta += 30) {
items.push({
kind: "waypoint",
lat: offsetLat(input.center.lat, r, theta),
lng: offsetLng(input.center.lng, r, theta),
alt_agl_m: input.altitude,
});
}
}
return items;
},
};
definePlugin({
id: "com.example.inspection",
version: "0.1.0",
mount(ctx) {
ctx.mission.registerPattern(concentricRings);
return null;
},
});