// 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.`);