1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +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()
{
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;
BOPCol_DataMapIteratorOfDataMapOfIntegerListOfInteger aItMILI;
BOPCol_ListIteratorOfListOfInteger aItLI, aItLI2;
@@ -62,9 +62,7 @@
aSIn.SetShapeType(TopAbs_VERTEX);
BOPDS_VectorOfInterfVV& aVVs=myDS->InterfVV();
aVVs.SetStartSize(aSize);
aVVs.SetIncrement(aSize);
aVVs.Init();
//
//-----------------------------------------------------scope f
aAllocator=new NCollection_IncAllocator();
@@ -123,8 +121,8 @@
n2=aItLI2.Value();
//
myDS->AddInterf(n1, n2);
iX=aVVs.Append()-1;
BOPDS_InterfVV& aVV=aVVs(iX);
BOPDS_InterfVV& aVV=aVVs.Append1();
//
aVV.SetIndices(n1, n2);
aVV.SetIndexNew(n);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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