Merging r50522 through r50572 from trunk into soc-2011-tomato
[blender.git] / source / blender / makesdna / DNA_view3d_types.h
index ae026b0bcc909f9a1c681e1bfb51ad47bc58a7ab..9da10381af04063e2b2fc8684a68a11675b70548 100644 (file)
@@ -29,8 +29,8 @@
  *  \ingroup DNA
  */
 
-#ifndef DNA_VIEW3D_TYPES_H
-#define DNA_VIEW3D_TYPES_H
+#ifndef __DNA_VIEW3D_TYPES_H__
+#define __DNA_VIEW3D_TYPES_H__
 
 struct ViewDepths;
 struct Object;
@@ -44,7 +44,7 @@ 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
@@ -94,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];
 
@@ -104,44 +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 RenderEngine *render_engine;
-       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;
 
@@ -173,7 +175,7 @@ typedef struct View3D {
 
        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;
@@ -264,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
@@ -308,10 +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
-#define V3D_BGPIC_CAMERACLIP   4
-#define V3D_BGPIC_DISABLED             8
+/* 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 ?*/