import type { BufferGeometry, Color, Matrix4, Vector3, Vector4 } from 'three/webgpu'; export type SemanticKind = 'Walls' | 'Columns' | 'Spaces' | 'Doors' | 'Windows' | 'Staircases'; export type SemanticColor = Color | Vector3 | Vector4; export interface SemanticGeometryEntry { id: string; kind: SemanticKind; name?: string; geometry: BufferGeometry; color: Vector4; } export interface SemanticObjectState { id: string; kind: SemanticKind; name?: string; index: number; indexStart: number; indexCount: number; baseMatrix: Matrix4; matrix: Matrix4; finalMatrix: Matrix4; geometry: BufferGeometry; initialColor: Vector4; color: Vector4; visible: boolean; } export interface ReadableAttribute { getComponent(index: number, component: number): number; }