Skip to content

v0.2.7

Pre-release
Pre-release
Compare
Choose a tag to compare
@mkeeter mkeeter released this 18 May 20:31
· 105 commits to main since this release
2b49cd9

This release brings us to opcode parity with libfive's operators, adding atan2 and various rounding operations. In addition, there are a few new APIs and rearrangements in preparation for larger refactoring to come.

  • Changed to 2D rendering API to support render modes which use linear interpolation to process full / empty regions
    • Specifically, RenderMode::interval now returns an IntervalAction, which can be Fill(..), Recurse, or Interpolate.
    • Modify SdfRenderMode use this interpolation; the previous pixel-perfect behavior is renamed to SdfPixelRenderModel
    • Make RenderMode trait methods static, because they weren't using &self
    • Change signature of fidget::render::render2d to pass the mode only as a generic parameter, instead of an argument
  • Add new operations: floor, ceil, round, atan2
  • Changed BulkEvaluator::eval signature to take x, y, z arguments as &[T] instead of &[f32]. This is more flexible for gradient evaluation, because it allows the caller to specify up to three gradients, without pinning them to specific argument.
  • Moved tile_sizes_2d, tile_sizes_3d, and simplify_tree_during_meshing into a new fidget::shape::RenderHits trait. This is a building block for generic (n-variable) function evaluation.