Created
August 20, 2015 14:51
-
-
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* 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