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:
authorTon Roosendaal <ton@blender.org>2004-06-26 22:18:11 +0400
committerTon Roosendaal <ton@blender.org>2004-06-26 22:18:11 +0400
commite750478ce3ed4427a468ec77513a60916b9cf9e4 (patch)
treef73e5bae5e23b83ced64347bd0077eef95389f32 /source/blender/makesdna
parent263d0823d3fb28088dd5e0042deb7f27676a125c (diff)
The revised patch from Leon for new particle effects.
New is that objects can have a force field, and Meshes can even deflect (collide) particles. This is in a new sub-menu in Object buttons F7 The full instructions where on the web, Leon mailed it me and I will put it in CMS tomorrow. For those who like to play with it now, here are demo files: http://download.blender.org/demo/test/ Quite some changes where in the integration though... so previous created particle deflectors will not work. Changes to mention now are: - gravity is renamed to 'force field' - force field and deflector options are in Object now, not in Mesh - the options also have its own struct, doesnt add to Object by default - force fields are possible for all object types, but only work on center. So empty objects are typical for it. Work to do: - add draw method in 3d win to denote forcefield objects - check on the UI (panel with different size?) - add 'recalc' button in deflector panel
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_ipo_types.h8
-rw-r--r--source/blender/makesdna/DNA_mesh_types.h6
-rw-r--r--source/blender/makesdna/DNA_object_types.h14
3 files changed, 24 insertions, 4 deletions
diff --git a/source/blender/makesdna/DNA_ipo_types.h b/source/blender/makesdna/DNA_ipo_types.h
index 69dcef38b57..0fc5ce64eaa 100644
--- a/source/blender/makesdna/DNA_ipo_types.h
+++ b/source/blender/makesdna/DNA_ipo_types.h
@@ -65,7 +65,7 @@ typedef short IPO_Channel;
/* ******************** */
-#define OB_TOTIPO 24
+#define OB_TOTIPO 29
#define OB_LOC_X 1
#define OB_LOC_Y 2
@@ -101,6 +101,12 @@ typedef short IPO_Channel;
#define OB_COL_B 23
#define OB_COL_A 24
+#define OB_PD_FSTR 25
+#define OB_PD_FFALL 26
+#define OB_PD_SDAMP 27
+#define OB_PD_RDAMP 28
+#define OB_PD_PERM 29
+
/* ******************** */
diff --git a/source/blender/makesdna/DNA_mesh_types.h b/source/blender/makesdna/DNA_mesh_types.h
index 8198e5329cd..b80bdf62b2c 100644
--- a/source/blender/makesdna/DNA_mesh_types.h
+++ b/source/blender/makesdna/DNA_mesh_types.h
@@ -74,12 +74,12 @@ typedef struct Mesh {
struct MSticky *msticky;
struct Mesh *texcomesh;
float *orco;
-
+
struct OcInfo *oc; /* not written in file */
void *sumohandle;
-
+
int totvert, totface;
-
+
int texflag;
float loc[3];
float size[3];
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index b350416f6cd..2528149e89a 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -77,6 +77,19 @@ typedef struct LBuf {
struct Object **ob;
} LBuf;
+typedef struct PartDeflect {
+ short deflect; /* Deflection flag - does mesh deflect particles*/
+ short forcefield; /* Force flag, do the vertices attract / repel particles ? */
+
+ float pdef_damp; /* Damping factor for particle deflection */
+ float pdef_rdamp; /* Random element of damping for deflection */
+ float pdef_perm; /* Chance of particle passing through mesh */
+
+ float f_strength; /* The strength of the force (+ or - ) */
+ float f_power; /* The power law - real gravitation is 2 (square) */
+} PartDeflect;
+
+
typedef struct Object {
ID id;
@@ -179,6 +192,7 @@ typedef struct Object {
ListBase constraints;
ListBase nlastrips;
+ PartDeflect *pd; /* particle deflector/attractor/collision data */
struct Life *life;
LBuf lbuf;