Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2007-11-27 01:09:57 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2007-11-27 01:09:57 +0300
commit7da56f4a9ba0bdd0cdcd40b8ca6e69d776d26abe (patch)
tree663c13aae5606937571ac1e7a4c77ca2866e75dd /source/blender/include
parent121dab1bcd9467bd8e11d0a82e83a1621758fd8e (diff)
parent770291b9ea1ec03d98b6bae4fd2a2d3f0091be41 (diff)
Particles
========= Merge of the famous particle patch by Janne Karhu, a full rewrite of the Blender particle system. This includes: - Emitter, Hair and Reactor particle types. - Newtonian, Keyed and Boids physics. - Various particle visualisation and rendering types. - Vertex group and texture control for various properties. - Interpolated child particles from parents. - Hair editing with combing, growing, cutting, .. . - Explode modifier. - Harmonic, Magnetic fields, and multiple falloff types. .. and lots of other things, some more info is here: http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc The new particle system cannot be backwards compatible. Old particle systems are being converted to the new system, but will require tweaking to get them looking the same as before. Point Cache =========== The new system to replace manual baking, based on automatic caching on disk. This is currently used by softbodies and the particle system. See the Cache API section on: http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint Documentation ============= These new features still need good docs for the release logs, help for this is appreciated.
Diffstat (limited to 'source/blender/include')
-rw-r--r--source/blender/include/BDR_editobject.h2
-rw-r--r--source/blender/include/BIF_butspace.h1
-rw-r--r--source/blender/include/BIF_editparticle.h92
-rw-r--r--source/blender/include/BIF_editview.h1
-rw-r--r--source/blender/include/BIF_meshtools.h1
-rw-r--r--source/blender/include/BIF_resources.h4
-rw-r--r--source/blender/include/BIF_transform.h1
-rw-r--r--source/blender/include/BSE_editipo.h1
-rw-r--r--source/blender/include/blendef.h3
-rw-r--r--source/blender/include/butspace.h34
-rw-r--r--source/blender/include/transform.h6
11 files changed, 144 insertions, 2 deletions
diff --git a/source/blender/include/BDR_editobject.h b/source/blender/include/BDR_editobject.h
index 2a96a8d65cb..2fb0ad5aa88 100644
--- a/source/blender/include/BDR_editobject.h
+++ b/source/blender/include/BDR_editobject.h
@@ -65,6 +65,8 @@ void exit_editmode(int flag);
void check_editmode(int type);
void enter_editmode(int wc);
+void exit_paint_modes(void);
+
void docenter(int centermode);
void docenter_new(void);
void docenter_cursor(void);
diff --git a/source/blender/include/BIF_butspace.h b/source/blender/include/BIF_butspace.h
index eb2cafad792..df60a0c9a08 100644
--- a/source/blender/include/BIF_butspace.h
+++ b/source/blender/include/BIF_butspace.h
@@ -83,6 +83,7 @@ extern void validate_editbonebutton_cb(void *bonev, void *namev);
#define TAB_OBJECT_OBJECT 0
#define TAB_OBJECT_PHYSICS 1
+#define TAB_OBJECT_PARTICLE 2
#define TAB_SCENE_RENDER 0
#define TAB_SCENE_WORLD 1
diff --git a/source/blender/include/BIF_editparticle.h b/source/blender/include/BIF_editparticle.h
new file mode 100644
index 00000000000..879bdf19cba
--- /dev/null
+++ b/source/blender/include/BIF_editparticle.h
@@ -0,0 +1,92 @@
+/* BIF_editparticle.h
+ *
+ *
+ * $Id: BIF_editparticle.h $
+ *
+ * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License. See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2007 by Janne Karhu.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ */
+
+#ifndef BIF_EDITPARTICLE_H
+#define BIF_EDITPARTICLE_H
+
+struct Object;
+struct ParticleSystem;
+struct ParticleEditSettings;
+
+/* particle edit mode */
+void PE_set_particle_edit(void);
+void PE_create_particle_edit(struct Object *ob, struct ParticleSystem *psys);
+void PE_free_particle_edit(struct ParticleSystem *psys);
+
+void PE_change_act(void *ob_v, void *act_v);
+
+/* access */
+struct ParticleSystem *PE_get_current(struct Object *ob);
+short PE_get_current_num(struct Object *ob);
+int PE_minmax(float *min, float *max);
+void PE_get_colors(char sel[4], char nosel[4]);
+struct ParticleEditSettings *PE_settings(void);
+
+/* update calls */
+void PE_hide_keys_time(struct ParticleSystem *psys, float cfra);
+void PE_update_object(struct Object *ob, int useflag);
+void PE_update_selection(struct Object *ob);
+void PE_recalc_world_cos(struct Object *ob, struct ParticleSystem *psys);
+
+/* selection tools */
+void PE_select_root(void);
+void PE_select_tip(void);
+void PE_deselectall(void);
+void PE_select_linked(void);
+void PE_select_less(void);
+void PE_select_more(void);
+
+void PE_mouse_particles(void);
+void PE_borderselect(void);
+void PE_selectionCB(short selecting, struct Object *editobj, short *mval, float rad);
+void PE_do_lasso_select(short mcords[][2], short moves, short select);
+
+/* tools */
+void PE_hide(int mode);
+void PE_rekey(void);
+void PE_subdivide(void);
+int PE_brush_particles(void);
+void PE_delete_particle(void);
+void PE_remove_doubles(void);
+void PE_mirror_x(int tagged);
+
+/* undo */
+void PE_undo_push(char *str);
+void PE_undo_step(int step);
+void PE_undo(void);
+void PE_redo(void);
+void PE_undo_menu(void);
+
+#endif
+
diff --git a/source/blender/include/BIF_editview.h b/source/blender/include/BIF_editview.h
index 676bc3bd9f0..9192b217f4f 100644
--- a/source/blender/include/BIF_editview.h
+++ b/source/blender/include/BIF_editview.h
@@ -39,6 +39,7 @@ struct Camera;
struct View3D;
void arrows_move_cursor(unsigned short event);
+int lasso_inside(short mcords[][2], short moves, short sx, short sy);
void borderselect(void);
void circle_select(void);
void deselectall(void);
diff --git a/source/blender/include/BIF_meshtools.h b/source/blender/include/BIF_meshtools.h
index a08f800d7b6..17bbb2393ef 100644
--- a/source/blender/include/BIF_meshtools.h
+++ b/source/blender/include/BIF_meshtools.h
@@ -45,6 +45,7 @@ extern void objects_bake_render(short event);
extern long mesh_octree_table(struct Object *ob, float *co, char mode);
extern int mesh_get_x_mirror_vert(struct Object *ob, int index);
extern struct EditVert *editmesh_get_x_mirror_vert(struct Object *ob, float *co);
+extern int *mesh_get_x_mirror_faces(struct Object *ob);
#endif
diff --git a/source/blender/include/BIF_resources.h b/source/blender/include/BIF_resources.h
index e63e84efcbd..f03364f099b 100644
--- a/source/blender/include/BIF_resources.h
+++ b/source/blender/include/BIF_resources.h
@@ -66,7 +66,7 @@ typedef enum {
ICON_ORTHO,
ICON_PERSP,
ICON_CAMERA,
- ICON_EFFECTS,
+ ICON_PARTICLES,
ICON_BBOX,
ICON_WIRE,
ICON_SOLID,
@@ -268,7 +268,7 @@ typedef enum {
ICON_EYEDROPPER,
ICON_WINDOW_WINDOW,
ICON_PANEL_CLOSE,
- ICON_BLANK35,
+ ICON_PHYSICS,
ICON_BLANK36,
ICON_BLANK37,
ICON_BLANK38,
diff --git a/source/blender/include/BIF_transform.h b/source/blender/include/BIF_transform.h
index 17ceb8935c9..6d4095f0d40 100644
--- a/source/blender/include/BIF_transform.h
+++ b/source/blender/include/BIF_transform.h
@@ -59,6 +59,7 @@
#define TFM_TIME_SLIDE 20
#define TFM_TIME_SCALE 21
#define TFM_TIME_EXTEND 22
+#define TFM_BAKE_TIME 23
/* TRANSFORM CONTEXTS */
#define CTX_NONE 0
diff --git a/source/blender/include/BSE_editipo.h b/source/blender/include/BSE_editipo.h
index 37cae858656..3dd54d0a5ed 100644
--- a/source/blender/include/BSE_editipo.h
+++ b/source/blender/include/BSE_editipo.h
@@ -60,6 +60,7 @@ char *getname_la_ei(int nr);
char *getname_cam_ei(int nr);
char *getname_snd_ei(int nr);
char *getname_fluidsim_ei(int nr);
+char *getname_part_ei(int nr);
char *getname_ipocurve(struct IpoCurve *icu, struct Object *ob);
int geticon_ipo_blocktype(short blocktype);
diff --git a/source/blender/include/blendef.h b/source/blender/include/blendef.h
index 4c42ba85968..4b5506dda30 100644
--- a/source/blender/include/blendef.h
+++ b/source/blender/include/blendef.h
@@ -232,6 +232,9 @@
#define B_MAN_TRANS 161
#define B_MAN_ROT 162
#define B_MAN_SCALE 163
+#define B_SEL_PATH 166
+#define B_SEL_POINT 167
+#define B_SEL_END 168
/* IPO: 200 */
#define B_IPOHOME 201
diff --git a/source/blender/include/butspace.h b/source/blender/include/butspace.h
index 4fbfb8c1e80..10a31de98e5 100644
--- a/source/blender/include/butspace.h
+++ b/source/blender/include/butspace.h
@@ -68,6 +68,7 @@ extern void do_soundbuts(unsigned short event);
/* object */
extern void object_panels(void);
extern void physics_panels(void);
+extern void particle_panels(void);
extern void do_object_panels(unsigned short event);
extern void do_constraintbuts(unsigned short event);
extern void object_panel_constraint(char *context);
@@ -102,6 +103,7 @@ extern void do_cambuts(unsigned short event);
extern void do_armbuts(unsigned short event);
extern void do_uvcalculationbuts(unsigned short event);
extern void weight_paint_buttons(struct uiBlock *);
+extern void particle_edit_buttons(struct uiBlock *);
extern char *get_vertexgroup_menustr(struct Object *ob); // used in object buttons
@@ -212,6 +214,8 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la
/* world buttons: buttons-preview update, and redraw 3dview */
#define B_WORLDPRV2 1224
+#define B_MAT_PARTICLE 1225
+
/* *********************** */
#define B_TEXBUTS 1400
@@ -282,6 +286,8 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la
#define B_GROUP_RELINK 1460
#define B_OBJECT_IPOFLAG 1461
+#define B_BAKEABLE_CHANGE 1470
+
/* *********************** */
#define B_WORLDBUTS 1600
@@ -578,6 +584,14 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la
/* Sculptmode */
#define B_SCULPT_TEXBROWSE 2860
+/* Particles */
+#define B_BAKE_OLENGTH 2870
+#define B_BAKE_APPLY_AV 2871
+#define B_BAKE_KEYTIME 2872
+#define B_BAKE_AV_CHANGE 2873
+#define B_BAKE_REDRAWEDIT 2874
+#define B_BAKE_RECACHE 2875
+
/* *********************** */
#define B_RADIOBUTS 3000
@@ -700,6 +714,26 @@ enum {
#define B_FIELD_CHANGE 3415
#define B_PAF_SET_VG 3416
#define B_PAF_SET_VG1 3417
+#define B_PARTBROWSE 3418
+#define B_PARTDELETE 3419
+#define B_PARTALONE 3420
+#define B_PARTLOCAL 3421
+#define B_PARTAUTONAME 3422
+#define B_PART_ALLOC 3423
+#define B_PART_DISTR 3424
+#define B_PART_INIT 3425
+#define B_PART_RECALC 3426
+#define B_PART_REDRAW 3427
+#define B_PARTTYPE 3428
+#define B_PARTACT 3429
+#define B_PARTTARGET 3430
+#define B_PART_ALLOC_CHILD 3431
+#define B_PART_DISTR_CHILD 3432
+#define B_PART_INIT_CHILD 3433
+#define B_PART_RECALC_CHILD 3434
+#define B_PART_EDITABLE 3435
+
+#define B_PART_REKEY 3436
#define B_MODIFIER_BUTS 3600
diff --git a/source/blender/include/transform.h b/source/blender/include/transform.h
index a01bf92c871..623514a1a32 100644
--- a/source/blender/include/transform.h
+++ b/source/blender/include/transform.h
@@ -270,6 +270,8 @@ typedef struct TransInfo {
#endif
#define TD_TIMEONLY 128
#define TD_NOCENTER 256
+#define TD_NO_EXT 512 /* ext abused for particle key timing */
+#define TD_SKIP 1024 /* don't transform this data */
/* transsnap->status */
#define SNAP_ON 1
@@ -350,10 +352,14 @@ int TimeSlide(TransInfo *t, short mval[2]);
void initTimeScale(TransInfo *t);
int TimeScale(TransInfo *t, short mval[2]);
+void initBakeTime(TransInfo *t);
+int BakeTime(TransInfo *t, short mval[2]);
+
/*********************** transform_conversions.c ********** */
struct ListBase;
void flushTransIpoData(TransInfo *t);
void flushTransUVs(TransInfo *t);
+void flushTransParticles(TransInfo *t);
int clipUVTransform(TransInfo *t, float *vec, int resize);
/*********************** exported from transform_manipulator.c ********** */