ParticleTools: Operator

An Operator affects the ongoing behavior of a Particle Object — i.e., an Operator can modify various properties of a particle after it's been emitted. (Emitters and Forces are also Particle Objects, so Operators can affect those, too.)

There are two kinds of Operators — those that act on scalar numbers and those that act on vectors. Each kind has its own set of properties it can modify.

  • Number Operators can modify:
    • Max Age before object dies (Age Limit)
    • Current Age
    • Transverse Rotation (θ)
    • Transverse Rotational Velocity (ω)
    • Size, Mass, Area — affect interactions with Forces
    • Emitters Only: Emission Rate
    • Emitters Only: Maximum number of emitted particles (ever, not simultaneously)
    • and a few Force-specific properties
  • Vector Operators can modify:
    • Location (XYZ)
      • "Location" replaces the current Location vector with the Operator's vector
      • "Add Location" adds the Operator's vector to the current Location vector
    • Velocity (XYZ)
      • "Velocity" replaces the current Velocity vector with the Operator's vector
      • "Add Velocity" adds the Operator's vector to the current Velocity vector
    • Color (RGB)
    • and a few Force-specific properties (Gravity Vector, Vortex Vector, Wind Vector)

Self Operators

Most Objects accept Self Operators --- Operators attached to these input ports affect properties of the Object itself.

Objects start out with a single Self Operator port. In the QC Editor, go to the Object's Settings panel to add more Self Operator ports.

Child Operators

In addition to supporting Self Operators, Emitters also support Child Operators. The Child Operator affects each emitted Object once (e.g., you can use a Child Operator to give each emitted Object a random Location).

You can also set Self Operators on the Object connected to the Emitter's "Emitted Object" port. Unlike the "Child Operators" on the Emitter, Self Operators on the Emitted Object affect the Object throughout its lifetime — so, for example, you could hook up an "Add Location" Random Vector Operator, which would cause emitted Objects to do a random walk reminiscent of Brownian Motion. Open the "hose.qtz" sample composition, and try connecting the Add Random Object Location patch to the Object: Particle patch's Self Operator 1 input.

The Emitter's Self Operator (as with any other Object) affects properties of the Emitter itself (e.g., you can use an Emitter's Self Operator to change the position from which Objects are being emitted).