1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-09-03 14:10:33 +03:00

Compare commits

..

1 Commits

Author SHA1 Message Date
akaftasev
fa872240ea 0033340: Modeling Algorithm - Improve memory management performance in the PaveFiller
Changed NCollection_BaseAllocator to NCollection_IncAllocator in BOPAlgo_PaveFiller::MakeBlocks()
2023-03-16 13:58:01 +03:00
4 changed files with 10 additions and 43 deletions

View File

@@ -62,6 +62,7 @@
#include <IntTools_SequenceOfCurves.hxx> #include <IntTools_SequenceOfCurves.hxx>
#include <IntTools_SequenceOfPntOn2Faces.hxx> #include <IntTools_SequenceOfPntOn2Faces.hxx>
#include <IntTools_Tools.hxx> #include <IntTools_Tools.hxx>
#include <NCollection_IncAllocator.hxx>
#include <NCollection_Vector.hxx> #include <NCollection_Vector.hxx>
#include <Precision.hxx> #include <Precision.hxx>
#include <TColStd_ListOfInteger.hxx> #include <TColStd_ListOfInteger.hxx>
@@ -578,14 +579,12 @@ void BOPAlgo_PaveFiller::MakeBlocks(const Message_ProgressRange& theRange)
Standard_Integer i, nF1, nF2, aNbC, aNbP, j; Standard_Integer i, nF1, nF2, aNbC, aNbP, j;
Standard_Integer nV1, nV2; Standard_Integer nV1, nV2;
Standard_Real aT1, aT2; Standard_Real aT1, aT2;
Handle(NCollection_BaseAllocator) aAllocator; Handle(NCollection_BaseAllocator) aAllocator = new NCollection_IncAllocator;
BOPDS_ListIteratorOfListOfPaveBlock aItLPB; BOPDS_ListIteratorOfListOfPaveBlock aItLPB;
TopoDS_Edge aES; TopoDS_Edge aES;
Handle(BOPDS_PaveBlock) aPBOut; Handle(BOPDS_PaveBlock) aPBOut;
// //
//-----------------------------------------------------scope f //-----------------------------------------------------scope f
aAllocator=
NCollection_BaseAllocator::CommonBaseAllocator();
// //
TColStd_ListOfInteger aLSE(aAllocator), aLBV(aAllocator); TColStd_ListOfInteger aLSE(aAllocator), aLBV(aAllocator);
TColStd_MapOfInteger aMVOnIn(100, aAllocator), aMVCommon(100, aAllocator), TColStd_MapOfInteger aMVOnIn(100, aAllocator), aMVCommon(100, aAllocator),

View File

@@ -150,7 +150,6 @@ static Standard_Boolean Connect (const Handle(ShapeAnalysis_Wire)& theSAW,
const Standard_Integer number, const Standard_Integer number,
Handle(ShapeExtend_WireData)& Gsewd) Handle(ShapeExtend_WireData)& Gsewd)
{ {
(void)number;
Gsewd = new ShapeExtend_WireData;//local translation (for mysewd) Gsewd = new ShapeExtend_WireData;//local translation (for mysewd)
Handle(ShapeExtend_WireData) Gsewd3d = new ShapeExtend_WireData;//local translation (for mysewd3d) Handle(ShapeExtend_WireData) Gsewd3d = new ShapeExtend_WireData;//local translation (for mysewd3d)
Handle(ShapeExtend_WireData) Gsewd2d = new ShapeExtend_WireData;//local translation (for mysewd2d) Handle(ShapeExtend_WireData) Gsewd2d = new ShapeExtend_WireData;//local translation (for mysewd2d)
@@ -385,31 +384,17 @@ static Standard_Boolean Connect (const Handle(ShapeAnalysis_Wire)& theSAW,
} }
} }
if (!mysewd.IsNull()) if (number > 1) {
{
okCurve = okCurve && Connect (saw, mysewd, Gsewd, (len3d > 1) || (len2d > 1), maxtol, okCurve = okCurve && Connect (saw, mysewd, Gsewd, (len3d > 1) || (len2d > 1), maxtol,
distmin, revsewd, revnextsewd); distmin, revsewd, revnextsewd);
}
else
{
mysewd = Gsewd;
}
if (!mysewd3d.IsNull())
{
okCurve3d = okCurve3d && Connect (saw3d, mysewd3d, Gsewd3d, len3d > 1, maxtol, okCurve3d = okCurve3d && Connect (saw3d, mysewd3d, Gsewd3d, len3d > 1, maxtol,
distmin, revsewd, revnextsewd); distmin, revsewd, revnextsewd);
}
else
{
mysewd3d = Gsewd3d;
}
if (!mysewd2d.IsNull())
{
okCurve2d = okCurve2d && Connect (saw2d, mysewd2d, Gsewd2d, len2d > 1, maxtol, okCurve2d = okCurve2d && Connect (saw2d, mysewd2d, Gsewd2d, len2d > 1, maxtol,
distmin, revsewd, revnextsewd); distmin, revsewd, revnextsewd);
} }
else else {
{ mysewd = Gsewd;
mysewd3d = Gsewd3d;
mysewd2d = Gsewd2d; mysewd2d = Gsewd2d;
} }
return okCurve; return okCurve;

