[Bf-extensions-cvs] [a99e5be4] master: Fix T52166 for MeasureIt: stops None subscripting
NBurn
noreply at git.blender.org
Wed Jul 26 19:02:28 CEST 2017
Commit: a99e5be48f07106de31de854bc7a6af74ad3ecd0
Author: NBurn
Date: Wed Jul 26 12:54:06 2017 -0400
Branches: master
https://developer.blender.org/rBAa99e5be48f07106de31de854bc7a6af74ad3ecd0
Fix T52166 for MeasureIt: stops None subscripting
Adds checks to prevent several functions from inadvertently trying to
subscript a NoneType and revises the Mesh Debug panel design.
===================================================================
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 ec4ee2bd..56e9716b 100644
--- a/measureit/__init__.py
+++ b/measureit/__init__.py
@@ -320,16 +320,25 @@ def register():
default=False)
Scene.measureit_debug_select = BoolProperty(name="Selected",
description="Display information "
- "for selected vertices/faces",
+ "only for selected items",
default=False)
Scene.measureit_debug_vertices = BoolProperty(name="Vertices",
- description="Display vertex number",
+ description="Display vertex index number",
default=True)
- Scene.measureit_debug_location = BoolProperty(name="Location",
+ Scene.measureit_debug_objects = BoolProperty(name="Objects",
+ description="Display object scene index number",
+ default=False)
+ Scene.measureit_debug_vert_loc = BoolProperty(name="Location",
description="Display vertex location",
default=False)
+ Scene.measureit_debug_object_loc = BoolProperty(name="Location",
+ description="Display object location",
+ default=False)
+ Scene.measureit_debug_edges = BoolProperty(name="Edges",
+ description="Display edge index number",
+ default=False)
Scene.measureit_debug_faces = BoolProperty(name="Faces",
- description="Display face number",
+ description="Display face index number",
default=False)
Scene.measureit_debug_normals = BoolProperty(name="Normals",
description="Display face normal "
@@ -341,27 +350,41 @@ def register():
Scene.measureit_debug_font = IntProperty(name="Font",
description="Debug text size",
default=14, min=10, max=150)
- Scene.measureit_debug_color = FloatVectorProperty(name="Debug color",
+ Scene.measureit_debug_vert_color = FloatVectorProperty(name="Debug color",
description="Debug Color",
default=(1, 0, 0, 1.0),
min=0.1,
max=1,
subtype='COLOR',
size=4)
- Scene.measureit_debug_color2 = FloatVectorProperty(name="Debug face color",
+ Scene.measureit_debug_face_color = FloatVectorProperty(name="Debug face color",
description="Debug face Color",
default=(0, 1, 0, 1.0),
min=0.1,
max=1,
subtype='COLOR',
size=4)
- Scene.measureit_debug_color3 = FloatVectorProperty(name="Debug vector color",
+ Scene.measureit_debug_norm_color = FloatVectorProperty(name="Debug vector color",
description="Debug vector Color",
default=(1.0, 1.0, 0.1, 1.0),
min=0.1,
max=1,
subtype='COLOR',
size=4)
+ Scene.measureit_debug_edge_color = FloatVectorProperty(name="Debug vector color",
+ description="Debug vector Color",
+ default=(0.1, 1.0, 1.0, 1.0),
+ min=0.1,
+ max=1,
+ subtype='COLOR',
+ size=4)
+ Scene.measureit_debug_obj_color = FloatVectorProperty(name="Debug vector color",
+ description="Debug vector Color",
+ default=(1.0, 1.0, 1.0, 1.0),
+ min=0.1,
+ max=1,
+ subtype='COLOR',
+ size=4)
Scene.measureit_debug_normal_size = FloatProperty(name='Len', min=0.001, max=9,
default=0.5,
precision=2,
@@ -370,6 +393,12 @@ def register():
description='Vector line thickness')
Scene.measureit_debug_precision = IntProperty(name='Precision', min=0, max=5, default=1,
description="Number of decimal precision")
+ Scene.measureit_debug_vert_loc_toggle = EnumProperty(items=(('1', "Local",
+ "Uses local coordinates"),
+ ('2', "Global",
+ "Uses global coordinates")),
+ name="Coordinates",
+ description="Choose coordinate system")
# OpenGL flag
wm = WindowManager
@@ -434,17 +463,23 @@ def unregister():
del Scene.measureit_debug
del Scene.measureit_debug_select
del Scene.measureit_debug_vertices
+ del Scene.measureit_debug_objects
+ del Scene.measureit_debug_edges
del Scene.measureit_debug_faces
del Scene.measureit_debug_normals
del Scene.measureit_debug_normal_details
del Scene.measureit_debug_font
- del Scene.measureit_debug_color
- del Scene.measureit_debug_color2
- del Scene.measureit_debug_color3
+ del Scene.measureit_debug_vert_color
+ del Scene.measureit_debug_face_color
+ del Scene.measureit_debug_norm_color
+ del Scene.measureit_debug_edge_color
+ del Scene.measureit_debug_obj_color
del Scene.measureit_debug_normal_size
del Scene.measureit_debug_width
del Scene.measureit_debug_precision
- del Scene.measureit_debug_location
+ del Scene.measureit_debug_vert_loc
+ del Scene.measureit_debug_object_loc
+ del Scene.measureit_debug_vert_loc_toggle
# remove OpenGL data
measureit_main.RunHintDisplayButton.handle_remove(measureit_main.RunHintDisplayButton, bpy.context)
diff --git a/measureit/measureit_geometry.py b/measureit/measureit_geometry.py
index 2ecbe58a..5c63e5d4 100644
--- a/measureit/measureit_geometry.py
+++ b/measureit/measureit_geometry.py
@@ -62,10 +62,10 @@ def draw_segments(context, myobj, op, region, rv3d):
if scene.measureit_scale is True:
prs = scene.measureit_scale_precision
fmts = "%1." + str(prs) + "f"
- pos_x, pos_y = get_scale_txt_location(context)
+ pos_2d = get_scale_txt_location(context)
tx_dsp = fmts % scene.measureit_scale_factor
tx_scale = scene.measureit_gl_scaletxt + " 1:" + tx_dsp
- draw_text(myobj, pos_x, pos_y,
+ draw_text(myobj, pos_2d,
tx_scale, scene.measureit_scale_color, scene.measureit_scale_font)
# --------------------
# Loop
@@ -308,6 +308,7 @@ def draw_segments(context, myobj, op, region, rv3d):
screen_point_v22 = get_2d_point(region, rv3d, v22)
screen_point_v11a = get_2d_point(region, rv3d, v11a)
screen_point_v11b = get_2d_point(region, rv3d, v11b)
+
# ------------------------------------
# colour + line setup
# ------------------------------------
@@ -327,7 +328,10 @@ def draw_segments(context, myobj, op, region, rv3d):
try:
midpoint3d = interpolate3d(v1, v2, fabs(dist / 2))
gap3d = (midpoint3d[0], midpoint3d[1], midpoint3d[2] + s / 2)
- txtpoint2d = get_2d_point(region, rv3d, gap3d)
+ tmp_point = get_2d_point(region, rv3d, gap3d)
+ if tmp_point is None:
+ pass
+ txtpoint2d = tmp_point[0] + ms.glfontx, tmp_point[1] + ms.glfonty
# Scale
if scene.measureit_scale is True:
dist = dist * scene.measureit_scale_factor
@@ -353,8 +357,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[0] + ms.glfontx, txtpoint2d[1] + ms.glfonty,
- msg, rgb, fsize)
+
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list