Forked from
gmsh / gmsh
11842 commits behind the upstream repository.
-
Christophe Geuzaine authoredChristophe Geuzaine authored
PViewOptions.h 3.89 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>.
#ifndef _PVIEW_OPTIONS_H_
#define _PVIEW_OPTIONS_H_
#include <string>
#include "ColorTable.h"
#include "SBoundingBox3d.h"
class mathEvaluator;
// The display options of a post-processing view.
class PViewOptions {
public:
enum PlotType {
Plot3D = 1,
Plot2DSpace = 2,
Plot2DTime = 3,
Plot2D = 4
};
enum IntervalsType {
Iso = 1,
Continuous = 2,
Discrete = 3,
Numeric = 4
};
enum VectorType {
Segment = 1,
Arrow = 2,
Pyramid = 3,
Arrow3D = 4,
Displacement = 5
};
enum TensorType {
VonMises = 1,
MaxEigenValue = 2,
MinEigenValue = 3,
EigenVectors = 4,
Ellipse = 5,
Ellipsoid = 6
};
enum GlyphLocation {
COG = 1,
Vertex = 2
};
enum RangeType {
Default = 1,
Custom = 2,
PerTimeStep = 3
};
enum ScaleType {
Linear = 1,
Logarithmic = 2,
DoubleLogarithmic = 3
};
int type;
int position[2], size[2], autoPosition;
std::string format;
int axes, axesAutoPosition, axesMikado;
double axesTics[3];
std::string axesFormat[3], axesLabel[3];
double axesPosition[6];
double customMin, customMax, tmpMin, tmpMax, externalMin, externalMax;
double customAbscissaMin, customAbscissaMax;
SBoundingBox3d tmpBBox;
double offset[3], raise[3], transform[3][3], displacementFactor, normalRaise;
double explode;
double arrowSizeMin, arrowSizeMax;
double normals, tangents;
int visible, intervalsType, nbIso;
int light, lightTwoSide, lightLines, smoothNormals;
double angleSmoothNormals;
int saturateValues, fakeTransparency;
int showElement, showTime, showScale;
int scaleType, rangeType, abscissaRangeType;
int vectorType, tensorType, glyphLocation, centerGlyphs;
int timeStep;
int drawStrings;
int drawPoints, drawLines, drawTriangles, drawQuadrangles, drawPolygons;
int drawTetrahedra, drawHexahedra, drawPrisms, drawPyramids, drawPolyhedra;
int drawScalars, drawVectors, drawTensors;
int boundary, pointType, lineType, drawSkinOnly;
double pointSize, lineWidth;
GmshColorTable colorTable;
int useStipple, stipple[10][2];
std::string stippleString[10];
int externalViewIndex, viewIndexForGenRaise;
int useGenRaise;
double genRaiseFactor;
std::string genRaiseX, genRaiseY, genRaiseZ;
mathEvaluator *genRaiseEvaluator;
int adaptVisualizationGrid, maxRecursionLevel;
double targetError;
int clip; // status of clip planes (bit array)
int forceNumComponents, componentMap[9];
int sampling;
std::string attributes;
struct{
unsigned int point, line, triangle, quadrangle;
unsigned int tetrahedron, hexahedron, prism, pyramid;
unsigned int tangents, normals;
unsigned int text2d, text3d, axes, background2d;
} color;
private:
// static reference that contains default values
static PViewOptions *_reference;
public:
PViewOptions();
~PViewOptions();
static PViewOptions *reference();
// return a floating point value in [min, max] corresponding to the
// integer iso in [0, numIso - 1]
double getScaleValue(int iso, int numIso, double min, double max);
// return an integer in [0, numIso - 1] corresponding to the
// floating point value val in [min, max]
int getScaleIndex(double val, int numIso, double min, double max,
bool forceLinear=false);
// get color for val in [min, max] (only use numColors if > 0
// instead of all available colors)
unsigned int getColor(double val, double min, double max,
bool forceLinear=false, int numColors=-1);
// get i-th color amongst nb (i in [0, nb - 1])
unsigned int getColor(int i, int nb);
// create math evaluator for general raise option
void createGeneralRaise();
// return true if one should not draw elements with type type
bool skipElement(int type);
};
#endif