Data Channel Modifier Operator Classes

The Data_Channel Modifier uses operators to build its operation stack. These operators all derive from the IDataChannelEngineClass, and are of three types: input, process, and output (although some input operators can be used as process operators). This topic covers the available operator classes.

Operator Classes
Input Operators Process Operators Output Operators

Operator_ColorElements

Operator_ComponentSpace

Operator_Curvature

Operator_DeltaMush

Operator_Distort

Operator_EdgeInput

Operator_FaceInput

Operator_NodeInfluence

Operator_TensionDeform

Operator_TransformElements

Operator_Vector

Operator_Velocity

Operator_VertexInput

Engine_Local_Space

Operator_Clamp

Operator_ConvertToSubobjectType

Operator_Curve

Operator_Decay

Operator_GeoQuantize

Operator_Invert

Operator_Normalize

Operator_Point3_To_Float

Operator_Scale

Operator_Smooth

Operator_VertexOutput

Operator_FaceOutput

Operator_EdgeOutput

Input Operators

Input operators query data from the mesh and create a channel to flow down the stack.

Operator_ColorElements : IDataChannelEngineClass {4bbc203f,0}

Colors the elements of an object based on the stack information, a map, soft selection or vertex colors. Output can be randomized based on hue, luminance and saturation.

Properties:

  .inputOption : integer

The color data input, where:

  • 0 = Vertex Colors
  • 1 = Map
  • 2 = Soft Selection
  • 3 = From Stack

.mapChannel : integer

The map channel, when inputOption = 1.

.map : texturemap

The map, when inputOption = 1.

.vertColorChannel : integer

The Vertex color channel, when inputOption = 0.

.colorOption : integer

The color option, where

  • 0 = Face
  • 1 = Element

.useColors : Boolean

Indicates whether to apply colors to luminance.

.color1 : RGB color

The luminance color 0.

.color2 : RGB color

The luminance color 1.

.outputChannel : integer

The output VC channel.

.randomize : Boolean

Indicates whether to randomize the output.

.unused1 : float
.seed : integer
.HRand : Boolean

Indicates whether the randomizeHPercent value is used.

.SRand : Boolean

Indicates whether the randomizeSPercent value is used.

.LRand : Boolean

Indicates whether the randomizeLPercent value is used.

.randomizeHPercent : float

The Hue luminance value.

.randomizeSPercent : float

The Saturation luminance value.

.randomizeLPercent : float

The Lightness luminance value.

.useElementCenter : boolean
Indicates whether to use the element center when inputOption is 1 (Map).

Operator_ComponentSpace : IDataChannelEngineClass {e11aa33,0}

Copies the geometry’s X, Y, or Z position to the stack to be processed.

.component (Component_Space) : integer
  .min : float

The minimum value.

.max : float

The maximum value.

.normalize : Boolean

Indicates whether to normalize the values.

.space (XYZ_Space) : integer

The space dimension to use, where

  • 0 = X
  • 1 = Y
  • 2 = Z
.node : node

The node from which to take the component space.

Operator_Curvature : IDataChannelEngineClass {e12bb44,0}

Uses the local surface curvature of the mesh to define a float value.

.convex (Convex) : float

The Curvature convex value.

.flat (Flat) : float

The Curvature flat value.

.concave (Concave) : float

The Curvature concave value.

.scale (Scale) : float

The scale value applied to the convex, flat, and concave values.

.hardEdgesOnly (Hard_Only) : Boolean default: False

Indicates whether to compute hard edges only.

Operator_DeltaMush : IDataChannelEngineClass {c8b201a3,0}

Uses the mesh's default pose to smooth the mesh when it is deformed while retaining the original detail of the mesh.

.strength : float default: 1.0

The strength value.

.iterations : integer default: 10

The number of iterations.

.pinBorders : Boolean default: True

Indicates whether to pin the borders.

.mask : boolean default: False

Indicates whether to mask with vertex colors.

.maskMapChannel : integer default: 2

The map channel to use, if mask is True.

.outputMode : integer default: 0

The deform setting, where:

  • 0 = Relaxed Base Mesh
  • 1 = Relaxed
  • 2 = Relaxed Delta

Operator_Distort : IDataChannelEngineClass {11fa2bba,0}

Uses a map to distort the vertex value.

Uses a map to distort the vertex value.

