Добавить имитаторы МЛЭ и ГБО с 3D-сценой, съёмкой рельефа и пресетами.

Вкладки позволяют готовить рельеф, двигать АНПА, накапливать поверхность по лучам и сохранять скриншоты окон; ГБО использует бортовые секторы 12–75° и чёрные зоны вне обзора.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-21 15:43:08 +03:00
co-authored by Cursor
parent 8b248e1d54
commit 6cfc16e53c
18 changed files with 5512 additions and 12 deletions
+64
View File
@@ -387,6 +387,70 @@ export const api = {
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ stem, outputDir, maxPoints }),
}),
datasetRuns: (outputDir = "sonar_dataset") =>
request(`/api/dataset/runs?outputDir=${encodeURIComponent(outputDir || "sonar_dataset")}`),
datasetLoad: ({ outputDir } = {}) =>
request("/api/dataset/load", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ outputDir }),
}),
mlePrepare: ({
seed = 42,
sizeX = 40,
sizeY = 60,
resX = 80,
resY = 120,
outputDir = "mle_runs",
settings = null,
} = {}) =>
request("/api/mle/prepare", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ seed, sizeX, sizeY, resX, resY, outputDir, settings }),
}),
mleSaveSurface: ({ outputDir, vertices, faces, filename = "seafloor.obj" } = {}) =>
request("/api/mle/save-surface", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ outputDir, vertices, faces, filename }),
}),
mleLoadSettings: ({ outputDir = "mle_runs" } = {}) =>
request(`/api/mle/settings?outputDir=${encodeURIComponent(outputDir || "mle_runs")}`),
mleSaveSettings: ({ outputDir = "mle_runs", settings = {} } = {}) =>
request("/api/mle/settings", {
method: "PUT",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ outputDir, settings }),
}),
gboPrepare: ({
seed = 42,
sizeX = 40,
sizeY = 60,
resX = 80,
resY = 120,
outputDir = "gbo_runs",
settings = null,
} = {}) =>
request("/api/gbo/prepare", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ seed, sizeX, sizeY, resX, resY, outputDir, settings }),
}),
gboSaveSurface: ({ outputDir, vertices, faces, filename = "seafloor.obj" } = {}) =>
request("/api/gbo/save-surface", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ outputDir, vertices, faces, filename }),
}),
gboLoadSettings: ({ outputDir = "gbo_runs" } = {}) =>
request(`/api/gbo/settings?outputDir=${encodeURIComponent(outputDir || "gbo_runs")}`),
gboSaveSettings: ({ outputDir = "gbo_runs", settings = {} } = {}) =>
request("/api/gbo/settings", {
method: "PUT",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ outputDir, settings }),
}),
};
export { exportFilename, parseObjPoints, parseXyzPoints, parsePlyPoints, parseCloudPoints };