1.   Particle Size by
Inter-Particle Distance
2A.  Speed in Direction
Part 1
2B.  Speed in Direction
Part 2
3.  Particle Displacement

Tutorial 2B. Speed in Direction. Part 2
(Beginning Level)

In part one of this tutorial we created a simple Data Operator that translated particle orientation into Speed direction. We will now add to that Operator so that any existing Speed Operator above will get averaged into our Speed in Direction. This part will cover using custom data and dealing with execution priority issues.

1. Since this localizes the motion effect to the birth location, we can add a few more suboperators to give us a bit more control and flexibility.
2. Open the Data Flow editor again and add another Input Standard subOp. Set it to get Speed data in data type Vector.
3. Now create an Output New subOp. This subOp will allow us to create a data holder that can be accessed either in the same Data Operator, or another one elsewhere in Particle Flow. Since we are going to use this in the same Data Op, we can leave the Data Access Scope to Local. If we wanted to use it in another Data Op, we would need Global. To make it easier to identify later on, rename this subOp to Incoming Speed by right-clicking on it and selecting Rename.

4. Now we need to address the Priority and Execution Order parameters. Since our Speed in Direction Data Op supercedes our Speed Op, we need to make sure we calculate the incoming Speed data before we send new Speed data out. This is where the Priority Order comes into play. By default, it is set to 2 because our Output Standard subOp came in at 1. We need to reverse these, making the Output New subOp priority 1 and the Output Standard subOp priority 2. This can be done simply by changing the Output New to Priority Order 1 and the Output Standard will automatically update to be 2.

5. Wire those together and we will deal with the next issue. Input subOps are calculated continuously by default. We don't need this as our Speed Op doesn't change throughout time. To save a bit of unnecessary CPU time, we will add another Input Standard subOp and set it to New In Event. Now it will only calculate the incoming Speed data as particles enter this event.

6. Now we need to average in the incoming Speed data with the Rotation Speed data. To do this, add another Function subOp. Set the Function to Average.
7. Also, create an Input Custom subOp. Set the Data Channel to our Incoming Speed custom data and wire it up as shown.

8. Now, the project should be complete.