0033531: Configuration - Rework DataExchange ToolKits organization Integrated DE plugin functionality. Reworked DE components: - TKDESTEP: Handling STEP file format. - TKDEOBJ: Handling OBJ file format. - TKDEIGES: Handling IGES file format. - TKDEGLTF: Handling GLTF file format. - TKDEVRML: Handling VRML file format. - TKDEPLY: Handling PLY file format. - TKDESTL: Handling STL file format. Reworked DE DRAW components: TKXSDRAWSTEP: Container for DE command to work with STEP. TKXSDRAWOBJ: Container for DE command to work with OBJ. TKXSDRAWIGES: Container for DE command to work with IGES. TKXSDRAWGLTF: Container for DE command to work with GLTF. TKXSDRAWVRML: Container for DE command to work with VRML. TKXSDRAWPLY: Container for DE command to work with PLY. TKXSDRAWSTL: Container for DE command to work with STL. TKXSDRAW rework to be base DRAW plugin to keep DE session and utils. Updated documentation Updated samples
0033370: Foundation Classes - Moving into STL and Boost functionality NCollection containers update: - NCollection_Array1 - updated functionality - NCollection_Array2 - NCollection_Array1 as a wrapper for 2array - NCollection_Vector -> NCollection_DynamicArray was renamed and reworked. TCollection: - Use static empty string to avoid allocations on empty string NCollection allocators update: - NCollection_Allocator - allocator that used Standard::Allocate - NCollection_OccAllocator - allocator-wrapper that used OCC BaseAllocator objects - NCollection_IncAllocator - rework to increase performance Standard: - Rework functionality to use different allocation libs - Implement basic of new way to wrap allocations tools - Define 4 ways to allocation (defines in configure stage) Additional changes: - Hash function uses std::hash functionality - size_t as a hash value - New HashUtils with Murmur and FVN hash algo for x32 and x64 - Deprecated _0.cxx and .gxx DE classes reorganized - Create own utility for std memory - Update Standard_Transient to be more platform-independent Math TK changes: - math_Vector -> match_BaseVector<> - Buffer decreased to cash 32 elements instead of 512
0033246: Data Exchange, DE Wrapper - Checking license leads to performance problem ReWork UpdateLoad functionality: UpdateLoad calls only if provider is found. UpdateLoad calls only for chosen type of translation (read/write) Add new method to UpdateLoad all registered nodes.
0032979: Data Exchange, RWGltf_CafWriter - support multi-threaded Draco compression 'MultiThread' field was added to structure RWGltf_DracoParameters for using multithreading. Class CafWriter_DracoEncodingFunctor was added for multithreaded compression.
0033054: Configuration - link errors due to missing references to new TKXDE toolkit src/OS/DataExchange.tcl - added missing new toolkits. TKRWMesh - added missing reference to TKTopAlgo (for using BRepLib_PointCloudShape). Removed redundant dependency from TKBinXCAF. DRAWEXE - added missing references for a static build. THE_CONFIGURATION_SCOPE definition has been corrected to postpoine calling constructor till the first variable usage. Fixed compiler warning at SelectMgr_Frustum<3>::DumpJson() due to misleading Standard_EXPORT for an inline template method definition.
0032821: DEWrapper - Implementation of a common toolkit for importing and exporting CAD files Implementing DE_Wrapper and its formats
0032918: Coding Rules - suppress MSVS warnings from 3rdparty `rapidjson` on VS2019/C++20 Microsoft Visual Studio Professional 2019 Version 16.11.11 std=c++20 Disable warning messages, occures in rapidjson library.
0032723: Draw Harness, ViewerTest - sloppy animation in WebGL Fixed emscripten_async_call() calls to use requestAnimationFrame() instead of setTimeout(). ViewerTest_EventManager::handleViewRedraw() - fixed queuing new onWasmRedrawView() before previous one has been processed (leading to multiplying of pending redraws executed at the same time). RWGltf_TriangulationReader::readDracoBuffer - suppressed CLang compilation warnings.
0032352: Coding Rules - clean up code from compatibility hacks with pre-C++11 compilers Removed usage of std::auto_ptr. opencascade::std workarounds for VS2008 have been dropped, when possible. OCCT_NO_RVALUE_REFERENCE workaround for VS2008 has been removed.
0032654: Data Exchange - fix misprint in RWGltf_TriangulationReader::readDracoBuffer() Added missing break. Fixes reading of glTF files with Normal attributes preceding Position (and eliminates redundant / erroneous copy when Position attributes precede Normal).
0032612: Data Exchange, RWGltf_CafReader - lost hierarchy of two nested compounds RWGltf_GltfJsonParser::gltfParseSceneNode() - prevent flattering of Scene nodes (allow flattering only of Mesh nodes). Added command XAutoNaming managing XCAFDoc_ShapeTool::SetAutoNaming(). Added comparisons with reference Xdump data to glTF tests.