Main.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // Copyright (C) 2009-2022, 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 <Samples/Common/SampleApp.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_ccb9eb33e30c8fa4.ankianim", m_floatAnim));
  19. ANKI_CHECK(getResourceManager().loadResource("Assets/wave_6cf284ed471bff3b.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. .getFirstComponentOfType<SkinComponent>()
  26. .playAnimation(0, m_floatAnim, animInfo);
  27. getConfig().setRBloomThreshold(5.0f);
  28. return Error::NONE;
  29. }
  30. Error userMainLoop(Bool& quit, Second elapsedTime) override
  31. {
  32. if(getInput().getKey(KeyCode::Z) == 1)
  33. {
  34. AnimationPlayInfo animInfo;
  35. animInfo.m_startTime = 0.5;
  36. animInfo.m_repeatTimes = 3.0;
  37. animInfo.m_blendInTime = 0.5;
  38. animInfo.m_blendOutTime = 0.35;
  39. getSceneGraph()
  40. .findSceneNode("droid.001")
  41. .getFirstComponentOfType<SkinComponent>()
  42. .playAnimation(1, m_waveAnim, animInfo);
  43. }
  44. return SampleApp::userMainLoop(quit, elapsedTime);
  45. }
  46. };
  47. int main(int argc, char* argv[])
  48. {
  49. Error err = Error::NONE;
  50. MyApp* app = new MyApp;
  51. err = app->init(argc, argv, "SkeletalAnimation");
  52. if(!err)
  53. {
  54. err = app->mainLoop();
  55. }
  56. delete app;
  57. if(err)
  58. {
  59. ANKI_LOGE("Error reported. Bye!");
  60. }
  61. else
  62. {
  63. ANKI_LOGI("Bye!!");
  64. }
  65. return 0;
  66. }