diff --git a/src/Driver/Driver_Mesh.cxx b/src/Driver/Driver_Mesh.cxx index 30000d5df..9552c7469 100644 --- a/src/Driver/Driver_Mesh.cxx +++ b/src/Driver/Driver_Mesh.cxx @@ -123,15 +123,15 @@ std::string Driver_Mesh::fixUTF8(const std::string & str ) // how many bytes follow? int len = 0; - if (s[i] >> 5 == 0b110 ) len = 1; // todo: binary constants are a GCC extension - else if (s[i] >> 4 == 0b1110 ) len = 2; // todo: binary constants are a GCC extension - else if (s[i] >> 3 == 0b11110) len = 3; // todo: binary constants are a GCC extension + if (s[i] >> 5 == 0b110 ) len = 1; // WARNING: binary constants included in C++14 + else if (s[i] >> 4 == 0b1110 ) len = 2; + else if (s[i] >> 3 == 0b11110) len = 3; else invalid = true; // check the bytes for ( int j = 0; j < len && !invalid; ++j ) - invalid = ( s[i+j+1] >> 6 != 0b10 ); // todo: binary constants are a GCC extension + invalid = ( s[i+j+1] >> 6 != 0b10 ); if ( invalid ) fixed[i] = '?'; diff --git a/src/DriverCGNS/DriverCGNS_Read.cxx b/src/DriverCGNS/DriverCGNS_Read.cxx index 08dd9524c..dc6192470 100644 --- a/src/DriverCGNS/DriverCGNS_Read.cxx +++ b/src/DriverCGNS/DriverCGNS_Read.cxx @@ -165,9 +165,9 @@ namespace int _beg[3], _end[3], _cur[3], _dir[3], _dim; bool _more; public: - TPointRangeIterator( const cgsize_t* range, int dim ):_dim(dim) + TPointRangeIterator( const cgsize_t* range, int dim ): + _beg{0,0,0}, _end{0,0,0}, _cur{0,0,0}, _dir{0,0,0}, _dim(dim), _more(false) { - _more = false; for ( int i = 0; i < dim; ++i ) { _beg[i] = range[i]; @@ -178,8 +178,6 @@ namespace if ( _end[i] - _beg[i] ) _more = true; } -// for ( int i = dim; i < 3; ++i ) -// _cur[i] = _beg[i] = _end[i] = _dir[i] = 0; } bool More() const { @@ -187,7 +185,7 @@ namespace } gp_XYZ Next() { - gp_XYZ res( _cur[0], _cur[1], _cur[2] ); // todo: _cur can be used uninitialized + gp_XYZ res( _cur[0], _cur[1], _cur[2] ); for ( int i = 0; i < _dim; ++i ) { _cur[i] += _dir[i]; @@ -207,7 +205,7 @@ namespace size *= _dir[i]*(_end[i]-_beg[i]); return size; } - gp_XYZ Begin() const { return gp_XYZ( _beg[0], _beg[1], _beg[2] ); } // todo: _beg can be used uninitialized + gp_XYZ Begin() const { return gp_XYZ( _beg[0], _beg[1], _beg[2] ); } //gp_XYZ End() const { return gp_XYZ( _end[0]-1, _end[1]-1, _end[2]-1 ); } }; @@ -297,7 +295,7 @@ namespace } // fill nodeReplacementMap - TPointRangeIterator rangeIt1( range, _meshDim ); // todo: rangeIt1: _end[i], _dir[i], _beg[i], _cur[i] may be used uninitialized + TPointRangeIterator rangeIt1( range, _meshDim ); TPointRangeIterator rangeIt2( donorRange, _meshDim ); gp_XYZ begin1 = rangeIt1.Begin(), begin2 = rangeIt2.Begin(), index1, index2; if ( &zone2 == this ) diff --git a/src/DriverGMF/libmesh5.c b/src/DriverGMF/libmesh5.c index e1fe65fb6..82586efb4 100644 --- a/src/DriverGMF/libmesh5.c +++ b/src/DriverGMF/libmesh5.c @@ -875,7 +875,7 @@ void GmfSetLin(int MshIdx, int KwdCod, ...) { for(i=0;iSolSiz;i++) if(kwd->fmt[i] == 'r') - fprintf(msh->hdl, "%.15lg ", va_arg(VarArg, double)); /* todo: ISO C90 does not support the '%lg' gnu_printf format */ + fprintf(msh->hdl, "%.15g ", va_arg(VarArg, double)); /* was "%.15lg and warning "ISO C90 does not support the '%lg' gnu_printf format"*/ else if(kwd->fmt[i] == 'n') { nb_repeat = va_arg(VarArg, int); fprintf(msh->hdl, "%d ", nb_repeat); @@ -936,7 +936,7 @@ void GmfSetLin(int MshIdx, int KwdCod, ...) if(msh->typ & Asc) for(j=0;jSolSiz;j++) - fprintf(msh->hdl, "%.15lg ", DblSolTab[j]); /* todo: ISO C90 does not support the '%lg' gnu_printf format */ + fprintf(msh->hdl, "%.15g ", DblSolTab[j]); /* was " %.15lg " and warning "ISO C90 does not support the '%lg' gnu_printf format" */ else RecBlk(msh, (unsigned char *)DblSolTab, kwd->NmbWrd); } diff --git a/src/DriverMED/DriverMED_W_Field.cxx b/src/DriverMED/DriverMED_W_Field.cxx index 197cd1cb8..9bf879f4c 100644 --- a/src/DriverMED/DriverMED_W_Field.cxx +++ b/src/DriverMED/DriverMED_W_Field.cxx @@ -119,7 +119,7 @@ bool DriverMED_W_Field::Set(SMESHDS_Mesh * mesh, if ( _nbElemsByGeom.size() == 1 ) _nbElemsByGeom.push_back( std::make_pair( SMDSEntity_0D, 0)); _nbElemsByGeom.push_back( std::make_pair( SMDSEntity_Node, - nodes.size() + _nbElemsByGeom.back().second )); + nodes.size() + _nbElemsByGeom.back().second )); } } diff --git a/src/MEDWrapper/MED_Algorithm.cxx b/src/MEDWrapper/MED_Algorithm.cxx index c36c53096..3e2054d94 100644 --- a/src/MEDWrapper/MED_Algorithm.cxx +++ b/src/MEDWrapper/MED_Algorithm.cxx @@ -28,8 +28,8 @@ static int MYDEBUG = 0; static int MYVALUEDEBUG = 0; #else -static int MYDEBUG = 0; // todo: unused in release mode -static int MYVALUEDEBUG = 0; // todo: unused in release mode +// static int MYDEBUG = 0; +// static int MYVALUEDEBUG = 0; #endif namespace MED diff --git a/src/MEDWrapper/MED_GaussUtils.cxx b/src/MEDWrapper/MED_GaussUtils.cxx index 314b7c558..2524c81cc 100644 --- a/src/MEDWrapper/MED_GaussUtils.cxx +++ b/src/MEDWrapper/MED_GaussUtils.cxx @@ -27,8 +27,8 @@ static int MYDEBUG = 0; static int MYVALUEDEBUG = 0; #else -static int MYDEBUG = 0; // todo: unused in release mode -static int MYVALUEDEBUG = 0; // todo: unused in release mode +// static int MYDEBUG = 0; // unused in release mode +// static int MYVALUEDEBUG = 0; // unused in release mode #endif namespace MED diff --git a/src/MEDWrapper/MED_Structures.cxx b/src/MEDWrapper/MED_Structures.cxx index aa7777c10..1b0cbd59e 100644 --- a/src/MEDWrapper/MED_Structures.cxx +++ b/src/MEDWrapper/MED_Structures.cxx @@ -352,10 +352,10 @@ namespace MED TGaussInfo::TLess ::operator()(const TGaussInfo& theLeft, const TGaussInfo& theRight) const { - if(!&theLeft) // todo: address of reference can be assumed always non-null by compiler + if(!&theLeft) // address of reference can be assumed always non-null by compiler - OK return true; - if(!&theRight) // todo: address of reference can be assumed always non-null by compiler + if(!&theRight) //address of reference can be assumed always non-null by compiler - OK return false; if(theLeft.myGeom != theRight.myGeom) diff --git a/src/MEDWrapper/MED_Utilities.cxx b/src/MEDWrapper/MED_Utilities.cxx index 2c7cf7c4d..365d77091 100644 --- a/src/MEDWrapper/MED_Utilities.cxx +++ b/src/MEDWrapper/MED_Utilities.cxx @@ -26,7 +26,7 @@ #ifdef _DEBUG_ static int MYDEBUG = 0; #else -static int MYDEBUG = 0; // todo: unused in release mode +//static int MYDEBUG = 0; // unused in release mode #endif int MED::PrefixPrinter::myCounter = 0; diff --git a/src/MEDWrapper/MED_Wrapper.cxx b/src/MEDWrapper/MED_Wrapper.cxx index fea952664..5b132c051 100644 --- a/src/MEDWrapper/MED_Wrapper.cxx +++ b/src/MEDWrapper/MED_Wrapper.cxx @@ -38,8 +38,8 @@ static int MYDEBUG = 0; static int MYVALUEDEBUG = 0; #else -static int MYDEBUG = 0; // todo: unused in release mode -static int MYVALUEDEBUG = 0; // todo: unused in release mode +// static int MYDEBUG = 0; // unused in release mode +// static int MYVALUEDEBUG = 0; // unused in release mode #endif namespace MED diff --git a/src/SMDS/SMDS_VolumeTool.cxx b/src/SMDS/SMDS_VolumeTool.cxx index be3370ae0..57f4bda6e 100644 --- a/src/SMDS/SMDS_VolumeTool.cxx +++ b/src/SMDS/SMDS_VolumeTool.cxx @@ -1488,10 +1488,10 @@ bool SMDS_VolumeTool::IsLinked (const int theNode1Index, case QUAD_TETRA: { switch ( minInd ) { - case 0: if( maxInd==4 || maxInd==6 || maxInd==7 ) return true; // fall through - case 1: if( maxInd==4 || maxInd==5 || maxInd==8 ) return true; // fall through - case 2: if( maxInd==5 || maxInd==6 || maxInd==9 ) return true; // fall through - case 3: if( maxInd==7 || maxInd==8 || maxInd==9 ) return true; // fall through + case 0: return ( maxInd==4 || maxInd==6 || maxInd==7 ); + case 1: return ( maxInd==4 || maxInd==5 || maxInd==8 ); + case 2: return ( maxInd==5 || maxInd==6 || maxInd==9 ); + case 3: return ( maxInd==7 || maxInd==8 || maxInd==9 ); default:; } break; @@ -1499,14 +1499,14 @@ bool SMDS_VolumeTool::IsLinked (const int theNode1Index, case QUAD_HEXA: { switch ( minInd ) { - case 0: if( maxInd==8 || maxInd==11 || maxInd==16 ) return true; // fall through - case 1: if( maxInd==8 || maxInd==9 || maxInd==17 ) return true; // fall through - case 2: if( maxInd==9 || maxInd==10 || maxInd==18 ) return true; // fall through - case 3: if( maxInd==10 || maxInd==11 || maxInd==19 ) return true; // fall through - case 4: if( maxInd==12 || maxInd==15 || maxInd==16 ) return true; // fall through - case 5: if( maxInd==12 || maxInd==13 || maxInd==17 ) return true; // fall through - case 6: if( maxInd==13 || maxInd==14 || maxInd==18 ) return true; // fall through - case 7: if( maxInd==14 || maxInd==15 || maxInd==19 ) return true; // fall through + case 0: return ( maxInd==8 || maxInd==11 || maxInd==16 ); + case 1: return ( maxInd==8 || maxInd==9 || maxInd==17 ); + case 2: return ( maxInd==9 || maxInd==10 || maxInd==18 ); + case 3: return ( maxInd==10 || maxInd==11 || maxInd==19 ); + case 4: return ( maxInd==12 || maxInd==15 || maxInd==16 ); + case 5: return ( maxInd==12 || maxInd==13 || maxInd==17 ); + case 6: return ( maxInd==13 || maxInd==14 || maxInd==18 ); + case 7: return ( maxInd==14 || maxInd==15 || maxInd==19 ); default:; } break; @@ -1514,11 +1514,11 @@ bool SMDS_VolumeTool::IsLinked (const int theNode1Index, case QUAD_PYRAM: { switch ( minInd ) { - case 0: if( maxInd==5 || maxInd==8 || maxInd==9 ) return true; // fall through - case 1: if( maxInd==5 || maxInd==6 || maxInd==10 ) return true; // fall through - case 2: if( maxInd==6 || maxInd==7 || maxInd==11 ) return true; // fall through - case 3: if( maxInd==7 || maxInd==8 || maxInd==12 ) return true; // fall through - case 4: if( maxInd==9 || maxInd==10 || maxInd==11 || maxInd==12 ) return true; + case 0: return ( maxInd==5 || maxInd==8 || maxInd==9 ); + case 1: return ( maxInd==5 || maxInd==6 || maxInd==10 ); + case 2: return ( maxInd==6 || maxInd==7 || maxInd==11 ); + case 3: return ( maxInd==7 || maxInd==8 || maxInd==12 ); + case 4: return ( maxInd==9 || maxInd==10 || maxInd==11 || maxInd==12 ); default:; } break; @@ -1526,12 +1526,12 @@ bool SMDS_VolumeTool::IsLinked (const int theNode1Index, case QUAD_PENTA: { switch ( minInd ) { - case 0: if( maxInd==6 || maxInd==8 || maxInd==12 ) return true; // fall through - case 1: if( maxInd==6 || maxInd==7 || maxInd==13 ) return true; // fall through - case 2: if( maxInd==7 || maxInd==8 || maxInd==14 ) return true; // fall through - case 3: if( maxInd==9 || maxInd==11 || maxInd==12 ) return true; // fall through - case 4: if( maxInd==9 || maxInd==10 || maxInd==13 ) return true; // fall through - case 5: if( maxInd==10 || maxInd==11 || maxInd==14 ) return true; // fall through + case 0: return ( maxInd==6 || maxInd==8 || maxInd==12 ); + case 1: return ( maxInd==6 || maxInd==7 || maxInd==13 ); + case 2: return ( maxInd==7 || maxInd==8 || maxInd==14 ); + case 3: return ( maxInd==9 || maxInd==11 || maxInd==12 ); + case 4: return ( maxInd==9 || maxInd==10 || maxInd==13 ); + case 5: return ( maxInd==10 || maxInd==11 || maxInd==14 ); default:; } break; diff --git a/src/SMESH/SMESH_Gen.cxx b/src/SMESH/SMESH_Gen.cxx index e07b35552..4e24447b3 100644 --- a/src/SMESH/SMESH_Gen.cxx +++ b/src/SMESH/SMESH_Gen.cxx @@ -338,12 +338,13 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh, std::vector< SMESH_subMesh* > smVec; for ( aShapeDim = 0; aShapeDim < 4; ++aShapeDim ) + smVec.insert( smVec.end(), + smWithAlgoSupportingSubmeshes[aShapeDim].begin(), + smWithAlgoSupportingSubmeshes[aShapeDim].end() ); { // ------------------------------------------------ // sort list of sub-meshes according to mesh order // ------------------------------------------------ - smVec.assign( smWithAlgoSupportingSubmeshes[ aShapeDim ].begin(), - smWithAlgoSupportingSubmeshes[ aShapeDim ].end() ); aMesh.SortByMeshOrder( smVec ); // ------------------------------------------------------------ @@ -354,20 +355,29 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh, for ( size_t i = 0; i < smVec.size(); ++i ) { sm = smVec[i]; + if ( sm->GetComputeState() != SMESH_subMesh::READY_TO_COMPUTE) + continue; + + const TopAbs_ShapeEnum shapeType = sm->GetSubShape().ShapeType(); // get a shape the algo is assigned to if ( !GetAlgo( sm, & algoShape )) continue; // strange... // look for more local algos - smIt = sm->getDependsOnIterator(!includeSelf, !complexShapeFirst); + if ( SMESH_subMesh* algoSM = aMesh.GetSubMesh( algoShape )) + smIt = algoSM->getDependsOnIterator(!includeSelf, !complexShapeFirst); + else + smIt = sm->getDependsOnIterator(!includeSelf, !complexShapeFirst); + while ( smIt->more() ) { SMESH_subMesh* smToCompute = smIt->next(); const TopoDS_Shape& aSubShape = smToCompute->GetSubShape(); const int aShapeDim = GetShapeDim( aSubShape ); - if ( aShapeDim < 1 ) continue; + if ( aShapeDim < 1 || aSubShape.ShapeType() == shapeType ) + continue; // check for preview dimension limitations if ( aShapesId && GetShapeDim( aSubShape.ShapeType() ) > (int)aDim ) @@ -391,22 +401,15 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh, Compute( aMesh, aSubShape, aFlags | SHAPE_ONLY_UPWARD, aDim, aShapesId, localAllowed ); } } - } - // -------------------------------- - // apply the all-dimensional algos - // -------------------------------- - for ( size_t i = 0; i < smVec.size(); ++i ) - { - sm = smVec[i]; - if ( sm->GetComputeState() == SMESH_subMesh::READY_TO_COMPUTE) + // -------------------------------- + // apply the all-dimensional algo + // -------------------------------- { - const TopAbs_ShapeEnum shapeType = sm->GetSubShape().ShapeType(); + if (_compute_canceled) + return false; // check for preview dimension limitations if ( aShapesId && GetShapeDim( shapeType ) > (int)aDim ) continue; - - if (_compute_canceled) - return false; sm->SetAllowedSubShapes( fillAllowed( shapeSM, aShapeOnly, allowedSubShapes )); setCurrentSubMesh( sm ); sm->ComputeStateEngine( computeEvent ); @@ -416,7 +419,7 @@ bool SMESH_Gen::Compute(SMESH_Mesh & aMesh, aShapesId->insert( sm->GetId() ); } } - } // loop on shape dimensions + } // ----------------------------------------------- // mesh the rest sub-shapes starting from vertices @@ -1074,15 +1077,18 @@ std::vector< std::string > SMESH_Gen::GetPluginXMLPaths() xmlPath += sep + plugin + ".xml"; bool fileOK; #ifdef WIN32 -#ifdef UNICODE + #ifdef UNICODE const wchar_t* path = Kernel_Utils::decode_s(xmlPath); -#else + #else const char* path = xmlPath.c_str(); -#endif + #endif + fileOK = (GetFileAttributes(path) != INVALID_FILE_ATTRIBUTES); -#ifdef UNICODE + + #ifdef UNICODE delete path; -#endif + #endif + #else fileOK = (access(xmlPath.c_str(), F_OK) == 0); #endif diff --git a/src/SMESH/SMESH_Mesh.cxx b/src/SMESH/SMESH_Mesh.cxx index 963d0f42d..b5a598f57 100644 --- a/src/SMESH/SMESH_Mesh.cxx +++ b/src/SMESH/SMESH_Mesh.cxx @@ -2432,6 +2432,7 @@ bool SMESH_Mesh::SortByMeshOrder(std::vector& theListToSort) con smVec.push_back( sm ); if ( sm->GetSubMeshDS() && sm->GetSubMeshDS()->IsComplexSubmesh() ) { + smVec.reserve( smVec.size() + sm->GetSubMeshDS()->NbSubMeshes() ); SMESHDS_SubMeshIteratorPtr smdsIt = sm->GetSubMeshDS()->GetSubMeshIterator(); while ( smdsIt->more() ) { diff --git a/src/SMESH/SMESH_MeshEditor.cxx b/src/SMESH/SMESH_MeshEditor.cxx index 3771280ca..08ea9ca65 100644 --- a/src/SMESH/SMESH_MeshEditor.cxx +++ b/src/SMESH/SMESH_MeshEditor.cxx @@ -3629,7 +3629,7 @@ static bool getClosestUV (Extrema_GenExtPS& projector, { projector.Perform( point ); if ( projector.IsDone() ) { - double u, v, minVal = DBL_MAX; + double u = 0, v = 0, minVal = DBL_MAX; for ( int i = projector.NbExt(); i > 0; i-- ) if ( projector.SquareDistance( i ) < minVal ) { minVal = projector.SquareDistance( i ); @@ -3857,9 +3857,9 @@ void SMESH_MeshEditor::Smooth (TIDSortedElemSet & theElems, } else { if ( isUPeriodic ) - newUV.SetX( ElCLib::InPeriod( newUV.X(), u1, u2 )); // todo: u may be used unitialized + newUV.SetX( ElCLib::InPeriod( newUV.X(), u1, u2 )); if ( isVPeriodic ) - newUV.SetY( ElCLib::InPeriod( newUV.Y(), v1, v2 )); // todo: v may be used unitialized + newUV.SetY( ElCLib::InPeriod( newUV.Y(), v1, v2 )); // check new UV // if ( posType != SMDS_TOP_3DSPACE ) // dist2 = pNode.SquareDistance( surface->Value( newUV.X(), newUV.Y() )); @@ -7461,10 +7461,10 @@ public: //int& GroupID() const { return const_cast< int& >( myGroupID ); } ComparableElement( const ComparableElement& theSource ) // move copy - : boost::container::flat_set< int >() + : int_set() { ComparableElement& src = const_cast< ComparableElement& >( theSource ); - (int_set&) (*this ) = boost::move( src ); + (int_set&) (*this ) = std::move( src ); myElem = src.myElem; mySumID = src.mySumID; myGroupID = src.myGroupID; @@ -10200,7 +10200,7 @@ namespace // automatically find theAffectedElems for DoubleNodes() if ( SMESH_MeshAlgos::FaceNormal( _elems[1], norm )) avgNorm += norm; - gp_XYZ bordDir( SMESH_NodeXYZ( _nodes[0] ) - SMESH_NodeXYZ( _nodes[1] )); // todo: compiler complains about zero-size array + gp_XYZ bordDir( SMESH_NodeXYZ( this->_nodes[0] ) - SMESH_NodeXYZ( this->_nodes[1] )); norm = bordDir ^ avgNorm; } else diff --git a/src/SMESH/SMESH_MesherHelper.cxx b/src/SMESH/SMESH_MesherHelper.cxx index 9c99e17b6..d17b4e66c 100644 --- a/src/SMESH/SMESH_MesherHelper.cxx +++ b/src/SMESH/SMESH_MesherHelper.cxx @@ -3769,7 +3769,7 @@ namespace { // Structures used by FixQuadraticElements() /*! * \brief Dump QLink and QFace */ - ostream& operator << (ostream& out, const QLink& l) // todo: unused in release mode + ostream& operator << (ostream& out, const QLink& l) { out <<"QLink nodes: " << l.node1()->GetID() << " - " @@ -3777,7 +3777,7 @@ namespace { // Structures used by FixQuadraticElements() << l.node2()->GetID() << endl; return out; } - ostream& operator << (ostream& out, const QFace& f) // todo: unused in release mode + ostream& operator << (ostream& out, const QFace& f) { out <<"QFace nodes: "/*<< &f << " "*/; for ( TIDSortedNodeSet::const_iterator n = f.begin(); n != f.end(); ++n ) @@ -3791,7 +3791,7 @@ namespace { // Structures used by FixQuadraticElements() //================================================================================ /*! - * \brief Construct QFace from QLinks + * \brief Construct QFace from QLinks */ //================================================================================ @@ -3808,7 +3808,7 @@ namespace { // Structures used by FixQuadraticElements() gp_Vec v1( XYZ( l1->node2()), XYZ( l1->node1())); gp_Vec v2( XYZ( l2->node1()), XYZ( l2->node2())); if ( l1->node1() != l2->node1() && l1->node2() != l2->node2() ) - v1.Reverse(); + v1.Reverse(); _normal += v1 ^ v2; } double normSqSize = _normal.SquareMagnitude(); @@ -3819,8 +3819,9 @@ namespace { // Structures used by FixQuadraticElements() #ifdef _DEBUG_ _face = face; -#endif +#else (void)face; // unused in release mode +#endif } //================================================================================ /*! @@ -4131,30 +4132,30 @@ namespace { // Structures used by FixQuadraticElements() */ //================================================================================ - bool QFace::IsSpoiled(const QLink* bentLink ) const // todo: unused - { - // code is valid for convex faces only - gp_XYZ gc(0,0,0); - for ( TIDSortedNodeSet::const_iterator n = begin(); n != end(); ++n ) - gc += XYZ( *n ) / double( size() ); - for ( size_t i = 0; i < _sides.size(); ++i ) - { - if ( _sides[i] == bentLink ) continue; - gp_Vec linkNorm = _normal ^ gp_Vec( XYZ(_sides[i]->node1()), XYZ(_sides[i]->node2())); - gp_Vec vecOut( gc, _sides[i]->MiddlePnt() ); - if ( linkNorm * vecOut < 0 ) - linkNorm.Reverse(); - double mag2 = linkNorm.SquareMagnitude(); - if ( mag2 > numeric_limits::min() ) - linkNorm /= sqrt( mag2 ); - gp_Vec vecBent ( _sides[i]->MiddlePnt(), bentLink->MediumPnt()); - gp_Vec vecStraight( _sides[i]->MiddlePnt(), bentLink->MiddlePnt()); - if ( vecBent * linkNorm > -0.1*vecStraight.Magnitude() ) - return true; - } - return false; + // bool QFace::IsSpoiled(const QLink* bentLink ) const + // { + // // code is valid for convex faces only + // gp_XYZ gc(0,0,0); + // for ( TIDSortedNodeSet::const_iterator n = begin(); n != end(); ++n ) + // gc += XYZ( *n ) / double( size() ); + // for ( size_t i = 0; i < _sides.size(); ++i ) + // { + // if ( _sides[i] == bentLink ) continue; + // gp_Vec linkNorm = _normal ^ gp_Vec( XYZ(_sides[i]->node1()), XYZ(_sides[i]->node2())); + // gp_Vec vecOut( gc, _sides[i]->MiddlePnt() ); + // if ( linkNorm * vecOut < 0 ) + // linkNorm.Reverse(); + // double mag2 = linkNorm.SquareMagnitude(); + // if ( mag2 > numeric_limits::min() ) + // linkNorm /= sqrt( mag2 ); + // gp_Vec vecBent ( _sides[i]->MiddlePnt(), bentLink->MediumPnt()); + // gp_Vec vecStraight( _sides[i]->MiddlePnt(), bentLink->MiddlePnt()); + // if ( vecBent * linkNorm > -0.1*vecStraight.Magnitude() ) + // return true; + // } + // return false; - } + // } //================================================================================ /*! @@ -5506,10 +5507,12 @@ void SMESH_MesherHelper::FixQuadraticElements(SMESH_ComputeErrorPtr& compError, volExp.Set( *pentIt, /*ignoreCentralNodes=*/false ); } } -#ifdef _DEBUG_ - // avoid warning: defined but not used operator<<() - SMESH_Comment() << *links.begin() << *faces.begin(); -#endif + + if ( false ) + // avoid warning: defined but not used operator<<() + SMESH_Comment() << *links.begin() << *faces.begin(); + + return; } //================================================================================ diff --git a/src/SMESHClient/SMESH_Client.cxx b/src/SMESHClient/SMESH_Client.cxx index 8526c0668..0c1b1aeab 100644 --- a/src/SMESHClient/SMESH_Client.cxx +++ b/src/SMESHClient/SMESH_Client.cxx @@ -745,34 +745,34 @@ namespace //======================================================================= //function : ChangePolyhedronNodes //======================================================================= - inline void ChangePolyhedronNodes (SMDS_Mesh* /*theMesh*/, - SMESH::log_array_var& /*theSeq*/, - CORBA::Long /*theId*/) + inline void ChangePolyhedronNodes (SMDS_Mesh* theMesh, + SMESH::log_array_var& theSeq, + CORBA::Long theId) { - // const SMESH::long_array& anIndexes = theSeq[theId].indexes; - // CORBA::Long iind = 0, aNbElems = theSeq[theId].number; + const SMESH::long_array& anIndexes = theSeq[theId].indexes; + CORBA::Long iind = 0, aNbElems = theSeq[theId].number; - // for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++) - // { - // // find element - // const SMDS_MeshElement* elem = FindElement(theMesh, anIndexes[iind++]); - // // nb nodes - // int nbNodes = anIndexes[iind++]; - // // nodes - // std::vector aNodes (nbNodes); - // for (int iNode = 0; iNode < nbNodes; iNode++) { - // aNodes[iNode] = FindNode(theMesh, anIndexes[iind++]); - // } - // // nb faces - // int nbFaces = anIndexes[iind++]; - // // quantities - // std::vector quantities (nbFaces); - // for (int iFace = 0; iFace < nbFaces; iFace++) { - // quantities[iFace] = anIndexes[iind++]; - // } - // // change - // theMesh->ChangePolyhedronNodes(elem, aNodes, quantities); - // } + for (CORBA::Long anElemId = 0; anElemId < aNbElems; anElemId++) + { + // find element + const SMDS_MeshElement* elem = FindElement(theMesh, anIndexes[iind++]); + // nb nodes + int nbNodes = anIndexes[iind++]; + // nodes + std::vector aNodes (nbNodes); + for (int iNode = 0; iNode < nbNodes; iNode++) { + aNodes[iNode] = FindNode(theMesh, anIndexes[iind++]); + } + // nb faces + int nbFaces = anIndexes[iind++]; + // quantities + std::vector quantities (nbFaces); + for (int iFace = 0; iFace < nbFaces; iFace++) { + quantities[iFace] = anIndexes[iind++]; + } + // change + theMesh->ChangePolyhedronNodes(elem, aNodes, quantities); + } } } diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index c0f40b875..937fe27c9 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -4740,7 +4740,7 @@ void SMESHGUI::initialize( CAM_Application* app ) popupMgr()->insert( separator(), -1, 0 ); createPopupItem( SMESHOp::OpCompute, OB, mesh, "&& selcount=1 && hasAlgo && isComputable" ); - createPopupItem( SMESHOp::OpRecompute, OB, mesh, "&& selcount=1 && hasAlgo && " + isNotEmpty ); + createPopupItem( SMESHOp::OpRecompute, OB, mesh, "&& selcount=1 && hasAlgo && (" + isNotEmpty + " || hasErrors )"); createPopupItem( SMESHOp::OpShowErrors, OB, mesh, "&& selcount=1 && hasErrors" ); createPopupItem( SMESHOp::OpComputeSubMesh, OB, subMesh, "&& selcount=1 && hasAlgo && isComputable" ); createPopupItem( SMESHOp::OpPreCompute, OB, mesh, "&& selcount=1 && hasAlgo && isPreComputable" ); diff --git a/src/SMESHGUI/SMESHGUI_FilterDlg.cxx b/src/SMESHGUI/SMESHGUI_FilterDlg.cxx index 913f25231..564e2f903 100644 --- a/src/SMESHGUI/SMESHGUI_FilterDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_FilterDlg.cxx @@ -3728,7 +3728,7 @@ void SMESHGUI_FilterDlg::selectInViewer (const int theType, const QList& th //======================================================================= SMESH::Filter::Criterion SMESHGUI_FilterDlg::createCriterion() { - SMESH::Filter::Criterion aCriterion; + SMESH::Filter::Criterion aCriterion; aCriterion.Type = SMESH::FT_Undefined; aCriterion.Compare = SMESH::FT_Undefined; @@ -3751,7 +3751,7 @@ SMESH::Filter::Criterion SMESHGUI_FilterDlg::createCriterion() void SMESHGUI_FilterDlg::onSelectionDone() { const SALOME_ListIO& aList = mySelector->StoredIObjects(); - if ( myMesh->_is_nil() && aList.Extent()>0 ) + if ( myMesh->_is_nil() && aList.Extent() > 0 ) { myMesh = SMESH::IObjectToInterface(aList.First()); if ( !(myMesh->_is_nil()) ) { diff --git a/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx b/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx index 4c88cce9b..d692e9ef7 100644 --- a/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_FilterLibraryDlg.cxx @@ -211,7 +211,7 @@ QWidget* SMESHGUI_FilterLibraryDlg::createMainFrame (QWidget* theParent) myTable->SetLibsEnabled(false); myListBox->setMinimumHeight((int)(myTable->sizeHint().height() * 0.5)); - //myListBox->setRowMode(QListWidget::FitToWidth); //VSR : TODO ??? + //myListBox->setRowMode(QListWidget::FitToWidth); myListBox->setSelectionMode(QListWidget::SingleSelection); myOpenBtn->setAutoDefault(false); diff --git a/src/SMESHGUI/SMESHGUI_SewingDlg.cxx b/src/SMESHGUI/SMESHGUI_SewingDlg.cxx index ca6c7293b..721995c17 100644 --- a/src/SMESHGUI/SMESHGUI_SewingDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_SewingDlg.cxx @@ -1555,7 +1555,7 @@ void SMESHGUI_SewingDlg::onTextChange (const QString& theNewText) mySelector->AddOrRemoveIndex(myActor->getIO(), newIndices, false); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->highlight( myActor->getIO(), true, true ); - + if (send == LineEdit1) myOk1 = true; else if (send == LineEdit2) @@ -1577,22 +1577,22 @@ void SMESHGUI_SewingDlg::onTextChange (const QString& theNewText) QStringList aListId = theNewText.split(" ", QString::SkipEmptyParts); - bool isEvenOneExists = false; + bool atLeastOneExists = false; for (int i = 0; i < aListId.count(); i++) { const SMDS_MeshElement * e = aMesh->FindElement(aListId[ i ].toInt()); - if (e) + if (e) + { newIndices.Add(e->GetID()); - - if (!isEvenOneExists) - isEvenOneExists = true; + atLeastOneExists = true; + } } - + mySelector->AddOrRemoveIndex(myActor->getIO(), newIndices, false); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) aViewWindow->highlight( myActor->getIO(), true, true ); - - if (isEvenOneExists) { + + if (atLeastOneExists) { if (send == LineEdit1) myOk1 = true; else if(send == LineEdit4) diff --git a/src/SMESHGUI/SMESHGUI_VTKUtils.h b/src/SMESHGUI/SMESHGUI_VTKUtils.h index b6673afcd..756f6b7c9 100644 --- a/src/SMESHGUI/SMESHGUI_VTKUtils.h +++ b/src/SMESHGUI/SMESHGUI_VTKUtils.h @@ -226,6 +226,6 @@ SMESHGUI_EXPORT SMESHGUI_EXPORT bool NoSmeshActors(SUIT_ViewWindow *theWnd=nullptr); -}; +} #endif // SMESHGUI_VTKUTILS_H diff --git a/src/SMESHUtils/SMESH_Block.cxx b/src/SMESHUtils/SMESH_Block.cxx index 2cc0695a7..91b156223 100644 --- a/src/SMESHUtils/SMESH_Block.cxx +++ b/src/SMESHUtils/SMESH_Block.cxx @@ -1130,8 +1130,8 @@ bool SMESH_Block::findUVByHalfDivision( const gp_Pnt& thePoint, //================================================================================ /*! - * \brief Finds parameters corresponding to a given UV of a given face by searching - * around the starting solution + * \brief Find parameters corresponding to a given UV of a given face by searching + * around the starting solution * \param [in] theUV - the UV to locate * \param [in] tface - the face * \param [in,out] theParams - the starting parameters to improve diff --git a/src/SMESHUtils/SMESH_Indexer.hxx b/src/SMESHUtils/SMESH_Indexer.hxx index d81567f45..9eb5aada2 100644 --- a/src/SMESHUtils/SMESH_Indexer.hxx +++ b/src/SMESHUtils/SMESH_Indexer.hxx @@ -101,10 +101,10 @@ class SMESH_OrientedIndexer : public SMESH_Indexer public: enum OriFlags //!< transformation types { - REV_X = 1, REV_Y = 2, SWAP_XY = 4, MAX_ORI = REV_X|REV_Y|SWAP_XY + NO_TRSF = 0, REV_X = 1, REV_Y = 2, SWAP_XY = 4, MAX_ORI = REV_X|REV_Y|SWAP_XY }; - SMESH_OrientedIndexer( const SMESH_Indexer& indexer, const int oriFlags ): + SMESH_OrientedIndexer( const SMESH_Indexer& indexer, const int oriFlags = NO_TRSF): TFather( indexer._xSize, indexer._ySize ), _xRevFun( (oriFlags & REV_X) ? & reverse : & lazy ), _yRevFun( (oriFlags & REV_Y) ? & reverse : & lazy ), diff --git a/src/SMESHUtils/SMESH_MAT2d.cxx b/src/SMESHUtils/SMESH_MAT2d.cxx index 1f4db68b1..b90ca2b8c 100644 --- a/src/SMESHUtils/SMESH_MAT2d.cxx +++ b/src/SMESHUtils/SMESH_MAT2d.cxx @@ -418,8 +418,10 @@ namespace */ //================================================================================ - void bndSegsToMesh( const vector< vector< BndSeg > >& /*bndSegsPerEdge*/ ) + void bndSegsToMesh( const vector< vector< BndSeg > >& bndSegsPerEdge ) { + if ( bndSegsPerEdge.empty() ) + return; #ifdef _MYDEBUG_ if ( !getenv("bndSegsToMesh")) return; map< const TVDVertex *, int > v2Node; diff --git a/src/SMESHUtils/SMESH_Offset.cxx b/src/SMESHUtils/SMESH_Offset.cxx index 6aeabfb53..01552f584 100644 --- a/src/SMESHUtils/SMESH_Offset.cxx +++ b/src/SMESHUtils/SMESH_Offset.cxx @@ -2022,6 +2022,8 @@ namespace SMESH_MeshAlgos #ifdef _DEBUG_ std::cerr << "BAD tria" << std::endl; cf.Dump(); +#else + if ( i < 0 ) cf.Dump(); // avoid "CutFace::Dump() unused in release mode" #endif continue; } @@ -2358,7 +2360,7 @@ namespace */ //================================================================================ - void CutFace::Dump() const // todo: unused in release mode + void CutFace::Dump() const { std::cout << std::endl << "INI F " << myInitFace->GetID() << std::endl; for ( size_t i = 0; i < myLinks.size(); ++i ) @@ -2779,12 +2781,10 @@ namespace } } - if ( closestNode1 && closestNode2 ) { - size_t i = myLinks.size(); - myLinks.resize( i + 2 ); - myLinks[ i ].Set( closestNode1, closestNode2 ); - myLinks[ i+1 ].Set( closestNode2, closestNode1 ); - } + size_t i = myLinks.size(); + myLinks.resize( i + 2 ); + myLinks[ i ].Set( closestNode1, closestNode2 ); + myLinks[ i+1 ].Set( closestNode2, closestNode1 ); } return true; diff --git a/src/SMESHUtils/SMESH_PolyLine.cxx b/src/SMESHUtils/SMESH_PolyLine.cxx index 9344611d6..4f2787e11 100644 --- a/src/SMESHUtils/SMESH_PolyLine.cxx +++ b/src/SMESHUtils/SMESH_PolyLine.cxx @@ -359,7 +359,7 @@ namespace { SMESH_MeshAlgos::PolySegment& polySeg = mySegments[ iSeg ]; - if ( ( polySeg.myXYZ[0] - polySeg.myXYZ[1] ).SquareModulus() == 0 ) + if (( polySeg.myXYZ[0] - polySeg.myXYZ[1] ).SquareModulus() == 0 ) { myPaths[ iSeg ].AddPoint( polySeg.myXYZ[0] ); myPaths[ iSeg ].AddPoint( polySeg.myXYZ[1] ); diff --git a/src/SMESH_I/SMESH_2smeshpy.cxx b/src/SMESH_I/SMESH_2smeshpy.cxx index db7e04afa..4ab71b449 100644 --- a/src/SMESH_I/SMESH_2smeshpy.cxx +++ b/src/SMESH_I/SMESH_2smeshpy.cxx @@ -33,8 +33,11 @@ #include #include +#include #include +#if OCC_VERSION_LARGE < 0x07050000 #include +#endif #include "SMESH_Gen_i.hxx" /* SALOME headers that include CORBA headers that include windows.h @@ -931,7 +934,8 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand Threshold = SMESH + types[ iGeom ]; #ifdef _DEBUG_ // is types complete? (compilation failure means that enum GeometryType changed) - int _asrt[( sizeof(types) / sizeof(const char*) == nbTypes ) ? 2 : -1 ]; _asrt[0]=_asrt[1]; // _asrt[1] may be used uninitialized => replace this with static_assert? + static_assert( sizeof(types) / sizeof(const char*) == nbTypes, + "Update names of GeometryType's!!!" ); #endif } if (Type == "SMESH.FT_EntityType") @@ -951,7 +955,8 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand Threshold = SMESH + types[ iGeom ]; #ifdef _DEBUG_ // is 'types' complete? (compilation failure means that enum EntityType changed) - int _asrt[( sizeof(types) / sizeof(const char*) == nbTypes ) ? 2 : -1 ]; _asrt[0]=_asrt[1]; // _asrt[1] may be used uninitialized => replace this with static_assert? + static_assert( sizeof(types) / sizeof(const char*) == nbTypes, + "Update names of EntityType's!!!" ); #endif } } diff --git a/src/SMESH_I/SMESH_Filter_i.cxx b/src/SMESH_I/SMESH_Filter_i.cxx index f8d0eb567..2a952d4db 100644 --- a/src/SMESH_I/SMESH_Filter_i.cxx +++ b/src/SMESH_I/SMESH_Filter_i.cxx @@ -843,7 +843,7 @@ void BelongToMeshGroup_i::SetGroupID( const char* theID ) // IOR or StoreName std::string BelongToMeshGroup_i::GetGroupID() { if ( myGroup->_is_nil() ) - SMESH::SMESH_GroupBase_var( GetGroup() ); // todo: unnecessary parentheses? + SMESH::SMESH_GroupBase_var( GetGroup() ); // decref the returned pointer if ( !myGroup->_is_nil() ) myID = SMESH_Gen_i::GetORB()->object_to_string( myGroup ); diff --git a/src/SMESH_I/SMESH_Gen_i.cxx b/src/SMESH_I/SMESH_Gen_i.cxx index 0d8754732..ad5b17f8c 100644 --- a/src/SMESH_I/SMESH_Gen_i.cxx +++ b/src/SMESH_I/SMESH_Gen_i.cxx @@ -6346,7 +6346,6 @@ CORBA::Boolean SMESH_Gen_i::IsApplicable ( const char* theAlgoType, SMESH_TRY; std::string aPlatformLibName; - //typedef GenericHypothesisCreator_i* (*GetHypothesisCreator)(const char*); GenericHypothesisCreator_i* aCreator = getHypothesisCreator(theAlgoType, theLibName, aPlatformLibName); if (aCreator) diff --git a/src/SMESH_I/SMESH_Mesh_i.cxx b/src/SMESH_I/SMESH_Mesh_i.cxx index 4cb097bab..b5c003e4c 100644 --- a/src/SMESH_I/SMESH_Mesh_i.cxx +++ b/src/SMESH_I/SMESH_Mesh_i.cxx @@ -6584,10 +6584,13 @@ void findConcurrents(const SMESH_DimHyp* theDimHyp, } //----------------------------------------------------------------------------- -void unionLists(TListOfInt& theListOfId, +bool unionLists(TListOfInt& theListOfId, TListOfListOfInt& theListOfListOfId, const int theIndx ) { + bool changed = false; + if ( theListOfId.empty() ) + return changed; TListOfListOfInt::iterator it = theListOfListOfId.begin(); for ( int i = 0; it != theListOfListOfId.end(); it++, i++ ) { @@ -6603,11 +6606,15 @@ void unionLists(TListOfInt& theListOfId, TListOfInt::iterator it2 = otherListOfId.begin(); for ( ; it2 != otherListOfId.end(); it2++ ) { if ( find( theListOfId.begin(), theListOfId.end(), (*it2) ) == theListOfId.end() ) + { theListOfId.push_back(*it2); + changed = true; + } } // clear source list otherListOfId.clear(); } + return changed; } //----------------------------------------------------------------------------- @@ -6691,10 +6698,15 @@ SMESH::submesh_array_array* SMESH_Mesh_i::GetMeshOrder() TListOfListOfInt allConurrent = findConcurrentSubMeshes(); anOrder.splice( anOrder.end(), allConurrent ); - int listIndx = 0; - TListOfListOfInt::iterator listIt = anOrder.begin(); - for(; listIt != anOrder.end(); listIt++, listIndx++ ) - unionLists( *listIt, anOrder, listIndx + 1 ); + bool changed; + do { + changed = false; + TListOfListOfInt::iterator listIt = anOrder.begin(); + for ( int listIndx = 1; listIt != anOrder.end(); listIt++, listIndx++ ) + if ( unionLists( *listIt, anOrder, listIndx )) + changed = true; + } + while ( changed ); // convert submesh ids into interface instances // and dump command into python diff --git a/src/SMESH_I/SMESH_NoteBook.cxx b/src/SMESH_I/SMESH_NoteBook.cxx index 7994cf1f1..3f53f2c28 100644 --- a/src/SMESH_I/SMESH_NoteBook.cxx +++ b/src/SMESH_I/SMESH_NoteBook.cxx @@ -286,7 +286,7 @@ void SMESH_NoteBook::ReplaceVariables() varIndex = atoi( varIndexPtr ); if ( 0 <= (int)varIndex && varIndex < vars.size() && !vars[varIndex].empty() ) { - // replace '$VarIndex$' either by var name of var value + // replace '$VarIndex$' either by var name or var value const char var0 = vars[varIndex][0]; const bool isValue = (( '0' <= var0 && var0 <= '9' ) || var0 == '-'); if ( isValue ) // remove TVar::Quote() as well diff --git a/src/SMESH_I/SMESH_PythonDump.cxx b/src/SMESH_I/SMESH_PythonDump.cxx index f8496d870..3ecff6184 100644 --- a/src/SMESH_I/SMESH_PythonDump.cxx +++ b/src/SMESH_I/SMESH_PythonDump.cxx @@ -33,13 +33,17 @@ #include "SMESH_MeshEditor_i.hxx" #include +#include #include #include -#include #include #include +#if OCC_VERSION_LARGE < 0x07050000 +#include +#endif + #include #ifdef _DEBUG_ @@ -672,7 +676,7 @@ namespace SMESH #ifdef _DEBUG_ std::cout << "Exception in SMESH_Gen_i::DumpPython(): " << text << std::endl; #else - (void)text; // todo: unused in release mode + (void)text; // unused in release mode #endif } diff --git a/src/StdMeshers/StdMeshers_BlockRenumber.cxx b/src/StdMeshers/StdMeshers_BlockRenumber.cxx index bc2e63a43..77889c7c4 100644 --- a/src/StdMeshers/StdMeshers_BlockRenumber.cxx +++ b/src/StdMeshers/StdMeshers_BlockRenumber.cxx @@ -127,7 +127,7 @@ bool StdMeshers_BlockRenumber::IsSolidIncluded( SMESH_Mesh& mesh, //======================================================================= SMESH_ComputeErrorPtr StdMeshers_BlockRenumber::CheckHypothesis(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape) const + const TopoDS_Shape& /*shape*/) const { SMESH_Comment errorTxt; for ( size_t i = 0; i < _blockCS.size() && errorTxt.empty(); ++i ) @@ -313,7 +313,7 @@ namespace boost { //======================================================================= template - void serialize(Archive & ar, StdMeshers_BlockCS & blockCS, const unsigned int version) + void serialize(Archive & ar, StdMeshers_BlockCS & blockCS, const unsigned int /*version*/) { ar & blockCS._solid; ar & blockCS._vertex000; diff --git a/src/StdMeshers/StdMeshers_BlockRenumber.hxx b/src/StdMeshers/StdMeshers_BlockRenumber.hxx index f68b17ecd..7a884efe2 100644 --- a/src/StdMeshers/StdMeshers_BlockRenumber.hxx +++ b/src/StdMeshers/StdMeshers_BlockRenumber.hxx @@ -86,14 +86,14 @@ public: * \param theShape - the geometry of interest * \retval bool - true if parameter values have been successfully defined */ - bool SetParametersByMesh(const SMESH_Mesh* theMesh, const TopoDS_Shape& theShape) override + bool SetParametersByMesh(const SMESH_Mesh* /*mesh*/, const TopoDS_Shape& /*shape*/) override { return false; } /*! * \brief Initialize my parameter values by default parameters. * \retval bool - true if parameter values have been successfully defined */ - bool SetParametersByDefaults(const TDefaults& dflts, const SMESH_Mesh* theMesh=0) override + bool SetParametersByDefaults(const TDefaults& /*dflts*/, const SMESH_Mesh* /*mesh*/=0) override { return false; } public: @@ -115,7 +115,7 @@ public: // Persistence: define both input and output at once friend class boost::serialization::access; - template void serialize( Archive & ar, const unsigned int version ) + template void serialize( Archive & ar, const unsigned int /*version*/ ) { ar & _blockCS; } diff --git a/src/StdMeshers/StdMeshers_Cartesian_3D.cxx b/src/StdMeshers/StdMeshers_Cartesian_3D.cxx index 06cf5ba05..a741b0f01 100644 --- a/src/StdMeshers/StdMeshers_Cartesian_3D.cxx +++ b/src/StdMeshers/StdMeshers_Cartesian_3D.cxx @@ -2563,7 +2563,7 @@ namespace case 3: // at a corner { _Node& node = _hexNodes[ subEntity - SMESH_Block::ID_FirstV ]; - if ( node.Node() != 0 ) + if ( node.Node() ) { if ( node._intPoint ) node._intPoint->Add( _eIntPoints[ iP ]->_faceIDs, _eIntPoints[ iP ]->_node ); @@ -3503,7 +3503,7 @@ namespace continue; // perform intersection - E_IntersectPoint* eip, *vip = 0; // todo: vip must be explicitly initialized to avoid warning (see below) + E_IntersectPoint* eip, *vip = 0; for ( int iDirZ = 0; iDirZ < 3; ++iDirZ ) { GridPlanes& planes = pln[ iDirZ ]; @@ -3604,7 +3604,7 @@ namespace vip = _grid->Add( ip ); if ( isInternal && !sameV ) vip->_faceIDs.push_back( _grid->PseudoIntExtFaceID() ); - if ( !addIntersection( vip, hexes, ijk, d000 ) && !sameV ) // todo: vip must be explicitly initialized to avoid warning (see above) + if ( !addIntersection( vip, hexes, ijk, d000 ) && !sameV ) _grid->Remove( vip ); ip._shapeID = edgeID; } diff --git a/src/StdMeshers/StdMeshers_CompositeHexa_3D.cxx b/src/StdMeshers/StdMeshers_CompositeHexa_3D.cxx index 3a1ac59c6..0324fc92a 100644 --- a/src/StdMeshers/StdMeshers_CompositeHexa_3D.cxx +++ b/src/StdMeshers/StdMeshers_CompositeHexa_3D.cxx @@ -44,6 +44,7 @@ #include #include +#include #include #include #include @@ -61,10 +62,9 @@ #include #include +#include #include #include -#include -#include using namespace std; diff --git a/src/StdMeshers/StdMeshers_Hexa_3D.cxx b/src/StdMeshers/StdMeshers_Hexa_3D.cxx index 4f2cacc70..43e013377 100644 --- a/src/StdMeshers/StdMeshers_Hexa_3D.cxx +++ b/src/StdMeshers/StdMeshers_Hexa_3D.cxx @@ -55,7 +55,6 @@ #include "Utils_ExceptHandlers.hxx" #include - #include typedef SMESH_Comment TComm; diff --git a/src/StdMeshers/StdMeshers_Prism_3D.cxx b/src/StdMeshers/StdMeshers_Prism_3D.cxx index 0adab62b3..421710511 100644 --- a/src/StdMeshers/StdMeshers_Prism_3D.cxx +++ b/src/StdMeshers/StdMeshers_Prism_3D.cxx @@ -1841,6 +1841,8 @@ bool StdMeshers_Prism_3D::computeWalls(const Prism_3D::TPrismTopo& thePrism) mesh->GetSubMesh( v )->ComputeStateEngine( SMESH_subMesh::COMPUTE ); const SMDS_MeshNode* n = SMESH_Algo::VertexNode( v, meshDS ); newNodes[ is2ndV ? newNodes.size()-1 : 0 ] = (SMDS_MeshNode*) n; + if ( !n ) + return toSM( error( TCom("No node on vertex #") << meshDS->ShapeToIndex( v ))); } // compute nodes on target EDGEs diff --git a/src/StdMeshers/StdMeshers_ProjectionUtils.cxx b/src/StdMeshers/StdMeshers_ProjectionUtils.cxx index 3ab3d55a3..7760791b5 100644 --- a/src/StdMeshers/StdMeshers_ProjectionUtils.cxx +++ b/src/StdMeshers/StdMeshers_ProjectionUtils.cxx @@ -123,17 +123,19 @@ namespace { bool storeShapeForDebug(const TopoDS_Shape& shape) { + bool toShow; #ifdef _DEBUG_ const char* type[] ={"COMPOUND","COMPSOLID","SOLID","SHELL","FACE","WIRE","EDGE","VERTEX"}; BRepTools::Write( shape, SMESH_Comment("/tmp/") << type[shape.ShapeType()] << "_" << shape.TShape().operator->() << ".brep"); - if ( !theMeshDS[0] ) { - show_shape( TopoDS_Shape(), "avoid warning: show_shape() defined but not used"); + toShow = !theMeshDS[0]; // no show +#else + toShow = theMeshDS[0]; // no show +#endif + if ( toShow ) { + show_shape( shape, "avoid warning: show_shape() defined but not used"); show_list( "avoid warning: show_list() defined but not used", list< TopoDS_Edge >() ); } -#else - (void)shape; // unused in release mode -#endif return false; } @@ -540,8 +542,10 @@ bool StdMeshers_ProjectionUtils::FindSubShapeAssociation(const TopoDS_Shape& the // b) find association of a couple of vertices and recall self. // +#ifdef _DEBUG_ theMeshDS[0] = theMesh1->GetMeshDS(); // debug theMeshDS[1] = theMesh2->GetMeshDS(); +#endif // ================================================================================= // 1) Is it the case of associating a group member -> another group? (PAL16202, 16203) diff --git a/src/StdMeshersGUI/StdMeshersGUI_BlockRenumberCreator.cxx b/src/StdMeshersGUI/StdMeshersGUI_BlockRenumberCreator.cxx index 2f946d9a1..57b051a45 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_BlockRenumberCreator.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_BlockRenumberCreator.cxx @@ -487,7 +487,7 @@ void StdMeshersGUI_BlockRenumberCreator::onRemoveBtnClick() */ //================================================================================ -bool StdMeshersGUI_BlockRenumberCreator::checkParams( QString& msg ) const +bool StdMeshersGUI_BlockRenumberCreator::checkParams( QString& /*msg*/ ) const { return true; } diff --git a/src/StdMeshers_I/StdMeshers_BlockRenumber_i.cxx b/src/StdMeshers_I/StdMeshers_BlockRenumber_i.cxx index 7c517cab6..45a29436a 100644 --- a/src/StdMeshers_I/StdMeshers_BlockRenumber_i.cxx +++ b/src/StdMeshers_I/StdMeshers_BlockRenumber_i.cxx @@ -123,8 +123,9 @@ StdMeshers::blockcs_array* StdMeshers_BlockRenumber_i::GetBlocksOrientation() */ //================================================================================ -bool StdMeshers_BlockRenumber_i::getObjectsDependOn( std::vector< std::string > & entryArray, - std::vector< int > & subIDArray ) const +bool +StdMeshers_BlockRenumber_i::getObjectsDependOn( std::vector< std::string > & entryArray, + std::vector< int > & /*subIDArray*/ ) const { const std::vector< StdMeshers_BlockCS >& bcsVec = const_cast(this)->GetImpl()->GetBlocksOrientation(); @@ -145,7 +146,7 @@ bool StdMeshers_BlockRenumber_i::getObjectsDependOn( std::vector< std::string > //================================================================================ bool StdMeshers_BlockRenumber_i::setObjectsDependOn( std::vector< std::string > & entryArray, - std::vector< int > & subIDArray ) + std::vector< int > & /*subIDArray*/ ) { std::vector< StdMeshers_BlockCS > bcsVec( entryArray.size() / 3 ); for ( size_t i = 0; i + 2 < entryArray.size(); i += 3 )