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
0032969: Coding - get rid of unused headers [IMeshData to PLib] Removed unused exception classes OSD_Exception_FLT_DIVIDE_BY_ZERO, OSD_Exception_INT_DIVIDE_BY_ZERO, OSD_Exception_FLT_DENORMAL_OPERAND, OSD_Exception_FLT_INEXACT_RESULT, OSD_Exception_FLT_INVALID_OPERATION, OSD_Exception_FLT_OVERFLOW, OSD_Exception_FLT_STACK_CHECK, OSD_Exception_FLT_UNDERFLOW.
0032917: Coding Rules - eliminate MSVS warning C26440 on VS2019/C++20 (If your function may not throw, declare it noexcept) Microsoft Visual Studio Professional 2019 Version 16.11.11 std=c++20 Get rid of warning C26440: "If your function may not throw, declare it noexcept" "If code is not supposed to cause any exceptions, it should be marked as such by using the 'noexcept' specifier. This would help to simplify error handling on the client code side, as well as enable compiler to do additional optimizations."
0032910: Coding Rules - fix uninitialized class fields in constructor initialization block reported by VS2019/C++20 Microsoft Visual Studio Professional 2019 Version 16.11.11 std=c++20 Get rid of warnings about uninitialized class fields in constructor initialization block.
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.
0024975: Improve of preprocessor directives in header files to be equal to the file name Preprocessor directives were changed or created by function "check_headers" from script adm/upgrade.tcl (CR24816)
0027919: Visualization - support multiple transformation persistence groups within single presentation Added transform persistence property to Graphic3d_Group and Select3D_SensitiveEntity. SelectMgr_ViewerSelector, Graphic3d_Layer and OpenGl_Structure have been updated to process per-group transform persistence within picking, ZFit and rendering. Added zoomable state to Prs3d_ArrowAspect supported by PrsDim_Dimension. Added gp_GTrsf::SetMat4(), opposite to gp_GTrsf::GetMat4().
0032402: Coding Rules - eliminate msvc warning C4668 (symbol is not defined as a preprocessor macro, replacing with '0' for directive) Make preprocessor expressions consistent with respect to guard expressions. Fixed usage of macros __QNX__, IRIX, OCCT_DEBUG, DO_INVERSE, DRAW, CHFI3D_DEB by value. Removed obsolete hack for Sun Workshop 5.0 compiler.
0031939: Coding - correction of spelling errors in comments [part 10] Fix various typos via codespell.
0032289: Visualization - add NCollection_Mat3 for 3x3 matrix similar to NCollection_Mat4 Introduced NCollection_Mat3 class similar to NCollection_Mat4. Added NCollection_Mat4::operator() alias to NCollection_Mat4::Value(). Added NCollection_Mat4::Negated(), ::Subtracted(), ::Added(), ::Divided() operations. Added a note to NCollection_Mat4::GetData() that matrix values are stored in column-major order. Removed duplicated operator== operators from NCollection_Mat4/NCollection_Vec4/NCollection_Vec3/NCollection_Vec2 classes. Removed obsolete and no more used matrix state fields from OpenGl_Workspace. Removed obsoiete structure OpenGl_Matrix (replaced by OpenGl_Mat4). OpenGl_ShaderProgram - duplicated methods have been replaced by templates.