Releases: LIHPC-Computational-Geometry/honeycomb
0.7.0
What's Changed
This update contains breaking changes
Workspace
new:
refactor:
- update issue & PR templates by @imrn99 & @dssgabriel
in #229 - simplify and improve documentation consistency by @imrn99
in #263
deps:
- revert some upgrades that broke the render menu by @imrn99
in #206 - update thiserror requirement from 1.0.64 to 2.0.3 by @dependabot
in #221 - bump codecov/codecov-action from 4.6.0 to 5.0.7 by @dependabot
in #242 - chore(deps): bump codecov/codecov-action from 5.0.7 to 5.1.2 by @dependabot
in #258 - chore(deps): update itertools requirement from 0.13.0 to 0.14.0 by @dependabot
in #262
Published crates
honeycomb-core
core definitions and tools for combinatorial map implementation
new:
- add 3D geometry primitives by @imrn99
in #181 - add struct wrappers around inner storages by @imrn99
in #208
refactor:
- change impls of the
fetch_<CELLS>
methods by @imrn99
in #204 - improve grid building routines by @imrn99
in #209 - change underlying implementation of
CMap2
to add sync mechanisms by @imrn99
in #201 - turn internal
CMap2
items into structs by @imrn99
in #223 - rework
sew
methods to allow for more control by @imrn99
in #224 - update
AttributeUpdate
methods returns by @imrn99
in #237 - rework attribute semantics by @imrn99
in #226 - rewrite grid building routines by @imrn99
in #241 - add new variants to
OrbitPolicy
by @imrn99
in #238 - move
OrbitPolicy
to the components submodule by @imrn99
in #250 - delete the i-cell collection structures by @imrn99
in #251 - update basic operations of
CMap2
by @imrn99
in #252 - delete the
utils
featureby @imrn99
in #254 - delete the
io
feature by @imrn99
in #255 - make dimension an argument of sew/link methods by @imrn99
in #253 - update sew variants by @imrn99
in #261
fix:
- use transactional ID computation in
atomically_two_sew
by @imrn99
in #222 - elude lifetimes where possible by @imrn99
in #244
honeycomb-kernels
implementations of meshing kernels using combinatorial maps
new:
refactor:
- use prealloc methods for edge splitting by @imrn99
in #203 - add intermediate compute before step 2 by @imrn99
in #205 - improve dart preallocation code by @imrn99
in #211 - rewrite step 1 to enable parallelization by @imrn99
in #210 - clean-up module code by @imrn99
in #216
Others
honeycomb-benches
core structures & methods benchmarks
new:
- add
fetch_...
methods benchmarks by @imrn99
in #202 - add a criterion bench for triangulation functions by @imrn99
in #207 - add binaries to bench scaling of non-conflicting transactions by @imrn99
in #240
refactor:
honeycomb-guide
mdbook-based user guide with information regarding usage & non-code-related
aspects of the project
new:
refactor:
Full Changelog: 0.6.0...0.7.0
0.6.0
What's Changed
This update contains breaking changes
Workspace
new:
refactor:
- replace some explicit
panic!
andunwrap
calls with cleaner alternatives by @imrn99
in #174 and #176 - cleanup error enums by @imrn99
in #190 - replace regular prints with prints to stderr for warnings by @imrn99
in #192 - turn edge-splitting methods into kernel-crate functions by @imrn99
in #193
deps:
- bump codecov/codecov-action from 4.5.0 to 4.6.0 by @dependabot
in #182 - minimize dependency tree by @imrn99
in #165 - bump
egui_dock
from 0.13.0 to 0.14.0 &bevy_egui
from 0.29.0 to 0.30.0 by @imrn99
in #187 - bump:
rustversion
from 1.0.15 to 1.0.18bevy
from 0.14.1 to 0.14.2bevy_mod_outline
from 0.8.1 to 0.8.3
Published crates
honeycomb (new member, not yet published)
main crate
This is a reexport-only crate used to provide a single, clean user-facing API
added in #160
honeycomb-core
core definitions and tools for combinatorial map implementation
new:
- add utility method
set_beta
toCMap2
by @imrn99 in
#170 - add no-allocation variants of
split_edge
&splitn_edge
by @imrn99
in #180
refactor:
- reorganize crate content and add a
prelude
module by @imrn99
in #159 - replace
from_ *
function ofCMapBuilder
by trait impls by @imrn99
in #163 - remove
Orbit2::is_isolated
by @imrn99
in #167 - remove lifetime from
OrbitPolicy
& updateAttributeBind
by @imrn99
in #173 - remove
CMapError
by @imrn99
in #171 - improve some error enums by @imrn99
in #169 - replace attribute-related panics with warnings by @imrn99
in #178 - remove panics from manager storage accesses by @imrn99
in #179
fix:
honeycomb-kernels
implementations of meshing kernels using combinatorial maps
new:
- implement polygon triangulation routines by @imrn99
in #177 - setup grisubal benchmark framework by @imrn99
in #164
honeycomb-render
visualization tool for combinatorial maps
refactor:
Others
honeycomb-benches
core structures & methods benchmarks
new:
- setup grisubal benchmark framework by @imrn99
in #164 - add scripts to streamline the benchmarking process by @imrn99
in #191 - add benchmarking tools for the grid building routines by @imrn99
in #194
refactor:
honeycomb-examples
project examples
honeycomb-guide
mdbook-based user guide with information regarding usage & non-code-related
aspects of the project
refactor:
- update user guide structure & content by @imrn99
in #161 - update rustdoc & user guide by @imrn99
in #166
Full Changelog: 0.5.0...0.6.0
0.5.0
What's Changed
This update contains breaking changes
Workspace
fix:
- fix errors introduced by
rand
update by @imrn99
in #130 - indent lists in doc correctly to comply with clippy by @imrn99
in #126
deps:
- bump codecov/codecov-action from 4.4.1 to 4.5.0 by @dependabot
in #112 - update iai-callgrind requirement from 0.11.0 to 0.12.0 by @dependabot
in #133 - bump
vtkio
version to0.7.0-rc1
& disable its default features by @imrn99
in #142 - update iai-callgrind requirement from 0.12.0 to 0.13.0 by @dependabot
in #145
Published crates
honeycomb-core
core definitions and tools for combinatorial map implementation
new:
- add
splitn_edge
method toCMap2
by @imrn99
in #127 - add
remove_storage
method toAttrStorageManager
by @imrn99
in #128 - add origin offset directly to grid descriptor/builder by @imrn99
in #148
refactor:
fix:
honeycomb-kernels (new member)
implementations of meshing kernels using combinatorial maps
new:
- add an overlay grid type algorithm:
grisubal
; it takes a 2D boundary as input and return a combinatorial map of
the boundary, captured in an orthogonal grid; an optional clipping step is also implemented
test:
honeycomb-render
visualization tool for combinatorial maps
fix:
Others
honeycomb-examples
project examples
new:
honeycomb-guide
mdbook-based user guide with information regarding usage & non-code-related
aspects of the project
new:
Full Changelog: 0.4.0...0.5.0
0.4.0
What's Changed
This update contains breaking changes
Workspace
Published crates
honeycomb-core
core definitions and tools for combinatorial map implementation
- implement a generic attribute system to bind custom data structures to topological entities of a
CMap2
- implement
AttrStorageManager
struct andAttributeStorage
trait by @imrn99
in #89 - replace standalone impl blocks of attribute collections by @imrn99
in #92 - add
UnknownAttributeStorage
trait for attribute-agnostic methods by @imrn99
in #96 - replace
Any
byUnknownAttributeStorage
to handle collections in attribute manager by @imrn99
in #97 - add storage manager to builder by @imrn99
in #102 - add generic storage manager to
CMap2
by @imrn99
in #103
- implement
- change internal Vtk building routine to return a
Result
by @imrn99
in #91 - expand
BuilderError
with more specialized variants by @imrn99
in #91
Full Changelog: 0.3.1...0.4.0
0.3.1
What's Changed
Workspace
- remove the feature matrix from the test CI, which now uses the
--all-features
option
Published crate
honeycomb-core
core definitions and tools for combinatorial map implementation
new:
- add
CMap2::split_edge
for future algorithm implementations by @imrn99 in #83 - add
CMapBuilder
structure by @imrn99 in #87
refactor:
honeycomb-render
visualization tool for combinatorial maps
fix:
- update aspect ratio to prevent deformation of the rendered map by @imrn99 in #85
- shrink face relatively to their original sizes by @imrn99 in #86
Others
honeycomb-benches
refactor:
Full Changelog: 0.3.0...0.3.1
0.3.0
What's Changed
New changelog format!
Workspace
- rename non-published members' folder name (#77)
- bump various dependencies' version & update code accordingly (#70, #81):
iai-callgrind
from0.10.2
to0.11.0
smaa
from0.13.0
to0.14.0
wgpu
from0.19.4
to0.20.0
winit
from0.29.15
to0.30.0
- implement nighly conditional compilation for doc generation (#66)
Published crates
honeycomb-core
core definitions and tools for combinatorial map implementation
new:
- implement basic I/O logic for
CMap2
using thevtkio
crate (#73, 75)- the scope of the support is detailed in the Rust Doc
- new method & function are available when enabling the new
io
feature
- add a new feature,
io
, used to gate the implementation of VTK I/O code (#73)
refactor:
- remove the
FloatType
alias and thesingle_precision
feature (#74, #76) - replace
CoordsFloat
implementation blocks to automatize implementation
for all types that fit the traits requirement (#68) - remove
FloatType
from the public API (#68) - change some main methods return type to have better overall consistency (#67):
Vector2::normal_dir
now returns a result instead of potentially panickingCMap2::vertex
now returns a result instead of panicking if no associated vertex is found
- remove deprecated items from the last release (#64):
AttrSparseVec::get_mut
,AttrCompactVec::get_mut
utils::square_cmap2
,utils::splitsquare_cmap2
fix:
- correct the usage of epsilon values for floating point numbers comparison in tests (#79)
honeycomb-render
visualization tool for combinatorial maps
refactor:
- replace the
Runner
struct by a simplerlaunch
function (#70)- the function takes the same parameters that were provided to
Runner::run
- the function takes the same parameters that were provided to
- rewrite & reorganize most of the internal code due to
winit
update (#70)
Others
honeycomb-examples
project examples
new:
honeycomb-guide
mdbook-based user guide with information regarding usage & non-code-related
aspects of the project
- update usage information & content (#82)
Full Changelog: 0.2.1...0.3.0
0.2.1
What's Changed
Workspace
- bump
rand
version from0.8.5
to0.9.0-alpha.1
& update code accordingly (#63)
New features
honeycomb-core
core definitions and tools for combinatorial map implementation
- expand on tests of the core crate (#49)
- implement the
GridBuilder
struct as a better, more versatile way to generate grid maps (#60)
honeycomb-examples
project examples
- add the following examples:
honeycomb-guide
mdbook-based user guide with information regarding usage & non-code-related
aspects of the project
honeycomb-render
visualization tool for combinatorial maps
- add code to properly render faces instead of using implicit coloring (#54)
- this implied creating new internal structures for efficiency purposes
- add a cap on the number of frames rendered per second to fix speed disparity induced by machine performance (#56)
Refactor
honeycomb-core
- mark as deprecated:
- fix various
clippy::pedantic
lints that were temporarily left as allowed (#51) - fix some unwanted behaviors:
honeycomb-examples
- fix
memory_usage
Rust code and associated script (#55)
honeycomb-render
- update render code to:
- edit the shader to color triangles according to the entity they form (#62)
- add a key binding (F1) to close the render window (#62)
Full Changelog: 0.2.0...0.2.1
0.2.0
What's Changed
This update contains breaking changes
New features
honeycomb-benches (new)
core structures & methods benchmarks
honeycomb-core
core definitions and tools for combinatorial map implementation
- add two new structures for 2D spatial representation:
Vertex2
&Vector2
,
which act as wrappers around aCoords2
value (#25) - remove the
Vertex2
type alias in favor of the new structure (#25) - add a new public module,
utils
, compiled when theutils
feature is enabled (#31)- the module contains functions previously defined in the
honeycomb-utils
crate
- the module contains functions previously defined in the
- add two new traits,
AttributeUpdate
andAttributeSupport
, for basic attribute genericity (#33) - implement new attribute traits for the
Vertex2
struct (#33) - add two storage structures for generic attributes
AttributeSparseVec
andAttributeSparseVec
(#34) - add collection structures that can be used to retrieve all cells of a given dimension of a map (#36)
honeycomb-examples (new)
project examples
- move all examples previously defined in
honeycomb-utils
&honeycomb-render
to this crate (#29) - update examples
honeycomb-guide
mdbook-based user guide with information regarding usage & non-code-related
aspects of the project
- add pages for the new project members (#32)
Refactor
honeycomb-core
- change visibility of all
honeycomb-core
modules to private & re-export types
accordingly (#23) - rename
TwoMap
/Orbit
toCMap2
/Orbit2
for consistency (#23) - remove marks table from
DartData
(#24), resulting in a signature change for many
functions and structures (anything withconst N_MARKS: usize
) ' - update code to make use of the new 2D representation structures (#25)
- reorganize internal module structure (#27, #42)
- create modules
cells
,spatial_repr
,attributes
- move
orbits
,coords
,vector
,vertex
, inside new modules - clean-up source files
- create modules
- rename the
benchmarking_utils
feature toutils
(#31) - rework the structure and interface of
CMap2
(#36)- implement the new cell id computation logic
- replace the vertex storage with an
AttributeSparseVec
- add support for incomplete vertex orbits in
Orbit2
implementation (#36) - remove
darts
,embed
modules and their content (#42)- move ID aliases to
cells
andcells::collections
modules
- move ID aliases to
- update the
CMap2
quickstart example (#43) - change the
CMap2::n_darts
method's return type to be more intuitive (#45)- add the
CMap2::n_unused_darts
method to provide an alternative to the old method
- add the
- remove the
CMap2::set_beta
method because of the lack of valid use case (#45) - gate the
CMap2::set_betas
behind theutils
feature (#45)
honeycomb-guide
- update all references to renamed types (#23)
- remove
honeycomb-utils
page (#32) - update index, summary, core & render pages (#32)
honeycomb-render
visualization tool for combinatorial maps
- update code:
honeycomb-utils (removed)
utility routines used in benchmarking and testing
- remove this crate in favor of:
Full Changelog: 0.1.3...0.2.0
0.1.3
What's Changed
New Features
honeycomb-core
core definitions and tools for combinatorial map implementation
Orbit<'a, const N_MARKS: usize, T: CoordsFloat>
- Generic implementation for
2D orbit computations. The structure itself only contains meta-data, the orbit
computation is done through theIterator
trait implementation (#18)OrbitPolicy<'a>
- Enum used to specify the beta functions used by an orbit.
It currently does not support compositions (#18)- New (temporary?) method for
TwoMap
:beta_runtime
. It works by redirecting
to the originalbeta
method, using match block and a beta identifier provided
at runtime (#18)
honeycomb-guide
mdbook-based user guide with information regarding usage & non-code-related
aspects of the project
- update content of the workspace section to include new member (#19)
- update honeycomb-core's page content (#19)
honeycomb-render (new member)
visualization tool for combinatorial maps
- implement
TwoMap
rendering code - add examples illustrating basic usage
Full Changelog: 0.1.2...0.1.3
0.1.2
What's Changed
Repository Changes
- remove
Cargo.lock
file from the repository - add changelog file
New Features
honeycomb-core
Coords2<T: CoordsFloat>
- Custom 2D coordinates representation using a
generic type for inner value.- refactor two attributes of
TwoMap
:free_darts: Vec<DartIdentifier>
: rename tounused_darts
& change type toBTreeSet
free_vertices: Vec<VertexIdentifier>
: rename tounused_vertices
& change type toBTreeSet
honeycomb-guide
- update usage instructions
honeycomb-utils
Full Changelog: 0.1.1...0.1.2