// // EditorDatas.h // cocos2d_libs // // Created by 徐俊杰 on 2021/1/14. // #ifndef EditorDatas_h #define EditorDatas_h #include #include "rparticle/Macros/RParticleMacros.h" #include "rparticle/ParticleSystemCurves.h" #include "rparticle/ParticleSystemGradients.h" NS_RRP_BEGIN // ====== MinMaxCurveData Begin ====== struct KeyframeData { KeyframeData() : time(0) , value(0) , inSlope(0) , outSlope(0) , tangentMode(0) {} KeyframeData(float _time, float _value, float _inSlope, float _outSlope) : time(_time) , value(_value) , inSlope(_inSlope) , outSlope(_outSlope) , tangentMode(0) {} KeyframeData(float _time, float _value, float _inSlope, float _outSlope, int _tangentMode) : time(_time) , value(_value) , inSlope(_inSlope) , outSlope(_outSlope) , tangentMode(_tangentMode) {} float time; float value; float inSlope; float outSlope; int tangentMode = 0;// editor use }; struct AnimationCurveData { AnimationCurveData() : m_PreInfinity(0) , m_PostInfinity(0) {} AnimationCurveData(int _preInfinity, int _postInfinity) : m_PreInfinity(_preInfinity) , m_PostInfinity(_postInfinity) {} std::vector m_Curve; int m_PreInfinity; int m_PostInfinity; }; struct MinMaxCurveData { MinMaxCurveData() : minMaxState(kMMCScalar) , scalar(0) {} MinMaxCurveData(MinMaxCurveState _minMaxState, float _scalar, const AnimationCurveData& _minCurve, const AnimationCurveData& _maxCurve) : minMaxState(_minMaxState) , scalar(_scalar) , minCurve(_minCurve) , maxCurve(_maxCurve) {} float scalar; AnimationCurveData maxCurve; AnimationCurveData minCurve; MinMaxCurveState minMaxState; }; // ====== MinMaxCurveData End ====== // ====== MinMaxGradientData Begin ====== struct Color3BData { Color3BData() : time(0) {} Color3BData(UInt16 _time, const cocos2d::Color3B& _color) : time(_time) , color(_color) {} UInt16 time; cocos2d::Color3B color; }; struct AlphaData { AlphaData() : time(0) , alpha(0) {} AlphaData(UInt16 _time, UInt16 _alpha) : time(_time) , alpha(_alpha) {} UInt16 time; UInt16 alpha; }; struct GradientNEWData { // ColorRGBA32 m_Keys[8]; // UInt16 m_ColorTime[8]; // UInt16 m_AlphaTime[8]; // UInt8 m_NumColorKeys; // UInt8 m_NumAlphaKeys; std::vector m_Color; // 最大长度为8 std::vector m_Alpha; // 最大长度为8 }; struct MinMaxGradientData { MinMaxGradientData() : minMaxState(kMMGColor) {} MinMaxGradientData(MinMaxGradientState _minMaxState, ColorRGBA32 _minColor, ColorRGBA32 _maxColor, GradientNEWData _minGradient, GradientNEWData _maxGradient) : minMaxState(_minMaxState) , minColor(_minColor) , maxColor(_maxColor) , minGradient(_minGradient) , maxGradient(_maxGradient) {} GradientNEWData maxGradient; GradientNEWData minGradient; ColorRGBA32 minColor; ColorRGBA32 maxColor; MinMaxGradientState minMaxState; }; // ====== MinMaxGradientData End ====== // ====== EmissionData Begin ====== struct BurstData { BurstData() : burstTime(0) , burstParticleCount(0) {} BurstData(float _burstTime, UInt16 _burstParticleCount) : burstTime(_burstTime) , burstParticleCount(_burstParticleCount) {} float burstTime; UInt16 burstParticleCount; }; struct EmissionData { std::vector burstData; // 最大长度为4 }; // ====== EmissionData End ====== NS_RRP_END #endif /* EditorDatas_h */