Blender  V2.93
Classes | Macros | Typedefs | Enumerations | Functions
BKE_layer.h File Reference
#include "BKE_collection.h"
#include "DNA_listBase.h"

Go to the source code of this file.

Classes

struct  ObjectsVisibleIteratorData
 
struct  ObjectsInModeIteratorData
 
struct  ObjectsInViewLayerParams
 
struct  ObjectsInModeParams
 

Macros

#define TODO_LAYER_OVERRIDE   /* CollectionOverride */
 
#define TODO_LAYER_OPERATORS   /* collection mamanger and property panel operators */
 
#define TODO_LAYER   /* generic todo */
 
#define FOREACH_SELECTED_OBJECT_BEGIN(_view_layer, _v3d, _instance)
 
#define FOREACH_SELECTED_OBJECT_END
 
#define FOREACH_SELECTED_EDITABLE_OBJECT_BEGIN(_view_layer, _v3d, _instance)
 
#define FOREACH_SELECTED_EDITABLE_OBJECT_END
 
#define FOREACH_VISIBLE_OBJECT_BEGIN(_view_layer, _v3d, _instance)
 
#define FOREACH_VISIBLE_OBJECT_END
 
#define FOREACH_BASE_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance)
 
#define FOREACH_BASE_IN_MODE_END
 
#define FOREACH_BASE_IN_EDIT_MODE_BEGIN(_view_layer, _v3d, _instance)    FOREACH_BASE_IN_MODE_BEGIN (_view_layer, _v3d, -1, OB_MODE_EDIT, _instance)
 
#define FOREACH_BASE_IN_EDIT_MODE_END   FOREACH_BASE_IN_MODE_END
 
#define FOREACH_OBJECT_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance)
 
#define FOREACH_OBJECT_IN_MODE_END
 
#define FOREACH_OBJECT_IN_EDIT_MODE_BEGIN(_view_layer, _v3d, _instance)
 
#define FOREACH_OBJECT_IN_EDIT_MODE_END
 
#define FOREACH_SELECTED_BASE_BEGIN(view_layer, _instance)
 
#define FOREACH_SELECTED_BASE_END   ITER_END
 
#define FOREACH_VISIBLE_BASE_BEGIN(_view_layer, _v3d, _instance)
 
#define FOREACH_VISIBLE_BASE_END
 
#define FOREACH_OBJECT_BEGIN(view_layer, _instance)
 
#define FOREACH_OBJECT_END
 
#define FOREACH_OBJECT_FLAG_BEGIN(scene, _view_layer, _v3d, flag, _instance)
 
#define FOREACH_OBJECT_FLAG_END
 
#define BKE_view_layer_array_selected_objects(view_layer, v3d, r_len, ...)
 
#define BKE_view_layer_array_from_objects_in_mode(view_layer, v3d, r_len, ...)
 
#define BKE_view_layer_array_from_bases_in_mode(view_layer, v3d, r_len, ...)
 
#define BKE_view_layer_array_from_objects_in_edit_mode(view_layer, v3d, r_len)    BKE_view_layer_array_from_objects_in_mode(view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT})
 
#define BKE_view_layer_array_from_bases_in_edit_mode(view_layer, v3d, r_len)    BKE_view_layer_array_from_bases_in_mode(view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT})
 
#define BKE_view_layer_array_from_objects_in_edit_mode_unique_data(view_layer, v3d, r_len)
 
#define BKE_view_layer_array_from_bases_in_edit_mode_unique_data(view_layer, v3d, r_len)
 
#define BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs(view_layer, v3d, r_len)
 
#define BKE_view_layer_array_from_objects_in_mode_unique_data(view_layer, v3d, r_len, mode)
 

Typedefs

typedef enum eViewLayerCopyMethod eViewLayerCopyMethod
 
typedef struct ObjectsVisibleIteratorData ObjectsVisibleIteratorData
 

Enumerations

enum  eViewLayerCopyMethod { VIEWLAYER_ADD_NEW = 0 , VIEWLAYER_ADD_EMPTY = 1 , VIEWLAYER_ADD_COPY = 2 }
 

Functions

struct ViewLayerBKE_view_layer_default_view (const struct Scene *scene)
 
struct ViewLayerBKE_view_layer_default_render (const struct Scene *scene)
 
struct ViewLayerBKE_view_layer_find (const struct Scene *scene, const char *layer_name)
 
struct ViewLayerBKE_view_layer_add (struct Scene *scene, const char *name, struct ViewLayer *view_layer_source, const int type)
 
struct ViewLayerBKE_view_layer_context_active_PLACEHOLDER (const struct Scene *scene)
 
void BKE_view_layer_free (struct ViewLayer *view_layer)
 
void BKE_view_layer_free_ex (struct ViewLayer *view_layer, const bool do_id_user)
 
void BKE_view_layer_selected_objects_tag (struct ViewLayer *view_layer, const int tag)
 
struct ObjectBKE_view_layer_camera_find (struct ViewLayer *view_layer)
 
struct ViewLayerBKE_view_layer_find_from_collection (const struct Scene *scene, struct LayerCollection *lc)
 
struct BaseBKE_view_layer_base_find (struct ViewLayer *view_layer, struct Object *ob)
 
void BKE_view_layer_base_deselect_all (struct ViewLayer *view_layer)
 
void BKE_view_layer_base_select_and_set_active (struct ViewLayer *view_layer, struct Base *selbase)
 
void BKE_view_layer_copy_data (struct Scene *scene_dst, const struct Scene *scene_src, struct ViewLayer *view_layer_dst, const struct ViewLayer *view_layer_src, const int flag)
 
void BKE_view_layer_rename (struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, const char *name)
 
struct LayerCollectionBKE_layer_collection_get_active (struct ViewLayer *view_layer)
 
bool BKE_layer_collection_activate (struct ViewLayer *view_layer, struct LayerCollection *lc)
 
struct LayerCollectionBKE_layer_collection_activate_parent (struct ViewLayer *view_layer, struct LayerCollection *lc)
 
int BKE_layer_collection_count (struct ViewLayer *view_layer)
 
struct LayerCollectionBKE_layer_collection_from_index (struct ViewLayer *view_layer, const int index)
 
int BKE_layer_collection_findindex (struct ViewLayer *view_layer, const struct LayerCollection *lc)
 
void BKE_main_collection_sync (const struct Main *bmain)
 
void BKE_scene_collection_sync (const struct Scene *scene)
 
void BKE_layer_collection_sync (const struct Scene *scene, struct ViewLayer *view_layer)
 
void BKE_layer_collection_local_sync (struct ViewLayer *view_layer, const struct View3D *v3d)
 
void BKE_layer_collection_local_sync_all (const struct Main *bmain)
 
void BKE_main_collection_sync_remap (const struct Main *bmain)
 
struct LayerCollectionBKE_layer_collection_first_from_scene_collection (struct ViewLayer *view_layer, const struct Collection *collection)
 
bool BKE_view_layer_has_collection (struct ViewLayer *view_layer, const struct Collection *collection)
 
bool BKE_scene_has_object (struct Scene *scene, struct Object *ob)
 
bool BKE_layer_collection_objects_select (struct ViewLayer *view_layer, struct LayerCollection *lc, bool deselect)
 
bool BKE_layer_collection_has_selected_objects (struct ViewLayer *view_layer, struct LayerCollection *lc)
 
bool BKE_layer_collection_has_layer_collection (struct LayerCollection *lc_parent, struct LayerCollection *lc_child)
 
void BKE_base_set_visible (struct Scene *scene, struct ViewLayer *view_layer, struct Base *base, bool extend)
 
bool BKE_base_is_visible (const struct View3D *v3d, const struct Base *base)
 
bool BKE_object_is_visible_in_viewport (const struct View3D *v3d, const struct Object *ob)
 
void BKE_layer_collection_isolate_global (struct Scene *scene, struct ViewLayer *view_layer, struct LayerCollection *lc, bool extend)
 
void BKE_layer_collection_isolate_local (struct ViewLayer *view_layer, const struct View3D *v3d, struct LayerCollection *lc, bool extend)
 
void BKE_layer_collection_set_visible (struct ViewLayer *view_layer, struct LayerCollection *lc, const bool visible, const bool hierarchy)
 
void BKE_layer_collection_set_flag (struct LayerCollection *lc, const int flag, const bool value)
 
void BKE_base_eval_flags (struct Base *base)
 
void BKE_layer_eval_view_layer_indexed (struct Depsgraph *depsgraph, struct Scene *scene, int view_layer_index)
 
void BKE_view_layer_blend_write (struct BlendWriter *writer, struct ViewLayer *view_layer)
 
void BKE_view_layer_blend_read_data (struct BlendDataReader *reader, struct ViewLayer *view_layer)
 
void BKE_view_layer_blend_read_lib (struct BlendLibReader *reader, struct Library *lib, struct ViewLayer *view_layer)
 
void BKE_view_layer_selected_objects_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_selected_objects_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_selected_objects_iterator_end (BLI_Iterator *iter)
 
void BKE_view_layer_visible_objects_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_visible_objects_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_visible_objects_iterator_end (BLI_Iterator *iter)
 
void BKE_view_layer_selected_editable_objects_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_selected_editable_objects_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_selected_editable_objects_iterator_end (BLI_Iterator *iter)
 
void BKE_view_layer_bases_in_mode_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_bases_in_mode_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_bases_in_mode_iterator_end (BLI_Iterator *iter)
 
void BKE_view_layer_selected_bases_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_selected_bases_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_selected_bases_iterator_end (BLI_Iterator *iter)
 
void BKE_view_layer_visible_bases_iterator_begin (BLI_Iterator *iter, void *data_in)
 
void BKE_view_layer_visible_bases_iterator_next (BLI_Iterator *iter)
 
void BKE_view_layer_visible_bases_iterator_end (BLI_Iterator *iter)
 
struct Object ** BKE_view_layer_array_selected_objects_params (struct ViewLayer *view_layer, const struct View3D *v3d, uint *r_len, const struct ObjectsInViewLayerParams *params)
 
struct ObjectBKE_view_layer_non_active_selected_object (struct ViewLayer *view_layer, const struct View3D *v3d)
 
struct Base ** BKE_view_layer_array_from_bases_in_mode_params (struct ViewLayer *view_layer, const struct View3D *v3d, uint *r_len, const struct ObjectsInModeParams *params)
 
struct Object ** BKE_view_layer_array_from_objects_in_mode_params (struct ViewLayer *view_layer, const struct View3D *v3d, uint *len, const struct ObjectsInModeParams *params)
 
bool BKE_view_layer_filter_edit_mesh_has_uvs (struct Object *ob, void *user_data)
 
bool BKE_view_layer_filter_edit_mesh_has_edges (struct Object *ob, void *user_data)
 
struct ViewLayerAOVBKE_view_layer_add_aov (struct ViewLayer *view_layer)
 
