Main.cpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // Copyright (C) 2009-2021, 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/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. .getFirstComponentOfType<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, Second elapsedTime) override
  33. {
  34. if(getInput().getKey(KeyCode::Z) == 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. .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::NONE;
  52. MyApp* app = new MyApp;
  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. }