glrender.h

来自「有限元学习研究用源代码(老外的),供科研人员参考」· C头文件 代码 · 共 195 行

H
195
字号
/*
 * $Id: glrender.h,v 2.4 1998/07/09 09:26:33 schmelze Exp $
 * $Log: glrender.h,v $
 * Revision 2.4  1998/07/09 09:26:33  schmelze
 * *** empty log message ***
 *
 * Revision 2.2  1998/03/24  14:46:21  darcy
 * ibg runs in central installation now
 * (glrender:glr* -> iglr*)
 *
 * Revision 2.1  1998/01/14  18:27:33  fuhrmann
 * Merge mit Ilja
 *
 * Revision 1.2  1997/11/05  19:14:15  schmelze
 * Version mit neuer Dokumentation, erste Version des neuen Gittergenerators
 * noch ohne Randlinienbehandlung
 *
 * Revision 2.0  1996/02/15  19:57:10  fuhrmann
 * First meta-stable distribution
 *
 * Revision 1.4  1996/02/09  16:49:39  fuhrmann
 * - started to comment header
 *
 * Revision 1.3  1996/02/06  09:56:14  fuhrmann
 * glrDump stuff introduced
 *
 * Revision 1.2  1995/11/08  12:20:22  fuhrmann
 * glrSetTitle introduced
 * glRender2 for structure and data pointer usage introduced
 *
 * Revision 1.1  1995/10/20  15:42:38  fuhrmann
 * Initial revision
 *
 */
#ifndef GLRND_H
#define GLRND_H

/*----------------------------------------------------------------
                           Basics

This file defines a C interface for the class *glRenderer.

It is possible to give a three-level help information:
1. name: a single word
2. help: a single line
3. url:  the url of a help file
----------------------------------------------------------------*/

typedef struct iglRendererStruct *iglRenderer;
iglRenderer iglrCreate(     char *name, char *help, char *url,
			  int xpos,
			  int ypos,
			  int width,
			  int height);
void iglrDestroy(          iglRenderer rnd);

void iglrender(            iglRenderer rnd);

/*----------------------------------------------------------------
                Object and Parameter Definition

It must be always 0 < obj < IGLR_OBJECTS, 0 < par < IGLR_PARAMETERS.
Exception: Parameters may be defined "for all objects" by obj=0.

The "key" has to be a lowercase letter.
Parameters defined for the same object require different keys.
----------------------------------------------------------------*/
#define IGLR_OBJECTS 10
#define IGLR_PARAMETERS 50
typedef void (*iglrCallback)(iglRenderer rnd, void *data);

void iglrDefineObject(     iglRenderer rnd, int obj,
			  char key, char *name, char *help, char *url,
			  iglrCallback d, void *data);
void iglrDefineAction(     iglRenderer rnd, int obj, int par,
			  char key, char *name, char *help, char *url,
			  iglrCallback d);
void iglrDefineInteger(    iglRenderer rnd, int obj, int par,
			  char key, char *name, char *help, char *url,
			  int min, int max);
void iglrDefineDouble(     iglRenderer rnd, int obj, int par,
			  char key, char *name, char *help, char *url,
			  double min, double max);
void iglrDefineSwitch(     iglRenderer rnd, int obj, int par,
			  char key, char *name, char *help, char *url);
void iglrDefineEnum(       iglRenderer rnd, int obj, int par,
			  char key, char *name, char *help, char *url,
			  int values, char** value);
void iglrUndefineObject(   iglRenderer rnd, int obj);
void iglrUndefineParameter(iglRenderer rnd, int obj, int par);

void iglrSetObject(        iglRenderer rnd, int obj, void *data);
void iglrSetInteger(       iglRenderer rnd, int obj, int par, int value);
void iglrSetSwitch(        iglRenderer rnd, int obj, int par, int value);
void iglrSetEnum(          iglRenderer rnd, int obj, int par, int value);
void iglrSetDouble(        iglRenderer rnd, int obj, int par, double value);

/*----------------------------------------------------------------
                   Setting Other Initial Values
----------------------------------------------------------------*/

void iglrSetBaseVolume(    iglRenderer rnd,
			  double xmin, double xmax,
			  double ymin, double ymax,
			  double zmin, double zmax);
void iglrSetSnapshotSize(  iglRenderer rnd,
			  int width,
			  int height);
void iglrSetSnapshotNames( iglRenderer rnd,
			  char *nameformat, int first);
void iglrSetBaseURL(       iglRenderer rnd, char *url);

