| 1 | greg | 2.11 | /* RCSid $Id: rpaint.h,v 2.10 2011/10/05 17:20:55 greg Exp $ */ | 
| 2 | greg | 1.1 | /* | 
| 3 |  |  | *  rpaint.h - header file for image painting. | 
| 4 | greg | 2.2 | */ | 
| 5 | schorsch | 2.4 | #ifndef _RAD_RPAINT_H_ | 
| 6 |  |  | #define _RAD_RPAINT_H_ | 
| 7 | schorsch | 2.6 |  | 
| 8 |  |  | #include  "driver.h" | 
| 9 |  |  | #include  "view.h" | 
| 10 |  |  |  | 
| 11 | schorsch | 2.4 | #ifdef __cplusplus | 
| 12 |  |  | extern "C" { | 
| 13 |  |  | #endif | 
| 14 | greg | 1.1 |  | 
| 15 | greg | 2.10 | #ifdef _WIN32           /* stupid Windows name collisions */ | 
| 16 |  |  | #undef COORD | 
| 17 |  |  | #define COORD   radCOORD | 
| 18 |  |  | #undef RECT | 
| 19 |  |  | #define RECT    radRECT | 
| 20 |  |  | #endif | 
| 21 |  |  |  | 
| 22 | greg | 1.1 | typedef short  COORD;           /* an image coordinate */ | 
| 23 |  |  |  | 
| 24 |  |  | typedef struct pnode { | 
| 25 |  |  | struct pnode  *kid;             /* children */ | 
| 26 |  |  | COORD  x, y;                    /* position */ | 
| 27 | greg | 2.8 | COORD  xmin, ymin, xmax, ymax;  /* rectangle */ | 
| 28 | greg | 1.1 | COLOR  v;                       /* value */ | 
| 29 |  |  | }  PNODE;                       /* a paint node */ | 
| 30 |  |  |  | 
| 31 |  |  | /* child ordering */ | 
| 32 |  |  | #define  DL             0               /* down left */ | 
| 33 |  |  | #define  DR             1               /* down right */ | 
| 34 |  |  | #define  UL             2               /* up left */ | 
| 35 |  |  | #define  UR             3               /* up right */ | 
| 36 |  |  |  | 
| 37 |  |  | #define  newptree()     (PNODE *)calloc(4, sizeof(PNODE)) | 
| 38 |  |  |  | 
| 39 |  |  | typedef struct { | 
| 40 |  |  | COORD  l, d, r, u;              /* left, down, right, up */ | 
| 41 |  |  | }  RECT;                        /* a rectangle */ | 
| 42 |  |  |  | 
| 43 |  |  | extern PNODE  ptrunk;           /* the base of the image tree */ | 
| 44 |  |  |  | 
| 45 |  |  | extern VIEW  ourview;           /* current view parameters */ | 
| 46 |  |  | extern VIEW  oldview;           /* previous view parameters */ | 
| 47 | greg | 1.2 | extern int  hresolu, vresolu;   /* image resolution */ | 
| 48 | greg | 1.1 |  | 
| 49 | greg | 2.8 | extern int  newparam;           /* parameter setting changed */ | 
| 50 |  |  |  | 
| 51 |  |  | extern char  *dvcname;          /* output device name */ | 
| 52 |  |  |  | 
| 53 |  |  | extern char  rifname[];         /* rad input file name */ | 
| 54 |  |  |  | 
| 55 |  |  | extern int  psample;            /* pixel sample size */ | 
| 56 |  |  | extern double  maxdiff;         /* max. sample difference */ | 
| 57 |  |  |  | 
| 58 | greg | 1.1 | extern int  greyscale;          /* map colors to brightness? */ | 
| 59 |  |  |  | 
| 60 |  |  | extern int  pdepth;             /* image depth in current frame */ | 
| 61 |  |  | extern RECT  pframe;            /* current frame rectangle */ | 
| 62 |  |  |  | 
| 63 |  |  | extern double  exposure;        /* exposure for scene */ | 
| 64 |  |  |  | 
| 65 |  |  | extern struct driver  *dev;     /* driver functions */ | 
| 66 |  |  |  | 
| 67 | greg | 2.8 | extern int  nproc;              /* number of processes */ | 
| 68 |  |  |  | 
| 69 | greg | 2.2 | /* defined in rview.c */ | 
| 70 |  |  | extern void     devopen(char *dname); | 
| 71 |  |  | extern void     devclose(void); | 
| 72 |  |  | extern void     printdevices(void); | 
| 73 |  |  | extern void     command(char *prompt); | 
| 74 |  |  | extern void     rsample(void); | 
| 75 | greg | 2.8 | extern int      refine(PNODE *p, int pd); | 
| 76 | greg | 2.2 | /* defined in rv2.c */ | 
| 77 |  |  | extern void     getframe(char *s); | 
| 78 |  |  | extern void     getrepaint(char *s); | 
| 79 |  |  | extern void     getview(char *s); | 
| 80 |  |  | extern void     lastview(char *s); | 
| 81 |  |  | extern void     saveview(char *s); | 
| 82 |  |  | extern void     loadview(char *s); | 
| 83 | greg | 2.7 | extern void     getfocus(char *s); | 
| 84 | greg | 2.2 | extern void     getaim(char *s); | 
| 85 |  |  | extern void     getmove(char *s); | 
| 86 |  |  | extern void     getrotate(char *s); | 
| 87 |  |  | extern void     getpivot(char *s); | 
| 88 | greg | 2.11 | extern void     getorigin(char *s); | 
| 89 | greg | 2.2 | extern void     getexposure(char *s); | 
| 90 |  |  | extern int      getparam(char *str, char *dsc, int typ, void *p); | 
| 91 |  |  | extern void     setparam(char *s); | 
| 92 |  |  | extern void     traceray(char *s); | 
| 93 |  |  | extern void     writepict(char *s); | 
| 94 |  |  | /* defined in rv3.c */ | 
| 95 |  |  | extern int      getrect(char *s, RECT *r); | 
| 96 |  |  | extern int      getinterest(char *s, int direc, FVECT vec, double *mp); | 
| 97 |  |  | extern float    *greyof(COLOR col); | 
| 98 | greg | 2.8 | extern int      paint(PNODE *p); | 
| 99 |  |  | extern int      waitrays(void); | 
| 100 |  |  | extern void     newimage(char *s); | 
| 101 | greg | 2.2 | extern void     redraw(void); | 
| 102 |  |  | extern void     repaint(int xmin, int ymin, int xmax, int ymax); | 
| 103 | greg | 2.8 | extern void     paintrect(PNODE *p, RECT *r); | 
| 104 |  |  | extern PNODE    *findrect(int x, int y, PNODE *p, int pd); | 
| 105 | greg | 2.9 | extern void     compavg(PNODE *p); | 
| 106 | greg | 2.2 | extern void     scalepict(PNODE *p, double sf); | 
| 107 |  |  | extern void     getpictcolrs(int yoff, COLR *scan, PNODE *p, | 
| 108 |  |  | int xsiz, int ysiz); | 
| 109 |  |  | extern void     freepkids(PNODE *p); | 
| 110 |  |  | extern void     newview(VIEW *vp); | 
| 111 |  |  | extern void     moveview(double angle, double elev, double mag, FVECT vc); | 
| 112 |  |  | extern void     pcopy(PNODE *p1, PNODE *p2); | 
| 113 |  |  | extern void     zoomview(VIEW *vp, double zf); | 
| 114 |  |  |  | 
| 115 | schorsch | 2.4 |  | 
| 116 |  |  | #ifdef __cplusplus | 
| 117 |  |  | } | 
| 118 | greg | 2.2 | #endif | 
| 119 | schorsch | 2.4 | #endif /* _RAD_RPAINT_H_ */ | 
| 120 |  |  |  |