Skip to content

Commit d6d34e4

Browse files
committed
Store loads in a local
1 parent 2fd7aab commit d6d34e4

File tree

2 files changed

+104
-80
lines changed

2 files changed

+104
-80
lines changed

lib/src/vector_math/matrix4.dart

Lines changed: 52 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -803,24 +803,28 @@ class Matrix4 {
803803
/// Multiply this by a translation from the left.
804804
void leftTranslateByDouble(double tx, double ty, double tz) {
805805
// Column 1
806-
_m4storage[0] += tx * _m4storage[3];
807-
_m4storage[1] += ty * _m4storage[3];
808-
_m4storage[2] += tz * _m4storage[3];
806+
final r1 = _m4storage[3];
807+
_m4storage[0] += tx * r1;
808+
_m4storage[1] += ty * r1;
809+
_m4storage[2] += tz * r1;
809810

810811
// Column 2
811-
_m4storage[4] += tx * _m4storage[7];
812-
_m4storage[5] += ty * _m4storage[7];
813-
_m4storage[6] += tz * _m4storage[7];
812+
final r2 = _m4storage[7];
813+
_m4storage[4] += tx * r2;
814+
_m4storage[5] += ty * r2;
815+
_m4storage[6] += tz * r2;
814816

815817
// Column 3
816-
_m4storage[8] += tx * _m4storage[11];
817-
_m4storage[9] += ty * _m4storage[11];
818-
_m4storage[10] += tz * _m4storage[11];
818+
final r3 = _m4storage[11];
819+
_m4storage[8] += tx * r3;
820+
_m4storage[9] += ty * r3;
821+
_m4storage[10] += tz * r3;
819822

820823
// Column 4
821-
_m4storage[12] += tx * _m4storage[15];
822-
_m4storage[13] += ty * _m4storage[15];
823-
_m4storage[14] += tz * _m4storage[15];
824+
final r4 = _m4storage[15];
825+
_m4storage[12] += tx * r4;
826+
_m4storage[13] += ty * r4;
827+
_m4storage[14] += tz * r4;
824828
}
825829

826830
/// Multiply this by a translation from the left.
@@ -830,24 +834,28 @@ class Matrix4 {
830834
final tz = v3.z;
831835

832836
// Column 1
833-
_m4storage[0] += tx * _m4storage[3];
834-
_m4storage[1] += ty * _m4storage[3];
835-
_m4storage[2] += tz * _m4storage[3];
837+
final r1 = _m4storage[3];
838+
_m4storage[0] += tx * r1;
839+
_m4storage[1] += ty * r1;
840+
_m4storage[2] += tz * r1;
836841

837842
// Column 2
838-
_m4storage[4] += tx * _m4storage[7];
839-
_m4storage[5] += ty * _m4storage[7];
840-
_m4storage[6] += tz * _m4storage[7];
843+
final r2 = _m4storage[7];
844+
_m4storage[4] += tx * r2;
845+
_m4storage[5] += ty * r2;
846+
_m4storage[6] += tz * r2;
841847

842848
// Column 3
843-
_m4storage[8] += tx * _m4storage[11];
844-
_m4storage[9] += ty * _m4storage[11];
845-
_m4storage[10] += tz * _m4storage[11];
849+
final r3 = _m4storage[11];
850+
_m4storage[8] += tx * r3;
851+
_m4storage[9] += ty * r3;
852+
_m4storage[10] += tz * r3;
846853

847854
// Column 4
848-
_m4storage[12] += tx * _m4storage[15];
849-
_m4storage[13] += ty * _m4storage[15];
850-
_m4storage[14] += tz * _m4storage[15];
855+
final r4 = _m4storage[15];
856+
_m4storage[12] += tx * r4;
857+
_m4storage[13] += ty * r4;
858+
_m4storage[14] += tz * r4;
851859
}
852860

853861
/// Multiply this by a translation from the left.
@@ -858,28 +866,32 @@ class Matrix4 {
858866
final tw = v4.w;
859867

860868
// Column 1
861-
_m4storage[0] += tx * _m4storage[3];
862-
_m4storage[1] += ty * _m4storage[3];
863-
_m4storage[2] += tz * _m4storage[3];
864-
_m4storage[3] = tw * _m4storage[3];
869+
final r1 = _m4storage[3];
870+
_m4storage[0] += tx * r1;
871+
_m4storage[1] += ty * r1;
872+
_m4storage[2] += tz * r1;
873+
_m4storage[3] = tw * r1;
865874

866875
// Column 2
867-
_m4storage[4] += tx * _m4storage[7];
868-
_m4storage[5] += ty * _m4storage[7];
869-
_m4storage[6] += tz * _m4storage[7];
870-
_m4storage[7] = tw * _m4storage[7];
876+
final r2 = _m4storage[7];
877+
_m4storage[4] += tx * r2;
878+
_m4storage[5] += ty * r2;
879+
_m4storage[6] += tz * r2;
880+
_m4storage[7] = tw * r2;
871881

872882
// Column 3
873-
_m4storage[8] += tx * _m4storage[11];
874-
_m4storage[9] += ty * _m4storage[11];
875-
_m4storage[10] += tz * _m4storage[11];
876-
_m4storage[11] = tw * _m4storage[11];
883+
final r3 = _m4storage[11];
884+
_m4storage[8] += tx * r3;
885+
_m4storage[9] += ty * r3;
886+
_m4storage[10] += tz * r3;
887+
_m4storage[11] = tw * r3;
877888

878889
// Column 4
879-
_m4storage[12] += tx * _m4storage[15];
880-
_m4storage[13] += ty * _m4storage[15];
881-
_m4storage[14] += tz * _m4storage[15];
882-
_m4storage[15] = tw * _m4storage[15];
890+
final r4 = _m4storage[15];
891+
_m4storage[12] += tx * r4;
892+
_m4storage[13] += ty * r4;
893+
_m4storage[14] += tz * r4;
894+
_m4storage[15] = tw * r4;
883895
}
884896

885897
/// Rotate this [angle] radians around [axis]

lib/src/vector_math_64/matrix4.dart

Lines changed: 52 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -803,24 +803,28 @@ class Matrix4 {
803803
/// Multiply this by a translation from the left.
804804
void leftTranslateByDouble(double tx, double ty, double tz) {
805805
// Column 1
806-
_m4storage[0] += tx * _m4storage[3];
807-
_m4storage[1] += ty * _m4storage[3];
808-
_m4storage[2] += tz * _m4storage[3];
806+
final r1 = _m4storage[3];
807+
_m4storage[0] += tx * r1;
808+
_m4storage[1] += ty * r1;
809+
_m4storage[2] += tz * r1;
809810

810811
// Column 2
811-
_m4storage[4] += tx * _m4storage[7];
812-
_m4storage[5] += ty * _m4storage[7];
813-
_m4storage[6] += tz * _m4storage[7];
812+
final r2 = _m4storage[7];
813+
_m4storage[4] += tx * r2;
814+
_m4storage[5] += ty * r2;
815+
_m4storage[6] += tz * r2;
814816

815817
// Column 3
816-
_m4storage[8] += tx * _m4storage[11];
817-
_m4storage[9] += ty * _m4storage[11];
818-
_m4storage[10] += tz * _m4storage[11];
818+
final r3 = _m4storage[11];
819+
_m4storage[8] += tx * r3;
820+
_m4storage[9] += ty * r3;
821+
_m4storage[10] += tz * r3;
819822

820823
// Column 4
821-
_m4storage[12] += tx * _m4storage[15];
822-
_m4storage[13] += ty * _m4storage[15];
823-
_m4storage[14] += tz * _m4storage[15];
824+
final r4 = _m4storage[15];
825+
_m4storage[12] += tx * r4;
826+
_m4storage[13] += ty * r4;
827+
_m4storage[14] += tz * r4;
824828
}
825829

826830
/// Multiply this by a translation from the left.
@@ -830,24 +834,28 @@ class Matrix4 {
830834
final tz = v3.z;
831835

832836
// Column 1
833-
_m4storage[0] += tx * _m4storage[3];
834-
_m4storage[1] += ty * _m4storage[3];
835-
_m4storage[2] += tz * _m4storage[3];
837+
final r1 = _m4storage[3];
838+
_m4storage[0] += tx * r1;
839+
_m4storage[1] += ty * r1;
840+
_m4storage[2] += tz * r1;
836841

837842
// Column 2
838-
_m4storage[4] += tx * _m4storage[7];
839-
_m4storage[5] += ty * _m4storage[7];
840-
_m4storage[6] += tz * _m4storage[7];
843+
final r2 = _m4storage[7];
844+
_m4storage[4] += tx * r2;
845+
_m4storage[5] += ty * r2;
846+
_m4storage[6] += tz * r2;
841847

842848
// Column 3
843-
_m4storage[8] += tx * _m4storage[11];
844-
_m4storage[9] += ty * _m4storage[11];
845-
_m4storage[10] += tz * _m4storage[11];
849+
final r3 = _m4storage[11];
850+
_m4storage[8] += tx * r3;
851+
_m4storage[9] += ty * r3;
852+
_m4storage[10] += tz * r3;
846853

847854
// Column 4
848-
_m4storage[12] += tx * _m4storage[15];
849-
_m4storage[13] += ty * _m4storage[15];
850-
_m4storage[14] += tz * _m4storage[15];
855+
final r4 = _m4storage[15];
856+
_m4storage[12] += tx * r4;
857+
_m4storage[13] += ty * r4;
858+
_m4storage[14] += tz * r4;
851859
}
852860

853861
/// Multiply this by a translation from the left.
@@ -858,28 +866,32 @@ class Matrix4 {
858866
final tw = v4.w;
859867

860868
// Column 1
861-
_m4storage[0] += tx * _m4storage[3];
862-
_m4storage[1] += ty * _m4storage[3];
863-
_m4storage[2] += tz * _m4storage[3];
864-
_m4storage[3] = tw * _m4storage[3];
869+
final r1 = _m4storage[3];
870+
_m4storage[0] += tx * r1;
871+
_m4storage[1] += ty * r1;
872+
_m4storage[2] += tz * r1;
873+
_m4storage[3] = tw * r1;
865874

866875
// Column 2
867-
_m4storage[4] += tx * _m4storage[7];
868-
_m4storage[5] += ty * _m4storage[7];
869-
_m4storage[6] += tz * _m4storage[7];
870-
_m4storage[7] = tw * _m4storage[7];
876+
final r2 = _m4storage[7];
877+
_m4storage[4] += tx * r2;
878+
_m4storage[5] += ty * r2;
879+
_m4storage[6] += tz * r2;
880+
_m4storage[7] = tw * r2;
871881

872882
// Column 3
873-
_m4storage[8] += tx * _m4storage[11];
874-
_m4storage[9] += ty * _m4storage[11];
875-
_m4storage[10] += tz * _m4storage[11];
876-
_m4storage[11] = tw * _m4storage[11];
883+
final r3 = _m4storage[11];
884+
_m4storage[8] += tx * r3;
885+
_m4storage[9] += ty * r3;
886+
_m4storage[10] += tz * r3;
887+
_m4storage[11] = tw * r3;
877888

878889
// Column 4
879-
_m4storage[12] += tx * _m4storage[15];
880-
_m4storage[13] += ty * _m4storage[15];
881-
_m4storage[14] += tz * _m4storage[15];
882-
_m4storage[15] = tw * _m4storage[15];
890+
final r4 = _m4storage[15];
891+
_m4storage[12] += tx * r4;
892+
_m4storage[13] += ty * r4;
893+
_m4storage[14] += tz * r4;
894+
_m4storage[15] = tw * r4;
883895
}
884896

885897
/// Rotate this [angle] radians around [axis]

0 commit comments

Comments
 (0)