Files
anatomia/data-pipeline/seed/build-manifest.mjs
T

41 lines
1.8 KiB
JavaScript

// Gera manifest-tegumentar.json: o Z-Anatomy-Sample não inclui camadas de
// pele (epiderme/derme/hipoderme), então para o sistema tegumentar seguimos
// usando geometria esquemática simples (ver data-pipeline/README rodapé).
// Todos os outros sistemas vêm de malhas reais — veja scripts/extract-manifest.mjs.
import { writeFileSync } from "node:fs";
import { fileURLToPath } from "node:url";
import path from "node:path";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const structures = [];
function add(system, slug, namePt, nameEn, region, shape, position, opts = {}) {
structures.push({
system,
slug,
namePt,
nameEn,
synonyms: opts.synonyms ?? [],
description: opts.description ?? "",
regionPath: region,
modelFile: `${system}.glb`,
meshName: slug,
shape,
position,
rotation: opts.rotation ?? [0, 0, 0],
});
}
const TX = ["Sistema Tegumentar"];
add("tegumentar", "epiderme", "Epiderme", "Epidermis", [...TX, "Membro Superior", "Antebraço"], { type: "box", w: 0.09, h: 0.2, d: 0.005 }, [0.24, 0.85, 0.035], { description: "Camada mais externa da pele, avascular." });
add("tegumentar", "derme", "Derme", "Dermis", [...TX, "Membro Superior", "Antebraço"], { type: "box", w: 0.09, h: 0.2, d: 0.01 }, [0.24, 0.85, 0.028], { description: "Camada intermediária, rica em vasos, nervos e anexos cutâneos." });
add("tegumentar", "hipoderme", "Hipoderme (Tecido Subcutâneo)", "Hypodermis (Subcutaneous Tissue)", [...TX, "Membro Superior", "Antebraço"], { type: "box", w: 0.09, h: 0.2, d: 0.015 }, [0.24, 0.85, 0.018], { description: "Camada mais profunda, rica em tecido adiposo." });
writeFileSync(
path.resolve(__dirname, "manifest-tegumentar.json"),
JSON.stringify({ structures }, null, 2),
);
console.log(`manifest-tegumentar.json gerado com ${structures.length} estruturas.`);