Main.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // Copyright (C) 2009-2020, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #include <cstdio>
  6. #include "../common/Framework.h"
  7. using namespace anki;
  8. class MyApp : public SampleApp
  9. {
  10. public:
  11. AnimationResourcePtr m_floatAnim;
  12. AnimationResourcePtr m_waveAnim;
  13. Error sampleExtraInit() override
  14. {
  15. ScriptResourcePtr script;
  16. ANKI_CHECK(getResourceManager().loadResource("assets/scene.lua", script));
  17. ANKI_CHECK(getScriptManager().evalString(script->getSource()));
  18. ANKI_CHECK(getResourceManager().loadResource("assets/float.001.ankianim", m_floatAnim));
  19. ANKI_CHECK(getResourceManager().loadResource("assets/wave.001.ankianim", m_waveAnim));
  20. AnimationPlayInfo animInfo;
  21. animInfo.m_startTime = 2.0;
  22. animInfo.m_repeatTimes = -1.0;
  23. getSceneGraph()
  24. .findSceneNode("droid.001")
  25. .getComponent<SkinComponent>()
  26. .playAnimation(0, m_floatAnim, animInfo);
  27. getMainRenderer().getOffscreenRenderer().getVolumetricFog().setFogParticleColor(Vec3(1.0f, 0.9f, 0.9f));
  28. getMainRenderer().getOffscreenRenderer().getVolumetricFog().setParticleDensity(2.0f);
  29. getMainRenderer().getOffscreenRenderer().getBloom().setThreshold(5.0f);
  30. return Error::NONE;
  31. }
  32. Error userMainLoop(Bool& quit) override
  33. {
  34. if(getInput().getKey(KeyCode::H) == 1)
  35. {
  36. AnimationPlayInfo animInfo;
  37. animInfo.m_startTime = 0.5;
  38. animInfo.m_repeatTimes = 3.0;
  39. animInfo.m_blendInTime = 0.5;
  40. animInfo.m_blendOutTime = 0.35;
  41. getSceneGraph()
  42. .findSceneNode("droid.001")
  43. .getComponent<SkinComponent>()
  44. .playAnimation(1, m_waveAnim, animInfo);
  45. }
  46. return SampleApp::userMainLoop(quit);
  47. }
  48. };
  49. int main(int argc, char* argv[])
  50. {
  51. Error err = Error::NONE;
  52. MyApp* app = new MyApp;
  53. err = app->init(argc, argv, "skeletal_animation");
  54. if(!err)
  55. {
  56. err = app->mainLoop();
  57. }
  58. if(err)
  59. {
  60. ANKI_LOGE("Error reported. To run %s you have to navigate to the /path/to/anki/samples/sponza. "
  61. "And then execute it",
  62. argv[0]);
  63. }
  64. else
  65. {
  66. delete app;
  67. ANKI_LOGI("Bye!!");
  68. }
  69. return 0;
  70. }