Main.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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(ResourceManager::getSingleton().loadResource("Assets/float.001_ccb9eb33e30c8fa4.ankianim", m_floatAnim));
  20. ANKI_CHECK(ResourceManager::getSingleton().loadResource("Assets/wave_6cf284ed471bff3b.ankianim", m_waveAnim));
  21. AnimationPlayInfo animInfo;
  22. animInfo.m_startTime = 2.0;
  23. animInfo.m_repeatTimes = -1.0;
  24. SceneGraph::getSingleton().findSceneNode("droid.001").getFirstComponentOfType<SkinComponent>().playAnimation(0, m_floatAnim, animInfo);
  25. g_bloomThresholdCVar.set(5.0f);
  26. return Error::kNone;
  27. }
  28. Error userMainLoop(Bool& quit, Second elapsedTime) override
  29. {
  30. if(Input::getSingleton().getKey(KeyCode::kZ) == 1)
  31. {
  32. AnimationPlayInfo animInfo;
  33. animInfo.m_startTime = 0.5;
  34. animInfo.m_repeatTimes = 3.0;
  35. animInfo.m_blendInTime = 0.5;
  36. animInfo.m_blendOutTime = 0.35;
  37. SceneGraph::getSingleton().findSceneNode("droid.001").getFirstComponentOfType<SkinComponent>().playAnimation(1, m_waveAnim, animInfo);
  38. }
  39. return SampleApp::userMainLoop(quit, elapsedTime);
  40. }
  41. };
  42. ANKI_MAIN_FUNCTION(myMain)
  43. int myMain(int argc, char* argv[])
  44. {
  45. Error err = Error::kNone;
  46. MyApp* app = new MyApp(allocAligned, nullptr);
  47. err = app->init(argc, argv, "SkeletalAnimation");
  48. if(!err)
  49. {
  50. err = app->mainLoop();
  51. }
  52. delete app;
  53. if(err)
  54. {
  55. ANKI_LOGE("Error reported. Bye!");
  56. }
  57. else
  58. {
  59. ANKI_LOGI("Bye!!");
  60. }
  61. return 0;
  62. }