musculo externo abdome
This commit is contained in:
1 parent
bc23a068dd
commit
06ace7505c
6 files changed
+213
-36
No files matched your search
@@ -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;
|
||||
}
|
||||
Reference in new issue
Block a user