myEntryPoint=1;
PerformInternal(*pPF, aPS.Next(1));
}
+
//=======================================================================
//function : PerformInternal1
//purpose :
}
//
Message_ProgressScope aPS(theRange, "PerformInternal", 100);
+ NCollection_Array1<Standard_Real> aSteps = BOPAlgo_Builder::AnalyzeProgress();
// 3. Fill Images
// 3.1 Vertices
- FillImagesVertices(aPS.Next(5)); // 5
+ FillImagesVertices(aPS.Next(aSteps(0)));
if (HasErrors()) {
return;
}
return;
}
// 3.2 Edges
- FillImagesEdges(aPS.Next(5)); // 10
+ FillImagesEdges(aPS.Next(aSteps(1)));
if (HasErrors()) {
return;
}
}
//
// 3.3 Wires
- FillImagesContainers(TopAbs_WIRE, aPS.Next(10)); // 20
+ FillImagesContainers(TopAbs_WIRE, aPS.Next(aSteps(2)));
if (HasErrors()) {
return;
}
}
//
// 3.4 Faces
- FillImagesFaces(aPS.Next(30)); // 50
+ FillImagesFaces(aPS.Next(aSteps(3)));
if (HasErrors()) {
return;
}
}
//
// 3.5 Shells
- FillImagesContainers(TopAbs_SHELL, aPS.Next(10)); // 60
+ FillImagesContainers(TopAbs_SHELL, aPS.Next(aSteps(4)));
if (HasErrors()) {
return;
}
}
//
// 3.6 Solids
- FillImagesSolids(aPS.Next(5)); // 65
+ FillImagesSolids(aPS.Next(aSteps(5)));
if (HasErrors()) {
return;
}
}
//
// 3.7 CompSolids
- FillImagesContainers(TopAbs_COMPSOLID, aPS.Next(10)); // 75
+ FillImagesContainers(TopAbs_COMPSOLID, aPS.Next(aSteps(6)));
if (HasErrors()) {
return;
}
}
//
// 3.8 Compounds
- FillImagesCompounds(aPS.Next(10)); // 85
+ FillImagesCompounds(aPS.Next(aSteps(7)));
if (HasErrors()) {
return;
}
}
//
// 4.BuildShape;
- BuildShape(aPS.Next(15)); // 100
+ BuildShape();
if (HasErrors()) {
return;
}
//function : BuildShape
//purpose :
//=======================================================================
-void BOPAlgo_BOP::BuildShape(const Message_ProgressRange& theRange)
+void BOPAlgo_BOP::BuildShape()
{
- Message_ProgressScope aPS(theRange, "BuildShape", 1);
if (myDims[0] == 3 && myDims[1] == 3)
{
// For the Boolean operation on solids we need to check first
TopTools_MapOfShape aMInpFence;
aItLS.Initialize(aLSC);
for (; aItLS.More(); aItLS.Next()) {
- if (UserBreak(aPS))
- {
- return;
- }
const TopoDS_Shape& aSC = aItLS.Value();
aMInpFence.Add(aSC);
//
//
aIt.Initialize(aSC);
for (; aIt.More(); aIt.Next()) {
- if (UserBreak(aPS))
- {
- return;
- }
const TopoDS_Shape& aS = aIt.Value();
if (myImages.IsBound(aS)) {
const TopTools_ListOfShape& aLSIm = myImages.Find(aS);
//
aItLCB.Initialize(aLCB);
for (; aItLCB.More(); aItLCB.Next()) {
- if (UserBreak(aPS))
- {
- return;
- }
BOPTools_AlgoTools::MakeContainer(aType, aRCB);
//
const TopoDS_Shape& aCB = aItLCB.Value();
aItLS.Initialize(aLSNonCont);
for (; aItLS.More(); aItLS.Next())
{
- if (UserBreak(aPS))
- {
- return;
- }
const TopoDS_Shape& aS = aItLS.Value();
if (myImages.IsBound(aS))
{
//=======================================================================
void BOPAlgo_PaveFiller::Init(const Message_ProgressRange& theRange)
{
-
if (!myArguments.Extent()) {
- Message_ProgressScope aPS(theRange, "Init", 1);
AddError (new BOPAlgo_AlertTooFewArguments);
return;
}
Message_ProgressScope aPS(theRange, "Init", myArguments.Size());
TopTools_ListIteratorOfListOfShape aIt(myArguments);
for (; aIt.More(); aIt.Next(), aPS.Next()) {
- if (UserBreak(aPS))
- {
- return;
- }
if (aIt.Value().IsNull()) {
AddError (new BOPAlgo_AlertNullInputShapes);
return;