Wow! A new feature!
[blender.git] / source / blender / makesdna / DNA_modifier_types.h
1 /**
2  * $Id$ 
3  */
4
5 #ifndef DNA_MODIFIER_TYPES_H
6 #define DNA_MODIFIER_TYPES_H
7
8 typedef enum ModifierType {
9         eModifierType_None = 0,
10         eModifierType_Subsurf,
11         eModifierType_Lattice,
12         eModifierType_Curve,
13         eModifierType_Build,
14         eModifierType_Mirror,
15
16         NUM_MODIFIER_TYPES
17 } ModifierType;
18
19         /* These numerical values are explicitly chosen so that 
20          * (mode&1) is true for realtime calc and (mode&2) is true
21          * for render calc.
22          */
23 typedef enum ModifierMode {
24         eModifierMode_Disabled = 0,
25         eModifierMode_OnlyRealtime = 1,
26         eModifierMode_OnlyRender = 2,
27         eModifierMode_RealtimeAndRender = 3,
28 } ModifierMode;
29
30 typedef struct ModifierData {
31         struct ModifierData *next, *prev;
32
33         int type, mode;
34 } ModifierData;
35
36 typedef struct SubsurfModifierData {
37         ModifierData modifier;
38
39         short subdivType, levels, renderLevels, pad;
40 } SubsurfModifierData;
41
42 typedef struct LatticeModifierData {
43         ModifierData modifier;
44
45         struct Object *object;
46 } LatticeModifierData;
47
48 typedef struct CurveModifierData {
49         ModifierData modifier;
50
51         struct Object *object;
52 } CurveModifierData;
53
54 typedef struct BuildModifierData {
55         ModifierData modifier;
56
57         float start, length;
58         int randomize, seed;
59 } BuildModifierData;
60
61 typedef struct MirrorModifierData {
62         ModifierData modifier;
63
64         int axis;
65         float tolerance;
66 } MirrorModifierData;
67
68 #endif