42 return !(*
this == other);
121 return emitter_data_map_.
values();
137 MapType emitter_data_map_;
181 void clear_after_build();
251 void add_light_linking_emitter(
const Scene &scene,
const Object &emitter);
252 void add_shadow_linking_emitter(
const Scene &scene,
const Object &emitter);
258 void add_receiver_object(
const EmitterData &emitter_data,
261 void add_blocker_object(
const EmitterData &emitter_data,
266 bool has_light_linking()
const
268 return !light_emitter_data_map_.
is_empty() || !shadow_emitter_data_map_.
is_empty();
struct Collection * BKE_light_linking_collection_get(const struct Object *object, LightLinkingType link_type)
Object groups, one object can be in many groups at once.
eCollectionLightLinkingState
Object is a sort of wrapper for general info.
ValueIterator values() const
void eval_runtime_data(Object &object_eval) const
void add_emitter(const Scene &scene, const Object &emitter)
void end_build(const Scene &scene)
bool can_skip_emitter(const Object &emitter) const
EmitterData * ensure_data_if_possible(const Scene &scene, const Object &emitter)
MapType::MutableValueIterator values()
EmitterDataMap(const LightLinkingType link_type)
const EmitterData * get_data(const Object &emitter) const
static constexpr int MAX_COLLECTION_ID
EmitterSetMembership light_membership
EmitterSetMembership shadow_membership
uint64_t get_mask() const
static constexpr uint64_t SET_MEMBERSHIP_ALL
uint64_t included_sets_mask
uint64_t excluded_sets_mask
uint64_t include_collection_mask
static constexpr int MAX_ID
bool operator!=(const LightSet &other) const
bool operator==(const LightSet &other) const
uint64_t exclude_collection_mask
static constexpr int DEFAULT_ID
uint64_t get_light_set_for(const Object &object) const
LinkingData(const LightLinkingType link_type)
void end_build(const Scene &scene, EmitterDataMap &emitter_data_map)
void link_object(const EmitterData &emitter_data, eCollectionLightLinkingState link_state, const Object &object)
unsigned __int64 uint64_t