Skip to content

Selection vector improve#1060

Closed
apasarkar wants to merge 134 commits into
mainfrom
selection_vector_improve
Closed

Selection vector improve#1060
apasarkar wants to merge 134 commits into
mainfrom
selection_vector_improve

Conversation

@apasarkar

Copy link
Copy Markdown
Collaborator

Addresses #1047.

Concrete changes:

  • Includes logic to block re-entrance when selections are changed
  • Includes more compact code for adding selectors to make things more declarative. Now the user just provides the selector + a global index --> local index mapping. This mapping is given by a 1D array (or a dictionary). The inverse mapping and event handler logic is dealt with internally within SelectionVector.
  • Fills in missing functionality: clear selectables, remove, remove_selector

* remove isolated_buffer

* remove isolated_buffer from mixin

* basics works for positions data

* replaceable buffers for all positions related features

* image data buffer can change

* resizeable buffers for volume

* black

* buffer resize condition checked only if new value is an array

* gc for buffer managers

* uniform colors WIP

* switching color modes works!

* typo

* balck

* update tests for color_mode

* update examples

* backend tests passing

* default for all uniforms is True

* update examples

* forgot

* update test

* example tests passing

* dereferencing test and fixes

* simplify texture array tests a bit

* image replace buffer tests pass yay

* forgot a file

* comments, check image graphic

* add image reshaping example

* add buffer replace imgui thing for manual testing

* black

* dont call wgpu_obj.destroy(), seems to work and clear VRAM with normal dereferencing

* slower changes

* update

* update example

* fixes and tweaks for test

* remove unecessary stuff

* update

* docstrings

* fix example

* update example

* update example

* update docs
* start separating iw plotting and array logic

* some more basics down

* comment

* collapse into just having a window function, no frame_function

* progress

* placeholder for computing histogram

* formatting

* remove spaghetti

* more progress

* basics working :D

* black

* most of the basics work in iw

* fix

* progress

* progress but still broken

* flippin display dims works

* camera scale must be positive for MIP rendering

* a very difficult to encounter iterator bug!

* patch iterator caveats

* mostly worksgit status

* add ArrayProtocol

* rename

* fixes

* set camera orthogonal to xy plane when going from 3d -> 2d

* naming, cleaning

* cleanup, correct way to push and pop dims

* quality of life improvements

* new histogram lut tool

* new hlut tool

* imagewidget rgb toggle works

* more progress

* support rgb(a) image volumes

* ImageGraphic cleanup

* cleanup, docs

* fix

* updates

* new per-data array properties work

* black formatting

* fixes and other things

* typing tweaks

* better iterator, fix bugs

* fixes

* show tooltips in right clck menu

* ignore nans and inf for histogram

* histogram of zeros

* docstrings

* fix imgui pixels

* iw indices event handlers only get a tuple of the indices

* bugfix

* fix cmap setter

* spatial_func better name

* bugfix

* hist specify quantile

* fix typos (#991)

* fix typos

* add rendercanvas to intersphinx_mapping

* nd-iw backup

* correct ImageGraphic w.r.t. ndw

* last fixes in ndi
kushalkolar and others added 27 commits March 20, 2026 03:26
* Includes code for doing batched transforms in both directions

* Streamlined parsing logic and updated docstrings for model to world code

* Fixes inconsistent error messages

* More streamlined type checking

* Gets rid of checks and uses np asarray

* Some more aesthetic updates to the syntax

* Update fastplotlib/graphics/_base.py

---------

Co-authored-by: Kushal Kolar <kushalkolar@gmail.com>
* async NDProcessor established, NOT TESTED

* ASYNC NDPROC IS WORKING :D :D CELEBRATE

* comments

* type annot

* fix

* fix

* polish async integration, cuda also integrated

* no longer using xarray, allow simpler ArrayProtocol

* comments

* comments

* docs
* Includes nd vector code that works

* Faster position assignment, no more for loop

* Batched computations for vector set function

* Formatting updates

* Includes improved annotations and changes ordering of the data slice from the vectors graphic

* Some further improvements to the pylinalg code

* Fixes remaining formatting and naming issues

* Apply suggestions from code review

Co-authored-by: Kushal Kolar <kushalkolar@gmail.com>

---------

Co-authored-by: Kushal Kolar <kushalkolar@gmail.com>
* Adds kwargs so user can customize vector field estimates

* Does the kwarg organization the way ndpositions does

* fixes graphic constructor
…1033)

* implement yuv and 'bufferless' TextureArraY

* unbuffered and yuv420 works

* warning on tooltip

* NDImage always uses unbuffered, support colorspaces in NDIMage

* update docstrings

* by default disable AA and set pixel_scale=1.0 for performance

* unpacked yuv support

* independent graphics and texture features for rgb and yuv

* docstrings

* docstrings

* import order

* yuv graphic working nicely

* add enum to top level namespace

* update script to produce add graphics mixin

* add yuv example

* update ndimage with yuv stuff

* fixes

* yuv video working well with NDWidget
…orCollection` (#1038)

* start selection vector stuff, protocol

* highlight selector WIP

* fixes

* progress

* lut repeat

* highlight and visibility selectors working, selection vector working

* PlotArea checks for SelectorProtocol instead, move some stuff around

* selector collection, not yet tested

* cleanup

* bugfix for linear selector limits

* add example

* better append, remove

* cleanup

* basically rewrote entire ImageHighlightSelector

* black

* happy with iamge selectors

* toy multi session example

* correct mapping stuff

* better scalar/vector handling

* comments
* allow setting texture usage directly

* ImageHighlightSelector, VisibilitySelector and ImageVisibilitySelector can handle 'None' as placeholders in the selection

* fix example
* better axes padding for tick labels, settable axis label

* cleanup

* move axes to tools

* update

* move stuff around

* update docs

* update

* update
* use fully fledged async

* better throttling

* torch.Tensor.tranpose() doesn't like tuples

* we need time-based throttling, but it can be gentler

* improvements

* improvements

* fixes

* x_range fix

* fix NDPandasProcessor

* fix

* HighlightSelector fix to append None

* cleanup better

* know ndg current dipslayed indices

* improve example

* docstrings, cleanup
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.

2 participants