Blender  V3.3
Classes | Functions
blender::ed::spreadsheet Namespace Reference

Classes

class  SpreadsheetCache
 
class  ColumnValues
 
class  DataSource
 
class  GeometryComponentCacheKey
 
class  GeometryComponentCacheValue
 
class  ExtraColumns
 
class  GeometryDataSource
 
class  VolumeDataSource
 
class  GeometryDataSetTreeViewItem
 
class  GeometryDataSetTreeView
 
struct  CellDrawParams
 
class  SpreadsheetDrawer
 
class  SpreadsheetLayoutDrawer
 
struct  ColumnLayout
 
struct  SpreadsheetLayout
 

Functions

eSpreadsheetColumnValueType cpp_type_to_column_type (const CPPType &type)
 
SpreadsheetColumnID * spreadsheet_column_id_new ()
 
SpreadsheetColumnID * spreadsheet_column_id_copy (const SpreadsheetColumnID *src_column_id)
 
void spreadsheet_column_id_free (SpreadsheetColumnID *column_id)
 
SpreadsheetColumn * spreadsheet_column_new (SpreadsheetColumnID *column_id)
 
void spreadsheet_column_assign_runtime_data (SpreadsheetColumn *column, const eSpreadsheetColumnValueType data_type, const StringRefNull display_name)
 
SpreadsheetColumn * spreadsheet_column_copy (const SpreadsheetColumn *src_column)
 
void spreadsheet_column_free (SpreadsheetColumn *column)
 
static SpreadsheetContextObject * spreadsheet_context_object_new ()
 
static SpreadsheetContextObject * spreadsheet_context_object_copy (const SpreadsheetContextObject *src_context)
 
static void spreadsheet_context_object_hash (const SpreadsheetContextObject *context, BLI_HashMurmur2A *mm2)
 
static void spreadsheet_context_object_free (SpreadsheetContextObject *context)
 
static SpreadsheetContextModifier * spreadsheet_context_modifier_new ()
 
static SpreadsheetContextModifier * spreadsheet_context_modifier_copy (const SpreadsheetContextModifier *src_context)
 
static void spreadsheet_context_modifier_hash (const SpreadsheetContextModifier *context, BLI_HashMurmur2A *mm2)
 
static void spreadsheet_context_modifier_free (SpreadsheetContextModifier *context)
 
static SpreadsheetContextNode * spreadsheet_context_node_new ()
 
static SpreadsheetContextNode * spreadsheet_context_node_copy (const SpreadsheetContextNode *src_context)
 
static void spreadsheet_context_node_hash (const SpreadsheetContextNode *context, BLI_HashMurmur2A *mm2)
 
static void spreadsheet_context_node_free (SpreadsheetContextNode *context)
 
SpreadsheetContext * spreadsheet_context_new (eSpaceSpreadsheet_ContextType type)
 
SpreadsheetContext * spreadsheet_context_copy (const SpreadsheetContext *old_context)
 
static void spreadsheet_context_hash (const SpreadsheetContext *context, BLI_HashMurmur2A *mm2)
 
void spreadsheet_context_free (SpreadsheetContext *context)
 
static bool spreadsheet_context_update_tag (SpaceSpreadsheet *sspreadsheet)
 
GeometrySet spreadsheet_get_display_geometry_set (const SpaceSpreadsheet *sspreadsheet, Object *object_eval)
 
static void find_fields_to_evaluate (const SpaceSpreadsheet *sspreadsheet, Map< std::string, GField > &r_fields)
 
static void add_fields_as_extra_columns (SpaceSpreadsheet *sspreadsheet, const GeometryComponent &component, ExtraColumns &r_extra_columns)
 
std::unique_ptr< DataSource > data_source_from_geometry (const bContext *C, Object *object_eval)
 
void spreadsheet_data_set_panel_draw (const bContext *C, Panel *panel)
 
static void draw_index_column_background (const uint pos, const ARegion *region, const SpreadsheetDrawer &drawer)
 
static void draw_alternating_row_overlay (const uint pos, const int scroll_offset_y, const ARegion *region, const SpreadsheetDrawer &drawer)
 
static void draw_top_row_background (const uint pos, const ARegion *region, const SpreadsheetDrawer &drawer)
 
static void draw_separator_lines (const uint pos, const int scroll_offset_x, const ARegion *region, const SpreadsheetDrawer &drawer)
 
static void get_visible_rows (const SpreadsheetDrawer &drawer, const ARegion *region, const int scroll_offset_y, int *r_first_row, int *r_max_visible_rows)
 
static void draw_left_column_content (const int scroll_offset_y, const bContext *C, ARegion *region, const SpreadsheetDrawer &drawer)
 
