pperequestdata.c 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. //! Data for one material parameter, requester side
  2. class PPERequestParamDataBase
  3. {
  4. PPERequesterBase m_Requester;
  5. protected bool m_UpdatingDataValues; //new values are being sent periodically
  6. protected bool m_IsActive; //hasn't been stopped yet (does not have to update values)
  7. protected bool m_SettingDefaultValues;
  8. protected int m_MaterialID;
  9. protected int m_ParameterID;
  10. protected int m_VariableType; //PPEConstants.VAR_TYPE_INT etc.
  11. protected int m_RequesterIDX;
  12. protected int m_InteractionMask;
  13. protected int m_Priority; //de-facto blending layer
  14. void PPERequestParamDataBase(int requester_idx, int mat_id, int param_id, int data_type = 0, int priority = 0, int mask = PPOperators.SET)
  15. {
  16. m_RequesterIDX = requester_idx;
  17. m_MaterialID = mat_id;
  18. m_ParameterID = param_id;
  19. m_VariableType = data_type;
  20. m_Priority = priority;
  21. m_InteractionMask = mask;
  22. m_UpdatingDataValues = false;
  23. m_SettingDefaultValues = false;
  24. m_IsActive = false;
  25. InitValues();
  26. }
  27. void InitValues()
  28. {
  29. }
  30. void SetUpdatingDataValues(bool state)
  31. {
  32. m_UpdatingDataValues = state;
  33. }
  34. bool GetUpdatingDataValues()
  35. {
  36. return m_UpdatingDataValues;
  37. }
  38. void SetDataActive(bool state)
  39. {
  40. m_IsActive = state;
  41. }
  42. bool IsDataActive()
  43. {
  44. return m_IsActive;
  45. }
  46. void SetSettingDefaultValues(bool state)
  47. {
  48. m_SettingDefaultValues = state;
  49. }
  50. bool IsSettingDefaultValues()
  51. {
  52. return m_SettingDefaultValues;
  53. }
  54. int GetRequesterIDX()
  55. {
  56. return m_RequesterIDX;
  57. }
  58. int GetMaterialID()
  59. {
  60. return m_MaterialID;
  61. }
  62. int GetParameterID()
  63. {
  64. return m_ParameterID;
  65. }
  66. int GetVarType()
  67. {
  68. return m_VariableType;
  69. }
  70. void SetInteractionMask(int mask)
  71. {
  72. m_InteractionMask = mask;
  73. }
  74. int GetInteractionMask()
  75. {
  76. return m_InteractionMask;
  77. }
  78. void SetPriorityLayer(int priority)
  79. {
  80. m_Priority = priority;
  81. }
  82. int GetPriorityLayer()
  83. {
  84. return m_Priority;
  85. }
  86. }
  87. class PPERequestParamDataBool extends PPERequestParamDataBase
  88. {
  89. bool m_BoolTarget;
  90. bool m_BoolCurrent;
  91. bool m_BoolLast;
  92. void PPERequestParamDataBool(int requester_idx, int mat_id, int param_id, int data_type = 0, int priority = 0, int mask = PPOperators.SET, bool relative = false )
  93. {
  94. m_BoolCurrent = 0;
  95. m_BoolLast = 0;
  96. m_VariableType = PPEConstants.VAR_TYPE_BOOL;
  97. }
  98. }
  99. class PPERequestParamDataInt extends PPERequestParamDataBase
  100. {
  101. int m_IntTarget;
  102. int m_IntCurrent;
  103. int m_IntLast;
  104. void PPERequestParamDataInt(int requester_idx, int mat_id, int param_id, int data_type = 0, int priority = 0, int mask = PPOperators.SET, bool relative = false )
  105. {
  106. m_IntCurrent = -1;
  107. m_IntLast = -1;
  108. m_VariableType = PPEConstants.VAR_TYPE_INT;
  109. }
  110. }
  111. class PPERequestParamDataFloat extends PPERequestParamDataBase
  112. {
  113. float m_FloatTarget;
  114. float m_FloatCurrent;
  115. float m_FloatLast;
  116. float m_FloatFormerTarget;//former target; remnants of a fading mechanic...revise and re-connect?
  117. float m_FloatStart;//actual start value; remnants of a fading mechanic...revise and re-connect?
  118. void PPERequestParamDataFloat(int requester_idx, int mat_id, int param_id, int data_type = 0, int priority = 0, int mask = PPOperators.SET, bool relative = false )
  119. {
  120. m_VariableType = PPEConstants.VAR_TYPE_FLOAT;
  121. }
  122. override void InitValues()
  123. {
  124. m_FloatTarget = float.LOWEST;
  125. m_FloatCurrent = float.LOWEST;
  126. m_FloatLast = float.LOWEST;
  127. m_FloatFormerTarget = float.LOWEST;
  128. m_FloatStart = float.LOWEST;
  129. }
  130. }
  131. class PPERequestParamDataColor extends PPERequestParamDataBase
  132. {
  133. ref array<float> m_ColorTarget;
  134. ref array<float> m_ColorCurrent;
  135. ref array<float> m_ColorLast;
  136. ref array<float> m_ColorFormerTarget;//former target; remnants of a fading mechanic...revise and re-connect?
  137. ref array<float> m_ColorStart;//actual start values; remnants of a fading mechanic...revise and re-connect?
  138. void PPERequestParamDataColor(int requester_idx, int mat_id, int param_id, int data_type = 0, int priority = 0, int mask = PPOperators.SET, bool relative = false )
  139. {
  140. m_VariableType = PPEConstants.VAR_TYPE_COLOR;
  141. }
  142. override void InitValues()
  143. {
  144. m_ColorTarget = {0.0,0.0,0.0,0.0};
  145. m_ColorCurrent = {0,0.0,0.0,0.0};
  146. m_ColorLast = {0.0,0.0,0.0,0.0};
  147. m_ColorFormerTarget = {0.0,0.0,0.0,0.0};
  148. m_ColorStart = {0.0,0.0,0.0,0.0};
  149. }
  150. }
  151. //TODO
  152. class PPERequestParamDataVector extends PPERequestParamDataBase
  153. {
  154. vector m_VectorTarget;
  155. vector m_VectorCurrent;
  156. vector m_VectorLast;
  157. }