HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HwMaterialCompoundNode.h
Go to the documentation of this file.
1 //
2 // Copyright Contributors to the MaterialX Project
3 // SPDX-License-Identifier: Apache-2.0
4 //
5 
6 #ifndef MATERIALX_HWMATERIALCOMPOUNDNODE_H
7 #define MATERIALX_HWMATERIALCOMPOUNDNODE_H
8 
10 
12 
13 /// MaterialCompound node implementation for hardware languages.
14 /// Used for nodegraphs that output material type, such as LamaSurface.
16 {
17  public:
18  static ShaderNodeImplPtr create();
19 
20  void initialize(const InterfaceElement& element, GenContext& context) override;
21  void addClassification(ShaderNode& node) const override;
22 
23  protected:
24  const string& getBsdfInputName() const override;
25  const string& getEdfInputName() const override;
26  const string& getOpacityInputName() const override;
27 
28  private:
29  string _bsdfInputName;
30  string _edfInputName;
31  string _opacityInputName;
32 };
33 
35 
36 #endif
shared_ptr< ShaderNodeImpl > ShaderNodeImplPtr
Shared pointer to a ShaderNodeImpl.
Definition: Library.h:39
#define MATERIALX_NAMESPACE_BEGIN
Definition: Generated.h:25
virtual void addClassification(ShaderNode &node) const
Add additional classifications on a node.
Surface node implementation for hardware languages.
Definition: HwSurfaceNode.h:14
virtual const string & getBsdfInputName() const
Return the name of the BSDF input on the node.
virtual const string & getOpacityInputName() const
Return the name of the opacity input on the node.
static ShaderNodeImplPtr create()
virtual void initialize(const InterfaceElement &element, GenContext &context)
#define MATERIALX_NAMESPACE_END
Definition: Generated.h:26
#define MX_GENHW_API
Definition: Export.h:18
virtual const string & getEdfInputName() const
Return the name of the EDF input on the node.