[Bf-extensions-cvs] [b8696856] master: Addon Geodesic Domes: Refactoring. Added Object Helper.

Spivak Vladimir cwolf3d noreply at git.blender.org
Tue Jan 14 22:44:58 CET 2020


Commit: b8696856ccbb020192758f1628e23254eb5d8849
Author: Spivak Vladimir (cwolf3d)
Date:   Tue Jan 14 23:44:19 2020 +0200
Branches: master
https://developer.blender.org/rBAb8696856ccbb020192758f1628e23254eb5d8849

Addon Geodesic Domes: Refactoring. Added Object Helper.

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

M	add_mesh_geodesic_domes/__init__.py
M	add_mesh_geodesic_domes/third_domes_panel_271.py
M	add_mesh_geodesic_domes/vefm_271.py

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

diff --git a/add_mesh_geodesic_domes/__init__.py b/add_mesh_geodesic_domes/__init__.py
index bf87fb2a..684c8ff8 100644
--- a/add_mesh_geodesic_domes/__init__.py
+++ b/add_mesh_geodesic_domes/__init__.py
@@ -22,7 +22,7 @@
 bl_info = {
     "name": "Geodesic Domes",
     "author": "Andy Houston",
-    "version": (0, 3, 4),
+    "version": (0, 3, 5),
     "blender": (2, 80, 0),
     "location": "View3D > Add > Mesh",
     "description": "Create geodesic dome type objects.",
@@ -53,133 +53,12 @@ def Geodesic_contex_menu(self, context):
     
     obj = context.object
     layout = self.layout
-    
-    if 'GeodesicDome' in obj.keys():
+
+    if 'GeodesicDome' in obj.data.keys():
         props = layout.operator("mesh.generate_geodesic_dome", text="Change Geodesic Dome")
         props.change = True
-        props.delete = obj.name
-        props.location = obj.location
-        props.rotation_euler = obj.rotation_euler
-        props.save_parameters = obj["save_parameters"]
-        props.load_parameters = obj["load_parameters"]
-        props.gd_help_text_width = obj["gd_help_text_width"]
-        props.mainpages = obj["mainpages"]
-        props.facetype_menu = obj["facetype_menu"]
-        props.facetoggle = obj["facetoggle"]
-        props.face_use_imported_object = obj["face_use_imported_object"]
-        props.facewidth = obj["facewidth"]
-        props.fwtog = obj["fwtog"]
-        props.faceheight = obj["faceheight"]
-        props.fhtog = obj["fhtog"]
-        props.face_detach = obj["face_detach"]
-        props.fmeshname = obj["fmeshname"]
-        props.geodesic_types = obj["geodesic_types"]
-        props.import_mesh_name = obj["import_mesh_name"]
-        props.base_type = obj["base_type"]
-        props.orientation = obj["orientation"]
-        props.geodesic_class = obj["geodesic_class"]
-        props.tri_hex_star = obj["tri_hex_star"]
-        props.spherical_flat = obj["spherical_flat"]
-        props.use_imported_mesh = obj["use_imported_mesh"]
-        props.cyxres = obj["cyxres"]
-        props.cyyres = obj["cyyres"]
-        props.cyxsz = obj["cyxsz"]
-        props.cyysz = obj["cyysz"]
-        props.cyxell = obj["cyxell"]
-        props.cygap = obj["cygap"]
-        props.cygphase = obj["cygphase"]
-        props.paxres = obj["paxres"]
-        props.payres = obj["payres"]
-        props.paxsz = obj["paxsz"]
-        props.paysz = obj["paysz"]
-        props.paxell = obj["paxell"]
-        props.pagap = obj["pagap"]
-        props.pagphase = obj["pagphase"]
-        props.ures = obj["ures"]
-        props.vres = obj["vres"]
-        props.urad = obj["urad"]
-        props.vrad = obj["vrad"]
-        props.uellipse = obj["uellipse"]
-        props.vellipse = obj["vellipse"]
-        props.upart = obj["upart"]
-        props.vpart = obj["vpart"]
-        props.ugap = obj["ugap"]
-        props.vgap = obj["vgap"]
-        props.uphase = obj["uphase"]
-        props.vphase = obj["vphase"]
-        props.uexp = obj["uexp"]
-        props.vexp = obj["vexp"]
-        props.usuper = obj["usuper"]
-        props.vsuper = obj["vsuper"]
-        props.utwist = obj["utwist"]
-        props.vtwist = obj["vtwist"]
-        props.bures = obj["bures"]
-        props.bvres = obj["bvres"]
-        props.burad = obj["burad"]
-        props.bupart = obj["bupart"]
-        props.bvpart = obj["bvpart"]
-        props.buphase = obj["buphase"]
-        props.bvphase = obj["bvphase"]
-        props.buellipse = obj["buellipse"]
-        props.bvellipse = obj["bvellipse"]
-        props.grxres = obj["grxres"]
-        props.gryres = obj["gryres"]
-        props.grxsz = obj["grxsz"]
-        props.grysz = obj["grysz"]
-        props.cart = obj["cart"]
-        props.frequency = obj["frequency"]
-        props.eccentricity = obj["eccentricity"]
-        props.squish = obj["squish"]
-        props.radius = obj["radius"]
-        props.squareness = obj["squareness"]
-        props.squarez = obj["squarez"]
-        props.baselevel = obj["baselevel"]
-        props.dual = obj["dual"]
-        props.rotxy = obj["rotxy"]
-        props.rotz = obj["rotz"]
-        props.uact = obj["uact"]
-        props.vact = obj["vact"]
-        props.um = obj["um"]
-        props.un1 = obj["un1"]
-        props.un2 = obj["un2"]
-        props.un3 = obj["un3"]
-        props.ua = obj["ua"]
-        props.ub = obj["ub"]
-        props.vm = obj["vm"]
-        props.vn1 = obj["vn1"]
-        props.vn2 = obj["vn2"]
-        props.vn3 = obj["vn3"]
-        props.va = obj["va"]
-        props.vb = obj["vb"]
-        props.uturn = obj["uturn"]
-        props.vturn = obj["vturn"]
-        props.utwist = obj["utwist"]
-        props.vtwist = obj["vtwist"]
-        props.struttype = obj["struttype"]
-        props.struttoggle = obj["struttoggle"]
-        props.strutimporttoggle = obj["strutimporttoggle"]
-        props.strutimpmesh = obj["strutimpmesh"]
-        props.strutwidth = obj["strutwidth"]
-        props.swtog = obj["swtog"]
-        props.strutheight = obj["strutheight"]
-        props.shtog = obj["shtog"]
-        props.strutshrink = obj["strutshrink"]
-        props.sstog = obj["sstog"]
-        props.stretch = obj["stretch"]
-        props.lift = obj["lift"]
-        props.smeshname = obj["smeshname"]
-        props.hubtype = obj["hubtype"]
-        props.hubtoggle = obj["hubtoggle"]
-        props.hubimporttoggle = obj["hubimporttoggle"]
-        props.hubimpmesh = obj["hubimpmesh"]
-        props.hubwidth = obj["hubwidth"]
-        props.hwtog = obj["hwtog"]
-        props.hubheight = obj["hubheight"]
-        props.hhtog = obj["hhtog"]
-        props.hublength = obj["hublength"]
-        props.hstog = obj["hstog"]
-        props.hmeshname = obj["hmeshname"]
-
+        for prm in third_domes_panel_271.GeodesicDomeParameters():
+            setattr(props, prm, obj.data[prm])
         layout.separator()
 
 # Define "Extras" menu
@@ -188,8 +67,9 @@ def menu_func(self, context):
     lay_out.operator_context = 'INVOKE_REGION_WIN'
 
     lay_out.separator()
-    lay_out.operator("mesh.generate_geodesic_dome",
+    oper = lay_out.operator("mesh.generate_geodesic_dome",
                     text="Geodesic Dome", icon="MESH_ICOSPHERE")
+    oper.change = False
 
 # Register
 classes = [
diff --git a/add_mesh_geodesic_domes/third_domes_panel_271.py b/add_mesh_geodesic_domes/third_domes_panel_271.py
index cbef1275..82734b2a 100644
--- a/add_mesh_geodesic_domes/third_domes_panel_271.py
+++ b/add_mesh_geodesic_domes/third_domes_panel_271.py
@@ -19,6 +19,7 @@ from mathutils import (
         Vector,
         Matrix,
         )
+from bpy_extras import object_utils
 
 # global #
 last_generated_object = None
@@ -31,80 +32,20 @@ geodesic_not_yet_called = True
 
 # ###### EIND FOR SHAPEKEYS ######
 
-##------------------------------------------------------------
-# calculates the matrix for the new object
-# depending on user pref
-def align_matrix(context, location):
 
-    loc = Matrix.Translation(location)
-    obj_align = context.preferences.edit.object_align
-    if (context.space_data.type == 'VIEW_3D'
-        and obj_align == 'VIEW'):
-        rot = context.space_data.region_3d.view_matrix.to_3x3().inverted().to_4x4()
-    else:
-        rot = Matrix()
-    align_matrix = loc @ rot
-
-    return align_matrix
-
-#### Delete object
-def ObjectDelete(self, context, delete):
-
-    bpy.context.view_layer.update()
-    bpy.ops.object.mode_set(mode = 'OBJECT')
-    bpy.ops.object.delete()
-    bpy.context.view_layer.update()
-
-    return
-
-
-class GenerateGeodesicDome(Operator):
+class GenerateGeodesicDome(Operator, object_utils.AddObjectHelper):
     bl_label = "Modify Geodesic Objects"
     bl_idname = "mesh.generate_geodesic_dome"
     bl_description = "Create Geodesic Object Types"
     bl_options = {'REGISTER', 'UNDO', 'PRESET'}
-    
-    # align_matrix for the invoke
-    align_matrix : Matrix()
 
-    GeodesicDome : BoolProperty(name = "Geodesic Dome",
+    GeodesicDome : BoolProperty(name = "GeodesicDome",
                 default = True,
-                description = "Geodesic Dome")
-
-    #### change properties
-    name : StringProperty(name = "Name",
-                    description = "Name")
-                    
+                description = "GeodesicDome")                
     change : BoolProperty(name = "Change",
                 default = False,
-                description = "change Gear")
-
-    delete : StringProperty(name = "Delete",
-                    description = "Delete Gear")
-    
-    location : FloatVectorProperty(name = "",
-                description = "Location",
-                default = (0.0, 0.0, 0.0),
-                subtype = 'XYZ')
+                description = "change Geodesic Dome")
 
-    rotation_euler : FloatVectorProperty(
-            name="",
-            description="Rotation",
-            default=(0.0, 0.0, 0.0),
-            subtype='EULER'
-            )
-
-    # PKHG_NEW saving and loading parameters
-    save_parameters: BoolProperty(
-            name="Save params",
-            description="Activation save */tmp/GD_0.GD",
-            default=False
-            )
-    load_parameters: BoolProperty(
-            name="Load params",
-            description="Read */tmp/GD_0.GD",
-            default=False
-            )
     gd_help_text_width: IntProperty(
             name="Text Width",
             description="The width above which the text wraps",
@@ -1038,11 +979,13 @@ class GenerateGeodesicDome(Operator):
                     row = layout.row()
                     row.prop(self, "vtwist")
             box = layout.box()
-            box.label(text="Location:")
-            box.prop(self, "location")
-            box = layout.box()
-            box.label(text="Rotation:")
-            box.prop(self, "rotation_euler")
+            if self.change == False:
+                col = layout.column(align=True)
+                col.prop(self, 'align', expand=True)
+                col = layout.column(align=True)
+                col.prop(self, 'location', expand=True)
+                col = layout.column(align=True)
+                col.prop(self, 'rotation', expand=True)
         # einde superform
         elif which_

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-extensions-cvs mailing list