void BKE_view_layer_remove_aov (struct ViewLayer *view_layer, struct ViewLayerAOV *aov)
 
void BKE_view_layer_set_active_aov (struct ViewLayer *view_layer, struct ViewLayerAOV *aov)
 
void BKE_view_layer_verify_aov (struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer)
 
bool BKE_view_layer_has_valid_aov (struct ViewLayer *view_layer)
 
struct ViewLayerBKE_view_layer_find_with_aov (struct Scene *scene, struct ViewLayerAOV *view_layer_aov)
 

Macro Definition Documentation

◆ BKE_view_layer_array_from_bases_in_edit_mode

#define BKE_view_layer_array_from_bases_in_edit_mode (   view_layer,
  v3d,
  r_len 
)     BKE_view_layer_array_from_bases_in_mode(view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT})

Definition at line 423 of file BKE_layer.h.

◆ BKE_view_layer_array_from_bases_in_edit_mode_unique_data

#define BKE_view_layer_array_from_bases_in_edit_mode_unique_data (   view_layer,
  v3d,
  r_len 
)
Value:
view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT, .no_dup_data = true})
#define BKE_view_layer_array_from_bases_in_mode(view_layer, v3d, r_len,...)
Definition: BKE_layer.h:411
@ OB_MODE_EDIT

Definition at line 430 of file BKE_layer.h.

◆ BKE_view_layer_array_from_bases_in_mode

#define BKE_view_layer_array_from_bases_in_mode (   view_layer,
  v3d,
  r_len,
  ... 
)
Value:
view_layer, v3d, r_len, &(const struct ObjectsInModeParams)__VA_ARGS__)
struct Base ** BKE_view_layer_array_from_bases_in_mode_params(struct ViewLayer *view_layer, const struct View3D *v3d, uint *r_len, const struct ObjectsInModeParams *params)

Definition at line 411 of file BKE_layer.h.

◆ BKE_view_layer_array_from_objects_in_edit_mode

#define BKE_view_layer_array_from_objects_in_edit_mode (   view_layer,
  v3d,
  r_len 
)     BKE_view_layer_array_from_objects_in_mode(view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT})

Definition at line 420 of file BKE_layer.h.

◆ BKE_view_layer_array_from_objects_in_edit_mode_unique_data

#define BKE_view_layer_array_from_objects_in_edit_mode_unique_data (   view_layer,
  v3d,
  r_len 
)
Value:
view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT, .no_dup_data = true})
#define BKE_view_layer_array_from_objects_in_mode(view_layer, v3d, r_len,...)
Definition: BKE_layer.h:407

Definition at line 426 of file BKE_layer.h.

◆ BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs

#define BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs (   view_layer,
  v3d,
  r_len 
)
Value:
view_layer, \
v3d, \
r_len, \
{.object_mode = OB_MODE_EDIT, \
.no_dup_data = true, \
bool BKE_view_layer_filter_edit_mesh_has_uvs(struct Object *ob, void *user_data)

Definition at line 434 of file BKE_layer.h.

◆ BKE_view_layer_array_from_objects_in_mode

#define BKE_view_layer_array_from_objects_in_mode (   view_layer,
  v3d,
  r_len,
  ... 
)
Value:
view_layer, v3d, r_len, &(const struct ObjectsInModeParams)__VA_ARGS__)
struct Object ** BKE_view_layer_array_from_objects_in_mode_params(struct ViewLayer *view_layer, const struct View3D *v3d, uint *len, const struct ObjectsInModeParams *params)

Definition at line 407 of file BKE_layer.h.

◆ BKE_view_layer_array_from_objects_in_mode_unique_data

#define BKE_view_layer_array_from_objects_in_mode_unique_data (   view_layer,
  v3d,
  r_len,
  mode 
)
Value:
view_layer, v3d, r_len, {.object_mode = mode, .no_dup_data = true})

Definition at line 444 of file BKE_layer.h.

◆ BKE_view_layer_array_selected_objects

#define BKE_view_layer_array_selected_objects (   view_layer,
  v3d,
  r_len,
  ... 
)
Value:
view_layer, v3d, r_len, &(const struct ObjectsInViewLayerParams)__VA_ARGS__)
struct Object ** BKE_view_layer_array_selected_objects_params(struct ViewLayer *view_layer, const struct View3D *v3d, uint *r_len, const struct ObjectsInViewLayerParams *params)
Definition: layer_utils.c:41

Definition at line 383 of file BKE_layer.h.

◆ FOREACH_BASE_IN_EDIT_MODE_BEGIN

#define FOREACH_BASE_IN_EDIT_MODE_BEGIN (   _view_layer,
  _v3d,
  _instance 
)     FOREACH_BASE_IN_MODE_BEGIN (_view_layer, _v3d, -1, OB_MODE_EDIT, _instance)

Definition at line 275 of file BKE_layer.h.

◆ FOREACH_BASE_IN_EDIT_MODE_END

#define FOREACH_BASE_IN_EDIT_MODE_END   FOREACH_BASE_IN_MODE_END

Definition at line 278 of file BKE_layer.h.

◆ FOREACH_BASE_IN_MODE_BEGIN

#define FOREACH_BASE_IN_MODE_BEGIN (   _view_layer,
  _v3d,
  _object_type,
  _object_mode,
  _instance 
)
Value:
{ \
.object_mode = _object_mode, \
.object_type = _object_type, \
.view_layer = _view_layer, \
.v3d = _v3d, \
.base_active = _view_layer->basact, \
}; \
&data_, \
Base *, \
_instance)
void BKE_view_layer_bases_in_mode_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1766
void BKE_view_layer_bases_in_mode_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1792
void BKE_view_layer_bases_in_mode_iterator_end(BLI_Iterator *iter)
T * data_

