Fix Quad.copy constructor not copying point3 correctly (#230)
Fixes #221
diff --git a/lib/src/vector_math/quad.dart b/lib/src/vector_math/quad.dart
index 723e9f3..7d322ad 100644
--- a/lib/src/vector_math/quad.dart
+++ b/lib/src/vector_math/quad.dart
@@ -35,7 +35,7 @@
: _point0 = Vector3.copy(other._point0),
_point1 = Vector3.copy(other._point1),
_point2 = Vector3.copy(other._point2),
- _point3 = Vector3.copy(other._point2);
+ _point3 = Vector3.copy(other._point3);
/// Create a quad by four points.
Quad.points(Vector3 point0, Vector3 point1, Vector3 point2, Vector3 point3)
diff --git a/lib/src/vector_math_64/quad.dart b/lib/src/vector_math_64/quad.dart
index df160c4..3ef31ef 100644
--- a/lib/src/vector_math_64/quad.dart
+++ b/lib/src/vector_math_64/quad.dart
@@ -35,7 +35,7 @@
: _point0 = Vector3.copy(other._point0),
_point1 = Vector3.copy(other._point1),
_point2 = Vector3.copy(other._point2),
- _point3 = Vector3.copy(other._point2);
+ _point3 = Vector3.copy(other._point3);
/// Create a quad by four points.
Quad.points(Vector3 point0, Vector3 point1, Vector3 point2, Vector3 point3)
diff --git a/test/quad_test.dart b/test/quad_test.dart
index 4725230..051a48f 100644
--- a/test/quad_test.dart
+++ b/test/quad_test.dart
@@ -8,6 +8,17 @@
import 'test_utils.dart';
+void testQuadCopy() {
+ final quad = Quad.points(Vector3(1.0, 0.0, 1.0), Vector3(0.0, 2.0, 1.0),
+ Vector3(1.0, 0.0, 0.0), Vector3(0.0, 2.0, 0.0));
+ final quadCopy = Quad.copy(quad);
+
+ relativeTest(quadCopy.point0, quad.point0);
+ relativeTest(quadCopy.point1, quad.point1);
+ relativeTest(quadCopy.point2, quad.point2);
+ relativeTest(quadCopy.point3, quad.point3);
+}
+
void testQuadCopyNormalInto() {
final quad = Quad.points(Vector3(1.0, 0.0, 1.0), Vector3(0.0, 2.0, 1.0),
Vector3(1.0, 0.0, 0.0), Vector3(0.0, 2.0, 0.0));
@@ -39,6 +50,7 @@
void main() {
group('Quad', () {
+ test('Copy', testQuadCopy);
test('CopyNormalInto', testQuadCopyNormalInto);
test('CopyTriangles', testQuadCopyTriangles);
});