feat: finish BME prototype improvement

This commit is contained in:
yyc12345 2025-01-20 10:07:45 +08:00
parent cc74a2ca8b
commit b96550ca5c
6 changed files with 162 additions and 82 deletions

View File

@ -243,7 +243,7 @@ class BBP_OT_add_bme_struct(bpy.types.Operator):
op_cfgs_visitor: UTIL_functions.CollectionVisitor[BBP_PG_bme_adder_cfgs]
op_cfgs_visitor = UTIL_functions.CollectionVisitor(self.bme_struct_cfgs)
# visit cfgs cache list to show cfg
layout.label(text="Prototype Configurations:", text_ctxt='BBP_OT_add_bme_struct/draw')
layout.label(text="Prototype Configurations", text_ctxt='BBP_OT_add_bme_struct/draw')
for (cfg, cfg_index) in self.bme_struct_cfg_index_cache:
# create box for cfgs
box_layout: bpy.types.UILayout = layout.box()

View File

@ -25,6 +25,8 @@
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], False, False, False, face[3], None)",
"is_sink": "is_sink"
@ -35,6 +37,8 @@
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], False, False, False, face[5], None)",
"is_sink": "is_sink"
@ -45,6 +49,8 @@
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], False, False, False, face[2], None)",
"is_sink": "is_sink"
@ -55,6 +61,8 @@
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], False, False, False, face[4], None)",
"is_sink": "is_sink"

View File

@ -113,8 +113,8 @@
"params": {
"height": "height",
"length": "distance(0, 0, short_edge_offset, 2.5)",
"is_left_sink": "is_sink",
"is_right_sink": "False"
"is_left_sink": "False",
"is_right_sink": "is_sink"
},
"transform": "rot(0, 0, angle(0, 0, short_edge_offset, 2.5)) @ scale(1, -1, 1)"
},
@ -134,7 +134,7 @@
"skip": "not face[5]",
"params": {
"height": "height",
"length": "length",
"length": "short_edge_length",
"is_left_sink": "is_sink",
"is_right_sink": "is_sink"
},
@ -157,6 +157,14 @@
"identifier": "cv_triangle_side",
"showcase": null,
"params": [
{
"field": "edge_length",
"data": "5.0"
},
{
"field": "tip_offset",
"data": "2.5"
},
{
"field": "height",
"data": "5.0"
@ -170,8 +178,16 @@
"data": "False"
}
],
"skip": "False",
"skip": "edge_length == 0.0",
"vars": [
{
"field": "edge_uv_length",
"data": "edge_length / 5.0"
},
{
"field": "tip_uv_offset",
"data": "tip_offset / 5.0"
},
{
"field": "sink",
"data": "0.7 if is_sink else 0.0"
@ -184,11 +200,11 @@
},
{
"skip": "not face[0]",
"data": "(2.5, 2.5, -sink)"
"data": "(tip_offset, 2.5, -sink)"
},
{
"skip": "not face[0]",
"data": "(5.0, 0, 0)"
"data": "(edge_length, 0, 0)"
}
],
"faces": [
@ -198,8 +214,8 @@
"indices": [0, 2, 1],
"uvs": [
"(0, 0)",
"(0, 1)",
"(0.5, 0.5)"
"(0, edge_uv_length)",
"(0.5, tip_uv_offset)"
],
"normals": null
}
@ -210,7 +226,7 @@
"skip": "not face[4]",
"params": {
"height": "height",
"length": "5",
"length": "edge_length",
"is_left_sink": "False",
"is_right_sink": "False"
},
@ -221,30 +237,30 @@
"skip": "not face[2]",
"params": {
"height": "height",
"length": "distance(0, 0, 2.5, 2.5)",
"is_left_sink": "is_sink",
"is_right_sink": "False"
"length": "distance(0, 0, tip_offset, 2.5)",
"is_left_sink": "False",
"is_right_sink": "is_sink"
},
"transform": "rot(0, 0, 45) @ scale(1, -1, 1)"
"transform": "rot(0, 0, angle(0, 0, tip_offset, 2.5)) @ scale(1, -1, 1)"
},
{
"identifier": "raw_floor_side",
"skip": "not face[3]",
"params": {
"height": "height",
"length": "distance(5, 0, 2.5, 2.5)",
"length": "distance(edge_length, 0, tip_offset, 2.5)",
"is_left_sink": "False",
"is_right_sink": "is_sink"
},
"transform": "move(5, 0, 0) @ rot(0, 0, 135)"
"transform": "move(edge_length, 0, 0) @ rot(0, 0, angle(edge_length, 0, tip_offset, 2.5))"
},
{
"identifier": "floor_triangle_bottom",
"skip": "not face[1]",
"params": {
"length": "5.0",
"length": "edge_length",
"width": "2.5",
"tip_offset": "2.5"
"tip_offset": "tip_offset"
},
"transform": "move(0, 0, -height)"
}