Definition at line 254 of file BKE_layer.h.

◆ FOREACH_BASE_IN_MODE_END

#define FOREACH_BASE_IN_MODE_END
Value:
} \
((void)0)
#define ITER_END
Definition: BLI_iterator.h:57

Definition at line 270 of file BKE_layer.h.

◆ FOREACH_OBJECT_BEGIN

#define FOREACH_OBJECT_BEGIN (   view_layer,
  _instance 
)
Value:
{ \
Object *_instance; \
Base *_base; \
for (_base = (view_layer)->object_bases.first; _base; _base = _base->next) { \
_instance = _base->object;

Definition at line 324 of file BKE_layer.h.

◆ FOREACH_OBJECT_END

#define FOREACH_OBJECT_END
Value:
} \
} \
((void)0)

Definition at line 331 of file BKE_layer.h.

◆ FOREACH_OBJECT_FLAG_BEGIN

#define FOREACH_OBJECT_FLAG_BEGIN (   scene,
  _view_layer,
  _v3d,
  flag,
  _instance 
)
Value:
{ \
IteratorBeginCb func_begin; \
IteratorCb func_next, func_end; \
void *data_in; \
.view_layer = _view_layer, \
.v3d = _v3d, \
}; \
if (flag == SELECT) { \
data_in = &data_; \
} \
else { \
data_in = (scene); \
} \
ITER_BEGIN (func_begin, func_next, func_end, data_in, Object *, _instance)
void BKE_scene_objects_iterator_next(struct BLI_Iterator *iter)
Definition: collection.c:2145
void BKE_scene_objects_iterator_end(struct BLI_Iterator *iter)
Definition: collection.c:2177
void BKE_scene_objects_iterator_begin(struct BLI_Iterator *iter, void *data_in)
Definition: collection.c:2122
void BKE_view_layer_selected_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1642
void BKE_view_layer_selected_objects_iterator_end(BLI_Iterator *iter)
Definition: layer.c:1652
void BKE_view_layer_selected_objects_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1647
#define SELECT
Scene scene

Definition at line 336 of file BKE_layer.h.

◆ FOREACH_OBJECT_FLAG_END

#define FOREACH_OBJECT_FLAG_END
Value:
} \
((void)0)

Definition at line 360 of file BKE_layer.h.

◆ FOREACH_OBJECT_IN_EDIT_MODE_BEGIN

#define FOREACH_OBJECT_IN_EDIT_MODE_BEGIN (   _view_layer,
  _v3d,
  _instance 
)
Value:
FOREACH_BASE_IN_EDIT_MODE_BEGIN (_view_layer, _v3d, _base) { \
Object *_instance = _base->object;
#define FOREACH_BASE_IN_EDIT_MODE_BEGIN(_view_layer, _v3d, _instance)
Definition: BKE_layer.h:275

Definition at line 288 of file BKE_layer.h.

◆ FOREACH_OBJECT_IN_EDIT_MODE_END

#define FOREACH_OBJECT_IN_EDIT_MODE_END
Value:
} \
FOREACH_BASE_IN_EDIT_MODE_END

Definition at line 292 of file BKE_layer.h.

◆ FOREACH_OBJECT_IN_MODE_BEGIN

#define FOREACH_OBJECT_IN_MODE_BEGIN (   _view_layer,
  _v3d,
  _object_type,
  _object_mode,
  _instance 
)
Value:
FOREACH_BASE_IN_MODE_BEGIN (_view_layer, _v3d, _object_type, _object_mode, _base) { \
Object *_instance = _base->object;
#define FOREACH_BASE_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance)
Definition: BKE_layer.h:254

Definition at line 280 of file BKE_layer.h.

◆ FOREACH_OBJECT_IN_MODE_END

#define FOREACH_OBJECT_IN_MODE_END
Value:
} \
FOREACH_BASE_IN_MODE_END

Definition at line 284 of file BKE_layer.h.

◆ FOREACH_SELECTED_BASE_BEGIN

#define FOREACH_SELECTED_BASE_BEGIN (   view_layer,
  _instance 
)
Value:
view_layer, \
Base *, \
_instance)
void BKE_view_layer_selected_bases_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1723
void BKE_view_layer_selected_bases_iterator_end(BLI_Iterator *iter)
Definition: layer.c:1728
void BKE_view_layer_selected_bases_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1718
#define ITER_BEGIN(callback_begin, callback_next, callback_end, _data_in, _type, _instance)
Definition: BLI_iterator.h:44

Definition at line 296 of file BKE_layer.h.

◆ FOREACH_SELECTED_BASE_END

#define FOREACH_SELECTED_BASE_END   ITER_END

Definition at line 304 of file BKE_layer.h.

◆ FOREACH_SELECTED_EDITABLE_OBJECT_BEGIN

#define FOREACH_SELECTED_EDITABLE_OBJECT_BEGIN (   _view_layer,
  _v3d,
  _instance 
)
Value:
{ \
.view_layer = _view_layer, \
.v3d = _v3d, \
}; \
&data_, \
Object *, \
_instance)
void BKE_view_layer_selected_editable_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1684
void BKE_view_layer_selected_editable_objects_iterator_end(BLI_Iterator *iter)
Definition: layer.c:1707
void BKE_view_layer_selected_editable_objects_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1698

