Select Git revision
PViewDataGModelIO.cpp
Forked from
gmsh / gmsh
Source project has a limited visibility.
-
Christophe Geuzaine authoredChristophe Geuzaine authored
highOrderToolsWindow.cpp 10.21 KiB
// 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>.
#include "GmshConfig.h"
#if !defined(HAVE_NO_STDINT_H)
#include <stdint.h>
#elif defined(HAVE_NO_INTPTR_T)
typedef unsigned long intptr_t;
#endif
#include <string>
#include <sstream>
#include <map>
#include <vector>
#include <string.h>
#include <FL/Fl_Tabs.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Return_Button.H>
#include <FL/Fl_Value_Input.H>
#include "GmshConfig.h"
#include "FlGui.h"
#include "drawContext.h"
#include "highOrderToolsWindow.h"
#include "paletteWindow.h"
#include "contextWindow.h"
#include "graphicWindow.h"
#include "GmshDefines.h"
#include "GmshMessage.h"
#include "GModel.h"
#include "MElement.h"
#include "PView.h"
#include "PViewData.h"
#include "GeoStringInterface.h"
#include "Options.h"
#include "Context.h"
#include "HighOrder.h"
#include "OptHomRun.h"
#if defined(HAVE_PARSER)
#include "Parser.h"
#endif
static void highordertools_runp_cb(Fl_Widget *w, void *data)
{
highOrderToolsWindow *o = FlGui::instance()->highordertools;
int order = (int)o->value[0]->value();
bool linear = !(bool)o->butt[2]->value();
bool incomplete = (bool)o->butt[0]->value();
bool elastic = (bool)o->butt[3]->value();
double threshold = o->value[1]->value();
bool onlyVisible = (bool)o->butt[1]->value();
int nLayers = (int) o->value[2]->value();
if (order == 1)
SetOrder1(GModel::current());
else
SetOrderN(GModel::current(), order, linear, incomplete, onlyVisible);
distanceFromMeshToGeometry_t dist;
computeDistanceFromMeshToGeometry (GModel::current(), dist);
for (std::map<GEntity*, double> ::iterator it = dist.d2.begin(); it !=dist.d2.end();++it){
printf ("GEntity %d of dim %d : dist %12.5E\n",it->first->tag(),it->first->dim(),it->second);
}
CTX::instance()->mesh.changed |= (ENT_LINE | ENT_SURFACE | ENT_VOLUME);
drawContext::global()->draw();