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/makesdna/DNA_object_force.h
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/makesdna/DNA_object_force.h')
-rw-r--r--source/blender/makesdna/DNA_object_force.h48
1 files changed, 47 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h
index 88d45f0dbd8..df17454adeb 100644
--- a/source/blender/makesdna/DNA_object_force.h
+++ b/source/blender/makesdna/DNA_object_force.h
@@ -41,19 +41,35 @@ typedef struct PartDeflect {
short deflect; /* Deflection flag - does mesh deflect particles*/
short forcefield; /* Force field type, do the vertices attract / repel particles ? */
short flag; /* general settings flag */
- short pad;
+ short falloff; /* fall-off type*/
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 pdef_frict; /* Friction factor for particle deflection */
+ float pdef_rfrict; /* Random element of friction for deflection */
float f_strength; /* The strength of the force (+ or - ) */
float f_power; /* The power law - real gravitation is 2 (square) */
+ float f_dist;
+ float f_damp; /* The dampening factor, currently only for harmonic force */
float maxdist; /* if indicated, use this maximum */
+ float mindist; /* if indicated, use this minimum */
+ float maxrad; /* radial versions of above */
+ float minrad;
+ float f_power_r; /* radial fall-off power*/
float pdef_sbdamp; /* Damping factor for softbody deflection */
float pdef_sbift; /* inner face thickness for softbody deflection */
float pdef_sboft; /* outer face thickness for softbody deflection */
+
+ /* variables for guide curve */
+ float clump_fac, clump_pow;
+ float kink_freq, kink_shape, kink_amp, free_end;
+
+ float tex_nabla;
+ short tex_mode, kink, kink_axis, rt2;
+ struct Tex *tex; /* Texture of the texture effector */
} PartDeflect;
@@ -62,6 +78,8 @@ typedef struct SBVertex {
} SBVertex;
typedef struct SoftBody {
+ struct ParticleSystem *particles; /* particlesystem softbody */
+
/* dynamic data */
int totpoint, totspring;
struct BodyPoint *bpoint; /* not saved in file */
@@ -96,8 +114,10 @@ typedef struct SoftBody {
int interval;
short local, solverflags; /* local==1: use local coords for baking */
+ /* -- these must be kept for backwards compatibility -- */
SBVertex **keys; /* array of size totpointkey */
int totpointkey, totkey; /* if totpointkey != totpoint or totkey!- (efra-sfra)/interval -> free keys */
+ /* ---------------------------------------------------- */
float secondspring;
/* self collision*/
@@ -122,11 +142,36 @@ typedef struct SoftBody {
#define PFIELD_MAGNET 3
#define PFIELD_WIND 4
#define PFIELD_GUIDE 5
+#define PFIELD_TEXTURE 6
+#define PFIELD_HARMONIC 7
+#define PFIELD_NUCLEAR 8
+#define PFIELD_MDIPOLE 9
+
/* pd->flag: various settings */
#define PFIELD_USEMAX 1
#define PDEFLE_DEFORM 2
#define PFIELD_GUIDE_PATH_ADD 4
+#define PFIELD_PLANAR 8
+#define PDEFLE_KILL_PART 16
+#define PFIELD_POSZ 32
+#define PFIELD_TEX_OBJECT 64
+#define PFIELD_TEX_2D 128
+#define PFIELD_USEMIN 256
+#define PFIELD_USEMAXR 512
+#define PFIELD_USEMINR 1024
+
+/* pd->falloff */
+#define PFIELD_FALL_SPHERE 0
+#define PFIELD_FALL_TUBE 1
+#define PFIELD_FALL_CONE 2
+//reserved for near future
+//#define PFIELD_FALL_INSIDE 3
+
+/* pd->tex_mode */
+#define PFIELD_TEX_RGB 0
+#define PFIELD_TEX_GRAD 1
+#define PFIELD_TEX_CURL 2
/* ob->softflag */
#define OB_SB_ENABLE 1
@@ -142,6 +187,7 @@ typedef struct SoftBody {
#define OB_SB_FACECOLL 1024
#define OB_SB_EDGECOLL 2048
#define OB_SB_COLLFINAL 4096
+#define OB_SB_PROTECT_CACHE 8192
/* sb->solverflags */
#define SBSO_MONITOR 1