static void draw_top_row_content (const bContext *C, ARegion *region, const SpreadsheetDrawer &drawer, const int scroll_offset_x)
 
static void draw_cell_contents (const bContext *C, ARegion *region, const SpreadsheetDrawer &drawer, const int scroll_offset_x, const int scroll_offset_y)
 
static void update_view2d_tot_rect (const SpreadsheetDrawer &drawer, ARegion *region, const int row_amount)
 
void draw_spreadsheet_in_region (const bContext *C, ARegion *region, const SpreadsheetDrawer &drawer)
 
void spreadsheet_data_set_region_panels_register (ARegionType &region_type)
 
std::unique_ptr< SpreadsheetDrawer > spreadsheet_drawer_from_layout (const SpreadsheetLayout &spreadsheet_layout)
 
template<typename T , typename OperationFn >
static void apply_filter_operation (const VArray< T > &data, OperationFn check_fn, const IndexMask mask, Vector< int64_t > &new_indices)
 
static void apply_row_filter (const SpreadsheetRowFilter &row_filter, const Map< StringRef, const ColumnValues * > &columns, const IndexMask prev_mask, Vector< int64_t > &new_indices)
 
static bool use_row_filters (const SpaceSpreadsheet &sspreadsheet)
 
static bool use_selection_filter (const SpaceSpreadsheet &sspreadsheet, const DataSource &data_source)
 
IndexMask spreadsheet_filter_rows (const SpaceSpreadsheet &sspreadsheet, const SpreadsheetLayout &spreadsheet_layout, const DataSource &data_source, ResourceScope &scope)
 
SpreadsheetRowFilter * spreadsheet_row_filter_new ()
 
SpreadsheetRowFilter * spreadsheet_row_filter_copy (const SpreadsheetRowFilter *src_row_filter)
 
void spreadsheet_row_filter_free (SpreadsheetRowFilter *row_filter)
 

Function Documentation

◆ add_fields_as_extra_columns()

static void blender::ed::spreadsheet::add_fields_as_extra_columns ( SpaceSpreadsheet *  sspreadsheet,
const GeometryComponent &  component,
ExtraColumns &  r_extra_columns 
)
static

◆ apply_filter_operation()

template<typename T , typename OperationFn >
static void blender::ed::spreadsheet::apply_filter_operation ( const VArray< T > &  data,
OperationFn  check_fn,
const IndexMask  mask,
Vector< int64_t > &  new_indices 
)
static

◆ apply_row_filter()

static void blender::ed::spreadsheet::apply_row_filter ( const SpreadsheetRowFilter &  row_filter,
const Map< StringRef, const ColumnValues * > &  columns,
const IndexMask  prev_mask,
Vector< int64_t > &  new_indices 
)
static

◆ cpp_type_to_column_type()

eSpreadsheetColumnValueType blender::ed::spreadsheet::cpp_type_to_column_type ( const CPPType &  type)

◆ data_source_from_geometry()

std::unique_ptr< DataSource > blender::ed::spreadsheet::data_source_from_geometry ( const bContext *  C,
Object *  object_eval 
)

◆ draw_alternating_row_overlay()

static void blender::ed::spreadsheet::draw_alternating_row_overlay ( const uint  pos,
const int  scroll_offset_y,
const ARegion *  region,
const SpreadsheetDrawer &  drawer 
)
static

◆ draw_cell_contents()

static void blender::ed::spreadsheet::draw_cell_contents ( const bContext *  C,
ARegion *  region,
const SpreadsheetDrawer &  drawer,
const int  scroll_offset_x,
const int  scroll_offset_y 
)
static

◆ draw_index_column_background()

static void blender::ed::spreadsheet::draw_index_column_background ( const uint  pos,
const ARegion *  region,
const SpreadsheetDrawer &  drawer 
)
static

◆ draw_left_column_content()

static void blender::ed::spreadsheet::draw_left_column_content ( const int  scroll_offset_y,
const bContext *  C,
ARegion *  region,
const SpreadsheetDrawer &  drawer 
)
static

◆ draw_separator_lines()

static void blender::ed::spreadsheet::draw_separator_lines ( const uint  pos,
const int  scroll_offset_x,
const ARegion *  region,
const SpreadsheetDrawer &  drawer 
)
static

◆ draw_spreadsheet_in_region()

void blender::ed::spreadsheet::draw_spreadsheet_in_region ( const bContext *  C,
ARegion *  region,
const SpreadsheetDrawer &  drawer 
)

◆ draw_top_row_background()

static void blender::ed::spreadsheet::draw_top_row_background ( const uint  pos,
const ARegion *  region,
const SpreadsheetDrawer &  drawer 
)
static

◆ draw_top_row_content()