View File

@ -25,6 +25,8 @@
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], False, False, False, face[4], None)",
"is_sink": "is_sink"
@ -55,6 +57,8 @@
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], False, False, False, face[2], None)",
"is_sink": "is_sink"
@ -128,6 +132,8 @@
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], False, False, False, face[2], None)",
"is_sink": "is_sink"

View File

@ -25,36 +25,32 @@
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "2.5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], False, False, False, face[4], None)",
"face": "(face[0], False, False, face[3], face[4], None)",
"is_sink": "is_sink"
},
"transform": "ident()"
},
{
"identifier": "cv_triangle_center",
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "2.5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], False, False, False, face[3], None)",
"face": "(face[0], False, False, face[3], face[5], None)",
"is_sink": "is_sink"
},
"transform": "move(5, 0, 0) @ rot(0, 0, 90)"
},
{
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"height": "height",
"face": "(face[0], False, False, False, face[5], None)",
"is_sink": "is_sink"
},
"transform": "move(5, 5, 0) @ rot(0, 0, 180)"
"transform": "move(0, 5, 0) @ scale(1, -1, 1)"
},
{
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], False, False, False, face[2], None)",
"is_sink": "is_sink"
@ -65,7 +61,7 @@
"identifier": "floor_rectangle_bottom",
"skip": "not face[1]",
"params": {
"length": "5",
"length": "2.5",
"width": "5"
},
"transform": "move(0, 0, -height)"

View File

