From cdfb401832be89aa6eb218a7fd0bb0a50b7ab5b2 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 6 Apr 2026 17:28:25 +0200 Subject: [PATCH] Add volume time and animated uniforms to ViewportHost --- src/viewport-three/viewport-host.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/viewport-three/viewport-host.ts b/src/viewport-three/viewport-host.ts index b158bea1..14d83c39 100644 --- a/src/viewport-three/viewport-host.ts +++ b/src/viewport-three/viewport-host.ts @@ -134,8 +134,9 @@ import { getBoxBrushFaceVertexIds, getBoxBrushLocalVertexPosition } from "../geometry/box-brush-mesh"; +import { getBoxBrushBounds } from "../geometry/box-brush"; import { createModelColliderDebugGroup } from "../geometry/model-instance-collider-debug-mesh"; -import { buildGeneratedModelCollider } from "../geometry/model-instance-collider-generation"; +import { buildGeneratedModelCollider, type GeneratedColliderBounds } from "../geometry/model-instance-collider-generation"; import { DEFAULT_GRID_SIZE, snapValueToGrid } from "../geometry/grid-snapping"; import { createStarterMaterialSignature, createStarterMaterialTexture } from "../materials/starter-material-textures"; import type { MaterialDef } from "../materials/starter-material-library"; @@ -146,6 +147,7 @@ import { createAdvancedRenderingComposer, resolveBoxVolumeRenderPaths } from "../rendering/advanced-rendering"; +import { collectWaterContactPatches, createWaterMaterial } from "../rendering/water-material"; import { resolveViewportFocusTarget } from "./viewport-focus"; import { createSoundEmitterMarkerMeshes } from "./viewport-entity-markers"; import { @@ -168,7 +170,7 @@ import { } from "./viewport-transient-state"; interface BrushRenderObjects { - mesh: Mesh>; + mesh: Mesh; edges: LineSegments; edgeHelpers: Array<{ id: BoxEdgeId; @@ -306,6 +308,9 @@ export class ViewportHost { private projectAssets: Record = {}; private loadedModelAssets: Record = {}; private loadedImageAssets: Record = {}; + private volumeTime = 0; + private previousFrameTime = 0; + private readonly volumeAnimatedUniforms: Array<{ value: number }> = []; private readonly boxCreatePreviewMesh = new Mesh( new BoxGeometry(DEFAULT_BOX_BRUSH_SIZE.x, DEFAULT_BOX_BRUSH_SIZE.y, DEFAULT_BOX_BRUSH_SIZE.z), new MeshStandardMaterial({