TimeSeriesExample.cpp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #include "TimeSeriesExample.h"
  2. #include "../CommonInterfaces/CommonGraphicsAppInterface.h"
  3. #include "../CommonInterfaces/CommonRenderInterface.h"
  4. #include "../CommonInterfaces/Common2dCanvasInterface.h"
  5. #include "../CommonInterfaces/CommonExampleInterface.h"
  6. #include "LinearMath/btAlignedObjectArray.h"
  7. #include "btBulletCollisionCommon.h"
  8. #include "../CommonInterfaces/CommonGUIHelperInterface.h"
  9. #include "TimeSeriesCanvas.h"
  10. struct TimeSeriesExample : public CommonExampleInterface
  11. {
  12. struct CommonGraphicsApp* m_app;
  13. struct TimeSeriesExampleInternalData* m_internalData;
  14. TimeSeriesExample(struct CommonGraphicsApp* app);
  15. virtual ~TimeSeriesExample();
  16. virtual void initPhysics();
  17. virtual void exitPhysics();
  18. virtual void stepSimulation(float deltaTime);
  19. virtual void physicsDebugDraw(int debugFlags);
  20. virtual void syncPhysicsToGraphics(struct GraphicsPhysicsBridge& gfxBridge);
  21. virtual bool mouseMoveCallback(float x,float y);
  22. virtual bool mouseButtonCallback(int button, int state, float x, float y);
  23. virtual bool keyboardCallback(int key, int state);
  24. virtual void renderScene()
  25. {
  26. }
  27. };
  28. struct TimeSeriesExampleInternalData
  29. {
  30. TimeSeriesCanvas* m_timeSeriesCanvas;
  31. TimeSeriesExampleInternalData()
  32. :m_timeSeriesCanvas(0)
  33. {
  34. }
  35. };
  36. TimeSeriesExample::TimeSeriesExample(struct CommonGraphicsApp* app)
  37. {
  38. m_app = app;
  39. m_internalData = new TimeSeriesExampleInternalData;
  40. }
  41. TimeSeriesExample::~TimeSeriesExample()
  42. {
  43. delete m_internalData->m_timeSeriesCanvas;
  44. delete m_internalData;
  45. }
  46. void TimeSeriesExample::initPhysics()
  47. {
  48. //request a visual bitma/texture we can render to
  49. m_internalData->m_timeSeriesCanvas = new TimeSeriesCanvas(m_app->m_2dCanvasInterface,512,512, "Test");
  50. m_internalData->m_timeSeriesCanvas ->setupTimeSeries(3,100, 0);
  51. m_internalData->m_timeSeriesCanvas->addDataSource("Some sine wave", 255,0,0);
  52. m_internalData->m_timeSeriesCanvas->addDataSource("Some cosine wave", 0,255,0);
  53. m_internalData->m_timeSeriesCanvas->addDataSource("Delta Time (*10)", 0,0,255);
  54. m_internalData->m_timeSeriesCanvas->addDataSource("Tan", 255,0,255);
  55. m_internalData->m_timeSeriesCanvas->addDataSource("Some cosine wave2", 255,255,0);
  56. m_internalData->m_timeSeriesCanvas->addDataSource("Empty source2", 255,0,255);
  57. }
  58. void TimeSeriesExample::exitPhysics()
  59. {
  60. }
  61. void TimeSeriesExample::stepSimulation(float deltaTime)
  62. {
  63. float time = m_internalData->m_timeSeriesCanvas->getCurrentTime();
  64. float v = sinf(time);
  65. m_internalData->m_timeSeriesCanvas->insertDataAtCurrentTime(v,0,true);
  66. v = cosf(time);
  67. m_internalData->m_timeSeriesCanvas->insertDataAtCurrentTime(v,1,true);
  68. v = tanf(time);
  69. m_internalData->m_timeSeriesCanvas->insertDataAtCurrentTime(v,3,true);
  70. m_internalData->m_timeSeriesCanvas->insertDataAtCurrentTime(deltaTime*10,2,true);
  71. m_internalData->m_timeSeriesCanvas->nextTick();
  72. }
  73. void TimeSeriesExample::physicsDebugDraw(int debugDrawFlags)
  74. {
  75. }
  76. bool TimeSeriesExample::mouseMoveCallback(float x,float y)
  77. {
  78. return false;
  79. }
  80. bool TimeSeriesExample::mouseButtonCallback(int button, int state, float x, float y)
  81. {
  82. return false;
  83. }
  84. bool TimeSeriesExample::keyboardCallback(int key, int state)
  85. {
  86. return false;
  87. }
  88. void TimeSeriesExample::syncPhysicsToGraphics(GraphicsPhysicsBridge& gfxBridge)
  89. {
  90. }
  91. CommonExampleInterface* TimeSeriesCreateFunc(struct CommonExampleOptions& options)
  92. {
  93. return new TimeSeriesExample(options.m_guiHelper->getAppInterface());
  94. }