Blender V4.3
light_linking.cpp
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011-2023 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
6
7#include "scene/object.h"
8
9#include "DNA_object_types.h"
10
12
13static const ::Object *get_blender_object(const BL::Object &object)
14{
15 return reinterpret_cast<::Object *>(object.ptr.data);
16}
17
18static const ::LightLinking *get_light_linking(const BL::Object &object)
19{
20 const ::Object *blender_object = get_blender_object(object);
21 return blender_object->light_linking;
22}
23
25 const BL::Object &object)
26{
27 const ::LightLinking *light_linking = get_light_linking(object);
28 return (light_linking) ? light_linking->runtime.light_set_membership : LIGHT_LINK_MASK_ALL;
29}
30
31uint BlenderLightLink::get_receiver_light_set(const BL::Object &parent, const BL::Object &object)
32{
33 if (parent) {
34 const ::LightLinking *parent_light_linking = get_light_linking(parent);
35 if (parent_light_linking && parent_light_linking->runtime.receiver_light_set) {
36 return parent_light_linking->runtime.receiver_light_set;
37 }
38 }
39
40 const ::LightLinking *light_linking = get_light_linking(object);
41 return (light_linking) ? light_linking->runtime.receiver_light_set : 0;
42}
43
45 const BL::Object &object)
46{
47 const ::LightLinking *light_linking = get_light_linking(object);
48 return (light_linking) ? light_linking->runtime.shadow_set_membership : LIGHT_LINK_MASK_ALL;
49}
50
51uint BlenderLightLink::get_blocker_shadow_set(const BL::Object &parent, const BL::Object &object)
52{
53 if (parent) {
54 const ::LightLinking *parent_light_linking = get_light_linking(parent);
55 if (parent_light_linking && parent_light_linking->runtime.blocker_shadow_set) {
56 return parent_light_linking->runtime.blocker_shadow_set;
57 }
58 }
59
60 const ::LightLinking *light_linking = get_light_linking(object);
61 return (light_linking) ? light_linking->runtime.blocker_shadow_set : 0;
62}
63
unsigned int uint
Object is a sort of wrapper for general info.
#define CCL_NAMESPACE_END
#define LIGHT_LINK_MASK_ALL
static CCL_NAMESPACE_BEGINconst ::Object * get_blender_object(const BL::Object &object)
static const ::LightLinking * get_light_linking(const BL::Object &object)
unsigned __int64 uint64_t
Definition stdint.h:90