Move to origin
// Get center of the oject bounding box (centroid) vector min = {0, 0, 0}; vector max = {0, 0, 0}; getpointbbox(0, min, max); vector centroid = (max + min)/2.0; // Build and apply transformation matrix vector translate = centroid; vector rotate = {0,0,0}; vector scale = {1,1,1}; matrix xform = invert(maketransform(0, 0, translate, rotate, scale)); @P *= xform; // Store transformation matrix in attribute 4@xform_matrix = xform;
Move back again
@P *= invert(4@xform_matrix);
taken from https://github.com/kiryha/Houdini/wiki/vex-snippets