Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Community Reputation

0 Neutral

About George

  • Rank
  1. Siggraph 2006

    Thanks for the pictures! Looks like you guys had an awesome time. I sure missed you folks. Maybe next year, huh? George.
  2. That's a good one Jason, I logged it, thanks. Simon is right, the "Shortest Path" algorithm in PolySplit won't really give you the shortest path on an arbitrary mesh. It is a little more complicated than just ray casting (see attached contrived file, for an example of how it can traverse bridges -- only the two end edges were selected). But it is greedy and will try to only move in the direction that gets it closer to its target. I also can't climb walls that are at 90 degrees. Quad strip on the other hand is nice because it doesn't care at all about your geometry, it cuts based on the topology. Take care, George. polysplit_bridge.hip.gz
  3. Evalling One Level At A Time

    Not to mention how double quotes can seemingly be randomly stripped out, or spaces truncated. Dealing with strings in hscript in general is a pain. In fact I think there's already a bug to that effect: "Strings in hscript are a pain" George.
  4. Evalling One Level At A Time

    Yeah, I'm usually guilty of wanting to unify everything The things to consider is that a node is not a parm... so you can't generally interchange them. Your example of opfullpathfrom though is a case where they can be interchanged and I tihnk it should probably be fixed for that. I'll submit a Bug Take care, George.
  5. Evalling One Level At A Time

    Hmmm... as a workaround from opfullpathfrom not supporting parms could you do this in your script: set old_cwd = `oppwd()` opcf $rop # get the value you want with `chsraw($newfield)` opcf $old_cwd Still not elegant though... I hear ya. George.
  6. Evalling One Level At A Time

    Hi Jason, I don't think there's currently a generic way to do that elegantly. But it should be fairly easy if you're sure that the expression in mantra1/picture is always of the form `chs("...")`, to use the chsraw to read in the destination reference and then another chsraw to read in the value there... something like this horribly untested chicken scratch: `chsraw(arg(strreplace(chsraw("ropnet1/mantra1/picture"), '"', ' '), 1))` ... but maybe you were looking for a good answer? George.
  7. Visibilty Sop

    Hi Simon, I think this is actually much easier than that. Houdini picks up a special group named "__3d_hidden_primitives__" and doesn't display prims in that group. Look in GU_Types.h for GU_HIDDEN_3D_PRIMS_GROUP define and use that to add primitives to it. I think that's all you need to do to hide primitives. (The 2D visibility one is to hide primitives from the UV viewport). Hope that helps, George.
  8. Color Picker Ui Widget

    Hi Simon, Does something like this work? PRM_Template(PRM_RGB_J, 3, name, default) George.
  9. Looping Through Edges

    Hi Simon, I don't think there are any methods in GEO_PointRefArray that will allow you to remove points, you'd have to setup your own data structure for that (maybe as simple as a UT_BitArray to mark visited points)? The other method I forgot to mention is GEO_Primitive::edgeApply() which maybe helpful also. You can loop through all the primitives and call edgeApply() and keep track of the points -- it might simplify some code. Hope that helps, George.
  10. Looping Through Edges

    Hi Simon, For looping through edges you could try the GQ library. It can build a quad-edge representation of your gdp. It has limitations though. The other thing you could try is a GEO_PointRefArray. The PointRefArray gives you, for each point, the list of primitives using that point. So instead of looping through primitives, you could loop through points and therefore visit each edge only once. Also, have a look at GEO_Closure. There are helper methods in there that make use of a PointRefArray to do edge-related things. Both GQ and PointRef need to scan your entire gdp to get started, so it could be slow to build those structures -- though it is supposed to be a one time cost. Hope that helps. George.
  11. Thekenny

    Congrats Ken! George.
  12. Hi Daniel, The normal mode of operations for SOPs is that someone (the viewer, the renderer ROP, etc...) requests a geometry at a specific time. This time is passed in to the cook method in the context data. So I think you have to manually keep track of the last time you cooked and then call your simulation incrementally until you get to the requested cook time. If you have a good way of caching data, all the better. Hope that helps, George.
  13. Baby Horsfield

    Congratulations Marc!!
  14. Links!! Links!!

    Or maybe on a social bookmarking website like http://del.icio.us/? George.
  15. Rendering Curves With Prman

    Ah! Thanks for reminding me Alex. I made an HDA for this a while back intending to post it to the exchange whenever I got a chance to clean it up. Well I never got around to cleaning it up But it's up there now: http://www.sidefx.com/exchange/download.ph...id=272&type=OTL Take care, George.