37 Commits

Author SHA1 Message Date
David Williams
e89a55d154 Applied default Visual Studio formatting to most files. This is a quick fix for the tabs vs spaces issue that messes up the formatting in any editor (esp. Linux) which handles tabs/spaces differently to Visual Studio. Some parts of the formatting look a bit worse but overall it should be better (or at least more consistent).
I didn't apply the changes to a few macro-heavy files as Visual Studio removes all indentation from macros, whereas the indentation can be handy to see nesting.
2015-12-26 23:11:27 +00:00
David Williams
b3ca051878 Changed 'embedded' licenses from zlib to MIT. 2015-12-26 21:45:41 +00:00
David Williams
28a3d78354 Removed old deprecated code. 2015-11-30 07:50:32 +00:00
David Williams
a34eda6250 Simple optimization. 2015-05-24 21:17:09 +02:00
David Williams
304e3d8f7a Faster tests when moving sampler. 2015-05-23 21:22:29 +02:00
Matt Williams
32c30471a6 Make m_uChunkSideLengthMinusOne const 2015-04-14 15:01:10 +01:00
David Williams
d521b08cf9 Added comment. 2015-04-04 09:57:31 +02:00
David Williams
dec06bcfe4 Added caching of variable. 2015-04-04 09:49:12 +02:00
David Williams
77db90ac30 Removed unneeded variable. 2015-04-04 09:42:46 +02:00
David Williams
0d36c416f2 Tidied up macros. 2015-04-04 09:18:51 +02:00
David Williams
3ca0222b19 Applied simplified test when going in the negative direction as well. 2015-04-04 00:08:20 +02:00
David Williams
d1bcaec2c5 This commit knocks about 30% off the run time of the sampler tests by using a more efficient check for whether we are near the edge of the chunk. 2015-04-02 23:11:19 +02:00
David Williams
135aa96bdf Further fixes for move...() functions. 2015-04-01 23:34:57 +02:00
David Williams
056cae39b5 Fixed sampler move...() functions to work with Morton ordering. 2015-04-01 22:57:22 +02:00
David Williams
b518978cd6 Enlarged lookup tables to 256 elements. 2015-04-01 22:34:42 +02:00
David Williams
65f39e7b57 Made the values signed ints, as otherwise the casting was doing something strange on 64-bit systems. 2015-04-01 16:29:19 +02:00
David Williams
5d220c5d57 Added extra lookup tables to avoid the need to multiply y/z deltas by 2/4 each time. 2015-03-31 23:58:01 +02:00
David Williams
60612c5583 Implemented use of delta for the rest of the peek functions. 2015-03-31 19:55:22 +02:00
David Williams
afd0650230 Implemented peeking in positive x and negative x directions using Matt's delta lookup table. 2015-03-31 16:33:56 +02:00
David Williams
120b8e84cc Added position in chunk and pointer to current chunk data to sampler. 2015-03-30 23:33:51 +02:00
David Williams
7f96005985 Commented out optimized path in sampler as it doesn't work now that we are using Morton ordering for the data in chunks. However, we can probably reinstate such a fast path if we give some thought as to how it should be done. 2015-03-29 09:58:28 +02:00
David Williams
b027cf1a0c Moved common code into function. 2015-03-21 16:22:23 +01:00
David Williams
778238d11d Moved the test for whether we are accessing the same voxel as last time. 2015-03-21 14:57:48 +01:00
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
ceeb8f70ce Revert "Going back to building key by shifting instead of using bitfield."
This reverts commit 0d638f98370907b5ffed6b3460e320f4f9b2cf52.
2015-03-21 14:40:49 +01:00
David Williams
0c619ebec7 Revert "Added typedef for ChunkKey."
This reverts commit 905ec27f47a3e2dc1cba3a3a384b2c7532dab03d.
2015-03-21 14:40:30 +01:00
David Williams
905ec27f47 Added typedef for ChunkKey. 2015-03-21 08:12:02 +01:00
David Williams
0d638f9837 Going back to building key by shifting instead of using bitfield. 2015-03-21 08:05:58 +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
1213a4047a Fully stripped out references to wrap modes. 2015-03-04 23:13:37 +01:00
David Williams
bd6efe8c3c Stuff related to valid regions is being moved from BaseVolum to RawVolume, as PagedVolume is now infinite. 2015-03-04 22:42:14 +01:00
David Williams
d3618ca688 Removed tracking of whether the PagedVolume::Sampler is currently valid. 2015-03-01 23:32:22 +01:00
David Williams
1853a0fc4e Revert "More work on removing wrap modes."
This reverts commit 6817899e6a9f18d708597f6cdabfffed7d4f671f.
2015-02-28 09:58:41 +01:00
David Williams
6817899e6a More work on removing wrap modes. 2015-02-27 15:12:11 +01:00
David Williams
3ace735619 Work on removing wrap modes. 2015-02-27 13:48:31 +01:00
David Williams
64d010527b Removed old getVoxelAt()/setVoxelAt() functions. they've been flagged as deprecated for a while now, and are replaced by just getVoxel()/setVoxel(). 2015-02-27 11:07:15 +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