Skip to content

Commit 25dc3aa

Browse files
committed
Migrate matrix* dynamic operators to switch expressions
1 parent 0279cb8 commit 25dc3aa

File tree

6 files changed

+38
-82
lines changed

6 files changed

+38
-82
lines changed

lib/src/vector_math/matrix2.dart

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -218,19 +218,12 @@ class Matrix2 {
218218
@pragma('wasm:prefer-inline')
219219
@pragma('vm:prefer-inline')
220220
@pragma('dart2js:prefer-inline')
221-
dynamic operator *(dynamic arg) {
222-
final Object result;
223-
if (arg is double) {
224-
result = scaled(arg);
225-
} else if (arg is Vector2) {
226-
result = transformed(arg);
227-
} else if (arg is Matrix2) {
228-
result = multiplied(arg);
229-
} else {
230-
throw ArgumentError(arg);
231-
}
232-
return result;
233-
}
221+
dynamic operator *(dynamic arg) => switch (arg) {
222+
double() => scaled(arg),
223+
Vector2() => transformed(arg),
224+
Matrix2() => multiplied(arg),
225+
_ => throw ArgumentError(arg)
226+
};
234227

235228
/// Returns new matrix after component wise this + [arg]
236229
Matrix2 operator +(Matrix2 arg) => clone()..add(arg);

lib/src/vector_math/matrix3.dart

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -329,19 +329,12 @@ class Matrix3 {
329329
@pragma('wasm:prefer-inline')
330330
@pragma('vm:prefer-inline')
331331
@pragma('dart2js:prefer-inline')
332-
dynamic operator *(dynamic arg) {
333-
final Object result;
334-
if (arg is double) {
335-
result = scaled(arg);
336-
} else if (arg is Vector3) {
337-
result = transformed(arg);
338-
} else if (arg is Matrix3) {
339-
result = multiplied(arg);
340-
} else {
341-
throw ArgumentError(arg);
342-
}
343-
return result;
344-
}
332+
dynamic operator *(dynamic arg) => switch (arg) {
333+
double() => scaled(arg),
334+
Vector3() => transformed(arg),
335+
Matrix3() => multiplied(arg),
336+
_ => throw ArgumentError(arg)
337+
};
345338

346339
/// Returns new matrix after component wise this + [arg]
347340
Matrix3 operator +(Matrix3 arg) => clone()..add(arg);

lib/src/vector_math/matrix4.dart

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -647,21 +647,13 @@ class Matrix4 {
647647
@pragma('wasm:prefer-inline')
648648
@pragma('vm:prefer-inline')
649649
@pragma('dart2js:prefer-inline')
650-
dynamic operator *(dynamic arg) {
651-
final Object result;
652-
if (arg is double) {
653-
result = scaledByDouble(arg, arg, arg, 1.0);
654-
} else if (arg is Vector4) {
655-
result = transformed(arg);
656-
} else if (arg is Vector3) {
657-
result = transformed3(arg);
658-
} else if (arg is Matrix4) {
659-
result = multiplied(arg);
660-
} else {
661-
throw ArgumentError(arg);
662-
}
663-
return result;
664-
}
650+
dynamic operator *(dynamic arg) => switch (arg) {
651+
double() => scaledByDouble(arg, arg, arg, 1.0),
652+
Vector4() => transformed(arg),
653+
Vector3() => transformed3(arg),
654+
Matrix4() => multiplied(arg),
655+
_ => throw ArgumentError(arg)
656+
};
665657

666658
/// Returns new matrix after component wise this + [arg]
667659
Matrix4 operator +(Matrix4 arg) => clone()..add(arg);

lib/src/vector_math_64/matrix2.dart

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -218,19 +218,12 @@ class Matrix2 {
218218
@pragma('wasm:prefer-inline')
219219
@pragma('vm:prefer-inline')
220220
@pragma('dart2js:prefer-inline')
221-
dynamic operator *(dynamic arg) {
222-
final Object result;
223-
if (arg is double) {
224-
result = scaled(arg);
225-
} else if (arg is Vector2) {
226-
result = transformed(arg);
227-
} else if (arg is Matrix2) {
228-
result = multiplied(arg);
229-
} else {
230-
throw ArgumentError(arg);
231-
}
232-
return result;
233-
}
221+
dynamic operator *(dynamic arg) => switch (arg) {
222+
double() => scaled(arg),
223+
Vector2() => transformed(arg),
224+
Matrix2() => multiplied(arg),
225+
_ => throw ArgumentError(arg)
226+
};
234227

235228
/// Returns new matrix after component wise this + [arg]
236229
Matrix2 operator +(Matrix2 arg) => clone()..add(arg);

lib/src/vector_math_64/matrix3.dart

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -329,19 +329,12 @@ class Matrix3 {
329329
@pragma('wasm:prefer-inline')
330330
@pragma('vm:prefer-inline')
331331
@pragma('dart2js:prefer-inline')
332-
dynamic operator *(dynamic arg) {
333-
final Object result;
334-
if (arg is double) {
335-
result = scaled(arg);
336-
} else if (arg is Vector3) {
337-
result = transformed(arg);
338-
} else if (arg is Matrix3) {
339-
result = multiplied(arg);
340-
} else {
341-
throw ArgumentError(arg);
342-
}
343-
return result;
344-
}
332+
dynamic operator *(dynamic arg) => switch (arg) {
333+
double() => scaled(arg),
334+
Vector3() => transformed(arg),
335+
Matrix3() => multiplied(arg),
336+
_ => throw ArgumentError(arg)
337+
};
345338

346339
/// Returns new matrix after component wise this + [arg]
347340
Matrix3 operator +(Matrix3 arg) => clone()..add(arg);

lib/src/vector_math_64/matrix4.dart

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -647,21 +647,13 @@ class Matrix4 {
647647
@pragma('wasm:prefer-inline')
648648
@pragma('vm:prefer-inline')
649649
@pragma('dart2js:prefer-inline')
650-
dynamic operator *(dynamic arg) {
651-
final Object result;
652-
if (arg is double) {
653-
result = scaledByDouble(arg, arg, arg, 1.0);
654-
} else if (arg is Vector4) {
655-
result = transformed(arg);
656-
} else if (arg is Vector3) {
657-
result = transformed3(arg);
658-
} else if (arg is Matrix4) {
659-
result = multiplied(arg);
660-
} else {
661-
throw ArgumentError(arg);
662-
}
663-
return result;
664-
}
650+
dynamic operator *(dynamic arg) => switch (arg) {
651+
double() => scaledByDouble(arg, arg, arg, 1.0),
652+
Vector4() => transformed(arg),
653+
Vector3() => transformed3(arg),
654+
Matrix4() => multiplied(arg),
655+
_ => throw ArgumentError(arg)
656+
};
665657

666658
/// Returns new matrix after component wise this + [arg]
667659
Matrix4 operator +(Matrix4 arg) => clone()..add(arg);

0 commit comments

Comments
 (0)