diff options
author | meta-androcto <meta.androcto1@gmail.com> | 2016-08-03 03:47:46 +0300 |
---|---|---|
committer | meta-androcto <meta.androcto1@gmail.com> | 2016-08-03 03:47:46 +0300 |
commit | cf4ac00ea0aabfbc1c84b085c53991862003f5ae (patch) | |
tree | 6f145d6cb875e314ee2f2672d213b36087641927 /measureit/__init__.py | |
parent | 5cd9040c995effc4c6bf233e820f741cbaf083ca (diff) |
add mesureit to release "warning temporary status" pending T48704
Diffstat (limited to 'measureit/__init__.py')
-rw-r--r-- | measureit/__init__.py | 403 |
1 files changed, 403 insertions, 0 deletions
diff --git a/measureit/__init__.py b/measureit/__init__.py new file mode 100644 index 00000000..3401a6a6 --- /dev/null +++ b/measureit/__init__.py @@ -0,0 +1,403 @@ +# ##### 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> + +# ---------------------------------------------------------- +# Author: Antonio Vazquez (antonioya) +# ---------------------------------------------------------- + +# ---------------------------------------------- +# Define Addon info +# ---------------------------------------------- +bl_info = { + "name": "MeasureIt", + "author": "Antonio Vazquez (antonioya)", + "location": "View3D > Tools Panel /Properties panel", + "version": (1, 6, 6), + "blender": (2, 7, 4), + "description": "Tools for measuring objects.", + 'warning': 'Temporary: pending review fixes T48704', + "tracker_url": "https://developer.blender.org/maniphest/task/edit/form/2/", + "category": "3D View"} + +import sys +import os + +# ---------------------------------------------- +# Add to Phyton path (once only) +# ---------------------------------------------- +path = sys.path +flag = False +for item in path: + if "measureit" in item: + flag = True +if flag is False: + sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'measureit')) + print("measureit: added to phytonpath") + +# ---------------------------------------------- +# Import modules +# ---------------------------------------------- +if "bpy" in locals(): + import imp + + imp.reload(measureit_main) + print("measureit: Reloaded multifiles") +else: + import measureit_main + + print("measureit: Imported multifiles") + +# noinspection PyUnresolvedReferences +import bpy +# noinspection PyUnresolvedReferences +from bpy.props import * + + +# -------------------------------------------------------------- +# Register all operators and panels +# -------------------------------------------------------------- +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) + + # Define properties + bpy.types.Scene.measureit_default_color = bpy.props.FloatVectorProperty( + name="Default color", + description="Default Color", + default=(0.173, 0.545, 1.0, 1.0), + min=0.1, + max=1, + subtype='COLOR', + size=4) + bpy.types.Scene.measureit_font_size = bpy.props.IntProperty(name="Text Size", + description="Default text size", + default=14, min=10, max=150) + bpy.types.Scene.measureit_hint_space = bpy.props.FloatProperty(name='Separation', min=0, max=100, default=0.1, + precision=3, + description="Default distance to display measure") + bpy.types.Scene.measureit_gl_ghost = bpy.props.BoolProperty(name="All", + description="Display measures for all objects," + " not only selected", + default=True) + bpy.types.Scene.measureit_gl_txt = bpy.props.StringProperty(name="Text", maxlen=256, + description="Short description (use | for line break)") + + bpy.types.Scene.measureit_gl_precision = bpy.props.IntProperty(name='Precision', min=0, max=5, default=2, + description="Number of decimal precision") + bpy.types.Scene.measureit_gl_show_d = bpy.props.BoolProperty(name="ShowDist", + description="Display distances", + default=True) + bpy.types.Scene.measureit_gl_show_n = bpy.props.BoolProperty(name="ShowName", + description="Display texts", + default=False) + bpy.types.Scene.measureit_scale = bpy.props.BoolProperty(name="Scale", + description="Use scale factor", + default=False) + bpy.types.Scene.measureit_scale_factor = bpy.props.FloatProperty(name='Factor', min=0.001, max=9999999, + default=1.0, + precision=3, + description="Scale factor 1:x") + bpy.types.Scene.measureit_scale_color = bpy.props.FloatVectorProperty(name="Scale color", + description="Scale Color", + default=(1, 1, 0, 1.0), + min=0.1, + max=1, + subtype='COLOR', + size=4) + bpy.types.Scene.measureit_scale_font = bpy.props.IntProperty(name="Font", + description="Text size", + default=14, min=10, max=150) + bpy.types.Scene.measureit_scale_pos_x = bpy.props.IntProperty(name="Position X", + description="Margin on the X axis", + default=5, + min=0, + max=100) + bpy.types.Scene.measureit_scale_pos_y = bpy.props.IntProperty(name="Position Y", + description="Margin on the Y axis", + default=5, + min=0, + max=100) + bpy.types.Scene.measureit_gl_scaletxt = bpy.props.StringProperty(name="ScaleText", maxlen=48, + description="Scale title", + default="Scale:") + bpy.types.Scene.measureit_scale_precision = bpy.props.IntProperty(name='Precision', min=0, max=5, default=0, + description="Number of decimal precision") + + bpy.types.Scene.measureit_ovr = bpy.props.BoolProperty(name="Override", + description="Override colors and fonts", + default=False) + bpy.types.Scene.measureit_ovr_font = bpy.props.IntProperty(name="Font", + description="Override text size", + default=14, min=10, max=150) + bpy.types.Scene.measureit_ovr_color = bpy.props.FloatVectorProperty(name="Override color", + description="Override Color", + default=(1, 0, 0, 1.0), + min=0.1, + max=1, + subtype='COLOR', + size=4) + bpy.types.Scene.measureit_ovr_width = bpy.props.IntProperty(name='Override width', min=1, max=10, default=1, + description='override line width') + + bpy.types.Scene.measureit_units = bpy.props.EnumProperty(items=(('1', "Automatic", "Use scene units"), + ('2', "Meters", ""), + ('3', "Centimeters", ""), + ('4', "Milimiters", ""), + ('5', "Feet", ""), + ('6', "Inches", "")), + name="Units", + default="2", + description="Units") + bpy.types.Scene.measureit_render = bpy.props.BoolProperty(name="Render", + description="Save an image with measures over" + " render image", + default=False) + bpy.types.Scene.measureit_render_type = bpy.props.EnumProperty(items=(('1', "*Current", "Use current render"), + ('2', "OpenGL", ""), + ('3', "Animation OpenGL", ""), + ('4', "Image", ""), + ('5', "Animation", "")), + name="Render type", + description="Type of render image") + bpy.types.Scene.measureit_sum = bpy.props.EnumProperty(items=(('99', "-", "Select a group for sum"), + ('0', "A", ""), + ('1', "B", ""), + ('2', "C", ""), + ('3', "D", ""), + ('4', "E", ""), + ('5', "F", ""), + ('6', "G", ""), + ('7', "H", ""), + ('8', "I", ""), + ('9', "J", ""), + ('10', "K", ""), + ('11', "L", ""), + ('12', "M", ""), + ('13', "N", ""), + ('14', "O", ""), + ('15', "P", ""), + ('16', "Q", ""), + ('17', "R", ""), + ('18', "S", ""), + ('19', "T", ""), + ('20', "U", ""), + ('21', "V", ""), + ('22', "W", ""), + ('23', "X", ""), + ('24', "Y", ""), + ('25', "Z", "")), + name="Sum in Group", + description="Add segment length in selected group") + + bpy.types.Scene.measureit_rf = bpy.props.BoolProperty(name="render_frame", + description="Add a frame in render output", + default=False) + bpy.types.Scene.measureit_rf_color = bpy.props.FloatVectorProperty(name="Fcolor", + description="Frame Color", + default=(0.9, 0.9, 0.9, 1.0), + min=0.1, + max=1, + subtype='COLOR', + size=4) + bpy.types.Scene.measureit_rf_border = bpy.props.IntProperty(name='fborder ', min=1, max=1000, default=10, + description='Frame space from border') + bpy.types.Scene.measureit_rf_line = bpy.props.IntProperty(name='fline', min=1, max=10, default=1, + description='Line width for border') + + bpy.types.Scene.measureit_glarrow_a = bpy.props.EnumProperty(items=(('99', "--", "No arrow"), + ('1', "Line", + "The point of the arrow are lines"), + ('2', "Triangle", + "The point of the arrow is triangle"), + ('3', "TShape", + "The point of the arrow is a T")), + name="A end", + description="Add arrows to point A") + bpy.types.Scene.measureit_glarrow_b = bpy.props.EnumProperty(items=(('99', "--", "No arrow"), + ('1', "Line", + "The point of the arrow are lines"), + ('2', "Triangle", + "The point of the arrow is triangle"), + ('3', "TShape", + "The point of the arrow is a T")), + name="B end", + description="Add arrows to point B") + bpy.types.Scene.measureit_glarrow_s = bpy.props.IntProperty(name="Size", + description="Arrow size", + default=15, min=6, max=500) + + bpy.types.Scene.measureit_debug = bpy.props.BoolProperty(name="Debug", + description="Display information for debuging" + " (expand/collapse for enabling or disabling)" + " this information is only renderered for " + "selected objects", + default=False) + bpy.types.Scene.measureit_debug_select = bpy.props.BoolProperty(name="Selected", + description="Display information " + "for selected vertices/faces", + default=False) + bpy.types.Scene.measureit_debug_vertices = bpy.props.BoolProperty(name="Vertices", + description="Display vertex number", + default=True) + bpy.types.Scene.measureit_debug_location = bpy.props.BoolProperty(name="Location", + description="Display vertex location", + default=False) + bpy.types.Scene.measureit_debug_faces = bpy.props.BoolProperty(name="Faces", + description="Display face number", + default=False) + bpy.types.Scene.measureit_debug_normals = bpy.props.BoolProperty(name="Normals", + description="Display face normal " + "vector and creation order", + default=False) + bpy.types.Scene.measureit_debug_normal_details = bpy.props.BoolProperty(name="Details", + description="Display face normal details", + default=True) + bpy.types.Scene.measureit_debug_font = bpy.props.IntProperty(name="Font", + description="Debug text size", + default=14, min=10, max=150) + bpy.types.Scene.measureit_debug_color = bpy.props.FloatVectorProperty(name="Debug color", + description="Debug Color", + default=(1, 0, 0, 1.0), + min=0.1, + max=1, + subtype='COLOR', + size=4) + bpy.types.Scene.measureit_debug_color2 = bpy.props.FloatVectorProperty(name="Debug face color", + description="Debug face Color", + default=(0, 1, 0, 1.0), + min=0.1, + max=1, + subtype='COLOR', + size=4) + bpy.types.Scene.measureit_debug_color3 = bpy.props.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) + bpy.types.Scene.measureit_debug_normal_size = bpy.props.FloatProperty(name='Len', min=0.001, max=9, + default=0.5, + precision=2, + description="Normal arrow size") + bpy.types.Scene.measureit_debug_width = bpy.props.IntProperty(name='Debug width', min=1, max=10, default=2, + description='Vector line thickness') + bpy.types.Scene.measureit_debug_precision = bpy.props.IntProperty(name='Precision', min=0, max=5, default=1, + description="Number of decimal precision") + + # OpenGL flag + wm = bpy.types.WindowManager + # register internal property + wm.measureit_run_opengl = bpy.props.BoolProperty(default=False) + + +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) + + # Remove properties + del bpy.types.Scene.measureit_default_color + del bpy.types.Scene.measureit_font_size + del bpy.types.Scene.measureit_hint_space + del bpy.types.Scene.measureit_gl_ghost + del bpy.types.Scene.measureit_gl_txt + del bpy.types.Scene.measureit_gl_precision + del bpy.types.Scene.measureit_gl_show_d + del bpy.types.Scene.measureit_gl_show_n + del bpy.types.Scene.measureit_scale + del bpy.types.Scene.measureit_scale_factor + del bpy.types.Scene.measureit_scale_color + del bpy.types.Scene.measureit_scale_font + del bpy.types.Scene.measureit_scale_pos_x + del bpy.types.Scene.measureit_scale_pos_y + del bpy.types.Scene.measureit_gl_scaletxt + del bpy.types.Scene.measureit_scale_precision + del bpy.types.Scene.measureit_ovr + del bpy.types.Scene.measureit_ovr_font + del bpy.types.Scene.measureit_ovr_color + del bpy.types.Scene.measureit_ovr_width + del bpy.types.Scene.measureit_units + del bpy.types.Scene.measureit_render + del bpy.types.Scene.measureit_render_type + del bpy.types.Scene.measureit_sum + del bpy.types.Scene.measureit_rf + del bpy.types.Scene.measureit_rf_color + del bpy.types.Scene.measureit_rf_border + del bpy.types.Scene.measureit_rf_line + del bpy.types.Scene.measureit_glarrow_a + del bpy.types.Scene.measureit_glarrow_b + del bpy.types.Scene.measureit_glarrow_s + del bpy.types.Scene.measureit_debug + del bpy.types.Scene.measureit_debug_select + del bpy.types.Scene.measureit_debug_vertices + del bpy.types.Scene.measureit_debug_faces + del bpy.types.Scene.measureit_debug_normals + del bpy.types.Scene.measureit_debug_normal_details + del bpy.types.Scene.measureit_debug_font + del bpy.types.Scene.measureit_debug_color + del bpy.types.Scene.measureit_debug_color2 + del bpy.types.Scene.measureit_debug_color3 + del bpy.types.Scene.measureit_debug_normal_size + del bpy.types.Scene.measureit_debug_width + del bpy.types.Scene.measureit_debug_precision + del bpy.types.Scene.measureit_debug_location + + # remove OpenGL data + measureit_main.RunHintDisplayButton.handle_remove(measureit_main.RunHintDisplayButton, bpy.context) + wm = bpy.context.window_manager + p = 'measureit_run_opengl' + if p in wm: + del wm[p] + + +if __name__ == '__main__': + register() |