fix exame fisico
This commit is contained in:
1 parent
7e8963135b
commit
9a848416ef
4 files changed
+246
-66
No files matched your search
@@ -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 (
|
||||
|
||||
Reference in new issue
Block a user