0e995b5140
Fixed some compiler warnings.
2015-03-21 07:40:32 +01:00
69f6f4ac37
Decided to always use a 64-bit chunk key, rather than trying to make it configurable.
2015-03-20 23:09:38 +01:00
6419c5827b
Added typedef for chunk key type.
2015-03-20 16:59:25 +01:00
8bd8f8ba7a
Work on using a bitfield to set up chunk key.
2015-03-20 15:48:46 +01:00
cd48c6f611
Made method const.
2015-03-19 23:08:35 +01:00
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
d305038c27
Replaced loop with fill.
2015-03-11 23:47:32 +01:00
741234e4a5
Small speed improvement by storing variables separately (rather than in Vector3D) to void construction/comparison overhead.
2015-03-09 23:52:56 +01:00
99d0a226c8
Tidying up.
2015-03-08 23:48:55 +01:00
72abcd8e9c
Chunks are now stored with unique_ptr rather than shared_ptr.
2015-03-08 23:30:12 +01:00
639eb6620f
Add 'this' pointer disambiguation.
...
I guess this didn't fail on MSVC due to the different name lookup rules
the use.
Fixes issue 56.
2015-03-08 12:51:00 +00:00
c98ad8c948
Merge branch 'feature/remove-wrap-modes' into develop
2015-03-07 21:19:21 +01:00
43c203a2c9
Removed declaration of function for which we already removed the definition.
2015-03-07 17:42:31 +01:00
aaa6b1dc15
A PagedVolume must now always be provided with a Pager when it is constructed.
2015-03-07 17:01:07 +01:00
5a5b2b3875
Spotted an optimization for computing the voxel position.
2015-03-06 23:03:38 +01:00
2c0d9cb9e7
Moved contents of initialize() into constructor.
2015-03-05 23:51:16 +01:00
c804190d84
Removed the ability to set the target memory usage after construction, and this is now just done through the constructor. I don't think the functionality was useful, and this simplifies more logic.
2015-03-05 23:42:50 +01:00
89550fcd44
Fixed warnings.
2015-03-05 00:04:22 +01:00
61bffc9783
Removed some not useful functions.
2015-03-04 23:31:24 +01:00
1213a4047a
Fully stripped out references to wrap modes.
2015-03-04 23:13:37 +01:00
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
d3618ca688
Removed tracking of whether the PagedVolume::Sampler is currently valid.
2015-03-01 23:32:22 +01:00
396d1cfc59
Ambient occlusion test now uses RawVolume, as it need a fixed size volume to create a temporary array.
2015-03-01 09:51:45 +01:00
e7f41b7e0f
More fixing/tidying of test, related to removing volume size limit.
2015-03-01 08:14:30 +01:00
bfc7dfdc1b
Removed the ability to specify a region in the PagedVolume's constructor, and updated the tests and examples where required.
2015-02-28 23:31:23 +01:00
7e03c3e05b
Compile fixes and tweaks for tests.
2015-02-28 13:43:17 +01:00
09c15173f9
Simplify -std=c++0x flag logic
...
This could be improved in CMake 3.1 by using CXX_STANDARD and
CXX_STANDARD_REQUIRED (see http://stackoverflow.com/a/20165220/96704 )
2015-02-28 10:55:01 +00:00
41d5ea6178
Move FindQt5Test logic inside tests directory
2015-02-28 10:40:05 +00:00
d9dae773dc
Simplify the BUILD_EXAMPLES logic
2015-02-28 10:24:32 +00:00
32b07659a8
Move all the examples' CMake logic into the examples directory
2015-02-28 10:19:17 +00:00
969310f327
Make sure we're notifiying if the docs are available
2015-02-28 10:17:56 +00:00
65f966555d
Move Doxygen stuff into include directory where it is actually used
2015-02-28 10:06:56 +00:00
cb1cd58288
Remove all mention of LIBRARY_TYPE as PolyVox is now header-only
2015-02-28 09:56:12 +00:00
f262c0e8f5
Revert "Removing tests which depend on wrap modes, in preparation for removing the wrap modes themselves."
...
This reverts commit 917d3b8c95
.
2015-02-28 09:59:28 +01:00
416ae8eb7f
Revert "Removed 'AllInternal' part of function name as it is now redundant."
...
This reverts commit 42e8b2cf44
.
2015-02-28 09:59:11 +01:00
1853a0fc4e
Revert "More work on removing wrap modes."
...
This reverts commit 6817899e6a
.
2015-02-28 09:58:41 +01:00
6817899e6a
More work on removing wrap modes.
2015-02-27 15:12:11 +01:00
3ace735619
Work on removing wrap modes.
2015-02-27 13:48:31 +01:00
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
42e8b2cf44
Removed 'AllInternal' part of function name as it is now redundant.
2015-02-26 22:15:19 +01:00
917d3b8c95
Removing tests which depend on wrap modes, in preparation for removing the wrap modes themselves.
2015-02-26 17:07:00 +01:00
7ac652e92b
More compile fixes for GCC. Because our openGLWidget is now templatized we need to explicitly use 'this->' to access base members (and the gl...() functions are provided by the base class in Qt). See http://stackoverflow.com/a/15505043
2015-02-25 16:11:22 +01:00
f7af804ccf
Compile fix for GCC.
2015-02-25 15:57:59 +01:00
1f3dc558da
Added missing header.
2015-02-24 23:46:35 +01:00
2ec29e33b7
Tidying up OpenGLWidget.
2015-02-24 23:44:04 +01:00
fbb7ff4728
Merge branch 'feature/example-refactor' into develop
2015-02-24 22:23:57 +01:00
e985dce075
Templatized OpenGLWidget so users can specify the version of OpenGL to support.
2015-02-24 22:17:46 +01:00
d3b71a92b9
Tidying up code.
2015-02-24 16:53:34 +01:00
9547824f14
Renamed matrices. I quite like names such as 'modelToWorldMatrix' and 'cameraToClipMatrix' because they were very explicit about what the transform was doing. However OpenGL uses common terms such as 'model matrix' and 'projection matrix', so other people wlil be able to follow the code more easily if we stick to these conventions.
2015-02-24 16:08:55 +01:00
7262ca313e
More work splitting example framework into two pieces.
2015-02-20 16:56:03 +01:00