Objective
You will need to figure out how to perform matrix transformations on Curves (from anari/geometry.hpp) using Eigen. You can use the existing Anari Renderer to verify your work.
This attempt will ultimately be discarded, not landed! The Differential will exist for reference, but you won't be landing this code to master. Instead, you'll take what you learn here to implement transformations in production code in Anari very soon.
Aim to only take about 2-3 weeks on this task.
Dependencies and Tools
All of the following libraries are already linked to rA, either via rLIB or as system-wide dependencies (see the link "Guide: Building Code" below). Use them as needed, and ensure your implementation is compatible as necessary.
- Cairo: Vector drawing
- Eigen: Linear algebra library
- eventpp: Signals and callbacks
- PawLIB: Testing, Utilities
- SDL2: Rendering, hardware layer access
Tips
You should work on a fresh branch of Anari (git checkout -B transform to create a branch called transform). While you should still upload your work each day to Differential (arc diff), you'll ultimately be abandoning that revision and reimplementing the production code on another fresh branch.
You do not have to add reviewers to your Differential. We might still provide feedback, but the Differential is not intended to be landed, so it doesn't need formal review.
Add #nobuild and #notest to the Subscribers: section of your Differential when you first create it with arc diff. This will ensure the build system (CI) doesn't try to build your code.
You should get into the habit now of marking your Differential with Plan Changes through the web interface, to indicate that you're still working on it. The only time that you wouldn't mark a Differential as Plan Changes is when you're ready for it to be reviewed for landing.
You may consider asking @imirzali for help getting the rendering working with your code.