.map (Distort) : texturemap

The map associated with the distort.

.amountBox (Amount) : float default: 1.0

The strength value applied to the distort.

.holdTex (Distort) : texturemap

Internal and renamed

.holdMat (Distort) : material

Internal and renamed

Operator_EdgeInput : IDataChannelEngineClass {23300ccd,0}

Adds edge data into the stack.

.input : integer

The Edge Input mode, where:

  • 0 = Selection
  • 1 = Crease Weights
  • 2 = Edge Angle

Operator_FaceInput : IDataChannelEngineClass {24421ae,0 }

Adds face data to the stack.

.input : integer

Selects the edge input, where:

  • 0 = Selection
  • 1 = Material ID
  • 2 = Smooth Group
  • 3 = Area
  • 4 = Normal
  • 5 = Planarity

Operator_Maxscript : IDataChannelEngineClass {9acb27da,0}

Uses MAXScript to manipulate a channel's values. Possible return values are float or point3.

.dataType : integer

The output data type, where:

  • 0 = Float
  • 1 = Point3

.elementType : integer

The output element type, where:

  • 0 = Vertices
  • 1 = Faces

.script : string

Gets or sets the MAXScript file associated with this operator.

Operator_NodeInfluence : IDataChannelEngineClass {cba6531d,0}

Returns a float value based on the distance between a selected node and a mesh vertex or a mesh element.

.node : node

The node associated with the operator.

.minRange : float default: 1.0

The minimum Radius setting.

.minValue : float default: 1.0

The minimum value setting.

.maxRange : float default: 80.0

The maximum Radius setting.

.maxValue : float default: 0.0

The maximum range value.

  .mode : integer

The Influence mode, where:

  • 0 = By Vertex
  • 1 = By Element
  • 2 = By Object

.hold (Hold_Frames) : integer

The hold time value.

.falloffCurve (Falloff_Curve) : maxObject

The curve controlling the weight falloff over time. This object is of type CurveControl.

.radiusCurve (Radius_Curve) : maxObject	

The curve controlling radius over time. This object is of type CurveControl.

.strengthCurve (Strength_Curve) : maxObject

The curve controlling strength over time. This object is of type CurveControl.

Operator_TensionDeform : IDataChannelEngineClass {4879315b,0}

Uses the mesh’s deformation to compute squash and stretch to define a value. These values can be used to drive morph targets within the operator.

.mode : integer

The tension deform mode, where:

  • 0 = Edge Length Based
  • 1 = Edge Angle Based

.enableDisplay : boolean

Not used.

.deformMesh : boolean

Indicates whether to deform the mesh.

.stretchColor (Stretch_Color) : fRGBA color

Not used.

Stretch Adjustment Settings:

.stretch : float

The stretch value.

.stretchRange (Stretch_Range) : float

The stretch range

.stretchGrowShrink (Stretch_Grow_Shrink) : float

The stretch grow/shrink value.

Stretch Deform Settings:

.stretchPush (Stretch_Push) : float

The stretch deform push value.

.stretchRelax (Stretch_Relax) : integer

The stretch relax value.

.stretchUseMorph : boolean

Indicates whether the stretch deform uses a morph target.

.stretchTarget : node

The node representing the stretch target.

.stretchMask : boolean

Indicates whether to mask with vertex colors.

.stretchMapChannel : integer

The map channel to use for masking when stretchMask is True.

Squash Adjustment Settings:

.squashColor (Squash_Color) : fRGBA color

Not used.

.squash : float

The squash amount.

.squashRange (Squash_Range) : float

The squash range amount.

.squashGrowShrink (Squash_Grow_Shrink) : float

The squash grow/shrink amount.

Squash Deform Settings:

.squashPush (Squash_Push) : float

The squash deform push amount.

.squashRelax (Squash_Relax) : integer

The squash relax value.

.squashUseMorph : boolean

Indicates whether to use a morph target, indicated by the squashTarget.

.squashTarget : node

The squash target, used when squashUseMorph is True.

.squashMask : boolean

Indicates whether to mask with vertex colors.

.squashMapChannel : integer

The map channel to use if squashMask is true.

Channel Output Settings:

.outputSquash : boolean

Indicates whether to output the squash value.

.outputStretch : boolean

Indicates whether to output the stretch value.

Operator_TransformElements : IDataChannelEngineClass {271928c8,0}

Uses channel information from the data channel’s operator stack, soft selection or vertex color to transform the elements’ position, rotation or scale.

.inputChannel : integer default 0

Gets or sets the input channel, where:

  • 0 = From Stack
  • 1 = Soft Selection
  • 2 = Vertex Color Luminance
  • 3 = Vertex Color as XYZ
  • 4 = None

.transformType : integer default: 3

The transform type, where:

  • 0 = Position
  • 2 = Rotation
  • 3 = Scale %
  • 4 = Scale % Uniform

Offsets Settings

.XEnable : boolean
.YEnable : boolean
.ZEnable : boolean

Indicates whether the x, y, or z offsets are enabled.

.xoffset1 (XOffset) : float
.yoffset1 (YOffset) : float
.zoffset1 (ZOffset) : float

The minimum x, y or z offset.

.xoffset2 (XOffset) : float
.yoffset2 (YOffset) : float
.zoffset2 (ZOffset) : float

The maximum x, y, or z offset.

Point at Node Settings

.pointAtNode : boolean

Indicates whether to point at a node.

.pointNode : node 		  

The node to point to, if pointAtNode is true.

.axisMode : integer 		  

The axis mode, where:

  • 0=X
  • 1=Y
  • 2=Z

.pointElements : boolean 		  

Indicates whether to point at individual elements.

Randomize Settings

.randomize : boolean

Indicates whether to randomize the data.

.randomize1 (RandomizePercent) : float 
 .randomize2 (RandomizePercent) : float

The minimum and maximum randomize settings.

.seed : integer		  

The randomization seed.

.phase : float 		  

Controls the speed of the animation of the randomization function.

Operator_Vector : IDataChannelEngineClass {44e12ccd,0}

Allows you to combine an external vector with the stack data.

.space : integer

.dir : integer

.node : node

.x : float

.y : float

.z : float

Operator_Velocity : IDataChannelEngineClass {e21bb55,0}

Uses the mesh's velocity to return a Point3, where the (x,y,z) equates to the motion of the three axes.

.timeOffset (Time_Offset) : integer

.worldSpace (World_Space) : boolean

.noTranslation (No_Translation) : boolean

Operator_VertexInput : IDataChannelEngineClass {da12aa01,0}

Uses channel information from the mesh as an input. Channels include, existing map channels, average normal, vertex position and vertex selection values.

.input (Channel) : integer 		  

The input type, where:

  • 0=Position
  • 1=Average Normals
  • 2=Map Channel 1
  • 3=Map Channel 2
  • 4=Vertex Selection
  • 5+ = any additional populated data channels

.internal (Channel_Num) : integer 		  

Internal use only, do no use.

.XYZ (Sub_Channel_Num) : integer 		  

Indicates the axes to include in the data, where:

  • 0=XYZ
  • 1=X
  • 2=Y
  • 3=Z

.deprecated (Name) : string 		  

Deprecated, do not use.

Engine_Local_Space : IDataChannelEngineClass {e11aa22,0}

Copies the geometry's position on to the stack to be processed.

.min : float 
.max : float  

The minimum and maximum values to use.

.normalize : boolean 		  

Indicates whether to normalize the data.

.space (XYZ_Space) : integer 		  

The reference coordinate system to use, where:

  • 0=Local
  • 1=World
  • 2=Node

 .node : node 		  

The node to use for the coordinate system, when space = 2.

Process Operators

Process operators modify data by applying operations to the data flowing through the stack.

Operator_Clamp: IDataChannelEngineClass {20e12bba,0}

Limits the value of channel flowing through the stack.

.clampMin (Min) : float 
.clampMax (Max) : float 
		  

Minimum and maximum clamp values.

Operator_ConvertToSubObjectType : IDataChannelEngineClass {ac311ccd,0}

Copies the data from one sub object type to another.

.subObject : integer 		  

The sub object type to convert to, which corresponds to the selected item position in the Convert To dropdown in the UI, and which depends on the incoming data type. For example, when the incoming data is from the vertex channel, 0 = Edge and 1 = Face.

.vertex : integer 		  

When the Convert To target is vertex, this corresponds to the Vertex Channel Type selection, where:

  • 0=Position
  • 1=Normal
  • 2=Map

.mapChan : integer 		  

