148 switch (old_context->
type) {
218 if (
object ==
nullptr) {
221 if (context_path.
size() == 1) {
286 if (modifier ==
nullptr) {
338 if (context_hash_before != context_hash_after) {
368 return main_area->
full;
412 if (active_object !=
nullptr) {
433 if (
object ==
nullptr) {
436 if (context_path.
size() == 1) {
441 return object == active_object;
451 if (modifier ==
nullptr) {
459 if (root_node_tree ==
nullptr) {
478 if (snode->
nodetree != root_node_tree) {
481 if (!modifier_is_active) {
487 if (snode->
id != &object->
id) {
491 if (node_context_path.
size() != tree_path.
size()) {
505 if (valid_count != tree_path.
size() - 1) {
514 if (
node ==
nullptr) {
539 if (
object ==
nullptr) {
542 if (context_path.
size() == 1) {
550 if (modifier ==
nullptr) {
557 if (root_node_tree ==
nullptr) {
565 for (
const int i : node_context_path.
index_range()) {
571 if (
node ==
nullptr) {
580 if (
node->id !=
nullptr) {
struct Object * CTX_data_active_object(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
struct ModifierData * BKE_modifiers_findby_name(const struct Object *ob, const char *name)
struct bNode * nodeFindNodebyName(struct bNodeTree *ntree, const char *name)
General operations, lookup, etc. for blender objects.
struct ModifierData * BKE_object_active_modifier(const struct Object *ob)
struct bScreen * BKE_workspace_active_screen_get(const struct WorkSpaceInstanceHook *hook) GETTER_ATTRS
#define BLI_assert_unreachable()
void BLI_hash_mm2a_init(BLI_HashMurmur2A *mm2, uint32_t seed)
void BLI_hash_mm2a_add(BLI_HashMurmur2A *mm2, const unsigned char *data, size_t len)
void BLI_hash_mm2a_add_int(BLI_HashMurmur2A *mm2, int data)
uint32_t BLI_hash_mm2a_end(BLI_HashMurmur2A *mm2)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
#define LISTBASE_FOREACH_INDEX(type, var, list, index_var)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
void DEG_id_tag_update(struct ID *id, int flag)
eSpaceSpreadsheet_ContextType
@ SPREADSHEET_CONTEXT_OBJECT
@ SPREADSHEET_CONTEXT_MODIFIER
@ SPREADSHEET_CONTEXT_NODE
@ SPREADSHEET_OBJECT_EVAL_STATE_VIEWER_NODE
@ SPREADSHEET_FLAG_PINNED
void ED_area_tag_redraw(ScrArea *area)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
constexpr int64_t last(const int64_t n=0) const
constexpr const T & last(const int64_t n=0) const
constexpr int64_t size() const
constexpr IndexRange index_range() const
constexpr bool is_empty() const
Span< T > as_span() const
static const char * modifier_name[LS_MODIFIER_NUM]
void(* MEM_freeN)(void *vmemh)
static void area(int d1, int d2, int e1, int e2, float weights[2])
static int node_context(const bContext *C, const char *member, bContextDataResult *result)
static SpreadsheetContextModifier * spreadsheet_context_modifier_new()
SpreadsheetContext * spreadsheet_context_copy(const SpreadsheetContext *old_context)
void spreadsheet_context_free(SpreadsheetContext *context)
static bool spreadsheet_context_update_tag(SpaceSpreadsheet *sspreadsheet)
static void spreadsheet_context_modifier_hash(const SpreadsheetContextModifier *context, BLI_HashMurmur2A *mm2)
static SpreadsheetContextModifier * spreadsheet_context_modifier_copy(const SpreadsheetContextModifier *src_context)
static SpreadsheetContextNode * spreadsheet_context_node_copy(const SpreadsheetContextNode *src_context)
static void spreadsheet_context_modifier_free(SpreadsheetContextModifier *context)
static void spreadsheet_context_node_hash(const SpreadsheetContextNode *context, BLI_HashMurmur2A *mm2)
static void spreadsheet_context_node_free(SpreadsheetContextNode *context)
static void spreadsheet_context_object_free(SpreadsheetContextObject *context)
SpreadsheetContext * spreadsheet_context_new(eSpaceSpreadsheet_ContextType type)
static void spreadsheet_context_hash(const SpreadsheetContext *context, BLI_HashMurmur2A *mm2)
static SpreadsheetContextObject * spreadsheet_context_object_new()
static SpreadsheetContextObject * spreadsheet_context_object_copy(const SpreadsheetContextObject *src_context)
static SpreadsheetContextNode * spreadsheet_context_node_new()
static void spreadsheet_context_object_hash(const SpreadsheetContextObject *context, BLI_HashMurmur2A *mm2)
void ED_spreadsheet_context_path_set_geometry_node(struct SpaceSpreadsheet *sspreadsheet, struct SpaceNode *snode, struct bNode *node)
uint64_t ED_spreadsheet_context_path_hash(const SpaceSpreadsheet *sspreadsheet)
bool ED_spreadsheet_context_path_update_tag(SpaceSpreadsheet *sspreadsheet)
bool ED_spreadsheet_context_path_is_active(const bContext *C, SpaceSpreadsheet *sspreadsheet)
static bScreen * find_screen_to_search_for_context(wmWindow *window, SpaceSpreadsheet *current_space)
SpreadsheetContext * ED_spreadsheet_context_new(int type)
void ED_spreadsheet_context_path_set_evaluated_object(SpaceSpreadsheet *sspreadsheet, Object *object)
void ED_spreadsheet_context_paths_set_geometry_node(Main *bmain, SpaceNode *snode, bNode *node)
void ED_spreadsheet_context_path_clear(struct SpaceSpreadsheet *sspreadsheet)
bool ED_spreadsheet_context_path_exists(Main *UNUSED(bmain), SpaceSpreadsheet *sspreadsheet)
void ED_spreadsheet_context_free(struct SpreadsheetContext *context)
void ED_spreadsheet_context_path_guess(const bContext *C, SpaceSpreadsheet *sspreadsheet)
unsigned __int64 uint64_t
struct bNodeTree * node_group
struct bNodeTree * edittree
struct bNodeTree * nodetree
uint8_t object_eval_state
struct WorkSpaceInstanceHook * workspace_hook