In a tyFlow sim, positions and velocities are stored separately until the end of the time step, after which point they are integrated. So while the operators are evaluating, a particle might have properties like this:
Then at the end of the time step, the velocity is integrated into the position in order to move the particle forward:
However, prior to the integration happening, any operators that are modifying the particle will see its position as [0,0,0], not [1,0,0], even though [1,0,0] in this case is its final position at the end of the time step.
Sometimes you may want an operator to modify a particle using its post-integration position. So in that case you would use an Integrate operator to integrate its velocity immediately, rather than at the end of the time step.
However, if you integrate immediately and don't flag its velocity as having been integrated already, it will be integrated by the Integrate operator *and* at the end of the time step. So that's why the Integrate operator gives the option to flag the velocity, or clear it...so that integrations won't happen multiple times in the time step.
Also, sometimes you may not want to integrate the velocity immediately, and *also* do not want it integrated at the end of the time step either. That' why the "do nothing" option exists, alongside the option to flag the velocity. That basically prevents a particle from moving that frame, without clearing its velocity.
This is definitely a more "advanced" operator that is typically only useful in more complicated setups.
Code:
pos = [0,0,0]
vel = [1,0,0]
Then at the end of the time step, the velocity is integrated into the position in order to move the particle forward:
Code:
pos += vel
However, prior to the integration happening, any operators that are modifying the particle will see its position as [0,0,0], not [1,0,0], even though [1,0,0] in this case is its final position at the end of the time step.
Sometimes you may want an operator to modify a particle using its post-integration position. So in that case you would use an Integrate operator to integrate its velocity immediately, rather than at the end of the time step.
However, if you integrate immediately and don't flag its velocity as having been integrated already, it will be integrated by the Integrate operator *and* at the end of the time step. So that's why the Integrate operator gives the option to flag the velocity, or clear it...so that integrations won't happen multiple times in the time step.
Also, sometimes you may not want to integrate the velocity immediately, and *also* do not want it integrated at the end of the time step either. That' why the "do nothing" option exists, alongside the option to flag the velocity. That basically prevents a particle from moving that frame, without clearing its velocity.
This is definitely a more "advanced" operator that is typically only useful in more complicated setups.