/** * $Id:$ * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** * * The contents of this file may be used under the terms of either the GNU * General Public License Version 2 or later (the "GPL", see * http://www.gnu.org/licenses/gpl.html ), or the Blender License 1.0 or * later (the "BL", see http://www.blender.org/BL/ ) which has to be * bought from the Blender Foundation to become active, in which case the * above mentioned GPL option does not apply. * * The Original Code is Copyright (C) 2002 by NaN Holding BV. * All rights reserved. * * The Original Code is: all of this file. * * Contributor(s): none yet. * * ***** END GPL/BL DUAL LICENSE BLOCK ***** */ /* group.h sept 2000 * * * */ #ifndef GROUP_H #define GROUP_H typedef struct GroupKey { struct GroupKey *next, *prev; short sfra, efra; float cfra; char name[32]; } GroupKey; typedef struct ObjectKey { struct ObjectKey *next, *prev; GroupKey *gkey; /* for reference */ /* copy of relevant data */ short partype, pad; int par1, par2, par3; struct Object *parent, *track; struct Ipo *ipo; /* this block identical to object */ float loc[3], dloc[3], orig[3]; float size[3], dsize[3]; float rot[3], drot[3]; float quat[4], dquat[4]; float obmat[4][4]; float parentinv[4][4]; float imat[4][4]; /* voor bij render, tijdens simulate, tijdelijk: ipokeys van transform */ unsigned int lay; /* kopie van Base */ char transflag, ipoflag; char trackflag, upflag; float sf, ctime, padf; } ObjectKey; typedef struct GroupObject { struct GroupObject *next, *prev; Object *ob; ListBase okey; /* ObjectKey */ } GroupObject; typedef struct Group { ID id; ListBase gobject; /* GroupObject */ ListBase gkey; /* GroupKey */ GroupKey *active; } Group; extern void free_group(Group *group); extern Group *add_group(); extern void add_to_group(Group *group, Object *ob); extern void add_group_key(Group *group); extern Group *find_group(Object *ob); extern void rem_from_group(Group *group, Object *ob); extern void set_group_key(Group *group); extern void prev_group_key(Group *group); extern void next_group_key(Group *group); extern void set_group_key_name(Group *group, char *name); extern void set_group_key_frame(Group *group, float frame); #endif /* GROUP_H */