/* * fmsim 컴포넌트별 z-priority 상수. * * 같은 평면에 겹친 *다른 type 의* mesh 들이 GPU depth test 에서 결정적으로 정렬되도록 * 각 컴포넌트 type 마다 unique polygonOffset 값을 부여. 각 RealObject 가 자기 클래스에서 * `get zPriority(): number` override 로 이 상수 중 하나를 반환. * * 위치 (geometry vertex, object3d.position) 는 변경하지 않음 — depth buffer 의 fragment * depth 값에만 미세 bias. * * 컨벤션 (높은 값 = 뒤로, 낮은 값 = 앞으로): * * [14~17] 바닥 paths/lines (가장 뒤) * [11~13] 큰 영역 시각화 (container, 흐름 영역) * [10] zone capacity bar (영역 표시) * [1~9] 바닥 설비 (facility) * [0] 이동 entity (AGV/OHT/Crane/Shuttle/Carrier) — default OBJECTS * [-1~-4] 설비 위 indicator bar (decal) * [-9~-10] overlay / popup (가장 앞) */ export const Z_FMSIM = { // ── Floor paths (가장 뒤 — 바닥에 그려지는 선) ────────────── AGV_LINE: 17, OHT_LINE: 16, CRANE_RAIL: 15, NODE_PATH: 14, PORT_FLOW: 13, // ── Container 영역 ──────────────────────────────────────── STATIC_CONTAINER: 12, FLOATING_CONTAINER: 11, // ── Zone 표시 ───────────────────────────────────────────── ZONE_CAPACITY_BAR: 10, // ── 바닥 설비 (facility) ────────────────────────────────── NODE: 9, SCANNER: 8, PORT: 7, SHELF: 6, STOCKER: 5, CONVEYOR: 4, CONVEYOR_JOIN: 3, BUFFER: 2, EQUIPMENT: 1, // ── 이동 entity — priority 0 (default OBJECTS), polygonOffset 미적용 ── // AGV, OHT, Crane, Shuttle, Carrier — override 안 함 // ── 설비 위 status indicator bar (decal) ───────────────── MCS_GAUGE_CAPACITY_BAR: -1, STOCKER_CAPACITY_BAR: -2, STOCKER_CARRIER_BAR: -3, STOCKER_ABNORMAL_BAR: -4, // ── Overlay / popup (가장 앞) ────────────────────────────── POPUP: -9, CONFIDENTIAL_OVERLAY: -10 } as const