/usr/include/geomview/private/discgrpP.h is in libgeomview-dev 1.9.4-4.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | /* Copyright (C) 1992-1998 The Geometry Center
* Copyright (C) 1998-2000 Stuart Levy, Tamara Munzner, Mark Phillips
*
* This file is part of Geomview.
*
* Geomview is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* Geomview is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Geomview; see the file COPYING. If not, write
* to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139,
* USA, or visit http://www.gnu.org.
*/
/* Authors: Charlie Gunn, Stuart Levy, Tamara Munzner, Mark Phillips */
#ifndef DISCGRPPDEF
#define DISCGRPPDEF
#include "geomclass.h"
#include "discgrp.h"
#include "3d.h"
#include "wa.h"
#include "winged_edge.h"
/* attributes */
#define DG_KEYWORDSIZE 32
#define DG_NAMESIZE 128
#define DG_LABELSIZE 256
#define DG_WORDLENGTH 32
#define DG_MAXGENS 128 /* MAXGENS appears in fsa.h */
struct DiscGrpEl {
int attributes; /* type? fixed points, etc? */
char word[DG_WORDLENGTH]; /* the 'string' in the generators? */
Transform tform;
ColorA color;
struct DiscGrpEl *inverse;
};
typedef struct DiscGrpEl DiscGrpEl;
typedef struct keytokenpair {
char key[32];
int token;
} keytokenpair;
typedef struct {
int attributes; /* special, orthogonal, projective, etc */
/* plus entry type ... */
int dimn; /* dimension of matrix */
int sig; /* signature of group */
} matrixgroup;
typedef struct {
int num_el;
matrixgroup mgroup;
DiscGrpEl *el_list;
} DiscGrpElList;
typedef struct {
#define FRUS_LEFT 0
#define FRUS_RIGHT 1
#define FRUS_TOP 2
#define FRUS_BOTOM 3
HPoint3 frustrum[4]; /* planes for culling against view frustum */
Transform m2w, w2m, c2w, w2c, c2m, m2c;
} dgviewinfo;
struct DiscGrp {
GEOMFIELDS;
char *name;
char *comment;
unsigned flag; /* graphics flags */
int attributes; /* group attributes */
int dimn;
float (*c2m)[4]; /* record the transform taking cam->model*/
wa *fsa; /* word acceptor */
DiscGrpElList *gens; /* generators */
DiscGrpElList *nhbr_list; /* dirdom neighbors */
DiscGrpElList *big_list; /* some arbitrary list of group el's */
HPoint3 cpoint; /* center point for dirichlet domain */
Geom *camgeom; /* camera geom: moves w/ camera */
Handle *camgeomhandle;
Geom *ddgeom; /* special geom*/
Handle *ddgeomhandle;
Geom *geom; /* geometry for one fund domain */
Handle *geomhandle;
float scale; /* shrink dirdom before drawing... */
int enumdepth; /* max word length for big_list */
float enumdist; /* max distance grp el moves cpoint */
float drawdist; /* max distance grp el moves cpoint for drawing purposes (generally less than enumdist)_ */
void (*predraw)();
dgviewinfo viewinfo; /* camera position, etc */
} ;
extern HPoint3 DGorigin;
extern GeomClass *DiscGrpClass;
/* private methods */
extern void DiscGrpSetupDirdom( DiscGrp *discgrp);
extern DiscGrpEl *DiscGrpClosestGroupEl( DiscGrp *discgrp, HPoint3 *poi);
extern DiscGrpElList *DiscGrpExtractNhbrs( WEpolyhedron *wepoly );
extern Geom *DiscGrpDirDom( DiscGrp *dg);
extern Geom *WEPolyhedronToBeams( WEpolyhedron *poly, float alpha);
extern WEpolyhedron *DiscGrpMakeDirdom( DiscGrp *dg, HPoint3 *pt0, int slice);
extern DiscGrpElList *DiscGrpEnum( DiscGrp *dg, int (*constraintfn)());
extern void DiscGrpInitStandardConstraint( int depth, float d0, float d1);
extern int DiscGrpStandardConstraint( DiscGrpEl *dgel);
extern DiscGrpElList *DiscGrpElListDelete (DiscGrpElList *exist);
extern void DiscGrpAddInverses(DiscGrp *discgrp);
void DHPt3PerpBisect(/*point4 p0, point4 p1, point4 result, int metric*/);
extern int needstuneup();
extern void tuneup();
extern int is_new();
extern int insert_or_match_mat();
extern int push_new_stack();
extern int enumpush();
extern void init_stack();
extern void make_new_old();
extern int init_out_stack();
extern void delete_list();
extern int enumgetsize();
#endif /* ! DISCGRPPDEF */
|