mirror of
https://github.com/odin-lang/Odin.git
synced 2026-07-23 07:52:33 +00:00
Support q.xyz on quaternion*
This commit is contained in:
@@ -3981,6 +3981,9 @@ gb_internal Selection lookup_field_with_selection(Type *type_, InternedString fi
|
||||
gb_local_persist Entity *entity__y = alloc_entity_field(nullptr, make_token_ident(y), t_f16, false, 1);
|
||||
gb_local_persist Entity *entity__z = alloc_entity_field(nullptr, make_token_ident(z), t_f16, false, 2);
|
||||
|
||||
gb_local_persist String xyz = str_lit("xyz");
|
||||
gb_local_persist Entity *entity__xyz = alloc_entity_field(nullptr, make_token_ident(xyz), alloc_type_array(t_f16, 3), false, -1);
|
||||
|
||||
String n = field_name.string();
|
||||
if (n == w) {
|
||||
selection_add_index(&sel, 3);
|
||||
@@ -3998,6 +4001,10 @@ gb_internal Selection lookup_field_with_selection(Type *type_, InternedString fi
|
||||
selection_add_index(&sel, 2);
|
||||
sel.entity = entity__z;
|
||||
return sel;
|
||||
} else if (n == xyz) {
|
||||
selection_add_index(&sel, -1);
|
||||
sel.entity = entity__xyz;
|
||||
return sel;
|
||||
}
|
||||
} break;
|
||||
|
||||
@@ -4012,6 +4019,9 @@ gb_internal Selection lookup_field_with_selection(Type *type_, InternedString fi
|
||||
gb_local_persist Entity *entity__y = alloc_entity_field(nullptr, make_token_ident(y), t_f32, false, 1);
|
||||
gb_local_persist Entity *entity__z = alloc_entity_field(nullptr, make_token_ident(z), t_f32, false, 2);
|
||||
|
||||
gb_local_persist String xyz = str_lit("xyz");
|
||||
gb_local_persist Entity *entity__xyz = alloc_entity_field(nullptr, make_token_ident(xyz), alloc_type_array(t_f32, 3), false, -1);
|
||||
|
||||
String n = field_name.string();
|
||||
if (n == w) {
|
||||
selection_add_index(&sel, 3);
|
||||
@@ -4029,6 +4039,10 @@ gb_internal Selection lookup_field_with_selection(Type *type_, InternedString fi
|
||||
selection_add_index(&sel, 2);
|
||||
sel.entity = entity__z;
|
||||
return sel;
|
||||
} else if (n == xyz) {
|
||||
selection_add_index(&sel, -1);
|
||||
sel.entity = entity__xyz;
|
||||
return sel;
|
||||
}
|
||||
} break;
|
||||
|
||||
@@ -4043,6 +4057,9 @@ gb_internal Selection lookup_field_with_selection(Type *type_, InternedString fi
|
||||
gb_local_persist Entity *entity__y = alloc_entity_field(nullptr, make_token_ident(y), t_f64, false, 1);
|
||||
gb_local_persist Entity *entity__z = alloc_entity_field(nullptr, make_token_ident(z), t_f64, false, 2);
|
||||
|
||||
gb_local_persist String xyz = str_lit("xyz");
|
||||
gb_local_persist Entity *entity__xyz = alloc_entity_field(nullptr, make_token_ident(xyz), alloc_type_array(t_f64, 3), false, -1);
|
||||
|
||||
String n = field_name.string();
|
||||
if (n == w) {
|
||||
selection_add_index(&sel, 3);
|
||||
@@ -4060,6 +4077,10 @@ gb_internal Selection lookup_field_with_selection(Type *type_, InternedString fi
|
||||
selection_add_index(&sel, 2);
|
||||
sel.entity = entity__z;
|
||||
return sel;
|
||||
} else if (n == xyz) {
|
||||
selection_add_index(&sel, -1);
|
||||
sel.entity = entity__xyz;
|
||||
return sel;
|
||||
}
|
||||
} break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user