DynamicTexturedCubeDemo.cpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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. float m_x;
  21. float m_y;
  22. float m_z;
  23. b3AlignedObjectArray<int> m_movingInstances;
  24. TinyVRGui* m_tinyVrGUI;
  25. enum
  26. {
  27. numCubesX = 1,
  28. numCubesY = 1
  29. };
  30. public:
  31. DynamicTexturedCubeDemo(CommonGraphicsApp* app)
  32. :m_app(app),
  33. m_x(0),
  34. m_y(0),
  35. m_z(0),
  36. m_tinyVrGUI(0)
  37. {
  38. m_app->setUpAxis(2);
  39. {
  40. b3Vector3 extents=b3MakeVector3(100,100,100);
  41. extents[m_app->getUpAxis()]=1;
  42. int xres = 20;
  43. int yres = 20;
  44. b3Vector4 color0=b3MakeVector4(0.1, 0.1, 0.5,1);
  45. b3Vector4 color1=b3MakeVector4(0.6, 0.6, 0.6,1);
  46. m_app->registerGrid(xres, yres, color0, color1);
  47. }
  48. ComboBoxParams comboParams;
  49. comboParams.m_comboboxId = 0;
  50. comboParams.m_numItems = 0;
  51. comboParams.m_startItem = 0;
  52. comboParams.m_callback = 0;//MyComboBoxCallback;
  53. comboParams.m_userPointer = 0;//this;
  54. m_tinyVrGUI = new TinyVRGui(comboParams,m_app->m_renderer);
  55. m_tinyVrGUI->init();
  56. m_app->m_renderer->writeTransforms();
  57. }
  58. virtual ~DynamicTexturedCubeDemo()
  59. {
  60. delete m_tinyVrGUI;
  61. m_app->m_renderer->enableBlend(false);
  62. }
  63. virtual void physicsDebugDraw(int debugDrawMode)
  64. {
  65. }
  66. virtual void initPhysics()
  67. {
  68. }
  69. virtual void exitPhysics()
  70. {
  71. }
  72. virtual void stepSimulation(float deltaTime)
  73. {
  74. static b3Transform tr = b3Transform::getIdentity();
  75. static b3Scalar t = 0.f;
  76. t+=deltaTime;
  77. tr.setOrigin(b3MakeVector3(0.,0.,2.)+b3MakeVector3(0.,0.,0.02*b3Sin(t)));
  78. m_tinyVrGUI->tick(deltaTime,tr);
  79. m_app->m_renderer->writeTransforms();
  80. }
  81. virtual void renderScene()
  82. {
  83. m_app->m_renderer->renderScene();
  84. }
  85. virtual void physicsDebugDraw()
  86. {
  87. }
  88. virtual bool mouseMoveCallback(float x,float y)
  89. {
  90. return false;
  91. }
  92. virtual bool mouseButtonCallback(int button, int state, float x, float y)
  93. {
  94. return false;
  95. }
  96. virtual bool keyboardCallback(int key, int state)
  97. {
  98. return false;
  99. }
  100. virtual void resetCamera()
  101. {
  102. float dist = 1.15;
  103. float pitch = 396;
  104. float yaw = 33.7;
  105. float targetPos[3]={-0.5,0.7,1.45};
  106. if (m_app->m_renderer && m_app->m_renderer->getActiveCamera())
  107. {
  108. m_app->m_renderer->getActiveCamera()->setCameraDistance(dist);
  109. m_app->m_renderer->getActiveCamera()->setCameraPitch(pitch);
  110. m_app->m_renderer->getActiveCamera()->setCameraYaw(yaw);
  111. m_app->m_renderer->getActiveCamera()->setCameraTargetPosition(targetPos[0],targetPos[1],targetPos[2]);
  112. }
  113. }
  114. };
  115. class CommonExampleInterface* DynamicTexturedCubeDemoCreateFunc(struct CommonExampleOptions& options)
  116. {
  117. return new DynamicTexturedCubeDemo(options.m_guiHelper->getAppInterface());
  118. }