Skip to content

Instantly share code, notes, and snippets.

@JokerMartini
Created August 20, 2015 14:51
Show Gist options
  • Save JokerMartini/ef6746ebfa49c44fffd7 to your computer and use it in GitHub Desktop.
Save JokerMartini/ef6746ebfa49c44fffd7 to your computer and use it in GitHub Desktop.
Maxscript: This demonstrates how to scale a set of verts based on a transform/center point.
/* Scene Setup */
delete objects
ref = plane width:100 length:100 widthsegs:1 lengthsegs:1 wirecolor:yellow pos:[0,0,-1]
obj = convertToPoly (snapshot ref)
obj.pos = [0,0,0]
/* Scale Verts */
sca = [0.9, 0.9, 0.9]
-- array of vert positions
vertIds = polyOp.getVertsUsingFace obj 1
vertPosArr = for v in vertIds collect polyOp.getVert obj v
-- find center point for scale
center = [0,0,0]
for p in vertPosArr do center += p
center /= vertPosArr.count
-- scale
m = (transMatrix -center) * (scaleMatrix sca)
for v in vertIds do
(
pos = (vertPosArr[v]*m) + center
polyOp.setVert obj v pos
)
completeRedraw()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment