Salome HOME
Merge from PHASE_25_BR 09/12/2010
[modules/smesh.git] / src / StdMeshers / StdMeshers_QuadrangleParams.cxx
index ad3fee841930d39fd272cfb01a26be4846f2e0ba..c0e106364bfd9c4f44f25efd20ae83a2a9d590a3 100644 (file)
@@ -1,7 +1,4 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-//
-//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//  Copyright (C) 2007-2010  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
@@ -23,7 +20,7 @@
 //  File   : StdMeshers_QuadrangleParams.cxx
 //  Author : Sergey KUUL, OCC
 //  Module : SMESH
-//
+
 #include "StdMeshers_QuadrangleParams.hxx"
 
 #include "SMESH_Algo.hxx"
@@ -43,38 +40,36 @@ using namespace std;
 
 //=============================================================================
 /*!
- *  
+ *
  */
 //=============================================================================
-
 StdMeshers_QuadrangleParams::StdMeshers_QuadrangleParams(int hypId, int studyId,
-                                                        SMESH_Gen * gen)
-  :SMESH_Hypothesis(hypId, studyId, gen)
+                                                         SMESH_Gen * gen)
+  : SMESH_Hypothesis(hypId, studyId, gen)
 {
   _name = "QuadrangleParams";
   _param_algo_dim = 2;
   _triaVertexID = -1;
+  _quadType = QUAD_STANDARD;
 }
 
 //=============================================================================
 /*!
- *  
+ *
  */
 //=============================================================================
-
 StdMeshers_QuadrangleParams::~StdMeshers_QuadrangleParams()
 {
 }
 
 //=============================================================================
 /*!
- *  
+ *
  */
 //=============================================================================
-
-void StdMeshers_QuadrangleParams::SetTriaVertex(int id)
+void StdMeshers_QuadrangleParams::SetTriaVertex (int id)
 {
-  if ( id != _triaVertexID ) {
+  if (id != _triaVertexID) {
     _triaVertexID = id;
     NotifySubMeshesHypothesisModification();
   }
@@ -82,22 +77,36 @@ void StdMeshers_QuadrangleParams::SetTriaVertex(int id)
 
 //=============================================================================
 /*!
- *  
+ *
  */
 //=============================================================================
+void StdMeshers_QuadrangleParams::SetQuadType (StdMeshers_QuadType type)
+{
+  if (type != _quadType) {
+    _quadType = type;
+    NotifySubMeshesHypothesisModification();
+  }
+}
 
+//=============================================================================
+/*!
+ *
+ */
+//=============================================================================
 ostream & StdMeshers_QuadrangleParams::SaveTo(ostream & save)
 {
-  save << _triaVertexID << " " << _objEntry;
+  if (_objEntry.size() == 0)
+    save << _triaVertexID << " UNDEFINED " << int(_quadType);
+  else
+    save << _triaVertexID << " " << _objEntry << " " << int(_quadType);
   return save;
 }
 
 //=============================================================================
 /*!
- *  
+ *
  */
 //=============================================================================
-
 istream & StdMeshers_QuadrangleParams::LoadFrom(istream & load)
 {
   bool isOK = true;
@@ -106,16 +115,22 @@ istream & StdMeshers_QuadrangleParams::LoadFrom(istream & load)
     load.clear(ios::badbit | load.rdstate());
 
   isOK = (load >> _objEntry);
+  if (!isOK)
+    load.clear(ios::badbit | load.rdstate());
+
+  int type;
+  isOK = (load >> type);
+  if (isOK)
+    _quadType = StdMeshers_QuadType(type);
 
   return load;
 }
 
 //=============================================================================
 /*!
- *  
+ *
  */
 //=============================================================================
-
 ostream & operator <<(ostream & save, StdMeshers_QuadrangleParams & hyp)
 {
   return hyp.SaveTo( save );
@@ -123,10 +138,9 @@ ostream & operator <<(ostream & save, StdMeshers_QuadrangleParams & hyp)
 
 //=============================================================================
 /*!
- *  
+ *
  */
 //=============================================================================
-
 istream & operator >>(istream & load, StdMeshers_QuadrangleParams & hyp)
 {
   return hyp.LoadFrom( load );
@@ -140,9 +154,8 @@ istream & operator >>(istream & load, StdMeshers_QuadrangleParams & hyp)
  * \retval bool - true if parameter values have been successfully defined
  */
 //================================================================================
-
 bool StdMeshers_QuadrangleParams::SetParametersByMesh(const SMESH_Mesh* theMesh,
-                                                     const TopoDS_Shape& theShape)
+                                                      const TopoDS_Shape& theShape)
 {
   if ( !theMesh || theShape.IsNull() )
     return false;
@@ -156,10 +169,8 @@ 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,
-                                                         const SMESH_Mesh* /*mesh*/)
+                                                          const SMESH_Mesh* /*mesh*/)
 {
   return true;
 }
-