/*----------------------------------------------------------------
      Request Functions to be Called Inside a Draw Procedure
----------------------------------------------------------------*/

#define IGLR_TYPE_VOLUME    3
#define IGLR_TYPE_RECTANGLE 2
#define IGLR_TYPE_LINE      1
#define IGLR_TYPE_POINT     0
void iglrGetDrawType(      iglRenderer rnd, int *type);

#define IGLR_PRINT_NONE     0
#define IGLR_PRINT_SINGLE   1
#define IGLR_PRINT_SOME     2
#define IGLR_PRINT_MORE     3
#define IGLR_PRINT_ALL      4
void iglrGetPrintLevel(    iglRenderer rnd, int *level);

#define IGLR_DRAW_MODI      6
#define IGLR_DRAW_NONE      0
#define IGLR_DRAW_FRAME     1
#define IGLR_DRAW_WIREFRAME 2
#define IGLR_DRAW_COARSE    3
#define IGLR_DRAW_NORMAL    4
#define IGLR_DRAW_BEST      5
void iglrGetDrawLevel(     iglRenderer rnd, int *level, int *bound);
void iglrGetVolume(        iglRenderer rnd,
			  double *xmin, double *xmax,
			  double *ymin, double *ymax,
			  double *zmin, double *zmax);
void iglrGetPlane(         iglRenderer rnd, 
			  double *a, double *b, double *c, double *d);
void iglrGetRectangle(     iglRenderer rnd, double x[3][4]);
void iglrGetLine(          iglRenderer rnd, double x[3][2]);
void iglrGetPoint(         iglRenderer rnd, double x[3]);
int  iglrGetObject(        iglRenderer rnd);
void iglrGetInteger(       iglRenderer rnd, int obj, int par, int *value);
void iglrGetSwitch(        iglRenderer rnd, int obj, int par, int *value);
void iglrGetEnum(          iglRenderer rnd, int obj, int par, int *value);
void iglrGetDouble(        iglRenderer rnd, int obj, int par, double *value);
void iglrGetSliceState(	   iglRenderer rnd, int *sliceOn);

/*----------------------------------------------------------------
                        Writing Text
----------------------------------------------------------------*/
void iglrPrint(iglRenderer rnd, char *s);
/*----------------------------------------------------------------
             May become obsolete in 3.0 - don't use
----------------------------------------------------------------*/
void iglrSetTitle(iglRenderer rnd, char *title);
void iglrReset(iglRenderer rnd);
void iglrGetMouseState(iglRenderer rnd, int *hold);
void iglrSetVolume(iglRenderer rnd,double xmin, double xmax, 
                                  double ymin, double ymax,
                                  double zmin, double zmax);
typedef int (*iglrKeyAction)(iglRenderer rnd,int mask);
void iglrRegisterKeyAction(iglRenderer rnd, int key, iglrKeyAction action, char *help);
void iglrSetPerspective(iglRenderer rnd, double rotx, double rotz);
void iglrGetPerspective(iglRenderer rnd, double *rotx, double *rotz);
void iglrGetFlatshading(iglRenderer rnd, int *flat);
void iglrSetFlatshading(iglRenderer rnd, int flat);
void iglrSetPlane(iglRenderer rnd, double a,  double b, double c, double d);
void   iglrGetVScale(iglRenderer rnd, double* vscale);
void   iglrSetVScale(iglRenderer rnd, double vscale);
void iglrGetWireframe(iglRenderer rnd, int *wireframe);
void iglrGetLevelSurface(iglRenderer rnd, int* mode);
void iglrSetLevelSurface(iglRenderer rnd, int mode);
void iglrGetLevel(iglRenderer rnd, double* lev);
void iglrSetLevel(iglRenderer rnd, double lev);
void iglrMoveWireframe(iglRenderer rnd);
void iglrMoveFrame(iglRenderer rnd);
void iglrMoveModel(iglRenderer rnd);
void iglrGetDialog(iglRenderer rnd, int* dialog);
void iglrSetDialog(iglRenderer, int dialog);
typedef void (*iglrCallback2)(iglRenderer rnd, void *structure, void *data);
void iglrender1(iglRenderer rnd, iglrCallback f, void *info);
void iglrender2(iglRenderer rnd, iglrCallback2 f, void *structure, void *info);
void iglrSetDumpFileNameStub(iglRenderer rnd, char *name);
void iglrSetDumpPixmapSize(iglRenderer rnd, int w, int h);
void iglrDumpNext(iglRenderer rnd);
void iglrSetDataValid(iglRenderer, int valid);

#endif

⌨️ 快捷键说明

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