⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grafic.h

📁 FreeFem++可以生成高质量的有限元网格。可以用于流体力学
💻 H
字号:
#ifndef _GRAFIC_H#define _GRAFIC_H#define MAX_LIST  4#define MAXISO    5#define C_ON     (1 << 0)#define C_EDIT   (1 << 1)   #define C_VOL    (1 << 2)#define C_UPDATE (1 << 3)#define C_FREEZE (1 << 4)#define C_CAP    (1 << 5)#define C_REDO   (1 << 6)#define C_HIDE   (1 << 7)/* view modes */#define S_BDRY     (1<<0)#define S_FILL     (1<<1)#define S_COLOR    (1<<2)#define S_MAP      (1<<3)#define S_MATERIAL (1<<4)#define S_ALTITUDE (1<<5)#define S_DISPL    (1<<6)#define MONO     0#define LEFT     1#define RIGHT    2enum {WIRE   = S_BDRY,      HIDDEN = S_BDRY + S_FILL,      DEPTH  = S_BDRY + S_COLOR,      FILL   = S_FILL + S_COLOR,      SHADED = S_BDRY + S_FILL + S_COLOR,      SIZEMAP= S_BDRY + S_FILL + S_MAP     };enum {LTria, LQuad, LTets, LHexa, LEdges, LPoint};enum {PERSPECTIVE, CAMERA, ORTHO};enum {X_AXIS=0, Y_AXIS, Z_AXIS};enum {VECTOR,CONE};/* items */#define S_AXIS    (1<<0)#define S_BOX     (1<<1)#define S_GRID    (1<<2)#define S_GEOM    (1<<3)#define S_ISO     (1<<4)#define S_PALETTE (1<<5)#define S_NUMP    (1<<6)#define S_NUMF    (1<<7)/* type */#define S_FLAT     (1<<0)     /* render with facet normals  */#define S_SCISSOR  (1<<1)     /* scissoring mode            */#define S_FOLLOW   (1<<2)     /* picking mode               */#define S_NORMAL   (1<<3)#define S_OPPOS    (1<<4)#define S_DECO     (1<<5)#define S_PATH     (1<<6)#define S_RESET    (1<<7)/* iso-values */#define MAX_ISO    5#define S_ISOLINE  (1<<1)#define S_ISOSURF  (1<<2)#define S_STREAML  (1<<3)#define S_STREAMR  (1<<4)#define S_VECTOR   (1<<5)#define S_CRITP    (1<<6)#define S_PARTICLE (1<<7)    typedef struct sperspective {  float      fovy,depth;  float      matrix[16],alpha,gamma;  int        rubix,rubfx,rubiy,rubfy;  ubyte      pmode,rubber;} Persp;typedef Persp * pPersp;typedef struct triangle {  float a[3],b[3],c[3];  float va,vb,vc;  float na[3],nb[3],nc[3];} triangle;typedef struct material {  float   amb[4],emi[4],dif[4],spe[4],shininess;  float   ext[6];  GLint   list;  int     depmat[MAX_LIST];  int     ref,sort;  char    name[128];  ubyte   flag;} Material ;typedef Material * pMaterial;typedef struct _cell {  int   id;  int   x,y;  float min,max;  float value;  float step;  char* info;  char* format;} cell;typedef struct transform {  float    pos[3];                /* current mouse position */  float    angle,axis[3];         /* rotation angle + axis  */  float    panx,pany,opanx,opany; /* screen translation     */  float    matrix[16],oldmat[16]; /* transformation matrix  */  float    rot[16],tra[16];  int      mstate,mbutton,manim;} Transform;typedef Transform * pTransform;typedef struct cube {  pTransform   cubetr;  float        cmi[3],cma[3];  ubyte        active;} Cube;typedef Cube *pCube;typedef struct clip {  pTransform   cliptr;  double       eqn[4];  ubyte        active;} Clip;typedef Clip *pClip;typedef struct camera {  GLfloat  eye[3];                /* Position of the camera */  GLfloat  speed[3],spmod,altinc;  int      vecup;} Camera;typedef Camera * pCamera;/* scene parameters */typedef struct sparam {  float     back[4],line[4],edge[4],sunpos[4],clip[6];  float     cm,dpi,coeff,cumtim,cumpertime,maxtime,pertime,dt;  float     eyesep,linewidth,pointsize;  short     xi,yi,xs,ys;  int       nbmat;  char      pscolor[10];  ubyte     sunp,linc,advtim,nbpart;} Param;/* trajectoire */typedef struct straj {  int      np;  float   *pt;  float   *tg;  float    sec;  GLuint   tlist;} Trajet;/* streamlines */typedef struct sstream {  double   size,norm;  float    xmin,xmax,ymin,ymax,zmin,zmax;  float   *listp;  float    stpt[4][3],stcol[4];  int      stnp,stiso[4];  short    nbstl;  ubyte    typtrack;} Stream;typedef Stream * pStream;typedef struct strgrd {  pTransform   strtr;  GLuint       grid;  ubyte        active;} Strgrd;typedef Strgrd * pStrgrd;typedef struct siso {  float  val[MAXISO+2];  float  col[MAXISO+2];  ubyte  palette,ptyp;} Iso;typedef struct scene {  pTransform view;  pClip      clip;  pCube      cube;  pPersp     persp;  pCamera    camera;  pMaterial  material;  pStream    stream;  /*pStrgrd    stg;*/  Param      par;  Trajet     path;  Iso        iso;  float      dmin,dmax;       /* scene size    */  float      shrink;          /* shrink value  */  float      cx,cy,cz;        /* center of scene */    GLuint     dlist[MAX_LIST];    /* display lists  */  GLuint     mlist[MAX_LIST];    /* metric lists   */  GLuint     ilist[MAX_LIST];    /* iso-surfaces   */  GLuint     clist[MAX_LIST];  GLuint     cmlist[MAX_LIST];   /* clipped elts   */  GLuint     vlist[MAX_LIST];    /* vector list    */  GLuint    *slist,cplist;       /* streamlines    */  GLuint     glist,nlist;        /* geometry lists */  GLuint     grid;  GLuint     picklist;  int       *matsort;  short      idwin,idmesh;    /* window, mesh id */  short      master,slave;  ubyte      item;            /* display items */  ubyte      mode;            /* render mode   */  ubyte      type;  ubyte      isotyp;  ubyte      picked;} Scene;typedef Scene * pScene;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -