0032330: Modeling Algorithms - Extend Offset algorithm with Progress Indicator and User Break

Add progress indicator to BRepOffset_MakeOffset::MakeOffsetShape().
This commit is contained in:
akaftasev
2021-03-18 19:44:11 +03:00
committed by smoskvin
parent 13b36bb14f
commit 7c6fecf9a8
20 changed files with 1085 additions and 408 deletions

View File

@@ -41,14 +41,15 @@ void BRepOffsetAPI_MakeOffsetShape::PerformByJoin
const Standard_Boolean Intersection,
const Standard_Boolean SelfInter,
const GeomAbs_JoinType Join,
const Standard_Boolean RemoveIntEdges)
const Standard_Boolean RemoveIntEdges,
const Message_ProgressRange& theRange)
{
NotDone();
myLastUsedAlgo = OffsetAlgo_JOIN;
myOffsetShape.Initialize (S,Offset,Tol,Mode,Intersection,SelfInter,
Join, Standard_False, RemoveIntEdges);
myOffsetShape.MakeOffsetShape();
myOffsetShape.MakeOffsetShape(theRange);
if (!myOffsetShape.IsDone())
return;

View File

@@ -114,7 +114,8 @@ public:
const Standard_Boolean Intersection = Standard_False,
const Standard_Boolean SelfInter = Standard_False,
const GeomAbs_JoinType Join = GeomAbs_Arc,
const Standard_Boolean RemoveIntEdges = Standard_False);
const Standard_Boolean RemoveIntEdges = Standard_False,
const Message_ProgressRange& theRange = Message_ProgressRange());
//! Returns instance of the unrelying intersection / arc algorithm.
Standard_EXPORT virtual const BRepOffset_MakeOffset& MakeOffset() const;

View File

@@ -41,12 +41,13 @@ void BRepOffsetAPI_MakeThickSolid::MakeThickSolidByJoin
(const TopoDS_Shape& S,
const TopTools_ListOfShape& ClosingFaces,
const Standard_Real Offset,
const Standard_Real Tol,
const Standard_Real Tol,
const BRepOffset_Mode Mode,
const Standard_Boolean Intersection,
const Standard_Boolean SelfInter,
const GeomAbs_JoinType Join,
const Standard_Boolean RemoveIntEdges)
const Standard_Boolean RemoveIntEdges,
const Message_ProgressRange& theRange)
{
NotDone();
myLastUsedAlgo = OffsetAlgo_JOIN;
@@ -57,7 +58,7 @@ void BRepOffsetAPI_MakeThickSolid::MakeThickSolidByJoin
for (; it.More(); it.Next())
myOffsetShape.AddFace(TopoDS::Face(it.Value()));
myOffsetShape.MakeThickSolid();
myOffsetShape.MakeThickSolid(theRange);
if (!myOffsetShape.IsDone())
return;

View File

@@ -110,7 +110,8 @@ public:
const Standard_Boolean Intersection = Standard_False,
const Standard_Boolean SelfInter = Standard_False,
const GeomAbs_JoinType Join = GeomAbs_Arc,
const Standard_Boolean RemoveIntEdges = Standard_False);
const Standard_Boolean RemoveIntEdges = Standard_False,
const Message_ProgressRange& theRange = Message_ProgressRange());
// Does nothing.
Standard_EXPORT virtual void Build(const Message_ProgressRange& theRange = Message_ProgressRange()) Standard_OVERRIDE;