Cleanup: comment blocks
[blender.git] / source / blender / makesdna / DNA_particle_types.h
index 95cb5c84bed1b11cdd806488ea34e02e400e81a6..a96354f05c1ee6f11d73fdfd93629443f46175fb 100644 (file)
@@ -97,7 +97,7 @@ typedef struct ParticleData {
        ParticleKey state;              /* current global coordinates */
 
        ParticleKey prev_state; /* previous state */
-       
+
        HairKey *hair;                  /* hair vertices */
 
        ParticleKey *keys;              /* keyed keys */
@@ -106,14 +106,15 @@ typedef struct ParticleData {
 
        int totkey;                             /* amount of hair or keyed keys*/
 
-       float time, lifetime;   /* dietime is not nescessarily time+lifetime as */
-       float dietime;                  /* particles can die unnaturally (collision)    */
+       float time, lifetime;   /* dietime is not nescessarily time+lifetime as */
+       float dietime;                  /* particles can die unnaturally (collision). */
 
+       /* WARNING! Those two indices, when not affected to vertices, are for !!! TESSELLATED FACES !!!, not POLYGONS! */
        int num;                                /* index to vert/edge/face */
        int num_dmcache;                /* index to derived mesh data (face) to avoid slow lookups */
 
        float fuv[4], foffset;  /* coordinates on face/edge number "num" and depth along*/
-                                                       /* face normal for volume emission                                              */
+                                                       /* face normal for volume emission. */
 
        float size;                             /* size and multiplier so that we can update size when ever */
 
@@ -159,6 +160,7 @@ typedef struct ParticleSettings {
        struct SPHFluidSettings *fluid;
 
        struct EffectorWeights *effector_weights;
+       struct Group *collision_group;
 
        int flag, rt;
        short type, from, distr, texact;
@@ -259,6 +261,10 @@ typedef struct ParticleSettings {
        short use_modifier_stack;
        short pad5[3];
 
+       float twist;
+       float pad6;
+       struct CurveMapping *twistcurve;
+       void *pad7;
 } ParticleSettings;
 
 typedef struct ParticleSystem {
@@ -291,7 +297,7 @@ typedef struct ParticleSystem {
        struct ListBase targets;                                /* used for keyed and boid physics */
 
        char name[64];                                                  /* particle system name, MAX_NAME */
-       
+
        float imat[4][4];       /* used for duplicators */
        float cfra, tree_frame, bvhtree_frame;
        int seed, child_seed;
@@ -301,7 +307,8 @@ typedef struct ParticleSystem {
        char bb_uvname[3][64];                                  /* billboard uv name, MAX_CUSTOMDATA_LAYER_NAME */
 
        /* if you change these remember to update array lengths to PSYS_TOT_VG! */
-       short vgroup[12], vg_neg, rt3;                  /* vertex groups, 0==disable, 1==starting index */
+       short vgroup[13], vg_neg, rt3;                  /* vertex groups, 0==disable, 1==starting index */
+       char pad[6];
 
        /* temporary storage during render */
        struct ParticleRenderData *renderdata;
@@ -321,7 +328,7 @@ typedef struct ParticleSystem {
        struct ParticleDrawData *pdd;
 
        float dt_frac;                                                  /* current time step, as a fraction of a frame */
-       float _pad;                                                             /* spare capacity */
+       float lattice_strength;                                 /* influence of the lattice modifier */
 } ParticleSystem;
 
 typedef enum eParticleDrawFlag {
@@ -368,7 +375,7 @@ typedef enum eParticleDrawFlag {
 #define PART_UNBORN                    32      /*show unborn particles*/
 #define PART_DIED                      64      /*show died particles*/
 
-#define PART_TRAND                     128     
+#define PART_TRAND                     128
 #define PART_EDISTR                    256     /* particle/face from face areas */
 
 #define PART_ROTATIONS         512     /* calculate particle rotations (and store them in pointcache) */
@@ -403,7 +410,7 @@ typedef enum eParticleDrawFlag {
 #define PART_FROM_VERT         0
 #define PART_FROM_FACE         1
 #define PART_FROM_VOLUME       2
-/* #define PART_FROM_PARTICLE  3  deprecated! */ 
+/* #define PART_FROM_PARTICLE  3  deprecated! */
 #define PART_FROM_CHILD                4
 
 /* part->distr */
@@ -433,6 +440,7 @@ typedef enum eParticleChildFlag {
        PART_CHILD_USE_CLUMP_NOISE  = (1<<0),
        PART_CHILD_USE_CLUMP_CURVE  = (1<<1),
        PART_CHILD_USE_ROUGH_CURVE  = (1<<2),
+       PART_CHILD_USE_TWIST_CURVE  = (1<<3),
 } eParticleChildFlag;
 
 /* part->draw_col */
@@ -560,7 +568,7 @@ typedef enum eParticleChildFlag {
 #define PART_DUPLIW_CURRENT    1
 
 /* psys->vg */
-#define PSYS_TOT_VG                    12
+#define PSYS_TOT_VG                    13
 
 #define PSYS_VG_DENSITY                0
 #define PSYS_VG_VEL                    1
@@ -574,6 +582,7 @@ typedef enum eParticleChildFlag {
 #define PSYS_VG_TAN                    9
 #define PSYS_VG_ROT                    10
 #define PSYS_VG_EFFECTOR       11
+#define PSYS_VG_TWIST  12
 
 /* ParticleTarget->flag */
 #define PTARGET_CURRENT                1
@@ -605,7 +614,8 @@ typedef enum eParticleTextureInfluence {
        PAMAP_KINK_AMP  = (1<<12),
        PAMAP_ROUGH             = (1<<9),
        PAMAP_LENGTH    = (1<<4),
-       PAMAP_CHILD             = (PAMAP_CLUMP | PAMAP_KINK_FREQ | PAMAP_KINK_AMP | PAMAP_ROUGH | PAMAP_LENGTH),
+       PAMAP_TWIST     = (1<<13),
+       PAMAP_CHILD             = (PAMAP_CLUMP | PAMAP_KINK_FREQ | PAMAP_KINK_AMP | PAMAP_ROUGH | PAMAP_LENGTH | PAMAP_TWIST),
 } eParticleTextureInfluence;
 
 #endif