// Referência visual 2D pra músculos cuja malha 3D real (Z-Anatomy) não tem // as subdivisões que os livros de anatomia mostram: as 4 camadas da parede // abdominal (reto, oblíquo externo, oblíquo interno, transverso — cada uma // aparece como uma superfície única e lisa no modelo 3D, sem a // sobreposição em camadas de verdade) e a interdigitação entre serrátil // anterior e oblíquo externo nas costelas. Confirmamos (comparando com a // exportação bruta do Z-Anatomy E com o app oficial completo, não só a // amostra do GitHub) que essa é uma limitação real do dado de origem, não // um bug do pipeline — ver extract-manifest.mjs. // // Em vez de usar uma imagem de terceiros (a primeira tentativa, a prancha // de Gray's Anatomy, saiu com o texto em latim pequeno demais pra ler), // essas são ilustrações esquemáticas PRÓPRIAS em SVG — texto vetorial de // verdade (nunca sai ilegível ou embaralhado, porque não é imagem // rasterizada), em português, sem depender de licença de terceiros. const ABDOMINAL_LAYERS = { image: "/muscular/parede-abdominal-camadas.svg", caption: "No modelo 3D cada um desses músculos aparece como uma superfície única e lisa (o Z-Anatomy não modela a sobreposição real). Este esquema mostra as 4 camadas da parede abdominal, da mais superficial (oblíquo externo) à mais profunda (transverso).", }; const SERRATUS_OBLIQUE_DIGITATIONS = { image: "/muscular/serratil-obliquo-digitacoes.svg", caption: "No modelo 3D o serrátil anterior e o oblíquo externo aparecem sem esse encaixe (o Z-Anatomy não modela a interdigitação). Este esquema mostra como as digitações dos dois se entrelaçam nas costelas.", }; // Substring do slug (sem o prefixo de sistema nem o sufixo de lado) → // referência aplicável. const MUSCLE_REFERENCE_MAP: Record = { "rectus-abdominis-muscle": ABDOMINAL_LAYERS, "external-abdominal-oblique-muscle": ABDOMINAL_LAYERS, "internal-abdominal-oblique-muscle": ABDOMINAL_LAYERS, "transversus-abdominis-muscle": ABDOMINAL_LAYERS, "serratus-anterior-muscle": SERRATUS_OBLIQUE_DIGITATIONS, }; export function muscleReferenceImageFor(slug: string) { const key = Object.keys(MUSCLE_REFERENCE_MAP).find((k) => slug.includes(k)); return key ? MUSCLE_REFERENCE_MAP[key] : null; }