42 lines
2.3 KiB
TypeScript
42 lines
2.3 KiB
TypeScript
// 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<string, typeof ABDOMINAL_LAYERS> = {
|
|
"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;
|
|
}
|