Blender V2.61 - r43446
|
00001 /* 00002 * ***** BEGIN GPL LICENSE BLOCK ***** 00003 * 00004 * This program is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU General Public License 00006 * as published by the Free Software Foundation; either version 2 00007 * of the License, or (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software Foundation, 00016 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00017 * 00018 * The Original Code is Copyright (C) 2009 Blender Foundation. 00019 * All rights reserved. 00020 * 00021 * 00022 * Contributor(s): Blender Foundation 00023 * 00024 * ***** END GPL LICENSE BLOCK ***** 00025 */ 00026 00031 #ifndef ED_GPENCIL_INTERN_H 00032 #define ED_GPENCIL_INTERN_H 00033 00034 /* internal exports only */ 00035 00036 00037 /* ***************************************************** */ 00038 /* Operator Defines */ 00039 00040 struct bGPdata; 00041 struct wmOperatorType; 00042 00043 /* drawing ---------- */ 00044 00045 void GPENCIL_OT_draw(struct wmOperatorType *ot); 00046 00047 /* Paint Modes for operator*/ 00048 typedef enum eGPencil_PaintModes { 00049 GP_PAINTMODE_DRAW = 0, 00050 GP_PAINTMODE_ERASER, 00051 GP_PAINTMODE_DRAW_STRAIGHT, 00052 GP_PAINTMODE_DRAW_POLY 00053 } eGPencil_PaintModes; 00054 00055 /* buttons editing --- */ 00056 00057 void GPENCIL_OT_data_add(struct wmOperatorType *ot); 00058 void GPENCIL_OT_data_unlink(struct wmOperatorType *ot); 00059 00060 void GPENCIL_OT_layer_add(struct wmOperatorType *ot); 00061 00062 void GPENCIL_OT_active_frame_delete(struct wmOperatorType *ot); 00063 00064 void GPENCIL_OT_convert(struct wmOperatorType *ot); 00065 00066 /* undo stack ---------- */ 00067 00068 void gpencil_undo_init(struct bGPdata *gpd); 00069 void gpencil_undo_push(struct bGPdata *gpd); 00070 void gpencil_undo_finish(void); 00071 00072 /******************************************************* */ 00073 /* FILTERED ACTION DATA - TYPES ---> XXX DEPRECEATED OLD ANIM SYSTEM CODE! */ 00074 00075 /* XXX - TODO: replace this with the modern bAnimListElem... */ 00076 /* This struct defines a structure used for quick access */ 00077 typedef struct bActListElem { 00078 struct bActListElem *next, *prev; 00079 00080 void *data; /* source data this elem represents */ 00081 int type; /* one of the ACTTYPE_* values */ 00082 int flag; /* copy of elem's flags for quick access */ 00083 int index; /* copy of adrcode where applicable */ 00084 00085 void *key_data; /* motion data - ipo or ipo-curve */ 00086 short datatype; /* type of motion data to expect */ 00087 00088 struct bActionGroup *grp; /* action group that owns the channel */ 00089 00090 void *owner; /* will either be an action channel or fake ipo-channel (for keys) */ 00091 short ownertype; /* type of owner */ 00092 } bActListElem; 00093 00094 /******************************************************* */ 00095 /* FILTER ACTION DATA - METHODS/TYPES */ 00096 00097 /* filtering flags - under what circumstances should a channel be added */ 00098 typedef enum ACTFILTER_FLAGS { 00099 ACTFILTER_VISIBLE = (1<<0), /* should channels be visible */ 00100 ACTFILTER_SEL = (1<<1), /* should channels be selected */ 00101 ACTFILTER_FOREDIT = (1<<2), /* does editable status matter */ 00102 ACTFILTER_CHANNELS = (1<<3), /* do we only care that it is a channel */ 00103 ACTFILTER_IPOKEYS = (1<<4), /* only channels referencing ipo's */ 00104 ACTFILTER_ONLYICU = (1<<5), /* only reference ipo-curves */ 00105 ACTFILTER_FORDRAWING = (1<<6), /* make list for interface drawing */ 00106 ACTFILTER_ACTGROUPED = (1<<7) /* belongs to the active group */ 00107 } ACTFILTER_FLAGS; 00108 00109 /* Action Editor - Main Data types */ 00110 typedef enum ACTCONT_TYPES { 00111 ACTCONT_NONE = 0, 00112 ACTCONT_ACTION, 00113 ACTCONT_SHAPEKEY, 00114 ACTCONT_GPENCIL 00115 } ACTCONT_TYPES; 00116 00117 00118 00119 00120 #endif /* ED_GPENCIL_INTERN_H */ 00121