Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(occara): Implement Rust bindings for creating the OpenCASCADE bottle example #4

Merged
merged 44 commits into from
Mar 23, 2024

Conversation

maximmaxim345
Copy link
Owner

@maximmaxim345 maximmaxim345 commented Mar 20, 2024

This PR adds the necessary Rust bindings to enable creating the iconic OpenCASCADE bottle example using the occara crate. It includes:

  • Bindings for the geom module, including Point, Direction, Direction2D, Axis
  • Bindings for the shape module, including Vertex, Edge, Wire, Face, Loft
  • An idiomatic Rust API for creating and manipulating OpenCASCADE geometry and topology

With these bindings, complex CAD models like the bottle example can now be build in Rust.

Future work:

  • Implement a proper error handling mechanism
  • Implement debug traits on all types
  • Improve robustness of ShellBuilder API
  • Reorganize the library into more sub-modules besides geom and shape (like surface or algorithm)
  • Port more OpenCASCADE methods/classes
  • Add mesh generation to allow visualization of models
  • Add comprehensive documentation and examples
  • Implement history tracking for topologically consistent naming
  • Improve test suite, by comparing output to known geometry

Possible additions/improvements:

  • Move C++ wrapper into a CMake project for improved CI pipeline
  • Look into integrating Analysis Situs into occara

@maximmaxim345 maximmaxim345 changed the title WIP feat(occara): Implement Rust bindings for creating the OpenCASCADE bottle example feat(occara): Implement Rust bindings for creating the OpenCASCADE bottle example Mar 21, 2024
@maximmaxim345 maximmaxim345 enabled auto-merge March 23, 2024 15:34
@maximmaxim345 maximmaxim345 merged commit 33e09ae into main Mar 23, 2024
6 checks passed
@maximmaxim345 maximmaxim345 deleted the feat/occara-bindings branch March 23, 2024 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant