Object Hierarchy | Related C++ Class: ValueMap
ValueMap
v9.0 (2011)
ICE Shaders
A Value Map is set of name-value pairs defined for a ShaderDef, a ShaderParamDef, a ShaderArrayParamDef, or a MetaShaderRendererDef. This is the
equivalent of a dictionary or associative array.
Tip: There is no Count property implemented on this object, so if
you want to access the number of entries (for example, if you
wanted to iterate over the entire set), you should use the ValueMap.Names property to get the list
of names defined in this ValueMap and then get the length of that
safeArray.
# See the example under the ValueMap.Remove method |
/* This example demonstrates how to iterate over the ValueMap items and extract the name-value pairs */ var app = Application; var e = new Enumerator(app.ShaderDefinitions); for (; !e.atEnd(); e.moveNext()) { var oShaderDef = e.item(); if (oShaderDef.Attributes) { // Get the list of names var vbaNames = new VBArray(oShaderDef.Attributes.Names); var aNames = vbaNames.toArray(); if (aNames.length) { // Get the list of values var vbaValues = new VBArray(oShaderDef.Attributes.Values); var aValues = vbaValues.toArray(); app.LogMessage(oShaderDef.Name+" has "+aNames.length+" attribute name(s) and "+aValues.length+" value(s):"); for (var i=0; i<aNames.length; i++) { var sName = aNames[i]; app.LogMessage("\t- "+sName+" == "+aValues[i]); } } } } // INFO : Softimage.soft_light.1.0 has 1 attribute name(s) and 1 value(s): // INFO : - {C535FA4D-E44A-45EB-AEE0-9F9AAEA91745} == undefined // INFO : Softimage.material-lambert.1.0 has 1 attribute name(s) and 1 value(s): // INFO : - {C535FA4D-E44A-45EB-AEE0-9F9AAEA91745} == undefined // INFO : Softimage.material-phong.1.0 has 1 attribute name(s) and 1 value(s): // INFO : - {C535FA4D-E44A-45EB-AEE0-9F9AAEA91745} == undefined |