← back to Dw War Room
src/showroom/types.ts
51 lines
// types.ts — Shared type definitions for the photorealistic showroom pipeline
export interface SceneConfig {
corridor: {
width: number; // world units (1 unit = 1 foot)
depth: number;
height: number;
wallMaterial: 'brick' | 'concrete' | 'charcoal';
floorMaterial: 'polished-concrete' | 'wood' | 'marble';
};
wings: WingConfig[];
walls: WallConfig[];
lights: LightConfig[];
furniture: FurnitureConfig[];
entry: { position: [number, number, number]; signText: string };
}
export interface WingConfig {
index: number;
vendor: string;
position: [number, number, number];
rotation: number;
panelCount: number;
accentColor: string; // hex from Figma fill
}
export interface WallConfig {
position: [number, number, number];
dimensions: [number, number]; // width, height
material: string;
hasBookshelf: boolean;
hasSamplePanels: boolean;
sampleCount: number;
}
export interface LightConfig {
type: 'spot' | 'track' | 'ambient' | 'point';
position: [number, number, number];
target?: [number, number, number];
color: string;
intensity: number;
angle?: number; // SpotLight cone angle
penumbra?: number;
}
export interface FurnitureConfig {
type: 'display-table' | 'stool' | 'bookshelf' | 'sample-rack';
position: [number, number, number];
dimensions: [number, number, number];
}