Blender  V2.93
DNA_nla_types.h
Go to the documentation of this file.
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 
24 #pragma once
25 
26 #include "DNA_listBase.h"
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 struct Ipo;
33 struct Object;
34 struct bAction;
35 
36 /* simple uniform modifier structure, assumed it can hold all type info */
37 typedef struct bActionModifier {
39  short type, flag;
40  char channel[32];
41 
42  /* noise modifier */
43  float noisesize, turbul;
44  short channels;
45 
46  /* path deform modifier */
47  short no_rot_axis;
48  struct Object *ob;
50 
51 /* NLA-Modifier Types (UNUSED) */
52 // #define ACTSTRIP_MOD_DEFORM 0
53 // #define ACTSTRIP_MOD_NOISE 1
54 
55 typedef struct bActionStrip {
56  struct bActionStrip *next, *prev;
57  short flag, mode;
59  short stride_axis;
61  short curmod;
62 
64  struct Ipo *ipo;
66  struct bAction *act;
68  struct Object *object;
70  float start, end;
72  float actstart, actend;
74  float actoffs;
76  float stridelen;
78  float repeat;
80  float scale;
81 
83  float blendin, blendout;
84 
86  char stridechannel[32];
88  char offs_bone[32];
89 
93 
94 /* strip->mode (these defines aren't really used, but are here for reference) */
95 #define ACTSTRIPMODE_BLEND 0
96 #define ACTSTRIPMODE_ADD 1
97 
98 /* strip->flag */
99 typedef enum eActStrip_Flag {
100  ACTSTRIP_SELECT = (1 << 0),
101  ACTSTRIP_USESTRIDE = (1 << 1),
102  /* Not implemented. Is not used anywhere */
103  /* ACTSTRIP_BLENDTONEXT = (1 << 2), */ /* UNUSED */
105  ACTSTRIP_ACTIVE = (1 << 4),
107  ACTSTRIP_MUTE = (1 << 6),
108  /* This has yet to be implemented. To indicate that a strip should be played backwards */
109  ACTSTRIP_REVERSE = (1 << 7),
110  ACTSTRIP_AUTO_BLENDS = (1 << 11),
112 
113 #ifdef __cplusplus
114 }
115 #endif
These structs are the foundation for all linked lists in the library system.
struct bActionModifier bActionModifier
struct bActionStrip bActionStrip
eActStrip_Flag
Definition: DNA_nla_types.h:99
@ ACTSTRIP_ACTIVE
@ ACTSTRIP_MUTE
@ ACTSTRIP_SELECT
@ ACTSTRIP_REVERSE
@ ACTSTRIP_LOCK_ACTION
@ ACTSTRIP_HOLDLASTFRAME
@ ACTSTRIP_AUTO_BLENDS
@ ACTSTRIP_USESTRIDE
struct Object * ob
Definition: DNA_nla_types.h:48
struct bActionModifier * next
Definition: DNA_nla_types.h:38
struct bActionModifier * prev
Definition: DNA_nla_types.h:38
char channel[32]
Definition: DNA_nla_types.h:40
struct Object * object
Definition: DNA_nla_types.h:68
struct Ipo * ipo
Definition: DNA_nla_types.h:64
struct bAction * act
Definition: DNA_nla_types.h:66
char stridechannel[32]
Definition: DNA_nla_types.h:86
struct bActionStrip * next
Definition: DNA_nla_types.h:56
char offs_bone[32]
Definition: DNA_nla_types.h:88
ListBase modifiers
Definition: DNA_nla_types.h:91
short stride_axis
Definition: DNA_nla_types.h:59
struct bActionStrip * prev
Definition: DNA_nla_types.h:56