diff options
author | Hans Goudey <h.goudey@me.com> | 2021-12-15 18:34:13 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-12-15 18:34:13 +0300 |
commit | 474adc6f883c2d5a854d7324364f7996044d83cb (patch) | |
tree | 7ed0cf70d7195526e389c586fdd87af193c8215b /source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.hh | |
parent | d79868c4e678b22f7f277d98ae3ce729893fdfb7 (diff) |
Refactor: Simplify spreadsheet handling of cell values
Previously we used a `CellValue` class to hold the data for a cell,
and called a function to fill it whenever necessary. This is an
unnecessary complication when we have virtual generic arrays
and most data is already easily accessible that way anyway.
This patch removes `CellValue` and uses `fn::GVArray` to provide
access to data instead.
In the future, if rows have different types within a single column,
we can use a `GVArray` of `blender::Any` to interface with the drawing.
Along with that, the use of virtual arrays made it easy to do a
few other cleanups:
- Use selection domain interpolations from rB5841f8656d95
for the mesh selection filter.
- Change the row filter to only calculate for necessary indices.
Differential Revision: https://developer.blender.org/D13478
Diffstat (limited to 'source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.hh')
-rw-r--r-- | source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.hh | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.hh b/source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.hh index 23207734d2b..b5105050d2b 100644 --- a/source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.hh +++ b/source/blender/editors/space_spreadsheet/spreadsheet_data_source_geometry.hh @@ -87,7 +87,7 @@ class GeometryDataSource : public DataSource { * filtering. */ bool has_selection_filter() const override; - void apply_selection_filter(MutableSpan<bool> rows_included) const; + IndexMask apply_selection_filter(Vector<int64_t> &indices) const; void foreach_default_column_ids( FunctionRef<void(const SpreadsheetColumnID &, bool is_extra)> fn) const override; |