Why there is no way to save edge selection in a group?

   4964   4   2
User Avatar
Member
176 posts
Joined: May 2006
Offline
I'm puzzled why I can't save edge selection in a group, especially if i want to do it in a procedural way that group SOP provides?
User Avatar
Member
4261 posts
Joined: July 2005
Offline
You can only make groups of Points and Primitives. Edges and Vertices aren't supported.

Internally only Points and Primitives are stored in the Geo Detail, groups are also stored in the detail as a bit array. You can see this if you save out a small piece of geo with groups as a .geo file and open it up in a text editor.

That said, you *can* do some hackery using ordered groups.

Attachments:
edge.hip (161.3 KB)

if(coffees<2,round(float),float)
User Avatar
Member
176 posts
Joined: May 2006
Offline
Nice trick but it's implementation is very limited. Try to create closed the edge selection form in your example… something like… 0-2 5 4 7 6 3 0
You see… 0 can't be included twice here.

Is this situation with Points and Primitives have only historical reason or any other motivation?
I think it would be great if edges (and possibly verticies) can be also grouped.. I understand that because it would be required to make changes in houdini's kernel to do so and therefore it will always stay in my dreams forever
User Avatar
Member
4261 posts
Joined: July 2005
Offline
Indeed, it would be great if we could group edges and vertices, but I doubt we will get that ability any time soon. In the meantime we have to rely on various hacks and tricks to get the job done.

Nice trick but it's implementation is very limited. Try to create closed the edge selection form in your example… something like… 0-2 5 4 7 6 3 0
You see… 0 can't be included twice here.

Its true that example I posted is limited, its main purpose was to inspire thinking outside the box. You could always make some custom expression functions to do what you want. For example,


Same expression as before, but as a custom expression
string openEdgeGroup(string grpName) {

string ret = “p”;
string ptList = pointlist(opinputpath(“.”,0),grpName);
ret = ret + strreplace(ptList,“ ”,“-”);

return ret;

}


Same as the previous one but its for closed edges.
string closedEdgeGroup(string grpName) {

string ret = “p”;
string ptList = pointlist(opinputpath(“.”,0),grpName);
ret = ret + strreplace(ptList,“ ”,“-”);
ret = ret + “-” + arg(ptList,0);

return ret;

}

if(coffees<2,round(float),float)
User Avatar
Member
2199 posts
Joined: July 2005
Offline
Maybe Sesi should concidered adding these types of expressions as standard, since it is unlikely that they will support edges properly any time soon. This would be a handy stop gap…

very cool hack by the way. 8)
The trick is finding just the right hammer for every screw
  • Quick Links