|
Blender
V2.59
|
00001 /* 00002 * $Id: DNA_nla_types.h 34941 2011-02-17 20:48:12Z jesterking $ 00003 * 00004 * ***** BEGIN GPL LICENSE BLOCK ***** 00005 * 00006 * This program is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU General Public License 00008 * as published by the Free Software Foundation; either version 2 00009 * of the License, or (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with this program; if not, write to the Free Software Foundation, 00018 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00019 * 00020 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. 00021 * All rights reserved. 00022 * 00023 * The Original Code is: all of this file. 00024 * 00025 * Contributor(s): none yet. 00026 * 00027 * ***** END GPL LICENSE BLOCK ***** 00028 */ 00029 00030 #ifndef DNA_NLA_TYPES_H 00031 #define DNA_NLA_TYPES_H 00032 00037 #include "DNA_listBase.h" 00038 00039 struct bAction; 00040 struct Ipo; 00041 struct Object; 00042 00043 /* simple uniform modifier structure, assumed it can hold all type info */ 00044 typedef struct bActionModifier { 00045 struct bActionModifier *next, *prev; 00046 short type, flag; 00047 char channel[32]; 00048 00049 /* noise modifier */ 00050 float noisesize, turbul; 00051 short channels; 00052 00053 /* path deform modifier */ 00054 short no_rot_axis; 00055 struct Object *ob; 00056 } bActionModifier; 00057 00058 /* NLA-Modifier Types */ 00059 #define ACTSTRIP_MOD_DEFORM 0 00060 #define ACTSTRIP_MOD_NOISE 1 00061 #define ACTSTRIP_MOD_OOMPH 2 00062 00063 typedef struct bActionStrip { 00064 struct bActionStrip *next, *prev; 00065 short flag, mode; 00066 short stride_axis; /* axis 0=x, 1=y, 2=z */ 00067 short curmod; /* current modifier for buttons */ 00068 00069 struct Ipo *ipo; /* Blending ipo - was used for some old NAN era experiments. Non-functional currently. */ 00070 struct bAction *act; /* The action referenced by this strip */ 00071 struct Object *object; /* For groups, the actual object being nla'ed */ 00072 float start, end; /* The range of frames covered by this strip */ 00073 float actstart, actend; /* The range of frames taken from the action */ 00074 float actoffs; /* Offset within action, for cycles and striding */ 00075 float stridelen; /* The stridelength (considered when flag & ACT_USESTRIDE) */ 00076 float repeat; /* The number of times to repeat the action range */ 00077 float scale; /* The amount the action range is scaled by */ 00078 00079 float blendin, blendout; /* The number of frames on either end of the strip's length to fade in/out */ 00080 00081 char stridechannel[32]; /* Instead of stridelen, it uses an action channel */ 00082 char offs_bone[32]; /* if repeat, use this bone/channel for defining offset */ 00083 00084 ListBase modifiers; /* modifier stack */ 00085 } bActionStrip; 00086 00087 /* strip->mode (these defines aren't really used, but are here for reference) */ 00088 #define ACTSTRIPMODE_BLEND 0 00089 #define ACTSTRIPMODE_ADD 1 00090 00091 /* strip->flag */ 00092 typedef enum eActStrip_Flag { 00093 ACTSTRIP_SELECT = (1<<0), 00094 ACTSTRIP_USESTRIDE = (1<<1), 00095 ACTSTRIP_BLENDTONEXT = (1<<2), /* Not implemented. Is not used anywhere */ 00096 ACTSTRIP_HOLDLASTFRAME = (1<<3), 00097 ACTSTRIP_ACTIVE = (1<<4), 00098 ACTSTRIP_LOCK_ACTION = (1<<5), 00099 ACTSTRIP_MUTE = (1<<6), 00100 ACTSTRIP_REVERSE = (1<<7), /* This has yet to be implemented. To indicate that a strip should be played backwards */ 00101 ACTSTRIP_CYCLIC_USEX = (1<<8), 00102 ACTSTRIP_CYCLIC_USEY = (1<<9), 00103 ACTSTRIP_CYCLIC_USEZ = (1<<10), 00104 ACTSTRIP_AUTO_BLENDS = (1<<11) 00105 } eActStrip_Flag; 00106 00107 #endif 00108