static void blender::ed::spreadsheet::draw_top_row_content ( const bContext *  C,
ARegion *  region,
const SpreadsheetDrawer &  drawer,
const int  scroll_offset_x 
)
static

◆ find_fields_to_evaluate()

static void blender::ed::spreadsheet::find_fields_to_evaluate ( const SpaceSpreadsheet *  sspreadsheet,
Map< std::string, GField > &  r_fields 
)
static

◆ get_visible_rows()

static void blender::ed::spreadsheet::get_visible_rows ( const SpreadsheetDrawer &  drawer,
const ARegion *  region,
const int  scroll_offset_y,
int *  r_first_row,
int *  r_max_visible_rows 
)
static

◆ spreadsheet_column_assign_runtime_data()

void blender::ed::spreadsheet::spreadsheet_column_assign_runtime_data ( SpreadsheetColumn *  column,
const eSpreadsheetColumnValueType  data_type,
const StringRefNull  display_name 
)

◆ spreadsheet_column_copy()

SpreadsheetColumn * blender::ed::spreadsheet::spreadsheet_column_copy ( const SpreadsheetColumn *  src_column)

◆ spreadsheet_column_free()

void blender::ed::spreadsheet::spreadsheet_column_free ( SpreadsheetColumn *  column)

◆ spreadsheet_column_id_copy()

SpreadsheetColumnID * blender::ed::spreadsheet::spreadsheet_column_id_copy ( const SpreadsheetColumnID *  src_column_id)

◆ spreadsheet_column_id_free()

void blender::ed::spreadsheet::spreadsheet_column_id_free ( SpreadsheetColumnID *  column_id)

Definition at line 70 of file spreadsheet_column.cc.

References MEM_freeN, and SpreadsheetColumnID::name.

Referenced by spreadsheet_column_free().

◆ spreadsheet_column_id_new()

SpreadsheetColumnID * blender::ed::spreadsheet::spreadsheet_column_id_new ( )

Definition at line 57 of file spreadsheet_column.cc.

Referenced by spreadsheet_column_id_copy().

◆ spreadsheet_column_new()

SpreadsheetColumn * blender::ed::spreadsheet::spreadsheet_column_new ( SpreadsheetColumnID *  column_id)

Definition at line 78 of file spreadsheet_column.cc.

References SpreadsheetColumn::id.

Referenced by spreadsheet_column_copy().

◆ spreadsheet_context_copy()

SpreadsheetContext * blender::ed::spreadsheet::spreadsheet_context_copy ( const SpreadsheetContext *  old_context)

◆ spreadsheet_context_free()

void blender::ed::spreadsheet::spreadsheet_context_free ( SpreadsheetContext *  context)

◆ spreadsheet_context_hash()

static void blender::ed::spreadsheet::spreadsheet_context_hash ( const SpreadsheetContext *  context,
BLI_HashMurmur2A *  mm2 
)
static

◆ spreadsheet_context_modifier_copy()

static SpreadsheetContextModifier* blender::ed::spreadsheet::spreadsheet_context_modifier_copy ( const SpreadsheetContextModifier *  src_context)
static

◆ spreadsheet_context_modifier_free()

static void blender::ed::spreadsheet::spreadsheet_context_modifier_free ( SpreadsheetContextModifier *  context)
static

Definition at line 88 of file spreadsheet_context.cc.

References blender::compositor::context, and MEM_freeN.

Referenced by spreadsheet_context_free().

◆ spreadsheet_context_modifier_hash()

static void blender::ed::spreadsheet::spreadsheet_context_modifier_hash ( const SpreadsheetContextModifier *  context,
BLI_HashMurmur2A *  mm2 
)
static

Definition at line 80 of file spreadsheet_context.cc.

References BLI_hash_mm2a_add(), and blender::compositor::context.

Referenced by spreadsheet_context_hash().

◆ spreadsheet_context_modifier_new()

static SpreadsheetContextModifier* blender::ed::spreadsheet::spreadsheet_context_modifier_new ( )
static

◆ spreadsheet_context_new()

SpreadsheetContext * blender::ed::spreadsheet::spreadsheet_context_new ( eSpaceSpreadsheet_ContextType  type)

◆ spreadsheet_context_node_copy()

static SpreadsheetContextNode* blender::ed::spreadsheet::spreadsheet_context_node_copy ( const SpreadsheetContextNode *  src_context)
static

◆ spreadsheet_context_node_free()

static void blender::ed::spreadsheet::spreadsheet_context_node_free ( SpreadsheetContextNode *  context)
static

Definition at line 121 of file spreadsheet_context.cc.

References blender::compositor::context, and MEM_freeN.

Referenced by spreadsheet_context_free().

