Umang Raj
Umang_Raj
About Me
EXPERTISE
Hobbyist
Houdini Skills
Availability
Not Specified
My Tutorials
Recent Forum Posts
Access primitive in HDK May 16, 2026, noon
HDK uses cpp's object oriented programming alot. All of the upper level primitive classes do contain a ga_primitive interface.

For the primoff you get from the first macro, you can easily use the getPrimitive function on the detail, and then use the function it provides or cast it to other upper level classes you know it has using implicit casting or explicit static_cast, or if you are not sure, use dynamic_cast which returns nullptr if it doesn't have that class object like this-
or you can just use getPrimitivesOfType function.
and for your second question, you can use getMapOffset function on the primitive you get from that macro, to get it's offset.
For the primoff you get from the first macro, you can easily use the getPrimitive function on the detail, and then use the function it provides or cast it to other upper level classes you know it has using implicit casting or explicit static_cast, or if you are not sure, use dynamic_cast which returns nullptr if it doesn't have that class object like this-
GA_Primitive *primPtr = gdp->getPrimitive(primOffset); // static cast, if prim isn't polygon then it will give undefined behaviour // GEO_PrimPoly *geoPrimPtr = static_cast<GEO_PrimPoly*>(primPtr); // dynamic cast for verification GEO_PrimPoly *geoPrimPtr = static_cast<GEO_PrimPoly*>(primPtr); if (!geoPrimPtr) // return error, and/or do your quitting logic
and for your second question, you can use getMapOffset function on the primitive you get from that macro, to get it's offset.
Is this rig logic possible? April 29, 2026, 3:51 a.m.
tried to make this, and if you don't unplug the promoted transforms from the transform objects, you can use the values in other nodes too! so you don't have to do this later.
I hope this is what you want to achieve
I hope this is what you want to achieve
Is this rig logic possible? April 27, 2026, 4:16 a.m.
if you want it as seperate control, then, im not sure if it is possible, it would most likely create cycles in your rig.