Merging r50522 through r50572 from trunk into soc-2011-tomato
[blender.git] / source / blender / makesdna / DNA_view3d_types.h
index 28bac32db505b3394d806329e9c5ec964535973d..9da10381af04063e2b2fc8684a68a11675b70548 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * $Id$ 
- *
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program is free software; you can redistribute it and/or
  *
  * ***** END GPL LICENSE BLOCK *****
  */
-#ifndef DNA_VIEW3D_TYPES_H
-#define DNA_VIEW3D_TYPES_H
 
 /** \file DNA_view3d_types.h
  *  \ingroup DNA
  */
 
+#ifndef __DNA_VIEW3D_TYPES_H__
+#define __DNA_VIEW3D_TYPES_H__
+
 struct ViewDepths;
 struct Object;
 struct Image;
@@ -43,8 +42,9 @@ struct BoundBox;
 struct MovieClip;
 struct MovieClipUser;
 struct RenderInfo;
+struct RenderEngine;
 struct bGPdata;
-struct SmoothViewStore;
+struct SmoothView3DStore;
 struct wmTimer;
 
 /* This is needed to not let VC choke on near and far... old
@@ -56,6 +56,7 @@ struct wmTimer;
 #define far clipend
 #endif
 
+#include "DNA_defs.h"
 #include "DNA_listBase.h"
 #include "DNA_image_types.h"
 #include "DNA_movieclip_types.h"
@@ -93,6 +94,24 @@ typedef struct RegionView3D {
        float viewmatob[4][4];
        float persmatob[4][4];
 
+
+       /* user defined clipping planes */
+       float clip[6][4];
+       float clip_local[6][4]; /* clip in object space, means we can test for clipping in editmode without first going into worldspace */
+       struct BoundBox *clipbb;
+
+       struct bGPdata *gpd;            /* Grease-Pencil Data (annotation layers) */
+
+       struct RegionView3D *localvd; /* allocated backup of its self while in localview */
+       struct RenderInfo *ri;
+       struct RenderEngine *render_engine;
+       struct ViewDepths *depths;
+
+       /* animated smooth view */
+       struct SmoothView3DStore *sms;
+       struct wmTimer *smooth_timer;
+
+
        /* transform widget matrix */
        float twmat[4][4];
 
@@ -103,43 +122,28 @@ typedef struct RegionView3D {
        float pixsize;                          /* runtime only */
        float ofs[3];                           /* view center & orbit pivot, negative of worldspace location,
                                                                 * also matches -viewinv[3][0:3] in ortho mode.*/
-       short camzoom;                          /* viewport zoom on the camera frame, see BKE_screen_view3d_zoom_to_fac */
-       short twdrawflag;
+       float camzoom;                          /* viewport zoom on the camera frame, see BKE_screen_view3d_zoom_to_fac */
        char is_persp;                          /* check if persp/ortho view, since 'persp' cant be used for this since
                                                                 * it can have cameras assigned as well. (only set in setwinmatrixview3d) */
-       char pad[3];
-       
-       short rflag, viewlock;
-       short persp;
-       short view;
-       
-       /* user defined clipping planes */
-       float clip[6][4];
-       float clip_local[6][4]; /* clip in object space, means we can test for clipping in editmode without first going into worldspace */
-       struct BoundBox *clipbb;        
-       
-       struct bGPdata *gpd;            /* Grease-Pencil Data (annotation layers) */
-       
-       struct RegionView3D *localvd; /* allocated backup of its self while in localview */
-       struct RenderInfo *ri;
-       struct ViewDepths *depths;
-       
-       /* animated smooth view */
-       struct SmoothViewStore *sms;
-       struct wmTimer *smooth_timer;
+       char persp;
+       char view;
+       char viewlock;
+
+       short twdrawflag;
+       short rflag;
        
-       /* last view */
+
+       /* last view (use when switching out of camera view) */
        float lviewquat[4];
        short lpersp, lview; /* lpersp can never be set to 'RV3D_CAMOB' */
+
        float gridview;
-       
        float twangle[3];
 
+
        /* active rotation from NDOF or elsewhere */
        float rot_angle;
        float rot_axis[3];
-       
-       char pad2[4];
 
 } RegionView3D;
 
