---C++ : return const &
is static;
+ ErrorOnSurface (me)
+ returns Real from Standard;
+
FirstShape(me) returns Shape from TopoDS
---C++ : return const &
is static;
myMode : Trihedron from GeomFill;
myForceApproxC1 : Boolean from Standard;
+ myErrorOnSurf : Real from Standard;
+
end Pipe;
return myShape;
}
+//=======================================================================
+//function : ErrorOnSurface
+//purpose :
+//=======================================================================
+
+Standard_Real BRepFill_Pipe::ErrorOnSurface() const
+{
+ return myErrorOnSurf;
+}
+
//=======================================================================
//function : FirstShape
MkSw.Build( myReversedEdges, myTapes, myRails,
BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax );
TopoDS_Shape aLocalShape = MkSw.Shape();
+ myErrorOnSurf = MkSw.ErrorOnSurface();
return TopoDS::Wire(aLocalShape);
// return TopoDS::Wire(MkSw.Shape());
}
MkSw.Build( myReversedEdges, myTapes, myRails,
BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax );
result = MkSw.Shape();
+ myErrorOnSurf = MkSw.ErrorOnSurface();
Handle(TopTools_HArray2OfShape) aSections = MkSw.Sections();
MkSw.Build( myReversedEdges, myTapes, myRails,
BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax );
result = MkSw.Shape();
+ myErrorOnSurf = MkSw.ErrorOnSurface();
//Correct <myFirst> and <myLast>
ReverseModifiedEdges(myFirst, myReversedEdges);
ReverseModifiedEdges(myLast, myReversedEdges);
returns Shape from TopoDS
is static;
+ ErrorOnSurface (me)
+ returns Real from Standard;
+
FirstShape (me)
---Purpose: Returns the TopoDS Shape of the bottom of the sweep.
---C++: return const &
myTrihedron : Trihedron from GeomFill;
myTransition : TransitionStyle from BRepFill;
myStatus : PipeError from GeomFill;
+ myErrorOnSurf : Real from Standard;
+
end PipeShell;
if (Ok) {
myShape = MkSw.Shape();
+ myErrorOnSurf = MkSw.ErrorOnSurface();
TopoDS_Shape aBottomWire = myFirst;
TopoDS_Shape aTopWire = myLast;
return myShape;
}
+//=======================================================================
+//function : ErrorOnSurface
+//purpose :
+//=======================================================================
+
+Standard_Real BRepFill_PipeShell::ErrorOnSurface() const
+{
+ return myErrorOnSurf;
+}
+
//=======================================================================
//function : FirstShape
//purpose : Return the start section
Vertex(1,ipath+1),
myTol3d);
}
- else UpdateEdge(TopoDS::Edge(UEdge(isec, ipath)),
- S, !exuv, UFirst);
+ else
+ {
+ if (UEdge(isec, ipath).IsNull()) //sweep failed
+ return Standard_False;
+ UpdateEdge(TopoDS::Edge(UEdge(isec, ipath)),
+ S, !exuv, UFirst);
+ }
if (uclose && (isec==NbLaw)) {
UpdateEdge(TopoDS::Edge(UEdge(1, ipath)),
returns Shape from TopoDS;
+ ErrorOnSurface (me)
+ ---Level: Public
+ returns Real from Standard;
+
+
fields
myPipe : Pipe from BRepFill;
#include <TopoDS_Vertex.hxx>
#include <TopoDS.hxx>
#include <TopAbs_ShapeEnum.hxx>
+#include <TopTools_IndexedMapOfShape.hxx>
+#include <TopExp.hxx>
//=======================================================================
//function : BRepOffsetAPI_MakePipe
void BRepOffsetAPI_MakePipe::Build()
{
myShape = myPipe.Shape();
- Done();
+ //Check for emptiness of result
+ TopTools_IndexedMapOfShape theMap;
+ TopExp::MapShapes(myShape, theMap);
+ if (theMap.Extent() == 1)
+ NotDone();
+ else
+ Done();
}
return bid;
}
+//=======================================================================
+//function : ErrorOnSurface
+//purpose :
+//=======================================================================
+
+Standard_Real BRepOffsetAPI_MakePipe::ErrorOnSurface() const
+{
+ return myPipe.ErrorOnSurface();
+}
returns ListOfShape from TopTools
is redefined;
+ ErrorOnSurface (me)
+ returns Real from Standard;
+
fields
myPipe : PipeShell from BRepFill;
return myGenerated;
}
+//=======================================================================
+//function : ErrorOnSurface
+//purpose :
+//=======================================================================
+
+Standard_Real BRepOffsetAPI_MakePipeShell::ErrorOnSurface() const
+{
+ return myPipe->ErrorOnSurface();
+}
--- /dev/null
+puts "============"
+puts "OCC24949"
+puts "============"
+puts ""
+#######################################################################
+# Segmentation Violation during pipe creation
+#######################################################################
+
+restore [locate_data_file bug24949_Comp.brep] c
+explode c
+mksweep c_1
+addsweep c_2
+catch {buildsweep res}
+
+restore [locate_data_file bug24949_Comp.brep] c
+explode c
+pipe result c_1 c_2 2
+
+set square 188.689
+
+set nb_v_good 14
+set nb_e_good 19
+set nb_w_good 6
+set nb_f_good 6
+set nb_sh_good 1
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 0
+set nb_shape_good 46
+
+set 2dviewer 1