Definition at line 218 of file BKE_layer.h.

◆ FOREACH_SELECTED_EDITABLE_OBJECT_END

#define FOREACH_SELECTED_EDITABLE_OBJECT_END
Value:
} \
((void)0)

Definition at line 231 of file BKE_layer.h.

◆ FOREACH_SELECTED_OBJECT_BEGIN

#define FOREACH_SELECTED_OBJECT_BEGIN (   _view_layer,
  _v3d,
  _instance 
)
Value:

Definition at line 200 of file BKE_layer.h.

◆ FOREACH_SELECTED_OBJECT_END

#define FOREACH_SELECTED_OBJECT_END
Value:
} \
((void)0)

Definition at line 213 of file BKE_layer.h.

◆ FOREACH_VISIBLE_BASE_BEGIN

#define FOREACH_VISIBLE_BASE_BEGIN (   _view_layer,
  _v3d,
  _instance 
)
Value:
{ \
.view_layer = _view_layer, \
.v3d = _v3d, \
}; \
&data_, \
Base *, \
_instance)
void BKE_view_layer_visible_bases_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1739
void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *iter)
Definition: layer.c:1749
void BKE_view_layer_visible_bases_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1744

Definition at line 306 of file BKE_layer.h.

◆ FOREACH_VISIBLE_BASE_END

#define FOREACH_VISIBLE_BASE_END
Value:
} \
((void)0)

Definition at line 319 of file BKE_layer.h.

◆ FOREACH_VISIBLE_OBJECT_BEGIN

#define FOREACH_VISIBLE_OBJECT_BEGIN (   _view_layer,
  _v3d,
  _instance 
)
Value:
{ \
.view_layer = _view_layer, \
.v3d = _v3d, \
}; \
&data_, \
Object *, \
_instance)
void BKE_view_layer_visible_objects_iterator_end(BLI_Iterator *iter)
Definition: layer.c:1673
void BKE_view_layer_visible_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1663
void BKE_view_layer_visible_objects_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1668

Definition at line 236 of file BKE_layer.h.

◆ FOREACH_VISIBLE_OBJECT_END

#define FOREACH_VISIBLE_OBJECT_END
Value:
} \
((void)0)

Definition at line 249 of file BKE_layer.h.

◆ TODO_LAYER

#define TODO_LAYER   /* generic todo */

Definition at line 33 of file BKE_layer.h.

◆ TODO_LAYER_OPERATORS

#define TODO_LAYER_OPERATORS   /* collection mamanger and property panel operators */

Definition at line 32 of file BKE_layer.h.

◆ TODO_LAYER_OVERRIDE

#define TODO_LAYER_OVERRIDE   /* CollectionOverride */

Definition at line 31 of file BKE_layer.h.

Typedef Documentation

◆ eViewLayerCopyMethod

◆ ObjectsVisibleIteratorData

Enumeration Type Documentation

◆ eViewLayerCopyMethod

Enumerator
VIEWLAYER_ADD_NEW 
VIEWLAYER_ADD_EMPTY 
VIEWLAYER_ADD_COPY 

Definition at line 49 of file BKE_layer.h.

Function Documentation

◆ BKE_base_eval_flags()

void BKE_base_eval_flags ( struct Base base)

◆ BKE_base_is_visible()

bool BKE_base_is_visible ( const struct View3D v3d,
const struct Base base 
)

◆ BKE_base_set_visible()

void BKE_base_set_visible ( struct Scene scene,
struct ViewLayer view_layer,
struct Base base,
bool  extend 
)

◆ BKE_layer_collection_activate()

bool BKE_layer_collection_activate ( struct ViewLayer view_layer,
struct LayerCollection lc 
)

◆ BKE_layer_collection_activate_parent()

struct LayerCollection* BKE_layer_collection_activate_parent ( ViewLayer view_layer,
LayerCollection lc 
)

◆ BKE_layer_collection_count()

int BKE_layer_collection_count ( ViewLayer view_layer)

Get the total number of collections (including all the nested collections)

Definition at line 692 of file layer.c.

References collection_count(), and ViewLayer::layer_collections.

◆ BKE_layer_collection_findindex()

int BKE_layer_collection_findindex ( struct ViewLayer view_layer,
const struct LayerCollection lc 
)

◆ BKE_layer_collection_first_from_scene_collection()

struct LayerCollection* BKE_layer_collection_first_from_scene_collection ( struct ViewLayer view_layer,
const struct Collection collection 
)

◆ BKE_layer_collection_from_index()

struct LayerCollection* BKE_layer_collection_from_index ( ViewLayer view_layer,
const int  index 
)

Get the collection for a given index

Definition at line 621 of file layer.c.

References collection_from_index(), and ViewLayer::layer_collections.

Referenced by object_hide_collection_exec().

◆ BKE_layer_collection_get_active()

struct LayerCollection* BKE_layer_collection_get_active ( ViewLayer view_layer)

◆ BKE_layer_collection_has_layer_collection()

bool BKE_layer_collection_has_layer_collection ( struct LayerCollection lc_parent,
struct LayerCollection lc_child 
)

◆ BKE_layer_collection_has_selected_objects()

bool BKE_layer_collection_has_selected_objects ( struct ViewLayer view_layer,
struct LayerCollection lc 
)

◆ BKE_layer_collection_isolate_global()

void BKE_layer_collection_isolate_global ( Scene scene,
ViewLayer view_layer,
LayerCollection lc,
bool  extend 
)

