unarray: cosmetic fix
[iv.d.git] / vmath_tests / sweeps_2.d
blobd55bf25b093bb5643a8c2c1af8360e9a8b88fe52
1 import iv.vfs.io;
2 import iv.vmath;
4 alias AABB = AABBImpl!vec2;
7 void main () {
8 auto a = AABB(vec2(0, 0), vec2(3, 3));
9 auto b = AABB(vec2(5, 5), vec2(8, 8));
10 vec2.Float u0, u1;
11 immutable amove = vec2(10, 10);
12 immutable bmove = vec2(0.1, 0.1);
13 vec2 hitnorm;
14 if (a.sweep(amove, b, &u0, &hitnorm, &u1)) {
15 writeln("COLLIDE; u0=", u0, "; u1=", u1, "; hitnorm=", hitnorm);
16 writeln("u0v for a: ", a.min+amove*u0, " : ", a.max+amove*u0);
17 writeln("u1v for a: ", a.min+amove*u1, " : ", a.max+amove*u1);
18 writeln(" b: ", b.min, " : ", b.max);
22 writeln(a.overlapsSphere(vec2(1, 1), 1));
23 writeln(a.overlapsSphere(vec2(2.5, 2.5), 2));
24 writeln(a.overlapsSphere(vec2(3.5, 3.5), 2));
25 writeln(a.overlapsSphere(vec2(4.5, 3.5), 2));
26 writeln(a.overlapsSphere(vec2(4.5, 5.5), 2));
30 writeln(a.overlaps(Sphere!vec2(vec2(1, 1), 1)));
31 writeln(a.overlaps(Sphere!vec2(vec2(2.5, 2.5), 2)));
32 writeln(a.overlaps(Sphere!vec2(vec2(3.5, 3.5), 2)));
33 writeln(a.overlaps(Sphere!vec2(vec2(4.5, 3.5), 2)));
34 writeln(a.overlaps(Sphere!vec2(vec2(4.5, 5.5), 2)));
37 auto s0 = Sphere!vec2(vec2(1, 1), 3);
38 auto s1 = Sphere!vec2(vec2(7, 7), 3);
40 if (s0.sweep(amove, s1, &u0, &u1)) {
41 writeln("COLLIDE; u0=", u0, "; u1=", u1);
42 writeln("u0v for s0: ", s0.orig*u0, " : ", s0.orig*u0+s0.radius);
43 writeln("u0v for s1: ", s1.orig*u0, " : ", s0.orig*u0+s1.radius);
44 writeln("u1v for s0: ", s0.orig*u1, " : ", s0.orig*u1+s0.radius);
45 writeln("u1v for s1: ", s1.orig*u1, " : ", s1.orig*u1+s1.radius);
48 if (a.sweepLine(amove, vec2(7, 7), vec2(14, 0), &u0, &hitnorm, &u1)) {
49 writeln("COLLIDE; u0=", u0, "; u1=", u1, "; hitnorm=", hitnorm);
50 writeln("u0v for a: ", a.min+amove*u0, " : ", a.max+amove*u0);
51 writeln("u1v for a: ", a.min+amove*u1, " : ", a.max+amove*u1);