[Bf-extensions-cvs] [a4e7c60a] blender2.8: MeasureIt: First steps to migrate to 2.8 (WIP)

Antonioya noreply at git.blender.org
Wed Dec 5 16:44:25 CET 2018


Commit: a4e7c60ac814847686341230118c732594c15992
Author: Antonioya
Date:   Wed Dec 5 16:40:29 2018 +0100
Branches: blender2.8
https://developer.blender.org/rBAa4e7c60ac814847686341230118c732594c15992

MeasureIt: First steps to migrate to 2.8 (WIP)

Migrate add-on to 2.8 with new API.

Still problems in render

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

M	measureit/__init__.py
M	measureit/measureit_geometry.py
M	measureit/measureit_main.py
M	measureit/measureit_render.py

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

diff --git a/measureit/__init__.py b/measureit/__init__.py
index a030fe73..fc5252a3 100644
--- a/measureit/__init__.py
+++ b/measureit/__init__.py
@@ -29,8 +29,8 @@ bl_info = {
     "name": "MeasureIt",
     "author": "Antonio Vazquez (antonioya)",
     "location": "View3D > Tools Panel /Properties panel",
-    "version": (1, 7, 1),
-    "blender": (2, 79, 0),
+    "version": (1, 8, 0),
+    "blender": (2, 80, 0),
     "description": "Tools for measuring objects.",
     "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/"
                 "Py/Scripts/3D_interaction/Measureit",
@@ -74,10 +74,10 @@ from bpy.props import (
 
 # Define Panel classes for updating
 panels = (
-        measureit_main.MeasureitEditPanel,
-        measureit_main.MeasureitMainPanel,
-        measureit_main.MeasureitConfPanel,
-        measureit_main.MeasureitRenderPanel,
+        measureit_main.MEASUREIT_PT_Edit,
+        measureit_main.MEASUREIT_PT_Main,
+        measureit_main.MEASUREIT_PT_Conf,
+        measureit_main.MEASUREIT_PT_Render,
         )
 
 
@@ -120,29 +120,35 @@ class Measure_Pref(AddonPreferences):
 
 # Define menu
 # noinspection PyUnusedLocal
+classes = (
+    measureit_main.MEASUREIT_OT_RunHintDisplay,
+    measureit_main.MEASUREIT_OT_AddSegment,
+    measureit_main.MEASUREIT_OT_AddArea,
+    measureit_main.MEASUREIT_OT_AddSegmentOrto,
+    measureit_main.MEASUREIT_OT_AddAngle,
+    measureit_main.MEASUREIT_OT_AddArc,
+    measureit_main.MEASUREIT_OT_AddLabel,
+    measureit_main.MEASUREIT_OT_AddNote,
+    measureit_main.MEASUREIT_OT_AddLink,
+    measureit_main.MEASUREIT_OT_AddOrigin,
+    measureit_main.MEASUREIT_OT_DeleteSegment,
+    measureit_main.MEASUREIT_OT_DeleteAllSegment,
+    measureit_main.MEASUREIT_OT_DeleteAllSum,
+    measureit_main.MEASUREIT_OT_RenderSegment,
+    measureit_main.MEASUREIT_OT_ExpandAllSegment,
+    measureit_main.MEASUREIT_OT_CollapseAllSegment,
+    measureit_main.MEASUREIT_PT_Main,
+    measureit_main.MEASUREIT_PT_Edit,
+    measureit_main.MEASUREIT_PT_Conf,
+    measureit_main.MEASUREIT_PT_Render,
+#    Measure_Pref,
+)
+
 def register():
-    bpy.utils.register_class(measureit_main.RunHintDisplayButton)
-    bpy.utils.register_class(measureit_main.AddSegmentButton)
-    bpy.utils.register_class(measureit_main.AddAreaButton)
-    bpy.utils.register_class(measureit_main.AddSegmentOrtoButton)
-    bpy.utils.register_class(measureit_main.AddAngleButton)
-    bpy.utils.register_class(measureit_main.AddArcButton)
-    bpy.utils.register_class(measureit_main.AddLabelButton)
-    bpy.utils.register_class(measureit_main.AddNoteButton)
-    bpy.utils.register_class(measureit_main.AddLinkButton)
-    bpy.utils.register_class(measureit_main.AddOriginButton)
-    bpy.utils.register_class(measureit_main.DeleteSegmentButton)
-    bpy.utils.register_class(measureit_main.DeleteAllSegmentButton)
-    bpy.utils.register_class(measureit_main.DeleteAllSumButton)
-    bpy.utils.register_class(measureit_main.MeasureitEditPanel)
-    bpy.utils.register_class(measureit_main.MeasureitMainPanel)
-    bpy.utils.register_class(measureit_main.MeasureitConfPanel)
-    bpy.utils.register_class(measureit_main.MeasureitRenderPanel)
-    bpy.utils.register_class(measureit_main.RenderSegmentButton)
-    bpy.utils.register_class(measureit_main.ExpandAllSegmentButton)
-    bpy.utils.register_class(measureit_main.CollapseAllSegmentButton)
-    bpy.utils.register_class(Measure_Pref)
-    update_panel(None, bpy.context)
+    from bpy.utils import register_class
+    for cls in classes:
+        register_class(cls)
+
     # Define properties
     Scene.measureit_default_color = FloatVectorProperty(
         name="Default color",
@@ -420,27 +426,9 @@ def register():
 
 
 def unregister():
-    bpy.utils.unregister_class(measureit_main.RunHintDisplayButton)
-    bpy.utils.unregister_class(measureit_main.AddSegmentButton)
-    bpy.utils.unregister_class(measureit_main.AddAreaButton)
-    bpy.utils.unregister_class(measureit_main.AddSegmentOrtoButton)
-    bpy.utils.unregister_class(measureit_main.AddAngleButton)
-    bpy.utils.unregister_class(measureit_main.AddArcButton)
-    bpy.utils.unregister_class(measureit_main.AddLabelButton)
-    bpy.utils.unregister_class(measureit_main.AddNoteButton)
-    bpy.utils.unregister_class(measureit_main.AddLinkButton)
-    bpy.utils.unregister_class(measureit_main.AddOriginButton)
-    bpy.utils.unregister_class(measureit_main.DeleteSegmentButton)
-    bpy.utils.unregister_class(measureit_main.DeleteAllSegmentButton)
-    bpy.utils.unregister_class(measureit_main.DeleteAllSumButton)
-    bpy.utils.unregister_class(measureit_main.MeasureitEditPanel)
-    bpy.utils.unregister_class(measureit_main.MeasureitMainPanel)
-    bpy.utils.unregister_class(measureit_main.MeasureitConfPanel)
-    bpy.utils.unregister_class(measureit_main.MeasureitRenderPanel)
-    bpy.utils.unregister_class(measureit_main.RenderSegmentButton)
-    bpy.utils.unregister_class(measureit_main.ExpandAllSegmentButton)
-    bpy.utils.unregister_class(measureit_main.CollapseAllSegmentButton)
-    bpy.utils.unregister_class(Measure_Pref)
+    from bpy.utils import unregister_class
+    for cls in reversed(classes):
+        unregister_class(cls)
 
     # Remove properties
     del Scene.measureit_default_color
@@ -501,7 +489,7 @@ def unregister():
     del Scene.measureit_font_align
 
     # remove OpenGL data
-    measureit_main.RunHintDisplayButton.handle_remove(measureit_main.RunHintDisplayButton, bpy.context)
+    measureit_main.MEASUREIT_OT_RunHintDisplay.handle_remove(measureit_main.MEASUREIT_OT_RunHintDisplay, bpy.context)
     wm = bpy.context.window_manager
     p = 'measureit_run_opengl'
     if p in wm:
diff --git a/measureit/measureit_geometry.py b/measureit/measureit_geometry.py
index 3b2e0186..191f981b 100644
--- a/measureit/measureit_geometry.py
+++ b/measureit/measureit_geometry.py
@@ -26,8 +26,6 @@
 # noinspection PyUnresolvedReferences
 import bpy
 # noinspection PyUnresolvedReferences
-import bgl
-# noinspection PyUnresolvedReferences
 import blf
 from blf import ROTATION
 from math import fabs, degrees, radians, sqrt, cos, sin, pi
@@ -36,13 +34,16 @@ from bmesh import from_edit_mesh
 from bpy_extras import view3d_utils, mesh_utils
 import bpy_extras.object_utils as object_utils
 from sys import exc_info
+# GPU
+import bgl
+import gpu
+from gpu_extras.batch import batch_for_shader
 
+shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
 
 # -------------------------------------------------------------
 # Draw segments
 #
-# rgb: Color
-# fsize: Font size
 # -------------------------------------------------------------
 # noinspection PyUnresolvedReferences,PyUnboundLocalVariable
 def draw_segments(context, myobj, op, region, rv3d):
@@ -60,6 +61,7 @@ def draw_segments(context, myobj, op, region, rv3d):
         ovrline = scene.measureit_ovr_width
         units = scene.measureit_units
         fang = get_angle_in_rad(scene.measureit_font_rotation)
+
         # --------------------
         # Scene Scale
         # --------------------
@@ -72,6 +74,7 @@ def draw_segments(context, myobj, op, region, rv3d):
             draw_text(myobj, pos_2d,
                       tx_scale, scene.measureit_scale_color, scene.measureit_scale_font,
                       text_rot=fang)
+
         # --------------------
         # Loop
         # --------------------
@@ -96,9 +99,10 @@ def draw_segments(context, myobj, op, region, rv3d):
                 # noinspection PyBroadException
                 try:
                     if ovr is False:
-                        rgb = ms.glcolor
+                        rgba = ms.glcolor
                     else:
-                        rgb = ovrcolor
+                        rgba = ovrcolor
+
                     # ----------------------
                     # Segment or Label
                     # ----------------------
@@ -108,6 +112,7 @@ def draw_segments(context, myobj, op, region, rv3d):
                         if ms.glpointa <= len(obverts) and ms.glpointb <= len(obverts):
                             a_p1 = get_point(obverts[ms.glpointa].co, myobj)
                             b_p1 = get_point(obverts[ms.glpointb].co, myobj)
+
                     # ----------------------
                     # Segment or Label
                     # ----------------------
@@ -326,8 +331,6 @@ def draw_segments(context, myobj, op, region, rv3d):
                     else:
                         bgl.glLineWidth(ovrline)
 
-                    bgl.glColor4f(rgb[0], rgb[1], rgb[2], rgb[3])
-
                     # ------------------------------------
                     # Text (distance)
                     # ------------------------------------
@@ -366,7 +369,7 @@ def draw_segments(context, myobj, op, region, rv3d):
                             if scene.measureit_gl_show_n is True and ms.glnames is True:
                                 msg += ms.gltxt
                             if scene.measureit_gl_show_d is True or scene.measureit_gl_show_n is True:
-                                draw_text(myobj, txtpoint2d, msg, rgb, fsize, faln, fang)
+                                draw_text(myobj, txtpoint2d, msg, rgba, fsize, faln, fang)
 
                             # ------------------------------
                             # if axis loc, show a indicator
@@ -381,7 +384,7 @@ def draw_segments(context, myobj, op, region, rv3d):
                                 if ms.glocz is True:
                                     txt += "Z"
                                 txt += "]"
-                                draw_text(myobj, txtpoint2d, txt, rgb, fsize - 1, text_rot=fang)
+                                draw_text(myobj, txtpoint2d, txt, rgba, fsize - 1, text_rot=fang)
 
                         except:
                             pass
@@ -445,7 +448,7 @@ def draw_segments(context, myobj, op, region, rv3d):
                                     tmp_point = get_2d_point(region, rv3d, gap3d)
                                     if tmp_point is not None:
                                         txtpoint2d = tmp_point[0] + ms.glfontx, tmp_point[1] + ms.glfonty
-                                        draw_text(myobj, txtp

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list