musculo
This commit is contained in:
1 parent
038ad91bbe
commit
bc23a068dd
5 files changed
+45
-6
No files matched your search
@@ -1,5 +1,6 @@
|
||||
import { useAtlasStore } from "../store/useAtlasStore.js";
|
||||
import type { Structure } from "../lib/api.js";
|
||||
import { MUSCLE_REFERENCE_IMAGE, hasMuscleReferenceImage } from "../data/muscleReferenceImages.js";
|
||||
|
||||
export function StructureInfoPanel({
|
||||
bySlug,
|
||||
@@ -59,6 +60,18 @@ export function StructureInfoPanel({
|
||||
<p className="text-sm text-slate-300 leading-relaxed">{structure.description}</p>
|
||||
)}
|
||||
|
||||
{hasMuscleReferenceImage(structure.slug) && (
|
||||
<div className="rounded-lg border border-white/10 bg-white p-2">
|
||||
<img
|
||||
src={MUSCLE_REFERENCE_IMAGE.image}
|
||||
alt="Ilustração clássica da parede abdominal mostrando reto do abdome, oblíquo externo e serrátil anterior"
|
||||
className="w-full h-auto rounded"
|
||||
/>
|
||||
<p className="text-xs text-slate-600 mt-2 leading-snug">{MUSCLE_REFERENCE_IMAGE.caption}</p>
|
||||
<p className="text-[11px] text-slate-500 mt-1">{MUSCLE_REFERENCE_IMAGE.credit}</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{structure.regionPath.length > 0 && (
|
||||
<p className="text-xs text-slate-500">{structure.regionPath.join(" › ")}</p>
|
||||
)}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
// 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).",
|
||||
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.",
|
||||
};
|
||||
|
||||
// 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"];
|
||||
|
||||
export function hasMuscleReferenceImage(slug: string): boolean {
|
||||
return MUSCLE_REFERENCE_KEYS.some((key) => slug.includes(key));
|
||||
}
|
||||
Reference in new issue
Block a user