HDK
|
Mapper that provides an HDA section name for a given shader node. More...
#include <VOP_ScriptMaterialInfo.h>
Public Member Functions | |
virtual | ~VOP_ScriptMaterialCodeMapper () |
virtual void | mapToVexCodeSection (UT_String §ion_name, VOP_Node *shader_node, VOP_Type shader_type, bool is_encapsulated)=0 |
virtual bool | isPrimaryOutput (VOP_Node *shader_node, VOP_Type shader_type) const =0 |
Mapper that provides an HDA section name for a given shader node.
The shader may be a material component shader or an encapsulated shader. The material component shader can be invoked by arbitrary caller (eg, a renderer or another shader). The encapsulated shaders are referenced by procedural geometry VOPs inside the material, and are not really available to the outside world for direct calls. They can be indirectly manipulated thru parameters promoted to the parent material.
Definition at line 243 of file VOP_ScriptMaterialInfo.h.
|
inlinevirtual |
Definition at line 247 of file VOP_ScriptMaterialInfo.h.
|
pure virtual |
Checks if the shader node was added as part of the primary output compilation phase. These nodes don't have phantom nodes, but rather reference a saved code section directly.
|
pure virtual |
Maps the shader node to an HDA section name that contains the code generated by that shader node. The shader node should generate own code, because mapper may try to compile and store it in the section. Returns, previously added mapped section name if already added, or adds and returns a newly constructed shection name.
section_name | The outgoing argument that will contain the section name that contains the shader's vex code. |
shader_node | The shader node whose code is in the mapped section name. |
shader_type | The type of shader code to look for (one node may be able to provide a few vex code chunks, each for a different shader type). |
is_encapsulated | If true, the shader is mareked as encapsulated, which influences how the shader node is treated with regards purpose of calling it from the geometry procedurals (without import directoves), rather than as an explicit VEX shader call from another VEX shader (which require import directives, etc). |