gl2ps.h | gl2ps.h | |||
---|---|---|---|---|
/* | /* | |||
* GL2PS, an OpenGL to Postscript Printing Library, version 0.1 | * GL2PS, an OpenGL to Postscript Printing Library, version 0.2 | |||
* Copyright (C) 1999-2000 Christophe Geuzaine | * Copyright (C) 1999-2000 Christophe Geuzaine | |||
* | * | |||
* E-mail: Christophe.Geuzaine@AdValvas.be | * E-mail: Christophe.Geuzaine@AdValvas.be | |||
* URL: http://www.montfiore.ulg.ac.be/~geuzaine/gl2ps.html | * URL: http://www.montfiore.ulg.ac.be/~geuzaine/gl2ps.html | |||
* | * | |||
* This library is free software; you can redistribute it and/or | * This library is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Library General Public | * modify it under the terms of the GNU Library General Public | |||
* License as published by the Free Software Foundation; either | * License as published by the Free Software Foundation; either | |||
* version 2 of the License, or (at your option) any later version. | * version 2 of the License, or (at your option) any later version. | |||
* | * | |||
* This library is distributed in the hope that it will be useful, | * This library is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Library General Public License for more details. | * Library General Public License for more details. | |||
* | * | |||
* You should have received a copy of the GNU Library General Public | * You should have received a copy of the GNU Library General Public | |||
* License along with this library; if not, write to the Free | * License along with this library; if not, write to the Free | |||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
* | * | |||
* Last modified 12 Feb 2000 | * Last modified 19 Feb 2000 | |||
*/ | */ | |||
#ifndef __GL2PS_H__ | #ifndef __GL2PS_H__ | |||
#define __GL2PS_H__ | #define __GL2PS_H__ | |||
#include <stdio.h> | #include <stdio.h> | |||
#include <stdlib.h> | #include <stdlib.h> | |||
#include <GL/gl.h> | #include <GL/gl.h> | |||
#define GL2PS_NONE 0 | ||||
/* Sorting algorithms */ | ||||
#define GL2PS_NO_SORT 1 | ||||
#define GL2PS_SIMPLE_SORT 2 | ||||
#define GL2PS_BSP_SORT 3 | ||||
/* Options for gl2psBeginPage */ | /* Options for gl2psBeginPage */ | |||
#define GL2PS_NO_SORT 1 | #define GL2PS_DRAW_BACKGROUND 1 | |||
#define GL2PS_SIMPLE_SORT 2 | #define GL2PS_SIMPLE_LINE_OFFSET 2 | |||
#define GL2PS_BSP_SORT 4 | #define GL2PS_SILENT 4 | |||
#define GL2PS_DRAW_BACKGROUND 8 | #define GL2PS_BEST_ROOT 8 | |||
#define GL2PS_SIMPLE_LINE_OFFSET 16 | ||||
#define GL2PS_SILENT 32 | ||||
/* Fonts for gl2psText */ | ||||
#define GL2PS_HELVETICA 1 | ||||
#define GL2PS_TIMES 2 | ||||
#define GL2PS_COURIER 3 | ||||
/* Arguments for gl2psEnable/gl2psDisable */ | /* Arguments for gl2psEnable/gl2psDisable */ | |||
#define GL2PS_POLYGON_OFFSET_FILL 1 | #define GL2PS_POLYGON_OFFSET_FILL 1 | |||
#define GL2PS_POLYGON_BOUNDARY 2 | ||||
/* Magic numbers */ | /* Magic numbers */ | |||
#define GL2PS_EPSILON 5.e-3 | #define GL2PS_EPSILON 5.e-3 | |||
/* Message levels */ | /* Message levels */ | |||
#define GL2PS_INFO 1 | #define GL2PS_INFO 1 | |||
#define GL2PS_WARNING 2 | #define GL2PS_WARNING 2 | |||
#define GL2PS_ERROR 3 | #define GL2PS_ERROR 3 | |||
/* Error codes */ | /* Error codes */ | |||
#define GL2PS_SUCCESS 0 | #define GL2PS_SUCCESS 0 | |||
#define GL2PS_NO_FEEDBACK -1 | #define GL2PS_NO_FEEDBACK -1 | |||
#define GL2PS_OVERFLOW -2 | #define GL2PS_OVERFLOW -2 | |||
/* Primitive types */ | /* Primitive types */ | |||
#define GL2PS_TEXT 1 | #define GL2PS_TEXT 1 | |||
#define GL2PS_POINT 2 | #define GL2PS_POINT 2 | |||
#define GL2PS_LINE 3 | #define GL2PS_LINE 3 | |||
#define GL2PS_QUADRANGLE 4 | #define GL2PS_QUADRANGLE 4 | |||
#define GL2PS_TRIANGLE 5 | #define GL2PS_TRIANGLE 5 | |||
/* BSP tree primitive comparison */ | /* BSP tree primitive comparison */ | |||
#define GL2PS_COINCIDENT 1 | #define GL2PS_COINCIDENT 1 | |||
#define GL2PS_IN_FRONT_OF 2 | #define GL2PS_IN_FRONT_OF 2 | |||
#define GL2PS_IN_BACK_OF 3 | #define GL2PS_IN_BACK_OF 3 | |||
#define GL2PS_SPANNING 4 | #define GL2PS_SPANNING 4 | |||
/* Pass through options */ | /* Pass through options */ | |||
#define GL2PS_BEGIN_OFFSET_TOKEN 1 | #define GL2PS_BEGIN_POLYGON_OFFSET_FILL 1 | |||
#define GL2PS_END_OFFSET_TOKEN 2 | #define GL2PS_END_POLYGON_OFFSET_FILL 2 | |||
#define GL2PS_BEGIN_POLYGON_BOUNDARY 3 | ||||
#define GL2PS_END_POLYGON_BOUNDARY 4 | ||||
typedef GLfloat GL2PSrgba[4]; | typedef GLfloat GL2PSrgba[4]; | |||
typedef GLfloat GL2PSxyz[3]; | typedef GLfloat GL2PSxyz[3]; | |||
typedef GLfloat GL2PSplane[4]; | typedef GLfloat GL2PSplane[4]; | |||
typedef struct { | typedef struct { | |||
int nmax, size, incr, n; | GLint nmax, size, incr, n; | |||
char *array; | char *array; | |||
} GL2PSlist; | } GL2PSlist; | |||
typedef struct _GL2PSbsptree GL2PSbsptree; | typedef struct _GL2PSbsptree GL2PSbsptree; | |||
struct _GL2PSbsptree { | struct _GL2PSbsptree { | |||
GL2PSplane plane; | GL2PSplane plane; | |||
GL2PSlist *primitives; | GL2PSlist *primitives; | |||
GL2PSbsptree *front, *back; | GL2PSbsptree *front, *back; | |||
}; | }; | |||
typedef struct { | typedef struct { | |||
GL2PSxyz xyz; | GL2PSxyz xyz; | |||
GL2PSrgba rgba; | GL2PSrgba rgba; | |||
} GL2PSvertex; | } GL2PSvertex; | |||
typedef struct { | typedef struct { | |||
short fonttype, fontsize; | GLshort fontsize; | |||
char *str; | char *str, *fontname; | |||
} GL2PSstring; | } GL2PSstring; | |||
typedef struct { | typedef struct { | |||
short type, numverts; | GLshort type, numverts, boundary; | |||
GLfloat depth; | GLfloat depth; | |||
GL2PSvertex *verts; | GL2PSvertex *verts; | |||
GL2PSstring *text; | GL2PSstring *text; | |||
} GL2PSprimitive; | } GL2PSprimitive; | |||
typedef struct { | typedef struct { | |||
int mode, options, feedsize, colorsize; | GLint sort, options, colorsize, colormode, buffersize; | |||
GLboolean shade; | char *title, *producer; | |||
GLboolean shade, boundary; | ||||
GLfloat *feedback, offset[2]; | GLfloat *feedback, offset[2]; | |||
GL2PSrgba *colormap; | GL2PSrgba *colormap; | |||
GL2PSlist *primitives; | GL2PSlist *primitives; | |||
FILE *file; | FILE *stream; | |||
} GL2PScontext; | } GL2PScontext; | |||
/* public functions */ | /* public functions */ | |||
void gl2psBeginPage(char *title, char *producer, int mode, int options, | GLvoid gl2psBeginPage(char *title, char *producer, GLint sort, GLint option | |||
int feedsize, int colorsize, GL2PSrgba * rgba, | s, | |||
FILE * file); | GLint colormode, GLint colorsize, GL2PSrgba *colormap, | |||
int gl2psEndPage(void); | GLint buffersize, FILE * stream); | |||
void gl2psText(char *str, int size, int font); | GLint gl2psEndPage(GLvoid); | |||
void gl2psEnable(int mode); | GLvoid gl2psText(char *str, char *fontname, GLint size); | |||
void gl2psDisable(int mode); | GLvoid gl2psEnable(GLint mode); | |||
GLvoid gl2psDisable(GLint mode); | ||||
#endif | #endif | |||
End of changes. 17 change blocks. | ||||
47 lines changed or deleted | 52 lines changed or added | |||