37 AI_CLOSURE_TRANSPARENT,
39 AI_CLOSURE_BACKGROUND,
40 AI_CLOSURE_VOLUME_ABSORPTION,
41 AI_CLOSURE_VOLUME_SCATTERING,
42 AI_CLOSURE_VOLUME_EMISSION,
43 AI_CLOSURE_VOLUME_MATTE,
44 AI_CLOSURE_VOLUME_ATMOSPHERE,
48AI_API AI_DEVICE
AtClosureType AiClosureType(AtClosureBase* closure);
49AI_API AI_DEVICE
AtRGB AiClosureWeight(AtClosureBase* closure);
50AI_API AI_DEVICE
void AiClosureSetWeight(AtClosureBase* closure,
const AtRGB& weight);
51AI_API
AtString AiClosureLabel(AtClosureBase* closure);
52AI_API
void AiClosureSetLabel(AtClosureBase* closure,
const AtString label);
53AI_API AI_DEVICE AtClosureBase* AiClosureNext(AtClosureBase* closure);
71 AI_DEVICE
AtClosure(AtClosureBase* data_) : data(data_) {}
72 AI_DEVICE
operator AtClosureBase*()
const {
return data; }
81AI_API AI_DEVICE AtClosureBase* AiClosureListAdd(AtClosureBase* listA, AtClosureBase* listB);
82AI_API AI_DEVICE AtClosureBase* AiClosureListWeight(AtClosureBase* list,
const AtRGB& weight);
100 : data((AtClosureBase*)data_)
113 data = AiClosureListAdd(data, (AtClosureBase*)closure);
117 AI_DEVICE
inline void add(AtBSDF* bsdf)
119 data = AiClosureListAdd(data, (AtClosureBase*)bsdf);
125 data = AiClosureListAdd(data, list.data);
131 data = AiClosureListWeight(data, weight);
137 data = AiClosureListWeight(data,
AtRGB(weight));
DLL export prefix for API functions (necessary for multi-platform development)
Color types and utilities.
Arnold String allows for fast string comparisons.
Definition: ai_string.h:46
AI_DEVICE void operator*=(const AtRGB &weight)
Multiply weight of all closures in the list.
Definition: ai_closure.h:129
AI_DEVICE AtClosure next()
Get next closure, if part of an AtClosureList.
Definition: ai_closure.h:69
AI_DEVICE AtClosure front() const
First element in the list.
Definition: ai_closure.h:105
AI_DEVICE AtClosureList()
Create empty closure list.
Definition: ai_closure.h:87
AI_DEVICE void add(AtClosure closure)
Add closure to closure list.
Definition: ai_closure.h:111
AI_DEVICE bool empty() const
Test if list is empty.
Definition: ai_closure.h:141
AI_API AI_DEVICE void AiClosureSetExtraSamples(AtClosureBase *closure, uint8_t extra_samples)
Set BSDF, BSSRDF or volume closures to use additional GI samples.
Definition: ai_shader_closure.cpp:107
AtClosureType
Shader closure types.
Definition: ai_closure.h:31
AI_API AI_DEVICE void AiClosureSetExtraDepth(AtClosureBase *closure, uint8_t extra_depth)
Set BSDF, BSSRDF or volume closures to use additional GI depth.
Definition: ai_shader_closure.cpp:91
AI_DEVICE AtRGB weight()
Get closure weight.
Definition: ai_closure.h:66
AI_DEVICE AtClosureType type()
Get closure type.
Definition: ai_closure.h:63
Definition: ai_closure.h:85
Definition: ai_closure.h:61
RGB color.
Definition: ai_color.h:32