/usr/include/gmsh/PViewDataList.h is in libgmsh-dev 2.8.5+dfsg-1.1+b1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | // Gmsh - Copyright (C) 1997-2014 C. Geuzaine, J.-F. Remacle
//
// See the LICENSE.txt file for license information. Please report all
// bugs and problems to the public mailing list <gmsh@geuz.org>.
#ifndef _PVIEW_DATA_LIST_H_
#define _PVIEW_DATA_LIST_H_
#include <vector>
#include <string>
#include "PViewData.h"
#include "SBoundingBox3d.h"
// The container for list-based datasets (for which all elements are
// discontinuous).
class PViewDataList : public PViewData {
public:
// FIXME: all these members will be made private once the plugins
// have been rewritten
int NbTimeStep;
double Min, Max;
std::vector<double> TimeStepMin, TimeStepMax;
SBoundingBox3d BBox;
std::vector<double> Time;
int NbSP, NbVP, NbTP;
std::vector<double> SP, VP, TP; // points
int NbSL, NbVL, NbTL;
std::vector<double> SL, VL, TL; // lines
int NbST, NbVT, NbTT;
std::vector<double> ST, VT, TT; // triangles
int NbSQ, NbVQ, NbTQ;
std::vector<double> SQ, VQ, TQ; // quadrangles
int NbSG, NbVG, NbTG;
std::vector<double> SG, VG, TG; // polygons
int NbSS, NbVS, NbTS;
std::vector<double> SS, VS, TS; // tetrahedra
int NbSH, NbVH, NbTH;
std::vector<double> SH, VH, TH; // hexahedra
int NbSI, NbVI, NbTI;
std::vector<double> SI, VI, TI; // prisms
int NbSY, NbVY, NbTY;
std::vector<double> SY, VY, TY; // pyramids
int NbSD, NbVD, NbTD;
std::vector<double> SD, VD, TD; // polyhedra
int NbT2, NbT3;
std::vector<double> T2D, T3D; // 2D and 3D text strings
std::vector<char> T2C, T3C;
std::vector<int> polyNumNodes[2];
std::vector<int> polyAgNumNodes[2];
int polyTotNumNodes[2];
private:
int _index[30];
int _lastElement, _lastDimension;
int _lastNumNodes, _lastNumComponents, _lastNumValues, _lastNumEdges, _lastType;
double *_lastXYZ, *_lastVal;
bool _isAdapted;
void _stat(std::vector<double> &D, std::vector<char> &C, int nb);
void _stat(std::vector<double> &list, int nbcomp, int nbelm, int nbnod, int type);
void _setLast(int ele);
void _setLast(int ele, int dim, int nbnod, int nbcomp, int nbedg, int type,
std::vector<double> &list, int nblist);
void _getString(int dim, int i, int timestep, std::string &str,
double &x, double &y, double &z, double &style);
int _getRawData(int idxtype, std::vector<double> **l, int **ne, int *nc, int *nn);
public:
PViewDataList(bool isAdapted=false);
~PViewDataList(){}
bool isAdapted(){ return _isAdapted; }
bool finalize(bool computeMinMax=true, const std::string &interpolationScheme="");
int getNumTimeSteps(){ return NbTimeStep; }
double getTime(int step);
double getMin(int step=-1, bool onlyVisible=false, int forceNumComponents=0,
int componentMap[9]=0);
double getMax(int step=-1, bool onlyVisible=false, int forceNumComponents=0,
int componentMap[9]=0);
void setMin(double min) {Min = min;}
void setMax(double max) {Max = max;}
SBoundingBox3d getBoundingBox(int step=-1){ return BBox; }
void setBoundingBox(SBoundingBox3d& box) {BBox = box;}
int getNumScalars(int step=-1);
int getNumVectors(int step=-1);
int getNumTensors(int step=-1);
int getNumPoints(int step=-1){ return NbSP + NbVP + NbTP; }
int getNumLines(int step=-1){ return NbSL + NbVL + NbTL; }
int getNumTriangles(int step=-1){ return NbST + NbVT + NbTT; }
int getNumQuadrangles(int step=-1){ return NbSQ + NbVQ + NbTQ; }
int getNumPolygons(int step=-1){ return NbSG + NbVG + NbTG; }
int getNumTetrahedra(int step=-1){ return NbSS + NbVS + NbTS; }
int getNumHexahedra(int step=-1){ return NbSH + NbVH + NbTH; }
int getNumPrisms(int step=-1){ return NbSI + NbVI + NbTI; }
int getNumPyramids(int step=-1){ return NbSY + NbVY + NbTY; }
int getNumPolyhedra(int step=-1){ return NbSD + NbVD + NbTD; }
int getNumEntities(int step=-1){ return 1; }
int getNumElements(int step=-1, int ent=-1);
int getDimension(int step, int ent, int ele);
int getNumNodes(int step, int ent, int ele);
int getNode(int step, int ent, int ele, int nod, double &x, double &y, double &z);
void setNode(int step, int ent, int ele, int nod, double x, double y, double z);
int getNumComponents(int step, int ent, int ele);
int getNumValues(int step, int ent, int ele);
void getValue(int step, int ent, int ele, int idx, double &val);
void getValue(int step, int ent, int ele, int nod, int comp, double &val);
void setValue(int step, int ent, int ele, int nod, int comp, double val);
int getNumEdges(int step, int ent, int ele);
int getType(int step, int ent, int ele);
int getNumStrings2D(){ return NbT2; }
int getNumStrings3D(){ return NbT3; }
void getString2D(int i, int step, std::string &str,
double &x, double &y, double &style);
void getString3D(int i, int step, std::string &str,
double &x, double &y, double &z, double &style);
void reverseElement(int step, int ent, int ele);
void smooth();
bool combineTime(nameData &nd);
bool combineSpace(nameData &nd);
void setXY(std::vector<double> &x, std::vector<double> &y);
bool isListBased(){ return true; }
double getMemoryInMb();
// specific to list-based data sets
void setOrder2(int type);
std::vector<double> *incrementList(int numComp, int type, int numNodes = 0);
// I/O routines
bool readPOS(FILE *fp, double version, bool binary);
bool writePOS(const std::string &fileName, bool binary=false, bool parsed=true,
bool append=false);
virtual bool writeMSH(const std::string &fileName, double version=2.2, bool binary=false,
bool savemesh=true, bool multipleView=false,
int partitionNum=0, bool saveInterpolationMatrices=true,
bool forceNodeData=false);
virtual void importLists(int N[24], std::vector<double> *V[24]);
virtual void getListPointers(int N[24], std::vector<double> *V[24]);
};
#endif
|