mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
OCC22163 The bug is appendix to the Salome Bug 0020982
This commit is contained in:
parent
a855b7eb8b
commit
e520f87c1c
File diff suppressed because it is too large
Load Diff
@ -8,6 +8,9 @@
|
|||||||
#include <TopOpeBRepBuild_FaceBuilder.hxx>
|
#include <TopOpeBRepBuild_FaceBuilder.hxx>
|
||||||
#include <TopOpeBRepBuild_define.hxx>
|
#include <TopOpeBRepBuild_define.hxx>
|
||||||
|
|
||||||
|
#include <BRep_Tool.hxx>
|
||||||
|
#include <BRep_Builder.hxx>
|
||||||
|
|
||||||
#ifdef DEB
|
#ifdef DEB
|
||||||
Standard_IMPORT Standard_Boolean TopOpeBRepBuild_GettraceCU();
|
Standard_IMPORT Standard_Boolean TopOpeBRepBuild_GettraceCU();
|
||||||
Standard_IMPORT Standard_Boolean TopOpeBRepBuild_GettraceCUV();
|
Standard_IMPORT Standard_Boolean TopOpeBRepBuild_GettraceCUV();
|
||||||
@ -24,16 +27,29 @@ Standard_IMPORT Standard_Boolean TopOpeBRepBuild_GettraceSHEX();
|
|||||||
void TopOpeBRepBuild_Builder::BuildFaces(const Standard_Integer iS,
|
void TopOpeBRepBuild_Builder::BuildFaces(const Standard_Integer iS,
|
||||||
const Handle(TopOpeBRepDS_HDataStructure)& HDS)
|
const Handle(TopOpeBRepDS_HDataStructure)& HDS)
|
||||||
{
|
{
|
||||||
|
Standard_Real aTBSTol, aTBCTol;
|
||||||
|
BRep_Builder aBB;
|
||||||
TopoDS_Shape aFace;
|
TopoDS_Shape aFace;
|
||||||
myBuildTool.MakeFace(aFace,HDS->Surface(iS));
|
//
|
||||||
TopOpeBRepBuild_WireEdgeSet WES(aFace,this);
|
//modified by NIZNHY-PKV Mon Dec 13 10:00:23 2010f
|
||||||
|
const TopOpeBRepDS_Surface& aTBS=HDS->Surface(iS);
|
||||||
|
aTBSTol=aTBS.Tolerance();
|
||||||
|
//
|
||||||
|
myBuildTool.MakeFace(aFace, aTBS);
|
||||||
|
//
|
||||||
|
//myBuildTool.MakeFace(aFace,HDS->Surface(iS));
|
||||||
|
//modified by NIZNHY-PKV Mon Dec 13 10:01:03 2010t
|
||||||
|
//
|
||||||
|
TopOpeBRepBuild_WireEdgeSet WES(aFace, this);
|
||||||
|
//
|
||||||
#ifdef DEB
|
#ifdef DEB
|
||||||
Standard_Boolean tSE = TopOpeBRepBuild_GettraceSPF();
|
Standard_Boolean tSE = TopOpeBRepBuild_GettraceSPF();
|
||||||
Standard_Boolean tCU = TopOpeBRepBuild_GettraceCU();
|
Standard_Boolean tCU = TopOpeBRepBuild_GettraceCU();
|
||||||
Standard_Boolean NtCUV = !TopOpeBRepBuild_GettraceCUV();
|
Standard_Boolean NtCUV = !TopOpeBRepBuild_GettraceCUV();
|
||||||
#endif
|
#endif
|
||||||
for (TopOpeBRepDS_CurveIterator SCurves(HDS->SurfaceCurves(iS));
|
//
|
||||||
SCurves.More(); SCurves.Next()) {
|
TopOpeBRepDS_CurveIterator SCurves(HDS->SurfaceCurves(iS));
|
||||||
|
for (; SCurves.More(); SCurves.Next()) {
|
||||||
Standard_Integer iC = SCurves.Current();
|
Standard_Integer iC = SCurves.Current();
|
||||||
const TopOpeBRepDS_Curve& CDS = HDS->Curve(iC);
|
const TopOpeBRepDS_Curve& CDS = HDS->Curve(iC);
|
||||||
#ifdef DEB
|
#ifdef DEB
|
||||||
@ -41,10 +57,16 @@ void TopOpeBRepBuild_Builder::BuildFaces(const Standard_Integer iS,
|
|||||||
if (tCU) { CDS.Dump(cout,iC,NtCUV); cout<<endl; }
|
if (tCU) { CDS.Dump(cout,iC,NtCUV); cout<<endl; }
|
||||||
#endif
|
#endif
|
||||||
TopoDS_Shape anEdge;
|
TopoDS_Shape anEdge;
|
||||||
for (TopTools_ListIteratorOfListOfShape Iti(NewEdges(iC));
|
TopTools_ListIteratorOfListOfShape Iti(NewEdges(iC));
|
||||||
Iti.More();
|
for (; Iti.More(); Iti.Next()) {
|
||||||
Iti.Next()) {
|
|
||||||
anEdge = Iti.Value();
|
anEdge = Iti.Value();
|
||||||
|
//modified by NIZNHY-PKV Mon Dec 13 10:09:38 2010f
|
||||||
|
TopoDS_Edge& aE=*((TopoDS_Edge*)&anEdge);
|
||||||
|
aTBCTol=BRep_Tool::Tolerance(aE);
|
||||||
|
if (aTBCTol < aTBSTol) {
|
||||||
|
aBB.UpdateEdge(aE, aTBSTol);
|
||||||
|
}
|
||||||
|
//modified by NIZNHY-PKV Mon Dec 13 10:09:43 2010f
|
||||||
TopAbs_Orientation ori = SCurves.Orientation(TopAbs_IN);
|
TopAbs_Orientation ori = SCurves.Orientation(TopAbs_IN);
|
||||||
myBuildTool.Orientation(anEdge,ori);
|
myBuildTool.Orientation(anEdge,ori);
|
||||||
const Handle(Geom2d_Curve)& PC = SCurves.PCurve();
|
const Handle(Geom2d_Curve)& PC = SCurves.PCurve();
|
||||||
@ -52,6 +74,7 @@ void TopOpeBRepBuild_Builder::BuildFaces(const Standard_Integer iS,
|
|||||||
WES.AddStartElement(anEdge);
|
WES.AddStartElement(anEdge);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//
|
||||||
TopOpeBRepBuild_FaceBuilder FABU(WES,aFace);
|
TopOpeBRepBuild_FaceBuilder FABU(WES,aFace);
|
||||||
TopTools_ListOfShape& FaceList = ChangeNewFaces(iS);
|
TopTools_ListOfShape& FaceList = ChangeNewFaces(iS);
|
||||||
MakeFaces(aFace,FABU,FaceList);
|
MakeFaces(aFace,FABU,FaceList);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user