14 const int type_int =
static_cast<int>(type);
18 if (!type_enum->
exists(type_int)) {
19 LOG(DFATAL) <<
"Unhandled pass type " <<
static_cast<int>(type) <<
", not supposed to happen.";
23 return (*type_enum)[type_int].c_str();
35 LOG(DFATAL) <<
"Unhandled pass mode " <<
static_cast<int>(mode) <<
", should never happen.";
49 if (pass_type_enum.
empty()) {
101#ifdef WITH_CYCLES_DEBUG
108 return &pass_type_enum;
115 if (pass_mode_enum.
empty()) {
120 return &pass_mode_enum;
127 const NodeEnum *pass_type_enum = get_type_enum();
128 const NodeEnum *pass_mode_enum = get_mode_enum();
143 return get_info(type, include_albedo, !lightgroup.empty());
351 LOG(DFATAL) <<
"Unexpected pass type is used " <<
type;
370 for (
const Pass *pass : passes) {
371 if (pass->get_type() !=
type) {
383 for (
const Pass *pass : passes) {
384 if (pass->get_name() ==
name) {
395 const ustring &lightgroup)
397 for (
const Pass *pass : passes) {
398 if (pass->get_type() != type || pass->get_mode() != mode ||
399 pass->get_lightgroup() != lightgroup)
413 for (
const Pass *current_pass : passes) {
415 if (current_pass->get_type() == pass->get_type() &&
416 current_pass->get_mode() == pass->get_mode() &&
417 current_pass->get_name() == pass->get_name())
419 if (current_pass->is_written()) {
426 if (current_pass->is_written()) {
437 os <<
", name: \"" << pass.get_name() <<
"\"";
438 os <<
", mode: " << pass.get_mode();
PassInfo get_info() const
static const NodeEnum * get_type_enum()
static const NodeEnum * get_mode_enum()
static const Pass * find(const vector< Pass * > &passes, const string &name)
static bool contains(const vector< Pass * > &passes, PassType type)
static int get_offset(const vector< Pass * > &passes, const Pass *pass)
#define CCL_NAMESPACE_END
@ PASS_SHADOW_CATCHER_SAMPLE_COUNT
@ PASS_TRANSMISSION_DIRECT
@ PASS_TRANSMISSION_COLOR
@ PASS_SHADOW_CATCHER_MATTE
@ PASS_TRANSMISSION_INDIRECT
@ PASS_GUIDING_PROBABILITY
@ PASS_ADAPTIVE_AUX_BUFFER
@ PASS_GUIDING_AVG_ROUGHNESS
@ PASS_DENOISING_PREVIOUS
@ PASS_CATEGORY_LIGHT_END
#define NODE_DEFINE(structname)
#define SOCKET_BOOLEAN(name, ui_name, default_value,...)
#define SOCKET_STRING(name, ui_name, default_value,...)
#define SOCKET_ENUM(name, ui_name, values, default_value,...)
const char * pass_mode_as_string(PassMode mode)
CCL_NAMESPACE_BEGIN const char * pass_type_as_string(const PassType type)
std::ostream & operator<<(std::ostream &os, PassMode mode)
string string_from_bool(bool var)
void insert(const char *x, int y)
bool exists(ustring x) const
static NodeType * add(const char *name, CreateFunc create, Type type=NONE, const NodeType *base=NULL)
bool use_denoising_albedo