Skip to content

Instantly share code, notes, and snippets.

View csprance's full-sized avatar
🐝

Chris Sprance csprance

🐝
View GitHub Profile
@csprance
csprance / CreateMergeNodeFromSelectedNode.py
Created March 4, 2020 16:24
Given a selected node create a merge node that references that node under the mouse curor.
(node,) = hou.selectedNodes()
node.setColor(hou.Color(.302, .525, .114))
parent = node.parent()
merge = parent.createNode('object_merge', '%s_MERGE' % node.name().upper())
merge.setPosition(hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor).cursorPosition())
merge.parm('objpath1').set(merge.relativePathTo(node))
merge.setColor(hou.Color(.475,.812,.204))
@csprance
csprance / bezier_from_control_points.py
Last active March 26, 2020 03:27
Given a set of control points create a bezier curve with n amount of points
def binomial(i, n):
"""Binomial coefficient"""
return math.factorial(n) / float(
math.factorial(i) * math.factorial(n - i))
def bernstein(t, i, n):
"""Bernstein polynom"""
return binomial(i, n) * (t ** i) * ((1 - t) ** (n - i))
@csprance
csprance / barycentric_coordinates.c
Created February 9, 2021 01:53
How to calculate barycentric coordinates in houdini using vex given 3 points making up a triangle and a point p we want to get the coordinates for
// This is the point we want to find barycentric coordinates of
vector p = point(0, "P", 3);
// These are the vertices of the main triangle we want to find coordinates for
vector v1 = point(0, "P", 0),
v2 = point(0, "P", 1),
v3 = point(0, "P", 2);
// Edge Vectors of the main triangle
vector e1 = v3 - v2,
@csprance
csprance / select_by_weight.py
Created October 24, 2021 04:49
A modo script to select verts whose selected weight maps fall within a given range. To use Select a mesh and then select a weight map. Then specify a min and a max value for the range
import lx
import lxu
import modo
import sys
def get_selected_weight_maps():
"""
Get the selected weight maps from the scene
:return: List of selected weight maps