Change dali-scene-loader to dali-scene3d
[platform/core/uifw/dali-demo.git] / examples / scene3d / scene3d-example.h
1 #ifndef SCENE_LAUNCHER_H_\r
2 #define SCENE_LAUNCHER_H_\r
3 /*\r
4  * Copyright (c) 2022 Samsung Electronics Co., Ltd.\r
5  *\r
6  * Licensed under the Apache License, Version 2.0 (the "License");\r
7  * you may not use this file except in compliance with the License.\r
8  * You may obtain a copy of the License at\r
9  *\r
10  * http://www.apache.org/licenses/LICENSE-2.0\r
11  *\r
12  * Unless required by applicable law or agreed to in writing, software\r
13  * distributed under the License is distributed on an "AS IS" BASIS,\r
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
15  * See the License for the specific language governing permissions and\r
16  * limitations under the License.\r
17  *\r
18  */\r
19 \r
20 #include <memory>\r
21 #include "dali-scene3d/public-api/loader/animation-definition.h"\r
22 #include "dali-scene3d/public-api/loader/camera-parameters.h"\r
23 #include "dali-scene3d/public-api/loader/node-definition.h"\r
24 #include "dali-scene3d/public-api/loader/scene-definition.h"\r
25 #include "dali-toolkit/devel-api/controls/navigation-view/navigation-view.h"\r
26 #include "dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h"\r
27 #include "dali-toolkit/public-api/controls/scrollable/item-view/item-layout.h"\r
28 #include "dali-toolkit/public-api/controls/scrollable/item-view/item-view.h"\r
29 #include "dali/public-api/actors/camera-actor.h"\r
30 #include "dali/public-api/adaptor-framework/application.h"\r
31 #include "dali/public-api/common/vector-wrapper.h"\r
32 #include "dali/public-api/events/pan-gesture-detector.h"\r
33 #include "dali/public-api/render-tasks/render-task.h"\r
34 #include "dali/public-api/signals/connection-tracker.h"\r
35 \r
36 class Scene3DExtension;\r
37 \r
38 class Scene3DExample : public Dali::ConnectionTracker\r
39 {\r
40 public:\r
41   Scene3DExample(Dali::Application& app);\r
42   ~Scene3DExample();\r
43 \r
44 private: // data\r
45   Dali::Application& mApp;\r
46 \r
47   std::vector<std::string> mSceneNames;\r
48 \r
49   Dali::Toolkit::NavigationView mNavigationView;\r
50 \r
51   std::unique_ptr<Dali::Toolkit::ItemFactory> mItemFactory;\r
52   Dali::Toolkit::ItemLayoutPtr                mItemLayout;\r
53   Dali::Toolkit::ItemView                     mItemView;\r
54 \r
55   Dali::CameraActor mSceneCamera;\r
56   Dali::RenderTask  mSceneRender;\r
57 \r
58   Dali::Quaternion mCameraOrientationInv;\r
59 \r
60   Dali::TapGestureDetector mTapDetector;\r
61   Dali::PanGestureDetector mPanDetector;\r
62 \r
63   Dali::Actor mActivatedActor;\r
64 \r
65 public:\r
66   Dali::Actor mScene;\r
67 \r
68   std::vector<Dali::Scene3D::Loader::AnimationDefinition> mSceneAnimations;\r
69   Dali::Animation                                     mCurrentAnimation;\r
70 \r
71   std::unique_ptr<Scene3DExtension> mScene3DExtension;\r
72 \r
73 private: // methods\r
74   void OnInit(Dali::Application& app);\r
75   void OnTerminate(Dali::Application& app);\r
76 \r
77   void OnKey(const Dali::KeyEvent& e);\r
78   void OnPan(Dali::Actor actor, const Dali::PanGesture& pan);\r
79   void OnTap(Dali::Actor actor, const Dali::TapGesture& tap);\r
80 \r
81   Dali::Actor OnKeyboardPreFocusChange(Dali::Actor current, Dali::Actor proposed, Dali::Toolkit::Control::KeyboardFocus::Direction direction);\r
82   void        OnKeyboardFocusedActorActivated(Dali::Actor activatedActor);\r
83   void        OnKeyboardFocusChanged(Dali::Actor originalFocusedActor, Dali::Actor currentFocusedActor);\r
84 };\r
85 \r
86 #endif //SCENE_LAUNCHER_H_\r