Skip to content

Conversation

@gselzer
Copy link
Collaborator

@gselzer gselzer commented Oct 15, 2025

Depends once again on #28, at least for now.

This PR fixes up both backends to enable a very basic version of multiple views per canvas. We can certainly do better on the layouts, either here or on other PRs.

Adding some tests before merge would also be a good idea!

8tsvzwoZko

gselzer added 30 commits July 10, 2025 16:57
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
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 :)
Let's just keep wx out of the CI linting...
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 :)
Along with a FIXME to clean it up later
@gselzer gselzer self-assigned this Oct 15, 2025
@gselzer gselzer added bug Something isn't working enhancement New feature or request labels Oct 15, 2025
@codecov
Copy link

codecov bot commented Oct 15, 2025

Codecov Report

❌ Patch coverage is 86.34280% with 149 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.05%. Comparing base (4e431fb) to head (9218106).

Files with missing lines Patch % Lines
src/scenex/app/_qt.py 68.99% 40 Missing ⚠️
src/scenex/app/_wx.py 73.60% 33 Missing ⚠️
src/scenex/model/_canvas.py 86.36% 15 Missing ⚠️
src/scenex/app/_jupyter.py 88.67% 12 Missing ⚠️
src/scenex/app/_auto.py 89.33% 8 Missing ⚠️
src/scenex/model/_grid.py 78.37% 8 Missing ⚠️
src/scenex/app/events/_events.py 92.00% 4 Missing ⚠️
src/scenex/imgui/_controls.py 0.00% 4 Missing ⚠️
src/scenex/model/_nodes/camera.py 92.15% 4 Missing ⚠️
src/scenex/utils/controllers.py 95.40% 4 Missing ⚠️
... and 11 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #36      +/-   ##
==========================================
+ Coverage   80.72%   82.05%   +1.33%     
==========================================
  Files          42       52      +10     
  Lines        1520     2463     +943     
==========================================
+ Hits         1227     2021     +794     
- Misses        293      442     +149     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

This way, we get updates when they are set as well as immutability. I
don't think there will be much need for updating just one of the many
values
@gselzer gselzer mentioned this pull request Dec 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant