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

0025769: Replace BOPCol_Array1 with NCollection_Vector

New features:
1. class NCollection_BaseVector
    method:
    void SetIncrement(const Standard_Integer aIncrement)
    has been added.
    The method allows to set the size of increment dynamically
    [ not in constructor ].

2 class BOPCol_Array1
    has been removed.

Changes:
1. classes
BOPDS_DS
BOPDS_InterfFF
BOPDS_Iterator
BOPDS_VectorOfCurve
BOPDS_VectorOfFaceInfo
BOPDS_VectorOfIndexRange
BOPDS_VectorOfInterfEE
BOPDS_VectorOfInterfEF
BOPDS_VectorOfInterfEZ
BOPDS_VectorOfInterfFF
BOPDS_VectorOfInterfFZ
BOPDS_VectorOfInterfVE
BOPDS_VectorOfInterfVF
BOPDS_VectorOfInterfVV
BOPDS_VectorOfInterfVZ
BOPDS_VectorOfInterfZZ
BOPDS_VectorOfListOfPassKeyBoolean
BOPDS_VectorOfListOfPaveBlock
BOPDS_VectorOfPoint
BOPDS_VectorOfShapeInfo
BOPAlgo_PaveFiller
QANewModTopOpe_Tools
have been modified to take into account New features: 1 and 2

2. class BOPTest_Chronometer
has been modified to use the driver of the type
OSD_Timer instead OSD_Chronometer
This commit is contained in:
pkv 2015-01-30 14:02:21 +03:00 committed by bugmaster
parent b990e5579a
commit 402bfe81c0
33 changed files with 167 additions and 677 deletions

View File

@ -44,7 +44,7 @@
void BOPAlgo_PaveFiller::PerformVV() void BOPAlgo_PaveFiller::PerformVV()
{ {
Standard_Boolean bWithSubShape; Standard_Boolean bWithSubShape;
Standard_Integer n1, n2, iFlag, nX, n, aSize, i, j, iX, k, aNbBlocks; Standard_Integer n1, n2, iFlag, nX, n, aSize, i, j, k, aNbBlocks;
Handle(NCollection_IncAllocator) aAllocator; Handle(NCollection_IncAllocator) aAllocator;
BOPCol_DataMapIteratorOfDataMapOfIntegerListOfInteger aItMILI; BOPCol_DataMapIteratorOfDataMapOfIntegerListOfInteger aItMILI;
BOPCol_ListIteratorOfListOfInteger aItLI, aItLI2; BOPCol_ListIteratorOfListOfInteger aItLI, aItLI2;
@ -62,9 +62,7 @@
aSIn.SetShapeType(TopAbs_VERTEX); aSIn.SetShapeType(TopAbs_VERTEX);
BOPDS_VectorOfInterfVV& aVVs=myDS->InterfVV(); BOPDS_VectorOfInterfVV& aVVs=myDS->InterfVV();
aVVs.SetStartSize(aSize);
aVVs.SetIncrement(aSize); aVVs.SetIncrement(aSize);
aVVs.Init();
// //
//-----------------------------------------------------scope f //-----------------------------------------------------scope f
aAllocator=new NCollection_IncAllocator(); aAllocator=new NCollection_IncAllocator();
@ -123,8 +121,8 @@
n2=aItLI2.Value(); n2=aItLI2.Value();
// //
myDS->AddInterf(n1, n2); myDS->AddInterf(n1, n2);
iX=aVVs.Append()-1; BOPDS_InterfVV& aVV=aVVs.Append1();
BOPDS_InterfVV& aVV=aVVs(iX); //
aVV.SetIndices(n1, n2); aVV.SetIndices(n1, n2);
aVV.SetIndexNew(n); aVV.SetIndexNew(n);
} }

View File