Isolate the collection - hide all other collections but this one. Make sure to show all the direct parents and all children of the layer collection as well. When extending we simply show the collections and its direct family.

If the collection or any of its parents is disabled, make it enabled. Don't change the children disable state though.

Definition at line 1206 of file layer.c.

References BKE_layer_collection_activate(), BKE_layer_collection_has_layer_collection(), BKE_layer_collection_sync(), ListBase::first, LayerCollection::flag, layer_collection_flag_set_recursive(), layer_collection_flag_unset_recursive(), LAYER_COLLECTION_HIDE, LAYER_COLLECTION_VISIBLE_VIEW_LAYER, LayerCollection::layer_collections, ViewLayer::layer_collections, LISTBASE_FOREACH, LayerCollection::runtime_flag, and scene.

Referenced by collection_isolate_exec(), and object_hide_collection_exec().

◆ BKE_layer_collection_isolate_local()

void BKE_layer_collection_isolate_local ( struct ViewLayer view_layer,
const struct View3D v3d,
struct LayerCollection lc,
bool  extend 
)

◆ BKE_layer_collection_local_sync()

void BKE_layer_collection_local_sync ( struct ViewLayer view_layer,
const struct View3D v3d 
)

◆ BKE_layer_collection_local_sync_all()

void BKE_layer_collection_local_sync_all ( const struct Main bmain)

◆ BKE_layer_collection_objects_select()

bool BKE_layer_collection_objects_select ( ViewLayer view_layer,
LayerCollection lc,
bool  deselect 
)

◆ BKE_layer_collection_set_flag()

void BKE_layer_collection_set_flag ( struct LayerCollection lc,
const int  flag,
const bool  value 
)

◆ BKE_layer_collection_set_visible()

void BKE_layer_collection_set_visible ( ViewLayer view_layer,
LayerCollection lc,
const bool  visible,
const bool  hierarchy 
)

Hide/show all the elements of a collection. Don't change the collection children enable/disable state, but it may change it for the collection itself.

Definition at line 1414 of file layer.c.

References LayerCollection::flag, layer_collection_bases_hide_recursive(), layer_collection_bases_show_recursive(), layer_collection_flag_set_recursive(), layer_collection_flag_unset_recursive(), and LAYER_COLLECTION_HIDE.

Referenced by collection_visibility_exec(), and outliner_hide_exec().

◆ BKE_layer_collection_sync()

void BKE_layer_collection_sync ( const struct Scene scene,
struct ViewLayer view_layer 
)

◆ BKE_layer_eval_view_layer_indexed()

void BKE_layer_eval_view_layer_indexed ( struct Depsgraph depsgraph,
struct Scene scene,
int  view_layer_index 
)

◆ BKE_main_collection_sync()

void BKE_main_collection_sync ( const struct Main bmain)

◆ BKE_main_collection_sync_remap()

void BKE_main_collection_sync_remap ( const struct Main bmain)

◆ BKE_object_is_visible_in_viewport()

bool BKE_object_is_visible_in_viewport ( const struct View3D v3d,
const struct Object ob 
)

◆ BKE_scene_collection_sync()

void BKE_scene_collection_sync ( const struct Scene scene)

◆ BKE_scene_has_object()

bool BKE_scene_has_object ( Scene scene,
Object ob 
)

See if the object is in any of the scene layers of the scene

Definition at line 1527 of file layer.c.

References BKE_view_layer_base_find(), LISTBASE_FOREACH, scene, and Scene::view_layers.

Referenced by scene_drop_invoke().

◆ BKE_view_layer_add()

struct ViewLayer* BKE_view_layer_add ( Scene scene,
const char *  name,
ViewLayer view_layer_source,
const int  type 
)

◆ BKE_view_layer_add_aov()

struct ViewLayerAOV* BKE_view_layer_add_aov ( struct ViewLayer view_layer)

◆ BKE_view_layer_array_from_bases_in_mode_params()

struct Base** BKE_view_layer_array_from_bases_in_mode_params ( struct ViewLayer view_layer,
const struct View3D v3d,
uint r_len,
const struct ObjectsInModeParams params 
)

◆ BKE_view_layer_array_from_objects_in_mode_params()

struct Object** BKE_view_layer_array_from_objects_in_mode_params ( struct ViewLayer view_layer,
const struct View3D v3d,
uint len,
const struct ObjectsInModeParams params 
)

◆ BKE_view_layer_array_selected_objects_params()

struct Object** BKE_view_layer_array_selected_objects_params ( struct ViewLayer view_layer,
const struct View3D v3d,
uint r_len,
const struct ObjectsInViewLayerParams params 
)

◆ BKE_view_layer_base_deselect_all()

void BKE_view_layer_base_deselect_all ( struct ViewLayer view_layer)

◆ BKE_view_layer_base_find()

struct Base* BKE_view_layer_base_find ( struct ViewLayer view_layer,
struct Object ob 
)

Definition at line 394 of file layer.c.

References BLI_ghash_lookup(), ViewLayer::object_bases_hash, and view_layer_bases_hash_create().

