Implement road edge settings and types for scene paths

This commit is contained in:
2026-05-13 02:52:03 +02:00
parent a07394153e
commit 00123f5e68

View File

@@ -11,6 +11,21 @@ export interface ScenePathPoint {
}
export type ScenePathCurveMode = "linear" | "catmullRom";
export type ScenePathRoadEdgeKind = "curb" | "softShoulder" | "bank" | "ditch";
export type ScenePathRoadEdgeSide = "left" | "right";
export interface ScenePathRoadEdgeSettings {
enabled: boolean;
kind: ScenePathRoadEdgeKind;
width: number;
height: number;
materialId: string | null;
}
export interface ScenePathRoadEdgesSettings {
left: ScenePathRoadEdgeSettings;
right: ScenePathRoadEdgeSettings;
}
export interface ScenePathRoadSettings {
enabled: boolean;
@@ -20,6 +35,7 @@ export interface ScenePathRoadSettings {
heightOffset: number;
terrainConform: boolean;
materialId: string | null;
edges: ScenePathRoadEdgesSettings;
}
export interface ScenePath {
@@ -156,12 +172,28 @@ export const DEFAULT_SCENE_PATH_ROAD_FALLOFF = 0.5;
export const DEFAULT_SCENE_PATH_ROAD_HEIGHT_OFFSET = 0.03;
export const DEFAULT_SCENE_PATH_ROAD_TERRAIN_CONFORM = true;
export const DEFAULT_SCENE_PATH_ROAD_MATERIAL_ID = null;
export const SCENE_PATH_ROAD_EDGE_KINDS = [
"curb",
"softShoulder",
"bank",
"ditch"
] as const satisfies readonly ScenePathRoadEdgeKind[];
export const DEFAULT_SCENE_PATH_ROAD_EDGE_ENABLED = false;
export const DEFAULT_SCENE_PATH_ROAD_EDGE_KIND: ScenePathRoadEdgeKind =
"softShoulder";
export const DEFAULT_SCENE_PATH_ROAD_EDGE_WIDTH = 0.35;
export const DEFAULT_SCENE_PATH_ROAD_EDGE_HEIGHT = 0.12;
export const DEFAULT_SCENE_PATH_ROAD_EDGE_MATERIAL_ID = null;
export const MIN_SCENE_PATH_ROAD_WIDTH = 0.1;
export const MAX_SCENE_PATH_ROAD_WIDTH = 100;
export const MIN_SCENE_PATH_ROAD_SHOULDER_WIDTH = 0;
export const MAX_SCENE_PATH_ROAD_SHOULDER_WIDTH = 100;
export const MIN_SCENE_PATH_ROAD_FALLOFF = 0;
export const MAX_SCENE_PATH_ROAD_FALLOFF = 1;
export const MIN_SCENE_PATH_ROAD_EDGE_WIDTH = 0.01;
export const MAX_SCENE_PATH_ROAD_EDGE_WIDTH = 50;
export const MIN_SCENE_PATH_ROAD_EDGE_HEIGHT = 0;
export const MAX_SCENE_PATH_ROAD_EDGE_HEIGHT = 20;
export const MIN_SCENE_PATH_SAMPLED_RESOLUTION = 1;
export const MAX_SCENE_PATH_SAMPLED_RESOLUTION = 64;
export const MIN_SCENE_PATH_POINT_COUNT = 2;