[Sidefx-houdini-list] Point promotte per class ?
julianjohnson1962 at gmail.com
Thu Dec 29 07:29:24 EST 2016
On 27/12/2016 22:41, Olivier Jeannel wrote
> On a side note, if someone have a For Each Loop method either in VEX or
> VOP, to collect such datas (Get attribute from index 0 of each Primitive
> (@name Primitive) and SetAttribute it to every point of each Primitive.
> That would be usefull.
Here's a piece of VEX to run in an Attribute Wrangle in Detail mode:
//Get number of unique piece names e.g. piece10
int n = nuniqueval(0,"primitive","name");
addprimattrib(0, "prim_mod", 0.0);
//iterate over each piece name
for(int i = 0; i<n; i++)
//pull in each piece name
int s = uniqueval(0,"primitive","name", i);
//find number of polygons with that name
int j = findattribvalcount(0, "primitive", "name", s);
int index = findattribval(0, "primitive", "name", s, 0);
int prpts = primpoints(0, index);
int prpt = prpts;
float piece_mod = point(0,"mod",prpt);
//get each polygon with that name and iterate through them
for (int k = 0; k<j; k++)
int found = findattribval(0, "primitive", "name", s, k);
setprimattrib(0, "prim_mod", found, piece_mod);
There's also a .hipnc file here which shows it working:
Not sure if this does what you want but it was fun writing it. If it
does do it, I'd be interested to see if it is any quicker.
More information about the Sidefx-houdini-list