Referenced by add_collections_to_scene(), add_hook_object_new(), bake_object_check(), bc_add_object(), BKE_layer_collection_has_selected_objects(), BKE_layer_collection_objects_select(), BKE_object_add(), BKE_object_add_for_data(), BKE_object_add_from(), BKE_object_pose_armature_get_visible(), BKE_object_pose_base_array_get_ex(), BKE_scene_has_object(), collection_objects_select(), createTransObject(), CTX_data_active_base(), ctx_data_base_collection_get(), do_outliner_item_activate_tree_element(), do_outliner_item_mode_toggle_generic(), do_version_layers_to_collections(), duplibase_for_convert(), ED_armature_pose_select_in_wpaint_mode(), ED_object_jump_to_object(), ed_object_posemode_set_for_weight_paint_ex(), ED_outliner_give_base_under_cursor(), ED_undo_object_set_active_or_warn(), EDBM_edge_find_nearest(), EDBM_face_find_nearest(), EDBM_vert_find_nearest(), editselect_buf_cache_init(), element_should_draw_faded(), getTransformOrientation_ex(), gpencil_layer_to_curve(), import_endjob(), jump_to_target_ptr(), layer_collection_bases_hide_recursive(), layer_collection_bases_show_recursive(), layer_collection_local_sync(), make_local_all__instance_indirect_unused(), make_object_duplilist_real(), object_add_duplicate_internal(), object_base_instance_init(), object_batch_delete_hierarchy_fn(), object_deselect_fn(), object_preview_scene_create(), object_select_fn(), object_select_mirror_exec(), object_transfer_mode_to_base(), outliner_base_or_object_pointer_create(), outliner_draw_restrictbuts(), outliner_draw_tree_element(), outliner_element_visible_get(), outliner_hide_find_data_to_edit(), outliner_item_mode_toggle(), outliner_object_set_flag_recursive_fn(), outliner_select_sync_from_object(), outliner_select_sync_to_object(), parent_drop_allowed(), scene_drop_invoke(), screen_set_3dview_camera(), select_grouped_object_hooks(), select_grouped_parent(), select_marker_camera_switch(), set_trans_object_base_flags(), transform_object_deform_pose_armature_get(), tree_element_object_activate(), tree_element_pose_state_get(), and validate_object_select_id().

◆ BKE_view_layer_base_select_and_set_active()

void BKE_view_layer_base_select_and_set_active ( struct ViewLayer view_layer,
struct Base selbase 
)

◆ BKE_view_layer_bases_in_mode_iterator_begin()

void BKE_view_layer_bases_in_mode_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

◆ BKE_view_layer_bases_in_mode_iterator_end()

void BKE_view_layer_bases_in_mode_iterator_end ( BLI_Iterator iter)

◆ BKE_view_layer_bases_in_mode_iterator_next()

void BKE_view_layer_bases_in_mode_iterator_next ( BLI_Iterator iter)

◆ BKE_view_layer_blend_read_data()

void BKE_view_layer_blend_read_data ( struct BlendDataReader reader,
struct ViewLayer view_layer 
)

◆ BKE_view_layer_blend_read_lib()

void BKE_view_layer_blend_read_lib ( struct BlendLibReader reader,
struct Library lib,
struct ViewLayer view_layer 
)

◆ BKE_view_layer_blend_write()

void BKE_view_layer_blend_write ( struct BlendWriter writer,
struct ViewLayer view_layer 
)

◆ BKE_view_layer_camera_find()

struct Object* BKE_view_layer_camera_find ( ViewLayer view_layer)

Fallback for when a Scene has no camera to use

Parameters
view_layerin general you want to use the same ViewLayer that is used for depsgraph. If rendering you pass the scene active layer, when viewing in the viewport you want to get ViewLayer from context.

Definition at line 337 of file layer.c.

References LISTBASE_FOREACH, NULL, OB_CAMERA, and ViewLayer::object_bases.

Referenced by check_valid_camera(), check_valid_compositing_camera(), screen_set_3dview_camera(), and view_camera_exec().

◆ BKE_view_layer_context_active_PLACEHOLDER()

struct ViewLayer* BKE_view_layer_context_active_PLACEHOLDER ( const struct Scene scene)

◆ BKE_view_layer_copy_data()

void BKE_view_layer_copy_data ( struct Scene scene_dst,
const struct Scene scene_src,
struct ViewLayer view_layer_dst,
const struct ViewLayer view_layer_src,
const int  flag 
)

Referenced by scene_copy_data().

◆ BKE_view_layer_default_render()

struct ViewLayer* BKE_view_layer_default_render ( const struct Scene scene)

◆ BKE_view_layer_default_view()

struct ViewLayer* BKE_view_layer_default_view ( const struct Scene scene)

◆ BKE_view_layer_filter_edit_mesh_has_edges()

bool BKE_view_layer_filter_edit_mesh_has_edges ( struct Object ob,
void *  user_data 
)

◆ BKE_view_layer_filter_edit_mesh_has_uvs()

bool BKE_view_layer_filter_edit_mesh_has_uvs ( struct Object ob,
void *  user_data 
)

◆ BKE_view_layer_find()

struct ViewLayer* BKE_view_layer_find ( const struct Scene scene,
const char *  layer_name 
)

◆ BKE_view_layer_find_from_collection()

struct ViewLayer* BKE_view_layer_find_from_collection ( const struct Scene scene,
struct LayerCollection lc 
)

◆ BKE_view_layer_find_with_aov()

struct ViewLayer* BKE_view_layer_find_with_aov ( struct Scene scene,
struct ViewLayerAOV view_layer_aov 
)

Definition at line 2123 of file layer.c.

References BLI_findindex(), LISTBASE_FOREACH, NULL, scene, and Scene::view_layers.

◆ BKE_view_layer_free()

void BKE_view_layer_free ( struct ViewLayer view_layer)

Definition at line 254 of file layer.c.

References BKE_view_layer_free_ex().

