41 lines
1.8 KiB
JavaScript
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.`);
|