Salome HOME
NRI : First integration.
[modules/smesh.git] / src / SMESH / SMESH_2D_Algo.cxx
diff --git a/src/SMESH/SMESH_2D_Algo.cxx b/src/SMESH/SMESH_2D_Algo.cxx
new file mode 100644 (file)
index 0000000..f42d78a
--- /dev/null
@@ -0,0 +1,117 @@
+using namespace std;
+//=============================================================================
+// File      : SMESH_2D_Algo.cxx
+// Created   : sam mai 18 09:23:44 CEST 2002
+// Author    : Paul RASCLE, EDF
+// Project   : SALOME
+// Copyright : EDF 2002
+// $Header$
+//=============================================================================
+using namespace std;
+
+#include "SMESH_2D_Algo.hxx"
+#include "SMESH_Gen.hxx"
+
+#include "utilities.h"
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+SMESH_2D_Algo::SMESH_2D_Algo(int hypId, int studyId, SMESH_Gen* gen)
+  : SMESH_Algo(hypId, studyId, gen)
+{
+//   _compatibleHypothesis.push_back("hypothese_2D_bidon");
+  _type = ALGO_2D;
+  gen->_map2D_Algo[hypId] = this;
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+SMESH_2D_Algo::~SMESH_2D_Algo()
+{
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+ostream & SMESH_2D_Algo::SaveTo(ostream & save)
+{
+  return save << this;
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+istream & SMESH_2D_Algo::LoadFrom(istream & load)
+{
+  return load >> (*this);
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+ostream& operator << (ostream & save, SMESH_2D_Algo & hyp)
+{
+  return save;
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+istream& operator >> (istream & load, SMESH_2D_Algo & hyp)
+{
+  return load;
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+int SMESH_2D_Algo::NumberOfWires(const TopoDS_Shape& S)
+{
+  int i = 0;
+  for (TopExp_Explorer exp(S,TopAbs_WIRE); exp.More(); exp.Next())
+    i++;
+  return i;
+}
+
+//=============================================================================
+/*!
+ *  
+ */
+//=============================================================================
+
+int SMESH_2D_Algo::NumberOfPoints(SMESH_Mesh& aMesh, const TopoDS_Wire& W)
+{
+  int nbPoints = 0;
+  for (TopExp_Explorer exp(W,TopAbs_EDGE); exp.More(); exp.Next())
+    {
+      const TopoDS_Edge& E = TopoDS::Edge(exp.Current());
+      int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes();
+      //SCRUTE(nb);
+      nbPoints += nb +1; // internal points plus 1 vertex of 2 (last point ?)
+    }
+  //SCRUTE(nbPoints);
+  return nbPoints;
+}