67 lines
1.9 KiB
Dart
67 lines
1.9 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:vector_math/vector_math_64.dart';
|
|
|
|
void main() {
|
|
test('Plane', () {
|
|
var plane = Plane()..setFromComponents(1, 0, 0, 2);
|
|
print(plane.distanceToVector3(Vector3(-1, 0, 0)));
|
|
});
|
|
|
|
test('Check if point is inside frustum', () {
|
|
var frustum = Frustum();
|
|
frustum.plane0.setFromComponents(-0.868, 0, 0.49, 0);
|
|
frustum.plane1.setFromComponents(0.868, 0, 0.49, 0);
|
|
frustum.plane2.setFromComponents(0, -0.919, 0.39, 0);
|
|
frustum.plane3.setFromComponents(0, 0.919, 0.39, 0);
|
|
frustum.plane4.setFromComponents(0, 0, -1, -999.88);
|
|
frustum.plane5.setFromComponents(0, 0, 1, 0.05);
|
|
|
|
var point = Vector3(0, 0, -1);
|
|
|
|
print(frustum.plane0.distanceToVector3(point));
|
|
print(frustum.plane1.distanceToVector3(point));
|
|
|
|
print(frustum.plane2.distanceToVector3(point));
|
|
|
|
print(frustum.plane3.distanceToVector3(point));
|
|
|
|
print(frustum.plane4.distanceToVector3(point));
|
|
|
|
print(frustum.plane5.distanceToVector3(point));
|
|
|
|
print(frustum.containsVector3(point));
|
|
});
|
|
|
|
test("Lukas test", () {
|
|
final frustum = Frustum();
|
|
//left
|
|
frustum.plane0.setFromComponents(-1.0, 0, 0, 1);
|
|
//right
|
|
frustum.plane1.setFromComponents(1.0, 0, 0, 2.0);
|
|
//bottom
|
|
frustum.plane2.setFromComponents(0, -1, 0, 1);
|
|
//top
|
|
frustum.plane3.setFromComponents(0, 1, 0, 1);
|
|
//far
|
|
frustum.plane4.setFromComponents(0, 0, -1, 1);
|
|
//near
|
|
frustum.plane5.setFromComponents(0, 0, 1, 1);
|
|
|
|
// vector3
|
|
final point = Vector3(-0.5, 0, 0);
|
|
|
|
print(frustum.plane0.distanceToVector3(point));
|
|
print(frustum.plane1.distanceToVector3(point));
|
|
|
|
print(frustum.plane2.distanceToVector3(point));
|
|
|
|
print(frustum.plane3.distanceToVector3(point));
|
|
|
|
print(frustum.plane4.distanceToVector3(point));
|
|
|
|
print(frustum.plane5.distanceToVector3(point));
|
|
|
|
print(frustum.containsVector3(point));
|
|
});
|
|
}
|