Standard_Real First, Last;
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)
GeomFill_SectionGenerator Section;
Standard_Integer i = 0;
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 (BRep_Tool::Degenerated(TopoDS::Edge(Scurrent))) continue;
C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last);
Section.AddCurve(C);
i++;
}
-
+
/* a 'tolerance' is used to compare 2 knots : see GeomFill_Generator.cdl */
Section.Perform(Precision::Confusion());
Handle(GeomFill_Line) Line = new GeomFill_Line(i);
-
+
GeomFill_AppSurf App (mindeg, maxdeg, tol3d, tol2d, nbiter); /* user parameters */
App.Perform(Line, Section);
-
+
if (!App.IsDone()) return 0;
Standard_Integer UDegree, VDegree, NbUPoles, NbVPoles, NbUKnots, NbVKnots;
App.SurfShape(UDegree, VDegree, NbUPoles, NbVPoles, NbUKnots, NbVKnots);
// add curves from edges to sequence and find maximal
// number of poles if some of them are bsplines
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 (BRep_Tool::Degenerated(TopoDS::Edge(Scurrent))) continue;
C = BRep_Tool::Curve(TopoDS::Edge(Scurrent), First, Last);