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 DISCGRPDEF 26 #define DISCGRPDEF 27 28 #include "bbox.h" 29 #include "dgflag.h" 30 #include "create.h" 31 #include "appearance.h" 32 #include "pick.h" 33 #include "streampool.h" 34 35 #ifndef NULL 36 #define NULL 0 37 #endif 38 39 #ifndef FALSE 40 #define FALSE 0 41 #endif 42 43 #define DISCGRPMAGIC GeomMagic('d',1) 44 45 typedef struct DiscGrp DiscGrp ; 46 47 extern DiscGrp * 48 DiscGrpPick( DiscGrp *, Pick *, Appearance *, Transform, TransformN *, int * ); 49 extern GeomClass *DiscGrpMethods( void ); 50 extern char *DiscGrpName( void ); 51 /* 52 extern DiscGrp *DiscGrpFLoad( FILE *, char * ); 53 extern DiscGrp *DiscGrpLoad( char * ); 54 */ 55 extern Geom *DiscGrpImport (Pool * ); 56 extern DiscGrp *DiscGrpSave( DiscGrp *, char * ); 57 extern DiscGrp *DiscGrpFSave( DiscGrp *, FILE *, char * ); 58 extern BBox *DiscGrpBound( DiscGrp *, Transform T, TransformN *TN); 59 extern DiscGrp *DiscGrpDraw( DiscGrp * ); 60 /* 61 extern DiscGrpElList *DiscGrpElListCreate(DiscGrpElList *, ...); 62 extern DiscGrp *DiscGrpEvert( DiscGrp * ); 63 extern DiscGrp *DiscGrpTransform( DiscGrp *, Transform ); 64 extern DiscGrp *DiscGrpTransformTo( DiscGrp *, Transform ); 65 */ 66 67 /* tokens used by the create routines, not duplicated in create.h */ 68 /* we'll use the '900' region: this ought to be registered somewhere */ 69 /* DGELC == DiscGrpElListCreate 70 DGC == DiscGrpCreate 71 */ 72 enum { 73 DGCR_ATTRIBUTE = 900, /* int : attributes in both DGC and DGELC */ 74 DGCR_ATTRIBUTELIST, /* int * : list of attributes in DGELC */ 75 DGCR_WORD, /* char (*)[DG_WORDLENGTH] : used by 76 * DiscGrpElListCreate */ 77 DGCR_ELEM, /* DiscGrpEl * : used in DGELC note that 78 * CR_ELEM is also used here */ 79 DGCR_CPOINT, /* HPoint3 * :base point of dirichlet domain: */ 80 81 DGCR_CAMGEOM, /* Geom * :geometry used to represent the observer*/ 82 DGCR_CAMGEOMHANDLE, /* Handle * */ 83 DGCR_HANDLE_CAMGEOM, /* Handle *, Geom * */ 84 85 DGCR_DDGEOM, /* Geom * :geometry for Dirichlet domain */ 86 DGCR_DDGEOMHANDLE, /* Handle * */ 87 DGCR_HANDLE_DDGEOM, /* Handle *, Geom * */ 88 DGCR_GENS, /* DiscGrpElList * : generators */ 89 DGCR_BIGLIST, /* DiscGrpElList * : general list */ 90 DGCR_ENUMDEPTH, /* int : depth to compute wordlist */ 91 DGCR_ENUMDIST, /* float : maximum distance of tiles */ 92 DGCR_SCALE, /* float : scaling factor for dirdom */ 93 DGCR_FLAG, /* the flag field of the DiscGrp */ 94 DGCR_NAME, /* the flag field of the DiscGrp */ 95 DGCR_COMMENT, /* the flag field of the DiscGrp */ 96 DGCR_DRAWDIST, /* max distance grp el moves cpoint for 97 * drawing purposes (generally less than 98 * enumdist)_ */ 99 DGCR_END 100 }; 101 102 #endif /*DISCGRPDEF*/ 103 104 /* 105 * Local Variables: *** 106 * mode: c *** 107 * c-basic-offset: 2 *** 108 * End: *** 109 */ 110