From 7704e57e9c4d00c68e17a564071e476c78d9e41d Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Sun, 17 Apr 2016 14:02:25 +0000 Subject: [PATCH] fix --- Plugin/AnalyseCurvedMesh.cpp | 11 ++++++++++- Plugin/AnalyseCurvedMesh.h | 38 +++++++++++++++++++----------------- Plugin/PluginManager.cpp | 6 ++++-- 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/Plugin/AnalyseCurvedMesh.cpp b/Plugin/AnalyseCurvedMesh.cpp index 2f0cbcde5e..b98913bb19 100644 --- a/Plugin/AnalyseCurvedMesh.cpp +++ b/Plugin/AnalyseCurvedMesh.cpp @@ -3,6 +3,10 @@ // See the LICENSE.txt file for license information. Please report all // bugs and problems to the public mailing list <gmsh@onelab.info>. +#include "GmshConfig.h" + +#if defined(HAVE_MESH) + #include "AnalyseCurvedMesh.h" #include "OS.h" #include "Context.h" @@ -28,6 +32,7 @@ StringXNumber CurvedMeshOptions_Number[] = { {GMSH_FULLRC, "Tolerance", NULL, 1e-3} // tolerance: To be removed when MetricBasis => qualityMeasuresJacobian }; + extern "C" { GMSH_Plugin *GMSH_RegisterAnalyseCurvedMeshPlugin() @@ -35,14 +40,17 @@ extern "C" return new GMSH_AnalyseCurvedMeshPlugin(); } } + int GMSH_AnalyseCurvedMeshPlugin::getNbOptions() const { return sizeof(CurvedMeshOptions_Number) / sizeof(StringXNumber); } + StringXNumber *GMSH_AnalyseCurvedMeshPlugin::getOption(int iopt) { return &CurvedMeshOptions_Number[iopt]; } + std::string GMSH_AnalyseCurvedMeshPlugin::getHelp() const { return "Plugin(AnalyseCurvedMesh) analyse all elements of a given dimension. " @@ -78,7 +86,6 @@ std::string GMSH_AnalyseCurvedMeshPlugin::getHelp() const "the validity of the mesh."; } -// Execution PView *GMSH_AnalyseCurvedMeshPlugin::execute(PView *v) { _m = GModel::current(); @@ -421,3 +428,5 @@ void GMSH_AnalyseCurvedMeshPlugin::computeMinR(MElement *const *el, } } } + +#endif diff --git a/Plugin/AnalyseCurvedMesh.h b/Plugin/AnalyseCurvedMesh.h index d2855d1987..acfb9a14df 100644 --- a/Plugin/AnalyseCurvedMesh.h +++ b/Plugin/AnalyseCurvedMesh.h @@ -20,22 +20,20 @@ class data_elementMinMax private: MElement *_el; double _minJ, _maxJ, _minR, _minRR; - public: data_elementMinMax(MElement *e, - double minJ = 2, - double maxJ = 0, - double minR = -1, - double minRR = -1) + double minJ = 2, + double maxJ = 0, + double minR = -1, + double minRR = -1) : _el(e), _minJ(minJ), _maxJ(maxJ), _minR(minR), _minRR(minRR) {} - - void setMinR(double r) {_minR = r;} - void setMinRR(double r) {_minRR = r;} - MElement* element() {return _el;} - double minJ() {return _minJ;} - double maxJ() {return _maxJ;} - double minR() {return _minR;} - double minRR() {return _minRR;} + void setMinR(double r) { _minR = r; } + void setMinRR(double r) { _minRR = r; } + MElement* element() { return _el; } + double minJ() { return _minJ; } + double maxJ() { return _maxJ; } + double minR() { return _minR; } + double minRR() { return _minRR; } }; class GMSH_AnalyseCurvedMeshPlugin : public GMSH_PostPlugin @@ -52,7 +50,8 @@ private : std::vector<data_elementMinMax> _data; public : - GMSH_AnalyseCurvedMeshPlugin() { + GMSH_AnalyseCurvedMeshPlugin() + { _m = NULL; _threshold = _tol = -1; _computeMetric = -1; @@ -65,7 +64,8 @@ public : _msgHide = true; } std::string getName() const { return "AnalyseCurvedMesh"; } - std::string getShortHelp() const { + std::string getShortHelp() const + { return "Compute bounds on Jacobian and metric quality."; } std::string getHelp() const; @@ -73,10 +73,11 @@ public : int getNbOptions() const; StringXNumber *getOption(int); PView *execute(PView *); - void setTol(double tol) {_tol = tol;} + void setTol(double tol) { _tol = tol; } // For testing - void computeMinJ(MElement *const *el, int numEl, double *minJ, bool *straight) { + void computeMinJ(MElement *const *el, int numEl, double *minJ, bool *straight) + { std::vector<data_elementMinMax> save(_data); _data.clear(); _computeMinMaxJandValidity(el, numEl); @@ -93,7 +94,8 @@ public : _data = save; } void computeMinR(MElement *const *el, int numEl, double *minR, bool *straight); - void test(MElement *const *el, int numEl, int dim) { + void test(MElement *const *el, int numEl, int dim) + { _tol = 1e-3; std::vector<data_elementMinMax> save(_data); _data.clear(); diff --git a/Plugin/PluginManager.cpp b/Plugin/PluginManager.cpp index 30cd50bc04..f997ed3085 100644 --- a/Plugin/PluginManager.cpp +++ b/Plugin/PluginManager.cpp @@ -187,8 +187,6 @@ void PluginManager::registerDefaultPlugins() ("Skin", GMSH_RegisterSkinPlugin())); allPlugins.insert(std::pair<std::string, GMSH_Plugin*> ("MathEval", GMSH_RegisterMathEvalPlugin())); - allPlugins.insert(std::pair<std::string, GMSH_Plugin*> - ("AnalyseCurvedMesh", GMSH_RegisterAnalyseCurvedMeshPlugin())); allPlugins.insert(std::pair<std::string, GMSH_Plugin*> ("CurvedBndDist", GMSH_RegisterCurvedBndDistPlugin())); allPlugins.insert(std::pair<std::string, GMSH_Plugin*> @@ -265,6 +263,10 @@ void PluginManager::registerDefaultPlugins() ("ThinLayerFixMesh", GMSH_RegisterThinLayerFixMeshPlugin())); allPlugins.insert(std::pair<std::string, GMSH_Plugin*> ("MeshSubEntities", GMSH_RegisterMeshSubEntitiesPlugin())); +#if defined(HAVE_MESH) + allPlugins.insert(std::pair<std::string, GMSH_Plugin*> + ("AnalyseCurvedMesh", GMSH_RegisterAnalyseCurvedMeshPlugin())); +#endif #if defined(HAVE_REVOROPT) allPlugins.insert(std::pair<std::string, GMSH_Plugin*> ("CVTRemesh", GMSH_RegisterCVTRemeshPlugin())); -- GitLab