Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (
- obj = $
- val = 10
- faces = polyop.getFaceSelection obj
- vertices = #()
- normals = #()
- angles = #()
- fn GetVectorsAngle v1 v2 =
- (
- acos(dot (normalize v1) (normalize v2))
- )
- fn GetProportionalityFactor a = (
- 1/(cos a)
- )
- for face in faces do(
- polyVerts = polyop.getFaceVerts obj face
- normal = polyop.getFaceNormal obj face
- for v in polyVerts do (
- foundResult = findItem vertices v
- if foundResult == 0 then(
- append vertices v
- append normals normal
- append angles 0
- ) else (
- oldNormal = normals[foundResult]
- ang = GetVectorsAngle oldNormal normal
- newNormal = normalize (oldNormal + normal)
- normals[foundResult] = newNormal
- angles[foundResult] = ang/2
- )
- )
- )
- for i = 1 to vertices.count do(
- curVert = vertices[i]
- curNormal = normals[i]
- k = GetProportionalityFactor angles[i]
- offset = curNormal*val*k
- polyop.moveVert obj curVert offset
- )
- )
Add Comment
Please, Sign In to add comment