[Bf-blender-cvs] [5cbecde9c73] spreadsheet-active-node: node in spreadsheet
Jacques Lucke
noreply at git.blender.org
Wed Mar 31 13:31:15 CEST 2021
Commit: 5cbecde9c738ceedf87834a8fcd2d6fe58d71d14
Author: Jacques Lucke
Date: Wed Mar 31 12:16:01 2021 +0200
Branches: spreadsheet-active-node
https://developer.blender.org/rB5cbecde9c738ceedf87834a8fcd2d6fe58d71d14
node in spreadsheet
===================================================================
M source/blender/editors/space_node/node_edit.c
M source/blender/editors/space_spreadsheet/spreadsheet_from_geometry.cc
M source/blender/makesdna/DNA_space_types.h
M source/blender/makesrna/intern/rna_space.c
===================================================================
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index cc05900c474..340156114e4 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -675,8 +675,10 @@ void ED_node_set_active(Main *bmain, bNodeTree *ntree, bNode *node, bool *r_acti
LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
if (area->spacetype == SPACE_SPREADSHEET) {
SpaceSpreadsheet *sspreadsheet = area->spacedata.first;
- DEG_id_tag_update(&ntree->id, ID_RECALC_COPY_ON_WRITE);
- ED_area_tag_redraw(area);
+ if (sspreadsheet->object_eval_state == SPREADSHEET_OBJECT_EVAL_STATE_NODE) {
+ DEG_id_tag_update(&ntree->id, ID_RECALC_COPY_ON_WRITE);
+ ED_area_tag_redraw(area);
+ }
}
}
}
diff --git a/source/blender/editors/space_spreadsheet/spreadsheet_from_geometry.cc b/source/blender/editors/space_spreadsheet/spreadsheet_from_geometry.cc
index 8d8ff008712..fb93337c47f 100644
--- a/source/blender/editors/space_spreadsheet/spreadsheet_from_geometry.cc
+++ b/source/blender/editors/space_spreadsheet/spreadsheet_from_geometry.cc
@@ -201,8 +201,11 @@ static GeometrySet get_display_geometry_set(SpaceSpreadsheet *sspreadsheet,
Object *object_eval,
const GeometryComponentType used_component_type)
{
- if (get_cached_geometry_set_ptr() != nullptr) {
- return *get_cached_geometry_set_ptr();
+ if (sspreadsheet->object_eval_state == SPREADSHEET_OBJECT_EVAL_STATE_NODE) {
+ if (get_cached_geometry_set_ptr() != nullptr) {
+ return *get_cached_geometry_set_ptr();
+ }
+ return {};
}
GeometrySet geometry_set;
@@ -383,7 +386,7 @@ static Span<int64_t> filter_mesh_elements_by_selection(const bContext *C,
static GeometryComponentType get_display_component_type(const bContext *C, Object *object_eval)
{
SpaceSpreadsheet *sspreadsheet = CTX_wm_space_spreadsheet(C);
- if (sspreadsheet->object_eval_state == SPREADSHEET_OBJECT_EVAL_STATE_FINAL) {
+ if (sspreadsheet->object_eval_state != SPREADSHEET_OBJECT_EVAL_STATE_ORIGINAL) {
return (GeometryComponentType)sspreadsheet->geometry_component_type;
}
if (object_eval->type == OB_POINTCLOUD) {
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index c170e711756..74d9c2bae8c 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -1885,6 +1885,7 @@ typedef enum eSpaceSpreadsheet_FilterFlag {
typedef enum eSpaceSpreadsheet_ObjectEvalState {
SPREADSHEET_OBJECT_EVAL_STATE_FINAL = 0,
SPREADSHEET_OBJECT_EVAL_STATE_ORIGINAL = 1,
+ SPREADSHEET_OBJECT_EVAL_STATE_NODE = 2,
} eSpaceSpreadsheet_Context;
/* -------------------------------------------------------------------- */
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index f9b1816e1ba..95747c18162 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -7344,6 +7344,11 @@ static void rna_def_space_spreadsheet(BlenderRNA *brna)
ICON_NONE,
"Original",
"Use data from original object without any modifiers applied"},
+ {SPREADSHEET_OBJECT_EVAL_STATE_NODE,
+ "NODE",
+ ICON_NONE,
+ "Node",
+ "Use data from the first geometry output of the active node"},
{0, NULL, 0, NULL, NULL},
};
More information about the Bf-blender-cvs
mailing list