1 /* Copyright (C) 1992-1998 The Geometry Center 2 * Copyright (C) 1998-2000 Stuart Levy, Tamara Munzner, Mark Phillips 3 * 4 * This file is part of Geomview. 5 * 6 * Geomview is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU Lesser General Public License as published 8 * by the Free Software Foundation; either version 2, or (at your option) 9 * any later version. 10 * 11 * Geomview is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with Geomview; see the file COPYING. If not, write 18 * to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, 19 * USA, or visit http://www.gnu.org. 20 */ 21 22 23 /* Authors: Charlie Gunn, Stuart Levy, Tamara Munzner, Mark Phillips */ 24 25 #ifndef DGFLAGDEFS 26 #define DGFLAGDEFS 27 28 #define DG_HYPERBOLIC 1 29 #define DG_EUCLIDEAN 2 30 #define DG_SPHERICAL 4 31 #define DG_FINITE 8 32 #define DG_TRANSPOSED 16 33 34 #define DG_CONFORMALBALL 32 35 #define DG_UPPERHALFSPACE 64 36 #define DG_PROJECTIVEMODEL 128 37 #define DG_NUM_ATTR 8 /* the above are the attributes */ 38 39 #define DG_METRIC_BITS (DG_HYPERBOLIC | DG_EUCLIDEAN | DG_SPHERICAL) 40 #define DG_MODEL_BITS (DG_CONFORMALBALL | DG_UPPERHALFSPACE | DG_PROJECTIVE) 41 42 /* for the matrix group entries */ 43 #define DG_GENERAL 0x000 /* general invertible group: default */ 44 #define DG_SPECIAL 0x100 /* determinant +/- 1 */ 45 #define DG_ORTHOGONAL 0x200 /* M.Transpose(M) = d.I */ 46 #define DG_PROJECTIVE 0x400 /* M.Transpose(M) = d.I */ 47 #define DG_REAL 0x000 /* default is real */ 48 #define DG_COMPLEX 0x800 /* default is real */ 49 50 #define DG_TMP 0x10000 51 52 /* flag */ 53 #define DG_CENTERCAM 1 54 #define DG_NEWDIRDOM 2 /* recompute dirdom */ 55 #define DG_DRAWDIRDOM 4 56 #define DG_ZCULL 8 /* don't draw those behind the camera */ 57 #define DG_DRAWCAM 0x10 58 #define DG_DDBEAM 0x20 /* compute beamed dirichlet domain */ 59 #define DG_DDSLICE 0x40 /* slice off cusps in dirichlet domain */ 60 #define DG_DEBUG 0x100 61 #define DG_SAVEBIGLIST 0x200 /* does DiscGrpSave write out the group elements? */ 62 #define DG_SAVEDIRDOM 0x400 /* does DiscGrpSave write out the dirichlet domain? */ 63 #define DG_DRAWGEOM 0x800 /* draw other geometry? */ 64 #define DG_NUM_DSPYATTR 5 /* zcull, cenercam, drawcam, drawdirdom, and drawgeom are externally settable */ 65 66 /* constraint return values (only DG_CONSTRAINT_VALID is required) */ 67 #define DG_CONSTRAINT_PRINT 1 68 #define DG_CONSTRAINT_TOOFAR 2 69 #define DG_CONSTRAINT_STORE 4 70 #define DG_CONSTRAINT_LONG 8 71 #define DG_CONSTRAINT_NEW 16 72 #define DG_CONSTRAINT_MAXLEN 32 73 74 /* bits in DiscGrpEl.attributes */ 75 #define DGEL_IS_IDENTITY 0x1 /* need to mark the identity matrix */ 76 #endif /*DGFLAGDEFS*/ 77