37#ifndef Alembic_AbcMaterial_IMaterial_h
38#define Alembic_AbcMaterial_IMaterial_h
45namespace AbcMaterial {
71 const std::string &iName,
75 :
Abc::ISchema<MaterialSchemaInfo>( iParent, iName, iArg0, iArg1 )
87 :
Abc::ISchema<MaterialSchemaInfo>( iProp, iArg0, iArg1 )
94 :
Abc::ISchema<MaterialSchemaInfo>()
114 std::vector<std::string> & oShaderTypeNames );
119 const std::string & iShaderType,
120 std::string & oResult );
126 const std::string & iTarget,
const std::string & iShaderType );
137 const std::string & iNodeName );
150 std::string & oInputName,
151 std::string & oConnectedNodeName,
152 std::string & oConnectedOutputName );
155 std::string & oConnectedNodeName,
156 std::string & oConnectedOutputName );
161 bool m_connectionsChecked;
162 std::vector< std::string > m_connections;
163 std::map< std::string, std::string > m_connectionsMap;
165 void splitConnectionValue(
const std::string & v,
177 std::vector<std::string> & oTargetNames );
180 const std::string & iTargetName,
181 std::vector<std::string> & oShaderTypeNames );
184 const std::string & iShaderType,
185 std::string & oNodeName,
186 std::string & oOutputName );
190 std::string & oInterfaceParamName,
191 std::string & oMapToNodeName,
192 std::string & oMapToParamName );
195 std::vector<std::string> & oNames );
198 const std::string & iInterfaceParamName,
199 std::string & oMapToNodeName,
200 std::string & oMapToParamName );
210 std::map<std::string, std::string> m_shaderNames;
211 std::map<std::string, std::string> m_terminals;
212 std::map<std::string, std::string> m_interfaceMap;
213 std::vector<std::string> m_interface;
#define ALEMBIC_VERSION_NS
bool getConnection(const std::string &iInputName, std::string &oConnectedNodeName, std::string &oConnectedOutputName)
bool getConnection(size_t iIndex, std::string &oInputName, std::string &oConnectedNodeName, std::string &oConnectedOutputName)
NetworkNode(Abc::ICompoundProperty iCompound)
bool getTarget(std::string &oResult)
size_t getNumConnections()
Abc::ICompoundProperty getParameters()
bool getNodeType(std::string &oResult)
NetworkNode(Abc::ICompoundProperty iParent, const std::string &iNodeName)
void getNetworkNodeNames(std::vector< std::string > &oNames)
void getShaderTypesForTarget(const std::string &iTargetName, std::vector< std::string > &oShaderTypeNames)
void getNetworkTerminalTargetNames(std::vector< std::string > &oTargetNames)
IMaterialSchema(const ICompoundProperty &iProp, const Abc::Argument &iArg0=Abc::Argument(), const Abc::Argument &iArg1=Abc::Argument())
void getNetworkInterfaceParameterMappingNames(std::vector< std::string > &oNames)
void getNetworkTerminalShaderTypesForTarget(const std::string &iTargetName, std::vector< std::string > &oShaderTypeNames)
NetworkNode getNetworkNode(size_t iIndex)
NetworkNode getNetworkNode(const std::string &iNodeName)
size_t getNumNetworkInterfaceParameterMappings()
IMaterialSchema this_type
bool getNetworkInterfaceParameterMapping(const std::string &iInterfaceParamName, std::string &oMapToNodeName, std::string &oMapToParamName)
IMaterialSchema(const IMaterialSchema &iCopy)
Copy constructor.
Abc::ICompoundProperty getNetworkInterfaceParameters()
bool getNetworkInterfaceParameterMapping(size_t iIndex, std::string &oInterfaceParamName, std::string &oMapToNodeName, std::string &oMapToParamName)
size_t getNumNetworkNodes()
IMaterialSchema(const ICompoundProperty &iParent, const std::string &iName, const Abc::Argument &iArg0=Abc::Argument(), const Abc::Argument &iArg1=Abc::Argument())
Abc::ICompoundProperty getShaderParameters(const std::string &iTarget, const std::string &iShaderType)
void getTargetNames(std::vector< std::string > &iTargetNames)
bool getShader(const std::string &iTarget, const std::string &iShaderType, std::string &oResult)
bool getNetworkTerminal(const std::string &iTarget, const std::string &iShaderType, std::string &oNodeName, std::string &oOutputName)
Util::shared_ptr< IMaterial > IMaterialPtr
Abc::ISchemaObject< IMaterialSchema > IMaterial
Object declaration.