Skip to content

Instantly share code, notes, and snippets.

@takavfx
Last active June 28, 2016 08:30
Show Gist options
  • Save takavfx/d6cad69b631818f73d45 to your computer and use it in GitHub Desktop.
Save takavfx/d6cad69b631818f73d45 to your computer and use it in GitHub Desktop.
###------------------------------------------------------------
#
# Tool Name: Cache Dependency
#
# Copyright: Takanori Kishikawa
# Created: 2015.09.06
# Update: 2015.09.16
# Lisence: BSD 3-Clause
# http://opensource.org/licenses/BSD-3-Clause
#
###------------------------------------------------------------
def main():
if len(seled_node_list) == 0:
hou.ui.setStatusMessage(
"Any node is not selected.",
severity = hou.severityType.Error
)
else:
createCacheDependency()
def createCacheDependency():
count = 0
created_geo_node_list = []
node_position = hou.Vector2(0, 0)
for seled_node in seled_node_list:
if seled_node.type().name() != "filecache":
### Create File Cache SOP Operation ###
filecache_node = seled_node.createOutputNode("filecache")
filecache_node.setName("cache_" + seled_node.name(),
unique_name=True)
filecache_node.setColor(hou.Color((1, 0.8, 0)))
input_name = '`opinputpath("%s", 0)`' %filecache_node.path()
else:
filecache_node = seled_node
input_name = '`opinputpath("%s", 0)`' %seled_node.path()
### Create Geometry ROP Operation ###
geo_node = hou.node("/out").createNode("geometry")
geo_node.setName(filecache_node.name())
geo_node.setParms({
"sopoutput": filecache_node.parm("file"),
"trange": filecache_node.parm("trange"),
"f1": filecache_node.parm("f1"),
"f2": filecache_node.parm("f2"),
"f3": filecache_node.parm("f3"),
"soppath": input_name,
"take": filecache_node.parm("take"),
"xformtype": filecache_node.parm("xformtype")
})
geo_node.setColor(hou.Color((0, 0.267, 0)))
### Conncet nodes ###
if count != 0:
input_node = created_geo_node_list[count-1]
geo_node.setFirstInput(input_node)
### Move created node to organise ###
geo_node.setPosition(node_position)
### Update init value ###
count += 1
created_geo_node_list.append(geo_node)
node_position[1] += -1
seled_node_list = hou.selectedNodes()
main()
@takavfx
Copy link
Author

takavfx commented Sep 9, 2015

Cache Dependency

Explanation of this tool is at the link below:
http://takavfx-note.tumblr.com/post/128674281607/tool-cache-dependency

Updates

2016.06.28

2015.09.16

  • If you have already FileCache SOP in your network, this tool automatically uses that node when you selected.
  • Clarified the license type.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment