Pose library: fix asset creation operator poll when no object active
[blender-addons.git] / add_mesh_geodesic_domes / __init__.py
blob632ee843a3cc551433b1fa25a9ea6ccfb02395f5
1 # SPDX-License-Identifier: GPL-2.0-or-later
3 # Contributed to by PKHG, Meta Androcto, Noctumsolis, Lijenstina,
4 # Spivak Vladimir (cwolf3d)
5 # Origunally an addon by Andy Houston
7 bl_info = {
8 "name": "Geodesic Domes",
9 "author": "Andy Houston",
10 "version": (0, 3, 6),
11 "blender": (2, 80, 0),
12 "location": "View3D > Add > Mesh",
13 "description": "Create geodesic dome type objects.",
14 "warning": "",
15 "doc_url": "{BLENDER_MANUAL_URL}/addons/add_mesh/geodesic_domes.html",
16 "category": "Add Mesh",
19 if "bpy" in locals():
20 import importlib
21 importlib.reload(add_shape_geodesic)
22 importlib.reload(forms_271)
23 importlib.reload(geodesic_classes_271)
24 importlib.reload(third_domes_panel_271)
25 importlib.reload(vefm_271)
27 else:
28 from . import add_shape_geodesic
29 from . import forms_271
30 from . import geodesic_classes_271
31 from . import third_domes_panel_271
32 from . import vefm_271
34 import bpy
36 def Geodesic_contex_menu(self, context):
37 bl_label = 'Change'
39 obj = context.object
40 layout = self.layout
42 if obj.data is not None and 'GeodesicDome' in obj.data.keys():
43 props = layout.operator("mesh.generate_geodesic_dome", text="Change Geodesic Dome")
44 props.change = True
45 for prm in third_domes_panel_271.GeodesicDomeParameters():
46 setattr(props, prm, obj.data[prm])
47 layout.separator()
49 # Define "Extras" menu
50 def menu_func(self, context):
51 lay_out = self.layout
52 lay_out.operator_context = 'INVOKE_REGION_WIN'
54 lay_out.separator()
55 oper = lay_out.operator("mesh.generate_geodesic_dome",
56 text="Geodesic Dome", icon="MESH_ICOSPHERE")
57 oper.change = False
59 # Register
60 classes = [
61 add_shape_geodesic.add_pose_shape_fast,
62 third_domes_panel_271.GenerateGeodesicDome,
63 third_domes_panel_271.DialogOperator,
66 def register():
67 from bpy.utils import register_class
68 for cls in classes:
69 register_class(cls)
71 # Add "Extras" menu to the "Add Mesh" menu
72 bpy.types.VIEW3D_MT_mesh_add.append(menu_func)
73 bpy.types.VIEW3D_MT_object_context_menu.prepend(Geodesic_contex_menu)
76 def unregister():
77 # Remove "Extras" menu from the "Add Mesh" menu.
78 bpy.types.VIEW3D_MT_object_context_menu.remove(Geodesic_contex_menu)
79 bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)
81 from bpy.utils import unregister_class
82 for cls in reversed(classes):
83 unregister_class(cls)
85 if __name__ == "__main__":
86 register()