diff options
author | Stephen Leger <stephen@3dservices.ch> | 2017-07-24 18:26:43 +0300 |
---|---|---|
committer | Stephen Leger <stephen@3dservices.ch> | 2017-07-24 18:28:29 +0300 |
commit | d1b57c76ad5cfd475ad270a93fed2c530fc3e7d0 (patch) | |
tree | 0e554161581b08ed70dce45f05ce2e9d2a4e7b8e /archipack/archipack_wall.py | |
parent | 5bf39c3cfb72f7b1b79c847ac9f6f0804f813868 (diff) |
archipack: remove 2d to 3d module (shapely dep issue)
Diffstat (limited to 'archipack/archipack_wall.py')
-rw-r--r-- | archipack/archipack_wall.py | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/archipack/archipack_wall.py b/archipack/archipack_wall.py deleted file mode 100644 index 5adf92c2..00000000 --- a/archipack/archipack_wall.py +++ /dev/null @@ -1,137 +0,0 @@ -# -*- coding:utf-8 -*- - -# ##### 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: Stephen Leger (s-leger) -# -# ---------------------------------------------------------- -import bpy -import bmesh -from bpy.types import Operator, PropertyGroup, Mesh, Panel -from bpy.props import FloatProperty, CollectionProperty -from .archipack_object import ArchipackObject - - -def update_wall(self, context): - self.update(context) - - -class archipack_wall(ArchipackObject, PropertyGroup): - z = FloatProperty( - name='height', - min=0.1, max=10000, - default=2.7, precision=2, - description='height', update=update_wall, - ) - - def update(self, context): - # update height via bmesh to avoid loosing material ids - # this should be the rule for other simple objects - # as long as there is no topologic changes - o = context.active_object - if archipack_wall.datablock(o) != self: - return - bpy.ops.object.mode_set(mode='EDIT') - me = o.data - bm = bmesh.from_edit_mesh(me) - bm.verts.ensure_lookup_table() - bm.faces.ensure_lookup_table() - new_z = self.z - last_z = list(v.co.z for v in bm.verts) - max_z = max(last_z) - for v in bm.verts: - if v.co.z == max_z: - v.co.z = new_z - bmesh.update_edit_mesh(me, True) - bpy.ops.object.mode_set(mode='OBJECT') - - -class ARCHIPACK_PT_wall(Panel): - bl_idname = "ARCHIPACK_PT_wall" - bl_label = "Wall" - bl_space_type = 'VIEW_3D' - bl_region_type = 'UI' - bl_category = 'ArchiPack' - - @classmethod - def poll(cls, context): - return archipack_wall.filter(context.active_object) - - def draw(self, context): - - prop = archipack_wall.datablock(context.active_object) - if prop is None: - return - layout = self.layout - layout.prop(prop, 'z') - - -# ------------------------------------------------------------------ -# Define operator class to create object -# ------------------------------------------------------------------ - - -class ARCHIPACK_OT_wall(Operator): - bl_idname = "archipack.wall" - bl_label = "Wall" - bl_description = "Add wall parameters to active object" - bl_category = 'Archipack' - bl_options = {'REGISTER', 'UNDO'} - z = FloatProperty( - name="z", - default=2.7 - ) - - @classmethod - def poll(cls, context): - return context.active_object is not None - - def draw(self, context): - layout = self.layout - row = layout.row() - row.label("Use Properties panel (N) to define parms", icon='INFO') - - def execute(self, context): - if context.mode == "OBJECT": - o = context.active_object - if archipack_wall.filter(o): - return {'CANCELLED'} - params = o.data.archipack_wall.add() - params.z = self.z - return {'FINISHED'} - else: - self.report({'WARNING'}, "Archipack: Option only valid in Object mode") - return {'CANCELLED'} - - -def register(): - bpy.utils.register_class(archipack_wall) - Mesh.archipack_wall = CollectionProperty(type=archipack_wall) - bpy.utils.register_class(ARCHIPACK_PT_wall) - bpy.utils.register_class(ARCHIPACK_OT_wall) - - -def unregister(): - bpy.utils.unregister_class(archipack_wall) - del Mesh.archipack_wall - bpy.utils.unregister_class(ARCHIPACK_PT_wall) - bpy.utils.unregister_class(ARCHIPACK_OT_wall) |