UI clean-up

This commit is contained in:
2025-01-03 16:15:48 +01:00
parent 03b84515e7
commit e6c7b2ab0c
6 changed files with 73 additions and 44 deletions

View File

@@ -71,6 +71,11 @@ should_serialize :: (type: *Type_Info_Struct, member: Type_Info_Struct_Member) -
case; return false;
}
}
case "Static_Array"; #through;
case "PArray"; #through;
case "Stack"; #through;
case "Queue";
return false;
}
}
@@ -154,8 +159,8 @@ generate_member_ui :: (type: *Type_Info_Struct, builder: *String_Builder, path:
if tag == {
case .STRUCT; {
info_struct := cast(*Type_Info_Struct) it.type;
if info_struct.name == "Quaternion" {
if info_struct.name == "Transform" {
print_to_builder(builder, TRANSFORM_UI);
}
else if info_struct.name == "Vector3" {
print_to_builder(builder, "\tui_vector_field(tprint(\"%\"), *e.%);\n", new_path, new_path);
@@ -183,6 +188,21 @@ generate_member_ui :: (type: *Type_Info_Struct, builder: *String_Builder, path:
}
}
TRANSFORM_UI :: #string DONE
updated := ui_vector_field("Position", *e.transform.position);
euler_rotation := quaternion_to_euler_v3(e.transform.orientation);
euler_rotation *= RADIANS_TO_DEGREES;
updated |= ui_vector_field("Rotation", *euler_rotation);
euler_rotation *= DEGREES_TO_RADIANS;
e.transform.orientation = euler_to_quaternion(euler_rotation);
updated |= ui_vector_field("Scale", *e.transform.scale);
if updated {
update_matrix(*e.transform);
}
DONE
generate_member_serialization :: (type: *Type_Info_Struct, builder: *String_Builder, path: string = "") {
for type.members {
if should_serialize(type, it) {