Add subscript with the <sub></sub> tags.
ni
kni
Add superscript with the <sup></sup> tags.
x2
| // Fractured pieces are generated with @name such as 'piece0', 'piece1', etc. | |
| // The following prim wrangle renames each piece with a padded number. | |
| // String var to hold padded piece number. | |
| string new_name = sprintf("piece_%04d", opdigits(@name)); | |
| // Update piece name. | |
| s@name = new_name; |
| // Static Values | |
| variable = {0,1,2}; | |
| // Dynamic Values | |
| variable = set(x,y,z); |
| // Replace <value> with value intended to be rounded. | |
| round(<value> * 1000) / 1000 |
Add subscript with the <sub></sub> tags.
ni
kni
Add superscript with the <sup></sup> tags.
x2
| # Extract consecutive trailing numerical digits from a node's name. | |
| import hou | |
| return pwd().digitsInName() | |
| # For example, a node named 'NEW_GEO_101' will return the int 101 | |
| # into the field. Returns 0 if name does not include any trailing | |
| # numerical digits. |
| //Convert integer to string | |
| s@string_attribute = itoa(i@int_attribute); | |
| //Convert string to integer | |
| i@int_attribute = atoi(s@string_attribute); | |
| //Convert string to float | |
| f@float_attribute = atof(s@string_attribute); |
| # Access panes in the current Houdini desktop using the | |
| # the hou.ui class with/out the hou.Desktop class. | |
| panes = hou.ui.currentPaneTabs() | |
| panes = hou.ui.curDesktop().currentPaneTabs() | |
| (<hou.NetworkEditor panetab1>, <hou.PythonShell panetab2>) | |
| # View current setting for each available preference for | |
| # the selected Network Editor pane. | |
| pane = panes[0] | |
| pane.getPrefs() |
| // Base formatting: | |
| // Curly brackets for encapsulating multiple statements. | |
| if([email protected] > 0){ | |
| v@Cd = {1, 0, 0}; | |
| } | |
| else{ | |
| v@Cd = {0, 1, 0}; | |
| } | |
| // Inline formatting: |
| rotateNode = hou.node('obj/box1/transform1') | |
| speed = 20 | |
| # set() used to specify param value with corresponding data type. | |
| rotateNode.parm('rz').set(10) | |
| # However, it cannot be used to set the value with a non-compatible | |
| # data type, such as a string channel reference. The use of | |
| # setExpression() allows for such instances. | |
| rotateNode.parm('ry').setExpression('ch("../box1/divrate2") * {}'.format(speed)) | |
| # Reference: https://www.sidefx.com/docs/houdini/hom/hou/Parm.html |
| // Set Wrangle to 'Run Over Points'. | |
| // Collect closest pts for each pt, based on radius and max pts. | |
| // Includes user-managed channels for radius and max pts. | |
| // Note that this list will include the current point being run | |
| // through this point wrangle. | |
| int pts[] = pcfind(0,"P",@P,chf('search_radius'),chi('max_points')); | |
| // Used to visualize list in geo spreadsheet; for debugging. | |
| i[]@pts = pts; |