Sunday, April 15, 2018

Houville :: Get selections from Scene Views

This is one of those obvious needs that ends up being a frustrating "how do you even..?"

In Houdini 16.5 and up it's pretty simple:
import toolutils
sv = toolutils.sceneView()
str(hou.SceneViewer.currentGeometrySelection(sv))


However in 16.0 it's a bit more fiddly as currentGeometrySelection doesnt exist. hicon:/SVGIcons.index?book.svg
import toolutils
selection = toolutils.sceneViewer().selectGeometry() ## this annoyingly unselects your selection
print selection
## lets also get this in the clipboard so we can past it in a node.
Here's a good reference: https://www.sidefx.com/forum/topic/30353/
As is this in the docs: http://www.sidefx.com/docs/houdini/hom/tool_script.html

Saturday, November 18, 2017

Houville :: iterating in VEX

Urgh, I keep forgetting this. So to iterate in VEX:
//fix negative colours per channel
for ( int i = 0; i < int (3); i++)
{
    if (@Cd[i] < 0) { @Cd[i] *= -1;}
}

Thursday, October 26, 2017

Houville :: customising node attributes

Create a text file called "OPcustomize" in your houdini16.0 (or corresponding) folder. Here you can describe the new defaults you want to use with your nodes. For colours
opdefaultcolor Sop null 'RGB 0.0 0.0 0.0';
opdefaultcolor Sop dopnet 'RGB 0.5 0.0 0.0';
opdefaultcolor Sop dopimport 'RGB 0.5 0.0 0.0';
opdefaultcolor Sop object_merge 'RGB 0.475 0.812 0.204';
Thanks to Amber for this one.

Going beyond this:

We can grab the type from a python shell with drag-drop then append ".type()". And we can also work with default and user-defined shapes, and grab the colour info.
# good if you manually selected a new shape.
n.userData("nodeshape");

# good for finding the session default shape for the node
n.type().defaultShape();

# for getting the colour that has been user assigned
n.color()


Example:
opdefaultcolor Driver null 'RGB 0.478 0.478 0.478';
opdefaultshape Driver null 'circle';
opdefaultcolor Driver merge 'RGB 0.65 0.65 0.65';
opdefaultshape Driver merge 'circle';
opdefaultcolor Driver geometry 'RGB 0.145 0.667 0.557';
opdefaultshape Driver geometry 'tabbed_left';

opdefaultcolor Driver gridmarkets::render_submit::1.5.2 'RGB 0.45 0.12 0.6';
opdefaultcolor Driver gridmarkets::nuke::1.19 'RGB 0.976 0.78 0.263';

opdefaultcolor Driver gridmarkets::transcode::1.8 'RGB 0.25 0.5 1';
opdefaultshape Driver gridmarkets::transcode::1.8 'wave';
opdefaultcolor Driver ifd 'RGB 1 .976 0.666';

opdefaultcolor Sop null 'RGB 0.0 0.0 0.0';
opdefaultcolor Sop dopnet 'RGB 1 0 0';
opdefaultcolor Sop gridmarkets::cloud_cache::1 'RGB 0.145 0.667 0.557';
opdefaultshape Sop gridmarkets::cloud_cache::1 'tabbed_left';
opdefaultcolor Sop file 'RGB 0.616 0.871 0.769';