This is discgrpP.h in view mode; [Download] [Up]
/* Copyright (c) 1992 The Geometry Center; University of Minnesota 1300 South Second Street; Minneapolis, MN 55454, USA; This file is part of geomview/OOGL. geomview/OOGL is free software; you can redistribute it and/or modify it only under the terms given in the file COPYING, which you should have received along with this file. This and other related software may be obtained via anonymous ftp from geom.umn.edu; email: software@geom.umn.edu. */ /* 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; struct DiscGrp { GEOMFIELDS char *name; char *comment; int 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 */ } ; 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); #endif /* ! DISCGRPPDEF */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.