@ -54,7 +54,7 @@
"data": "face_"
}
],
"skip": "False",
"skip": "length == 0.0 or width == 0.0",
"vars": [],
"vertices": [],
"faces": [],
@ -65,7 +65,7 @@
"params": {
"length": "length",
"height": "height",
"face": "(face[0], face[1], face[2], face[3], face[4], False)"
"face": "(face[0], False, face[2], face[3], face[4], False)"
},
"transform": "ident()"
},
@ -75,9 +75,9 @@
"params": {
"length": "length",
"height": "height",
"face": "(face[0], face[1], face[3], face[2], face[5], False)"
"face": "(face[0], False, face[2], face[3], face[5], False)"
},
"transform": "move(length, 5 + width, 0) @ rot(0, 0, 180)"
"transform": "move(0, 5 + width, 0) @ scale(1, -1, 1)"
},
{
"identifier": "floor_flat",
@ -86,10 +86,19 @@
"height": "height",
"length": "length",
"width": "width",
"face": "(face[0], face[1], face[2], face[3], False, False)",
"face": "(face[0], False, face[2], face[3], False, False)",
"is_sink": "True"
},
"transform": "move(0, 2.5, 0)"
},
{
"identifier": "floor_rectangle_bottom",
"skip": "not face[1]",
"params": {
"length": "length",
"width": "5 + width"
},
"transform": "move(0, 0, -height)"
}
]
},
@ -137,38 +146,57 @@
"data": "face_"
}
],
"skip": "False",
"skip": "width == 0.0",
"vars": [],
"vertices": [],
"faces": [],
"instances": [
{
"identifier": "floor_sink_outter_corner",
"identifier": "cv_trapezoid_side",
"skip": "False",
"params": {
"long_edge_length": "width + 5",
"short_edge_offset": "2.5",
"short_edge_length": "width",
"height": "height",
"face": "(face[0], face[1], face[5], False, face[2], face[3])"
"face": "(face[0], False, False, False, face[2], face[3])",
"is_sink": "True",
"is_ribbon": "False"
},
"transform": "move(0, 5 + width, 0) @ rot(0, 0, -90)"
"transform": "rot(0, 0, 90) @ scale(1, -1, 1)"
},
{
"identifier": "floor_sink_outter_corner",
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "2.5",
"tip_offset": "2.5",
"height": "height",
"face": "(face[0], face[1], face[2], face[3], face[4], False)"
"face": "(face[0], False, False, face[3], face[4], None)",
"is_sink": "True"
},
"transform": "ident()"
},
{
"identifier": "floor_sink_border",
"identifier": "cv_triangle_side",
"skip": "False",
"params": {
"edge_length": "2.5",
"tip_offset": "2.5",
"height": "height",
"length": "width",
"face": "(face[0], face[1], False, False, face[2], face[3])"
"face": "(face[0], False, False, face[3], face[5], None)",
"is_sink": "True"
},
"transform": "move(0, 2.5 + width, 0) @ rot(0, 0, -90)"
"transform": "move(0, width + 5, 0) @ scale(1, -1, 1)"
},
{
"identifier": "floor_rectangle_bottom",
"skip": "not face[1]",
"params": {
"length": "2.5",
"width": "5 + width"
},
"transform": "move(0, 0, -height)"
}
]
},
@ -227,46 +255,45 @@
"data": "face_"
}
],
"skip": "False",
"skip": "width_h == 0.0 or width_v == 0.0",
"vars": [],
"vertices": [],
"faces": [],
"instances": [
{
"identifier": "floor_sink_outter_corner",
"identifier": "cv_trapezoid_side",
"skip": "False",
"params": {
"long_edge_length": "width_h + 5",
"short_edge_offset": "2.5",
"short_edge_length": "width_h + 2.5",
"height": "height",
"face": "(face[0], face[1], face[2], False, face[4], False)"
"face": "(face[0], False, False, face[3], face[4], False)",
"is_sink": "True",
"is_ribbon": "False"
},
"transform": "ident()"
},
{
"identifier": "floor_sink_border",
"identifier": "cv_trapezoid_side",
"skip": "False",
"params": {
"length": "2.5 + width_h",
"long_edge_length": "width_v + 5",
"short_edge_offset": "2.5",
"short_edge_length": "width_v + 2.5",
"height": "height",
"face": "(face[0], face[1], False, face[3], face[4], False)"
"face": "(face[0], False, False, face[5], face[2], False)",
"is_sink": "True",
"is_ribbon": "False"
},
"transform": "move(2.5, 0, 0)"
},
{
"identifier": "floor_sink_border",
"skip": "False",
"params": {
"length": "2.5 + width_v",
"height": "height",
"face": "(face[0], face[1], face[5], False, face[2], False)"
},
"transform": "move(0, 5 + width_v, 0) @ rot(0, 0, -90)"
"transform": "rot(0, 0, 90) @ scale(1, -1, 1)"
},
{
"identifier": "floor_sink_inner_corner",
"skip": "False",
"params": {
"height": "height",
"face": "(face[0], face[1], False, face[3], False, face[5])"
"face": "(face[0], False, False, face[3], False, face[5])"
},
"transform": "move(2.5 + width_h, 2.5 + width_v, 0)"
},
@ -277,7 +304,7 @@
"height": "height",
"length": "width_h + 2.5",
"width": "width_v",
"face": "(face[0], face[1], False, face[3], False, False)",
"face": "(face[0], False, False, face[3], False, False)",
"is_sink": "True"
},
"transform": "move(2.5, 2.5, 0)"
@ -289,10 +316,19 @@
"height": "height",
"length": "width_h",
"width": "2.5",
"face": "(face[0], face[1], False, False, False, face[5])",
"face": "(face[0], False, False, False, False, face[5])",
"is_sink": "True"
},
"transform": "move(2.5, 2.5 + width_v, 0)"
},
{
"identifier": "floor_rectangle_bottom",
"skip": "not face[1]",
"params": {
"length": "width_h + 5",
"width": "width_v + 5"
},
"transform": "move(0, 0, -height)"
}
]
},
@ -351,7 +387,7 @@
"data": "face_"
}
],
"skip": "False",
"skip": "width_h == 0.0 or width_v == 0.0",
"vars": [],
"vertices": [],
"faces": [],
@ -362,7 +398,7 @@
"params": {
"length": "5 + width_v",
"height": "height",
"face": "(face[0], face[1], face[5], face[4], face[2], False)"
"face": "(face[0], False, face[5], face[4], face[2], False)"
},
"transform": "move(0, 5 + width_v, 0) @ rot(0, 0, -90)"
},
@ -371,7 +407,7 @@
"skip": "False",
"params": {
"height": "height",
"face": "(face[0], face[1], False, face[4], False, face[3])"
"face": "(face[0], False, False, face[4], False, face[3])"
},
"transform": "move(2.5 + width_h, 2.5, 0) @ rot(0, 0, -90)"
},
@ -380,7 +416,7 @@
"skip": "False",
"params": {
"height": "height",
"face": "(face[0], face[1], False, face[3], False, face[5])"
"face": "(face[0], False, False, face[3], False, face[5])"
},
"transform": "move(2.5 + width_h, 2.5 + width_v, 0)"
},
@ -391,7 +427,7 @@
"height": "height",
"length": "width_h",
"width": "5 + width_v",
"face": "(face[0], face[1], False, False, face[4], face[5])",
"face": "(face[0], False, False, False, face[4], face[5])",
"is_sink": "True"
},
"transform": "move(2.5, 0, 0)"
@ -403,10 +439,19 @@
"height": "height",
"length": "2.5",
"width": "width_v",
"face": "(face[0], face[1], False, face[3], False, False)",
"face": "(face[0], False, False, face[3], False, False)",
"is_sink": "True"
},
"transform": "move(2.5 + width_h, 2.5, 0)"
},
{
"identifier": "floor_rectangle_bottom",
"skip": "not face[1]",
"params": {
"length": "width_h + 5",
"width": "width_v + 5"
},
"transform": "move(0, 0, -height)"
}
]
},
@ -465,7 +510,7 @@
"data": "face_"
}
],
"skip": "False",
"skip": "width_h == 0.0 or width_v == 0.0",
"vars": [],
"vertices": [],
"faces": [],
@ -475,7 +520,7 @@
"skip": "False",
"params": {
"height": "height",
"face": "(face[0], face[1], False, face[5], False, face[2])"
"face": "(face[0], False, False, face[5], False, face[2])"
},
"transform": "move(2.5, 2.5 + width_v, 0) @ rot(0, 0, -270)"
},
@ -484,7 +529,7 @@
"skip": "False",
"params": {
"height": "height",
"face": "(face[0], face[1], False, face[2], False, face[4])"
"face": "(face[0], False, False, face[2], False, face[4])"
},
"transform": "move(2.5, 2.5, 0) @ rot(0, 0, -180)"
},
@ -493,7 +538,7 @@
"skip": "False",
"params": {
"height": "height",
"face": "(face[0], face[1], False, face[4], False, face[3])"
"face": "(face[0], False, False, face[4], False, face[3])"
},
"transform": "move(2.5 + width_h, 2.5, 0) @ rot(0, 0, -90)"
},
@ -502,7 +547,7 @@
"skip": "False",
"params": {
"height": "height",
"face": "(face[0], face[1], False, face[3], False, face[5])"
"face": "(face[0], False, False, face[3], False, face[5])"
},
"transform": "move(2.5 + width_h, 2.5 + width_v, 0)"
},
@ -513,7 +558,7 @@
"height": "height",
"length": "width_h",
"width": "5 + width_v",
"face": "(face[0], face[1], False, False, face[4], face[5])",
"face": "(face[0], False, False, False, face[4], face[5])",
"is_sink": "True"
},
"transform": "move(2.5, 0, 0)"
@ -525,7 +570,7 @@
"height": "height",
"length": "2.5",
"width": "width_v",
"face": "(face[0], face[1], False, face[3], False, False)",
"face": "(face[0], False, False, face[3], False, False)",
"is_sink": "True"
},
"transform": "move(2.5 + width_h, 2.5, 0)"
@ -537,10 +582,19 @@
"height": "height",
"length": "2.5",
"width": "width_v",
"face": "(face[0], face[1], face[2], False, False, False)",
"face": "(face[0], False, face[2], False, False, False)",
"is_sink": "True"
},
"transform": "move(0, 2.5, 0)"
},
{
"identifier": "floor_rectangle_bottom",
"skip": "not face[1]",
"params": {
"length": "width_h + 5",
"width": "width_v + 5"
},
"transform": "move(0, 0, -height)"
}
]
}