Merging r50522 through r50572 from trunk into soc-2011-tomato
[blender.git] / source / blender / makesdna / DNA_view3d_types.h
index 6d4a845c5b083d147d82e899dd234e4cd11d85cc..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;
@@ -40,10 +39,12 @@ struct Tex;
 struct SpaceLink;
 struct Base;
 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
@@ -55,8 +56,10 @@ struct wmTimer;
 #define far clipend
 #endif
 
+#include "DNA_defs.h"
 #include "DNA_listBase.h"
 #include "DNA_image_types.h"
+#include "DNA_movieclip_types.h"
 
 /* ******************************** */
 
@@ -69,10 +72,12 @@ typedef struct BGpic {
 
        struct Image *ima;
        struct ImageUser iuser;
+       struct MovieClip *clip;
+       struct MovieClipUser cuser;
        float xof, yof, size, blend;
        short view;
        short flag;
-       float pad2;
+       short source, pad;
 } BGpic;
 
 /* ********************************* */
@@ -89,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];
 
@@ -99,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;
 
@@ -147,22 +154,28 @@ typedef struct View3D {
        int spacetype;
        float blockscale;
        short blockhandler[8];
-       
-       float viewquat[4], dist, pad1;  /* 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 */
+
+       char pad[6];
        
        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;
@@ -177,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;
@@ -200,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;
 
@@ -246,10 +259,14 @@ typedef struct View3D {
 
 /* View3d->flag2 (short) */
 #define V3D_RENDER_OVERRIDE            4
-#define V3D_SOLID_TEX                  8       /* deprecated */
+#define V3D_SOLID_TEX                  8
 #define V3D_DISPGP                             16
 #define V3D_LOCK_CAMERA                        32
 #define V3D_RENDER_SHADOW              64 /* This is a runtime only flag that's used to tell draw_mesh_object() that we're doing a shadow pass instead of a regular draw */
+#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
@@ -294,8 +311,24 @@ typedef struct View3D {
 /* #define V3D_CALC_MANIPULATOR        4 */ /*UNUSED*/
 
 /* BGPic->flag */
+/* 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 ?*/
-#define V3D_BGPIC_EXPANDED             2
+#define V3D_BGPIC_IMAGE                0
+#define V3D_BGPIC_MOVIE                1
 
 #define RV3D_CAMZOOM_MIN -30
 #define RV3D_CAMZOOM_MAX 600