View File

@@ -1249,7 +1249,7 @@ Handle(Geom_Curve) IGESToBRep_BasicCurve::TransferLine
// modif du 15/10/97 : test moins severe // modif du 15/10/97 : test moins severe
// beaucoup de points confondus a GetEpsGeom()*GetUnitFactor() // beaucoup de points confondus a GetEpsGeom()*GetUnitFactor()
if (!Ps.IsEqual(Pe,Precision::Confusion() / GetUnitFactor())) { //:l3 abv 11 Jan 99: GetEpsGeom()*GetUnitFactor()/10.)) { if (!Ps.IsEqual(Pe,Precision::Confusion())) { //:l3 abv 11 Jan 99: GetEpsGeom()*GetUnitFactor()/10.)) {
gp_Lin line(Ps, gp_Dir(gp_Vec(Ps,Pe))); gp_Lin line(Ps, gp_Dir(gp_Vec(Ps,Pe)));
Standard_Real t1 = ElCLib::Parameter(line, Ps); Standard_Real t1 = ElCLib::Parameter(line, Ps);
Standard_Real t2 = ElCLib::Parameter(line, Pe); Standard_Real t2 = ElCLib::Parameter(line, Pe);
@@ -1299,7 +1299,7 @@ Handle(Geom2d_Curve) IGESToBRep_BasicCurve::Transfer2dLine
start->EndPoint().Y()); start->EndPoint().Y());
} }
if (!beg.IsEqual(end,Precision::PConfusion() / GetUnitFactor())) { //:l3 abv 11 Jan 99: GetEpsCoeff())) { if (!beg.IsEqual(end,Precision::PConfusion())) { //:l3 abv 11 Jan 99: GetEpsCoeff())) {
gp_Lin2d line2d(beg, gp_Dir2d(gp_Vec2d(beg,end))); gp_Lin2d line2d(beg, gp_Dir2d(gp_Vec2d(beg,end)));
Standard_Real t1 = ElCLib::Parameter(line2d, beg); Standard_Real t1 = ElCLib::Parameter(line2d, beg);
Standard_Real t2 = ElCLib::Parameter(line2d, end); Standard_Real t2 = ElCLib::Parameter(line2d, end);

View File

@@ -1,17 +0,0 @@
puts "==================================================="
puts "0033326: Data Exchange, IGES Import - Ignoring unit value for validating geometry"
puts "==================================================="
puts ""
pload DCAF
Close D -silent
ReadIges D [locate_data_file "bug33326.igs"]
vclear
vinit View1
XDisplay -dispMode 1 D
vfit
vdump "$imagedir/${casename}_src.png"
Close D