12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- //
- // InitialModule.h
- // libcocos2d Mac
- //
- // Created by 徐俊杰 on 2020/4/24.
- //
- #ifndef InitialModule_h
- #define InitialModule_h
- //#include "cocos2d.h"
- #include "rparticle/Macros/RParticleMacros.h"
- #include "rparticle/Modules/ParticleSystemModule.h"
- #include "rparticle/ParticleSystemCurves.h"
- #include "rparticle/ParticleSystemGradients.h"
- #include "rparticle/Math/Random/rand.h"
- NS_RRP_BEGIN
- struct ParticleSystemState;
- class InitialModule : public ParticleSystemModule
- {
- public:
- DECLARE_MODULE (InitialModule)
- InitialModule ();
-
- void Start (const struct ParticleSystemReadOnlyState& roState, const ParticleSystemState& state, ParticleSystemParticles& ps, const Matrix4x4f& matrix, size_t fromIndex, float t);
- void Update (const struct ParticleSystemReadOnlyState& roState, const ParticleSystemState& state, ParticleSystemParticles& ps, const size_t fromIndex, const size_t toIndex, float dt) const;
- void GenerateProcedural (const ParticleSystemReadOnlyState& roState, const ParticleSystemState& state, ParticleSystemParticles& ps, const struct ParticleSystemEmitReplay& emit);
- void CheckConsistency ();
- void AwakeFromLoad (RParticleSystem* system, const ParticleSystemReadOnlyState& roState);
- void ResetSeed(const ParticleSystemReadOnlyState& roState);
- void SetInheritedParams(const SubEmitterInheritValues& inheritValues);
-
- inline MinMaxCurve& GetLifeTimeCurve() { return m_Lifetime; }
- inline const MinMaxCurve& GetLifeTimeCurve() const { return m_Lifetime; }
- inline MinMaxCurve& GetSpeedCurve() { return m_Speed; }
- inline const MinMaxCurve& GetSpeedCurve() const { return m_Speed; }
- inline MinMaxCurve& GetSizeCurve() { return m_Size; }
- inline const MinMaxCurve& GetSizeCurve() const { return m_Size; }
- inline MinMaxCurve& GetRotationCurve() { return m_Rotation; }
- inline const MinMaxCurve& GetRotationCurve() const { return m_Rotation; }
- inline MinMaxGradient& GetColor() { return m_Color; }
- inline const MinMaxGradient& GetColor() const { return m_Color; }
- inline void SetGravityModifier(float value) { m_GravityModifier = value; }
- inline float GetGravityModifier() const { return m_GravityModifier; }
-
- inline void SetMaxNumParticles(int value) { m_MaxNumParticles = value; }
- inline int GetMaxNumParticles() const { return m_MaxNumParticles; }
- inline void SetInheritVelocity(float value) { m_InheritVelocity = value; }
- inline float GetInheritVelocity() const { return m_InheritVelocity; }
- Vector3f GetGravity (const ParticleSystemReadOnlyState& roState, const ParticleSystemState& state) const;
-
- template<class TransferFunction>
- void Transfer (TransferFunction& transfer);
-
- private:
- Rand& GetRandom();
-
- MinMaxCurve m_Lifetime;
- MinMaxCurve m_Speed;
- MinMaxGradient m_Color;
- MinMaxCurve m_Size;
- MinMaxCurve m_Rotation;
- float m_GravityModifier;
- float m_InheritVelocity;
- int m_MaxNumParticles;
-
- Rand m_Random;
- SubEmitterInheritValues m_InheritedValues;
-
- #if UNITY_EDITOR
- public:
- Rand m_EditorRandom;
- #endif
- };
- NS_RRP_END
- #endif /* InitialModule_h */
|