[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