Merge branch 'blender2.7'
[blender.git] / source / blender / makesdna / DNA_lattice_types.h
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
17  * All rights reserved.
18  */
19
20 /** \file \ingroup DNA
21  */
22
23 #ifndef __DNA_LATTICE_TYPES_H__
24 #define __DNA_LATTICE_TYPES_H__
25
26 #include "DNA_defs.h"
27 #include "DNA_ID.h"
28
29 struct AnimData;
30 struct BPoint;
31 struct Ipo;
32 struct Key;
33 struct MDeformVert;
34
35 typedef struct EditLatt {
36         struct Lattice *latt;
37
38         int shapenr;
39
40         char pad[4];
41 } EditLatt;
42
43 typedef struct Lattice {
44         ID id;
45         struct AnimData *adt;
46
47         short pntsu, pntsv, pntsw, flag;
48         short opntsu, opntsv, opntsw, pad2;
49         char typeu, typev, typew, pad3;
50         /** Active element index, unset with LT_ACTBP_NONE. */
51         int actbp;
52
53         float fu, fv, fw, du, dv, dw;
54
55         struct BPoint *def;
56
57         /** Old animation system, deprecated for 2.5. */
58         struct Ipo *ipo  DNA_DEPRECATED;
59         struct Key *key;
60
61         struct MDeformVert *dvert;
62         /** Multiply the influence, MAX_VGROUP_NAME. */
63         char vgroup[64];
64
65         struct EditLatt *editlatt;
66         void *batch_cache;
67 } Lattice;
68
69 /* ***************** LATTICE ********************* */
70
71 /* flag */
72 #define LT_GRID         1
73 #define LT_OUTSIDE      2
74
75 #define LT_DS_EXPAND    4
76
77 #define LT_ACTBP_NONE   -1
78
79 #endif