musculo externo abdome

This commit is contained in:
Rodrigo Bertoldo de Sousa Martins committed 2026-09-13 19:38:16 -03:00
1 parent bc23a068dd
commit 06ace7505c
6 files changed
+213 -36

No files matched your search

+35 -20
View File
@@ -1,26 +1,41 @@
// Referência visual 2D pra músculos cuja malha 3D real (Z-Anatomy) não tem
// as subdivisões que a ilustração clássica de anatomia mostra — reto do
// abdome (intersecções tendíneas, o "tanquinho"), serrátil anterior e
// oblíquo externo do abdome (digitações que se entrelaçam 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 tentar esculpir essas divisões em cima de uma malha que não as
// tem, mostramos a prancha clássica de Gray's Anatomy (Henry Vandyke
// Carter, 1918 — domínio público, sem restrição de uso) que já ilustra
// exatamente essas três estruturas e como se relacionam.
export const MUSCLE_REFERENCE_IMAGE = {
image: "/muscular/parede-abdominal-gray392.png",
credit:
"Henry Vandyke Carter, em Henry Gray, Anatomy of the Human Body (1918) — domínio público (via Wikimedia Commons).",
// 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 esses três músculos aparecem como superfícies únicas e lisas (o Z-Anatomy não modela essas subdivisões). Esta ilustração clássica mostra onde fica cada um e como se relacionam de verdade.",
"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).",
};
// Substrings do slug (sem o prefixo de sistema nem o sufixo de lado) que
// identificam um músculo coberto por essa referência.
const MUSCLE_REFERENCE_KEYS = ["rectus-abdominis-muscle", "serratus-anterior-muscle", "external-abdominal-oblique-muscle"];
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.",
};
export function hasMuscleReferenceImage(slug: string): boolean {
return MUSCLE_REFERENCE_KEYS.some((key) => slug.includes(key));
// 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;
}