v1.5.0 — dynamic blocking & graph editing
Highlights
- Dynamic vertex blocking. Blocking is now evaluated on each search instead of baked into edge weights at
VertexAddtime.VertexBLock/VertexBLockLoad/VertexBLockRemove/VertexBLockCleartake effect on the next search and may be called any time — ideal for obstacles that appear/clear on a live map. A blocked vertex is unreachable; you can still route out of a blocked start. - Dynamic graph editing. New
VertexRemove(vertex + all its edges + blocked-set entry),VertexAddEdge(connect an existing vertex), andVertexRemoveEdge. - Fixed: legitimately long paths are no longer misreported as "no path" — the internal
1e7blocking sentinel is gone.
Notes
Public API is unchanged and correctly-built graphs return the same paths. Edges into a blocked vertex no longer carry an inflated weight, so EdgeGetWeight now returns the weight you supplied.
Tests for the new behaviour (coverage ~71%) + a runnable ExampleStGraph_VertexBLock. See CHANGELOG.md.