Commit graph

47 commits

Author SHA1 Message Date
Bill Currie
66dffef936 Get trace_to_leaf working a little better.
I think the recursion decision needs a little more work, but this gets the
current tests working (though there's still a failure due to fp math).
2011-12-07 15:31:33 +09:00
Bill Currie
ccbc69a7f5 Carve out some more cave and add some more tests.
One of them even breaks the code :)
2011-12-07 13:31:21 +09:00
Bill Currie
9d2914474c Fix the edge vectors when bounding the portal points. 2011-12-07 12:16:58 +09:00
Bill Currie
632817fed5 Fail properly when the portals are bogus. 2011-12-06 20:48:31 +09:00
Bill Currie
f496f4d260 Whee, more tests that break things :) 2011-12-06 20:47:57 +09:00
Bill Currie
9a9079a2b3 Correct the start-solid in a corner test.
It turns out that the box trace CAN get out of the solid from that location
(though a similar point trace can not). This is because of my decision to
allow non-points to touch a plane from either side without crossing the
plane, whereas a point touching a plane is always considered to be on the
front side of the plane as there is no further information to disambiguate
on which side of the plane the point is.
2011-12-05 22:11:58 +09:00
Bill Currie
3bd029d599 Make the contents flags clear.
I got tired of not being able to remember which flag was which in the
output.
2011-12-05 22:11:47 +09:00
Bill Currie
8e512a087c More failing contents tests.
However, I have a plan :)
2011-12-05 09:03:04 +09:00
Bill Currie
b4a497baab Correctly restore the saved start point.
This fixes the point test failures.
2011-12-04 21:12:12 +09:00
Bill Currie
e5903a60ff Put the mistaken test case back in. 2011-12-04 11:00:38 +09:00
Bill Currie
cdfc922bce Fix a silly test case error. 2011-12-04 10:47:52 +09:00
Bill Currie
487a6b20ab Test collisions with a ridge smaller than the box.
Whee, found a failing test case :)
2011-12-04 09:02:12 +09:00
Bill Currie
55eb88b52c Create some tests for MOD_HullContents. 2011-12-03 22:18:43 +09:00
Bill Currie
581972c905 More file splitting for code reuse. 2011-12-03 21:13:01 +09:00
Bill Currie
dadfb78992 Split out the hull data so it can be used in other tests. 2011-12-03 20:23:42 +09:00
Bill Currie
13d37f4838 Add a bunch of in-solid tests.
Tests where the box is only partially in a solid tend to fail (particularly
when the solid is on the back side of the split plane).
2011-11-28 20:56:21 +09:00
Bill Currie
50b08c98fa Add some snug-fit tests and fix the uncovered bugs.
The tests involve the box fitting into a hole with zero slop (this would be
impossible with point clipping).
2011-11-28 20:56:21 +09:00
Bill Currie
985667ecba Fix plane touching box backsideness.
Because a box has size, even when touching a plane, the side on which the
box is can be determined (unlike a point).
2011-11-28 20:56:21 +09:00
Bill Currie
869cd19260 Box traces can now graze a corner. 2011-11-28 20:56:21 +09:00
Bill Currie
45d55d7e9a Test the simple wedge. 2011-11-28 20:56:21 +09:00
Bill Currie
ab2ec644d6 Clip the portals when running the test cases.
When the portals are too big, floats break down and break the tests. This
might not be much of an issue in real maps, but my tests use "infinite"
planes.
2011-11-28 20:56:20 +09:00
Bill Currie
174f381125 Add some more tests for the ramp.
These tests pass, but show the basic polygon testing working (just not the
collision handling and thus fraction determination).
2011-11-28 20:56:20 +09:00
Bill Currie
750b5ba0ed Be a little more lenient with float comparisons.
Unfortunately, Pythagorus and binary don't play well together, so rounding
errors are inevetible when testing with a slope. However, 1e-6 seems to be
a good epsilon (printf's %g hides it nicely :).
2011-11-28 20:56:20 +09:00
Bill Currie
cde0bbb807 For now, don't use box clipping for point traces.
Until I figure out how I want to handle zero sized boxes, don't test them.
2011-11-28 20:54:35 +09:00
Bill Currie
297275e3de Create edge information for the portals. 2011-11-28 20:54:35 +09:00
Bill Currie
d61cb25a44 Add code to rebuild the bsp brushes.
Names and locations of declarations are still up in the air, but things
seem to be working assuming my test code is correct.
2011-11-28 20:54:35 +09:00
Bill Currie
853bf13d9e Move the winding code into libQFmodels. 2011-11-28 20:54:35 +09:00
Bill Currie
2f23cfa4d0 Add a new (failing) test case.
This one demonstrates the need for more information in the bsp tree
(surface polygons). When the box collides with a corner where one side is
flat and the other angled, but there's a partition plane cutting the two,
the box can instead collide with the angled side before it hits the corner.
2011-11-28 20:54:34 +09:00
Bill Currie
0cf5dec5bb Fix the covered step tests.
However,  there is still a problem with moves where the box is always cut
by the plane: both sides need to be tested (done), but when the first side
checked allows longer motion than the second, but still collides, only the
first side is checked. The shorter motion is required.
2011-11-28 20:54:34 +09:00
Bill Currie
8cc320b7ef Move the start point to the near side of the crossed plane.
I'm not sure the end point needs to be moved at all, but I'll leave it
alone for now. I have a couple of failing test cases that seem to be caused
by not handling moves where the box is always cut by the plane.
2011-11-28 20:54:34 +09:00
Bill Currie
fa6390a46a Correct the sign for the shift in frac.
However, this is not entirely correct as the new start point when testing
the other side of the plane also needs to be calculated.
2011-11-28 20:54:34 +09:00
Bill Currie
b82d9f5894 Another test, another bug.
Fix an incorrect test using offset (forgot to negate).
2011-11-28 20:54:34 +09:00
Bill Currie
03abb3b27d Add support for ellipsoids.
Not that boxes work yet, but the fix is the same.
2011-11-28 20:54:33 +09:00
Bill Currie
b4da9241f6 Make a fresh start on box clipping.
I even have a failing test to fix :)
2011-11-28 20:54:33 +09:00
Bill Currie
940476dce1 Do some renaming to make things a little clearer. 2011-10-02 15:07:36 +09:00
Bill Currie
a356ce6572 Assume the trace will be allsolid.
Rather than setting allsolid when the trace fails to leave solid space,
clear it when the trace enters non-solid space. This is necessary because
the trace might visit only one node and thus the failure to leave solid
space will not be detected. This fixes the problem with hipnotic's bobbing
water.
2011-09-27 17:14:42 +09:00
Bill Currie
9c6693d567 Correct hull3 and its tests.
I'd gotten the solid/empty parts backwards.
2011-09-27 17:11:57 +09:00
Bill Currie
3e74aa5303 Add trace-qf-bad.c to Makefile.am and testclip.c. 2011-09-27 17:09:04 +09:00
Bill Currie
e23ee07b6f Ensure id's trace is properly initialized. 2011-09-27 15:38:28 +09:00
Bill Currie
32ff639bf3 Add an old qf version of trace.c
This version is broken (it's the one "fixed" by commit 981622f9), but it
does behave correctly for hipnotic's bobbing water. The question is, why?
2011-09-27 13:00:19 +09:00
Bill Currie
a7482570b6 Document the geometry in the tests. 2011-09-27 12:30:21 +09:00
Bill Currie
aa6b7ef7e8 Add some water based tests.
Unfortunatly, they haven't uncovered the bug.
2011-09-26 21:02:54 +09:00
Bill Currie
800e8cb3da Make the id trace code more readily usable in the engine. 2011-09-26 19:56:00 +09:00
Bill Currie
ae0dc6f06b Disable the "shouldn't happen" code.
It causes the tests to fail, and doesn't affect the problem I'm currently
facing.
2011-09-26 19:56:00 +09:00
Bill Currie
baf9b7c181 Make the test nodes a little easier to read. 2011-09-26 19:56:00 +09:00
Bill Currie
b18ff4ed3e Move test-qfs.c into a test directory.
Same as before: avoiding -prefic-pic issues.

Also, catch some minor snafus found in the previous commit. With this, make
distcheck passes again :)
2011-06-12 16:34:15 +09:00
Bill Currie
c522726021 Move the testclip program into its own directory.
Same as with the audio test program, this is to avoid issues with
-prefer-pic.
2011-06-12 16:12:52 +09:00