mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2025-01-04 05:40:35 +05:00
Fix bug 0020096: EDF 897 GEOM MakeFilling with a compound de wires.
This commit is contained in:
parent
27eae2a6a0
commit
f20d5f5cc0
@ -106,12 +106,19 @@ Standard_Integer GEOMImpl_FillingDriver::Execute(TFunction_Logbook& log) const
|
|||||||
Standard_Real First, Last;
|
Standard_Real First, Last;
|
||||||
Handle(Geom_Curve) C;
|
Handle(Geom_Curve) C;
|
||||||
|
|
||||||
if(!isApprox) {
|
TopoDS_Iterator It (aShape);
|
||||||
|
for (; It.More(); It.Next()) {
|
||||||
|
Scurrent = It.Value();
|
||||||
|
if (Scurrent.ShapeType() != TopAbs_EDGE)
|
||||||
|
Standard_ConstructionError::Raise("The argument compound must contain only edges");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isApprox) {
|
||||||
// make filling as in old version of SALOME (before 4.1.1)
|
// make filling as in old version of SALOME (before 4.1.1)
|
||||||
GeomFill_SectionGenerator Section;
|
GeomFill_SectionGenerator Section;
|
||||||
Standard_Integer i = 0;
|
Standard_Integer i = 0;
|
||||||
for (Ex.Init(aShape, TopAbs_EDGE); Ex.More(); Ex.Next()) {
|
for (Ex.Init(aShape, TopAbs_EDGE); Ex.More(); Ex.Next()) {
|
||||||
Scurrent = Ex.Current() ;
|
Scurrent = Ex.Current();
|
||||||
if (Scurrent.IsNull() || Scurrent.ShapeType() != TopAbs_EDGE) return 0;
|
if (Scurrent.IsNull() || Scurrent.ShapeType() != TopAbs_EDGE) return 0;
|
||||||
if (BRep_Tool::Degenerated(TopoDS::Edge(Scurrent))) continue;
|
if (BRep_Tool::Degenerated(TopoDS::Edge(Scurrent))) continue;
|
||||||
C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last);
|
C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last);
|
||||||
@ -146,7 +153,7 @@ Standard_Integer GEOMImpl_FillingDriver::Execute(TFunction_Logbook& log) const
|
|||||||
// add curves from edges to sequence and find maximal
|
// add curves from edges to sequence and find maximal
|
||||||
// number of poles if some of them are bsplines
|
// number of poles if some of them are bsplines
|
||||||
for (Ex.Init(aShape, TopAbs_EDGE); Ex.More(); Ex.Next()) {
|
for (Ex.Init(aShape, TopAbs_EDGE); Ex.More(); Ex.Next()) {
|
||||||
Scurrent = Ex.Current() ;
|
Scurrent = Ex.Current();
|
||||||
if (Scurrent.IsNull() || Scurrent.ShapeType() != TopAbs_EDGE) return 0;
|
if (Scurrent.IsNull() || Scurrent.ShapeType() != TopAbs_EDGE) return 0;
|
||||||
if (BRep_Tool::Degenerated(TopoDS::Edge(Scurrent))) continue;
|
if (BRep_Tool::Degenerated(TopoDS::Edge(Scurrent))) continue;
|
||||||
C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last);
|
C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last);
|
||||||
|
Loading…
Reference in New Issue
Block a user