Select Git revision
Forked from
gmsh / gmsh
Source project has a limited visibility.
Levelset.h 1.73 KiB
#ifndef _LEVELSET_H_
#define _LEVELSET_H_
// Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to <gmsh@geuz.org>.
#include "Plugin.h"
class GMSH_LevelsetPlugin : public GMSH_Post_Plugin
{
private:
double _invert;
void _addElement(int step, int np, int numEdges, int numComp,
double xp[12], double yp[12], double zp[12],
double valp[12][9], PViewDataList *out);
void _cutAndAddElements(PViewData *vdata, PViewData *wdata,
int ent, int ele, int step, int wstep,
double x[8], double y[8], double z[8],
double levels[8], double scalarValues[8],
PViewDataList *out);
protected:
double _ref[3], _targetError;
int _valueTimeStep, _valueView, _valueIndependent, _recurLevel, _extractVolume;
typedef enum {NONE, PLANE, SPHERE, MAP} ORIENTATION;
ORIENTATION _orientation;
public:
GMSH_LevelsetPlugin();
virtual double levelset(double x, double y, double z, double val) const = 0;
virtual PView *execute(PView *);
void assignSpecificVisibility() const;
};
#endif