0021263: EDF 1868: Several use cases fail (regressions)

+ * \brief Wrapper over TopExp::FirstVertex() and TopExp::LastVertex() fixing them
+ *  in the case of INTERNAL edge
+ */
+//================================================================================
+
+TopoDS_Vertex SMESH_MesherHelper::IthVertex( const bool  is2nd,
+                                             TopoDS_Edge anEdge,
+                                             const bool  CumOri )
This commit is contained in:
eap 2011-05-16 14:20:24 +00:00
parent ce55a111b4
commit 813e18e7bf
2 changed files with 24 additions and 0 deletions

View File

@ -1756,6 +1756,28 @@ bool SMESH_MesherHelper::IsClosedEdge( const TopoDS_Edge& anEdge )
return TopExp::FirstVertex( anEdge ).IsSame( TopExp::LastVertex( anEdge ));
}
//================================================================================
/*!
* \brief Wrapper over TopExp::FirstVertex() and TopExp::LastVertex() fixing them
* in the case of INTERNAL edge
*/
//================================================================================
TopoDS_Vertex SMESH_MesherHelper::IthVertex( const bool is2nd,
TopoDS_Edge anEdge,
const bool CumOri )
{
if ( anEdge.Orientation() >= TopAbs_INTERNAL )
anEdge.Orientation( TopAbs_FORWARD );
const TopAbs_Orientation tgtOri = is2nd ? TopAbs_REVERSED : TopAbs_FORWARD;
TopoDS_Iterator vIt( anEdge, CumOri );
while ( vIt.More() && vIt.Value().Orientation() != tgtOri )
vIt.Next();
return ( vIt.More() ? TopoDS::Vertex(vIt.Value()) : TopoDS_Vertex() );
}
//=======================================================================
//function : IsQuadraticMesh
//purpose : Check mesh without geometry for: if all elements on this shape are quadratic,

View File

@ -147,6 +147,8 @@ public:
static bool IsClosedEdge( const TopoDS_Edge& anEdge );
static TopoDS_Vertex IthVertex( const bool is2nd, TopoDS_Edge anEdge, const bool CumOri=true );
public:
// ---------- PUBLIC INSTANCE METHODS ----------