37 #ifndef Alembic_AbcMaterial_IMaterial_h
38 #define Alembic_AbcMaterial_IMaterial_h
45 namespace 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>()
107 void getTargetNames( std::vector<std::string> & iTargetNames );
113 void getShaderTypesForTarget(
const std::string & iTargetName,
114 std::vector<std::string> & oShaderTypeNames );
118 bool getShader(
const std::string & iTarget,
119 const std::string & iShaderType,
120 std::string & oResult );
126 const std::string & iTarget,
const std::string & iShaderType );
137 const std::string & iNodeName );
143 bool getTarget( std::string & oResult );
144 bool getNodeType( std::string & oResult );
148 size_t getNumConnections();
149 bool getConnection(
size_t iIndex,
150 std::string & oInputName,
151 std::string & oConnectedNodeName,
152 std::string & oConnectedOutputName );
154 bool getConnection(
const std::string & iInputName,
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,
170 size_t getNumNetworkNodes();
171 void getNetworkNodeNames( std::vector<std::string> & oNames );
174 NetworkNode getNetworkNode(
const std::string & iNodeName );
176 void getNetworkTerminalTargetNames(
177 std::vector<std::string> & oTargetNames );
179 void getNetworkTerminalShaderTypesForTarget(
180 const std::string & iTargetName,
181 std::vector<std::string> & oShaderTypeNames );
183 bool getNetworkTerminal(
const std::string & iTarget,
184 const std::string & iShaderType,
185 std::string & oNodeName,
186 std::string & oOutputName );
188 size_t getNumNetworkInterfaceParameterMappings();
189 bool getNetworkInterfaceParameterMapping(
size_t iIndex,
190 std::string & oInterfaceParamName,
191 std::string & oMapToNodeName,
192 std::string & oMapToParamName );
194 void getNetworkInterfaceParameterMappingNames(
195 std::vector<std::string> & oNames );
197 bool getNetworkInterfaceParameterMapping(
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;
IMaterialSchema(const ICompoundProperty &iProp, const Abc::Argument &iArg0=Abc::Argument(), const Abc::Argument &iArg1=Abc::Argument())
GLboolean GLboolean GLboolean GLboolean a
IMaterialSchema(const IMaterialSchema &iCopy)
Copy constructor.
IMaterialSchema(const ICompoundProperty &iParent, const std::string &iName, const Abc::Argument &iArg0=Abc::Argument(), const Abc::Argument &iArg1=Abc::Argument())
PXL_API const char * getName(const ColorSpace *space)
Return the name of the color space.
GLboolean GLboolean GLboolean b
IMaterialSchema this_type
Abc::ISchemaObject< IMaterialSchema > IMaterial
Object declaration.
Util::shared_ptr< IMaterial > IMaterialPtr
#define ALEMBIC_VERSION_NS