svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22935:23022
[blender-staging.git] / source / blender / editors / include / ED_particle.h
1 /* 
2  * $Id$
3  *
4  * ***** BEGIN GPL LICENSE BLOCK *****
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19  *
20  * The Original Code is Copyright (C) 2007 by Janne Karhu.
21  * All rights reserved.
22  *
23  * The Original Code is: all of this file.
24  *
25  * Contributor(s): none yet.
26  *
27  * ***** END GPL LICENSE BLOCK *****
28  */
29
30 #ifndef ED_PARTICLE_H
31 #define ED_PARTICLE_H
32
33 struct bContext;
34 struct Object;
35 struct ParticleEditSettings;
36 struct ParticleSystem;
37 struct RadialControl;
38 struct rcti;
39 struct wmWindowManager;
40 struct PTCacheEdit;
41
42 /* particle edit mode */
43 void PE_free_ptcache_edit(struct PTCacheEdit *edit);
44 int PE_start_edit(struct PTCacheEdit *edit);
45
46 /* access */
47 struct PTCacheEdit *PE_get_current(struct Scene *scene, struct Object *ob);
48 int PE_minmax(struct Scene *scene, float *min, float *max);
49 struct ParticleEditSettings *PE_settings(Scene *scene);
50
51 /* update calls */
52 void PE_hide_keys_time(struct Scene *scene, struct PTCacheEdit *edit, float cfra);
53 void PE_update_object(struct Scene *scene, struct Object *ob, int useflag);
54
55 /* selection tools */
56 int PE_mouse_particles(struct bContext *C, short *mval, int extend);
57 int PE_border_select(struct bContext *C, struct rcti *rect, int select);
58 int PE_circle_select(struct bContext *C, int selecting, short *mval, float rad);
59 int PE_lasso_select(struct bContext *C, short mcords[][2], short moves, short select);
60
61 /* undo */
62 void PE_undo_push(Scene *scene, char *str);
63 void PE_undo_step(Scene *scene, int step);
64 void PE_undo(Scene *scene);
65 void PE_redo(Scene *scene);
66 void PE_undo_menu(Scene *scene, Object *ob);
67
68 /* operators */
69 void ED_operatortypes_particle(void);
70 void ED_keymap_particle(struct wmWindowManager *wm);
71
72 #endif /* ED_PARTICLE_H */
73