Main.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. // Copyright (C) 2009-2023, 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. using SampleApp::SampleApp;
  12. AnimationResourcePtr m_floatAnim;
  13. AnimationResourcePtr m_waveAnim;
  14. Error sampleExtraInit() override
  15. {
  16. ScriptResourcePtr script;
  17. ANKI_CHECK(ResourceManager::getSingleton().loadResource("Assets/Scene.lua", script));
  18. ANKI_CHECK(ScriptManager::getSingleton().evalString(script->getSource()));
  19. ANKI_CHECK(
  20. ResourceManager::getSingleton().loadResource("Assets/float.001_ccb9eb33e30c8fa4.ankianim", m_floatAnim));
  21. ANKI_CHECK(ResourceManager::getSingleton().loadResource("Assets/wave_6cf284ed471bff3b.ankianim", m_waveAnim));
  22. AnimationPlayInfo animInfo;
  23. animInfo.m_startTime = 2.0;
  24. animInfo.m_repeatTimes = -1.0;
  25. SceneGraph::getSingleton()
  26. .findSceneNode("droid.001")
  27. .getFirstComponentOfType<SkinComponent>()
  28. .playAnimation(0, m_floatAnim, animInfo);
  29. ConfigSet::getSingleton().setRBloomThreshold(5.0f);
  30. return Error::kNone;
  31. }
  32. Error userMainLoop(Bool& quit, Second elapsedTime) override
  33. {
  34. if(Input::getSingleton().getKey(KeyCode::kZ) == 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. SceneGraph::getSingleton()
  42. .findSceneNode("droid.001")
  43. .getFirstComponentOfType<SkinComponent>()
  44. .playAnimation(1, m_waveAnim, animInfo);
  45. }
  46. return SampleApp::userMainLoop(quit, elapsedTime);
  47. }
  48. };
  49. ANKI_MAIN_FUNCTION(myMain)
  50. int myMain(int argc, char* argv[])
  51. {
  52. Error err = Error::kNone;
  53. MyApp* app = new MyApp(allocAligned, nullptr);
  54. err = app->init(argc, argv, "SkeletalAnimation");
  55. if(!err)
  56. {
  57. err = app->mainLoop();
  58. }
  59. delete app;
  60. if(err)
  61. {
  62. ANKI_LOGE("Error reported. Bye!");
  63. }
  64. else
  65. {
  66. ANKI_LOGI("Bye!!");
  67. }
  68. return 0;
  69. }