This commit is contained in:
Andrej730
2024-11-11 12:49:21 +05:00
parent 004488533f
commit 37d9cade92
5 changed files with 32 additions and 13 deletions
@@ -41,6 +41,7 @@ def transparent_color(color, alpha=0.1):
color[3] = alpha color[3] = alpha
return color return color
def highlight_color(color, alpha=0.1): def highlight_color(color, alpha=0.1):
color = [i + (1 - i) * 0.5 for i in color] color = [i + (1 - i) * 0.5 for i in color]
return color return color
@@ -641,20 +642,38 @@ class PolylineDecorator:
axis2 = None axis2 = None
if self.tool_state.plane_method == "XY": if self.tool_state.plane_method == "XY":
projection_point = [Vector((snap_prop.x, snap_prop.y, self.tool_state.plane_origin.z))] projection_point = [Vector((snap_prop.x, snap_prop.y, self.tool_state.plane_origin.z))]
axis1 = [(plane_origin.x - 10000, plane_origin.y, plane_origin.z), (plane_origin.x + 10000, plane_origin.y, plane_origin.z)] axis1 = [
axis2 = [(plane_origin.x, plane_origin.y - 10000, plane_origin.z), (plane_origin.x, plane_origin.y + 100000, plane_origin.z)] (plane_origin.x - 10000, plane_origin.y, plane_origin.z),
(plane_origin.x + 10000, plane_origin.y, plane_origin.z),
]
axis2 = [
(plane_origin.x, plane_origin.y - 10000, plane_origin.z),
(plane_origin.x, plane_origin.y + 100000, plane_origin.z),
]
axis_color1 = decorator_color_x_axis axis_color1 = decorator_color_x_axis
axis_color2 = decorator_color_y_axis axis_color2 = decorator_color_y_axis
elif self.tool_state.plane_method == "XZ": elif self.tool_state.plane_method == "XZ":
projection_point = [Vector((snap_prop.x, self.tool_state.plane_origin.y, snap_prop.z))] projection_point = [Vector((snap_prop.x, self.tool_state.plane_origin.y, snap_prop.z))]
axis1 = [(plane_origin.x - 10000, plane_origin.y, plane_origin.z), (plane_origin.x + 10000, plane_origin.y, plane_origin.z)] axis1 = [
axis2 = [(plane_origin.x, plane_origin.y, plane_origin.z - 10000), (plane_origin.x, plane_origin.y, plane_origin.z + 100000)] (plane_origin.x - 10000, plane_origin.y, plane_origin.z),
(plane_origin.x + 10000, plane_origin.y, plane_origin.z),
]
axis2 = [
(plane_origin.x, plane_origin.y, plane_origin.z - 10000),
(plane_origin.x, plane_origin.y, plane_origin.z + 100000),
]
axis_color1 = decorator_color_x_axis axis_color1 = decorator_color_x_axis
axis_color2 = decorator_color_z_axis axis_color2 = decorator_color_z_axis
elif self.tool_state.plane_method == "YZ": elif self.tool_state.plane_method == "YZ":
projection_point = [Vector((self.tool_state.plane_origin.x, snap_prop.y, snap_prop.z))] projection_point = [Vector((self.tool_state.plane_origin.x, snap_prop.y, snap_prop.z))]
axis1 = [(plane_origin.x, plane_origin.y - 10000, plane_origin.z), (plane_origin.x, plane_origin.y + 10000, plane_origin.z)] axis1 = [
axis2 = [(plane_origin.x, plane_origin.y, plane_origin.z - 10000), (plane_origin.x, plane_origin.y, plane_origin.z + 100000)] (plane_origin.x, plane_origin.y - 10000, plane_origin.z),
(plane_origin.x, plane_origin.y + 10000, plane_origin.z),
]
axis2 = [
(plane_origin.x, plane_origin.y, plane_origin.z - 10000),
(plane_origin.x, plane_origin.y, plane_origin.z + 100000),
]
axis_color1 = decorator_color_y_axis axis_color1 = decorator_color_y_axis
axis_color2 = decorator_color_z_axis axis_color2 = decorator_color_z_axis
else: else:
@@ -674,7 +693,6 @@ class PolylineDecorator:
self.draw_batch("LINES", axis1, highlight_color(axis_color1), [(0, 1)]) self.draw_batch("LINES", axis1, highlight_color(axis_color1), [(0, 1)])
self.draw_batch("LINES", axis2, highlight_color(axis_color2), [(0, 1)]) self.draw_batch("LINES", axis2, highlight_color(axis_color2), [(0, 1)])
# Create polyline with selected points # Create polyline with selected points
polyline_data = context.scene.BIMPolylineProperties.insertion_polyline polyline_data = context.scene.BIMPolylineProperties.insertion_polyline
if polyline_data: if polyline_data:
@@ -823,6 +823,7 @@ class DrawPolylineSlab(bpy.types.Operator, PolylineOperator):
self.tool_state.plane_method = "XY" self.tool_state.plane_method = "XY"
return {"RUNNING_MODAL"} return {"RUNNING_MODAL"}
class RecalculateSlab(bpy.types.Operator, tool.Ifc.Operator): class RecalculateSlab(bpy.types.Operator, tool.Ifc.Operator):
bl_idname = "bim.recalculate_slab" bl_idname = "bim.recalculate_slab"
bl_label = "Recalculate Slab" bl_label = "Recalculate Slab"