0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm

Make arg theFirstVertex of GetOrderedEdges() optional
This commit is contained in:
eap 2013-01-28 08:21:16 +00:00
parent d89bbd5095
commit bde9f2c7ae
2 changed files with 7 additions and 7 deletions

View File

@ -957,10 +957,10 @@ int SMESH_Block::GetShapeIDByParams ( const gp_XYZ& theCoord )
/*! /*!
* \brief Return number of wires and a list of oredered edges. * \brief Return number of wires and a list of oredered edges.
* \param theFace - the face to process * \param theFace - the face to process
* \param theFirstVertex - the vertex of the outer wire to set first in the returned
* list ( theFirstVertex may be NULL )
* \param theEdges - all ordered edges of theFace (outer edges goes first). * \param theEdges - all ordered edges of theFace (outer edges goes first).
* \param theNbEdgesInWires - nb of edges (== nb of vertices in closed wire) in each wire * \param theNbEdgesInWires - nb of edges (== nb of vertices in closed wire) in each wire
* \param theFirstVertex - the vertex of the outer wire to set first in the returned
* list ( theFirstVertex may be NULL )
* \param theShapeAnalysisAlgo - if true, ShapeAnalysis::OuterWire() is used to find * \param theShapeAnalysisAlgo - if true, ShapeAnalysis::OuterWire() is used to find
* the outer wire else BRepTools::OuterWire() is used. * the outer wire else BRepTools::OuterWire() is used.
* \retval int - nb of wires * \retval int - nb of wires
@ -972,9 +972,9 @@ int SMESH_Block::GetShapeIDByParams ( const gp_XYZ& theCoord )
//================================================================================ //================================================================================
int SMESH_Block::GetOrderedEdges (const TopoDS_Face& theFace, int SMESH_Block::GetOrderedEdges (const TopoDS_Face& theFace,
TopoDS_Vertex theFirstVertex,
list< TopoDS_Edge >& theEdges, list< TopoDS_Edge >& theEdges,
list< int > & theNbEdgesInWires, list< int > & theNbEdgesInWires,
TopoDS_Vertex theFirstVertex,
const bool theShapeAnalysisAlgo) const bool theShapeAnalysisAlgo)
{ {
// put wires in a list, so that an outer wire comes first // put wires in a list, so that an outer wire comes first
@ -1352,7 +1352,7 @@ bool SMESH_Block::FindBlockShapes(const TopoDS_Shell& theShell,
// find bottom edges and veritices // find bottom edges and veritices
list< TopoDS_Edge > eList; list< TopoDS_Edge > eList;
list< int > nbVertexInWires; list< int > nbVertexInWires;
GetOrderedEdges( TopoDS::Face( Fxy0 ), TopoDS::Vertex( V000 ), eList, nbVertexInWires ); GetOrderedEdges( TopoDS::Face( Fxy0 ), eList, nbVertexInWires, TopoDS::Vertex( V000 ) );
if ( nbVertexInWires.size() != 1 || nbVertexInWires.front() != 4 ) { if ( nbVertexInWires.size() != 1 || nbVertexInWires.front() != 4 ) {
MESSAGE(" LoadBlockShapes() error "); MESSAGE(" LoadBlockShapes() error ");
return false; return false;
@ -1374,7 +1374,7 @@ bool SMESH_Block::FindBlockShapes(const TopoDS_Shell& theShell,
// find top edges and veritices // find top edges and veritices
eList.clear(); eList.clear();
GetOrderedEdges( TopoDS::Face( Fxy1 ), TopoDS::Vertex( V001 ), eList, nbVertexInWires ); GetOrderedEdges( TopoDS::Face( Fxy1 ), eList, nbVertexInWires, TopoDS::Vertex( V001 ) );
if ( nbVertexInWires.size() != 1 || nbVertexInWires.front() != 4 ) { if ( nbVertexInWires.size() != 1 || nbVertexInWires.front() != 4 ) {
MESSAGE(" LoadBlockShapes() error "); MESSAGE(" LoadBlockShapes() error ");
return false; return false;

View File

@ -256,7 +256,7 @@ public:
public: public:
// --------------- // ---------------
// Block geomerty // Block geometry
// --------------- // ---------------
@ -275,9 +275,9 @@ public:
// Return true if an in-block parameter increases along theEdge curve // Return true if an in-block parameter increases along theEdge curve
static int GetOrderedEdges (const TopoDS_Face& theFace, static int GetOrderedEdges (const TopoDS_Face& theFace,
TopoDS_Vertex theFirstVertex,
std::list< TopoDS_Edge >& theEdges, std::list< TopoDS_Edge >& theEdges,
std::list< int > & theNbEdgesInWires, std::list< int > & theNbEdgesInWires,
TopoDS_Vertex theFirstVertex=TopoDS_Vertex(),
const bool theShapeAnalysisAlgo=false); const bool theShapeAnalysisAlgo=false);
// Return nb wires and a list of oredered edges. // Return nb wires and a list of oredered edges.
// It is used to assign indices to subshapes. // It is used to assign indices to subshapes.