Skip to content

v1.5.0 — dynamic blocking & graph editing

Choose a tag to compare

@ultramcu ultramcu released this 24 May 08:05
· 11 commits to main since this release

Highlights

  • Dynamic vertex blocking. Blocking is now evaluated on each search instead of baked into edge weights at VertexAdd time. VertexBLock / VertexBLockLoad / VertexBLockRemove / VertexBLockClear take 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), and VertexRemoveEdge.
  • Fixed: legitimately long paths are no longer misreported as "no path" — the internal 1e7 blocking 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.