CommonParameterInterface.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #ifndef PARAM_INTERFACE_H
  2. #define PARAM_INTERFACE_H
  3. #pragma once
  4. typedef void (*SliderParamChangedCallback)(float newVal, void* userPointer);
  5. #include "LinearMath/btScalar.h"
  6. struct SliderParams
  7. {
  8. const char* m_name;
  9. float m_minVal;
  10. float m_maxVal;
  11. SliderParamChangedCallback m_callback;
  12. btScalar* m_paramValuePointer;
  13. void* m_userPointer;
  14. bool m_clampToNotches;
  15. bool m_clampToIntegers;
  16. bool m_showValues;
  17. SliderParams(const char* name, btScalar* targetValuePointer)
  18. : m_name(name),
  19. m_minVal(-100),
  20. m_maxVal(100),
  21. m_callback(0),
  22. m_paramValuePointer(targetValuePointer),
  23. m_userPointer(0),
  24. m_clampToNotches(false),
  25. m_clampToIntegers(false),
  26. m_showValues(true)
  27. {
  28. }
  29. };
  30. typedef void (*ButtonParamChangedCallback)(int buttonId, bool buttonState, void* userPointer);
  31. typedef void (*ComboBoxCallback)(int combobox, const char* item, void* userPointer);
  32. struct ButtonParams
  33. {
  34. const char* m_name;
  35. int m_buttonId;
  36. void* m_userPointer;
  37. bool m_isTrigger;
  38. bool m_initialState;
  39. ButtonParamChangedCallback m_callback;
  40. ButtonParams(const char* name, int buttonId, bool isTrigger)
  41. : m_name(name),
  42. m_buttonId(buttonId),
  43. m_userPointer(0),
  44. m_isTrigger(isTrigger),
  45. m_initialState(false),
  46. m_callback(0)
  47. {
  48. }
  49. };
  50. struct ComboBoxParams
  51. {
  52. int m_comboboxId;
  53. int m_numItems;
  54. const char** m_items;
  55. int m_startItem;
  56. ComboBoxCallback m_callback;
  57. void* m_userPointer;
  58. ComboBoxParams()
  59. : m_comboboxId(-1),
  60. m_numItems(0),
  61. m_items(0),
  62. m_startItem(0),
  63. m_callback(0),
  64. m_userPointer(0)
  65. {
  66. }
  67. };
  68. struct CommonParameterInterface
  69. {
  70. virtual ~CommonParameterInterface() {}
  71. virtual void registerSliderFloatParameter(SliderParams& params) = 0;
  72. virtual void registerButtonParameter(ButtonParams& params) = 0;
  73. virtual void registerComboBox(ComboBoxParams& params) = 0;
  74. virtual void syncParameters() = 0;
  75. virtual void removeAllParameters() = 0;
  76. virtual void setSliderValue(int sliderIndex, double sliderValue) = 0;
  77. };
  78. #endif //PARAM_INTERFACE_H