diff options
Diffstat (limited to 'source/blender/makesdna/DNA_view3d_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_view3d_types.h | 149 |
1 files changed, 100 insertions, 49 deletions
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index b7b5f71c845..5cd78670e71 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -41,6 +41,8 @@ struct BoundBox; struct RenderInfo; struct RetopoViewData; struct bGPdata; +struct SmoothViewStore; +struct wmTimer; /* This is needed to not let VC choke on near and far... old * proprietary MS extensions... */ @@ -63,95 +65,123 @@ struct bGPdata; typedef struct BGpic { struct Image *ima; struct ImageUser iuser; - float xof, yof, size, zoom, blend; - short xim, yim; + float xof, yof, size, blend; } BGpic; /* ********************************* */ -/* 3D ViewPort Struct */ -typedef struct View3D { - struct SpaceLink *next, *prev; - int spacetype; - float blockscale; - struct ScrArea *area; +typedef struct RegionView3D { - short blockhandler[8]; - + float winmat[4][4]; float viewmat[4][4]; float viewinv[4][4]; float persmat[4][4]; float persinv[4][4]; + + /* local viewmat/persmat, multiplied with object matrix, while drawing */ + float viewmatob[4][4]; + float persmatob[4][4]; + + float viewquat[4], dist, zfac; /* zfac is initgrabz() result */ + float camdx, camdy; /* camera view offsets, 1.0 = viewplane moves entire width/height */ + float pixsize; + float ofs[3]; + short camzoom, viewbut; - float winmat1[4][4]; // persp(1) storage, for swap matrices - float viewmat1[4][4]; + int lastmode; /* for modal keymap switching, int because it stores notifier code */ - float viewquat[4], dist, zfac; /* zfac is initgrabz() result */ - int lay_used; /* used while drawing */ - + short rflag, viewlock; short persp; short view; + + /* user defined clipping planes */ + float clip[6][4]; + struct BoundBox *clipbb; + + struct bGPdata *gpd; /* Grease-Pencil Data (annotation layers) */ + + struct RegionView3D *localvd; + struct RenderInfo *ri; + struct RetopoViewData *retopo_view_data; + struct ViewDepths *depths; + + /* animated smooth view */ + struct SmoothViewStore *sms; + struct wmTimer *smooth_timer; + + /* last view */ + float lviewquat[4]; + short lpersp, lview; + int pad3; + +} RegionView3D; +/* 3D ViewPort Struct */ +typedef struct View3D { + struct SpaceLink *next, *prev; + ListBase regionbase; /* storage of regions for inactive spaces */ + int spacetype; + float blockscale; + short blockhandler[8]; + + float viewquat[4], dist, pad1; /* XXX depricated */ + + int lay_used; /* used while drawing */ + + short persp; /* XXX depricated */ + short view; /* XXX depricated */ + struct Object *camera, *ob_centre; struct BGpic *bgpic; struct View3D *localvd; - struct RenderInfo *ri; - struct RetopoViewData *retopo_view_data; - struct ViewDepths *depths; char ob_centre_bone[32]; /* optional string for armature bone to define center */ + int lay, layact; + /** * The drawing mode for the 3d display. Set to OB_WIRE, OB_SOLID, * OB_SHADED or OB_TEXTURE */ short drawtype; short localview; - int lay, layact; - short scenelock, around, camzoom; + short scenelock, around, pad3; + short flag, flag2; - char pivot_last, pad1; /* pivot_last is for rotating around the last edited element */ + short pivot_last; /* pivot_last is for rotating around the last edited element */ - float lens, grid, gridview, pixsize, near, far; - float camdx, camdy; /* camera view offsets, 1.0 = viewplane moves entire width/height */ - float ofs[3], cursor[3]; + float lens, grid, gridview, padf, near, far; + float ofs[3]; /* XXX depricated */ + float cursor[3]; - short gridlines, viewbut; + short gridlines, pad4; short gridflag; - short modeselect, menunr, texnr; + short gridsubdiv; /* Number of subdivisions in the grid between each highlighted grid line */ + short modeselect; + short keyflags; /* flags for display of keyframes */ /* transform widget info */ short twtype, twmode, twflag, twdrawflag; - float twmat[4][4]; - /* user defined clipping planes */ - float clip[4][4]; - - struct BoundBox *clipbb; + /* customdata flags from modes */ + unsigned int customdata_mask; /* afterdraw, for xray & transparent */ struct ListBase afterdraw; + /* drawflags, denoting state */ short zbuf, transp, xray; - short flag, flag2; - - short gridsubdiv; /* Number of subdivisions in the grid between each highlighted grid line */ - - short keyflags; /* flags for display of keyframes */ - - char ndofmode; /* mode of transform for 6DOF devices -1 not found, 0 normal, 1 fly, 2 ob transform */ - char ndoffilter; /*filter for 6DOF devices 0 normal, 1 dominant */ + char ndofmode; /* mode of transform for 6DOF devices -1 not found, 0 normal, 1 fly, 2 ob transform */ + char ndoffilter; /* filter for 6DOF devices 0 normal, 1 dominant */ void *properties_storage; /* Nkey panel stores stuff here, not in file */ + + /* XXX depricated? */ struct bGPdata *gpd; /* Grease-Pencil Data (annotation layers) */ - /* last view */ - float lviewquat[4]; - short lpersp, lview; - - short pad5, pad6; } View3D; +/* XXX this needs cleaning */ /* View3D->flag (short) */ #define V3D_MODE (16+32+64+128+256+512) @@ -169,14 +199,18 @@ typedef struct View3D { #define V3D_SELECT_OUTLINE 2048 #define V3D_ZBUF_SELECT 4096 #define V3D_GLOBAL_STATS 8192 -#define V3D_CLIPPING 16384 #define V3D_DRAW_CENTERS 32768 +/* RegionView3d->rflag */ +#define RV3D_FLYMODE 2 +#define RV3D_CLIPPING 4 + +/* RegionView3d->viewlock */ +#define RV3D_LOCKED 1 +#define RV3D_BOXVIEW 2 +#define RV3D_BOXCLIP 4 + /* View3d->flag2 (short) */ -#define V3D_MODE2 (32) -#define V3D_OPP_DIRECTION_NAME 1 -#define V3D_FLYMODE 2 -#define V3D_DEPRECATED 4 /* V3D_TRANSFORM_SNAP, moved to a scene setting */ #define V3D_SOLID_TEX 8 #define V3D_DISPGP 16 @@ -187,6 +221,23 @@ typedef struct View3D { #define V3D_LOCAL 2 #define V3D_ACTIVE 4 +/*View3D view types*/ +#define V3D_VIEW_FRONT 1 +#define V3D_VIEW_BACK 2 +#define V3D_VIEW_LEFT 3 +#define V3D_VIEW_RIGHT 4 +#define V3D_VIEW_TOP 5 +#define V3D_VIEW_BOTTOM 6 +#define V3D_VIEW_PERSPORTHO 7 +#define V3D_VIEW_CAMERA 8 +#define V3D_VIEW_STEPLEFT 9 +#define V3D_VIEW_STEPRIGHT 10 +#define V3D_VIEW_STEPDOWN 11 +#define V3D_VIEW_STEPUP 12 +#define V3D_VIEW_PANLEFT 13 +#define V3D_VIEW_PANRIGHT 14 +#define V3D_VIEW_PANDOWN 15 +#define V3D_VIEW_PANUP 16 /* View3d->persp */ #define V3D_ORTHO 0 |