You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* just a start
* pushing to continue on my desktop
* progress on buffer manager cleanup_key
* more progress, still lots to do
* slicing working with PointsDataFeature, negative slices too, still major WIP
* comitting stuff
* _update_range() is pretty good now
* comment
* if statement
* simply colors setting
* type annotation
* simpler slice parsing
* remove cleanup_key :D :D :D git status!
* all fancy and negative indexing working :D
* start tests
* exception message
* more on tests
* refactor sizes, not tested yet
* start parameterizing buffer tests
* better buffer tests
* more variants
* add array fancy indexing to same parameterization
* parameterize tuple tests
* remove repr
* test offset and size
* test offset and size
* test create colors
* also test with direct truth indices in colors
* points tests, works
* remove imports
* sizes test working, other cleanup
* export sizes feature again
* ideas for sharing and unsharing buffers between graphics
* ideas for sharing and unsharing buffers between graphics, nto tested
* typing
* attach and detach buffers to a graphic, not tested
* import
* more int point tests
* Graphic.add_event_handler
* adding and removing data feature event works and tested
* common features, WIP
* regular features and refactor line and scatter into positions graphic
* uniform sizes
* implement sizes and uniform size for scatter
* VertexCmap feature, not yet tested
* start image features, not tested, add thickness, not tested
* better cmap parsing
* cleanup
* image features
* cleanup
* start selection feature refactor
* more on selection features
* offset and rotation for base graphic
* feature event table
* position feature event tables
* rotation and offset features
* work on selectors, WIP, linear region selector inits properly and moves for x-axis
* proper centering
* much simpliified and better linear region selector
* linear region selector works well on x axis with events and data selection
* vertex cmap fix, delete synchronizer
* linear selector works
* cleanup
* update graphic methods mixin
* update selector example nbs, still WIP
* type annotation in setter
* add notes to tests comments
* refactor image stuff
* image selector tool
* return selectors as proxies
* image stuff works
* fix offsets adding graphics, fix positions_graphic cmap bug, quickstart runs :D
* fix add_graphic args and mixin
* simpler graphic collection stuff
* more line collection
* remove old events system
* fix some examples
* remove lingering older interaction stuff
* cleanup
* fill color arg
* black
* update examples
* fix image tiling, better heatmap example
* update hm examples
* fix hlut
* refactor graphics base
* update line examples
* bug fixes
* update text to use new gfeatures
* cleanup
* implement iterator for TextureArray, much simpler now :D
* basic texture tests
* bugfix, cleanup
* image graphic tests
* type annot
* test stuff
* tests for common and visible kwarg for Graphic
* bugfix
* test remove event hanlders common fea
* rename
* start test positions graphics
* test progress
* black
* add __len__ to buffer managers, add __array_interface__ raises error
* TextureArray has len()
* docstring
* updates and tests
* black
* uniform colors tests and bug fix
* black
* bugfix uniform color and sizes
* sizes and thickness tests
* tests update
* lotta team work
* docstring, small things
* rename UniformSizes -> UniformSize
* update graphic methods mixin
* update graphic methods mixin
* bugfix
* test data slice for positiosn graphics
* test colors property within buffer tests
* cleanup
* emit user key not parsed key
* rename cmap_values to transform
* cmap_values -> cmap_transform in mixin
* test graphics in vertex data buffer manager tests
* cmap transform tests
* make Graphic._features private, add Graphic.events property
* color events tests
* move data slice test to just buffer tests
* data events tests
* cleanup
* cleanup, remove old histogram graphic
* text changes and tests
* texture array tests with graphic
* image graphic tests
* update image features
* black
* append data and world xy for graphic pointer events
* black
* move constructor to top
* example tests for wide and square hm
* update ci
* fix message
* update examples
* bugfix, docstrings
* docstrings, exception messages
* update api docs
* apparently we use __all__ in graphics to generate api docs
* remove nbsphinx
* bump version
* docstring
* finish up line collection
* fix adding line selector to line collection
* finish line collection
* update line collection examples
* graphic collections are now iterables, add examples for setting properties, add names and metadatas args, separate kwargs for collection and individual lines
* 3d line stack example with animation
* fix line collection cmap with additional args
* black
* update kwargs for line collection because of mixin
* add numpy.integer check for buffermanager parse slice
* rename
* docstrings
* line linear selector init logic
* fix line collection init selectors
* fix selector
* add plot area hook for collections
* docstring
* update selector nbs
* update example nb
* update nb
* cleanup
* update nb
* update nbs
* feature is private class attr
* fix
* remove anim example from screenshot tests
* update screenshots
* update screenshot
* update CONTRIBUTING
* smaller hm data test for CI
* exclude heatmap change data from tests, too large RAM usage probably
* black
* change dtype to save ram usage for CI
* remove large square heatmap from screenshot tests
* black
* disable all but one hm test
* fix gc
* update screenshots
* replace one more test image
* fix docs
* update image screenshots
* fix docs
* docstrings, Graphic.events -> Graphic.supported_events
* update docs
---------
Co-authored-by: Caitlin <[email protected]>
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+23-20Lines changed: 23 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -77,35 +77,37 @@ keeps a *private* global dictionary of all `WorldObject` instances and users are
77
77
This is due to garbage collection. This may be quite complicated for beginners, for more details see this PR: https://github.com/fastplotlib/fastplotlib/pull/160 .
78
78
If you are curious or have more questions on garbage collection in fastplotlib you're welcome to post an issue :D.
79
79
80
-
#### Graphic Features
80
+
#### Graphic properties
81
81
82
-
There is one important thing that `fastplotlib` uses which we call "graphic features".
82
+
Graphic properties are all evented, and internally we called these "graphic features". They are the various
83
+
aspects of a graphic that the user can change.
83
84
The "graphic features" subpackage can be found at `fastplotlib/graphics/_features`. As we can see this
84
-
is a private subpackage and never meant to be accessible to users. In `fastplotlib` "graphic features" are the various
85
-
aspects of a graphic that the user can change. Users can also run callbacks whenever a graphic feature changes.
85
+
is a private subpackage and never meant to be accessible to users..
86
86
87
87
##### LineGraphic
88
88
89
89
For example let's look at `LineGraphic` in `fastplotlib/graphics/line.py`. Every graphic has a class variable called
90
-
`feature_events` which is a set of all graphic features. It has the following graphic features: "data", "colors", "cmap", "thickness", "present".
90
+
`_features` which is a set of all graphic properties that are evented. It has the following evented properties:
91
+
`"data", "colors", "cmap", "thickness"` in addition to properties common to all graphics, such as `"name", "offset", "rotation", and "visible"`
91
92
92
-
Now look at the constructor for `LineGraphic`, it first creates an instance of `PointsDataFeature`. This is basically a
93
-
class that wraps the positions buffer, the vertex positions that define the line, and provides additional useful functionality.
94
-
For example, every time that the `data` is changed event handlers will be called (if any event handlers are registered).
93
+
Now look at the constructor for the `LineGraphic` base class `PositionsGraphic`, it first creates an instance of `VertexPositions`.
94
+
This is a class that manages vertex positions buffer. It defines the line, and provides additional useful functionality.
95
+
For example, every time that the `data` is changed, the new data will be marked for upload to the GPU before the next draw.
96
+
In addition, event handlers will be called if any event handlers are registered.
95
97
96
-
`ColorFeature`behaves similarly, but it can perform additional parsing that can create the colors buffer from different forms of user input. For example if a user runs:
97
-
`line_graphic.colors = "blue"`, then `ColorFeature.__setitem__()` will create a buffer that corresponds to what `pygfx.Color` thinks is "blue".
98
-
Users can also take advantage of fancy indexing, ex: `line_graphics.colors[bool_array] = "red"`:smile:
98
+
`VertexColors`behaves similarly, but it can perform additional parsing that can create the colors buffer from different
99
+
forms of user input. For example if a user runs: `line_graphic.colors = "blue"`, then `VertexColors.__setitem__()` will
100
+
create a buffer that corresponds to what `pygfx.Color` thinks is "blue". Users can also take advantage of fancy indexing,
0 commit comments