diff options
Diffstat (limited to 'release/scripts/bpymodules/BPyAddMesh.py')
-rw-r--r-- | release/scripts/bpymodules/BPyAddMesh.py | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/release/scripts/bpymodules/BPyAddMesh.py b/release/scripts/bpymodules/BPyAddMesh.py index 6ffb394320a..901e68866cc 100644 --- a/release/scripts/bpymodules/BPyAddMesh.py +++ b/release/scripts/bpymodules/BPyAddMesh.py @@ -16,13 +16,17 @@ def add_mesh_simple(name, verts, edges, faces): scn = bpy.data.scenes.active if scn.lib: return ob_act = scn.objects.active - + + is_editmode = EditMode() + cursor = GetCursorPos() - try: quat = Blender.Mathutils.Quaternion(GetViewQuat()) - except: quat = None + quat = None + if is_editmode or Blender.Get('add_view_align'): # Aligning seems odd for editmode, but blender does it, oh well + try: quat = Blender.Mathutils.Quaternion(GetViewQuat()) + except: pass # Exist editmode for non mesh types - if ob_act and ob_act.type != 'Mesh' and EditMode(): + if ob_act and ob_act.type != 'Mesh' and is_editmode: EditMode(0) # We are in mesh editmode @@ -64,10 +68,7 @@ def add_mesh_simple(name, verts, edges, faces): else: # Mesh with no data, unlikely me.edges.extend(edges) - me.faces.extend(faces) - - EditMode(1) - + me.faces.extend(faces) else: # Object mode add new @@ -90,8 +91,14 @@ def add_mesh_simple(name, verts, edges, faces): ob_act.setMatrix(mat) ob_act.loc = cursor - + + me.calcNormals() + + if is_editmode or Blender.Get('add_editmode'): EditMode(1) + + + def write_mesh_script(filepath, me): @@ -106,7 +113,7 @@ def write_mesh_script(filepath, me): file.write('#!BPY\n') file.write('"""\n') file.write('Name: \'%s\'\n' % name) - file.write('Blender: 243\n') + file.write('Blender: 245\n') file.write('Group: \'AddMesh\'\n') file.write('"""\n\n') file.write('import BPyAddMesh\n') |