spatial-monorepo / wayfinding/src / AvoidanceZone
Interface: AvoidanceZone
Defined in: packages/wayfinding/src/types.ts:314
Properties
blockMode?
optionalblockMode?:"soft"|"hard"
Defined in: packages/wayfinding/src/types.ts:343
Strictness policy for this zone (issue #473 — live occupancy/reservation avoid-zones). Defaults to 'soft' when omitted, preserving the pre-#473 behaviour of every existing caller:
'soft': cost-penalized, never impassable — legacy'graph'engine multiplies edge weight bycostMultiplier; grid engine blocks the zone only on the relaxation ladder's stricter rungs (RelaxationRung.blockAvoidanceZones), falling back to walkable on looser rungs if no other route is found.'hard': impassable — legacy engine excludes the zone's units from the graph outright (as if no edge led to them), grid engine blocks them at every rung, including the final "no restrictions" rung. In both engines the zone's own start/destination room is still exempted (a route may depart from or arrive at a hard-blocked room; it just cannot be routed through).
This is the policy knob issue #473 flags "ready-for-human": which mode a venue defaults to for occupied/reserved rooms is a product decision — see DEFAULT_VENUE_AVOIDANCE_POLICY in occupancy-zones.ts for the default this repo ships with, and its doc comment for the reasoning.
costMultiplier?
optionalcostMultiplier?:number
Defined in: packages/wayfinding/src/types.ts:322
Cost multiplier applied to edges whose target node is in this zone. Only consulted when blockMode is 'soft' (the default) — the path is not blocked, just made more expensive. Defaults to 10.
unitIds
unitIds:
string[]
Defined in: packages/wayfinding/src/types.ts:316
Unit IDs in this zone