◆ spreadsheet_context_node_hash()

static void blender::ed::spreadsheet::spreadsheet_context_node_hash ( const SpreadsheetContextNode *  context,
BLI_HashMurmur2A *  mm2 
)
static

Definition at line 113 of file spreadsheet_context.cc.

References BLI_hash_mm2a_add(), and blender::compositor::context.

Referenced by spreadsheet_context_hash().

◆ spreadsheet_context_node_new()

static SpreadsheetContextNode* blender::ed::spreadsheet::spreadsheet_context_node_new ( )
static

◆ spreadsheet_context_object_copy()

static SpreadsheetContextObject* blender::ed::spreadsheet::spreadsheet_context_object_copy ( const SpreadsheetContextObject *  src_context)
static

◆ spreadsheet_context_object_free()

static void blender::ed::spreadsheet::spreadsheet_context_object_free ( SpreadsheetContextObject *  context)
static

Definition at line 58 of file spreadsheet_context.cc.

References blender::compositor::context, and MEM_freeN.

Referenced by spreadsheet_context_free().

◆ spreadsheet_context_object_hash()

static void blender::ed::spreadsheet::spreadsheet_context_object_hash ( const SpreadsheetContextObject *  context,
BLI_HashMurmur2A *  mm2 
)
static

Definition at line 52 of file spreadsheet_context.cc.

References BLI_hash_mm2a_add(), and blender::compositor::context.

Referenced by spreadsheet_context_hash().

◆ spreadsheet_context_object_new()

static SpreadsheetContextObject* blender::ed::spreadsheet::spreadsheet_context_object_new ( )
static

◆ spreadsheet_context_update_tag()

static bool blender::ed::spreadsheet::spreadsheet_context_update_tag ( SpaceSpreadsheet *  sspreadsheet)
static

Tag any data relevant to the spreadsheet's context for recalculation in order to collect information to display in the editor, which may be cached during evaluation.

Returns
True when any data has been tagged for update.

Definition at line 206 of file spreadsheet_context.cc.

References SpaceSpreadsheet::context_path, DEG_id_tag_update(), Object::id, ID_RECALC_GEOMETRY, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), SpreadsheetContextObject::object, blender::Vector< T, InlineBufferCapacity, Allocator >::size(), SPREADSHEET_CONTEXT_OBJECT, and type.

Referenced by ED_spreadsheet_context_path_update_tag().

◆ spreadsheet_data_set_panel_draw()

void blender::ed::spreadsheet::spreadsheet_data_set_panel_draw ( const bContext *  C,
Panel *  panel 
)

◆ spreadsheet_data_set_region_panels_register()

void blender::ed::spreadsheet::spreadsheet_data_set_region_panels_register ( ARegionType &  region_type)

◆ spreadsheet_drawer_from_layout()

std::unique_ptr< SpreadsheetDrawer > blender::ed::spreadsheet::spreadsheet_drawer_from_layout ( const SpreadsheetLayout &  spreadsheet_layout)

Definition at line 365 of file spreadsheet_layout.cc.

Referenced by spreadsheet_main_region_draw().

◆ spreadsheet_filter_rows()

IndexMask blender::ed::spreadsheet::spreadsheet_filter_rows ( const SpaceSpreadsheet &  sspreadsheet,
const SpreadsheetLayout &  spreadsheet_layout,
const DataSource &  data_source,
ResourceScope &  scope 
)

◆ spreadsheet_get_display_geometry_set()

GeometrySet blender::ed::spreadsheet::spreadsheet_get_display_geometry_set ( const SpaceSpreadsheet *  sspreadsheet,
Object *  object_eval 
)

◆ spreadsheet_row_filter_copy()

SpreadsheetRowFilter * blender::ed::spreadsheet::spreadsheet_row_filter_copy ( const SpreadsheetRowFilter *  src_row_filter)

◆ spreadsheet_row_filter_free()

void blender::ed::spreadsheet::spreadsheet_row_filter_free ( SpreadsheetRowFilter *  row_filter)

◆ spreadsheet_row_filter_new()

SpreadsheetRowFilter * blender::ed::spreadsheet::spreadsheet_row_filter_new ( )

◆ update_view2d_tot_rect()

static void blender::ed::spreadsheet::update_view2d_tot_rect ( const SpreadsheetDrawer &  drawer,
ARegion *  region,
const int  row_amount 
)
static

◆ use_row_filters()

static bool blender::ed::spreadsheet::use_row_filters ( const SpaceSpreadsheet &  sspreadsheet)
static

◆ use_selection_filter()

static bool blender::ed::spreadsheet::use_selection_filter ( const SpaceSpreadsheet &  sspreadsheet,
const DataSource &  data_source 
)
static