@ -39,7 +39,7 @@
void BOPAlgo_PaveFiller::PerformVZ() void BOPAlgo_PaveFiller::PerformVZ()
{ {
Standard_Boolean bJustAdd; Standard_Boolean bJustAdd;
Standard_Integer iSize, nV, nZ, i; Standard_Integer iSize, nV, nZ;
Standard_Real aTol; Standard_Real aTol;
gp_Pnt aPV; gp_Pnt aPV;
TopAbs_State aState; TopAbs_State aState;
@ -53,9 +53,7 @@ void BOPAlgo_PaveFiller::PerformVZ()
} }
// //
BOPDS_VectorOfInterfVZ& aVZs=myDS->InterfVZ(); BOPDS_VectorOfInterfVZ& aVZs=myDS->InterfVZ();
aVZs.SetStartSize(iSize);
aVZs.SetIncrement(iSize); aVZs.SetIncrement(iSize);
aVZs.Init();
// //
for (; myIterator->More(); myIterator->Next()) { for (; myIterator->More(); myIterator->Next()) {
myIterator->Value(nV, nZ, bJustAdd); myIterator->Value(nV, nZ, bJustAdd);
@ -78,8 +76,7 @@ void BOPAlgo_PaveFiller::PerformVZ()
// //
aState=aSC.State(); aState=aSC.State();
if (aState==TopAbs_IN) { if (aState==TopAbs_IN) {
i=aVZs.Append()-1; BOPDS_InterfVZ& aVZ=aVZs.Append1();
BOPDS_InterfVZ& aVZ=aVZs(i);
aVZ.SetIndices(nV, nZ); aVZ.SetIndices(nV, nZ);
// //
myDS->AddInterf(nV, nZ); myDS->AddInterf(nV, nZ);
@ -93,7 +90,7 @@ void BOPAlgo_PaveFiller::PerformVZ()
void BOPAlgo_PaveFiller::PerformEZ() void BOPAlgo_PaveFiller::PerformEZ()
{ {
Standard_Boolean bJustAdd, bHasInterf; Standard_Boolean bJustAdd, bHasInterf;
Standard_Integer iSize, nE, nZ, i; Standard_Integer iSize, nE, nZ;
// //
myErrorStatus=0; myErrorStatus=0;
// //
@ -104,9 +101,7 @@ void BOPAlgo_PaveFiller::PerformEZ()
} }
// //
BOPDS_VectorOfInterfEZ& aEZs=myDS->InterfEZ(); BOPDS_VectorOfInterfEZ& aEZs=myDS->InterfEZ();
aEZs.SetStartSize(iSize);
aEZs.SetIncrement(iSize); aEZs.SetIncrement(iSize);
aEZs.Init();
// //
for (; myIterator->More(); myIterator->Next()) { for (; myIterator->More(); myIterator->Next()) {
myIterator->Value(nE, nZ, bJustAdd); myIterator->Value(nE, nZ, bJustAdd);
@ -124,8 +119,7 @@ void BOPAlgo_PaveFiller::PerformEZ()
continue; continue;
} }
// //
i=aEZs.Append()-1; BOPDS_InterfEZ& aEZ=aEZs.Append1();
BOPDS_InterfEZ& aEZ=aEZs(i);
aEZ.SetIndices(nE, nZ); aEZ.SetIndices(nE, nZ);
// //
myDS->AddInterf(nE, nZ); myDS->AddInterf(nE, nZ);
@ -138,7 +132,7 @@ void BOPAlgo_PaveFiller::PerformEZ()
void BOPAlgo_PaveFiller::PerformFZ() void BOPAlgo_PaveFiller::PerformFZ()
{ {
Standard_Boolean bJustAdd, bHasInterf; Standard_Boolean bJustAdd, bHasInterf;
Standard_Integer iSize, nF, nZ, i; Standard_Integer iSize, nF, nZ;
// //
myErrorStatus=0; myErrorStatus=0;
// //
@ -149,9 +143,7 @@ void BOPAlgo_PaveFiller::PerformFZ()
} }
// //
BOPDS_VectorOfInterfFZ& aFZs=myDS->InterfFZ(); BOPDS_VectorOfInterfFZ& aFZs=myDS->InterfFZ();
aFZs.SetStartSize(iSize);
aFZs.SetIncrement(iSize); aFZs.SetIncrement(iSize);
aFZs.Init();
// //
for (; myIterator->More(); myIterator->Next()) { for (; myIterator->More(); myIterator->Next()) {
myIterator->Value(nF, nZ, bJustAdd); myIterator->Value(nF, nZ, bJustAdd);
@ -169,8 +161,7 @@ void BOPAlgo_PaveFiller::PerformFZ()
continue; continue;
} }
// //
i=aFZs.Append()-1; BOPDS_InterfFZ& aFZ=aFZs.Append1();
BOPDS_InterfFZ& aFZ=aFZs(i);
aFZ.SetIndices(nF, nZ); aFZ.SetIndices(nF, nZ);
// //
myDS->AddInterf(nF, nZ); myDS->AddInterf(nF, nZ);
@ -183,7 +174,7 @@ void BOPAlgo_PaveFiller::PerformFZ()
void BOPAlgo_PaveFiller::PerformZZ() void BOPAlgo_PaveFiller::PerformZZ()
{ {
Standard_Boolean bJustAdd, bHasInterf, bFlag; Standard_Boolean bJustAdd, bHasInterf, bFlag;
Standard_Integer iSize, nZ1, nZ, i; Standard_Integer iSize, nZ1, nZ;
// //
myErrorStatus=0; myErrorStatus=0;
// //
@ -194,9 +185,7 @@ void BOPAlgo_PaveFiller::PerformZZ()
} }
// //
BOPDS_VectorOfInterfZZ& aZZs=myDS->InterfZZ(); BOPDS_VectorOfInterfZZ& aZZs=myDS->InterfZZ();
aZZs.SetStartSize(iSize);
aZZs.SetIncrement(iSize); aZZs.SetIncrement(iSize);
aZZs.Init();
// //
bFlag=Standard_False; bFlag=Standard_False;
// //
@ -214,8 +203,7 @@ void BOPAlgo_PaveFiller::PerformZZ()
continue; continue;
} }
// //
i=aZZs.Append()-1; BOPDS_InterfZZ& aZZ=aZZs.Append1();
BOPDS_InterfZZ& aZZ=aZZs(i);
aZZ.SetIndices(nZ1, nZ); aZZ.SetIndices(nZ1, nZ);
// //
myDS->AddInterf(nZ1, nZ); myDS->AddInterf(nZ1, nZ);

View File

@ -136,7 +136,7 @@ typedef BOPCol_TBBContextCnt
void BOPAlgo_PaveFiller::PerformVE() void BOPAlgo_PaveFiller::PerformVE()
{ {
Standard_Boolean bJustAdd; Standard_Boolean bJustAdd;
Standard_Integer iSize, nV, nE, nVSD, iFlag, nVx, i, k, aNbVE;; Standard_Integer iSize, nV, nE, nVSD, iFlag, nVx, k, aNbVE;
Standard_Real aT, aTolE, aTolV; Standard_Real aT, aTolE, aTolV;
BOPDS_Pave aPave; BOPDS_Pave aPave;
BOPDS_PassKey aPK; BOPDS_PassKey aPK;
@ -153,9 +153,7 @@ void BOPAlgo_PaveFiller::PerformVE()
} }
// //
BOPDS_VectorOfInterfVE& aVEs=myDS->InterfVE(); BOPDS_VectorOfInterfVE& aVEs=myDS->InterfVE();
aVEs.SetStartSize(iSize);
aVEs.SetIncrement(iSize); aVEs.SetIncrement(iSize);
aVEs.Init();
// //
for (; myIterator->More(); myIterator->Next()) { for (; myIterator->More(); myIterator->Next()) {
myIterator->Value(nV, nE, bJustAdd); myIterator->Value(nV, nE, bJustAdd);
@ -213,8 +211,7 @@ void BOPAlgo_PaveFiller::PerformVE()
const TopoDS_Vertex& aV=aVESolver.Vertex(); const TopoDS_Vertex& aV=aVESolver.Vertex();
const TopoDS_Edge& aE=aVESolver.Edge(); const TopoDS_Edge& aE=aVESolver.Edge();
// 1 // 1
i=aVEs.Append()-1; BOPDS_InterfVE& aVE=aVEs.Append1();
BOPDS_InterfVE& aVE=aVEs(i);
aVE.SetIndices(nV, nE); aVE.SetIndices(nV, nE);
aVE.SetParameter(aT); aVE.SetParameter(aT);
// 2 // 2

View File

@ -298,9 +298,7 @@ void BOPAlgo_PaveFiller::PerformEE()
BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks aMVCPB(100, aAllocator); BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks aMVCPB(100, aAllocator);
// //
BOPDS_VectorOfInterfEE& aEEs=myDS->InterfEE(); BOPDS_VectorOfInterfEE& aEEs=myDS->InterfEE();
aEEs.SetStartSize(iSize);
aEEs.SetIncrement(iSize); aEEs.SetIncrement(iSize);
aEEs.Init();
// //
for (; myIterator->More(); myIterator->Next()) { for (; myIterator->More(); myIterator->Next()) {
myIterator->Value(nE1, nE2, bJustAdd); myIterator->Value(nE1, nE2, bJustAdd);
@ -489,10 +487,10 @@ void BOPAlgo_PaveFiller::PerformEE()
continue; continue;
} }
} }
//
// 1 // 1
iX=aEEs.Append()-1; BOPDS_InterfEE& aEE=aEEs.Append1();
BOPDS_InterfEE& aEE=aEEs(iX); iX=aEEs.Extent()-1;
aEE.SetIndices(nE1, nE2); aEE.SetIndices(nE1, nE2);
aEE.SetCommonPart(aCPart); aEE.SetCommonPart(aCPart);
// 2 // 2
@ -517,8 +515,8 @@ void BOPAlgo_PaveFiller::PerformEE()
break; break;
} }
// 1 // 1
iX=aEEs.Append()-1; BOPDS_InterfEE& aEE=aEEs.Append1();
BOPDS_InterfEE& aEE=aEEs(iX); iX=aEEs.Extent()-1;
aEE.SetIndices(nE1, nE2); aEE.SetIndices(nE1, nE2);
aEE.SetCommonPart(aCPart); aEE.SetCommonPart(aCPart);
// 2 // 2
@ -911,7 +909,7 @@ void BOPAlgo_PaveFiller::ForceInterfVE(const Standard_Integer nV,
aNbPnt = aProjector.NbPoints(); aNbPnt = aProjector.NbPoints();
if (aNbPnt) { if (aNbPnt) {
Standard_Real aT, aDist; Standard_Real aT, aDist;
Standard_Integer i; //Standard_Integer i;
BRep_Builder aBB; BRep_Builder aBB;
BOPDS_Pave aPave; BOPDS_Pave aPave;
// //
@ -919,12 +917,7 @@ void BOPAlgo_PaveFiller::ForceInterfVE(const Standard_Integer nV,
aT=aProjector.LowerDistanceParameter(); aT=aProjector.LowerDistanceParameter();
// //
BOPDS_VectorOfInterfVE& aVEs=myDS->InterfVE(); BOPDS_VectorOfInterfVE& aVEs=myDS->InterfVE();
if (aVEs.Extent() == 0) { BOPDS_InterfVE& aVE=aVEs.Append1();
aVEs.Init();
}
//
i=aVEs.Append()-1;
BOPDS_InterfVE& aVE=aVEs(i);
aVE.SetIndices(nV, nE); aVE.SetIndices(nV, nE);
aVE.SetParameter(aT); aVE.SetParameter(aT);
// //

View File

@ -143,7 +143,7 @@ typedef BOPCol_TBBContextCnt
void BOPAlgo_PaveFiller::PerformVF() void BOPAlgo_PaveFiller::PerformVF()
{ {
Standard_Boolean bJustAdd; Standard_Boolean bJustAdd;
Standard_Integer iSize, nV, nF, nVSD, iFlag, nVx, i, aNbVF, k; Standard_Integer iSize, nV, nF, nVSD, iFlag, nVx, aNbVF, k;
Standard_Real aT1, aT2, aTolF, aTolV; Standard_Real aT1, aT2, aTolF, aTolV;
BRep_Builder aBB; BRep_Builder aBB;
BOPAlgo_VectorOfVertexFace aVVF; BOPAlgo_VectorOfVertexFace aVVF;
@ -155,9 +155,7 @@ void BOPAlgo_PaveFiller::PerformVF()
if (iSize) { if (iSize) {
// //
BOPDS_VectorOfInterfVF& aVFs=myDS->InterfVF(); BOPDS_VectorOfInterfVF& aVFs=myDS->InterfVF();
aVFs.SetStartSize(iSize);
aVFs.SetIncrement(iSize); aVFs.SetIncrement(iSize);
aVFs.Init();
// //
for (; myIterator->More(); myIterator->Next()) { for (; myIterator->More(); myIterator->Next()) {
myIterator->Value(nV, nF, bJustAdd); myIterator->Value(nV, nF, bJustAdd);
@ -214,8 +212,7 @@ void BOPAlgo_PaveFiller::PerformVF()
const TopoDS_Vertex& aV=aVertexFace.Vertex(); const TopoDS_Vertex& aV=aVertexFace.Vertex();
const TopoDS_Face& aF=aVertexFace.Face(); const TopoDS_Face& aF=aVertexFace.Face();
// 1 // 1
i=aVFs.Append()-1; BOPDS_InterfVF& aVF=aVFs.Append1();
BOPDS_InterfVF& aVF=aVFs(i);
aVF.SetIndices(nVx, nF); aVF.SetIndices(nVx, nF);
aVF.SetUV(aT1, aT2); aVF.SetUV(aT1, aT2);
// 2 // 2
@ -238,9 +235,7 @@ void BOPAlgo_PaveFiller::PerformVF()
else { else {
iSize=10; iSize=10;
BOPDS_VectorOfInterfVF& aVFs=myDS->InterfVF(); BOPDS_VectorOfInterfVF& aVFs=myDS->InterfVF();
aVFs.SetStartSize(iSize);
aVFs.SetIncrement(iSize); aVFs.SetIncrement(iSize);
aVFs.Init();
} }
// //
TreatVerticesEE(); TreatVerticesEE();
@ -315,8 +310,8 @@ void BOPAlgo_PaveFiller::TreatVerticesEE()
iFlag=myContext->ComputeVF(aV, aF, aT1, aT2); iFlag=myContext->ComputeVF(aV, aF, aT1, aT2);
if (!iFlag) { if (!iFlag) {
// 1 // 1
i=aVFs.Append()-1; BOPDS_InterfVF& aVF=aVFs.Append1();
BOPDS_InterfVF& aVF=aVFs(i); i=aVFs.Extent()-1;
aVF.SetIndices(nV, nF); aVF.SetIndices(nV, nF);
aVF.SetUV(aT1, aT2); aVF.SetUV(aT1, aT2);
// 2 // 2

View File

@ -169,9 +169,7 @@ void BOPAlgo_PaveFiller::PerformEF()
aDeflection=0.01; aDeflection=0.01;
// //
BOPDS_VectorOfInterfEF& aEFs=myDS->InterfEF(); BOPDS_VectorOfInterfEF& aEFs=myDS->InterfEF();
aEFs.SetStartSize(iSize);
aEFs.SetIncrement(iSize); aEFs.SetIncrement(iSize);
aEFs.Init();
// //
for (; myIterator->More(); myIterator->Next()) { for (; myIterator->More(); myIterator->Next()) {
myIterator->Value(nE, nF, bJustAdd); myIterator->Value(nE, nF, bJustAdd);
@ -297,10 +295,10 @@ void BOPAlgo_PaveFiller::PerformEF()
bV[0]=CheckFacePaves(nV[0], aMIFOn, aMIFIn); bV[0]=CheckFacePaves(nV[0], aMIFOn, aMIFIn);
bV[1]=CheckFacePaves(nV[1], aMIFOn, aMIFIn); bV[1]=CheckFacePaves(nV[1], aMIFOn, aMIFIn);
if (bV[0] && bV[1]) { if (bV[0] && bV[1]) {
iX=aEFs.Append()-1;
IntTools_CommonPrt aCP = aCPart; IntTools_CommonPrt aCP = aCPart;
aCP.SetType(TopAbs_EDGE); aCP.SetType(TopAbs_EDGE);
BOPDS_InterfEF& aEF=aEFs(iX); BOPDS_InterfEF& aEF=aEFs.Append1();
iX=aEFs.Extent()-1;
aEF.SetIndices(nE, nF); aEF.SetIndices(nE, nF);
aEF.SetCommonPart(aCP); aEF.SetCommonPart(aCP);
myDS->AddInterf(nE, nF); myDS->AddInterf(nE, nF);
@ -344,8 +342,8 @@ void BOPAlgo_PaveFiller::PerformEF()
// //
aMIEFC.Add(nF); aMIEFC.Add(nF);
// 1 // 1
iX=aEFs.Append()-1; BOPDS_InterfEF& aEF=aEFs.Append1();
BOPDS_InterfEF& aEF=aEFs(iX); iX=aEFs.Extent()-1;
aEF.SetIndices(nE, nF); aEF.SetIndices(nE, nF);
aEF.SetCommonPart(aCPart); aEF.SetCommonPart(aCPart);
// 2 // 2
@ -363,8 +361,8 @@ void BOPAlgo_PaveFiller::PerformEF()
aMIEFC.Add(nF); aMIEFC.Add(nF);
// //
// 1 // 1
iX=aEFs.Append()-1; BOPDS_InterfEF& aEF=aEFs.Append1();
BOPDS_InterfEF& aEF=aEFs(iX); iX=aEFs.Extent()-1;
aEF.SetIndices(nE, nF); aEF.SetIndices(nE, nF);
// //
bV[0]=CheckFacePaves(nV[0], aMIFOn, aMIFIn); bV[0]=CheckFacePaves(nV[0], aMIFOn, aMIFIn);
@ -637,16 +635,11 @@ Standard_Boolean BOPAlgo_PaveFiller::ForceInterfVF
gp_Pnt2d aP2d(U, V); gp_Pnt2d aP2d(U, V);
bRet = myContext->IsPointInFace (aF, aP2d); bRet = myContext->IsPointInFace (aF, aP2d);
if (bRet) { if (bRet) {
Standard_Integer i; //Standard_Integer i;
BRep_Builder aBB; BRep_Builder aBB;
// //
BOPDS_VectorOfInterfVF& aVFs=myDS->InterfVF(); BOPDS_VectorOfInterfVF& aVFs=myDS->InterfVF();
if (aVFs.Extent() == 0) { BOPDS_InterfVF& aVF=aVFs.Append1();
aVFs.Init();
}
//
i=aVFs.Append()-1;
BOPDS_InterfVF& aVF=aVFs(i);
aVF.SetIndices(nV, nF); aVF.SetIndices(nV, nF);
aVF.SetUV(U, V); aVF.SetUV(U, V);
// //

View File

@ -195,7 +195,7 @@ void BOPAlgo_PaveFiller::PerformFF()
// //
Standard_Boolean bJustAdd, bApp, bCompC2D1, bCompC2D2, bIsDone; Standard_Boolean bJustAdd, bApp, bCompC2D1, bCompC2D2, bIsDone;
Standard_Boolean bToSplit, bTangentFaces; Standard_Boolean bToSplit, bTangentFaces;
Standard_Integer nF1, nF2, aNbCurves, aNbPoints, iX, i, iP, iC, aNbLP; Standard_Integer nF1, nF2, aNbCurves, aNbPoints, i, aNbLP;
Standard_Integer aNbFaceFace, k; Standard_Integer aNbFaceFace, k;
Standard_Real aApproxTol, aTolR3D, aTolR2D, aTolFF; Standard_Real aApproxTol, aTolR3D, aTolR2D, aTolFF;
BRepAdaptor_Surface aBAS1, aBAS2; BRepAdaptor_Surface aBAS1, aBAS2;
@ -203,9 +203,7 @@ void BOPAlgo_PaveFiller::PerformFF()
BOPAlgo_VectorOfFaceFace aVFaceFace; BOPAlgo_VectorOfFaceFace aVFaceFace;
// //
BOPDS_VectorOfInterfFF& aFFs=myDS->InterfFF(); BOPDS_VectorOfInterfFF& aFFs=myDS->InterfFF();
aFFs.SetStartSize(iSize);
aFFs.SetIncrement(iSize); aFFs.SetIncrement(iSize);
aFFs.Init();
// //
bApp=mySectionAttribute.Approximation(); bApp=mySectionAttribute.Approximation();
bCompC2D1=mySectionAttribute.PCurveOnS1(); bCompC2D1=mySectionAttribute.PCurveOnS1();
@ -241,8 +239,7 @@ void BOPAlgo_PaveFiller::PerformFF()
bToIntersect = CheckPlanes(nF1, nF2); bToIntersect = CheckPlanes(nF1, nF2);
if (!bToIntersect) { if (!bToIntersect) {
myDS->AddInterf(nF1, nF2); myDS->AddInterf(nF1, nF2);
iX=aFFs.Append()-1; BOPDS_InterfFF& aFF=aFFs.Append1();
BOPDS_InterfFF& aFF=aFFs(iX);
aFF.SetIndices(nF1, nF2); aFF.SetIndices(nF1, nF2);
aFF.Init(0, 0); aFF.Init(0, 0);
continue; continue;
@ -304,8 +301,7 @@ void BOPAlgo_PaveFiller::PerformFF()
myDS->AddInterf(nF1, nF2); myDS->AddInterf(nF1, nF2);
} }
// //
iX=aFFs.Append()-1; BOPDS_InterfFF& aFF=aFFs.Append1();
BOPDS_InterfFF& aFF=aFFs(iX);
aFF.SetIndices(nF1, nF2); aFF.SetIndices(nF1, nF2);
// //
aFF.SetTolR3D(aTolR3D); aFF.SetTolR3D(aTolR3D);
@ -324,8 +320,7 @@ void BOPAlgo_PaveFiller::PerformFF()
const Handle(Geom_Curve)& aC3D= aIC.Curve(); const Handle(Geom_Curve)& aC3D= aIC.Curve();
bValid=IntTools_Tools::CheckCurve(aC3D, aTolR3D, aBox); bValid=IntTools_Tools::CheckCurve(aC3D, aTolR3D, aBox);
if (bValid) { if (bValid) {
iC=aVNC.Append()-1; BOPDS_Curve& aNC=aVNC.Append1();
BOPDS_Curve& aNC=aVNC(iC);
aNC.SetCurve(aIC); aNC.SetCurve(aIC);
aNC.SetBox(aBox); aNC.SetBox(aBox);
} }
@ -337,15 +332,13 @@ void BOPAlgo_PaveFiller::PerformFF()
const IntTools_PntOn2Faces& aPi=aPntsX(i); const IntTools_PntOn2Faces& aPi=aPntsX(i);
const gp_Pnt& aP=aPi.P1().Pnt(); const gp_Pnt& aP=aPi.P1().Pnt();
// //
iP=aVNP.Append()-1; BOPDS_Point& aNP=aVNP.Append1();
BOPDS_Point& aNP=aVNP(iP);
aNP.SetPnt(aP); aNP.SetPnt(aP);
} }
//}// if (aNbCs || aNbPs) //}// if (aNbCs || aNbPs)
}// if (bIsDone) { }// if (bIsDone) {
else {// 904/L1 else {// 904/L1
iX=aFFs.Append()-1; BOPDS_InterfFF& aFF=aFFs.Append1();
BOPDS_InterfFF& aFF=aFFs(iX);
aFF.SetIndices(nF1, nF2); aFF.SetIndices(nF1, nF2);
aNbCurves=0; aNbCurves=0;
aNbPoints=0; aNbPoints=0;
@ -2050,9 +2043,10 @@ void BOPAlgo_PaveFiller::RemoveUsedVertices(BOPDS_Curve& aNC,
BOPCol_DataMapOfShapeInteger& aMVI, BOPCol_DataMapOfShapeInteger& aMVI,
BOPDS_VectorOfCurve& aVC) BOPDS_VectorOfCurve& aVC)
{ {
Standard_Integer nV1, nV2; Standard_Integer nV1, nV2, iC;
// //
Standard_Integer iC=aVC.Append()-1; aVC.Append1();
iC=aVC.Extent()-1;
BOPDS_ListOfPaveBlock& aLPBC = aVC(iC).ChangePaveBlocks(); BOPDS_ListOfPaveBlock& aLPBC = aVC(iC).ChangePaveBlocks();
aLPBC.Append(aPB); aLPBC.Append(aPB);
// //

View File

@ -37,7 +37,6 @@ is
imported DataMapOfShapeAddress from BOPCol; imported DataMapOfShapeAddress from BOPCol;
imported DataMapOfTransientAddress from BOPCol; imported DataMapOfTransientAddress from BOPCol;
imported PListOfInteger from BOPCol; imported PListOfInteger from BOPCol;
imported VectorOfInteger from BOPCol;
imported MapOfShape from BOPCol; imported MapOfShape from BOPCol;
imported DataMapOfShapeShape from BOPCol; imported DataMapOfShapeShape from BOPCol;
imported DataMapOfShapeListOfShape from BOPCol; imported DataMapOfShapeListOfShape from BOPCol;

View File

@ -1,427 +0,0 @@
// Created by: Peter KURNEV
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef BOPCol_Array1_HeaderFile
#define BOPCol_Array1_HeaderFile
#include <NCollection_List.hxx>
#include <Standard.hxx>
#include <NCollection_BaseAllocator.hxx>
/**
* Class BOPCol_Array1 (dynamic array of objects)
*
* 1. The Array1 uses the allocator (in terms of NCollection_BaseAllocator)
* to allocate the memory.
* 2. The memory is allocated as a list of memory blocks. The size of the first
* block is myStartSize. The size of the other blocks is myIncrement
* 3 The Array1 is created with 0 length.
* 4. The Array1 must be initiated by invoke the method Init().
* Init() allocates the memory block for initial myStartSize elements.
* 5. The elements can be added by the method Append(theElement). the method
* Append(theElement) arranges theElement in
* a) previously allocated memory block (if it is possible)
* b) new allocated memory block (otherwise). The size of new blocks to
* allocate can be set [once only] by the method SetIncrement(theSize).
* 6. The contents of the element with index "i" can be queried or modified
* by the methods
* SetValue(i, theElement), Value(i), ChangeValue(i), operator()(i)
*/
//=======================================================================
//class : MemBlock
//
//=======================================================================
template <class Type> class BOPCol_MemBlock {
public:
// Ctor
BOPCol_MemBlock(const Handle(NCollection_BaseAllocator)& theAllocator) {
myI1=0;
myI2=0;
mySize=0;
myData=NULL;
myAllocator=theAllocator;
myNext=NULL;
}
// ~
~BOPCol_MemBlock(){
Clear();
}
// Clear
void Clear() {
if (myData) {
//Standard_Integer i;
Standard_Size i;
//
for (i=0; i<mySize; ++i) {
myData[i].~Type();
}
myAllocator->Free(myData);
//
myData=NULL;
mySize=0;
myNext=NULL;
}
}
// Allocate
void Allocate(const Standard_Size theSize) {
//Standard_Integer i;
Standard_Size i;
//
Clear();
mySize=theSize;
myData=(Type*)myAllocator->Allocate(theSize*sizeof(Type));
for (i=0; i<mySize; ++i) {
#ifdef BOPCol_Array1_Use_Allocator
new (myData+i) Type (myAllocator);
#else
new (myData+i) Type;
#endif
}
}
// SetRange
void SetRange(const Standard_Integer theI1,
const Standard_Integer theI2) {
myI1=theI1;
myI2=theI2;
}
// Range
void Range(Standard_Integer& theI1,
Standard_Integer& theI2) const {
theI1=myI1;
theI2=myI2;
}
// Contains
Standard_Boolean Contains(const Standard_Integer theIndex)const {
return (theIndex>=myI1 && theIndex<=myI2);
}
// SetValue
void SetValue(const Standard_Integer theIndex,
const Type& theValue) {
*(myData+theIndex-myI1)=theValue;
}
// Value
const Type& Value(const Standard_Integer theIndex)const {
return *(myData+theIndex-myI1);
}
// ChangeValue
Type& ChangeValue(const Standard_Integer theIndex) {
return *(myData+theIndex-myI1);
}
// SetNext
void SetNext(BOPCol_MemBlock<Type>* pNext) {
myNext=pNext;
}
// Next
BOPCol_MemBlock<Type>* Next() {
return myNext;
}
//
public:
BOPCol_MemBlock<Type>* myNext;
protected:
Standard_Integer myI1;
Standard_Integer myI2;
Standard_Size mySize;
Type *myData;
Handle(NCollection_BaseAllocator) myAllocator;
};
//=======================================================================
//class : BOPCol_Array1
//
//=======================================================================
template <class Type> class BOPCol_Array1 {
public:
typedef BOPCol_MemBlock<Type>* BOPCol_PMemBlock;
typedef BOPCol_MemBlock<Type> BOPCol_XMemBlock;
//=========
// Ctor
BOPCol_Array1(const Handle(NCollection_BaseAllocator)& theAllocator=0L) {
myStartSize=32;
myIncrement=8;
myExtent=0;
myPBlock=NULL;
myPBlock1=NULL;
//
if (theAllocator.IsNull()) {
myAllocator = NCollection_BaseAllocator::CommonBaseAllocator();
}
else {
myAllocator=theAllocator;
}
}
// ~
~BOPCol_Array1() {
Clear();
}
//===========
// Clear
void Clear() {
BOPCol_PMemBlock pBlock, pNext;
//
pBlock=myPBlock1;
while(pBlock) {
pNext=pBlock->Next();
//
pBlock->~BOPCol_XMemBlock();
myAllocator->Free(pBlock);
//
pBlock=pNext;
}
myPBlock1=NULL;
myPBlock=NULL;
myExtent=0;
}
// SetStartSize
void SetStartSize(const Standard_Integer theSize) {
if (theSize>0) {
myStartSize=theSize;
}
}
// SetIncrement
void SetIncrement(const Standard_Integer theSize){
if (theSize>0) {
myIncrement=theSize;
}
}
// Increment
Standard_Integer Increment()const {
return myIncrement;
}
// Extent
Standard_Integer Extent()const {
return myExtent;
}
// Size
Standard_Integer Size()const {
return myExtent;
}
// Size
Standard_Integer Length()const {
return myExtent;
}
// Init
void Init();
// Append(const Type& theValue)
Standard_Integer Append(const Type& theValue);
// Append()
Standard_Integer Append();
// SetValue
void SetValue(const Standard_Integer theIndex,
const Type& theValue);
// Value
const Type& operator()(const Standard_Integer theIndex)const;
//
const Type& Value(const Standard_Integer theIndex)const;
// ChangeValue
Type& operator()(const Standard_Integer theIndex);
//
Type& ChangeValue(const Standard_Integer theIndex);
//
// protected
protected:
//===========
//FindBlock
Standard_Boolean FindBlock(const Standard_Integer theIndex)const ;
//Copy ctor
BOPCol_Array1(const BOPCol_Array1&);
//Assign operator
BOPCol_Array1& operator =(const BOPCol_Array1& theOther);
//==========
// fields
protected:
Standard_Integer myStartSize;
Standard_Integer myIncrement;
Standard_Integer myExtent;
Type myDfltItem;
BOPCol_MemBlock<Type> * myPBlock;
BOPCol_MemBlock<Type> * myPBlock1;
Handle(NCollection_BaseAllocator) myAllocator;
};
//
//=======================================================================
//function : Init
//purpose :
//=======================================================================
template <class Type>
void BOPCol_Array1<Type>::Init() {
BOPCol_PMemBlock pBlock;
//
pBlock=(BOPCol_PMemBlock)myAllocator->Allocate(sizeof(BOPCol_MemBlock<Type>));
new (pBlock) BOPCol_MemBlock<Type>(myAllocator);
//
pBlock->Allocate(myStartSize);
pBlock->SetRange(0, myStartSize-1);
myPBlock1=pBlock;
myPBlock=pBlock;
}
//=======================================================================
//function : Append
//purpose :
//=======================================================================
template <class Type>
Standard_Integer BOPCol_Array1<Type>::Append(const Type& theValue) {
BOPCol_PMemBlock pBlock, pNext;
//
pBlock=myPBlock1;
for(;;) {
pNext=pBlock->myNext;
if(!pNext) {
myPBlock=pBlock;
break;
}
pBlock=pNext;
}
//
if (!myPBlock->Contains(myExtent)) {
//
pBlock=(BOPCol_PMemBlock)myAllocator->Allocate(sizeof(BOPCol_MemBlock<Type>));
new (pBlock) BOPCol_MemBlock<Type>(myAllocator);
//
pBlock->Allocate(myIncrement);
pBlock->SetRange(myExtent, myExtent+myIncrement-1);
//
myPBlock->myNext=pBlock;
//
myPBlock=pBlock;
}
//
myPBlock->SetValue(myExtent, theValue);
//
++myExtent;
//
return myExtent;
}
//=======================================================================
//function : Append
//purpose :
//=======================================================================
template <class Type>
Standard_Integer BOPCol_Array1<Type>::Append() {
BOPCol_PMemBlock pBlock, pNext;
//
pBlock=myPBlock1;
for(;;) {
pNext=pBlock->myNext;
if(!pNext) {
myPBlock=pBlock;
break;
}
pBlock=pNext;
}
//
if (!myPBlock->Contains(myExtent)) {
//
pBlock=(BOPCol_PMemBlock)myAllocator->Allocate(sizeof(BOPCol_MemBlock<Type>));
new (pBlock) BOPCol_MemBlock<Type>(myAllocator);
//
pBlock->Allocate(myIncrement);
pBlock->SetRange(myExtent, myExtent+myIncrement-1);
//
myPBlock->myNext=pBlock;
//
myPBlock=pBlock;
}
++myExtent;
//
return myExtent;
}
//=======================================================================
//function : SetValue
//purpose :
//=======================================================================
template <class Type>
void BOPCol_Array1<Type>::SetValue(const Standard_Integer theIndex,
const Type& theValue) {
if (FindBlock(theIndex)) {
myPBlock->SetValue(theIndex, theValue);
}
}
//=======================================================================
//function : operator()
//purpose :
//=======================================================================
template <class Type>
const Type& BOPCol_Array1<Type>::operator()(const Standard_Integer theIndex)const {
if (FindBlock(theIndex)) {
return myPBlock->Value(theIndex);
}
return myDfltItem;
}
//=======================================================================
//function : Value
//purpose :
//=======================================================================
template <class Type>
const Type& BOPCol_Array1<Type>::Value(const Standard_Integer theIndex)const {
return operator()(theIndex);
}
//=======================================================================
//function : operator
//purpose :
//=======================================================================
template <class Type>
Type& BOPCol_Array1<Type>::operator()(const Standard_Integer theIndex) {
if (FindBlock(theIndex)) {
return myPBlock->ChangeValue(theIndex);
}
return myDfltItem;
}
//=======================================================================
//function : ChangeValue
//purpose :
//=======================================================================
template <class Type>
Type& BOPCol_Array1<Type>::ChangeValue(const Standard_Integer theIndex) {
return operator()(theIndex);
}
//=======================================================================
//function : FindBlock
//purpose :
//=======================================================================
template <class Type>
Standard_Boolean BOPCol_Array1<Type>::FindBlock(const Standard_Integer theIndex)const {
Standard_Boolean bRet;
//
bRet=myPBlock->Contains(theIndex);
if(bRet) {
return bRet;
}
//
Standard_Integer i1, i2;
BOPCol_PMemBlock pBlock, *xPBlock;
//
xPBlock=(BOPCol_PMemBlock*)&myPBlock;
pBlock=myPBlock1;
//
i1=0;
i2=myStartSize-1;
do {
if (theIndex>=i1 && theIndex<=i2) {
*xPBlock=pBlock;
return !bRet;
}
//
i1=i2+1;
i2=i1+myIncrement-1;
pBlock=pBlock->myNext;
} while(pBlock);
//
return bRet;
}
#endif

View File

@ -1,4 +1,3 @@
BOPCol_Array1.hxx
BOPCol_DataMapOfShapeInteger.hxx BOPCol_DataMapOfShapeInteger.hxx
BOPCol_DataMapOfShapeReal.hxx BOPCol_DataMapOfShapeReal.hxx
BOPCol_MapOfInteger.hxx BOPCol_MapOfInteger.hxx
@ -14,7 +13,6 @@ BOPCol_ListOfShape.hxx
BOPCol_DataMapOfShapeAddress.hxx BOPCol_DataMapOfShapeAddress.hxx
BOPCol_DataMapOfTransientAddress.hxx BOPCol_DataMapOfTransientAddress.hxx
BOPCol_PListOfInteger.hxx BOPCol_PListOfInteger.hxx
BOPCol_VectorOfInteger.hxx
BOPCol_MapOfShape.hxx BOPCol_MapOfShape.hxx
BOPCol_DataMapOfShapeShape.hxx BOPCol_DataMapOfShapeShape.hxx
BOPCol_DataMapOfShapeListOfShape.hxx BOPCol_DataMapOfShapeListOfShape.hxx

View File

@ -91,24 +91,24 @@ BOPDS_DS::BOPDS_DS()
: :
myAllocator(NCollection_BaseAllocator::CommonBaseAllocator()), myAllocator(NCollection_BaseAllocator::CommonBaseAllocator()),
myArguments(myAllocator), myArguments(myAllocator),
myRanges(myAllocator), myRanges(0,myAllocator),
myLines(myAllocator), myLines(0, myAllocator),
myMapShapeIndex(100, myAllocator), myMapShapeIndex(100, myAllocator),
myPaveBlocksPool(myAllocator), myPaveBlocksPool(0,myAllocator),
myMapPBCB(100, myAllocator), myMapPBCB(100, myAllocator),
myFaceInfoPool(myAllocator), myFaceInfoPool(0, myAllocator),
myShapesSD(100, myAllocator), myShapesSD(100, myAllocator),
myInterfTB(100, myAllocator), myInterfTB(100, myAllocator),
myInterfVV(myAllocator), myInterfVV(0, myAllocator),
myInterfVE(myAllocator), myInterfVE(0, myAllocator),
myInterfVF(myAllocator), myInterfVF(0, myAllocator),
myInterfEE(myAllocator), myInterfEE(0, myAllocator),
myInterfEF(myAllocator), myInterfEF(0, myAllocator),
myInterfFF(myAllocator), myInterfFF(0, myAllocator),
myInterfVZ(myAllocator), myInterfVZ(0, myAllocator),
myInterfEZ(myAllocator), myInterfEZ(0, myAllocator),
myInterfFZ(myAllocator), myInterfFZ(0, myAllocator),
myInterfZZ(myAllocator), myInterfZZ(0, myAllocator),
myFuzzyValue(0.), myFuzzyValue(0.),
myToleranceMap(100, myAllocator) myToleranceMap(100, myAllocator)
{ {
@ -123,24 +123,24 @@ BOPDS_DS::BOPDS_DS(const Handle(NCollection_BaseAllocator)& theAllocator)
: :
myAllocator(theAllocator), myAllocator(theAllocator),
myArguments(myAllocator), myArguments(myAllocator),
myRanges(myAllocator), myRanges(0, myAllocator),
myLines(myAllocator), myLines(0, myAllocator),
myMapShapeIndex(100, myAllocator), myMapShapeIndex(100, myAllocator),
myPaveBlocksPool(myAllocator), myPaveBlocksPool(0, myAllocator),
myMapPBCB(100, myAllocator), myMapPBCB(100, myAllocator),
myFaceInfoPool(myAllocator), myFaceInfoPool(0, myAllocator),
myShapesSD(100, myAllocator), myShapesSD(100, myAllocator),
myInterfTB(100, myAllocator), myInterfTB(100, myAllocator),
myInterfVV(myAllocator), myInterfVV(0, myAllocator),
myInterfVE(myAllocator), myInterfVE(0, myAllocator),
myInterfVF(myAllocator), myInterfVF(0, myAllocator),
myInterfEE(myAllocator), myInterfEE(0, myAllocator),
myInterfEF(myAllocator), myInterfEF(0, myAllocator),
myInterfFF(myAllocator), myInterfFF(0, myAllocator),
myInterfVZ(myAllocator), myInterfVZ(0, myAllocator),
myInterfEZ(myAllocator), myInterfEZ(0, myAllocator),
myInterfFZ(myAllocator), myInterfFZ(0, myAllocator),
myInterfZZ(myAllocator), myInterfZZ(0, myAllocator),
myFuzzyValue(0.), myFuzzyValue(0.),
myToleranceMap(100, myAllocator) myToleranceMap(100, myAllocator)
{ {
@ -277,8 +277,9 @@ Standard_Integer BOPDS_DS::Append(const BOPDS_ShapeInfo& theSI)
{ {
Standard_Integer iX; Standard_Integer iX;
// //
iX=myLines.Append()-1; myLines.Append1()=theSI;
myLines(iX)=theSI; iX=myLines.Extent()-1;
//
return iX; return iX;
} }
//======================================================================= //=======================================================================
@ -289,8 +290,8 @@ Standard_Integer BOPDS_DS::Append(const TopoDS_Shape& theS)
{ {
Standard_Integer iX; Standard_Integer iX;
// //
iX=myLines.Append()-1; myLines.Append1().SetShape(theS);
myLines(iX).SetShape(theS); iX=myLines.Extent()-1;
return iX; return iX;
} }
//======================================================================= //=======================================================================
@ -320,6 +321,7 @@ BOPDS_ShapeInfo& BOPDS_DS::ChangeShapeInfo(const Standard_Integer theI)
//======================================================================= //=======================================================================
const TopoDS_Shape& BOPDS_DS::Shape(const Standard_Integer theI)const const TopoDS_Shape& BOPDS_DS::Shape(const Standard_Integer theI)const
{ {
const TopoDS_Shape& aS=ShapeInfo(theI).Shape(); const TopoDS_Shape& aS=ShapeInfo(theI).Shape();
return aS; return aS;
} }
@ -360,8 +362,7 @@ void BOPDS_DS::Init()
return; return;
} }
// //
myRanges.SetStartSize(aNb); myRanges.SetIncrement(aNb);
myRanges.Init();
// //
aIt.Initialize(myArguments); aIt.Initialize(myArguments);
for (; aIt.More(); aIt.Next()) { for (; aIt.More(); aIt.Next()) {
@ -379,10 +380,7 @@ void BOPDS_DS::Init()
aNbS=aNbS+aNbSx; aNbS=aNbS+aNbSx;
} }
// //
myLines.SetStartSize(2*aNbS); myLines.SetIncrement(2*aNbS);
myLines.SetIncrement(aNbS);
myLines.Init();
//
//-----------------------------------------------------scope_1 f //-----------------------------------------------------scope_1 f
aAllocator=new NCollection_IncAllocator(); aAllocator=new NCollection_IncAllocator();
// //
@ -651,17 +649,10 @@ void BOPDS_DS::Init()
aMI.Clear(); aMI.Clear();
aAllocator.Nullify(); aAllocator.Nullify();
//-----------------------------------------------------scope_1 t //-----------------------------------------------------scope_1 t
//
// 3 myPaveBlocksPool // 3 myPaveBlocksPool
myPaveBlocksPool.SetStartSize(aNbE);
myPaveBlocksPool.SetIncrement(aNbE);
myPaveBlocksPool.Init();
//
// 4. myFaceInfoPool // 4. myFaceInfoPool
myFaceInfoPool.SetStartSize(aNbF); myPaveBlocksPool.SetIncrement(aNbE);
myFaceInfoPool.SetIncrement(aNbF); myFaceInfoPool.SetIncrement(aNbF);
myFaceInfoPool.Init();
//
} }
//======================================================================= //=======================================================================
//function : InitShape //function : InitShape
@ -934,8 +925,8 @@ void BOPDS_DS::InitPaveBlocks(const Standard_Integer theI)
} }
} }
// //
iRef = myPaveBlocksPool.Append() - 1; BOPDS_ListOfPaveBlock &aLPB=myPaveBlocksPool.Append1();
BOPDS_ListOfPaveBlock &aLPB=myPaveBlocksPool(iRef); iRef=myPaveBlocksPool.Extent()-1;
// //
aPB->Update(aLPB, Standard_False); aPB->Update(aLPB, Standard_False);
aSI.SetReference(iRef); aSI.SetReference(iRef);
@ -1265,8 +1256,8 @@ void BOPDS_DS::InitFaceInfo(const Standard_Integer theI)
Standard_Integer iRef; Standard_Integer iRef;
// //
BOPDS_ShapeInfo& aSI=ChangeShapeInfo(theI); BOPDS_ShapeInfo& aSI=ChangeShapeInfo(theI);
iRef=myFaceInfoPool.Append()-1; BOPDS_FaceInfo &aFI=myFaceInfoPool.Append1();
BOPDS_FaceInfo &aFI=myFaceInfoPool(iRef); iRef=myFaceInfoPool.Extent()-1;
aSI.SetReference(iRef); aSI.SetReference(iRef);
// //
aFI.SetIndex(theI); aFI.SetIndex(theI);

View File

@ -496,27 +496,11 @@ class BOPDS_InterfFF : public BOPDS_Interf {
myTangentFaces(Standard_False), myTangentFaces(Standard_False),
myTolR3D(1.e-7), myTolR3D(1.e-7),
myTolR2D(1.e-7), myTolR2D(1.e-7),
myCurves(myAllocator), myCurves(0, myAllocator),
myPoints(myAllocator) { myPoints(0, myAllocator)
{
} }
// //
/**
* Constructor
* @param theAllocator
* allocator to manage the memory
*/
/*
BOPDS_InterfFF(const Handle(NCollection_BaseAllocator)& theAllocator)
:
BOPDS_Interf(theAllocator),
myTangentFaces(Standard_False),
myTolR3D(1.e-7),
myTolR2D(1.e-7),
myCurves(myAllocator),
myPoints(myAllocator) {
}
*/
//
/** /**
* Destructor * Destructor
*/ */
@ -530,8 +514,17 @@ class BOPDS_InterfFF : public BOPDS_Interf {
* @param theNbPoints * @param theNbPoints
* number of intersection points * number of intersection points
*/ */
void Init(const Standard_Integer theNbCurves, void Init(const Standard_Integer theNbCurves,
const Standard_Integer theNbPoints) { const Standard_Integer theNbPoints) {
//modified by NIZNHY-PKV Mon Jan 26 09:01:06 2015f
if (theNbCurves>0) {
myCurves.SetIncrement(theNbCurves);
}
if (theNbPoints>0) {
myPoints.SetIncrement(theNbPoints);
}
/*
if (theNbCurves>0) { if (theNbCurves>0) {
myCurves.SetStartSize(theNbCurves); myCurves.SetStartSize(theNbCurves);
myCurves.SetIncrement(theNbCurves); myCurves.SetIncrement(theNbCurves);
@ -542,6 +535,8 @@ class BOPDS_InterfFF : public BOPDS_Interf {
myPoints.SetIncrement(theNbPoints); myPoints.SetIncrement(theNbPoints);
myPoints.Init(); myPoints.Init();
} }
*/
//modified by NIZNHY-PKV Mon Jan 26 09:01:12 2015t
} }
/** /**
* Modifier * Modifier

View File

@ -84,11 +84,16 @@ BOPDS_Iterator::BOPDS_Iterator()
myAllocator(NCollection_BaseAllocator::CommonBaseAllocator()), myAllocator(NCollection_BaseAllocator::CommonBaseAllocator()),
myRunParallel(Standard_False) myRunParallel(Standard_False)
{ {
Standard_Integer i, aNb;
//
myDS=NULL; myDS=NULL;
myLength=0; myLength=0;
// //
myLists.SetStartSize(BOPDS_DS::NbInterfTypes()); aNb=BOPDS_DS::NbInterfTypes();
myLists.Init(); myLists.SetIncrement(aNb);
for (i=0; i<aNb; ++i) {
myLists.Append1();
}
} }
//======================================================================= //=======================================================================
//function : //function :
@ -98,14 +103,19 @@ BOPDS_Iterator::BOPDS_Iterator
(const Handle(NCollection_BaseAllocator)& theAllocator) (const Handle(NCollection_BaseAllocator)& theAllocator)
: :
myAllocator(theAllocator), myAllocator(theAllocator),
myLists(theAllocator), myLists(0, theAllocator),
myRunParallel(Standard_False) myRunParallel(Standard_False)
{ {
Standard_Integer i, aNb;
//
myDS=NULL; myDS=NULL;
myLength=0; myLength=0;
// //
myLists.SetStartSize(BOPDS_DS::NbInterfTypes()); aNb=BOPDS_DS::NbInterfTypes();
myLists.Init(); myLists.SetIncrement(aNb);
for (i=0; i<aNb; ++i) {
myLists.Append1();
}
} }
//======================================================================= //=======================================================================
//function : ~ //function : ~

View File

@ -15,14 +15,9 @@
#ifndef BOPDS_VectorOfCurve_HeaderFile #ifndef BOPDS_VectorOfCurve_HeaderFile
#define BOPDS_VectorOfCurve_HeaderFile #define BOPDS_VectorOfCurve_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Curve.hxx> #include <BOPDS_Curve.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_Curve> BOPDS_VectorOfCurve;
typedef BOPCol_Array1<BOPDS_Curve> BOPDS_VectorOfCurve;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,13 +15,9 @@
#ifndef BOPDS_VectorOfFaceInfo_HeaderFile #ifndef BOPDS_VectorOfFaceInfo_HeaderFile
#define BOPDS_VectorOfFaceInfo_HeaderFile #define BOPDS_VectorOfFaceInfo_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_FaceInfo.hxx> #include <BOPDS_FaceInfo.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_FaceInfo> BOPDS_VectorOfFaceInfo;
typedef BOPCol_Array1<BOPDS_FaceInfo> BOPDS_VectorOfFaceInfo;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,9 +15,9 @@
#ifndef BOPDS_VectorOfIndexRange_HeaderFile #ifndef BOPDS_VectorOfIndexRange_HeaderFile
#define BOPDS_VectorOfIndexRange_HeaderFile #define BOPDS_VectorOfIndexRange_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_IndexRange.hxx> #include <BOPDS_IndexRange.hxx>
typedef BOPCol_Array1<BOPDS_IndexRange> BOPDS_VectorOfIndexRange; typedef BOPCol_NCVector<BOPDS_IndexRange> BOPDS_VectorOfIndexRange;
#endif #endif

View File

@ -15,11 +15,9 @@
#ifndef BOPDS_VectorOfInterfEE_HeaderFile #ifndef BOPDS_VectorOfInterfEE_HeaderFile
#define BOPDS_VectorOfInterfEE_HeaderFile #define BOPDS_VectorOfInterfEE_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Interf.hxx> #include <BOPDS_Interf.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_InterfEE> BOPDS_VectorOfInterfEE;
typedef BOPCol_Array1<BOPDS_InterfEE> BOPDS_VectorOfInterfEE;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,12 +15,9 @@
#ifndef BOPDS_VectorOfInterfEF_HeaderFile #ifndef BOPDS_VectorOfInterfEF_HeaderFile
#define BOPDS_VectorOfInterfEF_HeaderFile #define BOPDS_VectorOfInterfEF_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Interf.hxx> #include <BOPDS_Interf.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_InterfEF> BOPDS_VectorOfInterfEF;
typedef BOPCol_Array1<BOPDS_InterfEF> BOPDS_VectorOfInterfEF;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -16,11 +16,9 @@
#ifndef BOPDS_VectorOfInterfEZ_HeaderFile #ifndef BOPDS_VectorOfInterfEZ_HeaderFile
#define BOPDS_VectorOfInterfEZ_HeaderFile #define BOPDS_VectorOfInterfEZ_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Interf.hxx> #include <BOPDS_Interf.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_InterfEZ> BOPDS_VectorOfInterfEZ;
typedef BOPCol_Array1<BOPDS_InterfEZ> BOPDS_VectorOfInterfEZ;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,12 +15,9 @@
#ifndef BOPDS_VectorOfInterfFF_HeaderFile #ifndef BOPDS_VectorOfInterfFF_HeaderFile
#define BOPDS_VectorOfInterfFF_HeaderFile #define BOPDS_VectorOfInterfFF_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Interf.hxx> #include <BOPDS_Interf.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_InterfFF> BOPDS_VectorOfInterfFF;
typedef BOPCol_Array1<BOPDS_InterfFF> BOPDS_VectorOfInterfFF;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -16,11 +16,9 @@
#ifndef BOPDS_VectorOfInterfFZ_HeaderFile #ifndef BOPDS_VectorOfInterfFZ_HeaderFile
#define BOPDS_VectorOfInterfFZ_HeaderFile #define BOPDS_VectorOfInterfFZ_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Interf.hxx> #include <BOPDS_Interf.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_InterfFZ> BOPDS_VectorOfInterfFZ;
typedef BOPCol_Array1<BOPDS_InterfFZ> BOPDS_VectorOfInterfFZ;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,11 +15,9 @@
#ifndef BOPDS_VectorOfInterfVE_HeaderFile #ifndef BOPDS_VectorOfInterfVE_HeaderFile
#define BOPDS_VectorOfInterfVE_HeaderFile #define BOPDS_VectorOfInterfVE_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Interf.hxx> #include <BOPDS_Interf.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_InterfVE> BOPDS_VectorOfInterfVE;
typedef BOPCol_Array1<BOPDS_InterfVE> BOPDS_VectorOfInterfVE;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,11 +15,9 @@
#ifndef BOPDS_VectorOfInterfVF_HeaderFile #ifndef BOPDS_VectorOfInterfVF_HeaderFile
#define BOPDS_VectorOfInterfVF_HeaderFile #define BOPDS_VectorOfInterfVF_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Interf.hxx> #include <BOPDS_Interf.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_InterfVF> BOPDS_VectorOfInterfVF;
typedef BOPCol_Array1<BOPDS_InterfVF> BOPDS_VectorOfInterfVF;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,11 +15,9 @@
#ifndef BOPDS_VectorOfInterfVV_HeaderFile #ifndef BOPDS_VectorOfInterfVV_HeaderFile
#define BOPDS_VectorOfInterfVV_HeaderFile #define BOPDS_VectorOfInterfVV_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Interf.hxx> #include <BOPDS_Interf.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_InterfVV> BOPDS_VectorOfInterfVV;
typedef BOPCol_Array1<BOPDS_InterfVV> BOPDS_VectorOfInterfVV;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -16,11 +16,9 @@
#ifndef BOPDS_VectorOfInterfVZ_HeaderFile #ifndef BOPDS_VectorOfInterfVZ_HeaderFile
#define BOPDS_VectorOfInterfVZ_HeaderFile #define BOPDS_VectorOfInterfVZ_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Interf.hxx> #include <BOPDS_Interf.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_InterfVZ> BOPDS_VectorOfInterfVZ;
typedef BOPCol_Array1<BOPDS_InterfVZ> BOPDS_VectorOfInterfVZ;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -16,11 +16,9 @@
#ifndef BOPDS_VectorOfInterfZZ_HeaderFile #ifndef BOPDS_VectorOfInterfZZ_HeaderFile
#define BOPDS_VectorOfInterfZZ_HeaderFile #define BOPDS_VectorOfInterfZZ_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Interf.hxx> #include <BOPDS_Interf.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_InterfZZ> BOPDS_VectorOfInterfZZ;
typedef BOPCol_Array1<BOPDS_InterfZZ> BOPDS_VectorOfInterfZZ;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,13 +15,9 @@
#ifndef BOPDS_VectorOfListOfPassKeyBoolean_HeaderFile #ifndef BOPDS_VectorOfListOfPassKeyBoolean_HeaderFile
#define BOPDS_VectorOfListOfPassKeyBoolean_HeaderFile #define BOPDS_VectorOfListOfPassKeyBoolean_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_ListOfPassKeyBoolean.hxx> #include <BOPDS_ListOfPassKeyBoolean.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_ListOfPassKeyBoolean> BOPDS_VectorOfListOfPassKeyBoolean;
typedef BOPCol_Array1<BOPDS_ListOfPassKeyBoolean> BOPDS_VectorOfListOfPassKeyBoolean;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,14 +15,10 @@
#ifndef BOPDS_VectorOfListOfPaveBlock_HeaderFile #ifndef BOPDS_VectorOfListOfPaveBlock_HeaderFile
#define BOPDS_VectorOfListOfPaveBlock_HeaderFile #define BOPDS_VectorOfListOfPaveBlock_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_PaveBlock.hxx> #include <BOPDS_PaveBlock.hxx>
#include <BOPDS_ListOfPaveBlock.hxx> #include <BOPDS_ListOfPaveBlock.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_ListOfPaveBlock> BOPDS_VectorOfListOfPaveBlock;
typedef BOPCol_Array1<BOPDS_ListOfPaveBlock> BOPDS_VectorOfListOfPaveBlock;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,14 +15,10 @@
#ifndef BOPDS_VectorOfPnt_HeaderFile #ifndef BOPDS_VectorOfPnt_HeaderFile
#define BOPDS_VectorOfPnt_HeaderFile #define BOPDS_VectorOfPnt_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_Point.hxx> #include <BOPDS_Point.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_Point> BOPDS_VectorOfPoint;
typedef BOPCol_Array1<BOPDS_Point> BOPDS_VectorOfPoint;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,13 +15,9 @@
#ifndef BOPDS_VectorOfShapeInfo_HeaderFile #ifndef BOPDS_VectorOfShapeInfo_HeaderFile
#define BOPDS_VectorOfShapeInfo_HeaderFile #define BOPDS_VectorOfShapeInfo_HeaderFile
#include <BOPCol_Array1.hxx> #include <BOPCol_NCVector.hxx>
#include <BOPDS_ShapeInfo.hxx> #include <BOPDS_ShapeInfo.hxx>
#define BOPCol_Array1_Use_Allocator typedef BOPCol_NCVector<BOPDS_ShapeInfo> BOPDS_VectorOfShapeInfo;
typedef BOPCol_Array1<BOPDS_ShapeInfo> BOPDS_VectorOfShapeInfo;
#undef BOPCol_Array1_Use_Allocator
#endif #endif

View File

@ -15,7 +15,7 @@
#ifndef BOPTest_Chronometer_HeaderFile #ifndef BOPTest_Chronometer_HeaderFile
#define BOPTest_Chronometer_HeaderFile #define BOPTest_Chronometer_HeaderFile
// //
#include <OSD_Chronometer.hxx> #include <OSD_Timer.hxx>
//======================================================================= //=======================================================================
//class : BOPTest_Chronometer //class : BOPTest_Chronometer
//purpose : //purpose :
@ -35,7 +35,7 @@ class BOPTest_Chronometer {
// //
void Stop() { void Stop() {
myChronometer.Stop(); myChronometer.Stop();
myChronometer.Show(myTime); myTime=myChronometer.ElapsedTime();
} }
// //
double Time() const{ double Time() const{
@ -43,7 +43,7 @@ class BOPTest_Chronometer {
}; };
// //
protected: protected:
OSD_Chronometer myChronometer; OSD_Timer myChronometer;
double myTime; double myTime;
}; };

View File

@ -200,6 +200,14 @@ public: //! @name public API
//! Empty the vector of its objects //! Empty the vector of its objects
Standard_EXPORT void Clear(); Standard_EXPORT void Clear();
// to set the size of increment dynamically
void SetIncrement(const Standard_Integer aIncrement) {
if (aIncrement > 0) {
if (!myIncrement) {
myIncrement=aIncrement;
}
}
}
protected: //! @name Protected fields protected: //! @name Protected fields

View File

@ -453,6 +453,11 @@ Standard_Boolean QANewModTopOpe_Tools::EdgeSectionAncestors(const BOPAlgo_PPaveF
nb = pDS->NbSourceShapes(); nb = pDS->NbSourceShapes();
nE = pDS->Index(theEdge); nE = pDS->Index(theEdge);
//
if (nE<0) {
return Standard_False;
}
//
const BOPDS_ListOfPaveBlock& aLPB1 = pDS->PaveBlocks(nE); const BOPDS_ListOfPaveBlock& aLPB1 = pDS->PaveBlocks(nE);
if (!aLPB1.Extent()) { if (!aLPB1.Extent()) {
return Standard_False; return Standard_False;