diff --git a/src/document/scene-document-validation.ts b/src/document/scene-document-validation.ts index 41fa63d4..2b26d507 100644 --- a/src/document/scene-document-validation.ts +++ b/src/document/scene-document-validation.ts @@ -19,7 +19,7 @@ import { type TriggerVolumeEntity } from "../entities/entity-instances"; import { type InteractionLink } from "../interactions/interaction-links"; -import { BOX_FACE_IDS, hasPositiveBoxSize } from "./brushes"; +import { BOX_FACE_IDS, BOX_VERTEX_IDS, hasPositiveBoxSize } from "./brushes"; import type { SceneDocument } from "./scene-document"; import { isAdvancedRenderingShadowMapSize, @@ -1291,6 +1291,19 @@ export function validateSceneDocument(document: SceneDocument): SceneDocumentVal ); } + for (const vertexId of BOX_VERTEX_IDS) { + if (!isFiniteVec3(brush.geometry.vertices[vertexId])) { + diagnostics.push( + createDiagnostic( + "error", + "invalid-box-geometry-vertex", + "Box brush geometry vertices must remain finite on every axis.", + `${path}.geometry.vertices.${vertexId}` + ) + ); + } + } + for (const faceId of BOX_FACE_IDS) { const materialId = brush.faces[faceId].materialId;