09d5624cc8
Pass things as const reference to the extractor
2014-01-16 17:36:13 +00:00
cc1e1e477c
Extractor can now use a Controller to define voxel type and threshold
...
In future, it will also be used to extract pre-computed gradients and
intersection points.
2014-01-11 23:57:34 +00:00
4e13f0afa5
Checking for zero exactly gives better solutions to QEF
2014-01-11 22:23:55 +00:00
81ce31432c
Rearrange some things to keep definitions in sensible places
2014-01-11 22:23:14 +00:00
6294013709
Use the C++ versions of these functions
2014-01-11 20:29:54 +00:00
2cfaf241c8
Explicitly cast these to floats
2014-01-11 20:28:53 +00:00
63f0def22f
Require that the voxel is a signed type
...
This means that a static_cast<float> is no longer needed to calculate the
gradient. A static_assert provides user feedback.
The next step here would be to use a MarchingCubesController-type solution
to define the density value from a voxel. This way, also the gradient can
be stored.
2014-01-11 19:59:19 +00:00
af308cb187
Change logic for calculating whether there was an intersection
2014-01-11 19:55:56 +00:00
1d7d66a1de
Add some (commented-out) logging for timings
2014-01-10 19:14:01 +00:00
c92b933254
A few consistency tweaks
2014-01-10 19:13:21 +00:00
ac3fb84055
Calculate gradients first to reduce number of calculations
...
Gives about a 2× speedup.
2014-01-10 19:12:45 +00:00
20b8b8fc3d
Add const. Gives a few percent performance improvement.
2014-01-09 23:00:25 +00:00
601b2a6d21
Improved performance of Dual Contouring
...
Performance is up from 10 times slower than MC to only 3 times.
About a third of that time is spent calculating gradients.
2014-01-09 20:07:15 +00:00
7877600538
Add first draft of Dual Contouring surface extractor
2014-01-07 17:18:01 +00:00
3db5e1b2f6
Added microsecond precision to timers.
2013-11-14 15:35:41 +01:00
5294efc473
Clear the 'last accessed block' flag before flushing the volume.
2013-11-12 16:57:11 +01:00
85d8bdb30c
Rearranged some code to try and improve the robustness of block paging and compression.
2013-11-12 16:47:57 +01:00
1c5a3f7ef5
Reverted attempts to suppress GCC warnings and just removed the offending asserts instead.
...
Revert "Added asserts to catch invalid material/density values."
This reverts commit 8943822046
.
2013-10-25 12:44:40 +02:00
afddb59d69
Reverted attempt to avoid warnings. Just suppressed them instead.
...
Revert "Attempting to work around a GCC warning."
This reverts commit 3fe92086f1
.
2013-10-24 14:37:18 +02:00
3fe92086f1
Attempting to work around a GCC warning.
2013-10-23 16:33:42 +02:00
8943822046
Added asserts to catch invalid material/density values.
2013-10-20 09:12:37 +02:00
29bded222f
Removed unnecessary error handling.
2013-10-04 13:56:31 +02:00
21001d6862
Removed wrapper for class which was removed.
2013-10-04 13:35:31 +02:00
1531e1cd00
Switched some code to size_t for compatibility with Miniz.
2013-10-04 13:30:30 +02:00
4d683627da
Added some comments.
2013-10-03 16:56:14 +02:00
d17c1b404b
Bit more tidying of Miniz code.
2013-10-03 16:45:46 +02:00
ef615cc838
Added missing file.
2013-10-03 16:26:43 +02:00
498f21f63f
Replaced arrays with std::vector.
2013-10-02 16:48:30 +02:00
a4e09c2481
Small fixes (including crash fix).
2013-10-02 15:36:21 +02:00
29ca1e763f
Renamed functions to avoid confusion.
2013-10-02 15:09:55 +02:00
513c3a90b0
Rearranging some miniz code to simplify it a bit.
2013-10-01 16:33:39 +02:00
319a0ce352
Removed old compression classes.
2013-10-01 15:58:32 +02:00
f63bb510b3
Merged some code from MinizCompressor into MinizBlockCompressor. We don't really need two separate classes for this stuff.
2013-10-01 15:51:23 +02:00
4ee2a61a15
Added a siply wrapper .h/cpp pair to abstract away the fact that miniz in provided as a single .c file which we include directly, and to avoid linker problems.
2013-10-01 15:33:40 +02:00
f81b42747b
Implement Timer for C++11
...
This uses std::chrono::system_clock
2013-08-22 20:40:45 +01:00
55dc066a3f
Fixed bug with MinizBlockCompressor always saving out 10,000 bytes of data.
2013-08-19 16:27:52 +02:00
07f1ca42d2
Uncompressed blocks are now flushed before compressed blocks.
2013-08-12 21:04:55 +02:00
6fb30a40f5
Bringing across Region enhancements from Cubiquity branch.
2013-08-09 20:39:17 +02:00
b9546ddcfa
Extra checks in during marching cubes to try and catch corrupt data.
2013-08-09 14:09:59 +02:00
7c74e1faff
Move Timer.h to correct location
...
Also add a missing semi-colon.
2013-08-08 10:42:57 +01:00
2f99964606
Tidying timer.
2013-08-07 23:24:20 +02:00
9ad4c3fcf7
Initial checkin of Timer class.
2013-08-07 23:07:26 +02:00
a308102585
VS2012 compile warning fix.
2013-08-07 14:53:08 +02:00
acf5bef5e7
Merge branch 'feature/large-volume-tidying' into develop
2013-08-01 16:34:38 +02:00
e485265dd8
Fixes to allow the SWIG/Python bindings to build again.
2013-08-01 16:08:44 +02:00
dcf86a905c
Split Block, CompressedBlock and UncompressedBlock into separate files. It's tidier, and maybe better for SWIG?
2013-08-01 15:32:12 +02:00
6f17e0faa6
The 'Block' class is no longer considered just to be an implementation details of LargeVolume. Users may need to interact with them directly of they implement their own paging or compression systems.
2013-08-01 15:19:10 +02:00
9503d975c1
GCC compile fixes.
2013-07-31 16:37:39 +02:00
4478e365c9
Removed RLECompressor as the code is now in RLEBlockCompressor.
...
Things are starting to get back under control. All tests pass, and all examples except PagingExample work.
2013-07-30 17:01:27 +02:00
fa8813ba86
FilePager now cleans up after itself.
2013-07-30 16:34:40 +02:00