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()
{
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);
@ -93,7 +90,7 @@ void BOPAlgo_PaveFiller::PerformVZ()
void BOPAlgo_PaveFiller::PerformEZ()
{
Standard_Boolean bJustAdd, bHasInterf;
Standard_Integer iSize, nE, nZ, i;
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);
//

View File

@ -37,7 +37,6 @@ is
imported DataMapOfShapeAddress from BOPCol;
imported DataMapOfTransientAddress from BOPCol;
imported PListOfInteger from BOPCol;
imported VectorOfInteger from BOPCol;
imported MapOfShape from BOPCol;
imported DataMapOfShapeShape 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_DataMapOfShapeReal.hxx
BOPCol_MapOfInteger.hxx
@ -14,7 +13,6 @@ BOPCol_ListOfShape.hxx
BOPCol_DataMapOfShapeAddress.hxx
BOPCol_DataMapOfTransientAddress.hxx
BOPCol_PListOfInteger.hxx
BOPCol_VectorOfInteger.hxx
BOPCol_MapOfShape.hxx
BOPCol_DataMapOfShapeShape.hxx
BOPCol_DataMapOfShapeListOfShape.hxx

View File

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

View File

@ -496,27 +496,11 @@ class BOPDS_InterfFF : public BOPDS_Interf {
myTangentFaces(Standard_False),
myTolR3D(1.e-7),
myTolR2D(1.e-7),
myCurves(myAllocator),
myPoints(myAllocator) {
myCurves(0, 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
*/
@ -530,8 +514,17 @@ class BOPDS_InterfFF : public BOPDS_Interf {
* @param theNbPoints
* number of intersection points
*/
void Init(const Standard_Integer theNbCurves,
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) {
myCurves.SetStartSize(theNbCurves);
myCurves.SetIncrement(theNbCurves);
@ -542,6 +535,8 @@ class BOPDS_InterfFF : public BOPDS_Interf {
myPoints.SetIncrement(theNbPoints);
myPoints.Init();
}
*/
//modified by NIZNHY-PKV Mon Jan 26 09:01:12 2015t
}
/**
* Modifier

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -200,6 +200,14 @@ public: //! @name public API
//! Empty the vector of its objects
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

View File

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