From 2b7bedfa23128c40d2a64496f385d274f6b6af59 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 13 May 2026 03:46:08 +0200 Subject: [PATCH] Feat: Add support for spline repeaters in runtime paths --- src/runtime-three/runtime-host.ts | 7 +++++++ src/runtime-three/runtime-scene-build.ts | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/runtime-three/runtime-host.ts b/src/runtime-three/runtime-host.ts index d7243637..cae5cbbc 100644 --- a/src/runtime-three/runtime-host.ts +++ b/src/runtime-three/runtime-host.ts @@ -4398,6 +4398,13 @@ export class RuntimeHost { this.applyShadowState(); } + private rebuildSplineRepeaters(runtimeScene: RuntimeSceneDefinition) { + this.splineRepeaterRenderer.sync({ + paths: runtimeScene.paths, + terrains: runtimeScene.foliage.terrains + }); + } + private createFogMaterialSet( brush: RuntimeBoxBrushInstance, volumeRenderPaths: { diff --git a/src/runtime-three/runtime-scene-build.ts b/src/runtime-three/runtime-scene-build.ts index 9b8e592b..80ade9c5 100644 --- a/src/runtime-three/runtime-scene-build.ts +++ b/src/runtime-three/runtime-scene-build.ts @@ -62,6 +62,7 @@ import { resolveScenePath, type ScenePath, type ScenePathCurveMode, + type ScenePathRepeater, type ScenePathRoadEdgeSettings, type ScenePathRoadSettings, type ScenePathPoint @@ -527,6 +528,7 @@ export interface RuntimePath { right: RuntimePathRoadEdgeSettings; }; }; + repeaters: ScenePathRepeater[]; points: RuntimePathPoint[]; segments: RuntimePathSegment[]; totalLength: number; @@ -1048,6 +1050,7 @@ function buildRuntimePath( } } }, + repeaters: path.repeaters.map((repeater) => ({ ...repeater })), points: resolvedPath.points.map(buildRuntimePathPoint), segments: resolvedPath.segments.map((segment) => ({ index: segment.index,