Salome HOME
Merge branch 'V9_9_BR'
[modules/smesh.git] / src / StdMeshers / StdMeshers_QuadrangleParams.cxx
index e8ab5ad6abec5e56575f3ed6d7ba50f6fb48dabf..ed1682805d3dde6ca65e1685975ba99199e61869 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -42,9 +42,9 @@ using namespace std;
  *
  */
 //=============================================================================
-StdMeshers_QuadrangleParams::StdMeshers_QuadrangleParams(int hypId, int studyId,
+StdMeshers_QuadrangleParams::StdMeshers_QuadrangleParams(int hypId,
                                                          SMESH_Gen * gen)
-  : SMESH_Hypothesis(hypId, studyId, gen)
+  : SMESH_Hypothesis(hypId, gen)
 {
   _name = "QuadrangleParams";
   _param_algo_dim = 2;
@@ -142,6 +142,10 @@ ostream & StdMeshers_QuadrangleParams::SaveTo(ostream & save)
          << " " << _enforcedPoints[i].Y()
          << " " << _enforcedPoints[i].Z();
 
+  save << " " << _cornerVertices.size();
+  for ( size_t i = 0; i < _cornerVertices.size(); ++i )
+    save << " " << _cornerVertices[i];
+
   return save;
 }
 
@@ -153,16 +157,16 @@ ostream & StdMeshers_QuadrangleParams::SaveTo(ostream & save)
 istream & StdMeshers_QuadrangleParams::LoadFrom(istream & load)
 {
   bool isOK = true;
-  isOK = (load >> _triaVertexID);
+  isOK = static_cast<bool>(load >> _triaVertexID);
   if (!isOK)
     load.clear(ios::badbit | load.rdstate());
 
-  isOK = (load >> _objEntry);
+  isOK = static_cast<bool>(load >> _objEntry);
   if (!isOK)
     load.clear(ios::badbit | load.rdstate());
 
   int type;
-  isOK = (load >> type);
+  isOK = static_cast<bool>(load >> type);
   if (isOK)
     _quadType = StdMeshers_QuadType(type);
 
@@ -182,6 +186,17 @@ istream & StdMeshers_QuadrangleParams::LoadFrom(istream & load)
       else
         break;
   }
+
+  if ( load >> nbP && nbP > 0 )
+  {
+    int id;
+    _cornerVertices.reserve( nbP );
+    while ( _cornerVertices.size() < _cornerVertices.capacity() )
+      if ( load >> id )
+        _cornerVertices.push_back( id );
+      else
+        break;
+  }
   return load;
 }
 
@@ -208,7 +223,7 @@ bool StdMeshers_QuadrangleParams::SetParametersByMesh(const SMESH_Mesh* theMesh,
  *  \retval bool - true if parameter values have been successfully defined
  */
 //================================================================================
-bool StdMeshers_QuadrangleParams::SetParametersByDefaults(const TDefaults&  dflts,
+bool StdMeshers_QuadrangleParams::SetParametersByDefaults(const TDefaults&  /*dflts*/,
                                                           const SMESH_Mesh* /*mesh*/)
 {
   return true;