Blender V5.0
BKE_light_linking.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
12
13#include "DNA_collection_types.h" /* eCollectionLightLinkingState */
14
15struct ID;
16struct Main;
17struct Object;
18struct Collection;
19struct ReportList;
20struct Scene;
21struct ViewLayer;
22
27
31void BKE_light_linking_ensure(struct Object *object);
32
39void BKE_light_linking_copy(struct Object *object_dst,
40 const struct Object *object_src,
41 const int copy_flags);
42
49void BKE_light_linking_delete(struct Object *object, const int delete_flags);
50
54void BKE_light_linking_free_if_empty(struct Object *object);
55
60 LightLinkingType link_type);
61
72 struct Object *object,
73 LightLinkingType link_type);
74
85 struct Collection *new_collection,
86 LightLinkingType link_type);
88 struct Object *object,
89 struct Collection *new_collection,
90 LightLinkingType link_type);
91
98 struct Collection *collection,
99 struct ID *receiver,
100 const eCollectionLightLinkingState link_state);
102 struct Main *bmain,
103 struct Collection *collection,
104 struct ID *receiver,
105 const struct ID *before,
106 const eCollectionLightLinkingState link_state);
108 struct Main *bmain,
109 struct Collection *collection,
110 struct ID *receiver,
111 const struct ID *after,
112 const eCollectionLightLinkingState link_state);
113
130 struct Collection *collection,
131 struct ID *id,
132 struct ReportList *reports);
133
142 struct Object *emitter,
143 struct Object *receiver,
144 LightLinkingType link_type,
146
151 struct ViewLayer *view_layer,
152 struct Object *emitter,
153 LightLinkingType link_type);
void BKE_light_linking_copy(struct Object *object_dst, const struct Object *object_src, const int copy_flags)
void BKE_light_linking_collection_assign(struct Main *bmain, struct Object *object, struct Collection *new_collection, LightLinkingType link_type)
void BKE_light_linking_select_receivers_of_emitter(struct Scene *scene, struct ViewLayer *view_layer, struct Object *emitter, LightLinkingType link_type)
void BKE_light_linking_delete(struct Object *object, const int delete_flags)
LightLinkingType
@ LIGHT_LINKING_BLOCKER
@ LIGHT_LINKING_RECEIVER
bool BKE_light_linking_unlink_id_from_collection(struct Main *bmain, struct Collection *collection, struct ID *id, struct ReportList *reports)
void BKE_light_linking_free_if_empty(struct Object *object)
void BKE_light_linking_collection_assign_only(struct Object *object, struct Collection *new_collection, LightLinkingType link_type)
void BKE_light_linking_add_receiver_to_collection_after(struct Main *bmain, struct Collection *collection, struct ID *receiver, const struct ID *after, const eCollectionLightLinkingState link_state)
struct Collection * BKE_light_linking_collection_new(struct Main *bmain, struct Object *object, LightLinkingType link_type)
struct Collection * BKE_light_linking_collection_get(const struct Object *object, LightLinkingType link_type)
void BKE_light_linking_link_receiver_to_emitter(struct Main *bmain, struct Object *emitter, struct Object *receiver, LightLinkingType link_type, eCollectionLightLinkingState link_state)
void BKE_light_linking_ensure(struct Object *object)
void BKE_light_linking_add_receiver_to_collection_before(struct Main *bmain, struct Collection *collection, struct ID *receiver, const struct ID *before, const eCollectionLightLinkingState link_state)
void BKE_light_linking_add_receiver_to_collection(struct Main *bmain, struct Collection *collection, struct ID *receiver, const eCollectionLightLinkingState link_state)
Object groups, one object can be in many groups at once.
eCollectionLightLinkingState
Definition DNA_ID.h:414