Main.cpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. int main(int argc, char* argv[])
  50. {
  51. Error err = Error::kNone;
  52. MyApp* app = new MyApp(allocAligned, nullptr);
  53. err = app->init(argc, argv, "SkeletalAnimation");
  54. if(!err)
  55. {
  56. err = app->mainLoop();
  57. }
  58. delete app;
  59. if(err)
  60. {
  61. ANKI_LOGE("Error reported. Bye!");
  62. }
  63. else
  64. {
  65. ANKI_LOGI("Bye!!");
  66. }
  67. return 0;
  68. }