1 /* 2 3 ***************************************************************************** 4 * Author: * 5 * ------ * 6 * Anton Kokalj Email: Tone.Kokalj@ijs.si * 7 * Department of Physical and Organic Chemistry Phone: x 386 1 477 3523 * 8 * Jozef Stefan Institute Fax: x 386 1 477 3811 * 9 * Jamova 39, SI-1000 Ljubljana * 10 * SLOVENIA * 11 * * 12 * Source: $XCRYSDEN_TOPDIR/C/xcGLparam.h 13 * ------ * 14 * Copyright (c) 1996-2003 by Anton Kokalj * 15 ***************************************************************************** 16 17 */ 18 19 /* this is preprocessor option tomark that we have include this file */ 20 #define XC_CPP_GLPARAM 21 22 #ifndef XC_CPP_GLH 23 # include <GL/gl.h> 24 # define XC_CPP_GLH 25 #endif 26 27 /***********************************************/ 28 #define GLPAR_MATERIAL 0 29 #define GLPAR_LIGHT 1 30 #define GLPAR_LIGHTMODEL 3 31 #define GLPAR_FRONTFACE 4 32 #define GLPAR_BLENDFUNC 5 33 #define GLPAR_FOG 6 34 35 #define GLPAR_MAT_WHAT_STRUCTURE 0 36 #define GLPAR_MAT_WHAT_ISOSURF 1 37 38 #define GLPAR_MAT_WHAT_ISOPOS 0 39 #define GLPAR_MAT_WHAT_ISONEG 1 40 #define GLPAR_MAT_WHAT_ISOONE 3 41 42 #define GLPAR_MAT_WHAT_ISOBACKSIDE 0 43 #define GLPAR_MAT_WHAT_ISOFRONTSIDE 1 44 45 /* please, do not change these two values */ 46 #define GLPAR_FACE_WHAT_ISOSURF_POS 0 47 #define GLPAR_FACE_WHAT_ISOSURF_NEG 1 48 49 #define GLPAR_BLEND_WHAT_ISOSURF 0 50 #define GLPAR_BLEND_WHAT_COLORPLANE 1 51 52 #define GLPAR_MAXLIGHT 5 53 /***********************************************/ 54 55 /* this is for displaying vorious vectors and cages */ 56 #define GLPAR_N_OF_VEC_AND_CAGE 8 57 #define GLPAR_PRIMCAGE 0 58 #define GLPAR_CONVCAGE 1 59 #define GLPAR_SCCAGE 2 60 #define GLPAR_PRIMVEC 3 61 #define GLPAR_CONVVEC 4 62 #define GLPAR_SCVEC 5 63 #define GLPAR_ISOPARALLE 6 64 #define GLPAR_ISOPARAPIP 7 65 66 #define XC_GET_RGBA 0 67 #define XC_GET_XYZ 1 68 #define XC_GET_XYZW 2 69 #define XC_GET_FLOAT 3 70 #define XC_GET_FLOAT4 4 71 #define XC_GET_FLOAT6 5 72 #define XC_GET_FLOAT12 6 73 #define XC_GET_INT 7 74 #define XC_GET_INT3 8 75 #define XC_GET_INT12 9 76 #define XC_GET_FLOAT2 10 77 #define XC_GET_RGB 11 78 79 typedef struct { 80 float ambient[4]; 81 float diffuse[4]; 82 float specular[4]; 83 float shininess[1]; 84 float emission[4]; 85 } xcMATERIAL; 86 87 #ifndef XC_CPP_BOOLEAN 88 typedef int boolean; 89 # define XC_CPP_BOOLEAN 90 #endif 91 92 typedef struct { 93 boolean isenabled; 94 float ambient[4]; 95 float diffuse[4]; 96 float specular[4]; 97 float fract_position[4]; /* position in fractional coordinates */ 98 float position[4]; 99 float spot_dir[3]; 100 float spot_exp[1]; 101 float spot_cutoff[1]; 102 float const_atten[1]; 103 float lin_atten[1]; 104 float quad_atten[1]; 105 } LIGHT; 106 107 #define LIGHTMODEL_STRUCTURE 0 /* this is used by GL_LIGHT_MODEL_TWO_SIDE */ 108 #define LIGHTMODEL_ISOSURF 1 109 typedef struct { 110 float two_side[1]; /* two_side for structure */ 111 float two_side_iso[1]; /* two_side for isosufrace & related */ 112 float ambient[4]; 113 float local_viewer[1]; 114 } LIGHTMODEL; 115 116 typedef struct { 117 GLenum sfunc; 118 GLenum dfunc; 119 } BLENDFUNC; 120 121 typedef GLenum FRONTFACE; 122 123 xcMATERIAL mat_struct, mat_colorplane[2]; 124 xcMATERIAL back_mat_isosurf[2], front_mat_isosurf[2]; 125 xcMATERIAL back_mat_pos_isosurf[2], front_mat_pos_isosurf[2]; 126 xcMATERIAL back_mat_neg_isosurf[2], front_mat_neg_isosurf[2]; 127 xcMATERIAL mat_voronoi[2]; 128 xcMATERIAL mat_vec_and_cage[GLPAR_N_OF_VEC_AND_CAGE]; 129 130 #define MAX_NUMBER_OF_LIGHTS GLPAR_MAXLIGHT+1 131 LIGHT light[MAX_NUMBER_OF_LIGHTS]; 132 LIGHTMODEL lightmodel; 133 134 BLENDFUNC blend_isosurf, blend_colorplane, blend_voronoi, blend_cellcage; 135 FRONTFACE frontface_isosurf[2]; 136 137 typedef struct { 138 boolean is; 139 float vec[20]; 140 } GetGlParam; 141 142