[Bf-extensions-cvs] [38d445c] master: move object_boolean_tools.py to addons release. re: T48561
meta-androcto
noreply at git.blender.org
Sun Jul 31 11:16:05 CEST 2016
Commit: 38d445c953278b477746b7ae9b61267a3d179e58
Author: meta-androcto
Date: Sun Jul 31 19:15:41 2016 +1000
Branches: master
https://developer.blender.org/rBAC38d445c953278b477746b7ae9b61267a3d179e58
move object_boolean_tools.py to addons release. re: T48561
===================================================================
D object_boolean_tools.py
===================================================================
diff --git a/object_boolean_tools.py b/object_boolean_tools.py
deleted file mode 100644
index 6e857ce..0000000
--- a/object_boolean_tools.py
+++ /dev/null
@@ -1,1371 +0,0 @@
-# ##### 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>
-
-bl_info = {
- "name": "Bool Tool",
- "author": "Vitor Balbio, Mikhail Rachinskiy, TynkaTopi, Meta-Androcto",
- "version": (0, 3, 3),
- "blender": (2, 77, 0),
- "location": "View3D > Toolshelf > BoolTool",
- "description": "Bool Tools Hotkey: Ctrl Shift B",
- "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Object/BoolTool",
- "tracker_url": "https://developer.blender.org/maniphest/task/edit/form/2/",
- "category": "Object",
- }
-
-import bpy
-from bpy.app.handlers import persistent
-from bpy.types import (
- Operator,
- Panel,
- )
-
-
-# ------------------- Bool Tool FUNCTIONS------------------------------
-# Utils:
-
-# Hide boolean objects
-def update_BoolHide(self, context):
- ao = context.scene.objects.active
- objs = [i.object for i in ao.modifiers if i.type == 'BOOLEAN']
- hide_state = context.scene.BoolHide
-
- for o in objs:
- o.hide = hide_state
-
-# Object is a Canvas
-
-
-def isCanvas(_obj):
- try:
- if _obj["BoolToolRoot"]:
- return True
- except:
- return False
-
-
-# Object is a Brush Tool Bool
-def isBrush(_obj):
- try:
- if _obj["BoolToolBrush"]:
- return True
- except:
- return False
-
-
-# Object is a Poly Brush Tool Bool collection
-def isPolyBrush(_obj):
- try:
- if _obj["BoolToolPolyBrush"]:
- return True
- except:
- return False
-
-
-def BT_ObjectByName(obj):
- for ob in bpy.context.scene.objects:
- if isCanvas(ob) or isBrush(ob):
- if ob.name == obj:
- return ob
-
-
-def FindCanvas(obj):
- for ob in bpy.context.scene.objects:
- if isCanvas(ob):
- for mod in ob.modifiers:
- if ("BTool_" in mod.name):
- if (obj.name in mod.name):
- return ob
-
-
-def isFTransf():
- user_preferences = bpy.context.user_preferences
- addons = user_preferences.addons
- addon_prefs = addons[__name__].preferences
- if addon_prefs.fast_transform:
- return True
- else:
- return False
-
-
-"""
-# EXPERIMENTAL FEATURES
-def isMakeVertexGroup():
- user_preferences = bpy.context.user_preferences
- addon_prefs = user_preferences.addons[__name__].preferences
- if addon_prefs.make_vertex_groups:
- return True
- else:
- return False
-
-def isMakeBoundary():
- user_preferences = bpy.context.user_preferences
- addon_prefs = user_preferences.addons[__name__].preferences
- if addon_prefs.make_boundary:
- return True
- else:
- return False
-"""
-
-
-def ConvertToMesh(obj):
- act = bpy.context.scene.objects.active
- bpy.context.scene.objects.active = obj
- bpy.ops.object.convert(target="MESH")
- bpy.context.scene.objects.active = act
-
-
-# Do the Union, Difference and Intersection Operations with a Brush
-def Operation(context, _operation):
-
- useWire = bpy.context.user_preferences.addons[__name__].preferences.use_wire
-
- for selObj in bpy.context.selected_objects:
- if selObj != context.active_object and (selObj.type == "MESH" or selObj.type == "CURVE"):
- if selObj.type == "CURVE":
- ConvertToMesh(selObj)
- actObj = context.active_object
- selObj.hide_render = True
- cyclesVis = selObj.cycles_visibility
- # for obj in bpy.context.scene.objects:
- # if isCanvas(obj):
- # for mod in obj.modifiers:
- # if(mod.name == "BTool_" + selObj.name):
- # obj.modifiers.remove(mod)
-
- if useWire:
- selObj.draw_type = "WIRE"
- else:
- selObj.draw_type = "BOUNDS"
-
- cyclesVis.camera = False
- cyclesVis.diffuse = False
- cyclesVis.glossy = False
- cyclesVis.shadow = False
- cyclesVis.transmission = False
- if _operation == "SLICE":
- # copies dupli_group property(empty), but group property is empty (users_group = None)
- clone = context.active_object.copy()
- # clone.select=True
- context.scene.objects.link(clone)
- sliceMod = clone.modifiers.new("BTool_" + selObj.name, "BOOLEAN") # add mod to clone obj
- sliceMod.object = selObj
- sliceMod.operation = "DIFFERENCE"
- clone["BoolToolRoot"] = True
- newMod = actObj.modifiers.new("BTool_" + selObj.name, "BOOLEAN")
- newMod.object = selObj
- if _operation == "SLICE":
- newMod.operation = "INTERSECT"
- else:
- newMod.operation = _operation
-
- actObj["BoolToolRoot"] = True
- selObj["BoolToolBrush"] = _operation
- selObj["BoolTool_FTransform"] = "False"
-
-
-# Do Direct Union, Difference and Intersection Operations
-def Operation_Direct(context, _operation):
- actObj = context.active_object
-
- useWire = bpy.context.user_preferences.addons[__name__].preferences.use_wire
- for selObj in bpy.context.selected_objects:
- if selObj != context.active_object and (selObj.type == "MESH" or selObj.type == "CURVE"):
- if selObj.type == "CURVE":
- ConvertToMesh(selObj)
- actObj = context.active_object
- if useWire:
- selObj.draw_type = "WIRE"
- else:
- selObj.draw_type = "BOUNDS"
- if _operation == "SLICE":
- # copies dupli_group property(empty), but group property is empty (users_group = None)
- clone = context.active_object.copy()
- # clone.select=True
- clone.data = context.active_object.data.copy()
- context.scene.objects.link(clone)
- sliceMod = clone.modifiers.new("BTool_" + selObj.name, "BOOLEAN") # add mod to clone obj
- sliceMod.object = selObj
- sliceMod.operation = "DIFFERENCE"
-
- bpy.ops.object.modifier_apply(modifier=sliceMod.name)
-
- newMod = actObj.modifiers.new("BTool_" + selObj.name, "BOOLEAN")
- if _operation == "SLICE":
- newMod.operation = "INTERSECT"
- else:
- newMod.operation = _operation
- newMod.object = selObj
- bpy.ops.object.modifier_apply(modifier=newMod.name)
- bpy.ops.object.select_all(action='DESELECT')
- # selObj.select = True
- # bpy.ops.object.delete()
-
-
-# Remove Obejcts form the BoolTool System
-def Remove(context, thisObj_name, Prop):
- # Find the Brush pointed in the Tree View and Restore it, active is the Canvas
- actObj = context.active_object
-
- # Restore the Brush
- def RemoveThis(_thisObj_name):
- for obj in bpy.context.scene.objects:
- # if it's the brush object
- if obj.name == _thisObj_name:
- cyclesVis = obj.cycles_visibility
- obj.draw_type = "TEXTURED"
- del obj["BoolToolBrush"]
- del obj["BoolTool_FTransform"]
- cyclesVis.camera = True
- cyclesVis.diffuse = True
- cyclesVis.glossy = True
- cyclesVis.shadow = True
- cyclesVis.transmission = True
-
- # Remove it from the Canvas
- for mod in actObj.modifiers:
- if ("BTool_" in mod.name):
- if (_thisObj_name in mod.name):
- actObj.modifiers.remove(mod)
-
- if Prop == "THIS":
- RemoveThis(thisObj_name)
-
- # If the remove was called from the Properties:
- else:
- # Remove the Brush Property
- if Prop == "BRUSH":
- Canvas = FindCanvas(actObj)
- for mod in Canvas.modifiers:
- if ("BTool_" in mod.name):
- if (actObj.name in mod.name):
- Canvas.modifiers.remove(mod)
- cyclesVis = actObj.cycles_visibility
- actObj.draw_type = "TEXTURED"
- del actObj["BoolToolBrush"]
- del actObj["BoolTool_FTransform"]
- cyclesVis.camera = True
- cyclesVis.diffuse = True
- cyclesVis.glossy = True
- cyclesVis.shadow = True
- cyclesVis.transmission = True
-
- if Prop == "CANVAS":
- for mod in actObj.modifiers:
- if ("BTool_" in mod.name):
- RemoveThis(mod.object.name)
-
-
-# Tooble the Enable the Brush Object Propertie
-def EnableBrush(context, objList, canvas):
- for obj in objList:
- for mod in canvas.modifiers:
- if ("BTool_" in mod.name and mod.object.name == obj):
-
- if (mod.show_viewport):
- mod.show_viewport = False
- mod.show_render = False
- else:
- mod.show_viewport = True
-
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list