Referenced by ED_scene_view_layer_delete().

◆ BKE_view_layer_free_ex()

void BKE_view_layer_free_ex ( ViewLayer view_layer,
const bool  do_id_user 
)

◆ BKE_view_layer_has_collection()

bool BKE_view_layer_has_collection ( struct ViewLayer view_layer,
const struct Collection collection 
)

◆ BKE_view_layer_has_valid_aov()

bool BKE_view_layer_has_valid_aov ( struct ViewLayer view_layer)

◆ BKE_view_layer_non_active_selected_object()

struct Object* BKE_view_layer_non_active_selected_object ( struct ViewLayer view_layer,
const struct View3D v3d 
)

Use this in rare cases we need to detect a pair of objects (active, selected). This returns the other non-active selected object.

Returns NULL with it finds multiple other selected objects as behavior in this case would be random from the user perspective.

Definition at line 202 of file layer_utils.c.

References FOREACH_SELECTED_OBJECT_BEGIN, FOREACH_SELECTED_OBJECT_END, NULL, and OBACT.

Referenced by gpencil_bake_mesh_animation_exec(), and gpencil_trace_image_exec().

◆ BKE_view_layer_remove_aov()

void BKE_view_layer_remove_aov ( struct ViewLayer view_layer,
struct ViewLayerAOV aov 
)

◆ BKE_view_layer_rename()

void BKE_view_layer_rename ( struct Main bmain,
struct Scene scene,
struct ViewLayer view_layer,
const char *  name 
)

◆ BKE_view_layer_selected_bases_iterator_begin()

void BKE_view_layer_selected_bases_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

Definition at line 1718 of file layer.c.

References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and objects_iterator_begin().

◆ BKE_view_layer_selected_bases_iterator_end()

void BKE_view_layer_selected_bases_iterator_end ( BLI_Iterator iter)

Definition at line 1728 of file layer.c.

References object_bases_iterator_end().

◆ BKE_view_layer_selected_bases_iterator_next()

void BKE_view_layer_selected_bases_iterator_next ( BLI_Iterator iter)

Definition at line 1723 of file layer.c.

References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and object_bases_iterator_next().

◆ BKE_view_layer_selected_editable_objects_iterator_begin()

void BKE_view_layer_selected_editable_objects_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

◆ BKE_view_layer_selected_editable_objects_iterator_end()

void BKE_view_layer_selected_editable_objects_iterator_end ( BLI_Iterator iter)

Definition at line 1707 of file layer.c.

References objects_iterator_end().

◆ BKE_view_layer_selected_editable_objects_iterator_next()

void BKE_view_layer_selected_editable_objects_iterator_next ( BLI_Iterator iter)

◆ BKE_view_layer_selected_objects_iterator_begin()

void BKE_view_layer_selected_objects_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

Definition at line 1642 of file layer.c.

References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and objects_iterator_begin().

◆ BKE_view_layer_selected_objects_iterator_end()

void BKE_view_layer_selected_objects_iterator_end ( BLI_Iterator iter)

Definition at line 1652 of file layer.c.

References objects_iterator_end().

◆ BKE_view_layer_selected_objects_iterator_next()

void BKE_view_layer_selected_objects_iterator_next ( BLI_Iterator iter)

Definition at line 1647 of file layer.c.

References BASE_SELECTED, BASE_VISIBLE_DEPSGRAPH, and objects_iterator_next().

◆ BKE_view_layer_selected_objects_tag()

void BKE_view_layer_selected_objects_tag ( ViewLayer view_layer,
const int  tag 
)

Tag all the selected objects of a render-layer.

Definition at line 305 of file layer.c.

References BASE_SELECTED, LISTBASE_FOREACH, and ViewLayer::object_bases.

Referenced by make_single_user_exec().

◆ BKE_view_layer_set_active_aov()

void BKE_view_layer_set_active_aov ( struct ViewLayer view_layer,
struct ViewLayerAOV aov 
)

Definition at line 2061 of file layer.c.

References viewlayer_aov_active_set().

◆ BKE_view_layer_verify_aov()

void BKE_view_layer_verify_aov ( struct RenderEngine engine,
struct Scene scene,
struct ViewLayer view_layer 
)

◆ BKE_view_layer_visible_bases_iterator_begin()

void BKE_view_layer_visible_bases_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

Definition at line 1739 of file layer.c.

References object_bases_iterator_begin().

◆ BKE_view_layer_visible_bases_iterator_end()

void BKE_view_layer_visible_bases_iterator_end ( BLI_Iterator iter)

Definition at line 1749 of file layer.c.

References object_bases_iterator_end().

◆ BKE_view_layer_visible_bases_iterator_next()

void BKE_view_layer_visible_bases_iterator_next ( BLI_Iterator iter)

Definition at line 1744 of file layer.c.

References object_bases_iterator_next().

◆ BKE_view_layer_visible_objects_iterator_begin()

void BKE_view_layer_visible_objects_iterator_begin ( BLI_Iterator iter,
void *  data_in 
)

Definition at line 1663 of file layer.c.

References objects_iterator_begin().

◆ BKE_view_layer_visible_objects_iterator_end()

void BKE_view_layer_visible_objects_iterator_end ( BLI_Iterator iter)

Definition at line 1673 of file layer.c.

References objects_iterator_end().

◆ BKE_view_layer_visible_objects_iterator_next()

void BKE_view_layer_visible_objects_iterator_next ( BLI_Iterator iter)

Definition at line 1668 of file layer.c.

References objects_iterator_next().