remove/comment unused defines.
[blender.git] / source / blender / makesdna / DNA_view3d_types.h
1 /**
2  * blenlib/DNA_view3d_types.h (mar-2001 nzc)
3  *
4  * $Id$ 
5  *
6  * ***** BEGIN GPL LICENSE BLOCK *****
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23  * All rights reserved.
24  *
25  * The Original Code is: all of this file.
26  *
27  * Contributor(s): none yet.
28  *
29  * ***** END GPL LICENSE BLOCK *****
30  */
31 #ifndef DNA_VIEW3D_TYPES_H
32 #define DNA_VIEW3D_TYPES_H
33
34 struct ViewDepths;
35 struct Object;
36 struct Image;
37 struct Tex;
38 struct SpaceLink;
39 struct Base;
40 struct BoundBox;
41 struct RenderInfo;
42 struct RetopoViewData;
43 struct bGPdata;
44 struct SmoothViewStore;
45 struct wmTimer;
46
47 /* This is needed to not let VC choke on near and far... old
48  * proprietary MS extensions... */
49 #ifdef WIN32
50 #undef near
51 #undef far
52 #define near clipsta
53 #define far clipend
54 #endif
55
56 #include "DNA_listBase.h"
57 #include "DNA_image_types.h"
58
59 /* ******************************** */
60
61 /* The near/far thing is a Win EXCEPTION. Thus, leave near/far in the
62  * code, and patch for windows. */
63  
64 /* Background Picture in 3D-View */
65 typedef struct BGpic {
66         struct BGpic *next, *prev;
67
68         struct Image *ima;
69         struct ImageUser iuser;
70         float xof, yof, size, blend;
71         short view;
72         short flag;
73         float pad2;
74 } BGpic;
75
76 /* ********************************* */
77
78 typedef struct RegionView3D {
79         
80         float winmat[4][4];                     /* GL_PROJECTION matrix */
81         float viewmat[4][4];            /* GL_MODELVIEW matrix */
82         float viewinv[4][4];            /* inverse of viewmat */
83         float persmat[4][4];            /* viewmat*winmat */
84         float persinv[4][4];            /* inverse of persmat */
85
86         /* viewmat/persmat multiplied with object matrix, while drawing and selection */
87         float viewmatob[4][4];
88         float persmatob[4][4];
89
90         /* transform widget matrix */
91         float twmat[4][4];
92
93         float viewquat[4];                      /* view rotation, must be kept normalized */
94         float dist;                                     /* distance from 'ofs' along -viewinv[2] vector, where result is negative as is 'ofs' */
95         float zfac;                                     /* initgrabz() result */
96         float camdx, camdy;                     /* camera view offsets, 1.0 = viewplane moves entire width/height */
97         float pixsize;                          /* runtime only */
98         float ofs[3];                           /* view center & orbit pivot, negative of worldspace location */
99         short camzoom;
100         short twdrawflag;
101         int pad;
102         
103         short rflag, viewlock;
104         short persp;
105         short view;
106         
107         /* user defined clipping planes */
108         float clip[6][4];
109         float clip_local[6][4]; /* clip in object space, means we can test for clipping in editmode without first going into worldspace */
110         struct BoundBox *clipbb;        
111         
112         struct bGPdata *gpd;            /* Grease-Pencil Data (annotation layers) */
113         
114         struct RegionView3D *localvd;
115         struct RenderInfo *ri;
116         struct RetopoViewData *retopo_view_data;
117         struct ViewDepths *depths;
118         
119         /* animated smooth view */
120         struct SmoothViewStore *sms;
121         struct wmTimer *smooth_timer;
122         
123         /* last view */
124         float lviewquat[4];
125         short lpersp, lview; /* lpersp can never be set to 'RV3D_CAMOB' */
126         float gridview;
127         
128         float twangle[3];
129
130         float padf;
131
132 } RegionView3D;
133
134 /* 3D ViewPort Struct */
135 typedef struct View3D {
136         struct SpaceLink *next, *prev;
137         ListBase regionbase;            /* storage of regions for inactive spaces */
138         int spacetype;
139         float blockscale;
140         short blockhandler[8];
141         
142         float viewquat[4], dist, pad1;  /* XXX depricated */
143         
144         unsigned int lay_used; /* used while drawing */
145         
146         short persp;    /* XXX depricated */
147         short view;     /* XXX depricated */
148         
149         struct Object *camera, *ob_centre;
150
151         struct ListBase bgpicbase;
152         struct BGpic *bgpic; /* deprecated, use bgpicbase, only kept for do_versions(...) */
153
154         struct View3D *localvd;
155         
156         char ob_centre_bone[32];                /* optional string for armature bone to define center */
157         
158         unsigned int lay;
159         int layact;
160         
161         /**
162          * The drawing mode for the 3d display. Set to OB_WIRE, OB_SOLID,
163          * OB_SHADED or OB_TEXTURE */
164         short drawtype;
165         short ob_centre_cursor;         /* optional bool for 3d cursor to define center */
166         short scenelock, around, pad3;
167         short flag, flag2;
168         
169         short pivot_last; /* pivot_last is for rotating around the last edited element */
170         
171         float lens, grid;
172         float gridview; /* XXX deprecated, now in RegionView3D */
173         float near, far;
174         float ofs[3];                   /* XXX deprecated */
175         float cursor[3];
176
177         short gridlines, pad4;
178         short gridflag;
179         short gridsubdiv;       /* Number of subdivisions in the grid between each highlighted grid line */
180         short modeselect;
181         short keyflags;         /* flags for display of keyframes */
182         
183         /* transform widget info */
184         short twtype, twmode, twflag;
185         short twdrawflag; /* XXX deprecated */
186         
187         /* afterdraw, for xray & transparent */
188         struct ListBase afterdraw_transp;
189         struct ListBase afterdraw_xray;
190         struct ListBase afterdraw_xraytransp;
191         
192         /* drawflags, denoting state */
193         short zbuf, transp, xray;
194
195         char ndofmode;                  /* mode of transform for 6DOF devices -1 not found, 0 normal, 1 fly, 2 ob transform */
196         char ndoffilter;                /* filter for 6DOF devices 0 normal, 1 dominant */
197         
198         void *properties_storage;       /* Nkey panel stores stuff here, not in file */
199         
200         /* XXX depricated? */
201         struct bGPdata *gpd;            /* Grease-Pencil Data (annotation layers) */
202
203 } View3D;
204
205
206 /* View3D->flag (short) */
207 #define V3D_DISPIMAGE           1
208 #define V3D_DISPBGPICS          2
209 #define V3D_HIDE_HELPLINES      4
210 #define V3D_INVALID_BACKBUF     8
211
212 #define V3D_ALIGN                       1024
213 #define V3D_SELECT_OUTLINE      2048
214 #define V3D_ZBUF_SELECT         4096
215 #define V3D_GLOBAL_STATS        8192
216 #define V3D_DRAW_CENTERS        32768
217
218 /* RegionView3d->persp */
219 #define RV3D_ORTHO                              0
220 #define RV3D_PERSP                              1
221 #define RV3D_CAMOB                              2
222
223 /* RegionView3d->rflag */
224 #define RV3D_CLIPPING                           4
225 #define RV3D_NAVIGATING                         8
226 #define RV3D_GPULIGHT_UPDATE            16
227
228 /* RegionView3d->viewlock */
229 #define RV3D_LOCKED                     1
230 #define RV3D_BOXVIEW            2
231 #define RV3D_BOXCLIP            4
232
233 /* RegionView3d->view */
234 #define RV3D_VIEW_FRONT          1
235 #define RV3D_VIEW_BACK                   2
236 #define RV3D_VIEW_LEFT                   3
237 #define RV3D_VIEW_RIGHT          4
238 #define RV3D_VIEW_TOP                    5
239 #define RV3D_VIEW_BOTTOM                 6
240 #define RV3D_VIEW_PERSPORTHO     7
241 #define RV3D_VIEW_CAMERA                 8
242
243 /* View3d->flag2 (short) */
244 #define V3D_RENDER_OVERRIDE             4
245 #define V3D_SOLID_TEX                   8
246 #define V3D_DISPGP                              16
247
248 /* View3D->around */
249 #define V3D_CENTER               0
250 #define V3D_CENTROID     3
251 #define V3D_CURSOR               1
252 #define V3D_LOCAL                2
253 #define V3D_ACTIVE               4
254
255 /*View3D types (only used in tools, not actually saved)*/
256 #define V3D_VIEW_STEPLEFT                1
257 #define V3D_VIEW_STEPRIGHT               2
258 #define V3D_VIEW_STEPDOWN                3
259 #define V3D_VIEW_STEPUP          4
260 #define V3D_VIEW_PANLEFT                 5
261 #define V3D_VIEW_PANRIGHT                6
262 #define V3D_VIEW_PANDOWN                 7
263 #define V3D_VIEW_PANUP                   8
264
265 /* View3d->gridflag */
266 #define V3D_SHOW_FLOOR                  1
267 #define V3D_SHOW_X                              2
268 #define V3D_SHOW_Y                              4
269 #define V3D_SHOW_Z                              8
270
271 /* View3d->twtype (bits, we can combine them) */
272 #define V3D_MANIP_TRANSLATE             1
273 #define V3D_MANIP_ROTATE                2
274 #define V3D_MANIP_SCALE                 4
275
276 /* View3d->twmode */
277 #define V3D_MANIP_GLOBAL                0
278 #define V3D_MANIP_LOCAL                 1
279 #define V3D_MANIP_NORMAL                2
280 #define V3D_MANIP_VIEW                  3
281 #define V3D_MANIP_GIMBAL                4
282 #define V3D_MANIP_CUSTOM                5 /* anything of value 5 or higher is custom */
283
284 /* View3d->twflag */
285    /* USE = user setting, DRAW = based on selection */
286 #define V3D_USE_MANIPULATOR             1
287 #define V3D_DRAW_MANIPULATOR    2
288 #define V3D_CALC_MANIPULATOR    4
289
290 /* BGPic->flag */
291 /* may want to use 1 for select ?*/
292 #define V3D_BGPIC_EXPANDED              2
293
294 #define RV3D_CAMZOOM_MIN -30
295 #define RV3D_CAMZOOM_MAX 600
296
297 #endif
298
299