1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00

0023252: Fillet regression

This commit is contained in:
emv 2012-09-20 08:29:26 +04:00
parent a180e3849f
commit 73a97e76da
6 changed files with 25 additions and 12 deletions

View File

@ -56,9 +56,13 @@ is
ResetElement(me : in out; E : Shape from TopoDS) is deferred; ResetElement(me : in out; E : Shape from TopoDS) is deferred;
---Purpose: prepare classification involving element <E>. ---Purpose: prepare classification involving element <E>.
CompareElement(me : in out; E : Shape from TopoDS) is deferred; CompareElement(me : in out; E : Shape from TopoDS)
---Purpose: Add element <E> in the set of elements used in classification. returns Boolean from Standard
is deferred;
---Purpose: Add element <E> in the set of elements used in classification.
-- Returns FALSE if the element <E> has been already added to the set of elements,
-- otherwise returns TRUE.
State(me : in out) returns State from TopAbs is deferred; State(me : in out) returns State from TopAbs is deferred;
---Purpose: Returns state of classification of 2D point, defined by ---Purpose: Returns state of classification of 2D point, defined by
-- ResetElement, with the current set of elements, defined by Compare. -- ResetElement, with the current set of elements, defined by Compare.

View File

@ -94,7 +94,8 @@ TopAbs_State TopOpeBRepBuild_CompositeClassifier::Compare
TopOpeBRepBuild_BlockIterator Bit2 = L2->BlockIterator(); TopOpeBRepBuild_BlockIterator Bit2 = L2->BlockIterator();
for (Bit2.Initialize(); Bit2.More(); Bit2.Next()) { for (Bit2.Initialize(); Bit2.More(); Bit2.Next()) {
const TopoDS_Shape& s2 = MYBB->Element(Bit2); const TopoDS_Shape& s2 = MYBB->Element(Bit2);
CompareElement(s2); if (!CompareElement(s2))
break;
} }
state = State(); state = State();
} }

View File

@ -65,10 +65,13 @@ is
---Purpose: prepare classification involving face <F> ---Purpose: prepare classification involving face <F>
-- define 3D point (later used in Compare()) on first vertex of face <F>. -- define 3D point (later used in Compare()) on first vertex of face <F>.
CompareElement(me : in out; F : Shape); CompareElement(me : in out; F : Shape)
returns Boolean from Standard;
---Purpose: Add the face <F> in the set of faces used in 3D point ---Purpose: Add the face <F> in the set of faces used in 3D point
-- classification. -- classification. Returns FALSE if the face <F> has been already
-- added to the set of faces, otherwise returns TRUE.
State(me : in out) returns State from TopAbs; State(me : in out) returns State from TopAbs;
---Purpose: Returns state of classification of 3D point, defined by ---Purpose: Returns state of classification of 3D point, defined by
-- ResetElement, with the current set of faces, defined by Compare. -- ResetElement, with the current set of faces, defined by Compare.

View File

@ -154,12 +154,13 @@ void TopOpeBRepBuild_ShellFaceClassifier::ResetElement(const TopoDS_Shape& F)
//purpose : //purpose :
//======================================================================= //=======================================================================
void TopOpeBRepBuild_ShellFaceClassifier::CompareElement(const TopoDS_Shape& F) Standard_Boolean TopOpeBRepBuild_ShellFaceClassifier::CompareElement(const TopoDS_Shape& F)
{ {
#ifdef DEB #ifdef DEB
// const TopAbs_ShapeEnum t = F.ShapeType(); // const TopAbs_ShapeEnum t = F.ShapeType();
#endif #endif
Standard_Boolean bRet = Standard_True;
//
if (myFirstCompare) { if (myFirstCompare) {
Standard_Boolean found = myFaceShellMap.IsBound(F); Standard_Boolean found = myFaceShellMap.IsBound(F);
if ( !found ) { if ( !found ) {
@ -178,6 +179,7 @@ void TopOpeBRepBuild_ShellFaceClassifier::CompareElement(const TopoDS_Shape& F)
// dont F fait partie. // dont F fait partie.
TopoDS_Shape sbid = myFaceShellMap.Find(F); TopoDS_Shape sbid = myFaceShellMap.Find(F);
myShell = TopoDS::Shell(sbid); myShell = TopoDS::Shell(sbid);
bRet = !bRet;
} }
myFirstCompare = Standard_False; myFirstCompare = Standard_False;
} }
@ -187,7 +189,7 @@ void TopOpeBRepBuild_ShellFaceClassifier::CompareElement(const TopoDS_Shape& F)
// dont F fait partie // dont F fait partie
myBuilder.Add(myShell,F); myBuilder.Add(myShell,F);
} }
return bRet;
} }
#ifdef DEB #ifdef DEB

View File

@ -66,7 +66,8 @@ is
---Purpose: prepare classification involving edge <E> ---Purpose: prepare classification involving edge <E>
-- define 2D point (later used in Compare()) on first vertex of edge <E>. -- define 2D point (later used in Compare()) on first vertex of edge <E>.
CompareElement(me : in out; E : Shape from TopoDS); CompareElement(me : in out; E : Shape from TopoDS)
returns Boolean from Standard;
---Purpose: Add the edge <E> in the set of edges used in 2D point ---Purpose: Add the edge <E> in the set of edges used in 2D point
-- classification. -- classification.

View File

@ -421,8 +421,9 @@ void TopOpeBRepBuild_WireEdgeClassifier::ResetElement(const TopoDS_Shape& EE)
//purpose : //purpose :
//======================================================================= //=======================================================================
void TopOpeBRepBuild_WireEdgeClassifier::CompareElement(const TopoDS_Shape& EE) Standard_Boolean TopOpeBRepBuild_WireEdgeClassifier::CompareElement(const TopoDS_Shape& EE)
{ {
Standard_Boolean bRet = Standard_True;
const TopoDS_Edge& E = TopoDS::Edge(EE); const TopoDS_Edge& E = TopoDS::Edge(EE);
const TopoDS_Face& F = myBCEdge.Face(); const TopoDS_Face& F = myBCEdge.Face();
@ -462,6 +463,7 @@ void TopOpeBRepBuild_WireEdgeClassifier::CompareElement(const TopoDS_Shape& EE)
#ifdef DEB #ifdef DEB
// TopAbs_State state = myFPC.State(); // TopAbs_State state = myFPC.State();
#endif #endif
return bRet;
} }