ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/view.h
(Generate patch)

Comparing ray/src/common/view.h (file contents):
Revision 1.7 by greg, Fri Apr 12 14:20:40 1991 UTC vs.
Revision 2.20 by greg, Fri Apr 27 05:00:29 2018 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1988 Regents of the University of California */
2 <
3 < /* SCCSid "$SunId$ LBL" */
4 <
1 > /* RCSid $Id$ */
2   /*
3   *  view.h - header file for image generation.
4   *
5 < *     9/19/88
5 > *  Include after stdio.h and rtmath.h
6 > *  Includes resolu.h
7   */
8 + #ifndef _RAD_VIEW_H_
9 + #define _RAD_VIEW_H_
10  
11 + #include  "resolu.h"
12 +
13 + #ifdef __cplusplus
14 + extern "C" {
15 + #endif
16 +
17                                  /* view types */
18   #define  VT_PER         'v'             /* perspective */
19   #define  VT_PAR         'l'             /* parallel */
20   #define  VT_ANG         'a'             /* angular fisheye */
21   #define  VT_HEM         'h'             /* hemispherical fisheye */
22 + #define  VT_PLS         's'             /* planispheric fisheye */
23 + #define  VT_CYL         'c'             /* cylindrical panorama */
24  
25   typedef struct {
26          int  type;              /* view type */
27          FVECT  vp;              /* view origin */
28          FVECT  vdir;            /* view direction */
29          FVECT  vup;             /* view up */
30 +        double  vdist;          /* view distance */
31          double  horiz;          /* horizontal view size */
32          double  vert;           /* vertical view size */
33          double  hoff;           /* horizontal image offset */
34          double  voff;           /* vertical image offset */
35 +        double  vfore;          /* fore clipping plane */
36 +        double  vaft;           /* aft clipping plane (<=0 for inf) */
37          FVECT  hvec;            /* computed horizontal image vector */
38          FVECT  vvec;            /* computed vertical image vector */
39          double  hn2;            /* DOT(hvec,hvec) */
# Line 31 | Line 42 | typedef struct {
42  
43   extern VIEW  stdview;
44  
34 extern char  *setview();
35
36 extern double  sqrt();
37
45   #define  viewaspect(v)  sqrt((v)->vn2/(v)->hn2)
46  
47 < #define  STDVIEW        {VT_PER,0.,0.,0.,0.,1.,0.,0.,0.,1.,45.,45.,0.,0.}
47 > #define  STDVIEW        {VT_PER,{0.,0.,0.},{0.,1.,0.},{0.,0.,1.}, \
48 >                                1.,45.,45.,0.,0.,0.,0., \
49 >                                {0.,0.,0.},{0.,0.,0.},0.,0.}
50  
51   #define  VIEWSTR        "VIEW="
52   #define  VIEWSTRL       5
53 +
54 +                                /* return values/flags for viewloc() */
55 + #define VL_BAD          0               /* illegal position (i.e. origin) */
56 + #define VL_GOOD         0x1             /* result is valid */
57 + #define VL_BEHIND       0x2             /* world point is behind fore plane */
58 + #define VL_OUTSIDE      0x4             /* world point is outside frustum */
59 + #define VL_BEYOND       0x8             /* point is beyond aft clipping plane */
60 +
61 + extern char     *setview(VIEW *v);
62 + extern void     normaspect(double va, double *ap, int *xp, int *yp);
63 + extern double   viewray(FVECT orig, FVECT direc, VIEW *v, double x, double y);
64 + extern int      viewloc(FVECT ip, VIEW *v, FVECT p);
65 + extern void     pix2loc(RREAL loc[2], RESOLU *rp, int px, int py);
66 + extern void     loc2pix(int pp[2], RESOLU *rp, double lx, double ly);
67 + extern int      getviewopt(VIEW *v, int ac, char *av[]);
68 + extern int      sscanview(VIEW *vp, char *s);
69 + extern void     fprintview(VIEW *vp, FILE *fp);
70 + extern char     *viewopt(VIEW *vp);
71 + extern int      isview(char *s);
72 + extern int      viewfile(char *fname, VIEW *vp, RESOLU *rp);
73 +
74 +
75 + #ifdef __cplusplus
76 + }
77 + #endif
78 + #endif /* _RAD_VIEW_H_ */
79 +

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines