Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,28 @@ 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/).

## [2.13.1] - 2025-04-03
## [2.15.0] - 2025-08-16

### Added
- Implements `ConstrainedDelaunayTriangulation::try_bulk_load_cdt` for loading CDTs without panicking
if any constraints intersect (#137)

### Changed
- `ConstrainedDelaunayTriangulation::bulk_load_cdt` does load all vertices in order by default ("stable").
- `ConstrainedDelaunayTriangulation::bulk_load_cdt_stable` is deprecated. Use `...::bulk_load_cdt` instead which
behaves exactly the same.
- Optimized implementation of now stable `ConstrainedDelaunayTriangulation::bulk_load_cdt`. It is nearly as fast
as its unstable alternative, `Triangulation::bulk_load`.
- Bulk loading a triangulation with a `HierarchyHintGenerator` does not load the hierarchy sequentially but uses
bulk loading. This should speed up creating such triangulations.

## Fixed
- Fixes various panics related to bulk loading very exotic vertex sets.

## [2.14.0] - 2025-04-03

### Fix
- Fixes #116 and #119
- Fixes #116 and #130

## [2.13.0] - 2025-02-20

Expand Down Expand Up @@ -486,7 +504,9 @@ A lot has changed for the 1.0. release, only larger changes are shown.

Initial commit

[2.13.1]: https://github.com/Stoeoef/spade/compare/v2.13.0...v2.13.1
[2.15.0]: https://github.com/Stoeoef/spade/compare/v2.14.0...v2.15.0

[2.14.0]: https://github.com/Stoeoef/spade/compare/v2.13.0...v2.14.0

[2.13.0]: https://github.com/Stoeoef/spade/compare/v2.12.1...v2.13.0

Expand Down
36 changes: 15 additions & 21 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,7 @@ description = "Delaunay triangulations for the rust ecosystem"
repository = "https://github.com/Stoeoef/spade"
license = "MIT OR Apache-2.0"
autobenches = false
categories = [
"algorithms",
"data-structures",
"graphics",
"mathematics",
"science::geo",
]
categories = ["algorithms", "data-structures", "graphics", "mathematics"]
keywords = ["Delaunay", "CDT", "geometry", "triangulation", "voronoi"]

[lib]
Expand All @@ -25,15 +19,15 @@ default = ["std"]
std = []

[dependencies]
smallvec = "1.13"
robust = "1.1.0"
num-traits = "0.2"
hashbrown = "0.15.2"
smallvec = "1.15.1"
robust = "1.2.0"
num-traits = "0.2.19"
hashbrown = "0.15.5"

[dependencies.serde]
package = "serde"
optional = true
version = "1.0.218"
version = "1.0.219"
default-features = false
features = ["derive", "alloc"]

Expand All @@ -47,18 +41,18 @@ version = "0.5.9"
members = ["delaunay_compare"]

[dev-dependencies]
approx = "0.5"
rand = "0.9.1"
approx = "0.5.1"
rand = "0.9.2"
cgmath = "0.18.0"
svg = "0.18.0"
float_next_after = "1"
image = "0.25.1"
tiny-skia = "0.11.3"
criterion = { version = "0.5.1", features = ["html_reports"] }
float_next_after = "1.0.0"
image = "0.25.6"
tiny-skia = "0.11.4"
criterion = { version = "0.7.0", features = ["html_reports"] }
base64 = "0.22.1"
anyhow = "1.0.97"
shapefile = "0.6.0"
proptest = "1.5.0"
anyhow = "1.0.99"
shapefile = "0.7.0"
proptest = "1.7.0"

[[bench]]
name = "benchmarks"
Expand Down
Binary file modified delaunay_compare/examples/europe.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion delaunay_compare/examples/real_data_benchmark.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ fn load_with_spade(vertices: Vec<Point2<f64>>, edges: Vec<[usize; 2]>) -> anyhow
let edges_clone = edges.clone();

let now = Instant::now();
ConstrainedDelaunayTriangulation::<_>::bulk_load_cdt_stable(vertices_clone, edges_clone)?;
ConstrainedDelaunayTriangulation::<_>::bulk_load_cdt(vertices_clone, edges_clone)?;

println!(
"loading time (spade cdt bulk load stable): {}ms",
Expand Down
2 changes: 1 addition & 1 deletion examples/svg_renderer/scenario_list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1576,6 +1576,6 @@ fn get_cdt_for_try_add_constraint() -> Result<Cdt> {
VertexType::new(50.0, -34.0),
];

let result = Cdt::bulk_load_cdt_stable(vertices, vec![[3, 2], [5, 4], [7, 6]])?;
let result = Cdt::bulk_load_cdt(vertices, vec![[3, 2], [5, 4], [7, 6]])?;
Ok(result)
}
2 changes: 1 addition & 1 deletion fuzz/fuzz_targets/bulk_load_cdt_fuzz.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ fuzz_target!(|input: (Vec<FuzzPoint>, Vec<[usize; 2]>)| {
edges.truncate(last_index);

let bulk_loaded =
ConstrainedDelaunayTriangulation::<FuzzPoint>::bulk_load_cdt(data, edges).unwrap();
ConstrainedDelaunayTriangulation::<FuzzPoint>::bulk_load_cdt(data.clone(), edges).unwrap();

bulk_loaded.cdt_sanity_check();
});
Loading
Loading