Blender  V2.93
BKE_layer.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
17 #pragma once
18 
23 #include "BKE_collection.h"
24 
25 #include "DNA_listBase.h"
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 #define TODO_LAYER_OVERRIDE /* CollectionOverride */
32 #define TODO_LAYER_OPERATORS /* collection mamanger and property panel operators */
33 #define TODO_LAYER /* generic todo */
34 
35 struct Base;
36 struct BlendDataReader;
37 struct BlendLibReader;
38 struct BlendWriter;
39 struct Collection;
40 struct Depsgraph;
41 struct LayerCollection;
42 struct Main;
43 struct Object;
44 struct RenderEngine;
45 struct Scene;
46 struct View3D;
47 struct ViewLayer;
48 
49 typedef enum eViewLayerCopyMethod {
54 
57 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  const int type);
62 
63 /* DEPRECATED */
65 
66 void BKE_view_layer_free(struct ViewLayer *view_layer);
67 void BKE_view_layer_free_ex(struct ViewLayer *view_layer, const bool do_id_user);
68 
69 void BKE_view_layer_selected_objects_tag(struct ViewLayer *view_layer, const int tag);
70 
71 struct Object *BKE_view_layer_camera_find(struct ViewLayer *view_layer);
73  struct LayerCollection *lc);
74 struct Base *BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob);
75 void BKE_view_layer_base_deselect_all(struct ViewLayer *view_layer);
76 
77 void BKE_view_layer_base_select_and_set_active(struct ViewLayer *view_layer, struct Base *selbase);
78 
79 void BKE_view_layer_copy_data(struct Scene *scene_dst,
80  const struct Scene *scene_src,
81  struct ViewLayer *view_layer_dst,
82  const struct ViewLayer *view_layer_src,
83  const int flag);
84 
85 void BKE_view_layer_rename(struct Main *bmain,
86  struct Scene *scene,
87  struct ViewLayer *view_layer,
88  const char *name);
89 
91 bool BKE_layer_collection_activate(struct ViewLayer *view_layer, struct LayerCollection *lc);
93  struct LayerCollection *lc);
94 
95 int BKE_layer_collection_count(struct ViewLayer *view_layer);
96 
98  const int index);
99 int BKE_layer_collection_findindex(struct ViewLayer *view_layer, const struct LayerCollection *lc);
100 
101 void BKE_main_collection_sync(const struct Main *bmain);
103 void BKE_layer_collection_sync(const struct Scene *scene, struct ViewLayer *view_layer);
104 void BKE_layer_collection_local_sync(struct ViewLayer *view_layer, const struct View3D *v3d);
105 void BKE_layer_collection_local_sync_all(const struct Main *bmain);
106 
107 void BKE_main_collection_sync_remap(const struct Main *bmain);
108 
110  struct ViewLayer *view_layer, const struct Collection *collection);
111 bool BKE_view_layer_has_collection(struct ViewLayer *view_layer,
112  const struct Collection *collection);
113 bool BKE_scene_has_object(struct Scene *scene, struct Object *ob);
114 
115 /* selection and hiding */
116 
117 bool BKE_layer_collection_objects_select(struct ViewLayer *view_layer,
118  struct LayerCollection *lc,
119  bool deselect);
121  struct LayerCollection *lc);
123  struct LayerCollection *lc_child);
124 
125 void BKE_base_set_visible(struct Scene *scene,
126  struct ViewLayer *view_layer,
127  struct Base *base,
128  bool extend);
129 bool BKE_base_is_visible(const struct View3D *v3d, const struct Base *base);
130 bool BKE_object_is_visible_in_viewport(const struct View3D *v3d, const struct Object *ob);
132  struct ViewLayer *view_layer,
133  struct LayerCollection *lc,
134  bool extend);
136  const struct View3D *v3d,
137  struct LayerCollection *lc,
138  bool extend);
139 void BKE_layer_collection_set_visible(struct ViewLayer *view_layer,
140  struct LayerCollection *lc,
141  const bool visible,
142  const bool hierarchy);
143 void BKE_layer_collection_set_flag(struct LayerCollection *lc, const int flag, const bool value);
144 
145 /* evaluation */
146 
147 void BKE_base_eval_flags(struct Base *base);
148 
150  struct Scene *scene,
151  int view_layer_index);
152 
153 /* .blend file I/O */
154 
155 void BKE_view_layer_blend_write(struct BlendWriter *writer, struct ViewLayer *view_layer);
156 void BKE_view_layer_blend_read_data(struct BlendDataReader *reader, struct ViewLayer *view_layer);
158  struct Library *lib,
159  struct ViewLayer *view_layer);
160 
161 /* iterators */
162 
165  const struct View3D *v3d;
167 
171 
175 
179 
184  const struct View3D *v3d;
185  struct Base *base_active;
186 };
187 
191 
195 
199 
200 #define FOREACH_SELECTED_OBJECT_BEGIN(_view_layer, _v3d, _instance) \
201  { \
202  struct ObjectsVisibleIteratorData data_ = { \
203  .view_layer = _view_layer, \
204  .v3d = _v3d, \
205  }; \
206  ITER_BEGIN (BKE_view_layer_selected_objects_iterator_begin, \
207  BKE_view_layer_selected_objects_iterator_next, \
208  BKE_view_layer_selected_objects_iterator_end, \
209  &data_, \
210  Object *, \
211  _instance)
212 
213 #define FOREACH_SELECTED_OBJECT_END \
214  ITER_END; \
215  } \
216  ((void)0)
217 
218 #define FOREACH_SELECTED_EDITABLE_OBJECT_BEGIN(_view_layer, _v3d, _instance) \
219  { \
220  struct ObjectsVisibleIteratorData data_ = { \
221  .view_layer = _view_layer, \
222  .v3d = _v3d, \
223  }; \
224  ITER_BEGIN (BKE_view_layer_selected_editable_objects_iterator_begin, \
225  BKE_view_layer_selected_editable_objects_iterator_next, \
226  BKE_view_layer_selected_editable_objects_iterator_end, \
227  &data_, \
228  Object *, \
229  _instance)
230 
231 #define FOREACH_SELECTED_EDITABLE_OBJECT_END \
232  ITER_END; \
233  } \
234  ((void)0)
235 
236 #define FOREACH_VISIBLE_OBJECT_BEGIN(_view_layer, _v3d, _instance) \
237  { \
238  struct ObjectsVisibleIteratorData data_ = { \
239  .view_layer = _view_layer, \
240  .v3d = _v3d, \
241  }; \
242  ITER_BEGIN (BKE_view_layer_visible_objects_iterator_begin, \
243  BKE_view_layer_visible_objects_iterator_next, \
244  BKE_view_layer_visible_objects_iterator_end, \
245  &data_, \
246  Object *, \
247  _instance)
248 
249 #define FOREACH_VISIBLE_OBJECT_END \
250  ITER_END; \
251  } \
252  ((void)0)
253 
254 #define FOREACH_BASE_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance) \
255  { \
256  struct ObjectsInModeIteratorData data_ = { \
257  .object_mode = _object_mode, \
258  .object_type = _object_type, \
259  .view_layer = _view_layer, \
260  .v3d = _v3d, \
261  .base_active = _view_layer->basact, \
262  }; \
263  ITER_BEGIN (BKE_view_layer_bases_in_mode_iterator_begin, \
264  BKE_view_layer_bases_in_mode_iterator_next, \
265  BKE_view_layer_bases_in_mode_iterator_end, \
266  &data_, \
267  Base *, \
268  _instance)
269 
270 #define FOREACH_BASE_IN_MODE_END \
271  ITER_END; \
272  } \
273  ((void)0)
274 
275 #define FOREACH_BASE_IN_EDIT_MODE_BEGIN(_view_layer, _v3d, _instance) \
276  FOREACH_BASE_IN_MODE_BEGIN (_view_layer, _v3d, -1, OB_MODE_EDIT, _instance)
277 
278 #define FOREACH_BASE_IN_EDIT_MODE_END FOREACH_BASE_IN_MODE_END
279 
280 #define FOREACH_OBJECT_IN_MODE_BEGIN(_view_layer, _v3d, _object_type, _object_mode, _instance) \
281  FOREACH_BASE_IN_MODE_BEGIN (_view_layer, _v3d, _object_type, _object_mode, _base) { \
282  Object *_instance = _base->object;
283 
284 #define FOREACH_OBJECT_IN_MODE_END \
285  } \
286  FOREACH_BASE_IN_MODE_END
287 
288 #define FOREACH_OBJECT_IN_EDIT_MODE_BEGIN(_view_layer, _v3d, _instance) \
289  FOREACH_BASE_IN_EDIT_MODE_BEGIN (_view_layer, _v3d, _base) { \
290  Object *_instance = _base->object;
291 
292 #define FOREACH_OBJECT_IN_EDIT_MODE_END \
293  } \
294  FOREACH_BASE_IN_EDIT_MODE_END
295 
296 #define FOREACH_SELECTED_BASE_BEGIN(view_layer, _instance) \
297  ITER_BEGIN (BKE_view_layer_selected_bases_iterator_begin, \
298  BKE_view_layer_selected_bases_iterator_next, \
299  BKE_view_layer_selected_bases_iterator_end, \
300  view_layer, \
301  Base *, \
302  _instance)
303 
304 #define FOREACH_SELECTED_BASE_END ITER_END
305 
306 #define FOREACH_VISIBLE_BASE_BEGIN(_view_layer, _v3d, _instance) \
307  { \
308  struct ObjectsVisibleIteratorData data_ = { \
309  .view_layer = _view_layer, \
310  .v3d = _v3d, \
311  }; \
312  ITER_BEGIN (BKE_view_layer_visible_bases_iterator_begin, \
313  BKE_view_layer_visible_bases_iterator_next, \
314  BKE_view_layer_visible_bases_iterator_end, \
315  &data_, \
316  Base *, \
317  _instance)
318 
319 #define FOREACH_VISIBLE_BASE_END \
320  ITER_END; \
321  } \
322  ((void)0)
323 
324 #define FOREACH_OBJECT_BEGIN(view_layer, _instance) \
325  { \
326  Object *_instance; \
327  Base *_base; \
328  for (_base = (view_layer)->object_bases.first; _base; _base = _base->next) { \
329  _instance = _base->object;
330 
331 #define FOREACH_OBJECT_END \
332  } \
333  } \
334  ((void)0)
335 
336 #define FOREACH_OBJECT_FLAG_BEGIN(scene, _view_layer, _v3d, flag, _instance) \
337  { \
338  IteratorBeginCb func_begin; \
339  IteratorCb func_next, func_end; \
340  void *data_in; \
341  struct ObjectsVisibleIteratorData data_ = { \
342  .view_layer = _view_layer, \
343  .v3d = _v3d, \
344  }; \
345 \
346  if (flag == SELECT) { \
347  func_begin = &BKE_view_layer_selected_objects_iterator_begin; \
348  func_next = &BKE_view_layer_selected_objects_iterator_next; \
349  func_end = &BKE_view_layer_selected_objects_iterator_end; \
350  data_in = &data_; \
351  } \
352  else { \
353  func_begin = BKE_scene_objects_iterator_begin; \
354  func_next = BKE_scene_objects_iterator_next; \
355  func_end = BKE_scene_objects_iterator_end; \
356  data_in = (scene); \
357  } \
358  ITER_BEGIN (func_begin, func_next, func_end, data_in, Object *, _instance)
359 
360 #define FOREACH_OBJECT_FLAG_END \
361  ITER_END; \
362  } \
363  ((void)0)
364 
365 /* layer_utils.c */
366 
369 
370  bool (*filter_fn)(struct Object *ob, void *user_data);
372 };
373 
375  struct ViewLayer *view_layer,
376  const struct View3D *v3d,
377  uint *r_len,
378  const struct ObjectsInViewLayerParams *params);
379 
381  const struct View3D *v3d);
382 
383 #define BKE_view_layer_array_selected_objects(view_layer, v3d, r_len, ...) \
384  BKE_view_layer_array_selected_objects_params( \
385  view_layer, v3d, r_len, &(const struct ObjectsInViewLayerParams)__VA_ARGS__)
386 
390 
391  bool (*filter_fn)(struct Object *ob, void *user_data);
393 };
394 
396  struct ViewLayer *view_layer,
397  const struct View3D *v3d,
398  uint *r_len,
399  const struct ObjectsInModeParams *params);
400 
402  struct ViewLayer *view_layer,
403  const struct View3D *v3d,
404  uint *len,
405  const struct ObjectsInModeParams *params);
406 
407 #define BKE_view_layer_array_from_objects_in_mode(view_layer, v3d, r_len, ...) \
408  BKE_view_layer_array_from_objects_in_mode_params( \
409  view_layer, v3d, r_len, &(const struct ObjectsInModeParams)__VA_ARGS__)
410 
411 #define BKE_view_layer_array_from_bases_in_mode(view_layer, v3d, r_len, ...) \
412  BKE_view_layer_array_from_bases_in_mode_params( \
413  view_layer, v3d, r_len, &(const struct ObjectsInModeParams)__VA_ARGS__)
414 
417 
418 /* Utility macros that wrap common args (add more as needed). */
419 
420 #define BKE_view_layer_array_from_objects_in_edit_mode(view_layer, v3d, r_len) \
421  BKE_view_layer_array_from_objects_in_mode(view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT})
422 
423 #define BKE_view_layer_array_from_bases_in_edit_mode(view_layer, v3d, r_len) \
424  BKE_view_layer_array_from_bases_in_mode(view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT})
425 
426 #define BKE_view_layer_array_from_objects_in_edit_mode_unique_data(view_layer, v3d, r_len) \
427  BKE_view_layer_array_from_objects_in_mode( \
428  view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT, .no_dup_data = true})
429 
430 #define BKE_view_layer_array_from_bases_in_edit_mode_unique_data(view_layer, v3d, r_len) \
431  BKE_view_layer_array_from_bases_in_mode( \
432  view_layer, v3d, r_len, {.object_mode = OB_MODE_EDIT, .no_dup_data = true})
433 
434 #define BKE_view_layer_array_from_objects_in_edit_mode_unique_data_with_uvs( \
435  view_layer, v3d, r_len) \
436  BKE_view_layer_array_from_objects_in_mode( \
437  view_layer, \
438  v3d, \
439  r_len, \
440  {.object_mode = OB_MODE_EDIT, \
441  .no_dup_data = true, \
442  .filter_fn = BKE_view_layer_filter_edit_mesh_has_uvs})
443 
444 #define BKE_view_layer_array_from_objects_in_mode_unique_data(view_layer, v3d, r_len, mode) \
445  BKE_view_layer_array_from_objects_in_mode( \
446  view_layer, v3d, r_len, {.object_mode = mode, .no_dup_data = true})
447 
448 struct ViewLayerAOV *BKE_view_layer_add_aov(struct ViewLayer *view_layer);
449 void BKE_view_layer_remove_aov(struct ViewLayer *view_layer, struct ViewLayerAOV *aov);
450 void BKE_view_layer_set_active_aov(struct ViewLayer *view_layer, struct ViewLayerAOV *aov);
451 void BKE_view_layer_verify_aov(struct RenderEngine *engine,
452  struct Scene *scene,
453  struct ViewLayer *view_layer);
454 bool BKE_view_layer_has_valid_aov(struct ViewLayer *view_layer);
456  struct ViewLayerAOV *view_layer_aov);
457 
458 #ifdef __cplusplus
459 }
460 #endif
void BKE_view_layer_bases_in_mode_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1766
void BKE_layer_collection_set_flag(struct LayerCollection *lc, const int flag, const bool value)
Definition: layer.c:1477
void BKE_view_layer_bases_in_mode_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1792
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:1527
void BKE_layer_collection_local_sync_all(const struct Main *bmain)
void BKE_view_layer_selected_objects_tag(struct ViewLayer *view_layer, const int tag)
Definition: layer.c:305
struct ViewLayer * BKE_view_layer_add(struct Scene *scene, const char *name, struct ViewLayer *view_layer_source, const int type)
Definition: layer.c:200
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_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_free(struct ViewLayer *view_layer)
Definition: layer.c:254
void BKE_view_layer_visible_bases_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1739
void BKE_view_layer_rename(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, const char *name)
Definition: layer.c:522
bool BKE_layer_collection_activate(struct ViewLayer *view_layer, struct LayerCollection *lc)
Definition: layer.c:638
bool BKE_layer_collection_objects_select(struct ViewLayer *view_layer, struct LayerCollection *lc, bool deselect)
Definition: layer.c:1031
bool BKE_view_layer_filter_edit_mesh_has_uvs(struct Object *ob, void *user_data)
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:1831
void BKE_view_layer_selected_editable_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1684
struct ObjectsVisibleIteratorData ObjectsVisibleIteratorData
void BKE_view_layer_set_active_aov(struct ViewLayer *view_layer, struct ViewLayerAOV *aov)
Definition: layer.c:2061
struct LayerCollection * BKE_layer_collection_get_active(struct ViewLayer *view_layer)
Definition: layer.c:630
void BKE_view_layer_selected_editable_objects_iterator_end(BLI_Iterator *iter)
Definition: layer.c:1707
bool BKE_view_layer_has_valid_aov(struct ViewLayer *view_layer)
Definition: layer.c:2113
void BKE_main_collection_sync(const struct Main *bmain)
struct LayerCollection * BKE_layer_collection_from_index(struct ViewLayer *view_layer, const int index)
Definition: layer.c:621
void BKE_view_layer_selected_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1642
void BKE_view_layer_visible_bases_iterator_end(BLI_Iterator *iter)
Definition: layer.c:1749
bool BKE_layer_collection_has_selected_objects(struct ViewLayer *view_layer, struct LayerCollection *lc)
Definition: layer.c:1067
struct Object * BKE_view_layer_camera_find(struct ViewLayer *view_layer)
Definition: layer.c:337
void BKE_view_layer_selected_objects_iterator_end(BLI_Iterator *iter)
Definition: layer.c:1652
void BKE_view_layer_selected_editable_objects_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1698
eViewLayerCopyMethod
Definition: BKE_layer.h:49
@ VIEWLAYER_ADD_NEW
Definition: BKE_layer.h:50
@ VIEWLAYER_ADD_EMPTY
Definition: BKE_layer.h:51
@ VIEWLAYER_ADD_COPY
Definition: BKE_layer.h:52
void BKE_layer_collection_isolate_global(struct Scene *scene, struct ViewLayer *view_layer, struct LayerCollection *lc, bool extend)
Definition: layer.c:1206
struct ViewLayer * BKE_view_layer_default_view(const struct Scene *scene)
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:403
bool BKE_layer_collection_has_layer_collection(struct LayerCollection *lc_parent, struct LayerCollection *lc_child)
Definition: layer.c:1092
void BKE_view_layer_blend_read_data(struct BlendDataReader *reader, struct ViewLayer *view_layer)
Definition: layer.c:1937
struct Base * BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob)
Definition: layer.c:394
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
void BKE_view_layer_selected_bases_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1723
int BKE_layer_collection_count(struct ViewLayer *view_layer)
Definition: layer.c:692
void BKE_view_layer_verify_aov(struct RenderEngine *engine, struct Scene *scene, struct ViewLayer *view_layer)
Definition: layer.c:2095
struct ViewLayer * BKE_view_layer_context_active_PLACEHOLDER(const struct Scene *scene)
void BKE_view_layer_free_ex(struct ViewLayer *view_layer, const bool do_id_user)
Definition: layer.c:262
void BKE_view_layer_visible_objects_iterator_end(BLI_Iterator *iter)
Definition: layer.c:1673
struct ViewLayer * BKE_view_layer_default_render(const struct Scene *scene)
void BKE_view_layer_selected_bases_iterator_end(BLI_Iterator *iter)
Definition: layer.c:1728
struct ViewLayer * BKE_view_layer_find_with_aov(struct Scene *scene, struct ViewLayerAOV *view_layer_aov)
Definition: layer.c:2123
bool BKE_object_is_visible_in_viewport(const struct View3D *v3d, const struct Object *ob)
bool BKE_view_layer_has_collection(struct ViewLayer *view_layer, const struct Collection *collection)
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)
bool BKE_view_layer_filter_edit_mesh_has_edges(struct Object *ob, void *user_data)
struct LayerCollection * BKE_layer_collection_first_from_scene_collection(struct ViewLayer *view_layer, const struct Collection *collection)
void BKE_layer_eval_view_layer_indexed(struct Depsgraph *depsgraph, struct Scene *scene, int view_layer_index)
Definition: layer.c:1879
void BKE_view_layer_base_select_and_set_active(struct ViewLayer *view_layer, struct Base *selbase)
Definition: layer.c:412
int BKE_layer_collection_findindex(struct ViewLayer *view_layer, const struct LayerCollection *lc)
void BKE_layer_collection_sync(const struct Scene *scene, struct ViewLayer *view_layer)
void BKE_view_layer_visible_objects_iterator_begin(BLI_Iterator *iter, void *data_in)
Definition: layer.c:1663
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:1718
void BKE_view_layer_blend_read_lib(struct BlendLibReader *reader, struct Library *lib, struct ViewLayer *view_layer)
Definition: layer.c:1976
void BKE_base_set_visible(struct Scene *scene, struct ViewLayer *view_layer, struct Base *base, bool extend)
Definition: layer.c:1110
void BKE_view_layer_blend_write(struct BlendWriter *writer, struct ViewLayer *view_layer)
Definition: layer.c:1898
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:1744
void BKE_layer_collection_set_visible(struct ViewLayer *view_layer, struct LayerCollection *lc, const bool visible, const bool hierarchy)
Definition: layer.c:1414
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:2034
void BKE_layer_collection_isolate_local(struct ViewLayer *view_layer, const struct View3D *v3d, struct LayerCollection *lc, bool extend)
void BKE_view_layer_visible_objects_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1668
struct Object * BKE_view_layer_non_active_selected_object(struct ViewLayer *view_layer, const struct View3D *v3d)
Definition: layer_utils.c:202
void BKE_view_layer_selected_objects_iterator_next(BLI_Iterator *iter)
Definition: layer.c:1647
void BKE_view_layer_remove_aov(struct ViewLayer *view_layer, struct ViewLayerAOV *aov)
Definition: layer.c:2046
unsigned int uint
Definition: BLI_sys_types.h:83
struct Depsgraph Depsgraph
Definition: DEG_depsgraph.h:51
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
DRWShaderLibrary * lib
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
short flag
struct Collection * collection
Definition: BKE_main.h:116
struct Base * base_active
Definition: BKE_layer.h:185
struct ViewLayer * view_layer
Definition: BKE_layer.h:183
const struct View3D * v3d
Definition: BKE_layer.h:184
bool(* filter_fn)(struct Object *ob, void *user_data)
Definition: BKE_layer.h:391
void * filter_userdata
Definition: BKE_layer.h:392
bool(* filter_fn)(struct Object *ob, void *user_data)
Definition: BKE_layer.h:370
const struct View3D * v3d
Definition: BKE_layer.h:165
struct ViewLayer * view_layer
Definition: BKE_layer.h:164
char name[64]
uint len