fix exame fisico

This commit is contained in:
Rodrigo Bertoldo de Sousa Martins committed 2026-09-10 20:19:37 -03:00
1 parent 7e8963135b
commit 9a848416ef
4 files changed
+246 -66

No files matched your search

+14 -2
View File
@@ -176,6 +176,7 @@ function CameraController({ modelFiles }: { modelFiles: string[] }) {
export function Scene({
bySlug,
children,
alwaysLoadSystems,
}: {
bySlug: Map<string, Structure>;
// Ponto de extensão pra conteúdo 3D extra dentro do MESMO Canvas (e do
@@ -183,6 +184,13 @@ export function Scene({
// Físico pra desenhar os pontos de exame em cima do corpo real, sem
// duplicar toda a lógica de carregamento de malhas/câmera daqui.
children?: ReactNode;
// Sistemas cujo .glb deve carregar mesmo com a camada desligada na barra
// lateral (fica invisível — mesh.visible continua obedecendo
// visibleSystems — mas presente na cena). Usado pelo Exame Físico: os
// ossos de referência (esterno, bacia, crânio...) usados pra posicionar
// os pontos de exame precisam existir na cena mesmo se o usuário não
// marcou "Esquelético".
alwaysLoadSystems?: string[];
}) {
const visibleSystems = useAtlasStore((s) => s.visibleSystems);
const selectedStructureId = useAtlasStore((s) => s.selectedStructureId);
@@ -214,9 +222,13 @@ export function Scene({
const modelFiles = useMemo(
() =>
[...structuresByFile.entries()]
.filter(([, items]) => items.some((s) => visibleSystems.has(s.system.slug)))
.filter(([, items]) =>
items.some(
(s) => visibleSystems.has(s.system.slug) || alwaysLoadSystems?.includes(s.system.slug),
),
)
.map(([file]) => file),
[structuresByFile, visibleSystems],
[structuresByFile, visibleSystems, alwaysLoadSystems],
);
return (