[Bf-extensions-cvs] [9159c79] master: remove mesh tiny cad from contrib

zeffii noreply at git.blender.org
Sun Jul 31 23:29:38 CEST 2016


Commit: 9159c798a06d8a705d9ba8fc4637980a4263b011
Author: zeffii
Date:   Sun Jul 31 23:24:42 2016 +0200
Branches: master
https://developer.blender.org/rBAC9159c798a06d8a705d9ba8fc4637980a4263b011

remove mesh tiny cad from contrib

===================================================================

D	mesh_tiny_cad/BIX.py
D	mesh_tiny_cad/CCEN.py
D	mesh_tiny_cad/CFG.py
D	mesh_tiny_cad/E2F.py
D	mesh_tiny_cad/README.md
D	mesh_tiny_cad/V2X.py
D	mesh_tiny_cad/VTX.py
D	mesh_tiny_cad/XALL.py
D	mesh_tiny_cad/__init__.py
D	mesh_tiny_cad/cad_module.py
D	mesh_tiny_cad/icons/BIX.png
D	mesh_tiny_cad/icons/CCEN.png
D	mesh_tiny_cad/icons/E2F.png
D	mesh_tiny_cad/icons/V2X.png
D	mesh_tiny_cad/icons/VTX.png
D	mesh_tiny_cad/icons/XALL.png

===================================================================

