24 Commits

Author SHA1 Message Date
David Williams
d477bec540 Revert "Replaced Vector3D with integer as key to map."
This reverts commit e82d6beca1a5cf7e81c546e6dd0243f54ff5d3e6.
2015-03-21 14:41:15 +01:00
David Williams
e82d6beca1 Replaced Vector3D with integer as key to map.
Chunks of voxel data are stored in a map, and it is quite common to need to search the map for a particular chunk. The key type used to be a Vector3D (i.e. the position of the chunk in 3D space) which makes conceptual sense but is relatively slow. Using a Vector3D as a key seems to have overhead, probably in terms of copying and performing comparisons. It seems to be significantly faster to use an integer as a key, so we now take the 3D position and pack it into a single integer by bitshifting.

Naturally this reduces the range of positions we can store - a 32-bit int can only encode 3 x 10-bit values, which means our volume can only be 1024 chunks in each direction (with a chunk often being 32x32x32 voxels). This should still be large enough for most uses, but an upcoming change will allow 64-bit keys to be used (at least on 64-bit builds) which then allows 21 bits of precision  per component. This is so large that it's almost infinite for any practical purposes.
2015-03-15 09:32:42 +01:00
David Williams
e7f41b7e0f More fixing/tidying of test, related to removing volume size limit. 2015-03-01 08:14:30 +01:00
David Williams
f262c0e8f5 Revert "Removing tests which depend on wrap modes, in preparation for removing the wrap modes themselves."
This reverts commit 917d3b8c953c7fa6ceb3ab232dab54b78d57751c.
2015-02-28 09:59:28 +01:00
David Williams
416ae8eb7f Revert "Removed 'AllInternal' part of function name as it is now redundant."
This reverts commit 42e8b2cf4478b40663437df724a2cd292255671f.
2015-02-28 09:59:11 +01:00
David Williams
42e8b2cf44 Removed 'AllInternal' part of function name as it is now redundant. 2015-02-26 22:15:19 +01:00
David Williams
917d3b8c95 Removing tests which depend on wrap modes, in preparation for removing the wrap modes themselves. 2015-02-26 17:07:00 +01:00
David Williams
049a77cd0c Moved all headers from 'PolyVoxCore' to 'PolyVox', as we no longer have the core/util distinction. 2015-02-07 17:26:36 +01:00
David Williams
4779f91787 TestVolume unit test now tests PagedVolume rather than SimpleVolume and LargeVolume. 2014-09-20 14:49:12 +02:00
David Williams
4781ca5c42 Work on removing compression from LargeVolume. 2014-09-12 15:36:28 +02:00
David Williams
a4fc814a51 Rearranging and renaming some code. 2013-07-29 16:04:01 +02:00
Daviw Williams
e38aa3b1b9 Unit tests now test FilePager. 2013-06-28 16:16:08 +02:00
Daviw Williams
62370868c8 Reverted accidental changes to tests.
Updated comments in compression code.
2013-02-25 17:06:12 +01:00
Daviw Williams
f70498e806 Removed old code. 2013-02-25 16:34:21 +01:00
Daviw Williams
50c1c7c64b Removed setCompressionEnabled() from LargeVolume. 2013-02-07 15:55:10 +01:00
Daviw Williams
a81ec68714 Work on compression interface. 2013-01-31 16:35:50 +01:00
Daviw Williams
c7937b176d Very bad (but functional!) initial implementation of LargeVolume compression with miniz. 2013-01-10 16:20:29 +01:00
Daviw Williams
4b45bb297f More volume unit tests - now iterating backwards as well as forwards. 2013-01-02 17:05:35 +01:00
Daviw Williams
97024ba9b2 More volume test configurations. 2013-01-02 14:48:30 +01:00
David Williams
d8da6a7b7f Refactoring the volume unit test code, trying to get some performance benchmarks. Unit tests are currently not passing. 2012-12-11 21:57:30 +00:00
David Williams
c37997bfe2 Updated new volumes test. 2012-12-02 14:02:50 +01:00
David Williams
9e8e976bfe Work on new unit test for volumes. 2012-12-02 09:43:00 +01:00
Matt Williams
7597b56620 Improve test macro.
Add include guards to the test header.
2010-02-26 16:11:13 +00:00
Matt Williams
fe3961c041 Use QTestLib to harness the tests. 2010-02-25 12:20:44 +00:00