-
Notifications
You must be signed in to change notification settings - Fork 3
feat: lines #33
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
base: main
Are you sure you want to change the base?
feat: lines #33
Conversation
Defines how 2D view NDC are mapped to vectors in 3D space
In the pursuit of a single source of truth, let's resort to the projection matrix (when/if possible?) for this.
For some reason, if I don't do this, the Matrix3D constructor RESURRECTS some previous matrix I used in a previous test
Thanks to @tlambert03 for the suggestion. Could probably be cleaned up further, but at least this is a step in the right direction!
Eventually, we'll want to compute grids ourselves on the model side, I think, but for now this works
...man, this feels so good
It's worse :)
Notably, this limits the type of pygfx-specific interaction available. But we need a scenex version of this anyways - planning to implement the beginnings of this with events
Still need to add that functionality to child nodes...somehow :)
I just want the tests passing man
Currently being hit by not having this with wxPython
This is a clean solution for implementing "on-leave" behavior. In NDV's case, it's needed to clear the hover info when the cursor leaves the image.
scenex image/volume nodes have pixel centers at integer coordinates. Our math needs to reflect that
Tried my best to explain via comments why I think it's the right choice
Also needed for ndv :)
Vectorized, Documented
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #33 +/- ##
==========================================
+ Coverage 80.72% 83.28% +2.56%
==========================================
Files 42 55 +13
Lines 1520 2543 +1023
==========================================
+ Hits 1227 2118 +891
- Misses 293 425 +132 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Just added a rudimentary color model as a part of this PR. I'm sure it could use some adjustment later on, but it does the job of expressing different color options within the models. |
This is another addendum to #28 - this time adding support for lines. The GIF below shows a simple example I cooked up where clicking and dragging the sinusoid adjusts the phase to remain under the user's cursor.
Lines are trickier than theMeshes added in #32 or the existing images/volumes because their appearance (namely their width) is defined in pixel space, not in world space (there's actually a similarity here to thePointsnode, which are at this point improperly handled, and would also be nice for aTextnode, which I may want to implement soon). This means that we have to compute the intersection in canvas space.This PR enables that by giving the
Rayobject access to theViewcapturing the user's event. I'm open to alternative designs here for sure.I think that a follow-up PR would be good for adjusting the
Points class to similarly perform its intersection checks in canvas space. We could even consider checking all intersections in canvas space, although I'd rather not redo that work 😅.