DynamicTexturedCubeDemo.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #include "DynamicTexturedCubeDemo.h"
  2. #include "Bullet3Common/b3Logging.h"
  3. #include "../CommonInterfaces/CommonGraphicsAppInterface.h"
  4. #include "Bullet3Common/b3Quaternion.h"
  5. #include "Bullet3Common/b3AlignedObjectArray.h"
  6. #include "../CommonInterfaces/CommonRenderInterface.h"
  7. #include "../CommonInterfaces/CommonExampleInterface.h"
  8. #include "../CommonInterfaces/CommonGUIHelperInterface.h"
  9. #include "GwenGUISupport/GraphingTexture.h"
  10. #include "../CommonInterfaces/Common2dCanvasInterface.h"
  11. #include "../RenderingExamples/TimeSeriesCanvas.h"
  12. #include "../RenderingExamples/TimeSeriesFontData.h"
  13. #include "../Importers/ImportMeshUtility/b3ImportMeshUtility.h"
  14. #include "../OpenGLWindow/GLInstanceGraphicsShape.h"
  15. #include "TinyVRGui.h"
  16. #include "../CommonInterfaces/CommonParameterInterface.h"
  17. class DynamicTexturedCubeDemo : public CommonExampleInterface
  18. {
  19. CommonGraphicsApp* m_app;
  20. b3AlignedObjectArray<int> m_movingInstances;
  21. TinyVRGui* m_tinyVrGUI;
  22. enum
  23. {
  24. numCubesX = 1,
  25. numCubesY = 1
  26. };
  27. public:
  28. DynamicTexturedCubeDemo(CommonGraphicsApp* app)
  29. : m_app(app),
  30. m_tinyVrGUI(0)
  31. {
  32. m_app->setUpAxis(2);
  33. {
  34. b3Vector3 extents = b3MakeVector3(100, 100, 100);
  35. extents[m_app->getUpAxis()] = 1;
  36. int xres = 20;
  37. int yres = 20;
  38. b3Vector4 color0 = b3MakeVector4(0.1, 0.1, 0.5, 1);
  39. b3Vector4 color1 = b3MakeVector4(0.6, 0.6, 0.6, 1);
  40. m_app->registerGrid(xres, yres, color0, color1);
  41. }
  42. ComboBoxParams comboParams;
  43. comboParams.m_comboboxId = 0;
  44. comboParams.m_numItems = 0;
  45. comboParams.m_startItem = 0;
  46. comboParams.m_callback = 0; //MyComboBoxCallback;
  47. comboParams.m_userPointer = 0; //this;
  48. m_tinyVrGUI = new TinyVRGui(comboParams, m_app->m_renderer);
  49. m_tinyVrGUI->init();
  50. m_app->m_renderer->writeTransforms();
  51. }
  52. virtual ~DynamicTexturedCubeDemo()
  53. {
  54. delete m_tinyVrGUI;
  55. }
  56. virtual void physicsDebugDraw(int debugDrawMode)
  57. {
  58. }
  59. virtual void initPhysics()
  60. {
  61. }
  62. virtual void exitPhysics()
  63. {
  64. }
  65. virtual void stepSimulation(float deltaTime)
  66. {
  67. static b3Transform tr = b3Transform::getIdentity();
  68. static b3Scalar t = 0.f;
  69. t += deltaTime;
  70. tr.setOrigin(b3MakeVector3(0., 0., 2.) + b3MakeVector3(0., 0., 0.02 * b3Sin(t)));
  71. m_tinyVrGUI->tick(deltaTime, tr);
  72. m_app->m_renderer->writeTransforms();
  73. }
  74. virtual void renderScene()
  75. {
  76. m_app->m_renderer->renderScene();
  77. }
  78. virtual void physicsDebugDraw()
  79. {
  80. }
  81. virtual bool mouseMoveCallback(float x, float y)
  82. {
  83. return false;
  84. }
  85. virtual bool mouseButtonCallback(int button, int state, float x, float y)
  86. {
  87. return false;
  88. }
  89. virtual bool keyboardCallback(int key, int state)
  90. {
  91. return false;
  92. }
  93. virtual void resetCamera()
  94. {
  95. float dist = 1.15;
  96. float pitch = -33.7;
  97. float yaw = 396;
  98. float targetPos[3] = {-0.5, 0.7, 1.45};
  99. if (m_app->m_renderer && m_app->m_renderer->getActiveCamera())
  100. {
  101. m_app->m_renderer->getActiveCamera()->setCameraDistance(dist);
  102. m_app->m_renderer->getActiveCamera()->setCameraPitch(pitch);
  103. m_app->m_renderer->getActiveCamera()->setCameraYaw(yaw);
  104. m_app->m_renderer->getActiveCamera()->setCameraTargetPosition(targetPos[0], targetPos[1], targetPos[2]);
  105. }
  106. }
  107. };
  108. class CommonExampleInterface* DynamicTexturedCubeDemoCreateFunc(struct CommonExampleOptions& options)
  109. {
  110. return new DynamicTexturedCubeDemo(options.m_guiHelper->getAppInterface());
  111. }