diff --git a/Plugin/NewView.cpp b/Plugin/NewView.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a0106a955eff0d59babbd5c69526c9c7147d40bd --- /dev/null +++ b/Plugin/NewView.cpp @@ -0,0 +1,60 @@ +// Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle +// +// See the LICENSE.txt file for license information. Please report all +// bugs and problems to <gmsh@geuz.org>. +// +// Contributor(s): +// Ruth Sabariego & Francois Henrotte +// + + +#include "NewView.h" +#include "GModel.h" +#include "MElement.h" + +StringXNumber NewViewOptions_Number[] = { + {GMSH_FULLRC, "View", NULL, -1.} +}; + +extern "C" +{ + GMSH_Plugin *GMSH_RegisterNewViewPlugin() + { + return new GMSH_NewViewPlugin(); + } +} + +std::string GMSH_NewViewPlugin::getHelp() const +{ + return "Plugin(NewView) creates a new view from a mesh." ; +} + +int GMSH_NewViewPlugin::getNbOptions() const +{ + return sizeof(NewViewOptions_Number) / sizeof(StringXNumber); +} + +StringXNumber *GMSH_NewViewPlugin::getOption(int iopt) +{ + return &NewViewOptions_Number[iopt]; +} + +PView *GMSH_NewViewPlugin::execute(PView * v) +{ + if(GModel::current()->getMeshStatus() < 1){ + Msg::Error("No mesh available to create the view: please mesh your model!"); + return v ; + } + std::map<int, std::vector<double> > d; + std::vector<GEntity*> entities; + GModel::current()->getEntities(entities); + for(unsigned int i = 0; i < entities.size(); i++){ + for(unsigned int j = 0; j < entities[i]->mesh_vertices.size(); j++){ + MVertex *ve = entities[i]->mesh_vertices[j]; + d[ve->getNum()].push_back(0.); + } + } + + PView *vn = new PView("New view", "NodeData", GModel::current(), d); + return vn ; +} diff --git a/Plugin/NewView.h b/Plugin/NewView.h new file mode 100644 index 0000000000000000000000000000000000000000..33f76db808fab8c3c85e94255a793dbde047b7d3 --- /dev/null +++ b/Plugin/NewView.h @@ -0,0 +1,31 @@ +// Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle +// +// See the LICENSE.txt file for license information. Please report all +// bugs and problems to <gmsh@geuz.org>. + +#ifndef _NEWVIEW_H_ +#define _NEWVIEW_H_ + +#include "Plugin.h" + +extern "C" +{ + GMSH_Plugin *GMSH_RegisterNewViewPlugin(); +} + +class GMSH_NewViewPlugin : public GMSH_PostPlugin +{ + public: + GMSH_NewViewPlugin(){} + std::string getName() const { return "NewView"; } + std::string getShortHelp() const + { + return "Create an empty New View from a mesh"; + } + std::string getHelp() const; + int getNbOptions() const; + StringXNumber *getOption(int iopt); + PView *execute(PView *); +}; + +#endif