black format

This commit is contained in:
Andrej730
2023-05-31 12:06:03 +05:00
parent 6354a11645
commit c6090ef9b3
2 changed files with 33 additions and 13 deletions
@@ -564,7 +564,15 @@ class BIMRailingProperties(PropertyGroup):
class BIMRoofProperties(PropertyGroup):
non_si_units_props = ("is_editing", "path_data", "roof_type", "roof_added_previously", "generation_method", "angle", "rafter_edge_angle")
non_si_units_props = (
"is_editing",
"path_data",
"roof_type",
"roof_added_previously",
"generation_method",
"angle",
"rafter_edge_angle",
)
roof_types = (("HIP/GABLE ROOF", "HIP/GABLE ROOF", ""),)
roof_generation_methods = (
("HEIGHT", "HEIGHT", ""),
@@ -584,7 +592,7 @@ class BIMRoofProperties(PropertyGroup):
)
angle: bpy.props.FloatProperty(name="Slope Angle", default=pi / 18, subtype="ANGLE")
roof_thickness: bpy.props.FloatProperty(name="Roof Thickness", default=0.1, subtype="DISTANCE")
rafter_edge_angle: bpy.props.FloatProperty(name="Rafter Edge Angle", min=0, max = pi, default=pi / 2, subtype="ANGLE")
rafter_edge_angle: bpy.props.FloatProperty(name="Rafter Edge Angle", min=0, max=pi, default=pi / 2, subtype="ANGLE")
def get_general_kwargs(self, convert_to_project_units=False):
kwargs = {
@@ -108,7 +108,9 @@ def is_valid_roof_footprint(bm):
return ({"FINISHED"}, "")
def generate_hiped_roof_bmesh(bm, mode="ANGLE", height=1.0, roof_thickness = 0.1, angle=pi / 18, rafter_edge_angle = pi / 2, mutate_current_bmesh=True):
def generate_hiped_roof_bmesh(
bm, mode="ANGLE", height=1.0, roof_thickness=0.1, angle=pi / 18, rafter_edge_angle=pi / 2, mutate_current_bmesh=True
):
"""return bmesh with gable roof geometry
`mutate_current_bmesh` is a flag to indicate whether the input bmesh
@@ -230,7 +232,7 @@ def generate_hiped_roof_bmesh(bm, mode="ANGLE", height=1.0, roof_thickness = 0.1
verts_to_change = {}
verts_to_rip = []
bottom_chords_to_remove = []
def is_footprint_vert(v):
return float_is_zero(v.co.z - footprint_z)
@@ -320,7 +322,7 @@ def generate_hiped_roof_bmesh(bm, mode="ANGLE", height=1.0, roof_thickness = 0.1
extrusion_geom = bm_sort_out_geom(bmesh.ops.extrude_face_region(bm, geom=bm.faces)["geom"])
extruded_edges = extrusion_geom["edges"]
extruded_verts = extrusion_geom["verts"]
rafter_edge_angle = pi/2 - rafter_edge_angle
rafter_edge_angle = pi / 2 - rafter_edge_angle
default_offset_dir = Vector([0, 0, 1]) * roof_thickness
footprint_verts = set()
@@ -340,14 +342,14 @@ def generate_hiped_roof_bmesh(bm, mode="ANGLE", height=1.0, roof_thickness = 0.1
if len(non_footprint_verts) == 1:
return non_footprint_verts[0]
return min(non_footprint_verts, key=lambda v1: (v1.co-v.co).length)
return min(non_footprint_verts, key=lambda v1: (v1.co - v.co).length)
top_verts = dict()
for v in footprint_verts:
top_verts[v] = get_top_vert(v)
# TODO: rafter_edge_angle might differ
# TODO: rafter_edge_angle might differ
# if footprint edges are not connected by 90 degrees
verts_offsets = dict()
for edge in footprint_edges:
@@ -371,7 +373,6 @@ def generate_hiped_roof_bmesh(bm, mode="ANGLE", height=1.0, roof_thickness = 0.1
# for different rafter edge angles
v.co = mathutils.geometry.intersect_line_line(bot, top, base, offsetted)[0]
verts = [v for v in extruded_verts if v not in footprint_verts]
bmesh.ops.translate(bm, vec=default_offset_dir, verts=verts)
bmesh.ops.recalc_face_normals(bm, faces=bm.faces[:])
@@ -454,8 +455,14 @@ def update_roof_modifier_bmesh(context):
return
generate_hiped_roof_bmesh(
bm, props.generation_method, props.height, props.roof_thickness,
props.angle, props.rafter_edge_angle, mutate_current_bmesh=True)
bm,
props.generation_method,
props.height,
props.roof_thickness,
props.angle,
props.rafter_edge_angle,
mutate_current_bmesh=True,
)
tool.Blender.apply_bmesh(obj.data, bm)
@@ -675,8 +682,13 @@ class EnableEditingRoofPath(bpy.types.Operator, tool.Ifc.Operator):
main_bm.edges.layers.int.new("BBIM_preview")
second_bm = generate_hiped_roof_bmesh(
bm,props.generation_method, props.height, props.roof_thickness,
props.angle, props.rafter_edge_angle, mutate_current_bmesh=False
bm,
props.generation_method,
props.height,
props.roof_thickness,
props.angle,
props.rafter_edge_angle,
mutate_current_bmesh=False,
)
bmesh.ops.translate(second_bm, verts=second_bm.verts, vec=Vector((0, 0, 1)))