Blender V5.0
depsgraph_query_iter.cc File Reference
#include "BKE_duplilist.hh"
#include "BKE_idprop.hh"
#include "BKE_layer.hh"
#include "BKE_modifier.hh"
#include "BKE_node.hh"
#include "BKE_object.hh"
#include "BKE_object_types.hh"
#include "BLI_listbase.h"
#include "BLI_math_matrix.h"
#include "BLI_math_vector.h"
#include "BLI_utildefines.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_query.hh"
#include "intern/depsgraph.hh"
#include "intern/node/deg_node_id.hh"
#include "intern/eval/deg_eval_copy_on_write.h"

Go to the source code of this file.

Macros

#define DNA_DEPRECATED_ALLOW
#define INVALIDATE_WORK_DATA

Functions

static Objectfind_object_with_preview_geometry (const ViewerPath &viewer_path)
void DEG_iterator_objects_begin (BLI_Iterator *iter, DEGObjectIterData *data)
void DEG_iterator_objects_next (BLI_Iterator *iter)
void DEG_iterator_objects_end (BLI_Iterator *iter)
static void DEG_iterator_ids_step (BLI_Iterator *iter, deg::IDNode *id_node, bool only_updated)
void DEG_iterator_ids_begin (BLI_Iterator *iter, DEGIDIterData *data)
void DEG_iterator_ids_next (BLI_Iterator *iter)
void DEG_iterator_ids_end (BLI_Iterator *)
bool DEG_iterator_object_is_visible (eEvaluationMode eval_mode, const Object *ob)
bool DEG_iterator_dupli_is_visible (const DupliObject *dupli, eEvaluationMode eval_mode)
static void ensure_id_properties_freed (const IDProperty *dupli_idprops, IDProperty **temp_dupli_idprops)
void DEG_iterator_temp_object_free_properties (const DupliObject *dupli, Object *temp_object)
bool DEG_iterator_temp_object_from_dupli (const Object *dupli_parent, const DupliObject *dupli, eEvaluationMode eval_mode, bool do_matrix_setup, Object *r_temp_object, ObjectRuntimeHandle *r_temp_runtime)

Detailed Description

Implementation of Querying and Filtering API's

Definition in file depsgraph_query_iter.cc.

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 12 of file depsgraph_query_iter.cc.

◆ INVALIDATE_WORK_DATA

#define INVALIDATE_WORK_DATA

Definition at line 46 of file depsgraph_query_iter.cc.

Function Documentation

◆ DEG_iterator_dupli_is_visible()

bool DEG_iterator_dupli_is_visible ( const DupliObject * dupli,
eEvaluationMode eval_mode )

Returns true if the dupli instance should be visible on the given context.

Definition at line 478 of file depsgraph_query_iter.cc.

References GS, ID_MB, ID::name, DupliObject::no_draw, DupliObject::ob, DupliObject::ob_data, OB_MBALL, and Object::type.

Referenced by blender::draw::foreach_obref_in_scene().

◆ DEG_iterator_ids_begin()

◆ DEG_iterator_ids_end()

void DEG_iterator_ids_end ( BLI_Iterator * iter)

Definition at line 468 of file depsgraph_query_iter.cc.

◆ DEG_iterator_ids_next()

◆ DEG_iterator_ids_step()

◆ DEG_iterator_object_is_visible()

bool DEG_iterator_object_is_visible ( eEvaluationMode eval_mode,
const Object * ob )

Returns true if the object should be visible on the given context.

Definition at line 470 of file depsgraph_query_iter.cc.

References OB_MBALL, and Object::type.

Referenced by blender::draw::foreach_obref_in_scene().

◆ DEG_iterator_objects_begin()

◆ DEG_iterator_objects_end()

void DEG_iterator_objects_end ( BLI_Iterator * iter)

Definition at line 381 of file depsgraph_query_iter.cc.

References BLI_Iterator::data, and data.

◆ DEG_iterator_objects_next()

void DEG_iterator_objects_next ( BLI_Iterator * iter)

Definition at line 361 of file depsgraph_query_iter.cc.

References BLI_Iterator::data, and data.

◆ DEG_iterator_temp_object_free_properties()

void evil::DEG_iterator_temp_object_free_properties ( const DupliObject * dupli,
Object * temp_object )

WARNING: DON'T USE!!! Frees any property allocated when calling DEG_iterator_temp_object_from_dupli.

Definition at line 364 of file depsgraph_query_iter.cc.

References BLI_Iterator::current, data, and BLI_Iterator::valid.

◆ DEG_iterator_temp_object_from_dupli()

bool evil::DEG_iterator_temp_object_from_dupli ( const Object * dupli_parent,
const DupliObject * dupli,
eEvaluationMode eval_mode,
bool do_matrix_setup,
Object * r_temp_object,
ObjectRuntimeHandle * r_temp_runtime )
nodiscard

WARNING: DON'T USE!!!

These functions are exposed publicly as a temporary measure while we figure out how to fully get rid of temporary objects in the Draw module (See #144811).

DON'T ADD NEW USE CASES FOR THESE FUNCTIONS. WARNING: DON'T USE!!! Generates a temporary object for a given dupli instance.

Returns true if the resulting object should be visible, otherwise the temp object should be considered invalid. NOTE: DEG_iterator_temp_object_free_properties should be called regardless.

Parameters
do_matrix_setupIf false, the temp_object won't have valid object_to_world/world_to_object matrices, and the OB_NEG_SCALE flag will never be set.

Definition at line 353 of file depsgraph_query_iter.cc.

References data, and find_object_with_preview_geometry().

◆ ensure_id_properties_freed()

void ensure_id_properties_freed ( const IDProperty * dupli_idprops,
IDProperty ** temp_dupli_idprops )
static

◆ find_object_with_preview_geometry()