[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