3.1.0
This release includes fixes to standards conformance related to compressed vectors with zero points and a few compilation-related fixes.
Added
-
{cmake} New option
E57_RELEASE_LTO
controls whether link-time optimization is on for release builds. It defaults toON
. (#254)CMake forces "thin" LTO (see this issue) which is a problem if compiling statically for distribution (e.g. in a package manager). Generally you will only want to turn this off for distributing static release builds.
Changed
-
Trying to read a Data3D with zero records which has an ill-formed header will now throw an
ErrorData3DReadInvalidZeroRecords
exception instead ofErrorInternal
. (#264)Note that previous versions of this library (and E57RefImpl itself) could write these headers incorrectly. This was also fixed in this release (see below).
-
{cmake} Remove
E57_VISIBILITY_HIDDEN
option. (#259)I cannot get extern templates to work across all of gcc, clang, apple clang, and MSVC when using "hidden" visibility with shared libraries.
Fixed
- Fix #include to avoid MSVC compilation error with Visual Studio 2017 (#268) (Thanks Thomas!)
- {standard conformance} A compressed vector with 0 records must still write a data packet. (#266)
- {standard conformance} Fix reading a compressed vector with 0 points which has an empty data packet. (#267)
- {standard conformance} Compressed vectors with an invalid section ID now throw an
ErrorBadCVPacket
exception ifE57_VALIDATION_LEVEL
> 0. (#265) - Fix clang warnings about implicit conversions in SourceDestBufferImpl.cpp. Apple's clang doesn't warn about these, but it looks like the official clang releases do. (#257) (Thanks Martin!)
New Contributors
Full Changelog: v3.0.2...v3.1.0