Skip to content

0.2.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@mkeeter mkeeter released this 18 Feb 17:10
· 253 commits to main since this 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