Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mesh_relax.py')
-rw-r--r--mesh_relax.py128
1 files changed, 0 insertions, 128 deletions
diff --git a/mesh_relax.py b/mesh_relax.py
deleted file mode 100644
index 1a971a93..00000000
--- a/mesh_relax.py
+++ /dev/null
@@ -1,128 +0,0 @@
-# mesh_relax.py Copyright (C) 2010, Fabian Fricke
-#
-# Relaxes selected vertices while retaining the shape as much as possible
-#
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ***** END GPL LICENCE BLOCK *****
-
-bl_addon_info = {
- "name": "Relax",
- "author": "Fabian Fricke",
- "version": (1,1),
- "blender": (2, 5, 3),
- "api": 31667,
- "location": "View3D > Specials > Relax ",
- "description": "Relax the selected verts while retaining the shape",
- "warning": "",
- "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/"\
- "Scripts/Modeling/Relax",
- "tracker_url": "https://projects.blender.org/tracker/index.php?"\
- "func=detail&aid=21421&group_id=153&atid=469",
- "category": "Mesh"}
-
-"""
-Usage:
-
-Launch from "W-menu" or from "Mesh -> Vertices -> Relax"
-
-
-Additional links:
- Author Site: http://frigi.designdevil.de
- e-mail: frigi.f {at} gmail {dot} com
-"""
-
-
-import bpy
-from bpy.props import IntProperty
-
-def relax_mesh(context):
-
- # deselect everything that's not related
- for obj in context.selected_objects:
- obj.select = False
-
- # get active object
- obj = context.active_object
-
- # duplicate the object so it can be used for the shrinkwrap modifier
- obj.select = True # make sure the object is selected!
- bpy.ops.object.mode_set(mode='OBJECT')
- bpy.ops.object.duplicate()
- target = context.active_object
-
- # remove all other modifiers from the target
- for m in range(0, len(target.modifiers)):
- target.modifiers.remove(target.modifiers[0])
-
- context.scene.objects.active = obj
-
- sw = obj.modifiers.new(type='SHRINKWRAP', name='relax_target')
- sw.target = target
-
- # run smooth operator to relax the mesh
- bpy.ops.object.mode_set(mode='EDIT')
- bpy.ops.mesh.vertices_smooth()
- bpy.ops.object.mode_set(mode='OBJECT')
-
- # apply the modifier
- bpy.ops.object.modifier_apply(modifier='relax_target')
-
- # delete the target object
- obj.select = False
- target.select = True
- bpy.ops.object.delete()
-
- # go back to initial state
- obj.select = True
- bpy.ops.object.mode_set(mode='EDIT')
-
-class Relax(bpy.types.Operator):
- '''Relaxes selected vertices while retaining the shape as much as possible'''
- bl_idname = 'mesh.relax'
- bl_label = 'Relax'
- bl_options = {'REGISTER', 'UNDO'}
-
- iterations = IntProperty(name="Relax iterations",
- default=1, min=0, max=100, soft_min=0, soft_max=10)
-
- @classmethod
- def poll(cls, context):
- obj = context.active_object
- return (obj and obj.type == 'MESH')
-
- def execute(self, context):
- for i in range(0,self.properties.iterations):
- relax_mesh(context)
- return {'FINISHED'}
-
-
-def menu_func(self, context):
- self.layout.operator(Relax.bl_idname, text="Relax")
-
-
-def register():
- bpy.types.VIEW3D_MT_edit_mesh_specials.append(menu_func)
- bpy.types.VIEW3D_MT_edit_mesh_vertices.append(menu_func)
-
-def unregister():
- bpy.types.VIEW3D_MT_edit_mesh_specials.remove(menu_func)
- bpy.types.VIEW3D_MT_edit_mesh_vertices.remove(menu_func)
-
-if __name__ == "__main__":
- register()