You.i Engine
YiImageSceneNode.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_IMAGE_SCENE_NODE_H_
3 #define _YI_IMAGE_SCENE_NODE_H_
4 
6 
28 {
29 public:
30 
36  enum SIZE_MODE
37  {
45  };
46 
61  {
66  };
67 
69  virtual ~CYIImageSceneNode();
70 
71  virtual bool Init() override;
72 
76  virtual void SetSize(const glm::vec3 &vSize, bool bDirtyLayout = true) override;
77 
83  void SetSizeMode(SIZE_MODE eScaleMode);
84 
88  SIZE_MODE GetSizeMode() const;
89 
95  void SetRepeatMode(REPEAT_MODE eRepeatMode);
96 
100  REPEAT_MODE GetRepeatMode() const;
101 
107  void SetImageScale(const glm::vec2 &vImageScale);
108  const glm::vec2 &GetImageScale() const;
109 
117  void SetImageAlignment(const glm::vec2 &vImageAlignment);
118  const glm::vec2 &GetImageAlignment() const;
119 
125  void SetMipmappingEnabled(bool bEnable);
126 
130  bool IsMipmappingEnabled() const;
131 
132  virtual void Measure(const MeasureSpec &widthSpec, const MeasureSpec &heightSpec, const MeasureSpec &depthSpec) override;
133 
134 protected:
135  void RecalculateMesh();
136 
139  glm::vec2 m_vImageScale;
140  glm::vec2 m_vImageAlignment;
142 
144 };
145 
150 #ifdef YI_FUNCTION_SPECIALIZATION_FULLY_SUPPORTED
151 template<>
152 inline const CYIImageSceneNode *YiDynamicCast<CYIImageSceneNode>(const CYISceneNode *pObject)
153 {
154  return pObject ? (pObject->CanCastTo<CYIImageSceneNode>() ? static_cast<const CYIImageSceneNode *>(pObject) : nullptr) : nullptr;
155 }
156 #endif
157 
158 #endif // _YI_IMAGE_SCENE_NODE_H_
void SetSizeMode(SIZE_MODE eScaleMode)
Definition: YiSceneNode.h:356
Provides special resize behaviour typically useful for images.
Definition: YiImageSceneNode.h:27
The edge pixels of the image are &#39;stretched&#39; to fill the node&#39;s size.
Definition: YiImageSceneNode.h:65
virtual ~CYIImageSceneNode()
The image is tiled to fill the node&#39;s size, but adjacent tiles are mirrored.
Definition: YiImageSceneNode.h:64
The image is tiled to fill the node&#39;s size.
Definition: YiImageSceneNode.h:63
bool IsMipmappingEnabled() const
void SetMipmappingEnabled(bool bEnable)
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
SIZE_MODE
Definition: YiImageSceneNode.h:36
No repeat.
Definition: YiImageSceneNode.h:62
bool m_bUseMipmapping
Definition: YiImageSceneNode.h:141
glm::vec2 m_vImageScale
Definition: YiImageSceneNode.h:139
REPEAT_MODE GetRepeatMode() const
SIZE_MODE GetSizeMode() const
Definition: YiImageSceneNode.h:38
const glm::vec2 & GetImageScale() const
Definition: YiImageSceneNode.h:39
REPEAT_MODE
Definition: YiImageSceneNode.h:60
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
virtual void SetSize(const glm::vec3 &vSize, bool bDirtyLayout=true) override
glm::vec2 m_vImageAlignment
Definition: YiImageSceneNode.h:140
Definition: YiImageSceneNode.h:43
void SetImageScale(const glm::vec2 &vImageScale)
void SetRepeatMode(REPEAT_MODE eRepeatMode)
SIZE_MODE m_eSizeMode
Definition: YiImageSceneNode.h:137
void SetImageAlignment(const glm::vec2 &vImageAlignment)
virtual void Measure(const MeasureSpec &widthSpec, const MeasureSpec &heightSpec, const MeasureSpec &depthSpec) override
Definition: YiImageSceneNode.h:41
virtual bool Init() override
const glm::vec2 & GetImageAlignment() const
REPEAT_MODE m_eRepeatMode
Definition: YiImageSceneNode.h:138