diff --git a/◯ᴥᗱᗴᗝИNᗱᗴᙁ⚭ⵙ⚭ᙁᗱᗴИNᗝᗱᗴᴥ◯/2.90/SCRIPTS/ADDONS/ARRAY_TOOLS_1-2-1/AT_OPERATORS.PY b/◯ᴥᗱᗴᗝИNᗱᗴᙁ⚭ⵙ⚭ᙁᗱᗴИNᗝᗱᗴᴥ◯/2.90/SCRIPTS/ADDONS/ARRAY_TOOLS_1-2-1/AT_OPERATORS.PY deleted file mode 100644 index 46894c7b..00000000 --- a/◯ᴥᗱᗴᗝИNᗱᗴᙁ⚭ⵙ⚭ᙁᗱᗴИNᗝᗱᗴᴥ◯/2.90/SCRIPTS/ADDONS/ARRAY_TOOLS_1-2-1/AT_OPERATORS.PY +++ /dev/null @@ -1,219 +0,0 @@ -# -*- coding: utf-8 -*- -# ---------------------------- Operators ------------------------ -import bpy -import math - -from mathutils import Vector - -from . import cfg -from . import at_interface -from . at_calc_func import at_random_fill, fill_rotation - - -class OBJECT_OT_at_start(bpy.types.Operator): - """Start and init the addon""" - bl_idname = 'scene.at_op' - bl_label = "Start array" - - @classmethod - def poll(cls, context): - return not context.scene.arraytools_prop.already_start - - def execute(self, context): - cfg.init_array_tool(context) - return {'FINISHED'} - - -class OBJECT_OT_at_done(bpy.types.Operator): - """Apply the settings""" - bl_idname = 'scene.at_done' - bl_label = "Done !" - - def execute(self, context): - cfg.atools_objs.clear() - #cfg.at_mtx_list.clear() - array_col = bpy.data.collections.get(cfg.col_name) - cfg.col_name = "Array_collection" - context.scene.arraytools_prop.up_ui_reset() - context.scene.arraytools_prop.already_start = False - return {'FINISHED'} - - -class OBJECT_OT_at_cancel(bpy.types.Operator): - """Cancel the settings""" - bl_idname = 'scene.at_cancel' - bl_label = "Cancel" - - def execute(self, context): - scn = context.scene - scn.arraytools_prop.at_del_all(True) - scn.arraytools_prop.up_ui_reset() - scn.arraytools_prop.already_start = False - cfg.col_name = "Array_collection" - return {'FINISHED'} - - -class OBJECT_OT_fill_tr(bpy.types.Operator): - """Fill the random translation fields""" - bl_idname = 'scene.fill_tr' - bl_label = "Fill" - - def execute(self, context): - prop = context.scene.arraytools_prop - offset = prop.tr_offset - - for i in range(3): - if offset[i] == 0.0: - prop.tr_min[i], prop.tr_max[i] = at_random_fill(-3.0, 3.0) - else: - prop.tr_min[i], prop.tr_max[i] = at_random_fill(-offset[i]/2, offset[i]/2) - return{'FINISHED'} - - -class OBJECT_OT_fill_sc(bpy.types.Operator): - """Fill the random scale fields""" - bl_idname = 'scene.fill_sc' - bl_label = "Fill" - - def execute(self, context): - prop = context.scene.arraytools_prop - offset = prop.sc_offset - - if 100 in [offset[0], offset[1], offset[2]]: - prop.sc_min_x, prop.sc_max_x = at_random_fill(40.0, 120.0) - prop.sc_min_y, prop.sc_max_y = at_random_fill(40.0, 120.0) - prop.sc_min_z, prop.sc_max_z = at_random_fill(40.0, 120.0) - else: - rand = [(100 - offset[i]) / 2 for i in range(3)] - print(rand) - prop.sc_min_x, prop.sc_max_x = at_random_fill(offset[0]-rand[0], offset[0]+rand[0]) - prop.sc_min_y, prop.sc_max_y = at_random_fill(offset[1]-rand[1], offset[1]+rand[1]) - prop.sc_min_z, prop.sc_max_z = at_random_fill(offset[2]-rand[2], offset[2]+rand[2]) - if prop.sc_all: - prop.sc_min_x = prop.sc_min_y = prop.sc_min_z - prop.sc_max_x = prop.sc_max_y = prop.sc_max_z - return {'FINISHED'} - - -class OBJECT_OT_fill_rot(bpy.types.Operator): - """Fill the random rotation fields""" - bl_idname = 'scene.fill_rot' - bl_label = "Fill" - - def execute(self, context): - fill_rotation(context) - return {'FINISHED'} - - -class OBJECT_OT_x360(bpy.types.Operator): - """Quick 360 degrees on X axis""" - bl_idname = 'scene.x360' - bl_label = "360" - - def execute(self, context): - prop = context.scene.arraytools_prop - prop.tr_offset = Vector((0.0, 0.0, 0.0)) - prop.rot_global = Vector((math.pi/180*360, 0.0, 0.0)) - return{'FINISHED'} - - -class OBJECT_OT_y360(bpy.types.Operator): - """Quick 360 degrees on Y axis""" - bl_idname = 'scene.y360' - bl_label = "360" - - def execute(self, context): - prop = context.scene.arraytools_prop - prop.tr_offset = Vector((0.0, 0.0, 0.0)) - prop.rot_global = Vector((0.0, math.pi/180*360, 0.0)) - return{'FINISHED'} - - -class OBJECT_OT_z360(bpy.types.Operator): - """Quick 360 degrees on Z axis""" - bl_idname = 'scene.z360' - bl_label = "360" - - def execute(self, context): - prop = context.scene.arraytools_prop - prop.tr_offset = Vector((0.0, 0.0, 0.0)) - prop.rot_global = Vector((0.0, 0.0, math.pi/180*360)) - return{'FINISHED'} - - -class OBJECT_OT_reset_tr(bpy.types.Operator): - """Reset the settings of random translation""" - bl_idname = 'scene.at_reset_tr' - bl_label = 'Reset' - - def execute(self, context): - prop = context.scene.arraytools_prop - prop.tr_min[0], prop.tr_min[1], prop.tr_min[2] = 0.0, 0.0, 0.0 - prop.tr_max[0], prop.tr_max[1], prop.tr_max[2] = 0.0, 0.0, 0.0 - - # if operator is used many times - # get weird result != 0 with vector - # prop.tr_max = Vector((0.0, 0.0, 0.0)) - return {'FINISHED'} - - -class OBJECT_OT_reset_sc(bpy.types.Operator): - """Reset the settings of random scale""" - bl_idname = 'scene.at_reset_sc' - bl_label = 'Reset' - - def execute(self, context): - prop = context.scene.arraytools_prop - prop.sc_min_x, prop.sc_min_y, prop.sc_min_z = 100, 100, 100 - prop.sc_max_x, prop.sc_max_y, prop.sc_max_z = 100, 100, 100 - return{'FINISHED'} - - -class OBJECT_OT_reset_rot(bpy.types.Operator): - """Reset the settings of random rotation""" - bl_idname = 'scene.at_reset_rot' - bl_label = 'Reset' - - def execute(self, context): - prop = context.scene.arraytools_prop - prop.rot_min[0], prop.rot_min[1], prop.rot_min[2] = 0.0, 0.0, 0.0 - prop.rot_max[0], prop.rot_max[1], prop.rot_max[2] = 0.0, 0.0, 0.0 - return{'FINISHED'} - - -class OBJECT_OT_reset_second(bpy.types.Operator): - """Reset the settings of row options""" - bl_idname = 'scene.at_reset_second' - bl_label = 'Reset' - - def execute(self, context): - prop = context.scene.arraytools_prop - prop.tr_second = (0,0,0) - prop.sc_second = (100,100,100) - prop.rot_second = (0,0,0) - return {'FINISHED'} - - -class OBJECT_OT_error(bpy.types.Operator): - """Draw a message box to display error""" - bl_idname = "info.at_error" - bl_label = "Message info" - - info: bpy.props.StringProperty( - name = "Message", - description = "Display a message", - default = '' - ) - - def execute(self, context): - self.report({'INFO'}, self.info) - print(self.info) - return {'FINISHED'} - - def invoke(self, context, event): - return context.window_manager.invoke_props_dialog(self) - - def draw(self, context): - layout = self.layout - layout.label(text=self.info) - layout.label(text="") \ No newline at end of file