EditorDatas.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. //
  2. // EditorDatas.h
  3. // cocos2d_libs
  4. //
  5. // Created by 徐俊杰 on 2021/1/14.
  6. //
  7. #ifndef EditorDatas_h
  8. #define EditorDatas_h
  9. #include <vector>
  10. #include "rparticle/Macros/RParticleMacros.h"
  11. #include "rparticle/ParticleSystemCurves.h"
  12. #include "rparticle/ParticleSystemGradients.h"
  13. NS_RRP_BEGIN
  14. // ====== MinMaxCurveData Begin ======
  15. struct KeyframeData {
  16. KeyframeData()
  17. : time(0)
  18. , value(0)
  19. , inSlope(0)
  20. , outSlope(0)
  21. , tangentMode(0)
  22. {}
  23. KeyframeData(float _time, float _value, float _inSlope, float _outSlope)
  24. : time(_time)
  25. , value(_value)
  26. , inSlope(_inSlope)
  27. , outSlope(_outSlope)
  28. , tangentMode(0)
  29. {}
  30. KeyframeData(float _time, float _value, float _inSlope, float _outSlope, int _tangentMode)
  31. : time(_time)
  32. , value(_value)
  33. , inSlope(_inSlope)
  34. , outSlope(_outSlope)
  35. , tangentMode(_tangentMode)
  36. {}
  37. float time;
  38. float value;
  39. float inSlope;
  40. float outSlope;
  41. int tangentMode = 0;// editor use
  42. };
  43. struct AnimationCurveData {
  44. AnimationCurveData()
  45. : m_PreInfinity(0)
  46. , m_PostInfinity(0)
  47. {}
  48. AnimationCurveData(int _preInfinity, int _postInfinity)
  49. : m_PreInfinity(_preInfinity)
  50. , m_PostInfinity(_postInfinity)
  51. {}
  52. std::vector<KeyframeData> m_Curve;
  53. int m_PreInfinity;
  54. int m_PostInfinity;
  55. };
  56. struct MinMaxCurveData {
  57. MinMaxCurveData()
  58. : minMaxState(kMMCScalar)
  59. , scalar(0)
  60. {}
  61. MinMaxCurveData(MinMaxCurveState _minMaxState, float _scalar, const AnimationCurveData& _minCurve, const AnimationCurveData& _maxCurve)
  62. : minMaxState(_minMaxState)
  63. , scalar(_scalar)
  64. , minCurve(_minCurve)
  65. , maxCurve(_maxCurve)
  66. {}
  67. float scalar;
  68. AnimationCurveData maxCurve;
  69. AnimationCurveData minCurve;
  70. MinMaxCurveState minMaxState;
  71. };
  72. // ====== MinMaxCurveData End ======
  73. // ====== MinMaxGradientData Begin ======
  74. struct Color3BData {
  75. Color3BData()
  76. : time(0)
  77. {}
  78. Color3BData(UInt16 _time, const cocos2d::Color3B& _color)
  79. : time(_time)
  80. , color(_color)
  81. {}
  82. UInt16 time;
  83. cocos2d::Color3B color;
  84. };
  85. struct AlphaData {
  86. AlphaData()
  87. : time(0)
  88. , alpha(0)
  89. {}
  90. AlphaData(UInt16 _time, UInt16 _alpha)
  91. : time(_time)
  92. , alpha(_alpha)
  93. {}
  94. UInt16 time;
  95. UInt16 alpha;
  96. };
  97. struct GradientNEWData {
  98. // ColorRGBA32 m_Keys[8];
  99. // UInt16 m_ColorTime[8];
  100. // UInt16 m_AlphaTime[8];
  101. // UInt8 m_NumColorKeys;
  102. // UInt8 m_NumAlphaKeys;
  103. std::vector<Color3BData> m_Color; // 最大长度为8
  104. std::vector<AlphaData> m_Alpha; // 最大长度为8
  105. };
  106. struct MinMaxGradientData {
  107. MinMaxGradientData()
  108. : minMaxState(kMMGColor)
  109. {}
  110. MinMaxGradientData(MinMaxGradientState _minMaxState, ColorRGBA32 _minColor, ColorRGBA32 _maxColor, GradientNEWData _minGradient, GradientNEWData _maxGradient)
  111. : minMaxState(_minMaxState)
  112. , minColor(_minColor)
  113. , maxColor(_maxColor)
  114. , minGradient(_minGradient)
  115. , maxGradient(_maxGradient)
  116. {}
  117. GradientNEWData maxGradient;
  118. GradientNEWData minGradient;
  119. ColorRGBA32 minColor;
  120. ColorRGBA32 maxColor;
  121. MinMaxGradientState minMaxState;
  122. };
  123. // ====== MinMaxGradientData End ======
  124. // ====== EmissionData Begin ======
  125. struct BurstData {
  126. BurstData()
  127. : burstTime(0)
  128. , burstParticleCount(0)
  129. {}
  130. BurstData(float _burstTime, UInt16 _burstParticleCount)
  131. : burstTime(_burstTime)
  132. , burstParticleCount(_burstParticleCount)
  133. {}
  134. float burstTime;
  135. UInt16 burstParticleCount;
  136. };
  137. struct EmissionData {
  138. std::vector<BurstData> burstData; // 最大长度为4
  139. };
  140. // ====== EmissionData End ======
  141. NS_RRP_END
  142. #endif /* EditorDatas_h */