You.i Engine
YiViewAdapter.h
Go to the documentation of this file.
1 #ifndef _YI_VIEW_ADAPTER_H_
2 #define _YI_VIEW_ADAPTER_H_
3 
5 
7 class CYISceneView;
8 class IYIViewRecycler;
9 
24 {
25 public:
29  CYIViewAdapter(const std::shared_ptr<IYIViewRecycler> &pViewRecycler = std::shared_ptr<IYIViewRecycler>());
30  virtual ~CYIViewAdapter();
31 
32  virtual uint32_t GetItemsCount() const override = 0;
33 
40  virtual glm::vec3 GetInitialNodeSize(uint32_t uIndex) const override;
41 
53  virtual void ConfigureProperties(uint32_t uIndex, CYISceneNode *pNode) const override;
54 
55  virtual std::unique_ptr<CYISceneNode> BuildNode(uint32_t uIndex, CYISceneManager *pSceneManager) final override;
56 
57  virtual void ReleaseNode(uint32_t uIndex, std::unique_ptr<CYISceneNode> pNode) final override;
58 
62  virtual std::shared_ptr<CYIAssetViewTemplate> GetViewTemplate(uint32_t uIndex) const = 0;
63 
70  virtual const CYIRuntimeTypeInfo *GetViewClass(uint32_t uIndex) const;
71 
72 protected:
76  virtual void PopulateView(uint32_t uIndex, CYISceneView *pView) = 0;
77 
86  virtual void OnReleaseView(uint32_t uIndex, CYISceneView *pView);
87 
88 private:
89  std::shared_ptr<IYIViewRecycler> m_pViewRecycler;
90 
92 };
93 
98 #endif
virtual std::shared_ptr< CYIAssetViewTemplate > GetViewTemplate(uint32_t uIndex) const =0
Scene trees composed of CYISceneNode objects are registered with the scene manager in order for them ...
Definition: YiSceneManager.h:73
The base class for all view types. Views are containers of renderable elements that often define inte...
Definition: YiSceneView.h:47
virtual void OnReleaseView(uint32_t uIndex, CYISceneView *pView)
virtual void ReleaseNode(uint32_t uIndex, std::unique_ptr< CYISceneNode > pNode) finaloverride
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
virtual std::unique_ptr< CYISceneNode > BuildNode(uint32_t uIndex, CYISceneManager *pSceneManager) finaloverride
A simplified CYINodeAdapter interface for automatically building views using provided view templates...
Definition: YiViewAdapter.h:23
virtual void ConfigureProperties(uint32_t uIndex, CYISceneNode *pNode) const override
virtual uint32_t GetItemsCount() const override=0
Provides an interface for supplying and reclaiming nodes to and from CYIStreamer. ...
Definition: YiNodeAdapter.h:31
virtual glm::vec3 GetInitialNodeSize(uint32_t uIndex) const override
A scene node is the base type for all nodes which are used by the scene manager; it is an integral pa...
Definition: YiSceneNode.h:114
ViewTemplate asset. Wrapper around a CYIViewTemplate.
Definition: YiAssetViewTemplate.h:21
The abstract runtime representation of a C++ type.
Definition: YiRtti.h:48
CYIViewAdapter(const std::shared_ptr< IYIViewRecycler > &pViewRecycler=std::shared_ptr< IYIViewRecycler >())
Definition: YiViewRecycler.h:24
virtual ~CYIViewAdapter()
virtual void PopulateView(uint32_t uIndex, CYISceneView *pView)=0
virtual const CYIRuntimeTypeInfo * GetViewClass(uint32_t uIndex) const