diff options
Diffstat (limited to 'source/blender/makesdna/DNA_view3d_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_view3d_types.h | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h new file mode 100644 index 00000000000..3dbe3978b15 --- /dev/null +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -0,0 +1,127 @@ +/** + * blenlib/DNA_view3d_types.h (mar-2001 nzc) + * + * $Id$ + * + * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL/BL DUAL LICENSE BLOCK ***** + */ +#ifndef DNA_VIEW3D_TYPES_H +#define DNA_VIEW3D_TYPES_H + +struct Object; +struct Image; +struct Tex; +struct SpaceLink; + +/* This is needed to not let VC choke on near and far... old + * proprietary MS extensions... */ +#ifdef WIN32 +#undef near +#undef far +#define near clipsta +#define far clipend +#endif + +/* The near/far thing is a Win EXCEPTION. Thus, leave near/far in the + * code, and patch for windows. */ + +typedef struct BGpic { + struct Image *ima; + struct Tex *tex; + float xof, yof, size, zoom, blend; + short xim, yim; + unsigned int *rect; +} BGpic; + +typedef struct View3D { + struct SpaceLink *next, *prev; + int spacetype, pad; + struct ScrArea *area; + + float viewmat[4][4]; + float viewinv[4][4]; + float persmat[4][4]; + float persinv[4][4]; + float viewquat[4], dist; + + /** + * 0 - ortho + * 1 - do 3d perspective + * 2 - use the camera + */ + short persp; + short view; + + struct Object *camera; + struct BGpic *bgpic; + struct View3D *localvd; + + /** + * The drawing mode for the 3d display. Set to OB_WIRE, OB_SOLID, + * OB_SHADED or OB_TEXTURED */ + short drawtype; + short localview; + int lay, layact; + short scenelock, around, camzoom, flag; + + float lens, grid, near, far; + float ofs[3], cursor[3]; + + short mx, my; /* moeten achter elkaar blijven staan ivm als pointer doorgeven */ + short mxo, myo; + + short gridlines, viewbut; + int pad2, pad3; +} View3D; + +/* View3D->flag */ +#define V3D_MODE (16+32+64+128+256+512) +#define V3D_DISPIMAGE 1 +#define V3D_DISPBGPIC 2 +#define V3D_SETUPBUTS 4 +#define V3D_NEEDBACKBUFDRAW 8 +#define V3D_EDITMODE 16 +#define V3D_VERTEXPAINT 32 +#define V3D_FACESELECT 64 +#define V3D_POSEMODE 128 +#define V3D_TEXTUREPAINT 256 +#define V3D_WEIGHTPAINT 512 + +/* View3D->around */ +#define V3D_CENTRE 0 +#define V3D_CENTROID 3 +#define V3D_CURSOR 1 +#define V3D_LOCAL 2 + +/* View3d->persp */ +#define V3D_PERSP_ORTHO 0 +#define V3D_PERSP_DO_3D_PERSP 1 +#define V3D_PERSP_USE_THE_CAMERA 2 + +#endif |