0.2.0
Pre-release
Pre-release
This release includes a significant amount of reorganization and refactoring. There are two main sets of changes, along with some minor tweaks.
Completely revamped evaluation traits
Previously, evaluation was tightly coupled to the Tape
type, and individual evaluators were tightly bound to a specific tape. Upon reflection, both of these decisions were reconsidered:
- We may want to use Fidget's algorithms on implicit models that aren't defined as tapes, so the evaluation traits should be more generic
- The previous code put a great deal of effort into reusing evaluator workspaces, but it was hard; it turns out that it's much cleaner to have evaluators own their workspaces but not own their tapes
These changes can be seen in the new fidget::eval::Shape
trait, which replaces (but is not equivalent to) the previous fidget::eval::Family
trait.
Compiler reorganization
Compiler modules are reorganized to live under fidget::compiler
instead of being split between fidget::ssa
and fidget::vm
.
Other small changes
- Improve meshing quality (better vertex placement, etc)
- Add parallelism to meshing implementation, configured by the new
fidget::mesh::Settings
. - Added documentation to
fidget::mesh
modules