-
Martin Weismann authored
Highlights: - Slice-Extension - Prodution-Extension - Beamlattice-Extension (v0.98) - Required Extensions - Warning-levels - Large number of bugfixes - Improved stability and more tests (using googletest) - Improved platform independence Full ist below: Initial implementation of BeamLattice spec Read: This simply uses the private beam-extension reader-logic to read those bits of the official beam-lattice spec that coincide with the private beamspec. Internally, the datamodel of the private spec is still used. Write: This simply uses the private beam-extension WRITE-logic to WRITE those bits of the official beam-lattice spec that coincide with the private beamspec. NC-4511: Add version info to properties of DLL Also proposed a way for linux. Not for release, though. NC-3762: Implement Required Extensions Added framework that checks for required extensions. - Fails if semantic error - Warns if a required extension is not supported by lib3MF NC-3762: Correct handling of Namespaces NC-4511: Add build_number env-variable NC-4526: Refactor GTest Unittests NC-4511: Add 3MF-consortium to version-info Fix multiple comments NC-4498: Fix multiple comments NC-4498: Fix a couple of comments NC-4480: Less strict handling of CoInitialize NC-4480: Fix CMake to work in larger projects NC-4498: Add SDK Initial Layout Examples Fix them for MAC and Unix Add a ImportStreamCallback Resolved conflicts Make ImportStream_Callback compile Basic Implementation of beamlattice spec NC-4526: Basic Implementation BeamLattice Spec NC-4526: ClippingMesh, BeamSets and Refs NC-4526: Comments to the API NC-4526: Test ClippingMesh, add RequiredExtensions NC-4526: Fix linux build and UnitTests VisualStudio specifics, create_model and bWriteBeamLattice NC-4526: Minor fixes, Documentation, APIVersion NC-4526: Consistent handling of cmath and isnan NC-4572: Finished example for GetWarnings Initial implementation of Slice Extension NC-4535: Implement Writer for Slice-Extension NC-4535: Reader, UnitTests and CMake NC-4593: Reader for External SliceRefs NC-4535: Finalize Slice Extension (a) - add error handling - change string handling - fix linux build NC-4672: add comments to DLL interface NC-4535: Finalize Slice Extension (b) - Documentation - Fix buf in DLL Interface - add comments to NMR_COMInterface.h - Add SDK example - Fix warnings NC-4535: Update APIVersion NC-4535: Update examples NC-2499: Add optimzition (-O2) to UNIX builds NC-2499: Remove DEBUG info from UNIX builds NC-4718 - Finalize Slice Extension: remove warnings for MAC NC-4718 - Finalize Slice Extension NC-4648: Refactor XML-schemata and XMLLint NC-4428: Test and fix attachments under linux - Added tests for attachments (fro stream and file) - All retrieveSize of ImportStreams do not alter the position of the stream now. + NC-2499: Fix Linux SDK Dis-entangle NMR_COM_EMULAITON from __GNUC__ It is now possible to compile lib3MF with the COM-emulation on Windows, too. This is the default now. The (old, not properly working) COM implementation that uses the 3MF_ModelReader/Writer_3MF_OPC-classes can still be compiled, but will be made depricated soon and afterwards removed. Instead, users should use the platform independent, native implmentations NMR_ModelReader/Writer_3MF_Native. This will make it easier to maintain and develop lib3MF further in the long-run. NC-2499: Fix NativeXML Reader It now correclty allows spaces between attribute names and the "="-character. NC-2499: Fix SDK (COM_EMULATION) Production-Extension + multiple small changes NC-4568: Initial Tests for Production Extension NC-4568: Prepare Identifiers for ProdExt. NC-4568: Preparation for Production Plus some fixes to slice extension NC-2499: Update README schema validation NC-4568: Rewrite Slice Extension - Factor out and update SliceTests - Rewrite Slice Extension - Write Slice Extension NC-4568: Update first Example NC-4568: Another detailed test for production NC-4568: Initial Fix to ModelWriter Makes sure, only the root model contains textures, metainformation, ... Will need to be revisited when writing objects into non-root models. NC-4568: Add build UUID to interface NC-4568: Little Improvements to readers NC-4568: Use unique resourceIDs per package Starts using CPackageResourceID - Fix SliceStackIDs - Fix Component Path - ResourceIDs are now per Package and mutable - Fix v093 reader - Fix to some files NC-4568 Refactor ResourceHandler and GetSliceStack NC-4568: Update BatchTests NC-4568: Improve Unique ID-handling - Fix duplicated slicestacks on read - Update tests - Throw Exception for Duplicate Resource ID NC-2499: Replace broken testfile (zip-error) NC-4568: Read paths and UUIDs NC-2581: Integrate a large number of reader checks Lib3MF should warn/fail when reading broken 3MF-files as part of the Must-Fail requirements. This commit implements several of these criteria. NC-2581: More checks whle reading - Ensure Uniqueness of UUIDs - Check Content Types - Fix relations-extension - Check Encoding, Dupl. Relations and XML-attributes Metadata from namespaces NC-2581: More MustFail-chesk - Error Duplicate Triangle Indices - Check for SliceIndex Errors - Check OPC-part names - Improve OPC reading (errors) - Mustfail for Duplicate vertex in slicesegemnt - Fix UUID-Checks for ProductionExt - Fix required UUID-checking - Fix Linux Build - Restrict build-UUID-check to root model - Warn on non-root models NC-4568: Remove Compiler Problems NC-2581: More MustFail-checks - Also improves BatchTest to cover more of them NC-4568: Update API, header and version - Get and Set UUIDs via API - Add checks in NMR_COM_Native - Updated version Also: - Stub for required slice extension - Remove BatchTest from default CMake-configuration NC-4568: Update Slice Example to compile on MAC NC-4568: Meshresolution for Slices NC-4568: Fix linux compiler error. NC-2581: 3MF-reader has a strict-mode now In Strict Mode, all warnings are returned as errors - You can Switch On/Off StrictMode in 3MF-Reader - Lib3MF warns more and returns false less - SDK-documentation and example have been updated Multiple fixes NC-5599: Decode XML escape strings NC-4568: fixup COM-version NC-5633: write component-UUID NC-2499: Test and fix writing a model twice Read 3MF file directly from a memory buffer NC-5605 Added interface to read 3mf files directly from a memory buffer NC-5605 Fixes to direct memory read/write + test. Still broken in some cases NC-5605 Removed extra stuff from test NC-5605 Compile fix NC-5605 Compile fix 2 NC-5605 Addressed pull request comments NC-2499: Improve NMR_COM_* logic Changed the negative NMR_COM_EMULATION-flag to a positive NMR_COM_NATIVE-flag. i.e.: #ifndef NMR_COM_EMULATION is now #'fdef NMR_COM_NATIVE etc. NC-5660: Check attributes in slicrefs loosely ztop attributes in slicerefs are only recorded as warnings, not errors anymore. NC-5660: Only warn when slices do not increase NC-5711: Enable OPC-package thumbnails - Implementation of OPC-package thumbnails - Unit tests - Update Documentation NC-2499: Fix typos in comments Add object thumbnails - Thumbnails are now handled as texture streams - Reading and re-writing of object thumbnails - Fixes thumnbnails in ProductionExtension (read texture streams from OPC subparts) NC-5711: Fix broken testfile NC-5711: Allow OPC thumbnails for objects NC-5711: Fix typos and update author in licenses NC-5711: Declare decprecated functions NC-5711: Unify Textures and Object Thumbnails Refactored Textures to not use texture stream anymore. Instead, the streams are now handled like regular modelattachments. Added object thumbnail to reference exactly these attachments, too. Includes several tests for Textures and Object Thumbnails NC-5711: Remove some outdated comments in the code NC-5711: Finalize Object thumbnails - Add ObjectThumbnail path - Update several Object-Thumbnail-tests - Updates API, SDK-Documentation and API-version HPA-1010: Warn when reading empty attachment NC-2499: Remove unnecessary NMR_ModelThumbnail.h Add handling of default PIDs NC-5679: Initial fix to objectPIDs NC-5679: Further improvement to objectPIDs NC-5679 Update v093-examples to have default PIDs NC-5679: Warn when reading invalid default props. NC-5679: Fix typo in exception NC-5679: Update SDK-Example with defaultproperties NC-5679: Update 2nd Example with defaultproperties NC-2499: Handle paths differently on Win + Linux use UTF16-wchars and UTF8-chars, respectively. NC-2499: Unittests for paths NC-5995: Read Override-tags in ContentTypes NC-5995: Handle the box-attribute of textures NC-5995: Fix default PID handling in particular, only try to restore/create default PID if necessary in an object NC-5995: Warn when reading with compositematerials NC-5995: Update non-conforming test-files NC-5995: Update unittests to respect new warning Fix merge conflict NC-2499: Add a missing exception text NC-2499: Prepare test for multiproperties NC-2499: Only warn on unknown attributes NC-2499: Only warn on ambigous RelationshipType NC-2499: Warn when build-item of type OTHER appear NC-6230: Warn on default PID in components object NC-2499: Fix missing partnumber for BuildItems NC-4821 - Update slice-interface AD-23: Read some slice info in Prod-Ext.-Tests Update BeamLattice to spec-ver 0.98 NC-5667: Merge Precision and Accuracy to MinLength NC-5667: Add correct/fix capmodes NC-5667: Handle RepresentatioMesh NC-5667: Refactor ClipInfo to BeamLatticeAttributes NC-5667: Improve tests for BeamLatticeAttributes NC_5667: Restrict BeamLattice to Model+SolidSupp. NC-5667: Update SDK documentation NC-5667: Update API-Version NC-5667: Add beamlattice XSD v097 NC-5667: Fix duplicate ErrorCodes NC-5667: Add simple beamlattice example NC-5667: change beamlattice 'id' to 'identifier' NC-5667: tiny update to XSD NC-5062: Allow publication of Slice-Code NC-5062: Correctly format slice-code NC-5062: Allow publication of BeamLattic-Code Update documentation of Lib3MF NC-5062: Refactor and clean-up testfiles Remove third party geometries and images from the test files in the repo. Rearrange testfiles a bit. Removed unused constant Remove XMLLint-binary Fix some typos Update Readme Remove unused things from SDK
96541495