ShaderStructParamDef

Object Hierarchy | Related C++ Class: ShaderStructParamDef

Inheritance

SIObject

ShaderParamDef

ShaderStructParamDef

Introduced

v9.0 (2011)

Description

This object is a specialization of the ShaderParamDef object. It allows you to access the sub-elements contained by this shader parameter (ShaderStructParamDef.SubParamDefs, which returns a list of sub parameter definitions in a ShaderParamDefContainer).

To create a ShaderStructParamDef object, specify the siShaderDataTypeStructure shader parameter type in the call to ShaderParamDefContainer.AddParamDef or ShaderParamDefContainer.AddArrayParamDef.

Methods

IsClassOf operator IsEqualTo operator    
       

Properties

Application Attributes operator Capabilities operator Categories
DataType operator DefaultValue operator DisplayName operator FullName operator
HasDefaultValue operator Help IsArray operator IsInput operator
IsOutput operator IsStructure operator MainPort operator MaxValue operator
MinValue operator Name operator NestedObjects Origin
OriginPath Parent SubParamDefs operator SuggestedMaxValue operator
SuggestedMinValue operator Texturable operator Type operator  
       

Examples

VBScript Example

' 

' This example demonstrates how to create a dynamic shader definition 

' with an input struct parameter and then populate it with some

' sub parameters.

'

set app = Application

set oShaderDef = XSIFactory.CreateShaderDef("MyParser", "MyStructDemo", 1, 0)

oShaderDef.AddShaderFamily "mrTexture"

app.LogMessage "Shader definition name: " & oShaderDef.Name

' Set up shader parameter definition options to use with new input parameter

set oShaderInParamDefOptions = XSIFactory.CreateShaderParamDefOptions()

oShaderInParamDefOptions.SetAnimatable False

oShaderInParamDefOptions.SetTexturable True

oShaderInParamDefOptions.SetInspectable True

oShaderInParamDefOptions.SetShortName "Main Struct"

' Add input parameter to definition

set oInputParams = oShaderDef.InputParamDefs

oInputParams.AddParamDef "main", siShaderDataTypeStructure, oShaderInParamDefOptions

' Now print info to see what we have

for each oShaderInParamDef in oShaderDef.InputParamDefs.Definitions 

	app.LogMessage "Input parameter name: " & oShaderInParamDef.DisplayName

	app.LogMessage vbTab & "ClassName: " & app.ClassName(oShaderInParamDef)

	app.LogMessage vbTab & "DataType: " & oShaderInParamDef.DataType

	if oShaderInParamDef.DataType =  siShaderDataTypeStructure then

		set oSubContainer = oShaderInParamDef.SubParamDefs

		oShaderInParamDefOptions.SetShortName "SubColor 1"

		oSubContainer.AddParamDef "sub1", siShaderDataTypeColor4, oShaderInParamDefOptions

		oShaderInParamDefOptions.SetShortName "SubColor 2"

		oSubContainer.AddParamDef "sub2", siShaderDataTypeString, oShaderInParamDefOptions

		oShaderInParamDefOptions.SetShortName "SubColor 3"

		oSubContainer.AddParamDef "sub3", siShaderDataTypeGradient, oShaderInParamDefOptions

		app.LogMessage vbTab & "Number of sub parameter definitions: " & oShaderInParamDef.SubParamDefs.Definitions.Count

		for each oSubParamDef in oShaderInParamDef.SubParamDefs.Definitions

			app.LogMessage vbTab & "Sub parameter name: " & oSubParamDef.DisplayName

			app.LogMessage vbTab & vbTab & "ClassName: " & app.ClassName(oSubParamDef)

			app.LogMessage vbTab & vbTab & "DataType: " & oSubParamDef.DataType

		next

	end if

next

' Expected result:

' INFO : Shader definition name: MyParser.MyStructDemo.1.0

' INFO : Input parameter name: Main Struct

' INFO : 	ClassName: ShaderStructParamDef

' INFO : 	DataType: 64

' INFO : 	Number of sub parameter definitions: 3

' INFO : 	Sub parameter name: SubColor 1

' INFO : 		ClassName: ShaderStructParamDef

' INFO : 		DataType: 10

' INFO : 	Sub parameter name: SubColor 2

' INFO : 		ClassName: ShaderParamDef

' INFO : 		DataType: 11

' INFO : 	Sub parameter name: SubColor 3

' INFO : 		ClassName: ShaderStructParamDef

' INFO : 		DataType: 18

See Also

ShaderParamDefContainer.AddParamDef ShaderParamDefContainer.AddArrayParamDef ShaderParameter.Definition ShaderParamDefContainer ShaderArrayParamDef Shader Definition examples installed with Softimage Shader Parser examples installed with Softimage