1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0026150: BRepOffsetAPI_ThruSections doesn't implement history method Generated().

Virtual method Generated is redefined. Now it returns:

- chain of generated faces for sub-edge of a profile;
- chain of generated edges for sub-vertex of a profile;
- bunch of chains of generated edges for start or end vertex if it is degenerated section.

Correction according to the remarks.

Fix compiler's warnings and add 4 new test cases.

Correction of mistake.

Compilation warnings are gone.
This commit is contained in:
jgv
2017-01-24 16:27:13 +03:00
committed by bugmaster
parent 56689b2700
commit 50258e776a
23 changed files with 1621 additions and 25 deletions

View File

@@ -745,6 +745,24 @@ const TopTools_ListOfShape& BRepFill_CompatibleWires::GeneratedShapes
}
}
//==========================================================================
//function : IsDegeneratedFirstSection
//purpose :
//==========================================================================
Standard_Boolean BRepFill_CompatibleWires::IsDegeneratedFirstSection() const
{
return myDegen1;
}
//=========================================================================
//function : IsDegeneratedLastSection
//purpose :
//=========================================================================
Standard_Boolean BRepFill_CompatibleWires::IsDegeneratedLastSection() const
{
return myDegen2;
}
//=======================================================================
//function : Perform
@@ -1223,7 +1241,22 @@ void BRepFill_CompatibleWires::
}
// blocking sections?
if (vClosed) myWork(myWork.Length()) = myWork(1);
if (vClosed)
{
TopoDS_Iterator iter1(myWork(myWork.Length())), iter2(myWork(1));
for (; iter1.More(); iter1.Next(), iter2.Next())
{
const TopoDS_Shape& anEdge = iter1.Value();
const TopoDS_Shape& aNewEdge = iter2.Value();
if (!anEdge.IsSame(aNewEdge))
{
TopTools_SequenceOfShape aSeq;
aSeq.Append(aNewEdge);
EdgeNewEdges.Bind(anEdge, aSeq);
}
}
myWork(myWork.Length()) = myWork(1);
}
// check the number of edges for debug
Standard_Integer nbmax=0, nbmin=0;
@@ -1442,7 +1475,8 @@ void BRepFill_CompatibleWires::SameNumberByACR(const Standard_Boolean report)
}
// blocking sections ?
if (vClosed) myWork(myWork.Length()) = myWork(1);
if (vClosed)
myWork(myWork.Length()) = myWork(1);
// check the number of edges for debug
nbmax = 0;
@@ -2028,7 +2062,8 @@ void BRepFill_CompatibleWires::ComputeOrigin(const Standard_Boolean /*polar*/ )
#endif
// blocking sections ?
if (vClosed) myWork(myWork.Length()) = myWork(1);
if (vClosed)
myWork(myWork.Length()) = myWork(1);
}
//=======================================================================
@@ -2190,5 +2225,6 @@ void BRepFill_CompatibleWires::SearchOrigin()
}
// blocking sections ?
if (vClosed) myWork(myWork.Length()) = myWork(1);
if (vClosed)
myWork(myWork.Length()) = myWork(1);
}