32b2b8194d25491f669bbf7bd0dbab5cb9a09f0c
[blender.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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 wmKeyConfig;
40 struct PTCacheEdit;
41 struct Scene;
42
43 /* particle edit mode */
44 void PE_free_ptcache_edit(struct PTCacheEdit *edit);
45 int PE_start_edit(struct PTCacheEdit *edit);
46
47 /* access */
48 struct PTCacheEdit *PE_get_current(struct Scene *scene, struct Object *ob);
49 struct PTCacheEdit *PE_create_current(struct Scene *scene, struct Object *ob);
50 void PE_current_changed(struct Scene *scene, struct Object *ob);
51 int PE_minmax(struct Scene *scene, float *min, float *max);
52 struct ParticleEditSettings *PE_settings(struct Scene *scene);
53
54 /* update calls */
55 void PE_hide_keys_time(struct Scene *scene, struct PTCacheEdit *edit, float cfra);
56 void PE_update_object(struct Scene *scene, struct Object *ob, int useflag);
57
58 /* selection tools */
59 int PE_mouse_particles(struct bContext *C, short *mval, int extend);
60 int PE_border_select(struct bContext *C, struct rcti *rect, int select, int extend);
61 int PE_circle_select(struct bContext *C, int selecting, short *mval, float rad);
62 int PE_lasso_select(struct bContext *C, short mcords[][2], short moves, short extend, short select);
63 void PE_deselect_all_visible(struct PTCacheEdit *edit);
64
65 /* undo */
66 void PE_undo_push(struct Scene *scene, const char *str);
67 void PE_undo_step(struct Scene *scene, int step);
68 void PE_undo(struct Scene *scene);
69 void PE_redo(struct Scene *scene);
70 void PE_undo_menu(struct Scene *scene, struct Object *ob);
71
72 #endif /* ED_PARTICLE_H */
73