f713910147620c4a3494473a00eafcba17a56c09
[blender.git] / source / blender / makesdna / DNA_group_types.h
1 /**
2  * blenlib/DNA_group_types.h (mar-2001 nzc)
3  *      
4  * $Id$ 
5  *
6  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version. The Blender
12  * Foundation also sells licenses for use in proprietary software under
13  * the Blender License.  See http://www.blender.org/BL/ for information
14  * about this.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software Foundation,
23  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
24  *
25  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
26  * All rights reserved.
27  *
28  * The Original Code is: all of this file.
29  *
30  * Contributor(s): none yet.
31  *
32  * ***** END GPL/BL DUAL LICENSE BLOCK *****
33  */
34 #ifndef DNA_GROUP_TYPES_H
35 #define DNA_GROUP_TYPES_H
36
37 #include "DNA_listBase.h"
38 #include "DNA_ID.h"
39
40 struct Object;
41 struct Ipo;
42
43 typedef struct GroupKey {
44         struct GroupKey *next, *prev;
45         short sfra, efra;
46         float cfra;
47         char name[32];
48 } GroupKey;
49
50 typedef struct ObjectKey {
51         struct ObjectKey *next, *prev;
52         GroupKey *gkey;         /* for reference */
53
54         /* copy of relevant data */
55         short partype, pad;
56         int par1, par2, par3;
57         
58         struct Object *parent, *track;
59         struct Ipo *ipo;
60
61         /* this block identical to object */    
62         float loc[3], dloc[3], orig[3];
63         float size[3], dsize[3];
64         float rot[3], drot[3];
65         float quat[4], dquat[4];
66         float obmat[4][4];
67         float parentinv[4][4];
68         float imat[4][4];       /* voor bij render, tijdens simulate, tijdelijk: ipokeys van transform  */
69         
70         unsigned int lay;                               /* kopie van Base */
71         
72         char transflag, ipoflag;
73         char trackflag, upflag;
74         
75         float sf, ctime, padf;
76                 
77
78 } ObjectKey;
79
80 typedef struct GroupObject {
81         struct GroupObject *next, *prev;
82         struct Object *ob;
83         ListBase okey;          /* ObjectKey */
84         
85 } GroupObject;
86
87
88 typedef struct Group {
89         ID id;
90         
91         ListBase gobject;       /* GroupObject */
92         ListBase gkey;          /* GroupKey */
93         
94         GroupKey *active;
95         
96 } Group;
97
98 #endif
99