diff --git a/mesh_tiny_cad/BIX.py b/mesh_tiny_cad/BIX.py
deleted file mode 100644
index 4f02189..0000000
--- a/mesh_tiny_cad/BIX.py
+++ /dev/null
@@ -1,103 +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 #####
-
-# <pep8 compliant>
-
-
-import bpy
-import bmesh
-from . import cad_module as cm
-
-
-def add_line_to_bisection(self):
-
-    obj = bpy.context.object
-    me = obj.data
-    bm = bmesh.from_edit_mesh(me)
-
-    if hasattr(bm.verts, "ensure_lookup_table"):
-        bm.verts.ensure_lookup_table()
-        bm.edges.ensure_lookup_table()
-
-    edges = [e for e in bm.edges if e.select and not e.hide]
-
-    if not len(edges) == 2:
-        msg = "select two coplanar non parallel edges"
-        self.report({"WARNING"}, msg)
-        return
-
-    [[v1, v2], [v3, v4]] = [[v.co for v in e.verts] for e in edges]
-    print('vectors found:\n', v1, '\n', v2, '\n', v3, '\n', v4)
-
-    dist1 = (v1 - v2).length
-    dist2 = (v3 - v4).length
-    bdist = min([dist1, dist2])
-    edge1 = (v1, v2)
-    edge2 = (v3, v4)
-
-    if not cm.test_coplanar(edge1, edge2):
-        msg = "edges must be coplanar non parallel edges"
-        self.report({"WARNING"}, msg)
-        return
-
-    # get pt and pick fartest vertex from (projected) intersections
-    pt = cm.get_intersection(edge1, edge2)
-    far1 = v2 if (v1 - pt).length < (v2 - pt).length else v1
-    far2 = v4 if (v3 - pt).length < (v4 - pt).length else v3
-    # print('intersection: ', pt)
-
-    dex1 = far1 - pt
-    dex2 = far2 - pt
-    dex1 = dex1 * (bdist / dex1.length)
-    dex2 = dex2 * (bdist / dex2.length)
-    pt2 = pt + (dex1).lerp(dex2, 0.5)
-    # print('bisector point:', pt2)
-
-    pt3 = pt2.lerp(pt, 2.0)
-
-    vec1 = bm.verts.new(pt2)
-    vec2 = bm.verts.new(pt)
-    vec3 = bm.verts.new(pt3)
-    bm.edges.new((vec1, vec2))
-    bm.edges.new((vec2, vec3))
-    bmesh.update_edit_mesh(me)
-    # print("done")
-
-
-class TCLineOnBisection(bpy.types.Operator):
-    '''Generate the bisector of two selected edges'''
-    bl_idname = 'tinycad.linetobisect'
-    bl_label = 'BIX line to bisector'
-    bl_options = {'REGISTER', 'UNDO'}
-
-    @classmethod
-    def poll(cls, context):
-        obj = context.active_object
-        return all([obj is not None, obj.type == 'MESH', obj.mode == 'EDIT'])
-
-    def execute(self, context):
-        add_line_to_bisection(self)
-        return {'FINISHED'}
-
-
-def register():
-    bpy.utils.register_module(__name__)
-
-
-def unregister():
-    bpy.utils.unregister_module(__name__)
diff --git a/mesh_tiny_cad/CCEN.py b/mesh_tiny_cad/CCEN.py
deleted file mode 100644
index f625504..0000000
--- a/mesh_tiny_cad/CCEN.py
+++ /dev/null
@@ -1,167 +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 #####
-
-# <pep8 compliant>
-
-
-import math
-
-import bpy
-import bmesh
-import mathutils
-from mathutils import geometry
-from mathutils import Vector
-
-
-def generate_bmesh_repr(p1, v1, axis, num_verts):
-    '''
-        p1:     center of circle (local coordinates)
-        v1:     first vertex of circle in (local coordinates)
-        axis:   orientation matrix
-        origin: obj.location
-    '''
-    props = bpy.context.scene.tinycad_props
-    rescale = props.rescale
-
-    # generate geometry up front
-    chain = []
-    gamma = 2 * math.pi / num_verts
-    for i in range(num_verts + 1):
-        theta = gamma * i
-        mat_rot = mathutils.Matrix.Rotation(theta, 4, axis)
-        local_point = (mat_rot * ((v1 - p1) * rescale))
-        chain.append(local_point + p1)
-
-    obj = bpy.context.edit_object
-    me = obj.data
-    bm = bmesh.from_edit_mesh(me)
-
-    # add verts
-    v_refs = []
-    for p in chain:
-        v = bm.verts.new(p)
-        v.select = False  # this might be a default.. redundant?
-        v_refs.append(v)
-
-    # join verts, daisy chain
-    num_verts = len(v_refs)
-    for i in range(num_verts):
-        idx1 = i
-        idx2 = (i + 1) % num_verts
-        bm.edges.new([v_refs[idx1], v_refs[idx2]])
-
-    bmesh.update_edit_mesh(me, True)
-
-
-def generate_3PT(pts, obj, nv, mode=1):
-    mw = obj.matrix_world
-    V = Vector
-    nv = max(3, nv)
-
-    # construction
-    v1, v2, v3, v4 = V(pts[0]), V(pts[1]), V(pts[1]), V(pts[2])
-    edge1_mid = v1.lerp(v2, 0.5)
-    edge2_mid = v3.lerp(v4, 0.5)
-    axis = geometry.normal(v1, v2, v4)
-    mat_rot = mathutils.Matrix.Rotation(math.radians(90.0), 4, axis)
-
-    # triangle edges
-    v1_ = ((v1 - edge1_mid) * mat_rot) + edge1_mid
-    v2_ = ((v2 - edge1_mid) * mat_rot) + edge1_mid
-    v3_ = ((v3 - edge2_mid) * mat_rot) + edge2_mid
-    v4_ = ((v4 - edge2_mid) * mat_rot) + edge2_mid
-
-    r = geometry.intersect_line_line(v1_, v2_, v3_, v4_)
-    if r:
-        p1, _ = r
-        cp = mw * p1
-        bpy.context.scene.cursor_location = cp
-
-        if mode == 0:
-            pass
-
-        elif mode == 1:
-            generate_bmesh_repr(p1, v1, axis, nv)
-
-    else:
-        print('not on a circle')
-
-
-def get_three_verts_from_selection(obj):
-    me = obj.data
-    bm = bmesh.from_edit_mesh(me)
-
-    bm.verts.ensure_lookup_table()
-    bm.edges.ensure_lookup_table()
-
-    return [v.co[:] for v in bm.verts if v.select]
-
-
-def dispatch(context, mode=0):
-    try:
-        obj = context.edit_object
-        pts = get_three_verts_from_selection(obj)
-        props = context.scene.tinycad_props
-        generate_3PT(pts, obj, props.num_verts, mode)
-    except:
-        print('dispatch failed', mode)
-
-
-class TCCallBackCCEN(bpy.types.Operator):
-    bl_idname = 'tinycad.reset_circlescale'
-    bl_label = 'CCEN circle reset'
-    bl_options = {'REGISTER'}
-
-    def execute(self, context):
-        context.scene.tinycad_props.rescale = 1
-        return {'FINISHED'}
-
-
-class TCCircleCenter(bpy.types.Operator):
-    '''Recreate a Circle from 3 selected verts, move 3dcursor its center'''
-
-    bl_idname = 'tinycad.circlecenter'
-    bl_label = 'CCEN circle center from selected'
-    bl_options = {'REGISTER', 'UNDO'}
-
-    def draw(self, context):
-        scn = context.scene
-        l = self.layout
-        col = l.column()
-
-        col.prop(scn.tinycad_props, 'num_verts', text='num verts')
-        row = col.row(align=True)
-        row.prop(scn.tinycad_props, 'rescale', text='rescale')
-        row.operator('tinycad.reset_circlescale', text="", icon="LINK")
-
-    @classmethod
-    def poll(cls, context):
-        obj = context.edit_object
-        return obj is not None and obj.type == 'MESH'
-
-    def execute(self, context):
-        dispatch(context, mode=1)
-        return {'FINISHED'}
-
-
-def register():
-    bpy.utils.register_module(__name__)
-
-
-def unregister():
-    bpy.utils.unregister_module(__name__)
diff --git a/mesh_tiny_cad/CFG.py b/mesh_tiny_cad/CFG.py
deleted file mode 100644
index ed703a2..0000000
--- a/mesh_tiny_cad/CFG.py
+++ /dev/null
@@ -1,84 +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 #####
-
-# <pep8 compliant>
-
-
-import os
-import bpy
-
-ICONS = 'BIX CCEN V2X VTX XALL E2F'.split(' ')
-icon_collection = {}
-
-
-class TinyCADProperties(bpy.types.PropertyGroup):
-
-    num_verts = bpy.props.IntProperty(
-        min=3, max=60, default=12)
-
-    rescale = bpy.props.FloatProperty(
-        default=1.0,
-        precision=4,
-        min=0.0001)
-
-
-class VIEW3D_MT_edit_mesh_tinycad(bpy.types.Menu):
-    bl_label = "TinyCAD"
-
-    @classmethod
-    def poll(cls, context):
-        return bool(context.object)
-
-    def draw(self, context):
-
-        pcoll = icon_collection["main"]
-
-        def cicon(name):
-            return pcoll[name].icon_id
-
-        op = self.layout.operator
-        op('tinycad.autovtx', text='VTX | AUTO', icon_value=cicon('VTX'))
-        op('tinycad.vertintersect', text='V2X | Vertex at intersection', icon_value=cicon('V2X'))
-        op('tinycad.intersectall', text='XALL | Intersect selected edges', icon_value=cicon('XALL'))
-        op('tinycad.l

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list