Select Git revision
MeshOptCommon.h
MeshOptCommon.h 5.58 KiB
// MeshOptimizer - Copyright (C) 2013-2019 UCLouvain-ULiege
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use, copy,
// modify, merge, publish, distribute, and/or sell copies of the
// Software, and to permit persons to whom the Software is furnished
// to do so, provided that the above copyright notice(s) and this
// permission notice appear in all copies of the Software and that
// both the above copyright notice(s) and this permission notice
// appear in supporting documentation.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
// COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR
// ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
// DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
// WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
// OF THIS SOFTWARE.
//
// Contributors: Thomas Toulorge, Jonathan Lambrechts
#ifndef MESH_OPT_COMMON_H
#define MESH_OPT_COMMON_H
#include <vector>
#include <list>
#include "GmshMessage.h"
#include "MeshOptimizerConfig.h"
class MElement;
class GEntity;
class SPoint3;
class ObjContrib;
// ncurses shortcuts
void mvinit();
void mvterminate();
void mvpause();
void mvgetScreenSize(int &nbRow, int &nbCol);
void mvprintCenter(int row, const char *fmt, ...);
void mvprintLeft(int row, const char *fmt, ...);
void mvprintRight(int row, const char *fmt, ...);
void mvprintXY(int row, int col, const char *fmt, ...);
// color scheme: 0=default, 1=last in yellow back, others in white back, 2=even
// numbers in white back
void mvprintList(int row, int maxSize, std::list<char *> listStr,
int colorScheme = 0);
void mvfillRow(int row, char fillWith = ' ');
void mvbold(bool on);
void mvcolor(int colorScheme, bool on);
class redirectMessage : public GmshMessage {
private:
std::string _logFileName;
bool _console;
public:
virtual void operator()(std::string level, std::string message);
redirectMessage(std::string logFileName, bool console);
};
class MeshOptPatchDef {
public:
enum { STRAT_DISJOINT, STRAT_ONEBYONE };
int strategy; // Strategy: disjoint patches or adaptive one-by-one