Blender  V3.3
BKE_layer.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
9 #include "BKE_collection.h"
10 
11 #include "DNA_layer_types.h"
12 #include "DNA_listBase.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 #define TODO_LAYER_OVERRIDE /* CollectionOverride */
19 #define TODO_LAYER_OPERATORS /* collection mamanger and property panel operators */
20 #define TODO_LAYER /* generic todo */
21 
22 struct Base;
23 struct BlendDataReader;
24 struct BlendLibReader;
25 struct BlendWriter;
26 struct Collection;
27 struct Depsgraph;
28 struct LayerCollection;
29 struct Main;
30 struct Object;
31 struct RenderEngine;
32 struct Scene;
33 struct View3D;
34 struct ViewLayer;
35 
36 typedef enum eViewLayerCopyMethod {
41 
54 struct ViewLayer *BKE_view_layer_find(const struct Scene *scene, const char *layer_name);
58 struct ViewLayer *BKE_view_layer_add(struct Scene *scene,
59  const char *name,
60  struct ViewLayer *view_layer_source,
61  int type);
62 
63 /* DEPRECATED */
70 
71 void BKE_view_layer_free(struct ViewLayer *view_layer);
75 void BKE_view_layer_free_ex(struct ViewLayer *view_layer, bool do_id_user);
76 
80 void BKE_view_layer_selected_objects_tag(struct ViewLayer *view_layer, int tag);
81 
89 struct Object *BKE_view_layer_camera_find(struct ViewLayer *view_layer);
94  struct LayerCollection *lc);
95 struct Base *BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob);
96 void BKE_view_layer_base_deselect_all(struct ViewLayer *view_layer);
97 
98 void BKE_view_layer_base_select_and_set_active(struct ViewLayer *view_layer, struct Base *selbase);
99 
105 void BKE_view_layer_copy_data(struct Scene *scene_dst,
106  const struct Scene *scene_src,
107  struct ViewLayer *view_layer_dst,
108  const struct ViewLayer *view_layer_src,
109  int flag);
110 
111 void BKE_view_layer_rename(struct Main *bmain,
112  struct Scene *scene,
113  struct ViewLayer *view_layer,
114  const char *name);
115 
119 struct LayerCollection *BKE_layer_collection_get_active(struct ViewLayer *view_layer);
123 bool BKE_layer_collection_activate(struct ViewLayer *view_layer, struct LayerCollection *lc);
128  struct LayerCollection *lc);
129 
133 int BKE_layer_collection_count(const struct ViewLayer *view_layer);
134 
138 struct LayerCollection *BKE_layer_collection_from_index(struct ViewLayer *view_layer, int index);
142 int BKE_layer_collection_findindex(struct ViewLayer *view_layer, const struct LayerCollection *lc);
143 
146 
153 void BKE_layer_collection_doversion_2_80(const struct Scene *scene, struct ViewLayer *view_layer);
154 
155 void BKE_main_collection_sync(const struct Main *bmain);
162 void BKE_layer_collection_sync(const struct Scene *scene, struct ViewLayer *view_layer);
163 void BKE_layer_collection_local_sync(struct ViewLayer *view_layer, const struct View3D *v3d);
167 void BKE_layer_collection_local_sync_all(const struct Main *bmain);
168 
169 void BKE_main_collection_sync_remap(const struct Main *bmain);
170 
175  const struct ViewLayer *view_layer, const struct Collection *collection);
179 bool BKE_view_layer_has_collection(const struct ViewLayer *view_layer,
180  const struct Collection *collection);
184 bool BKE_scene_has_object(struct Scene *scene, struct Object *ob);
185 
186 /* Selection and hiding. */
187 
194 bool BKE_layer_collection_objects_select(struct ViewLayer *view_layer,
195  struct LayerCollection *lc,
196  bool deselect);
198  struct LayerCollection *lc);
200  struct LayerCollection *lc_child);
201 
205 void BKE_base_set_visible(struct Scene *scene,
206  struct ViewLayer *view_layer,
207  struct Base *base,
208  bool extend);
209 bool BKE_base_is_visible(const struct View3D *v3d, const struct Base *base);
210 bool BKE_object_is_visible_in_viewport(const struct View3D *v3d, const struct Object *ob);
220  struct ViewLayer *view_layer,
221  struct LayerCollection *lc,
222  bool extend);
229  const struct View3D *v3d,
230  struct LayerCollection *lc,
231  bool extend);
237 void BKE_layer_collection_set_visible(struct ViewLayer *view_layer,
238  struct LayerCollection *lc,
239  bool visible,
240  bool hierarchy);
241 void BKE_layer_collection_set_flag(struct LayerCollection *lc, int flag, bool value);
242 
243 /* Evaluation. */
244 
250 void BKE_base_eval_flags(struct Base *base);
251 
253  struct Scene *scene,
254  int view_layer_index);
255 
256 /* .blend file I/O */
257 
258 void BKE_view_layer_blend_write(struct BlendWriter *writer, struct ViewLayer *view_layer);
259 void BKE_view_layer_blend_read_data(struct BlendDataReader *reader, struct ViewLayer *view_layer);
261  struct Library *lib,
262  struct ViewLayer *view_layer);
263 
264 /* iterators */
265 
268  const struct View3D *v3d;
270 
274 
278 
282 
287  const struct View3D *v3d;
288  struct Base *base_active;
289 };
290 
294 
298 
302 
303 #define FOREACH_SELECTED_OBJECT_BEGIN(_view_layer, _v3d, _instance) \
304  { \
305  struct ObjectsVisibleIteratorData data_ = {NULL}; \
306  data_.view_layer = _view_layer; \
307  data_.v3d = _v3d; \
308  ITER_BEGIN (BKE_view_layer_selected_objects_iterator_begin, \
309  BKE_view_layer_selected_objects_iterator_next, \
310  BKE_view_layer_selected_objects_iterator_end, \
311  &data_, \
312  Object *, \
313  _instance)
314 
315 #define FOREACH_SELECTED_OBJECT_END \
316  ITER_END; \
317  } \
318  ((void)0)
319 
320 #define FOREACH_SELECTED_EDITABLE_OBJECT_BEGIN(_view_layer, _v3d, _instance) \
321  { \
322  struct ObjectsVisibleIteratorData data_ = {NULL}; \
323  data_.view_layer = _view_layer; \
324  data_.v3d = _v3d; \
325  ITER_BEGIN (BKE_view_layer_selected_editable_objects_iterator_begin, \
326  BKE_view_layer_selected_editable_objects_iterator_next, \
327  BKE_view_layer_selected_editable_objects_iterator_end, \
328  &data_, \
329  Object *, \
330  _instance)
331 
332 #define FOREACH_SELECTED_EDITABLE_OBJECT_END \
333  ITER_END; \
334  } \
335  ((void)0)
336 
337 #define FOREACH_VISIBLE_OBJECT_BEGIN(_view_layer, _v3d, _instance) \
338  { \
339  struct ObjectsVisibleIteratorData data_ = {NULL}; \
340  data_.view_layer = _view_layer; \
341  data_.v3d = _v3d; \
342  ITER_BEGIN (BKE_view_layer_visible_objects_iterator_begin, \
343  BKE_view_layer_visible_objects_iterator_next, \
344  BKE_view_layer_visible_objects_iterator_end, \
345  &data_, \
346  Object *, \
347  _instance)
348 
349 #define FOREACH_VISIBLE_OBJECT_END \
350  ITER_END; \
351  } \
352  ((void)0)
353 
354 #define FOREACH_BASE_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance) \
355  { \
356  struct ObjectsInModeIteratorData data_ = { \
357  .object_mode = _object_mode, \
358  .object_type = _object_type, \
359  .view_layer = _view_layer, \
360  .v3d = _v3d, \
361  .base_active = _view_layer->basact, \
362  }; \
363  ITER_BEGIN (BKE_view_layer_bases_in_mode_iterator_begin, \
364  BKE_view_layer_bases_in_mode_iterator_next, \
365  BKE_view_layer_bases_in_mode_iterator_end, \
366  &data_, \
367  Base *, \
368  _instance)
369 
370 #define FOREACH_BASE_IN_MODE_END \
371  ITER_END; \
372  } \
373  ((void)0)
374 
375 #define FOREACH_BASE_IN_EDIT_MODE_BEGIN(_view_layer, _v3d, _instance) \
376  FOREACH_BASE_IN_MODE_BEGIN (_view_layer, _v3d, -1, OB_MODE_EDIT, _instance)
377 
378 #define FOREACH_BASE_IN_EDIT_MODE_END FOREACH_BASE_IN_MODE_END
379 
380 #define FOREACH_OBJECT_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance) \
381  FOREACH_BASE_IN_MODE_BEGIN (_view_layer, _v3d, _object_type, _object_mode, _base) { \
382  Object *_instance = _base->object;
383 
384 #define FOREACH_OBJECT_IN_MODE_END \
385  } \
386  FOREACH_BASE_IN_MODE_END
387 
388 #define FOREACH_OBJECT_IN_EDIT_MODE_BEGIN(_view_layer, _v3d, _instance) \
389  FOREACH_BASE_IN_EDIT_MODE_BEGIN (_view_layer, _v3d, _base) { \
390  Object *_instance = _base->object;
391 
392 #define FOREACH_OBJECT_IN_EDIT_MODE_END \
393  } \
394  FOREACH_BASE_IN_EDIT_MODE_END
395 
396 #define FOREACH_SELECTED_BASE_BEGIN(view_layer, _instance) \
397  ITER_BEGIN (BKE_view_layer_selected_bases_iterator_begin, \
398  BKE_view_layer_selected_bases_iterator_next, \
399  BKE_view_layer_selected_bases_iterator_end, \
400  view_layer, \
401  Base *, \
402  _instance)
403 
404 #define FOREACH_SELECTED_BASE_END ITER_END
405 
406 #define FOREACH_VISIBLE_BASE_BEGIN(_view_layer, _v3d, _instance) \
407  { \
408  struct ObjectsVisibleIteratorData data_ = {NULL}; \
409  data_.view_layer = _view_layer; \
410  data_.v3d = _v3d; \
411  ITER_BEGIN (BKE_view_layer_visible_bases_iterator_begin, \
412  BKE_view_layer_visible_bases_iterator_next, \
413  BKE_view_layer_visible_bases_iterator_end, \
414  &data_, \
415  Base *, \
416  _instance)
417 
418 #define FOREACH_VISIBLE_BASE_END \
419  ITER_END; \
420  } \
421  ((void)0)
422 
423 #define FOREACH_OBJECT_BEGIN(view_layer, _instance) \
424  { \
425  Object *_instance; \
426  Base *_base; \
427  for (_base = (Base *)(view_layer)->object_bases.first; _base; _base = _base->next) { \
428  _instance = _base->object;
429 
430 #define FOREACH_OBJECT_END \
431  } \
432  } \
433  ((void)0)
434 
435 #define FOREACH_OBJECT_FLAG_BEGIN(scene, _view_layer, _v3d, flag, _instance) \
436  { \
437  IteratorBeginCb func_begin; \
438  IteratorCb func_next, func_end; \
439  void *data_in; \
440 \
441  struct ObjectsVisibleIteratorData data_select_ = {NULL}; \
442  data_select_.view_layer = _view_layer; \
443  data_select_.v3d = _v3d; \
444 \
445  struct SceneObjectsIteratorExData data_flag_ = {NULL}; \
446  data_flag_.scene = scene; \
447  data_flag_.flag = flag; \
448 \
449  if (flag == SELECT) { \
450  func_begin = &BKE_view_layer_selected_objects_iterator_begin; \
451  func_next = &BKE_view_layer_selected_objects_iterator_next; \
452  func_end = &BKE_view_layer_selected_objects_iterator_end; \
453  data_in = &data_select_; \
454  } \
455  else if (flag != 0) { \
456  func_begin = BKE_scene_objects_iterator_begin_ex; \
457  func_next = BKE_scene_objects_iterator_next_ex; \
458  func_end = BKE_scene_objects_iterator_end_ex; \
459  data_in = &data_flag_; \
460  } \
461  else { \
462  func_begin = BKE_scene_objects_iterator_begin; \
463  func_next = BKE_scene_objects_iterator_next; \
464  func_end = BKE_scene_objects_iterator_end; \
465  data_in = (scene); \
466  } \
467  ITER_BEGIN (func_begin, func_next, func_end, data_in, Object *, _instance)
468 
469 #define FOREACH_OBJECT_FLAG_END \
470  ITER_END; \
471  } \
472  ((void)0)
473 
474 /* layer_utils.c */
475 
478 
479  bool (*filter_fn)(const struct Object *ob, void *user_data);
481 };
482 
484  struct ViewLayer *view_layer,
485  const struct View3D *v3d,
486  uint *r_len,
487  const struct ObjectsInViewLayerParams *params);
488 
497  const struct View3D *v3d);
498 
499 #define BKE_view_layer_array_selected_objects(view_layer, v3d, r_len, ...) \
500  BKE_view_layer_array_selected_objects_params( \
501  view_layer, v3d, r_len, &(const struct ObjectsInViewLayerParams)__VA_ARGS__)
502 
506 
507  bool (*filter_fn)(const struct Object *ob, void *user_data);
509 };
510 
512  struct ViewLayer *view_layer,
513  const struct View3D *v3d,
514  uint *r_len,
515  const struct ObjectsInModeParams *params);
516 
518  struct ViewLayer *view_layer,
519  const struct View3D *v3d,
520  uint *len,
521  const struct ObjectsInModeParams *params);
522 
523 #define BKE_view_layer_array_from_objects_in_mode(view_layer, v3d, r_len, ...) \
524  BKE_view_layer_array_from_objects_in_mode_params( \
525  view_layer, v3d, r_len, &(const struct ObjectsInModeParams)__VA_ARGS__)
526 
527 #define BKE_view_layer_array_from_bases_in_mode(view_layer, v3d, r_len, ...) \
528  BKE_view_layer_array_from_bases_in_mode_params( \
529  view_layer, v3d, r_len, &(const struct ObjectsInModeParams)__VA_ARGS__)
530 
533 
534 /* Utility macros that wrap common args (add more as needed). */
535 
536 #define BKE_view_layer_array_from_objects_in_edit_mode(view_layer, v3d, r_len) \
537  BKE_view_layer_array_from_objects_in_mode(view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT})
538 
539 #define BKE_view_layer_array_from_bases_in_edit_mode(view_layer, v3d, r_len) \
540  BKE_view_layer_array_from_bases_in_mode(view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT})
541 
542 #define BKE_view_layer_array_from_objects_in_edit_mode_unique_data(view_layer, v3d, r_len) \
543  BKE_view_layer_array_from_objects_in_mode( \
544  view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT, .no_dup_data = true})
545 
546 #define BKE_view_layer_array_from_bases_in_edit_mode_unique_data(view_layer, v3d, r_len) \
547  BKE_view_layer_array_from_bases_in_mode( \
548  view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT, .no_dup_data = true})
549 
550 #define BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs( \
551  view_layer, v3d, r_len) \
552  BKE_view_layer_array_from_objects_in_mode( \
553  view_layer, \
554  v3d, \
555  r_len, \
556  {.object_mode = OB_MODE_EDIT, \
557  .no_dup_data = true, \
558  .filter_fn = BKE_view_layer_filter_edit_mesh_has_uvs})
559 
560 #define BKE_view_layer_array_from_objects_in_mode_unique_data(view_layer, v3d, r_len, mode) \
561  BKE_view_layer_array_from_objects_in_mode( \
562  view_layer, v3d, r_len, {.object_mode = mode, .no_dup_data = true})
563 
564 struct ViewLayerAOV *BKE_view_layer_add_aov(struct ViewLayer *view_layer);
565 void BKE_view_layer_remove_aov(struct ViewLayer *view_layer, struct ViewLayerAOV *aov);
566 void BKE_view_layer_set_active_aov(struct ViewLayer *view_layer, struct ViewLayerAOV *aov);
575 void BKE_view_layer_verify_aov(struct RenderEngine *engine,
576  struct Scene *scene,
577  struct ViewLayer *view_layer);
581 bool BKE_view_layer_has_valid_aov(struct ViewLayer *view_layer);
583  struct ViewLayerAOV *view_layer_aov);
584 
586  const char *name);
587 void BKE_view_layer_remove_lightgroup(struct ViewLayer *view_layer,
588  struct ViewLayerLightgroup *lightgroup);
589 void BKE_view_layer_set_active_lightgroup(struct ViewLayer *view_layer,
590  struct ViewLayerLightgroup *lightgroup);
592  struct Scene *scene, struct ViewLayerLightgroup *view_layer_lightgroup);
594  ViewLayer *view_layer,
595  ViewLayerLightgroup *lightgroup,
596  const char *name);
597 
600 void BKE_lightgroup_membership_set(struct LightgroupMembership **lgm, const char *name);
601 
602 #ifdef __cplusplus
603 }
604 #endif
void BKE_view_layer_bases_in_mode_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:2136
void BKE_view_layer_bases_in_mode_iterator_next(BLI_Iterator *iter)
Definition: layer.c:2162
bool BKE_base_is_visible(const struct View3D *v3d, const struct Base *base)
bool BKE_scene_has_object(struct Scene *scene, struct Object *ob)
Definition: layer.c:1895
void BKE_layer_collection_local_sync_all(const struct Main *bmain)
void BKE_lightgroup_membership_set(struct LightgroupMembership **lgm, const char *name)
Definition: layer.c:2642
void BKE_scene_collection_sync(const struct Scene *scene)
struct ViewLayer * BKE_view_layer_find_from_collection(const struct Scene *scene, struct LayerCollection *lc)
void BKE_view_layer_free(struct ViewLayer *view_layer)
Definition: layer.c:239
void BKE_layer_collection_set_flag(struct LayerCollection *lc, int flag, bool value)
Definition: layer.c:1854
void BKE_view_layer_visible_bases_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:2109
void BKE_view_layer_rename(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, const char *name)
Definition: layer.c:534
bool BKE_layer_collection_activate(struct ViewLayer *view_layer, struct LayerCollection *lc)
Definition: layer.c:641
struct ViewLayer * BKE_view_layer_find_with_lightgroup(struct Scene *scene, struct ViewLayerLightgroup *view_layer_lightgroup)
Definition: layer.c:2581
bool BKE_layer_collection_objects_select(struct ViewLayer *view_layer, struct LayerCollection *lc, bool deselect)
Definition: layer.c:1409
void BKE_layer_collection_local_sync(struct ViewLayer *view_layer, const struct View3D *v3d)
void BKE_base_eval_flags(struct Base *base)
Definition: layer.c:2200
void BKE_view_layer_selected_objects_tag(struct ViewLayer *view_layer, int tag)
Definition: layer.c:286
void BKE_view_layer_selected_editable_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:2054
struct ObjectsVisibleIteratorData ObjectsVisibleIteratorData
void BKE_view_layer_set_active_aov(struct ViewLayer *view_layer, struct ViewLayerAOV *aov)
Definition: layer.c:2448
struct ViewLayerLightgroup * BKE_view_layer_add_lightgroup(struct ViewLayer *view_layer, const char *name)
Definition: layer.c:2544
struct LayerCollection * BKE_layer_collection_get_active(struct ViewLayer *view_layer)
Definition: layer.c:636
void BKE_view_layer_selected_editable_objects_iterator_end(BLI_Iterator *iter)
Definition: layer.c:2077
bool BKE_view_layer_has_valid_aov(struct ViewLayer *view_layer)
Definition: layer.c:2493
void BKE_layer_collection_doversion_2_80(const struct Scene *scene, struct ViewLayer *view_layer)
void BKE_main_collection_sync(const struct Main *bmain)
bool BKE_view_layer_has_collection(const struct ViewLayer *view_layer, const struct Collection *collection)
void BKE_view_layer_selected_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:2012
void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *iter)
Definition: layer.c:2119
bool BKE_layer_collection_has_selected_objects(struct ViewLayer *view_layer, struct LayerCollection *lc)
Definition: layer.c:1445
struct Object * BKE_view_layer_camera_find(struct ViewLayer *view_layer)
Definition: layer.c:311
void BKE_view_layer_selected_objects_iterator_end(BLI_Iterator *iter)
Definition: layer.c:2022
void BKE_view_layer_selected_editable_objects_iterator_next(BLI_Iterator *iter)
Definition: layer.c:2068
eViewLayerCopyMethod
Definition: BKE_layer.h:36
@ VIEWLAYER_ADD_NEW
Definition: BKE_layer.h:37
@ VIEWLAYER_ADD_EMPTY
Definition: BKE_layer.h:38
@ VIEWLAYER_ADD_COPY
Definition: BKE_layer.h:39
void BKE_layer_collection_resync_allow(void)
Definition: layer.c:766
void BKE_layer_collection_isolate_global(struct Scene *scene, struct ViewLayer *view_layer, struct LayerCollection *lc, bool extend)
Definition: layer.c:1585
struct ViewLayer * BKE_view_layer_default_view(const struct Scene *scene)
int BKE_layer_collection_count(const struct ViewLayer *view_layer)
void BKE_view_layer_free_ex(struct ViewLayer *view_layer, bool do_id_user)
Definition: layer.c:244
struct LayerCollection * BKE_layer_collection_activate_parent(struct ViewLayer *view_layer, struct LayerCollection *lc)
Definition: layer.c:651
void BKE_view_layer_base_deselect_all(struct ViewLayer *view_layer)
Definition: layer.c:388
bool BKE_layer_collection_has_layer_collection(struct LayerCollection *lc_parent, struct LayerCollection *lc_child)
Definition: layer.c:1470
void BKE_view_layer_blend_read_data(struct BlendDataReader *reader, struct ViewLayer *view_layer)
Definition: layer.c:2315
struct Base * BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob)
Definition: layer.c:379
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:28
struct LayerCollection * BKE_layer_collection_from_index(struct ViewLayer *view_layer, int index)
Definition: layer.c:630
void BKE_view_layer_set_active_lightgroup(struct ViewLayer *view_layer, struct ViewLayerLightgroup *lightgroup)
Definition: layer.c:2576
void BKE_view_layer_selected_bases_iterator_next(BLI_Iterator *iter)
Definition: layer.c:2093
void BKE_view_layer_verify_aov(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer)
Definition: layer.c:2476
struct ViewLayer * BKE_view_layer_context_active_PLACEHOLDER(const struct Scene *scene)
void BKE_view_layer_visible_objects_iterator_end(BLI_Iterator *iter)
Definition: layer.c:2043
struct ViewLayer * BKE_view_layer_default_render(const struct Scene *scene)
struct LayerCollection * BKE_layer_collection_first_from_scene_collection(const struct ViewLayer *view_layer, const struct Collection *collection)
void BKE_view_layer_selected_bases_iterator_end(BLI_Iterator *iter)
Definition: layer.c:2098
struct ViewLayer * BKE_view_layer_find_with_aov(struct Scene *scene, struct ViewLayerAOV *view_layer_aov)
Definition: layer.c:2503
bool BKE_object_is_visible_in_viewport(const struct View3D *v3d, const struct Object *ob)
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)
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, int flag)
void BKE_layer_eval_view_layer_indexed(struct Depsgraph *depsgraph, struct Scene *scene, int view_layer_index)
Definition: layer.c:2248
void BKE_view_layer_base_select_and_set_active(struct ViewLayer *view_layer, struct Base *selbase)
Definition: layer.c:397
void BKE_layer_collection_resync_forbid(void)
Definition: layer.c:761
int BKE_layer_collection_findindex(struct ViewLayer *view_layer, const struct LayerCollection *lc)
void BKE_lightgroup_membership_get(struct LightgroupMembership *lgm, char *name)
Definition: layer.c:2624
void BKE_layer_collection_sync(const struct Scene *scene, struct ViewLayer *view_layer)
struct ViewLayer * BKE_view_layer_add(struct Scene *scene, const char *name, struct ViewLayer *view_layer_source, int type)
Definition: layer.c:185
bool BKE_view_layer_filter_edit_mesh_has_uvs(const struct Object *ob, void *user_data)
void BKE_view_layer_visible_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:2033
void BKE_layer_collection_set_visible(struct ViewLayer *view_layer, struct LayerCollection *lc, bool visible, bool hierarchy)
Definition: layer.c:1791
void BKE_main_collection_sync_remap(const struct Main *bmain)
struct ViewLayer * BKE_view_layer_find(const struct Scene *scene, const char *layer_name)
void BKE_view_layer_selected_bases_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:2088
void BKE_view_layer_blend_read_lib(struct BlendLibReader *reader, struct Library *lib, struct ViewLayer *view_layer)
Definition: layer.c:2357
void BKE_base_set_visible(struct Scene *scene, struct ViewLayer *view_layer, struct Base *base, bool extend)
Definition: layer.c:1491
void BKE_view_layer_blend_write(struct BlendWriter *writer, struct ViewLayer *view_layer)
Definition: layer.c:2273
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)
void BKE_view_layer_visible_bases_iterator_next(BLI_Iterator *iter)
Definition: layer.c:2114
void BKE_view_layer_rename_lightgroup(struct Scene *scene, ViewLayer *view_layer, ViewLayerLightgroup *lightgroup, const char *name)
Definition: layer.c:2592
void BKE_view_layer_bases_in_mode_iterator_end(BLI_Iterator *iter)
struct ViewLayerAOV * BKE_view_layer_add_aov(struct ViewLayer *view_layer)
Definition: layer.c:2421
bool BKE_view_layer_filter_edit_mesh_has_edges(const struct Object *ob, void *user_data)
void BKE_layer_collection_isolate_local(struct ViewLayer *view_layer, const struct View3D *v3d, struct LayerCollection *lc, bool extend)
int BKE_lightgroup_membership_length(struct LightgroupMembership *lgm)
Definition: layer.c:2634
void BKE_view_layer_visible_objects_iterator_next(BLI_Iterator *iter)
Definition: layer.c:2038
void BKE_view_layer_remove_lightgroup(struct ViewLayer *view_layer, struct ViewLayerLightgroup *lightgroup)
Definition: layer.c:2561
struct Object * BKE_view_layer_non_active_selected_object(struct ViewLayer *view_layer, const struct View3D *v3d)
Definition: layer_utils.c:186
void BKE_view_layer_selected_objects_iterator_next(BLI_Iterator *iter)
Definition: layer.c:2017
void BKE_view_layer_remove_aov(struct ViewLayer *view_layer, struct ViewLayerAOV *aov)
Definition: layer.c:2433
unsigned int uint
Definition: BLI_sys_types.h:67
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:35
These structs are the foundation for all linked lists in the library system.
_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
Scene scene
const Depsgraph * depsgraph
void * user_data
int len
Definition: draw_manager.c:108
DRWShaderLibrary * lib
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
short flag
struct Collection * collection
Definition: BKE_main.h:121
struct Base * base_active
Definition: BKE_layer.h:288
struct ViewLayer * view_layer
Definition: BKE_layer.h:286
const struct View3D * v3d
Definition: BKE_layer.h:287
bool(* filter_fn)(const struct Object *ob, void *user_data)
Definition: BKE_layer.h:507
void * filter_userdata
Definition: BKE_layer.h:508
bool(* filter_fn)(const struct Object *ob, void *user_data)
Definition: BKE_layer.h:479
const struct View3D * v3d
Definition: BKE_layer.h:268
struct ViewLayer * view_layer
Definition: BKE_layer.h:267
char name[64]