blob: 747db955c547662a8b050488b4a5ffcc7fd5a48a [file] [log] [blame]
// Copyright (c) 2015, Google Inc. Please see the AUTHORS file for details.
// All rights reserved. Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
import 'package:test/test.dart';
import 'package:vector_math/vector_math.dart';
import 'test_utils.dart';
void testPlaneNormalize() {
final plane = Plane.normalconstant($v3(2.0, 0.0, 0.0), 2.0);
plane.normalize();
expect(plane.normal.x, equals(1.0));
expect(plane.normal.y, equals(0.0));
expect(plane.normal.z, equals(0.0));
expect(plane.normal.length, equals(1.0));
expect(plane.constant, equals(1.0));
}
void testPlaneDistanceToVector3() {
final plane = Plane.normalconstant($v3(2.0, 0.0, 0.0), -2.0);
plane.normalize();
expect(plane.distanceToVector3($v3(4.0, 0.0, 0.0)), equals(3.0));
expect(plane.distanceToVector3($v3(1.0, 0.0, 0.0)), equals(0.0));
}
void testPlaneIntersection() {
final plane1 = Plane.normalconstant($v3(1.0, 0.0, 0.0), -2.0);
final plane2 = Plane.normalconstant($v3(0.0, 1.0, 0.0), -3.0);
final plane3 = Plane.normalconstant($v3(0.0, 0.0, 1.0), -4.0);
plane1.normalize();
plane2.normalize();
plane3.normalize();
final point = Vector3.zero();
Plane.intersection(plane1, plane2, plane3, point);
expect(point.x, equals(2.0));
expect(point.y, equals(3.0));
expect(point.z, equals(4.0));
}
void main() {
group('Plane', () {
test('Normalize', testPlaneNormalize);
test('DistanceToVector3', testPlaneDistanceToVector3);
test('Intersection', testPlaneIntersection);
});
}