dfg_3dviewer_js_library/viewer/manifesto/manifesto.js
2026-06-25 09:11:23 +02:00

41 lines
No EOL
996 B
JavaScript

export class AIM3DManifest {
constructor(manifest) {
if (typeof manifest === "string" && manifest.trim().startsWith("{")) {
this.manifestJson = JSON.parse(manifest);
this.manifestUrl = null;
} else if (typeof manifest === "object") {
this.manifestJson = manifest;
this.manifestUrl = null;
} else {
this.manifestUrl = manifest;
this.manifestJson = null;
}
}
async loadManifest() {
if (this.manifestUrl) {
const response = await fetch(this.manifestUrl);
this.manifestJson = await response.json();
}
this.manifest = this.manifestJson;
this.scenes = this.manifest?.items?.filter(
item => item.type === "Scene"
) || [];
}
annotationsFromScene(scene) {
const result = [];
for (const page of scene?.items || []) {
if (page.type !== "AnnotationPage") continue;
for (const annotation of page.items || []) {
result.push(annotation);
}
}
return result;
}
}