gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
PluginManager.cpp
Go to the documentation of this file.
1 // Gmsh - Copyright (C) 1997-2022 C. Geuzaine, J.-F. Remacle
2 //
3 // See the LICENSE.txt file in the Gmsh root directory for license information.
4 // Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
5 
6 #include <map>
7 #include <stdexcept>
8 #include <stdlib.h>
9 #include "GmshConfig.h"
10 #include "StringUtils.h"
11 #include "Context.h"
12 #include "Plugin.h"
13 #include "PluginManager.h"
14 #include "Isosurface.h"
15 #include "CutGrid.h"
16 #include "StreamLines.h"
17 #include "Particles.h"
18 #include "CutPlane.h"
19 #include "CutParametric.h"
20 #include "CutSphere.h"
21 #include "CutBox.h"
22 #include "Skin.h"
23 #include "AnalyseMeshQuality.h"
24 #include "Invisible.h"
25 #include "CurvedBndDist.h"
26 #include "MathEval.h"
27 #include "ExtractElements.h"
28 #include "SimplePartition.h"
29 #include "Crack.h"
30 #include "HarmonicToTime.h"
31 #include "ModulusPhase.h"
32 #include "Integrate.h"
33 #include "MinMax.h"
34 #include "Gradient.h"
35 #include "Curl.h"
36 #include "Divergence.h"
37 #include "Annotate.h"
38 #include "Distance.h"
39 #include "NearestNeighbor.h"
40 #include "Remove.h"
41 #include "MakeSimplex.h"
42 #include "Smooth.h"
43 #include "Transform.h"
44 #include "LongitudeLatitude.h"
45 #include "Triangulate.h"
46 #include "Tetrahedralize.h"
47 #include "Warp.h"
48 #include "SphericalRaise.h"
49 #include "Eigenvectors.h"
50 #include "Eigenvalues.h"
51 #include "Lambda2.h"
52 #include "ModifyComponents.h"
53 #include "Probe.h"
54 #include "HomologyComputation.h"
55 #include "HomologyPostProcessing.h"
56 #include "ExtractEdges.h"
58 #include "Bubbles.h"
59 #include "NearToFarField.h"
60 #include "DiscretizationError.h"
61 #include "Scal2Tens.h"
62 #include "Scal2Vec.h"
63 #include "CutMesh.h"
64 #include "SpanningTree.h"
65 #include "NewView.h"
66 #include "MeshSubEntities.h"
67 #include "MeshVolume.h"
68 #include "CVTRemesh.h"
69 #include "ShowNeighborElements.h"
70 #include "GaussPoints.h"
71 #include "VoroMetal.h"
72 #include "Summation.h"
73 #include "BoundaryAngles.h"
74 #include "MeshSizeFieldView.h"
75 
76 // for testing purposes only :-)
77 #undef HAVE_DLOPEN
78 
79 #if defined(HAVE_DLOPEN)
80 #include <dlfcn.h>
81 #endif
82 
83 #if defined(HAVE_FLTK)
84 #include <FL/Fl.H>
85 #include <FL/filename.H>
86 #endif
87 
88 const char *GMSH_PluginEntry = "GMSH_RegisterPlugin";
89 
91 
93 {
94  for(auto it = allPlugins.begin(); it != allPlugins.end(); ++it)
95  delete it->second;
96  _instance = nullptr;
97 }
98 
99 GMSH_Plugin *PluginManager::find(const std::string &pluginName)
100 {
101  auto it = allPlugins.find(pluginName);
102  if(it == allPlugins.end()) return nullptr;
103  return it->second;
104 }
105 
107 {
108  auto it = allPlugins.begin();
109  auto ite = allPlugins.end();
110  for(; it != ite; ++it) {
111  GMSH_Plugin *p = it->second;
113  return (GMSH_SolverPlugin *)(p);
114  }
115  }
116  return nullptr;
117 }
118 
119 int PluginManager::action(const std::string &pluginName,
120  const std::string &action, void *data)
121 {
122  GMSH_Plugin *plugin = find(pluginName);
123  if(!plugin) throw std::runtime_error("Unknown plugin name");
124 
125  if(action == "Run") {
126  Msg::Info("Running Plugin(%s)...", pluginName.c_str());
127  int tag = plugin->run();
128  Msg::Info("Done running Plugin(%s)", pluginName.c_str());
129  return tag;
130  }
131  else
132  throw std::runtime_error("Unknown plugin action");
133 }
134 
135 void PluginManager::setPluginOption(const std::string &pluginName,
136  const std::string &option,
137  const std::string &value)
138 {
139  GMSH_Plugin *plugin = find(pluginName);
140  if(!plugin) throw std::runtime_error("Unknown plugin name");
141 
142  for(int i = 0; i < plugin->getNbOptionsStr(); i++) {
143  StringXString *sxs = plugin->getOptionStr(i);
144  if(option == std::string(sxs->str)) {
145  sxs->def = value;
146  return;
147  }
148  }
149  throw std::runtime_error("Unknown plugin option name");
150 }
151 
152 void PluginManager::setPluginOption(const std::string &pluginName,
153  const std::string &option,
154  double const value)
155 {
156  GMSH_Plugin *plugin = find(pluginName);
157  if(!plugin) throw std::runtime_error("Unknown plugin name");
158 
159  for(int i = 0; i < plugin->getNbOptions(); i++) {
160  StringXNumber *sxn = plugin->getOption(i);
161  if(option == std::string(sxn->str)) {
162  sxn->def = value;
163  return;
164  }
165  }
166  throw std::runtime_error("Unknown plugin option name");
167 }
168 
170 {
171  if(!_instance) _instance = new PluginManager;
172  return _instance;
173 }
174 
176 {
177  if(CTX::instance()->solver.plugins) {
178  // nothing here yet
179  }
180 
181  if(CTX::instance()->post.plugins) {
182  allPlugins.insert(
183  std::make_pair("StreamLines", GMSH_RegisterStreamLinesPlugin()));
184  allPlugins.insert(
185  std::make_pair("Particles", GMSH_RegisterParticlesPlugin()));
186  allPlugins.insert(std::make_pair("CutGrid", GMSH_RegisterCutGridPlugin()));
187  allPlugins.insert(
188  std::make_pair("Isosurface", GMSH_RegisterIsosurfacePlugin()));
189  allPlugins.insert(
190  std::make_pair("CutPlane", GMSH_RegisterCutPlanePlugin()));
191  allPlugins.insert(
192  std::make_pair("CutSphere", GMSH_RegisterCutSpherePlugin()));
193  allPlugins.insert(std::make_pair("CutBox", GMSH_RegisterCutBoxPlugin()));
194  allPlugins.insert(std::make_pair("Skin", GMSH_RegisterSkinPlugin()));
195  allPlugins.insert(
196  std::make_pair("MathEval", GMSH_RegisterMathEvalPlugin()));
197  allPlugins.insert(
198  std::make_pair("CurvedBndDist", GMSH_RegisterCurvedBndDistPlugin()));
199  allPlugins.insert(std::make_pair("ModifyComponents",
201  allPlugins.insert(
202  std::make_pair("ExtractElements", GMSH_RegisterExtractElementsPlugin()));
203  allPlugins.insert(
204  std::make_pair("CutParametric", GMSH_RegisterCutParametricPlugin()));
205  allPlugins.insert(
206  std::make_pair("MakeSimplex", GMSH_RegisterMakeSimplexPlugin()));
207  allPlugins.insert(std::make_pair("Smooth", GMSH_RegisterSmoothPlugin()));
208  allPlugins.insert(
209  std::make_pair("Transform", GMSH_RegisterTransformPlugin()));
210  allPlugins.insert(std::make_pair("LongitudeLatitude",
212  allPlugins.insert(std::make_pair("Warp", GMSH_RegisterWarpPlugin()));
213  allPlugins.insert(
214  std::make_pair("SphericalRaise", GMSH_RegisterSphericalRaisePlugin()));
215  allPlugins.insert(
216  std::make_pair("HarmonicToTime", GMSH_RegisterHarmonicToTimePlugin()));
217  allPlugins.insert(
218  std::make_pair("ModulusPhase", GMSH_RegisterModulusPhasePlugin()));
219  allPlugins.insert(
220  std::make_pair("Integrate", GMSH_RegisterIntegratePlugin()));
221  allPlugins.insert(std::make_pair("MinMax", GMSH_RegisterMinMaxPlugin()));
222  allPlugins.insert(
223  std::make_pair("Gradient", GMSH_RegisterGradientPlugin()));
224  allPlugins.insert(std::make_pair("Curl", GMSH_RegisterCurlPlugin()));
225  allPlugins.insert(
226  std::make_pair("Divergence", GMSH_RegisterDivergencePlugin()));
227  allPlugins.insert(
228  std::make_pair("Annotate", GMSH_RegisterAnnotatePlugin()));
229  allPlugins.insert(std::make_pair("Remove", GMSH_RegisterRemovePlugin()));
230  allPlugins.insert(
231  std::make_pair("Eigenvectors", GMSH_RegisterEigenvectorsPlugin()));
232  allPlugins.insert(
233  std::make_pair("Eigenvalues", GMSH_RegisterEigenvaluesPlugin()));
234  allPlugins.insert(std::make_pair("Lambda2", GMSH_RegisterLambda2Plugin()));
235  allPlugins.insert(std::make_pair("Probe", GMSH_RegisterProbePlugin()));
236  allPlugins.insert(
237  std::make_pair("Triangulate", GMSH_RegisterTriangulatePlugin()));
238  allPlugins.insert(
239  std::make_pair("ExtractEdges", GMSH_RegisterExtractEdgesPlugin()));
240  allPlugins.insert(std::make_pair(
241  "FieldFromAmplitudePhase", GMSH_RegisterFieldFromAmplitudePhasePlugin()));
242  allPlugins.insert(
243  std::make_pair("NearToFarField", GMSH_RegisterNearToFarFieldPlugin()));
244  allPlugins.insert(std::make_pair("Bubbles", GMSH_RegisterBubblesPlugin()));
245  allPlugins.insert(std::make_pair("DiscretizationError",
247  allPlugins.insert(
248  std::make_pair("Scal2Tens", GMSH_RegisterScal2TensPlugin()));
249  allPlugins.insert(
250  std::make_pair("Scal2Vec", GMSH_RegisterScal2VecPlugin()));
251  allPlugins.insert(std::make_pair("NewView", GMSH_RegisterNewViewPlugin()));
252  allPlugins.insert(
253  std::make_pair("SimplePartition", GMSH_RegisterSimplePartitionPlugin()));
254  allPlugins.insert(std::make_pair("Crack", GMSH_RegisterCrackPlugin()));
255  allPlugins.insert(std::make_pair(
256  "ShowNeighborElements", GMSH_RegisterShowNeighborElementsPlugin()));
257  allPlugins.insert(
258  std::make_pair("MeshSubEntities", GMSH_RegisterMeshSubEntitiesPlugin()));
259  allPlugins.insert(
260  std::make_pair("MeshVolume", GMSH_RegisterMeshVolumePlugin()));
261  allPlugins.insert(
262  std::make_pair("GaussPoints", GMSH_RegisterGaussPointsPlugin()));
263  allPlugins.insert(
264  std::make_pair("Summation", GMSH_RegisterSummationPlugin()));
265  allPlugins.insert(
266  std::make_pair("BoundaryAngles", GMSH_RegisterBoundaryAnglesPlugin()));
267  allPlugins.insert(
268  std::make_pair("Invisible", GMSH_RegisterInvisiblePlugin()));
269 #if defined(HAVE_MESH)
270  allPlugins.insert(std::make_pair("AnalyseMeshQuality",
272  allPlugins.insert(
273  std::make_pair("VoroMetal", GMSH_RegisterVoroMetalPlugin()));
274  allPlugins.insert(
275  std::make_pair("Tetrahedralize", GMSH_RegisterTetrahedralizePlugin()));
276  allPlugins.insert(std::make_pair("MeshSizeFieldView",
278 #endif
279 #if defined(HAVE_REVOROPT)
280  allPlugins.insert(
281  std::make_pair("CVTRemesh", GMSH_RegisterCVTRemeshPlugin()));
282 #endif
283 #if defined(HAVE_KBIPACK)
284  allPlugins.insert(std::make_pair("HomologyComputation",
285  GMSH_RegisterHomologyComputationPlugin()));
286  allPlugins.insert(std::make_pair(
287  "HomologyPostProcessing", GMSH_RegisterHomologyPostProcessingPlugin()));
288 #endif
289 #if defined(HAVE_SOLVER)
290  allPlugins.insert(
291  std::make_pair("Distance", GMSH_RegisterDistancePlugin()));
292 #endif
293 #if defined(HAVE_ANN)
294  allPlugins.insert(
295  std::make_pair("NearestNeighbor", GMSH_RegisterNearestNeighborPlugin()));
296 #endif
297 #if defined(HAVE_DINTEGRATION)
298  allPlugins.insert(std::make_pair("CutMesh", GMSH_RegisterCutMeshPlugin()));
299 #endif
300  allPlugins.insert(
301  std::make_pair("SpanningTree", GMSH_RegisterSpanningTreePlugin()));
302  }
303 
304 #if defined(HAVE_FLTK)
305  char *pluginsHome = getenv("GMSHPLUGINSHOME");
306  if(!pluginsHome) return;
307  struct dirent **list;
308  int nbFiles = fl_filename_list(pluginsHome, &list);
309  if(nbFiles <= 0) return;
310  for(int i = 0; i < nbFiles; i++) {
311  std::string ext = SplitFileName(list[i]->d_name)[2];
312  if(ext == ".so" || ext == ".dll") addPlugin(list[i]->d_name);
313  }
314  for(int i = 0; i < nbFiles; i++) free(list[i]);
315  free(list);
316 #endif
317 }
318 
319 void PluginManager::addPlugin(const std::string &fileName)
320 {
321 #if !defined(HAVE_DLOPEN) || !defined(HAVE_FLTK)
322  Msg::Warning("No dynamic plugin loading on this platform");
323 #else
324  Msg::Info("Opening Plugin '%s'", fileName.c_str());
325  void *hlib = dlopen(fileName.c_str(), RTLD_NOW);
326  const char *err = dlerror();
327  if(!hlib) {
328  Msg::Warning("Could not open '%s' (dlerror = %s)", fileName.c_str(), err);
329  return;
330  }
331 
332  class GMSH_Plugin *(*registerPlugin)(void);
333  registerPlugin =
334  (class GMSH_Plugin * (*)(void)) dlsym(hlib, GMSH_PluginEntry);
335  err = dlerror();
336  if(err) {
337  Msg::Warning("Symbol '%s' missing in '%s' (dlerror = %s)", GMSH_PluginEntry,
338  fileName.c_str(), err);
339  return;
340  }
341 
342  GMSH_Plugin *p = registerPlugin();
343  p->hlib = hlib;
344  if(allPlugins.find(p->getName()) != allPlugins.end()) {
345  Msg::Warning("Plugin '%s' multiply defined", fileName.c_str());
346  return;
347  }
348 
349  allPlugins.insert(std::make_pair(p->getName(), p));
350  Msg::Info("Loaded Plugin '%s' (%s)", p->getName().c_str(),
351  p->getAuthor().c_str());
352 #endif
353 }
GMSH_Plugin::hlib
void * hlib
Definition: Plugin.h:40
StringXString
Definition: Options.h:910
GMSH_RegisterFieldFromAmplitudePhasePlugin
GMSH_Plugin * GMSH_RegisterFieldFromAmplitudePhasePlugin()
Definition: FieldFromAmplitudePhase.cpp:24
PluginManager::setPluginOption
void setPluginOption(const std::string &pluginName, const std::string &option, double value)
Definition: PluginManager.cpp:152
GMSH_RegisterCutParametricPlugin
GMSH_Plugin * GMSH_RegisterCutParametricPlugin()
Definition: CutParametric.cpp:36
GMSH_RegisterIntegratePlugin
GMSH_Plugin * GMSH_RegisterIntegratePlugin()
Definition: Integrate.cpp:17
SplitFileName
std::vector< std::string > SplitFileName(const std::string &fileName)
Definition: StringUtils.cpp:93
Annotate.h
GMSH_RegisterParticlesPlugin
GMSH_Plugin * GMSH_RegisterParticlesPlugin()
Definition: Particles.cpp:38
CutMesh.h
PluginManager::action
int action(const std::string &pluginName, const std::string &action, void *data)
Definition: PluginManager.cpp:119
PluginManager::_instance
static PluginManager * _instance
Definition: PluginManager.h:18
GMSH_RegisterBubblesPlugin
GMSH_Plugin * GMSH_RegisterBubblesPlugin()
Definition: Bubbles.cpp:22
GMSH_RegisterLambda2Plugin
GMSH_Plugin * GMSH_RegisterLambda2Plugin()
Definition: Lambda2.cpp:14
Plugin.h
CutSphere.h
StreamLines.h
PluginManager::PluginManager
PluginManager()
Definition: PluginManager.h:17
Particles.h
GMSH_RegisterMeshVolumePlugin
GMSH_Plugin * GMSH_RegisterMeshVolumePlugin()
Definition: MeshVolume.cpp:15
GMSH_RegisterSkinPlugin
GMSH_Plugin * GMSH_RegisterSkinPlugin()
Definition: Skin.cpp:23
GMSH_RegisterBoundaryAnglesPlugin
GMSH_Plugin * GMSH_RegisterBoundaryAnglesPlugin()
Definition: BoundaryAngles.cpp:33
GMSH_Plugin
Definition: Plugin.h:26
GMSH_RegisterDistancePlugin
GMSH_Plugin * GMSH_RegisterDistancePlugin()
Definition: Distance.cpp:34
CVTRemesh.h
Msg::Info
static void Info(const char *fmt,...)
Definition: GmshMessage.cpp:587
StringXNumber::def
double def
Definition: Options.h:922
GMSH_RegisterSmoothPlugin
GMSH_Plugin * GMSH_RegisterSmoothPlugin()
Definition: Smooth.cpp:11
MathEval.h
Warp.h
GMSH_RegisterCutMeshPlugin
GMSH_Plugin * GMSH_RegisterCutMeshPlugin()
Definition: CutMesh.cpp:15
Gradient.h
FieldFromAmplitudePhase.h
Msg::Warning
static void Warning(const char *fmt,...)
Definition: GmshMessage.cpp:543
GMSH_RegisterNearToFarFieldPlugin
GMSH_Plugin * GMSH_RegisterNearToFarFieldPlugin()
Definition: NearToFarField.cpp:35
ExtractElements.h
StringXNumber
Definition: Options.h:918
LongitudeLatitude.h
BoundaryAngles.h
HarmonicToTime.h
GMSH_RegisterModulusPhasePlugin
GMSH_Plugin * GMSH_RegisterModulusPhasePlugin()
Definition: ModulusPhase.cpp:14
GMSH_RegisterMathEvalPlugin
GMSH_Plugin * GMSH_RegisterMathEvalPlugin()
Definition: MathEval.cpp:34
GMSH_RegisterModifyComponentsPlugin
GMSH_Plugin * GMSH_RegisterModifyComponentsPlugin()
Definition: ModifyComponents.cpp:32
GMSH_RegisterProbePlugin
GMSH_Plugin * GMSH_RegisterProbePlugin()
Definition: Probe.cpp:25
Eigenvalues.h
Crack.h
GMSH_RegisterWarpPlugin
GMSH_Plugin * GMSH_RegisterWarpPlugin()
Definition: Warp.cpp:18
Scal2Tens.h
GMSH_RegisterDivergencePlugin
GMSH_Plugin * GMSH_RegisterDivergencePlugin()
Definition: Divergence.cpp:14
GMSH_RegisterTetrahedralizePlugin
GMSH_Plugin * GMSH_RegisterTetrahedralizePlugin()
Definition: Tetrahedralize.cpp:20
MinMax.h
MeshSizeFieldView.h
Lambda2.h
GMSH_RegisterAnalyseMeshQualityPlugin
GMSH_Plugin * GMSH_RegisterAnalyseMeshQualityPlugin()
Isosurface.h
GMSH_Plugin::getType
virtual GMSH_PLUGIN_TYPE getType() const =0
HomologyComputation.h
Bubbles.h
GMSH_RegisterCurvedBndDistPlugin
GMSH_Plugin * GMSH_RegisterCurvedBndDistPlugin()
Definition: CurvedBndDist.cpp:20
GMSH_PluginEntry
const char * GMSH_PluginEntry
Definition: PluginManager.cpp:88
StringXNumber::str
const char * str
Definition: Options.h:920
PluginManager::instance
static PluginManager * instance()
Definition: PluginManager.cpp:169
GMSH_RegisterSpanningTreePlugin
GMSH_Plugin * GMSH_RegisterSpanningTreePlugin()
Definition: SpanningTree.cpp:28
GMSH_RegisterMeshSizeFieldViewPlugin
GMSH_Plugin * GMSH_RegisterMeshSizeFieldViewPlugin()
Definition: MeshSizeFieldView.cpp:20
GMSH_Plugin::run
virtual int run()=0
CTX::instance
static CTX * instance()
Definition: Context.cpp:122
MakeSimplex.h
SimplePartition.h
PluginManager::~PluginManager
virtual ~PluginManager()
Definition: PluginManager.cpp:92
Probe.h
Tetrahedralize.h
GMSH_RegisterStreamLinesPlugin
GMSH_Plugin * GMSH_RegisterStreamLinesPlugin()
Definition: StreamLines.cpp:36
Scal2Vec.h
CutPlane.h
VoroMetal.h
GMSH_Plugin::getNbOptions
virtual int getNbOptions() const
Definition: Plugin.h:61
Integrate.h
AnalyseMeshQuality.h
CurvedBndDist.h
GMSH_RegisterVoroMetalPlugin
GMSH_Plugin * GMSH_RegisterVoroMetalPlugin()
Definition: VoroMetal.cpp:27
GMSH_RegisterExtractElementsPlugin
GMSH_Plugin * GMSH_RegisterExtractElementsPlugin()
Definition: ExtractElements.cpp:18
Divergence.h
GaussPoints.h
PluginManager.h
GMSH_RegisterSummationPlugin
GMSH_Plugin * GMSH_RegisterSummationPlugin()
Definition: Summation.cpp:23
ModifyComponents.h
GMSH_RegisterMeshSubEntitiesPlugin
GMSH_Plugin * GMSH_RegisterMeshSubEntitiesPlugin()
Definition: MeshSubEntities.cpp:28
GMSH_RegisterInvisiblePlugin
GMSH_Plugin * GMSH_RegisterInvisiblePlugin()
Definition: Invisible.cpp:21
GMSH_Plugin::getName
virtual std::string getName() const =0
Triangulate.h
GMSH_RegisterSimplePartitionPlugin
GMSH_Plugin * GMSH_RegisterSimplePartitionPlugin()
Definition: SimplePartition.cpp:37
GMSH_RegisterTransformPlugin
GMSH_Plugin * GMSH_RegisterTransformPlugin()
Definition: Transform.cpp:25
Remove.h
GMSH_RegisterExtractEdgesPlugin
GMSH_Plugin * GMSH_RegisterExtractEdgesPlugin()
Definition: ExtractEdges.cpp:20
SpanningTree.h
ModulusPhase.h
GMSH_RegisterCVTRemeshPlugin
GMSH_Plugin * GMSH_RegisterCVTRemeshPlugin()
GMSH_RegisterGradientPlugin
GMSH_Plugin * GMSH_RegisterGradientPlugin()
Definition: Gradient.cpp:13
StringXString::def
std::string def
Definition: Options.h:914
GMSH_RegisterRemovePlugin
GMSH_Plugin * GMSH_RegisterRemovePlugin()
Definition: Remove.cpp:25
GMSH_RegisterCutGridPlugin
GMSH_Plugin * GMSH_RegisterCutGridPlugin()
Definition: CutGrid.cpp:31
GMSH_RegisterGaussPointsPlugin
GMSH_Plugin * GMSH_RegisterGaussPointsPlugin()
Definition: GaussPoints.cpp:17
GMSH_RegisterCurlPlugin
GMSH_Plugin * GMSH_RegisterCurlPlugin()
Definition: Curl.cpp:13
GMSH_RegisterIsosurfacePlugin
GMSH_Plugin * GMSH_RegisterIsosurfacePlugin()
Definition: Isosurface.cpp:19
GMSH_RegisterMakeSimplexPlugin
GMSH_Plugin * GMSH_RegisterMakeSimplexPlugin()
Definition: MakeSimplex.cpp:12
GMSH_RegisterSphericalRaisePlugin
GMSH_Plugin * GMSH_RegisterSphericalRaisePlugin()
Definition: SphericalRaise.cpp:16
CutParametric.h
GMSH_Plugin::getNbOptionsStr
virtual int getNbOptionsStr() const
Definition: Plugin.h:65
GMSH_RegisterNewViewPlugin
GMSH_Plugin * GMSH_RegisterNewViewPlugin()
Definition: NewView.cpp:24
GMSH_RegisterLongituteLatitudePlugin
GMSH_Plugin * GMSH_RegisterLongituteLatitudePlugin()
Definition: LongitudeLatitude.cpp:14
PluginManager::allPlugins
std::map< std::string, GMSH_Plugin * > allPlugins
Definition: PluginManager.h:19
NearestNeighbor.h
Smooth.h
DiscretizationError.h
PluginManager::addPlugin
void addPlugin(const std::string &fileName)
Definition: PluginManager.cpp:319
Transform.h
GMSH_RegisterTriangulatePlugin
GMSH_Plugin * GMSH_RegisterTriangulatePlugin()
Definition: Triangulate.cpp:25
StringUtils.h
GMSH_RegisterNearestNeighborPlugin
GMSH_Plugin * GMSH_RegisterNearestNeighborPlugin()
Definition: NearestNeighbor.cpp:18
SphericalRaise.h
GMSH_RegisterDiscretizationErrorPlugin
GMSH_Plugin * GMSH_RegisterDiscretizationErrorPlugin()
Definition: DiscretizationError.cpp:20
GMSH_RegisterScal2VecPlugin
GMSH_Plugin * GMSH_RegisterScal2VecPlugin()
Definition: Scal2Vec.cpp:18
MeshSubEntities.h
PluginManager
Definition: PluginManager.h:15
GMSH_RegisterEigenvaluesPlugin
GMSH_Plugin * GMSH_RegisterEigenvaluesPlugin()
Definition: Eigenvalues.cpp:14
GMSH_Plugin::getAuthor
virtual std::string getAuthor() const
Definition: Plugin.h:50
Context.h
PluginManager::find
GMSH_Plugin * find(const std::string &pluginName)
Definition: PluginManager.cpp:99
Eigenvectors.h
ShowNeighborElements.h
HomologyPostProcessing.h
GMSH_SolverPlugin
Definition: Plugin.h:119
MeshVolume.h
StringXString::str
const char * str
Definition: Options.h:912
GMSH_RegisterCutBoxPlugin
GMSH_Plugin * GMSH_RegisterCutBoxPlugin()
Definition: CutBox.cpp:36
Curl.h
CutBox.h
GMSH_RegisterScal2TensPlugin
GMSH_Plugin * GMSH_RegisterScal2TensPlugin()
Definition: Scal2Tens.cpp:26
GMSH_RegisterHarmonicToTimePlugin
GMSH_Plugin * GMSH_RegisterHarmonicToTimePlugin()
Definition: HarmonicToTime.cpp:19
GMSH_RegisterMinMaxPlugin
GMSH_Plugin * GMSH_RegisterMinMaxPlugin()
Definition: MinMax.cpp:15
PluginManager::findSolverPlugin
GMSH_SolverPlugin * findSolverPlugin()
Definition: PluginManager.cpp:106
GMSH_Plugin::getOptionStr
virtual StringXString * getOptionStr(int iopt)
Definition: Plugin.h:66
Invisible.h
Distance.h
GMSH_Plugin::GMSH_SOLVER_PLUGIN
@ GMSH_SOLVER_PLUGIN
Definition: Plugin.h:33
CutGrid.h
Summation.h
PluginManager::registerDefaultPlugins
void registerDefaultPlugins()
Definition: PluginManager.cpp:175
CTX::plugins
int plugins
Definition: Context.h:319
GMSH_RegisterCutSpherePlugin
GMSH_Plugin * GMSH_RegisterCutSpherePlugin()
Definition: CutSphere.cpp:26
NewView.h
GMSH_RegisterCrackPlugin
GMSH_Plugin * GMSH_RegisterCrackPlugin()
Definition: Crack.cpp:30
GMSH_RegisterCutPlanePlugin
GMSH_Plugin * GMSH_RegisterCutPlanePlugin()
Definition: CutPlane.cpp:28
NearToFarField.h
GMSH_RegisterEigenvectorsPlugin
GMSH_Plugin * GMSH_RegisterEigenvectorsPlugin()
Definition: Eigenvectors.cpp:16
GMSH_RegisterShowNeighborElementsPlugin
GMSH_Plugin * GMSH_RegisterShowNeighborElementsPlugin()
Definition: ShowNeighborElements.cpp:27
GMSH_Plugin::getOption
virtual StringXNumber * getOption(int iopt)
Definition: Plugin.h:62
Skin.h
ExtractEdges.h
GMSH_RegisterAnnotatePlugin
GMSH_Plugin * GMSH_RegisterAnnotatePlugin()
Definition: Annotate.cpp:29