Hey Tyson, thanks.
Not sure what you mean by refined, basically I thought each local axis has a map, that from greyscale can rotate based to a min and max point.
ie set min to 0 and max to 180, and where the map is black will be 0 and where it is white would be 180. Maybe with an option for positive and negative rotation.
I gathered script would be the way, however, I have very little experience with it.
I posted yesterday, here.
http://forum.tyflow.com/thread-709.html.
I have made some progress, but more from brute force bashing it than understanding the workings.
I think you may be right on needing script for a second part I wanted to achieve. (First using normal align, and then scripting texture control on top of that.
I did it a while ago in a pflow data operator, creating a sequin wall. The sequins first used normal aligns to align with the shape of the wall, then I used a data op to make them rotate according to a noise map (simulating a breeze effect moving across them)
I did this based on the scripted scale setup, but don't understand the workings.
I tried getting the rotation first and adding it to the new Quat in the the SetRot, but that didn't work, because I don't actually understand quaternions.
I assume I should be converting to Euler, doing the adding of angles, then convert that back to quaternions, but that all happened under the hood in pflow data, so no idea where to even begin.
//Quat inrot = tf.GetRot(sInx);
//Quat rot = new Quat(inrot.w, inrot.x + color * 3 ,inrot.y ,inrot.z);
Quat rot = new Quat(1, .01f + color * 10 ,0 ,0);
tf.SetRot(sInx, rot);
Last 2 lines sort of achieved what I wanted, but not a true 180 rotation and surface normal alignment.