Merge branch 'master' into blender2.8
[blender.git] / source / blender / blenkernel / particle_private.h
index b4878807df71256efca6f4183dbd2a93b16a2b50..2189527118b2f2f29a9b71bb27e2a1bda1f1cfa4 100644 (file)
 #ifndef __PARTICLE_PRIVATE_H__
 #define __PARTICLE_PRIVATE_H__
 
+typedef struct ParticleChildModifierContext {
+       ParticleThreadContext *thread_ctx;
+       ParticleSimulationData *sim;
+       ParticleTexture *ptex;
+       ChildParticle *cpa;
+       const float *par_co;    /* float3 */
+       const float *par_vel;   /* float3 */
+       const float *par_rot;   /* float4 */
+       const float *par_orco;  /* float3 */
+       const float *orco;      /* float3 */
+       ParticleCacheKey *parent_keys;
+} ParticleChildModifierContext;
+
 void do_kink(ParticleKey *state, const float par_co[3], const float par_vel[3], const float par_rot[4], float time, float freq, float shape, float amplitude, float flat,
              short type, short axis, float obmat[4][4], int smooth_start);
 float do_clump(ParticleKey *state, const float par_co[3], float time, const float orco_offset[3], float clumpfac, float clumppow, float pa_clump,
                bool use_clump_noise, float clump_noise_size, CurveMapping *clumpcurve);
-void do_child_modifiers(ParticleThreadContext *ctx, ParticleSimulationData *sim,
-                        ParticleTexture *ptex, const float par_co[3], const float par_vel[3], const float par_rot[4], const float par_orco[3],
-                        ChildParticle *cpa, const float orco[3], float mat[4][4], ParticleKey *state, float t);
+void do_child_modifiers(const ParticleChildModifierContext *modifier_ctx,
+                        float mat[4][4], ParticleKey *state, float t);
 
 #endif /* __PARTICLE_PRIVATE_H__ */