From 3da8fefe9c957f4538e9eacf013ce678df4d6c91 Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 17 Feb 2016 20:36:53 +0300 Subject: [PATCH] 23239: [CEA 1739] Regression : crash trying to create mesh (StdMesher_Prism_3D.cxx) + minor changes --- .../gui/SMESH/images/quad_from_ma_mesh.png | Bin 10961 -> 6101 bytes src/SMESH/SMESH_Mesh.hxx | 2 +- src/SMESHUtils/SMESH_MAT2d.cxx | 10 +++++--- src/SMESHUtils/SMESH_MAT2d.hxx | 6 ++--- src/StdMeshers/StdMeshers_Prism_3D.cxx | 23 +++++++++++------- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/doc/salome/gui/SMESH/images/quad_from_ma_mesh.png b/doc/salome/gui/SMESH/images/quad_from_ma_mesh.png index f233cc640783dea9f48b8889bf27a8d5e9920fc7..3e3c63b23bd8d64dddc806f68f5bb70b7a974ffc 100644 GIT binary patch literal 6101 zcmV;`7b@t9P)Px#24YJ`L;wH)0002_L%V+f000SaNLh0L01m_e01m_fl`9S#00007bV*G`2j2<^ z5(o?65fF+102ftBL_t(|+U=cfa_hFTMIpzPDcnDqmM0m{F?v6gr%*t5qXB{-KGv>V zw;UfI9f>9vHZ~fKM?k&wd_Et);ra9Le?ETy|NB4T_5Ig(-e3It_2a>%Lugxla|ya) z`X@&73)aW)M?d_0KEX6XFdAL1$K&yQK2s1!n0|Zhl-dZP-SovJ=#A+^*74$U#Nx

LgUG@>#U>YG9je29+pFXpGh!BiMz4bQE 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 bO`-n-fYnPZbu_J800000NkvXXu0mjft!w{X literal 10961 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 HSOoqb3W$dn diff --git a/src/SMESH/SMESH_Mesh.hxx b/src/SMESH/SMESH_Mesh.hxx index 5221ab7d2..fc00be6a7 100644 --- a/src/SMESH/SMESH_Mesh.hxx +++ b/src/SMESH/SMESH_Mesh.hxx @@ -344,7 +344,7 @@ class SMESH_EXPORT SMESH_Mesh bool IsOrderOK( const SMESH_subMesh* smBefore, const SMESH_subMesh* smAfter ) const; - ostream& Dump(ostream & save); + std::ostream& Dump(ostream & save); private: diff --git a/src/SMESHUtils/SMESH_MAT2d.cxx b/src/SMESHUtils/SMESH_MAT2d.cxx index c9fcd8501..7b9eac3c2 100644 --- a/src/SMESHUtils/SMESH_MAT2d.cxx +++ b/src/SMESHUtils/SMESH_MAT2d.cxx @@ -47,7 +47,7 @@ #include #ifdef _DEBUG_ -#define _MYDEBUG_ +//#define _MYDEBUG_ #include "SMESH_File.hxx" #include "SMESH_Comment.hxx" #endif @@ -162,6 +162,8 @@ namespace if ( inSegments.size() > 1000 ) return; const char* fileName = "/misc/dn25/salome/eap/salome/misc/Code/C++/MAdebug.txt"; + const char* user = getenv("USER"); + if ( !user || strcmp( user, "eap" )) return; SMESH_File file(fileName, false ); file.remove(); file.openForWriting(); @@ -1518,9 +1520,9 @@ Adaptor3d_Curve* SMESH_MAT2d::MedialAxis::make3DCurve(const Branch& branch) cons */ //================================================================================ -void SMESH_MAT2d::Branch::init( vector& maEdges, - const Boundary* boundary, - map< const TVDVertex*, BranchEndType > endType ) +void SMESH_MAT2d::Branch::init( vector& maEdges, + const Boundary* boundary, + map< const TVDVertex*, BranchEndType >& endType ) { if ( maEdges.empty() ) return; diff --git a/src/SMESHUtils/SMESH_MAT2d.hxx b/src/SMESHUtils/SMESH_MAT2d.hxx index 618608e07..328366cce 100644 --- a/src/SMESHUtils/SMESH_MAT2d.hxx +++ b/src/SMESHUtils/SMESH_MAT2d.hxx @@ -120,9 +120,9 @@ namespace SMESH_MAT2d public: // internal: construction - void init( std::vector& maEdges, - const Boundary* boundary, - std::map< const TVDVertex*, BranchEndType > endType); + void init( std::vector& maEdges, + const Boundary* boundary, + std::map< const TVDVertex*, BranchEndType >& endType); void setBranchesToEnds( const std::vector< Branch >& branches); BranchPoint getPoint( const TVDVertex* vertex ) const; void setRemoved( const BranchPoint& proxyPoint ); diff --git a/src/StdMeshers/StdMeshers_Prism_3D.cxx b/src/StdMeshers/StdMeshers_Prism_3D.cxx index 645bad1e2..8b7347d7b 100644 --- a/src/StdMeshers/StdMeshers_Prism_3D.cxx +++ b/src/StdMeshers/StdMeshers_Prism_3D.cxx @@ -2512,16 +2512,17 @@ namespace // utils used by StdMeshers_Prism_3D::IsApplicable() } EdgeWithNeighbors() {} }; - struct PrismSide + // PrismSide contains all FACEs linking a bottom EDGE with a top one. + struct PrismSide { - TopoDS_Face _face; - TopTools_IndexedMapOfShape *_faces; // pointer because its copy constructor is private - TopoDS_Edge _topEdge; - vector< EdgeWithNeighbors >*_edges; - int _iBotEdge; - vector< bool > _isCheckedEdge; + TopoDS_Face _face; // a currently treated upper FACE + TopTools_IndexedMapOfShape *_faces; // all FACEs (pointer because of a private copy constructor) + TopoDS_Edge _topEdge; // a current top EDGE + vector< EdgeWithNeighbors >*_edges; // all EDGEs of _face + int _iBotEdge; // index of _topEdge within _edges + vector< bool > _isCheckedEdge; // mark EDGEs whose two owner FACEs found int _nbCheckedEdges; // nb of EDGEs whose location is defined - PrismSide *_leftSide; + PrismSide *_leftSide; // neighbor sides PrismSide *_rightSide; void SetExcluded() { _leftSide = _rightSide = NULL; } bool IsExcluded() const { return !_leftSide; } @@ -2679,7 +2680,7 @@ bool StdMeshers_Prism_3D::IsApplicable(const TopoDS_Shape & shape, bool toCheckA typedef vector< EdgeWithNeighbors > TEdgeWithNeighborsVec; vector< TEdgeWithNeighborsVec > faceEdgesVec( allFaces.Extent() + 1 ); - const size_t nbEdgesMax = facesOfEdge.Extent() * 2; // there can be seam EDGES + const size_t nbEdgesMax = facesOfEdge.Extent() * 2; // there can be seam EDGEs TopTools_IndexedMapOfShape* facesOfSide = new TopTools_IndexedMapOfShape[ nbEdgesMax ]; SMESHUtils::ArrayDeleter delFacesOfSide( facesOfSide ); @@ -2815,6 +2816,10 @@ bool StdMeshers_Prism_3D::IsApplicable(const TopoDS_Shape & shape, bool toCheckA side._isCheckedEdge[ side._iBotEdge ] = true; side._nbCheckedEdges = 1; // bottom EDGE is known } + else // probably a triangular top face found + { + side._face.Nullify(); + } side._topEdge.Nullify(); isOK = ( !side._edges->empty() || side._faces->Extent() > 1 ); -- 2.30.2