Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

cameras and controllers refactor #382

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

Merged
merged 17 commits into from
Nov 30, 2023
Merged

Conversation

kushalkolar
Copy link
Member

@kushalkolar kushalkolar commented Nov 26, 2023

superseeds #280 #267
closes #381, closes #383

PlotArea allows changing the controller types, so all plots and subplots can have their controllers changed at any time. In gridplots, if the same controller is used for multiple subplots then it will change the controller for the other respective subplots too if it's changed for only one of the subplots within that synced-subset. Slightly inelegant implementation, we can make it better later.

Merged layouts._defaults into layouts._utils.

Adds the new controllers from pygfx:

  • panzoom
  • fly (new)
  • orbit
  • trackball (new)

Gridplot handles controllers differently now. I think the implementation isn't too complex, I realized we have no reason to have consecutive integers for controller_ids so that makes life easier! @clewis7 @ArjunPutcha please let me know asap!!

controller_types: str, list or np.ndarray, optional
            list or array that specifies the controller type for each subplot.

        controller_ids: str, list or np.ndarray of int or str ids, optional
            | If `None` a unique controller is created for each subplot
            | If "sync" all the subplots use the same controller
            | If ``numpy.array``, its shape must be the same as ``grid_shape``.

            This allows custom assignment of controllers

            | Example with integers:
            | sync first 2 plots, and sync last 2 plots: [[0, 0, 1], [2, 3, 3]]
            | Example with str subplot names:
            | list of lists of subplot names, each sublist is synced: [[subplot_a, subplot_b], [subplot_f, subplot_c]]
            | this syncs subplot_a and subplot_b together; syncs subplot_e and subplot_c together

This was referenced Nov 26, 2023
@kushalkolar kushalkolar marked this pull request as ready for review November 26, 2023 10:55
@kushalkolar kushalkolar mentioned this pull request Nov 26, 2023
17 tasks
fastplotlib/layouts/_gridplot.py Outdated Show resolved Hide resolved
fastplotlib/layouts/_gridplot.py Show resolved Hide resolved
fastplotlib/layouts/_gridplot.py Outdated Show resolved Hide resolved
fastplotlib/layouts/_gridplot.py Show resolved Hide resolved
fastplotlib/layouts/_gridplot.py Outdated Show resolved Hide resolved
fastplotlib/layouts/_gridplot.py Show resolved Hide resolved
fastplotlib/layouts/_gridplot.py Outdated Show resolved Hide resolved
fastplotlib/layouts/_subplot.py Show resolved Hide resolved
kushalkolar and others added 4 commits November 29, 2023 12:33
Co-authored-by: Caitlin Lewis <69729525+clewis7@users.noreply.github.com>
Co-authored-by: Caitlin Lewis <69729525+clewis7@users.noreply.github.com>
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.

Use PerspectiveCamera for everything Allow changing the cameras and controllers dynamically
2 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.