From 2b4c7cf91b18cb1d2bbf9b709e082fef4e071dfd Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Thu, 23 Apr 2026 08:49:22 +0200 Subject: [PATCH] auto-git: [change] src/entities/entity-instances.ts --- src/entities/entity-instances.ts | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/entities/entity-instances.ts b/src/entities/entity-instances.ts index b4bf6223..bc51f5db 100644 --- a/src/entities/entity-instances.ts +++ b/src/entities/entity-instances.ts @@ -8,8 +8,10 @@ import { import { normalizeTimeOfDayHours } from "../document/project-time-settings"; import { isHexColorString } from "../document/world-settings"; import { + mapWorldPointToScenePathProgressBetweenPoints, resolveNearestPointOnResolvedScenePath, resolveScenePath, + sampleResolvedScenePathPosition, type ScenePath } from "../document/paths"; @@ -66,6 +68,12 @@ export type CameraRigTargetKind = (typeof CAMERA_RIG_TARGET_KINDS)[number]; export const CAMERA_RIG_TRANSITION_MODES = ["cut", "blend"] as const; export type CameraRigTransitionMode = (typeof CAMERA_RIG_TRANSITION_MODES)[number]; +export const CAMERA_RIG_RAIL_PLACEMENT_MODES = [ + "nearestToTarget", + "mapTargetBetweenPoints" +] as const; +export type CameraRigRailPlacementMode = + (typeof CAMERA_RIG_RAIL_PLACEMENT_MODES)[number]; export interface CameraRigPlayerTargetRef { kind: "player"; @@ -116,11 +124,28 @@ export interface FixedCameraRigEntity rigType: "fixed"; } -export interface RailCameraRigEntity extends CameraRigBaseEntity { +interface RailCameraRigBaseEntity extends CameraRigBaseEntity { rigType: "rail"; pathId: string; + railPlacementMode: CameraRigRailPlacementMode; } +export interface NearestRailCameraRigEntity extends RailCameraRigBaseEntity { + railPlacementMode: "nearestToTarget"; +} + +export interface MappedRailCameraRigEntity extends RailCameraRigBaseEntity { + railPlacementMode: "mapTargetBetweenPoints"; + trackStartPoint: Vec3; + trackEndPoint: Vec3; + railStartProgress: number; + railEndProgress: number; +} + +export type RailCameraRigEntity = + | NearestRailCameraRigEntity + | MappedRailCameraRigEntity; + export type CameraRigEntity = FixedCameraRigEntity | RailCameraRigEntity; export interface CharacterColliderSettings {