1557 Commits

Author SHA1 Message Date
Matt Williams
54f0856dbe Merge branch 'develop' into feature/dualcontouring 2014-01-27 19:42:27 +00:00
Matt Williams
832a45013a Simplify test creation and add XML output option 2014-01-27 19:39:50 +00:00
David Williams
a9238051fa Changed some logging statements to macros which can be #defined out. 2014-01-26 23:53:10 +01:00
Daviw Williams
f58161c748 Added logging macros which can be disabled at compile time. 2014-01-24 16:35:58 +01:00
Daviw Williams
c177891e5d Separated logging code into different .cpp/.h files. 2014-01-24 15:21:59 +01:00
Daviw Williams
8d5f6af7cd Compile fix for VS2012, which now builds successfully. 2014-01-24 13:53:44 +01:00
Matt Williams
09d5624cc8 Pass things as const reference to the extractor 2014-01-16 17:36:13 +00:00
Matt Williams
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
Matt Williams
4e13f0afa5 Checking for zero exactly gives better solutions to QEF 2014-01-11 22:23:55 +00:00
Matt Williams
81ce31432c Rearrange some things to keep definitions in sensible places 2014-01-11 22:23:14 +00:00
Matt Williams
6294013709 Use the C++ versions of these functions 2014-01-11 20:29:54 +00:00
Matt Williams
2cfaf241c8 Explicitly cast these to floats 2014-01-11 20:28:53 +00:00
Matt Williams
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
Matt Williams
af308cb187 Change logic for calculating whether there was an intersection 2014-01-11 19:55:56 +00:00
Matt Williams
1d7d66a1de Add some (commented-out) logging for timings 2014-01-10 19:14:01 +00:00
Matt Williams
c92b933254 A few consistency tweaks 2014-01-10 19:13:21 +00:00
Matt Williams
ac3fb84055 Calculate gradients first to reduce number of calculations
Gives about a 2× speedup.
2014-01-10 19:12:45 +00:00
Matt Williams
20b8b8fc3d Add const. Gives a few percent performance improvement. 2014-01-09 23:00:25 +00:00
Matt Williams
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
Matt Williams
7877600538 Add first draft of Dual Contouring surface extractor 2014-01-07 17:18:01 +00:00
David Williams
d96dcaa531 Another Mac/Clang fix. 2013-12-31 14:53:53 +01:00
David Williams
1cb486cb33 Fixed Clang detection. 2013-12-31 11:19:00 +01:00
Daviw Williams
3db5e1b2f6 Added microsecond precision to timers. 2013-11-14 15:35:41 +01:00
Daviw Williams
5294efc473 Clear the 'last accessed block' flag before flushing the volume. 2013-11-12 16:57:11 +01:00
Daviw Williams
85d8bdb30c Rearranged some code to try and improve the robustness of block paging and compression. 2013-11-12 16:47:57 +01:00
Daviw Williams
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 89438220464778d167d86bb59e095a85ccdba080.
2013-10-25 12:44:40 +02:00
Daviw Williams
afddb59d69 Reverted attempt to avoid warnings. Just suppressed them instead.
Revert "Attempting to work around a GCC warning."

This reverts commit 3fe92086f1bdde06eb3e9bd812fc19a279154458.
2013-10-24 14:37:18 +02:00
Daviw Williams
3fe92086f1 Attempting to work around a GCC warning. 2013-10-23 16:33:42 +02:00
David Williams
8943822046 Added asserts to catch invalid material/density values. 2013-10-20 09:12:37 +02:00
Daviw Williams
29bded222f Removed unnecessary error handling. 2013-10-04 13:56:31 +02:00
David Williams
21001d6862 Removed wrapper for class which was removed. 2013-10-04 13:35:31 +02:00
David Williams
1531e1cd00 Switched some code to size_t for compatibility with Miniz. 2013-10-04 13:30:30 +02:00
Daviw Williams
4d683627da Added some comments. 2013-10-03 16:56:14 +02:00
Daviw Williams
d17c1b404b Bit more tidying of Miniz code. 2013-10-03 16:45:46 +02:00
Daviw Williams
ef615cc838 Added missing file. 2013-10-03 16:26:43 +02:00
Daviw Williams
dcea5ccc54 Merge branch 'feature/miniz-fixes' into develop 2013-10-02 16:58:48 +02:00
Daviw Williams
498f21f63f Replaced arrays with std::vector. 2013-10-02 16:48:30 +02:00
Daviw Williams
a4e09c2481 Small fixes (including crash fix). 2013-10-02 15:36:21 +02:00
Daviw Williams
29ca1e763f Renamed functions to avoid confusion. 2013-10-02 15:09:55 +02:00
Daviw Williams
513c3a90b0 Rearranging some miniz code to simplify it a bit. 2013-10-01 16:33:39 +02:00
Daviw Williams
319a0ce352 Removed old compression classes. 2013-10-01 15:58:32 +02:00
Daviw Williams
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
Daviw Williams
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
Matt Williams
f81b42747b Implement Timer for C++11
This uses std::chrono::system_clock
2013-08-22 20:40:45 +01:00
David Williams
55dc066a3f Fixed bug with MinizBlockCompressor always saving out 10,000 bytes of data. 2013-08-19 16:27:52 +02:00
David Williams
07f1ca42d2 Uncompressed blocks are now flushed before compressed blocks. 2013-08-12 21:04:55 +02:00
David Williams
6fb30a40f5 Bringing across Region enhancements from Cubiquity branch. 2013-08-09 20:39:17 +02:00
David Williams
b9546ddcfa Extra checks in during marching cubes to try and catch corrupt data. 2013-08-09 14:09:59 +02:00
Matt Williams
7c74e1faff Move Timer.h to correct location
Also add a missing semi-colon.
2013-08-08 10:42:57 +01:00
David Williams
2f99964606 Tidying timer. 2013-08-07 23:24:20 +02:00