"README.txt" did not exist on "d44cd5cb8d25e3cf28e35a1a8138e89f657b4f39"
Newer
Older
// Gmsh - Copyright (C) 1997-2017 C. Geuzaine, J.-F. Remacle
//
// See the LICENSE.txt file for license information. Please report all
// bugs and problems to the public mailing list <gmsh@onelab.info>.
// To create a plugin:
// 1) Create a dynamic lib containing GMSH_RegisterPlugin();
// 2) When there is an unacceptable error in the plugin, just throw
// this, the plugin manager will be able to catch the exception.
// Some Plugins are default gmsh plugins and are insterted directly
// in the executable. I think that it's a good way to start.

Christophe Geuzaine
committed
#include "GmshMessage.h"
GMSH_CAD_PLUGIN,
GMSH_MESH_PLUGIN,
GMSH_POST_PLUGIN,
GMSH_SOLVER_PLUGIN
GMSH_Plugin() : dialogBox(0), hlib(0) {}
virtual ~GMSH_Plugin(){}
// return plugin type, name and info
virtual std::string getName() const = 0;
virtual std::string getShortHelp() const = 0;
virtual std::string getHelp() const = 0;
virtual std::string getAuthor() const { return "C. Geuzaine, J.-F. Remacle"; }
virtual std::string getCopyright() const { return "C. Geuzaine, J.-F. Remacle"; }
// show the message and hopefully continue
virtual void catchErrorMessage(char *errorMessage) const;
virtual int getNbOptions() const { return 0; }
virtual StringXNumber *getOption(int iopt) { return 0; };
virtual int getNbOptionsStr() const { return 0; }
virtual StringXString *getOptionStr(int iopt) { return NULL; }
// serialize plugin options into a string
std::string serialize();
// dynamic pointer to a drawing function
static void setDrawFunction(void (*fct)(void *));
Jonathan Lambrechts
committed
#ifndef SWIG
Jonathan Lambrechts
committed
#endif
// The base class for post-processing plugins. The user can either
// modify or duplicate a post-processing view
inline GMSH_PLUGIN_TYPE getType() const { return GMSH_Plugin::GMSH_POST_PLUGIN; }
// if the returned pointer is the same as the argument, then the
// view is simply modified, else, a new view is added in the view
// list
virtual PView *execute(PView *) = 0;
// excute on a remote dataset
virtual PView *executeRemote(PView *);
// get the view given an index and a default value (if index < 0 use
// the default view if available; otherwise use the last view in the
// list)
virtual PView *getView(int index, PView *view);
// get the data in list format
virtual PViewDataList *getDataList(PView *view, bool showError=true);

Christophe Geuzaine
committed
// get the the adapted data (i.e. linear, on refined mesh) if
// available, otherwise get the original data
virtual PViewData *getPossiblyAdaptiveData(PView *view);
virtual bool geometricalFilter(fullMatrix<double> *) const { return true; }
// The base class for solver plugins. The idea is to be able to
// associate some properties to physical entities, so that we can
// interface gmsh with a solver (ABAQUS...), i.e., create the input
// file for the solver
inline GMSH_PLUGIN_TYPE getType() const { return GMSH_Plugin::GMSH_SOLVER_PLUGIN; }
// popup dialog box
virtual void popupPropertiesForPhysicalEntity(int dim) = 0;
virtual void receiveNewPhysicalGroup(int dim, int id) = 0;
// load the solver input file related to the gmsh geo file
virtual void readSolverFile(const char *) = 0;
virtual void writeSolverFile(const char *) const = 0;
// enhance graphics for a giver geo point
// enhance graphics for a giver geo line
virtual bool GL_enhanceLine(int CurveId, Vertex *v1, Vertex *v2) { return false; }
class GMSH_MeshPlugin : public GMSH_Plugin
{
inline GMSH_PLUGIN_TYPE getType() const { return GMSH_Plugin::GMSH_MESH_PLUGIN; }
virtual void run() {}
};