[Bf-extensions-cvs] [5d1aa30] master: remove mesh select tools: merged with mesh extra tools: T48592
meta-androcto
noreply at git.blender.org
Sun Jun 12 08:30:03 CEST 2016
Commit: 5d1aa3071f59193e38d20cdad0cbef11fab01bb1
Author: meta-androcto
Date: Sun Jun 12 16:29:20 2016 +1000
Branches: master
https://developer.blender.org/rBAC5d1aa3071f59193e38d20cdad0cbef11fab01bb1
remove mesh select tools: merged with mesh extra tools: T48592
===================================================================
D mesh_select_tools/__init__.py
D mesh_select_tools/mesh_extras.py
D mesh_select_tools/mesh_index_select.py
D mesh_select_tools/mesh_info_select.py
D mesh_select_tools/mesh_select_by_direction.py
D mesh_select_tools/mesh_select_by_edge_length.py
D mesh_select_tools/mesh_select_by_pi.py
D mesh_select_tools/mesh_select_by_type.py
D mesh_select_tools/mesh_select_checkered.py
D mesh_select_tools/mesh_select_connected_faces.py
D mesh_select_tools/mesh_select_innermost.py
D mesh_select_tools/mesh_selection_topokit.py
===================================================================
diff --git a/mesh_select_tools/__init__.py b/mesh_select_tools/__init__.py
deleted file mode 100644
index d0ee9b8..0000000
--- a/mesh_select_tools/__init__.py
+++ /dev/null
@@ -1,171 +0,0 @@
-# ##### 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 LICENSE BLOCK #####
-# menu & updates by meta-androcto #
-# contributed to by Macouno, dustractor, liero, CoDEmanX, meta-androcto #
-
-bl_info = {
- "name": "Select Tools",
- "author": "Multiple Authors",
- "version": (0, 3),
- "blender": (2, 64, 0),
- "location": "Editmode Select Menu/Toolshelf Tools Tab",
- "description": "Adds More vert/face/edge select modes.",
- "warning": "",
- "wiki_url": "",
- "tracker_url": "https://developer.blender.org/maniphest/task/create/?project=3&type=Bug",
- "category": "Mesh"}
-
-
-if "bpy" in locals():
- import imp
- imp.reload(mesh_select_by_direction)
- imp.reload(mesh_select_by_edge_length)
- imp.reload(mesh_select_by_pi)
- imp.reload(mesh_select_by_type)
- imp.reload(mesh_select_connected_faces)
- imp.reload(mesh_select_innermost)
- imp.reload(mesh_index_select)
- imp.reload(mesh_selection_topokit)
- imp.reload(mesh_info_select)
-else:
- from . import mesh_select_by_direction
- from . import mesh_select_by_edge_length
- from . import mesh_select_by_pi
- from . import mesh_select_by_type
- from . import mesh_select_connected_faces
- from . import mesh_select_innermost
- from . import mesh_index_select
- from . import mesh_selection_topokit
- from . import mesh_info_select
-
-import bpy, bmesh
-
-class VIEW3D_MT_selectface_edit_mesh_add(bpy.types.Menu):
- # Define the "Mesh_Select_Tools" menu
- bl_idname = "mesh.face_select_tools"
- bl_label = "Select by Face"
-
- def draw(self, context):
- layout = self.layout
- layout.operator_context = 'INVOKE_REGION_WIN'
- layout.label(text = 'Face Select')
- layout.separator()
- layout.operator("data.facetype_select",
- text="Triangles").face_type = "3"
- layout.operator("data.facetype_select",
- text="Quads").face_type = "4"
- layout.operator("data.facetype_select",
- text="Ngons").face_type = "5"
- layout.separator()
- layout.operator("mesh.select_vert_index",
- text="By Face Index")
- layout.operator("mesh.select_by_direction",
- text="By Direction")
- layout.operator("mesh.select_by_pi",
- text="By Pi")
- layout.operator("mesh.select_connected_faces",
- text="By Connected Faces")
- layout.operator("mesh.e2e_efe",
- text="Neighbors by Face")
- layout.operator("mesh.f2f_fvnef",
- text="Neighbors by Vert not Edge")
- layout.operator("mesh.conway",
- text="Conway")
-
-class VIEW3D_MT_selectedge_edit_mesh_add(bpy.types.Menu):
- # Define the "Mesh_Select_Tools" menu
- bl_idname = "mesh.edge_select_tools"
- bl_label = "Select by Edge"
-
- def draw(self, context):
- layout = self.layout
- layout.operator_context = 'INVOKE_REGION_WIN'
- layout.label(text = 'Edge Select')
- layout.separator()
- layout.operator("mesh.select_vert_index",
- text="By Edge Index")
- layout.operator("mesh.select_by_direction",
- text="By Direction")
- layout.operator("mesh.select_by_pi",
- text="By Pi")
- layout.operator("mesh.select_by_edge_length",
- text="By Edge Length")
- layout.separator()
- layout.operator("mesh.e2e_eve",
- text="Neighbors by Vert")
- layout.operator("mesh.e2e_evfe",
- text="Neighbors by Vert + Face")
- layout.operator("mesh.e2e_efnve",
- text="Lateral Neighbors")
- layout.operator("mesh.e2e_evnfe",
- text="Longitudinal Edges")
-# layout.operator("mesh.je",
-# text="only_edge_selection")
-
-class VIEW3D_MT_selectvert_edit_mesh_add(bpy.types.Menu):
- # Define the "Mesh_Select_Tools" menu
- bl_idname = "mesh.vert_select_tools"
- bl_label = "Select by Vert"
-
- def draw(self, context):
- layout = self.layout
- layout.operator_context = 'INVOKE_REGION_WIN'
- layout.label(text = 'Vert Select')
- layout.separator()
- layout.operator("mesh.select_vert_index",
- text="By Vert Index")
- layout.operator("mesh.select_by_direction",
- text="By Direction")
- layout.operator("mesh.select_by_pi",
- text="By Pi")
-# layout.operator("mesh.select_innermost",
-# text="innermost")
- layout.separator()
- layout.operator("mesh.v2v_by_edge",
- text="Neighbors by Edge")
- layout.operator("mesh.e2e_eve",
- text="Neighbors by Vert")
- layout.operator("mesh.e2e_efe",
- text="Neighbors by Face")
- layout.operator("mesh.v2v_facewise",
- text="Neighbors by Face - Edge")
-# layout.operator("mesh.ie",
-# text="inner_edge_selection")
-
-# Register all operators and panels
-
-# Define "Extras" menu
-def menu_func(self, context):
- if context.tool_settings.mesh_select_mode[2]:
- self.layout.menu("mesh.face_select_tools", icon="PLUGIN")
- if context.tool_settings.mesh_select_mode[1]:
- self.layout.menu("mesh.edge_select_tools", icon="PLUGIN")
- if context.tool_settings.mesh_select_mode[0]:
- self.layout.menu("mesh.vert_select_tools", icon="PLUGIN")
-
-
-def register():
- bpy.utils.register_module(__name__)
- bpy.types.VIEW3D_MT_select_edit_mesh.append(menu_func)
-
-def unregister():
- bpy.utils.unregister_module(__name__)
- bpy.types.VIEW3D_MT_select_edit_mesh.remove(menu_func)
-
-if __name__ == "__main__":
- register()
diff --git a/mesh_select_tools/mesh_extras.py b/mesh_select_tools/mesh_extras.py
deleted file mode 100644
index 9b317b8..0000000
--- a/mesh_select_tools/mesh_extras.py
+++ /dev/null
@@ -1,274 +0,0 @@
-import bpy, mathutils, math
-from mathutils import geometry
-
-# Get a matrix for the selected faces that you can use to do local transforms
-def get_selection_matrix(faces=False):
-
- me = bpy.context.active_object.data
-
- if not faces:
- faces = get_selected_faces()
-
- yVec = mathutils.Vector()
- zVec = mathutils.Vector()
-
- # Ok so we have a basic matrix, but lets base it more on the mesh!
- for f in faces:
-
- v1 = me.vertices[f.vertices[0]].co
- v2 = me.vertices[f.vertices[1]].co
- edge = v2-v1
-
- yVec += edge
-
- if len(f.vertices) == 4:
- v1 = me.vertices[f.vertices[2]].co
- v2 = me.vertices[f.vertices[3]].co
- edge = v1-v2
-
- yVec += edge
-
- zVec += mathutils.Vector(f.normal)
-
- if not yVec.length:
- quat = zVec.to_track_quat('-Z', 'Y')
- tMat = quat.to_matrix()
- yVec = tMat[1]
- yVec = yVec.normalized()
- else:
- yVec = yVec.normalized()
- zVec = zVec.normalized()
-
- # Rotate yVec so it's 90 degrees to zVec
- cross =yVec.cross(zVec)
- vec = float(yVec.angle(zVec) - math.radians(90))
- mat = mathutils.Matrix.Rotation(vec, 3, cross)
- yVec = (mat * yVec)
-
- xVec = yVec.cross(zVec)
-
- xVec = xVec.normalized()
-
- nMat = mathutils.Matrix((xVec, yVec, zVec))
-
- return nMat
-
-
-
-# Get the selection radius (minimum distance of an outer edge to the centre)
-def get_selection_radius():
-
- ob = bpy.context.active_object
-
- radius = 0.0
-
- # no use continueing if nothing is selected
- if contains_selected_item(ob.data.polygons):
-
- # Find the center of the selection
- cent = mathutils.Vector()
- nr = 0
- nonVerts = []
- selVerts = []
- for f in ob.data.polygons:
- if f.select:
- nr += 1
- cent += f.center
- else:
- nonVerts.extend(f.vertices)
-
- cent /= nr
-
- chk = 0
-
- # Now that we know the center.. we can figure out how close the nearest point on an outer edge is
- for e in get_selected_edges():
-
- nonSection = [v for v in e.vertices if v in nonVerts]
- if len(nonSection):
-
- v0 = ob.data.vertices[e.vertices[0]].co
- v1 = ob.data.vertices[e.vertices[1]].co
-
- # If there's more than 1 vert of this edge on the outside... we need the edge length to be long enough too!
- if len(nonSection) > 1:
- edge = v0 - v1
- edgeRad = edge.length * 0.5
-
- if edgeRad < radius or not chk:
- radius = edgeRad
- chk += 1
-
- int = geometry.intersect_point_line(cent, v0, v1)
-
- rad = cent - int[0]
- l = rad.length
-
- if l < radius or not chk:
- radius = l
- chk += 1
-
- return radius
-
-
-
-# Get the average length of the outer edges of the current selection
-def get_shortest_outer_edge_length():
-
- ob = bpy.context.active_object
-
- min = False
- me = ob.data
-
- delVerts = []
- for f in me.faces:
- if not f.select:
- delVerts.extend(f.vertices)
- selEdges = [e.vertices for e in me.edges if e.select]
-
- if len(selEdges) and len(delVerts):
-
- for eVerts in selEdges:
-
- v0 = eVerts[0]
- v1 = eVerts[1]
-
- if v0 in delVerts and v1 in delVerts:
- ln = (me.vertices[v0].co - me.vertices[v1].co).length
- if min is False or (ln > 0.0 and ln < min):
- min = ln
-
- return min
-
-
-# Get the average length of the outer edges of the current selection
-def get_average_outer_edge_length():
-
- ob = bpy.context.active_object
-
- ave = 0.0
- me = ob.data
-
- delFaces = [f.vertices for f i
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list