@@ -150,8 +154,9 @@ typedef struct View3D {
        int spacetype;
        float blockscale;
        short blockhandler[8];
-       
-       float viewquat[4], dist;        /* XXX depricated */
+
+       float viewquat[4]  DNA_DEPRECATED;
+       float dist         DNA_DEPRECATED;
 
        float bundle_size;                      /* size of bundles in reconstructed data */
        short bundle_drawtype;          /* display style for bundle */
@@ -160,24 +165,24 @@ typedef struct View3D {
        
        unsigned int lay_used; /* used while drawing */
        
-       short persp;    /* XXX depricated */
-       short view;     /* XXX depricated */
+       short persp  DNA_DEPRECATED;
+       short view   DNA_DEPRECATED;
        
        struct Object *camera, *ob_centre;
 
        struct ListBase bgpicbase;
-       struct BGpic *bgpic; /* deprecated, use bgpicbase, only kept for do_versions(...) */
+       struct BGpic *bgpic  DNA_DEPRECATED; /* deprecated, use bgpicbase, only kept for do_versions(...) */
 
        struct View3D *localvd; /* allocated backup of its self while in localview */
        
-       char ob_centre_bone[32];                /* optional string for armature bone to define center */
+       char ob_centre_bone[64];                /* optional string for armature bone to define center, MAXBONENAME */
        
        unsigned int lay;
        int layact;
        
        /**
-        * The drawing mode for the 3d display. Set to OB_WIRE, OB_SOLID,
-        * OB_SHADED or OB_TEXTURE */
+        * The drawing mode for the 3d display. Set to OB_BOUNDBOX, OB_WIRE, OB_SOLID,
+        * OB_TEXTURE, OB_MATERIAL or OB_RENDER */
        short drawtype;
        short ob_centre_cursor;         /* optional bool for 3d cursor to define center */
        short scenelock, around;
@@ -185,7 +190,7 @@ typedef struct View3D {
        
        float lens, grid;
        float near, far;
-       float ofs[3];                   /* XXX deprecated */
+       float ofs[3]  DNA_DEPRECATED;                   /* XXX deprecated */
        float cursor[3];
 
        short modeselect;
@@ -208,8 +213,8 @@ typedef struct View3D {
 
        void *properties_storage;       /* Nkey panel stores stuff here (runtime only!) */
 
-       /* XXX depricated? */
-       struct bGPdata *gpd;            /* Grease-Pencil Data (annotation layers) */
+       /* XXX deprecated? */
+       struct bGPdata *gpd  DNA_DEPRECATED;            /* Grease-Pencil Data (annotation layers) */
 
 } View3D;
 
@@ -261,6 +266,7 @@ typedef struct View3D {
 #define V3D_SHOW_RECONSTRUCTION                128
 #define V3D_SHOW_CAMERAPATH            256
 #define V3D_SHOW_BUNDLENAME            512
+#define V3D_BACKFACE_CULLING   1024
 
 /* View3D->around */
 #define V3D_CENTER              0
@@ -305,8 +311,19 @@ typedef struct View3D {
 /* #define V3D_CALC_MANIPULATOR        4 */ /*UNUSED*/
 
 /* BGPic->flag */
-/* may want to use 1 for select ?*/
-#define V3D_BGPIC_EXPANDED             2
+/* may want to use 1 for select ? */
+enum {
+       V3D_BGPIC_EXPANDED      = (1 << 1),
+       V3D_BGPIC_CAMERACLIP    = (1 << 2),
+       V3D_BGPIC_DISABLED      = (1 << 3),
+       V3D_BGPIC_FOREGROUND    = (1 << 4),
+
+       /* Camera framing options */
+       V3D_BGPIC_CAMERA_ASPECT = (1 << 5),  /* don't stretch to fit the camera view  */
+       V3D_BGPIC_CAMERA_CROP   = (1 << 6)   /* crop out the image */
+};
+
+#define V3D_BGPIC_EXPANDED (V3D_BGPIC_EXPANDED | V3D_BGPIC_CAMERACLIP)
 
 /* BGPic->source */
 /* may want to use 1 for select ?*/