Blender V5.0
BsdfBaseNode Class Reference

#include <shader_nodes.h>

Inherits ShaderNode.

Inherited by BsdfNode, PrincipledBsdfNode, and PrincipledHairBsdfNode.

Public Member Functions

 BsdfBaseNode (const NodeType *node_type)
bool is_linear_operation () override
bool has_spatial_varying () override
ClosureType get_closure_type () override
bool has_bump () override
bool equals (const ShaderNode &) override
uint get_feature () override
Public Member Functions inherited from ShaderNode
 ShaderNode (const NodeType *type)
 ShaderNode (const ShaderNode &other)
void create_inputs_outputs (const NodeType *type)
void remove_input (ShaderInput *input)
ShaderInputinput (const char *name)
ShaderOutputoutput (const char *name)
ShaderInputinput (ustring name)
ShaderOutputoutput (ustring name)
virtual ShaderNodeclone (ShaderGraph *graph) const =0
virtual void attributes (Shader *shader, AttributeRequestSet *attributes)
virtual void compile (SVMCompiler &compiler)=0
virtual void compile (OSLCompiler &compiler)=0
virtual void expand (ShaderGraph *)
virtual void constant_fold (const ConstantFolder &)
virtual void simplify_settings (Scene *)
virtual bool has_surface_emission ()
virtual bool has_surface_transparent ()
virtual bool has_surface_bssrdf ()
virtual bool has_bssrdf_bump ()
virtual bool has_attribute_dependency ()
virtual bool has_volume_support ()
Public Member Functions inherited from Node
 Node (const NodeType *type, ustring name=ustring())
virtual ~Node ()=0
void set (const SocketType &input, bool value)
void set (const SocketType &input, const int value)
void set (const SocketType &input, const uint value)
void set (const SocketType &input, const uint64_t value)
void set (const SocketType &input, const float value)
void set (const SocketType &input, const float2 value)
void set (const SocketType &input, const float3 value)
void set (const SocketType &input, const char *value)
void set (const SocketType &input, ustring value)
void set (const SocketType &input, const Transform &value)
void set (const SocketType &input, Node *value)
template<class ValueType, std::enable_if_t< std::is_enum_v< ValueType >, bool > = true>
void set (const SocketType &input, const ValueType &value)
void set (const SocketType &input, array< bool > &value)
void set (const SocketType &input, array< int > &value)
void set (const SocketType &input, array< float > &value)
void set (const SocketType &input, array< float2 > &value)
void set (const SocketType &input, array< float3 > &value)
void set (const SocketType &input, array< ustring > &value)
void set (const SocketType &input, array< Transform > &value)
void set (const SocketType &input, array< Node * > &value)
bool get_bool (const SocketType &input) const
int get_int (const SocketType &input) const
uint get_uint (const SocketType &input) const
uint64_t get_uint64 (const SocketType &input) const
float get_float (const SocketType &input) const
float2 get_float2 (const SocketType &input) const
float3 get_float3 (const SocketType &input) const
ustring get_string (const SocketType &input) const
Transform get_transform (const SocketType &input) const
Nodeget_node (const SocketType &input) const
const array< bool > & get_bool_array (const SocketType &input) const
const array< int > & get_int_array (const SocketType &input) const
const array< float > & get_float_array (const SocketType &input) const
const array< float2 > & get_float2_array (const SocketType &input) const
const array< float3 > & get_float3_array (const SocketType &input) const
const array< ustring > & get_string_array (const SocketType &input) const
const array< Transform > & get_transform_array (const SocketType &input) const
const array< Node * > & get_node_array (const SocketType &input) const
bool has_default_value (const SocketType &input) const
void set_default_value (const SocketType &input)
bool equals_value (const Node &other, const SocketType &socket) const
void copy_value (const SocketType &socket, const Node &other, const SocketType &other_socket)
void set_value (const SocketType &socket, const Node &other, const SocketType &other_socket)
bool equals (const Node &other) const
void hash (MD5Hash &md5)
size_t get_total_size_in_bytes () const
bool is_a (const NodeType *type)
bool socket_is_modified (const SocketType &input) const
bool is_modified () const
void tag_modified ()
void clear_modified ()
void print_modified_sockets () const
const NodeOwnerget_owner () const
void set_owner (const NodeOwner *owner_)
int reference_count () const
void reference ()
void dereference ()
void clear_reference_count ()

Protected Attributes

ClosureType closure
Protected Attributes inherited from Node
const NodeOwnerowner
int ref_count {0}
SocketModifiedFlags socket_modified

Additional Inherited Members

Public Attributes inherited from ShaderNode
unique_ptr_vector< ShaderInputinputs
unique_ptr_vector< ShaderOutputoutputs
int id = -1
ShaderBump bump = SHADER_BUMP_NONE
float bump_filter_width = 0.0f
ShaderNodeSpecialType special_type = SHADER_SPECIAL_TYPE_NONE
Public Attributes inherited from Node
ustring name
const NodeTypetype
InternalNode internal
LeafNode leaf
Protected Member Functions inherited from ShaderNode
void disconnect_unused_input (const char *name)
Protected Member Functions inherited from Node
template<typename T>
void set_if_different (const SocketType &input, T value)
void set_if_different (const SocketType &input, Node *value)
template<typename T>
void set_if_different (const SocketType &input, array< T > &value)
void set_if_different (const SocketType &input, array< Node * > &value)
void dereference_all_used_nodes ()
Static Protected Member Functions inherited from Node
template<typename T>
static Tget_socket_value (const Node *node, const SocketType &socket)

Detailed Description

Definition at line 444 of file shader_nodes.h.

Constructor & Destructor Documentation

◆ BsdfBaseNode()

BsdfBaseNode::BsdfBaseNode ( const NodeType * node_type)

Member Function Documentation

◆ equals()

bool BsdfBaseNode::equals ( const ShaderNode & )
inlineoverridevirtual

Reimplemented from ShaderNode.

Definition at line 462 of file shader_nodes.h.

References ShaderNode::ShaderNode().

◆ get_closure_type()

ClosureType BsdfBaseNode::get_closure_type ( )
inlineoverridevirtual

◆ get_feature()

uint BsdfBaseNode::get_feature ( )
inlineoverridevirtual

Reimplemented from ShaderNode.

Reimplemented in PrincipledHairBsdfNode, and RayPortalBsdfNode.

Definition at line 468 of file shader_nodes.h.

References ShaderNode::get_feature(), and KERNEL_FEATURE_NODE_BSDF.

◆ has_bump()

bool BsdfBaseNode::has_bump ( )
overridevirtual

◆ has_spatial_varying()

bool BsdfBaseNode::has_spatial_varying ( )
inlineoverridevirtual

Reimplemented from ShaderNode.

Definition at line 452 of file shader_nodes.h.

◆ is_linear_operation()

bool BsdfBaseNode::is_linear_operation ( )
inlineoverridevirtual

Reimplemented from ShaderNode.

Reimplemented in DiffuseBsdfNode.

Definition at line 448 of file shader_nodes.h.

Member Data Documentation

◆ closure

ClosureType BsdfBaseNode::closure
protected

The documentation for this class was generated from the following files: