Softimage SDK Programmer's Guide > Plug-in Development > Working with Operators >

# What is an Operator?

Operators are calculators or functions that manipulate (deform) or generate data. They are connected to objects or properties via any number of input and output ports and may also use one or more parameters. Operators read data from their input port(s), taking any parameter values into account, perform the specified calculation and then write the result onto their output port(s) using the operator's Update() method.

Operator ports are organized into groups, for example, the Loft operator takes a main group of at least two input ports connected to NURBS curves and a secondary group consisting of only one output port (the new NURBS mesh generated from the input curves). Using one port group for the curves allows multiple ports of the same type to be passed in as input to the operator. These groupings are generally expressed as connection sets (see About Connection Sets), which essentially describe the operator's requirements when connecting an operator to data nodes in the scene. These connection sets can be found in the Operator Presets reference.

Types of Operators

Operators are divided into several categories, based on the type of information they change:

- Geometry Operators, which fall into three sub-categories: Generator Operators, Topology Operators and Deformer Operators

- Simulation Operators (for RigidBody, Particles, etc.)—see Simulation Operator Presets and ICE Node Particles for more information about working with Simulation in the Softimage SDK.

  To learn how to create your own FxOperator, see Custom Fx Operators.

  Note

  Constraints are similar to operators from a user perspective in that they connect manage data between scene elements where one element is affected by the data of another. However, the way they manage this read-write relationship is internally very different from how operators manage it and as such they support their own interface (see the reference documentation for the Constraint object).

  For more information on working with Constraints in the Softimage SDK, see Constraints.

You can also build your own custom operators to perform tasks similar to the types listed above or special tasks, such as controlling a particle simulation or populating a UserDataBlob or a Custom Property, etc. For more information, see Custom Operators.

Generator Operators

Generators create an object. These include most of the operators available from the Get Primitive menu, as well as those under Create. Examples include Geometry (primitive), CurveCreation, Loft, NURBS to Mesh, and so on.

For example, the built-in Loft operator takes two or more NURBS curves as input and creates a new NURBS mesh between them. Some of the options that are available on the Loft operator include closing the mesh in U and/or V and changing the subdivisions in U and V. See Generator Operator Presets for a full list of Generator operators and their preset reference.

Topology Operators

Topology operators change the geometry, for example, by adding or removing components. These include most of the operators available under Modify. Examples include Curve Shift, Insert Surface Knot, Subdivide Polygon, and so on.

For example, the built-in SubividePolyOp operator takes one or more polygons as input, split the polygon according to a pattern specified by the user (triangles, diamond, X, or plus) and iterated (multiplied) according to the number specified by the user. See Topology Operator Presets for a full list of Topology operators and their preset reference.

Deformer Operators

Deformations modify the shape of an object by changing the positions of its points. These include the operators available from the Deform menu, as well as the Move Component and Envelope operators.

For example, the built-in Twist operator takes an object as input, calculates new positions for the object's geometry and then writes this new data back to the object. This operator provides a number of options for the user to customize the twist deformation (for example, adjusting the angle of deformation). See Deform Operator Presets for a full list of Deformer operators and their preset reference.