From 13a0e8541980266042503c6ef569ba6e4ffe11f6 Mon Sep 17 00:00:00 2001
From: Laurent Van Migroet <l.vanmiegroet@ulg.ac.be>
Date: Tue, 8 Jun 2010 15:37:08 +0000
Subject: [PATCH] setting filename when reading a geo file + add new function
 get all mesh vertices into GModel

---
 Geo/GModel.cpp       | 15 +++++++++++++++
 Geo/GModel.h         |  3 +++
 Geo/GModelIO_Geo.cpp |  4 +++-
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index bc96d1eab2..475ca38bea 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -642,6 +642,21 @@ int GModel::getNumMeshVertices()
   return n;
 }
 
+void GModel::getMeshVertices(std::vector<MVertex *> &meshVertices)
+{
+	meshVertices.resize(getNumMeshVertices());
+  std::vector<GEntity*> entities;
+  getEntities(entities);
+  int n = -1;
+  for(unsigned int i = 0; i < entities.size(); i++)
+	{
+		GEntity *entity=entities[i];
+		unsigned msh_size=entity->mesh_vertices.size();
+		for(unsigned j=0;j<msh_size;++j)
+			meshVertices[++n]=entity->mesh_vertices[j];
+	}
+}
+
 int GModel::getNumMeshElements()
 {
   std::vector<GEntity*> entities;
diff --git a/Geo/GModel.h b/Geo/GModel.h
index 83d1bf1d2e..89e324776c 100644
--- a/Geo/GModel.h
+++ b/Geo/GModel.h
@@ -310,6 +310,9 @@ class GModel
 
   // return the total number of vertices in the mesh
   int getNumMeshVertices();
+	
+	// return all the mesh vertices
+	void getMeshVertices(std::vector<MVertex *> &meshVertices);
 
   // access a mesh vertex by tag, using the vertex cache
   MVertex *getMeshVertexByTag(int n);
diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp
index 8c5d0c15a6..c15ee55094 100644
--- a/Geo/GModelIO_Geo.cpp
+++ b/Geo/GModelIO_Geo.cpp
@@ -39,7 +39,9 @@ void GModel::_deleteGEOInternals()
 int GModel::readGEO(const std::string &name)
 {
   ParseFile(name, true);
-  return GModel::current()->importGEOInternals();
+	GModel *newModel=GModel::current();
+	newModel->setFileName(name);
+  return newModel->importGEOInternals();
 }
 
 int GModel::exportDiscreteGEOInternals()
-- 
GitLab