mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-24 13:50:49 +03:00
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
This commit is contained in:
@@ -24,8 +24,8 @@ IMPLEMENT_STANDARD_RTTIEXT(BRepMeshData_Curve, IMeshData_Curve)
|
||||
// Purpose :
|
||||
//=======================================================================
|
||||
BRepMeshData_Curve::BRepMeshData_Curve (const Handle (NCollection_IncAllocator)& theAllocator)
|
||||
: myPoints (NCollection_StdAllocator<gp_Pnt>(theAllocator)),
|
||||
myParameters (NCollection_StdAllocator<Standard_Real>(theAllocator))
|
||||
: myPoints (NCollection_OccAllocator<gp_Pnt>(theAllocator)),
|
||||
myParameters (NCollection_OccAllocator<Standard_Real>(theAllocator))
|
||||
{
|
||||
}
|
||||
|
||||
|
@@ -32,7 +32,7 @@ BRepMeshData_Model::BRepMeshData_Model (const TopoDS_Shape& theShape)
|
||||
myDFaces (256, myAllocator),
|
||||
myDEdges (256, myAllocator)
|
||||
{
|
||||
myAllocator->SetThreadSafe();
|
||||
myAllocator->SetThreadSafe(true);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@@ -59,8 +59,7 @@ Standard_Integer BRepMeshData_Model::FacesNb () const
|
||||
const IMeshData::IFaceHandle& BRepMeshData_Model::AddFace (const TopoDS_Face& theFace)
|
||||
{
|
||||
IMeshData::IFaceHandle aFace (new (myAllocator) BRepMeshData_Face (theFace, myAllocator));
|
||||
myDFaces.Append (aFace);
|
||||
return myDFaces (FacesNb () - 1);
|
||||
return myDFaces.Append (aFace);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@@ -88,8 +87,7 @@ Standard_Integer BRepMeshData_Model::EdgesNb () const
|
||||
const IMeshData::IEdgeHandle& BRepMeshData_Model::AddEdge (const TopoDS_Edge& theEdge)
|
||||
{
|
||||
IMeshData::IEdgeHandle aEdge (new (myAllocator) BRepMeshData_Edge (theEdge, myAllocator));
|
||||
myDEdges.Append (aEdge);
|
||||
return myDEdges (EdgesNb () - 1);
|
||||
return myDEdges.Append (aEdge);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
|
@@ -29,9 +29,9 @@ BRepMeshData_PCurve::BRepMeshData_PCurve (
|
||||
const TopAbs_Orientation theOrientation,
|
||||
const Handle (NCollection_IncAllocator)& theAllocator)
|
||||
: IMeshData_PCurve (theDFace, theOrientation),
|
||||
myPoints2d (NCollection_StdAllocator<gp_Pnt2d>(theAllocator)),
|
||||
myParameters (NCollection_StdAllocator<Standard_Real>(theAllocator)),
|
||||
myIndices (NCollection_StdAllocator<Standard_Integer>(theAllocator))
|
||||
myPoints2d (NCollection_OccAllocator<gp_Pnt2d>(theAllocator)),
|
||||
myParameters (NCollection_OccAllocator<Standard_Real>(theAllocator)),
|
||||
myIndices (NCollection_OccAllocator<Standard_Integer>(theAllocator))
|
||||
{
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user