visioncortex 0.9.0

Semantic Computer Vision
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## 0.9.0 - 2026-07-24

* Added the `polypartition` module: polygon triangulation (ear-clipping,
  monotone, optimal dynamic programming) and hole removal, ported from
  [PolyPartition]https://github.com/ivanfratric/polypartition by Ivan Fratric
* Made `SubdivideSmooth` public and added open-path (open polyline) variants of
  `find_corners`, `find_splice_points`, and `subdivide_keep_corners`;
  `fit_points_with_bezier` now takes a configurable `max_error` (closed-path
  behaviour unchanged)
* **Breaking:** `color_clusters::Builder`, `BuilderImpl`, and
  `IncrementalBuilder` are now generic over their four closure types instead of
  storing `Box<dyn Fn>`, so the hot `same`/`diff` closures are monomorphised and
  inlined
* **Breaking:** the `deepen`/`hollow` closures now receive `&ClustersView`
  instead of `&BuilderImpl`
* **Breaking:** `color_clusters::Builder` is now a type-state builder — every
  closure must be set before `run()`/`start()`, which is now enforced at compile
  time instead of panicking at runtime

## 0.8.9 - 2025-10-17

* Fixes potential panics

## 0.8.8 - 2024-03-29

* Now uses Rust 2021 edition
* Fixed compiler warnings
* Added `BoundingRectF64`
* Refactored implementation of `Forests`
* Make public the `rasterizer` module

## 0.8.6 - 2023-11-17

* Added `Shape::is_isosceles_triangle`

## 0.8.5 - 2023-11-13

* Improve `Matrix` API

## 0.8.4 - 2023-11-12

* Introduce circular arc functions

## 0.8.3 - 2023-11-10

* Introduce `PointType` to cast between `PointI32` and `PointF64`

## 0.8.2 - 2023-10-07

* Impl `Clone` for `CompoundPath` / `Spline`

## 0.8.1 - 2023-09-17

* Fixed "The two lines are parallel!"

## 0.8.0 - 2022-10-09

* Added `KeyingAction` to `color_clusters::Builder` (#6)
* Remove `ClustersView` from `color_clusters::Builder` (#8)