home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************************************
- * Definitions for the Poly3D-H program: *
- *****************************************************************************/
-
- #ifndef POLY_3D_H_H
- #define POLY_3D_H_H
-
- #include "irit_sm.h"
- #include "genmat.h"
- #include "iritprsr.h"
- #include "cagd_lib.h"
-
- #ifdef EPSILON
- #undef EPSILON
- #endif /* EPSILON */
- #define EPSILON 1e-4 /* Make it smaller if you changed to double precision. */
-
- #define EDGE_HASH_TABLE_SIZE 500 /* Number of entries in edge hash table. */
- #define EDGE_HASH_TABLE_SIZE1 499 /* One below the above. */
- #define EDGE_HASH_TABLE_SIZE2 250 /* Half of above. */
- #define POLY_HASH_TABLE_SIZE 500 /* Number of entries in poly hash table. */
- #define POLY_HASH_TABLE_SIZE1 499 /* One below the above. */
- #define POLY_HASH_TABLE_SIZE2 250 /* Half of above. */
-
- #ifdef __MSDOS__
- #define HIDDEN_COLOR YELLOW /* Color to draw hidden line result. */
- #else
- #define HIDDEN_COLOR 14 /* Color to draw hidden line result. */
- #endif /* __MSDOS__ */
-
- #define DEFAULT_FINENESS 4 /* Default fineness of srf subdiv. */
-
- typedef struct EdgeStruct {
- struct EdgeStruct *Pnext;
- IPVertexStruct *Vertex[2]; /* The two edge vertices. */
- unsigned char Internal; /* If edge is Internal (IRIT output). */
- } EdgeStruct;
-
- /* The following are global setable variables (via config file poly3d-h.cfg) */
- extern int GlblMore, GlblNumEdge, GlblBackFacing, GlblInternal;
-
- extern int NumOfPolygons; /* Total number of polygons to handle. */
-
- /* Global transformation matrix: */
- extern MatrixType GlblViewMat; /* Current view/persp. of object. */
-
- /* Data structures used by the hidden line modules: */
- extern int EdgeCount;
- extern EdgeStruct *EdgeHashTable[];
- extern IPPolygonStruct *PolyHashTable[];
-
- /* And finally the prototypes of the Poly3D-H.c module: */
- VoidPtr MyMalloc(unsigned size);
- void MyFree(VoidPtr p);
- void MyExit(int ExitCode);
-
- /* Prototypes of the PrepData.c module: */
- void PrepareViewData(IPObjectStruct *Objects);
- int CrossProd(RealType Pt1[3], RealType Pt2[3], RealType Pt3[3]);
-
- /* Prototypes of the Out-Edge.c module: */
- void OutVisibleEdges(void);
-
- #endif /* POLY_3D_H_H */
-