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
0032781: Coding - get rid of unused headers [BRepCheck to ChFiKPart]
CR32614 Coding - get rid of unsused forward declarations [Adaptor2d to GccAna] Packages from Adaptor2d to GccAna are processed.
0032008: Modeling Algorithms - disallow implicit copy of Extrema algorithms Extrema_GenExtPS now prefers resizing of Array2 tables instead of managing tables by extra handles. Removed unsafe casts to Adaptor3d_SurfacePtr/Adaptor3d_CurvePtr in Extrema classes. Removed unsafe casts to curve adaptors in Extrema_ExtCC, Extrema_ExtCC2d classes. Extrema_GenExtPS, Extrema_GenExtSS, Extrema_ExtCS - copies by value are now disallowed; several unexpected places copying the object have been fixed. IntTools_Context - maps of void* have been replaced by typed maps.
0032133: Modeling Data - Restriction of access to internal arrays for Poly_Triangulation, revision of API Removed methods from Poly_Triangulation/Poly_PolygonOnTriangulation giving access to internal arrays of 2d and 3d nodes, triangles and normals.
0032078: Visualization, Poly_Triangulation - add cached bounding box. 1) Add empty constructor for Poly_Triangulation(), 2) Add Poly_Triangulation::HasGeometry() method to check that triangulation has any geometry. 3) Add possibility to cache bounding box in Poly_Triangulation and use it later in case of empty triangulation. 4) Add Poly_Triangulation::MinMax() to extends input box with bounding box of triangulation. 5) Add Poly_Triangulation::UpdateCachedMinMax() to cache min - max range of this triangulation with bounding box of nodal data. 6) Add virtual Poly_Triangulation::computeBoundingBox() to calculate bounding box of nodal data. 7) Update BRepBndLib::Add/AddOptimal/AddOBB algorithms to check empty triangulation and use cached box in this case. 8) Update BRepGProp::roughBary/surfaceProperties/volumeProperties to skip empty triangulation. 9) Remove additional myBox from RWGltf_GltfLatePrimitiveArray and some hack to save this box as nodes of base Poly_Triangulation. 10) Cache min-max range from JT file during its parsing
0030924: Coding - incorrect header in file OSD_ThreadPool.hxx Fixed license statements within files BRepGProp_MeshProps.cxx, BRepGProp_MeshProps.hxx, OSD_ThreadPool.cxx and OSD_ThreadPool.hxx. Removed non-ASCII char from BRepMesh_ModelHealer.hxx.
0030895: Coding Rules - specify std namespace explicitly for std::cout and streams "endl" manipulator for Message_Messenger is renamed to "Message_EndLine". The following entities from std namespace are now used with std:: explicitly specified (from Standard_Stream.hxx): std::istream,std::ostream,std::ofstream,std::ifstream,std::fstream, std::filebuf,std::streambuf,std::streampos,std::ios,std::cout,std::cerr, std::cin,std::endl,std::ends,std::flush,std::setw,std::setprecision, std::hex,std::dec.
0029734: Modeling Algorithms - Compute global properties of tessellated shape New algorithms calculating global properties on mesh data have been added: - BRepGProp_MeshCinert computes the global properties of polylines represented by a set of points; - BRepGProp_MeshProps computes the global properties of a surface mesh. Existing tool BRepGProp now automatically uses new algorithm for triangulation-only faces. By default, algorithm will use exact geometry objects (surfaces), when it is available (as before the patch); this behavior can be switched by a new flag UseTriangulation, forcing usage of triangulation instead of exact geometry when both defined.
0029814: Modeling Data - add method TopoDS_Shape::NbChildren() for simple check of sub-shapes number TopoDS_Shape::NbChildren() - new method has been introduced. TopoDS_Shape.lxx, TopoDS_TShape.lxx - inline methods have been moved to hxx. TopoDS_TShape_Flags has been redeclared as enumeration instead of preprocessor macros. Cyclic dependency between headers TopoDS_Shape.hxx and TopoDS_TShape.hxx eliminated. Places where TopoDS_Iterator is used only for calculation of number of sub-shapes are updated to use NbChildren() instead
0029590: Coding - avoid usage of Standard_EXPORT attribute for inline methods All occurrences of Standard_EXPORT attached to inline methods in OCCT code are eliminated. Some unused classes and C++ files producing no code are deleted.