When vertex=2 (Map), this indicates the map channel.

Operator_Curve : IDataChannelEngineClass {73e12bba,0}

Remaps the value of data in the channel based on a curve.

.curve : maxObject 		  

The curve object.

.normalize (Normalize) : boolean Engine_Decay (const MAXClass): decay 		  

Indicates whether the curve is normalized.

Operator_Decay : IDataChannelEngineClass {10fa2cc9,0}

Causes the changes in a channel to persist or decay over time.

Properties:

.decay : float		  

The decay per frame.

.samples : integer		  

The number of record samples.

.smooth : boolean		  

Indicates whether to apply smoothing.

.iterations : integer		  

The number of smoothing iterations, if smooth=true.

.deprecated (Max_Crossing) : integer		  

Deprecated, do not use.

.curve : maxObject		  

The custom decay curve.

.useCurve (Use_Curve) : boolean		  

Indicates whether to apply a custom decay curve.

.resetType : integer		  

.resetFrame (Reset_Frame) : integer		  

Interfaces:

Decay

Provides access to the Reset() and Record() methods.

Operator_GeoQuantize : IDataChannelEngineClass {1d9111c5,0}

Modifies the data based on geometry so that all vertices in an element share the same value.

.mode : integer

Operator_Invert: IDataChannelEngineClass {43aebba1,0}

Inverts the values in the data channel.

.invert (Invert) : boolean

Operator_Normalize : IDataChannelEngineClass {62ebba1,0}

Normalizes the values in a channel to a range.

.normalizeMin (Min) : float
.normalizeMax (Max) : float
		  

The minimum and maximum values to normalize to.

.rangeOverride (Use_Range) : boolean
		  

Indicates whether to limit normalization to values in a range.

.rangeMin (Min_Range) : float
.rangeMax (Max_Range) : float
		  

The range minimum and maximum to limit normalization to, if rangeOverride is true.

Operator_Point3_To_Float : IDataChannelEngineClass {43cceb55,0}

Converts a Point3 channel to a float channel.

.floatType (Point3_To_Float) : integer
		  

The type of float to convert to, where:

  • 0=Length
  • 1=X
  • 2=Y
  • 3=Z

Operator_Scale : IDataChannelEngineClass {10e12bba,0}

Multiplies a channel by a value.

.scale : float

The factor by which to scale the channel data.

Operator_Smooth : IDataChannelEngineClass {93e12bba,0}

Smooths the values of a channel based on their neighbor's value.

.iteration : integer

The number of smoothing iterations.

.amount : float

The smoothing amount to apply.

.deprecated (Geom) : boolean

Deprecated parameter, do not use.

Outputs

Output operators output the stack data back to the mesh.

Operator_VertexOutput : IDataChannelEngineClass {abcdaa33,0}

Outputs the stack data to a specific geometry channel in the mesh.

.output (Channel) : integer

The output data type, where:

  • 0=Position
  • 1=Vertex Color
  • 2=Map Channel
  • 3=Normals
  • 4=Vertex Selection
  • 5=Vertex Crease
  • 6=VData

.channelNum (Channel_Num) : integer

When the output type is Map Channel or VData, this is the Channel Number.

.XYZ (Sub_Map_Channel) : integer

The X, Y, or Z setting, when the output type is Position, Vertex Color, Map Channel, or Normals, where:

  • 0=X
  • 1=Y
  • 2=Z

.deprecated (Channel_Name) : string

Deprecated parameter, do not use.

.replace (Replace_Type) : integer

The replacement method, where:

  • 0=Replace
  • 1=Add
  • 2=Subtract
  • 3=Multiply

Operator_FaceOutput : IDataChannelEngineClass {323fa2e,0}

Outputs the stack face data to the mesh.

.output : integer

The data type to output where:

  • 0=Selection
  • 1=Material ID
  • 2=Smoothing Group

.type : integer

The type of output operation, where:

  • 0=Replace
  • 1=Add
  • 2=Subtract
  • 3=Multiply

Operator_EdgeOutput : IDataChannelEngineClass {111aa3d,0}

Outputs the stack edge data to the mesh.

.output : integer

The data type to output where:

  • 0=Selection
  • 1=Crease Weights

.type : integer
The type of output operation, where:
  • 0=Replace
  • 1=Add
  • 2=Subtract
  • 3=Multiply