Initial revision
[blender.git] / source / blender / makesdna / DNA_action_types.h
1 /*  DNA_action_types.h   May 2001
2  *  
3  *  support for the "action" datatype
4  *
5  *      Reevan McKay
6  *
7  * $Id$
8  *
9  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version. The Blender
15  * Foundation also sells licenses for use in proprietary software under
16  * the Blender License.  See http://www.blender.org/BL/ for information
17  * about this.
18  *
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License
25  * along with this program; if not, write to the Free Software Foundation,
26  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
27  *
28  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
29  * All rights reserved.
30  *
31  * The Original Code is: all of this file.
32  *
33  * Contributor(s): none yet.
34  *
35  * ***** END GPL/BL DUAL LICENSE BLOCK *****
36  */
37
38
39 #ifndef DNA_ACTION_TYPES_H
40 #define DNA_ACTION_TYPES_H
41
42 #include "DNA_listBase.h"
43 #include "DNA_ID.h"
44 #include "DNA_view2d_types.h"
45
46 struct SpaceLink;
47
48 typedef struct bPoseChannel{
49         struct bPoseChannel     *next, *prev;
50         ListBase                        constraints;
51         int                                     flag;
52         float loc[3];
53         float size[3];
54         float quat[4];
55         float obmat[4][4];
56         char                            name[32];       /* Channels need longer names than normal blender objects */
57         int                                     reserved1;
58 } bPoseChannel;
59
60
61 typedef struct bPose{
62         ListBase                        chanbase;
63 } bPose;
64
65 typedef struct bActionChannel {
66         struct bActionChannel   *next, *prev;
67         struct Ipo                              *ipo;
68         ListBase                                constraintChannels;
69         int             flag;
70         char    name[32];               /* Channel name */
71         int             reserved1;
72
73 } bActionChannel;
74
75 typedef struct bAction {
76         ID                              id;
77         ListBase                chanbase;       /* Channels in this action */
78         bActionChannel  *achan;         /* Current action channel */
79         bPoseChannel    *pchan;         /* Current pose channel */
80 } bAction;
81
82 typedef struct SpaceAction {
83         struct SpaceLink *next, *prev;
84         int spacetype, pad;
85         struct ScrArea *area;
86
87         View2D v2d;     
88         bAction         *action;
89         int     flag;
90         short pin, reserved1;
91         short   actnr;
92         short   lock;
93         int pad2;
94 } SpaceAction;
95
96 /* Action Channel flags */
97 #define ACHAN_SELECTED  0x00000001
98 #define ACHAN_HILIGHTED 0x00000002
99
100
101 #endif
102