You.i Engine
CYIImageSceneNode Class Reference

Detailed Description

Provides special resize behaviour typically useful for images.

Image layers in AE are imported as CYIImageSceneNode.

The following properties are supported by the CYIImageSceneNode:

Label Default value Accepted values Description
size-mode stretch stretch, fill, fit, original-size The sizing mode which will be applied when the image node size is larger than the original image texture size.
See also
repeat-mode none none, tile, mirror, clamp The repeat mode which will be applied when the image node size is larger than the original image texture size.
See also
mipmapping false true, false Toggles whether the underlying texture will use mipmapping.

#include <scenetree/YiImageSceneNode.h>

Inheritance diagram for CYIImageSceneNode:

Public Types

enum  SizeMode {
  SizeMode::Stretch = 0,
enum  RepeatMode {
- Public Types inherited from CYISceneNode
enum  LayoutDirtyFlag : uint8_t {
enum  LayoutConfigFetchMode {
  LayoutConfigFetchMode::DoNotLazyInstantiate = 0,
enum  MeasureMode {
enum  FetchType {
  FetchType::Optional = 0,
typedef std::reverse_iterator< IteratorReverseIterator
typedef uint16_t DirtyFlag
- Public Types inherited from CYIEventTarget
enum  SpecialEventTargetType : uint8_t {
  SpecialEventTargetType::None = 0x00,
  SpecialEventTargetType::NoPick = 0x20
enum  Phase : uint8_t {

Public Member Functions

 CYIImageSceneNode ()
virtual ~CYIImageSceneNode ()
virtual bool Init () override
virtual void SetSize (const glm::vec3 &size, bool dirtyLayout=true) override
void SetSizeMode (SizeMode scaleMode)
SizeMode GetSizeMode () const
void SetRepeatMode (RepeatMode repeatMode)
RepeatMode GetRepeatMode () const
void SetImageScale (const glm::vec2 &imageScale)
const glm::vec2 & GetImageScale () const
void SetImageAlignment (const glm::vec2 &imageAlignment)
const glm::vec2 & GetImageAlignment () const
void SetMipmappingEnabled (bool enable)
bool IsMipmappingEnabled () const
virtual void Measure (const MeasureSpec &widthSpec, const MeasureSpec &heightSpec, const MeasureSpec &depthSpec) override
- Public Member Functions inherited from CYISceneNode
 CYISceneNode ()
virtual ~CYISceneNode ()
bool IsInitialized () const
void ForceDirty ()
void SetDirtyFlag (DirtyFlag dirtyFlag)
DirtyFlag GetDirtyFlag () const
DirtyFlag GetPreviousDirtyFlag () const
const CYIStringGetName () const
CYIString GetUniqueName () const
void SetSceneManager (CYISceneManager *pSceneManager)
void SetName (const CYIString &name)
int32_t GetID () const
void SetID (int32_t id)
uint64_t GetUniqueID () const
bool AddChild (std::unique_ptr< CYISceneNode > pSceneNode)
bool AddChild (std::unique_ptr< CYISceneNode >, size_t index)
bool InsertChildAfter (CYISceneNode *pRefNode, std::unique_ptr< CYISceneNode > pSceneNode)
std::unique_ptr< CYISceneNodeRemoveChild (CYISceneNode *pSceneNode)
bool ReorderChild (size_t fromIndex, size_t toIndex)
CYITransformGetTransform ()
CYISceneNodeGetParent () const
bool ChangeParent (CYISceneNode *pParent)
CYISceneNodeGetDrawParent () const
bool IsAncestorOf (const CYISceneNode *pNode) const
CYISceneManagerGetSceneManager () const
size_t GetChildCount () const
uint32_t GetChildCountRecursive () const
CYISceneNodeGetChild (size_t index) const
Iterator begin (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const
Iterator end (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const
ReverseIterator rbegin (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const
ReverseIterator rend (Iterator::Mode mode=Iterator::Mode::ImmediateChildren) const
CYISceneNodeGetChild (const CYIString &name) const
size_t GetDrawChildCount () const
CYISceneNodeGetDrawChild (size_t index) const
CYISceneNodeGetDrawChildByID (int32_t id) const
template<class YI_SCENE_NODE_SUBCLASS >
YI_SCENE_NODE_SUBCLASS * GetChild (uint32_t targetMatchedNodeCount=1) const
template<class YI_SCENE_NODE_SUBCLASS >
std::list< YI_SCENE_NODE_SUBCLASS * > GetChildren () const
template<class YI_SCENE_NODE_SUBCLASS >
std::list< YI_SCENE_NODE_SUBCLASS * > GetDrawChildren () const
size_t GetIndexOfChild (const CYISceneNode *pSceneNode) const
size_t GetIndexOfDrawChild (const CYISceneNode *pSceneNode) const
void Show ()
void Hide ()
void SetVisibility (bool visible)
void SetOpacity (float opacity)
float GetCompositeOpacity () const
float GetLocalOpacity () const
bool IsVisible () const
bool IsTrulyVisible () const
bool IsPerceptible () const
CYISceneNodeGetNode (CYIStringView name)
CYISceneNodeGetNode (CYIStringView name, const CYIRuntimeTypeInfo &enforceClassType)
CYISceneNodeGetNode (const CYIRuntimeTypeInfo &enforceClassType)
CYISceneNodeGetNodeAfterTarget (const CYIRuntimeTypeInfo &enforceClassType, CYISceneNode *pStartAfterTarget)
template<class YI_SCENE_NODE_SUBCLASS >
YI_SCENE_NODE_SUBCLASS * GetNode (CYIStringView name)
CYISceneNodeGetNode (const int32_t id)
CYISceneNodeGetNode (const int32_t id, const CYIRuntimeTypeInfo &enforceClassType)
CYISceneNodeGetNodeWithUniqueID (uint64_t uniqueID)
template<class YI_SCENE_NODE_SUBCLASS >
bool FindNode (YI_SCENE_NODE_SUBCLASS *&pNode, CYIStringView nodeName, FetchType type, const CYIString &tag)
std::list< CYISceneNode * > GetNodes (CYIStringView name)
std::list< CYISceneNode * > GetNodes (int32_t id)
std::list< CYISceneNode * > GetNodes (const CYIRuntimeTypeInfo &enforceClassType)
template<class YI_SCENE_NODE_SUBCLASS >
const YI_SCENE_NODE_SUBCLASS * GetNode (uint32_t targetMatchedNodeCount=1) const
template<class YI_SCENE_NODE_SUBCLASS >
YI_SCENE_NODE_SUBCLASS * GetNode (uint32_t targetMatchedNodeCount=1)
void SetMesh (const std::shared_ptr< CYIMesh > &pMesh)
bool SetNPatchBitmap (const std::shared_ptr< CYIBitmap > &pNPatchBitmap)
void ClearNPatch ()
void SetMaterial (const std::shared_ptr< CYIMaterial > &pMaterial, size_t index=0)
void AddEffect (const std::shared_ptr< CYIEffect > &pEffect)
void RemoveEffect (const std::shared_ptr< CYIEffect > &pEffect)
size_t GetEffectCount () const
const std::shared_ptr< CYIEffect > & GetEffect (size_t index) const
void ConnectEffectsToTimelines (const CYITimelineTrack *pTrack)
void AddMask (std::unique_ptr< CYIMask > pMask)
std::unique_ptr< CYIMaskRemoveMask (const CYIMask *pMask)
size_t GetMaskCount () const
const CYIMaskGetMask (size_t index) const
CYIMaskGetMask (size_t index)
const std::shared_ptr< CYIMesh > & GetMesh () const
const std::shared_ptr< CYIBitmap > & GetNPatchBitmap () const
size_t GetMaterialCount () const
const std::shared_ptr< CYIMaterial > & GetMaterial (size_t index=0) const
const std::shared_ptr< IYIUniformBufferObject > & GetShaderUniforms () const
void SetMeshTransform (const glm::mat4 &rTransform)
void DestroyChildren ()
glm::mat4 GetLocalTransform () const
glm::mat4 GetWorldTransform () const
bool Intersects (const CYISceneNode *pNode) const
void SetRenderTarget (const std::shared_ptr< CYIRenderTarget > &pRenderTarget)
const std::shared_ptr< CYIRenderTarget > & GetRenderTarget () const
virtual void OnPreBuildDrawList (std::vector< IYIRenderer::Command > *pDrawList, std::vector< CYIAbstractCameraSceneNode *> *pDrawWithCameraList)
virtual void OnPostBuildDrawList (std::vector< IYIRenderer::Command > *pDrawList)
const CYIAABBGetWorldAABB () const
const CYIAABBGetLocalAABB () const
void SetAnchorPoint (const glm::vec3 &anchorPoint)
void SetAnchorPoint (float x, float y, float z)
void SetAnchorPointX (float x)
void SetAnchorPointY (float y)
void SetAnchorPointZ (float z)
void SetPosition (const glm::vec3 &position)
void SetPosition (float x, float y, float z)
void SetPositionX (float x)
void SetPositionY (float y)
void SetPositionZ (float z)
void SetRotation (const glm::vec3 &rotation)
void SetRotation (float pitchDegrees, float yawDegrees, float rollDegrees)
void SetRotationX (float pitchDegrees)
void SetRotationY (float yawDegrees)
void SetRotationZ (float rollDegrees)
void SetOrientation (float pitchDegrees, float yawDegrees, float rollDegrees)
void SetOrientation (const glm::quat &orientation)
void SetScale (const glm::vec3 &scale)
void SetScale (float factorX, float factorY, float factorZ)
void SetScaleX (float factor)
void SetScaleY (float factor)
void SetScaleZ (float factor)
const glm::vec3 & GetPosition () const
const glm::vec3 & GetScale () const
const glm::vec3 & GetWorldScale () const
const glm::vec3 & GetWorldSurfaceScale () const
const glm::vec3 & GetRotation () const
const glm::quat & GetOrientation () const
const glm::vec3 & GetAnchorPoint () const
const glm::vec3 & GetSize () const
const glm::vec3 & GetInitialSize () const
void SetMeasuredSize (const glm::vec3 &measuredSize)
const glm::vec3 & GetMeasuredSize () const
void SetInternalCustomTimelineValue (uint32_t trackID, const CYIVariant &value)
virtual void SetCustomTimelineValue (uint32_t trackID, const CYIVariant &value)
void SetClippingOn ()
void SetClippingOff ()
bool GetClipping () const
void SetClippingBox (const CYIAABB &rWorldBox)
const CYIAABBGetClippingBox () const
void StartPropertyAnimation (PropertyAnimation::Type propType, float from, float to, uint32_t durMs, CYITimeInterpolator *pTimeInterpolator=nullptr, bool dirtyLayout=true)
void StopPropertyAnimation (PropertyAnimation::Type propType)
void UpdateLocalSpaceCollision (CYIActionEvent *pActionEvent)
virtual bool BroadcastEvent (const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent)
void UpdateEventForLocalSpace (CYIActionEvent *pActionEvent, glm::vec3 &rayOrigin, glm::vec3 &rayNonOriginPoint) const
bool IsBoundingBoxHit (const CYIRay &rWorldSpaceRay) const
bool IsMeshHit (const CYIRay &rWorldSpaceRay) const
void DumpTree () const
void StartCaptureKeyboardEvents ()
void StopCaptureKeyboardEvents ()
void StartCaptureTrackpadEvents ()
void StopCaptureTrackpadEvents ()
void StartCapturePointerEvents (uint8_t pointerID)
void StopCapturePointerEvents (uint8_t pointerID)
bool DrawBehindChildren (CYISceneNode *pSceneNode, bool *pChanged=nullptr)
bool DrawInFrontOfChildren (CYISceneNode *pSceneNode, bool *pChanged=nullptr)
bool DrawBehind (CYISceneNode *pSceneNode, bool *pChanged=nullptr)
bool DrawInFront (CYISceneNode *pSceneNode, bool *pChanged=nullptr)
bool IsFocusRoot () const
void SetIsFocusRoot (bool isFocusRoot)
virtual void OnFocusGainedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus)
virtual void FocusGainedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus)
virtual void OnFocusLostInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus)
virtual void FocusLostInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus)
virtual void OnFocusChangedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus)
virtual void FocusChangedInDescendants (CYISceneNode *pNewNodeWithFocus, CYISceneNode *pPreviousNodeWithFocus)
virtual bool ContainsFocusableDescendant (const CYIFocusSearchOptions &options=CYIFocusSearchOptions()) const
void SetUseLocalTransformAndAlpha (bool use)
virtual CYIOptional< CYIStringViewGetProperty (CYIStringView propertyName) const override
bool GetProperty (CYIStringView propertyName, CYIString *pValue) const
virtual std::map< CYIString, CYIStringGetProperties () const override
virtual void ForEachProperty (const std::function< void(const CYIString &, const CYIString &)> &action) const override
virtual bool HasProperties () const override
void SetProperty (const CYIString &rPropertyName, const CYIString &rPropertyValue)
std::shared_ptr< CYISceneNodeProxyGetSceneNodeProxy () const
void SetLayoutConfig (std::unique_ptr< CYILayoutConfig > pLayoutConfig)
const CYILayoutConfigGetLayoutConfig (LayoutConfigFetchMode fetchMode=LayoutConfigFetchMode::LazyInstantiate) const
CYILayoutConfigGetLayoutConfig (LayoutConfigFetchMode fetchMode=LayoutConfigFetchMode::LazyInstantiate)
void SetLayoutState (std::unique_ptr< CYILayoutState > pLayoutState)
const CYILayoutStateGetLayoutState () const
CYILayoutStateGetLayoutState ()
void RequestLayout ()
LayoutDirtyFlag GetLayoutDirtyFlag () const
virtual void SetLayoutDirtyFlag (LayoutDirtyFlag flag)
virtual void ApplyMeasurements ()
virtual CYIAbstractCameraSceneNodeFindActiveCamera (const CYISceneNode *pTargetSceneNode=nullptr) const
CYIAccessibilityAttributes::Accessible GetAccessible () const
void SetAccessible (CYIAccessibilityAttributes::Accessible accessible)
const CYIAccessibilityAttributesGetAccessibilityAttributes () const
std::unique_ptr< CYIAccessibilityAttributesTakeAccessibilityAttributes ()
void SetAccessibilityAttributes (std::unique_ptr< CYIAccessibilityAttributes > pAttributes)
const CYIRenderableGetRenderable () const
template<typename T >
bool CanCastTo () const
CYIAdjustmentLayerSceneNode * GetLastAdjustmentLayer () const
- Public Member Functions inherited from CYIEventTarget
 CYIEventTarget ()
virtual ~CYIEventTarget ()
bool AddEventListener (CYIEvent::Type eventType, CYIEventHandler *pListener, CYIEventTarget::Phase phase=CYIEventTarget::Phase::Bubble)
bool RemoveEventListener (CYIEvent::Type eventType, CYIEventHandler *pListener, CYIEventTarget::Phase phase=CYIEventTarget::Phase::Bubble)
void SetSpecialTypeFlag (SpecialEventTargetType type)
void ClearSpecialTypeFlag (SpecialEventTargetType type)
SpecialEventTargetType GetSpecialTypes () const
const std::shared_ptr< CYIEventTargetProxy > & GetProxy () const
- Public Member Functions inherited from CYISignalHandler
 CYISignalHandler ()
 CYISignalHandler (const CYISignalHandler &rSignalHandler)
virtual ~CYISignalHandler ()
CYISignalHandleroperator= (const CYISignalHandler &rSignalHandler)
void MoveToThread (CYIThread *pThread)
 This function allows the user to override the default thread affinity to any CYIThread that may or may not be running. More...
CYIThreadHandle GetThreadAffinity () const
void SetThreadAffinity (const CYIThreadHandle &rThreadAffinity)
virtual bool IsConnected () const
virtual bool IsConnected (const CYISignalBase &rSignal) const
void Disconnect (CYISignalBase &rSignal)
void DisconnectFromAllSignals ()
- Public Member Functions inherited from CYIThread::Listener
 Listener ()
virtual ~Listener ()
virtual void OnThreadStarted (CYIThread *)
virtual void OnThreadTerminated (CYIThread *)
virtual void OnThreadFinished (CYIThread *)
- Public Member Functions inherited from IYIPropertiesSource
virtual ~IYIPropertiesSource ()=default
bool GetProperty (CYIStringView propertyName, CYIString *pValue) const

Protected Member Functions

void RecalculateMesh ()
- Protected Member Functions inherited from CYISceneNode
void Update ()
virtual void OnUpdateBegin ()
virtual void UpdateBegin ()
virtual void OnUpdateEnd ()
virtual void UpdateEnd ()
virtual void OnDirtyFlagChanged ()
virtual void DirtyFlagChanged ()
virtual void OnTransformUpdated ()
virtual void TransformUpdated ()
virtual void OnWorldScaleUpdated ()
virtual void WorldScaleUpdated ()
virtual void OnWorldSurfaceScaleUpdated ()
virtual void WorldSurfaceScaleUpdated ()
virtual void OnVisibilityUpdated ()
virtual void VisibilityUpdated ()
virtual void OnCompositeOpacityUpdated ()
virtual void CompositeOpacityUpdated ()
virtual void OnWorldBoundingBoxUpdated ()
virtual void WorldBoundingBoxUpdated ()
virtual void OnLocalBoundingBoxUpdated ()
virtual void LocalBoundingBoxUpdated ()
virtual void OnChildAdded (CYISceneNode *pChild)
virtual void ChildAdded (CYISceneNode *pChild)
virtual void OnChildRemoved (CYISceneNode *pChild)
virtual void ChildRemoved (CYISceneNode *pChild)
virtual void OnSizeChanged ()
virtual void SizeChanged ()
virtual void ChildNeedsLayout ()
virtual void LayoutDirtied ()
virtual void OnChildVisibilityChanged (CYISceneNode *pChild)
virtual void ChildVisibilityChanged (CYISceneNode *pChild)
virtual void OnDrawOrderChanged ()
virtual bool ProcessEvent (const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) override
LayoutDirtyFlag GetCurrentLayoutDirtyFlag () const
virtual CYIString GetDumpTreeString () const
void DumpTree (int32_t indentLevel) const
virtual void SetCustomUniforms ()
template<class T >
void SetNodeType ()
virtual CYISceneNodeGetNodeFromChildren (CYIStringView name)
virtual CYISceneNodeGetNodeFromChildren (const int32_t id)
virtual CYISceneNodeGetNodeFromChildren (const CYIRuntimeTypeInfo &enforceClassType)
CYISceneNodeGetNodeFromChildrenAfterTarget (const CYIRuntimeTypeInfo &enforceClassType, bool *pTargetReached, CYISceneNode *pStartAfterTarget)

Protected Attributes

SizeMode m_sizeMode
RepeatMode m_repeatMode
glm::vec2 m_imageScale
glm::vec2 m_imageAlignment
bool m_useMipmapping
- Protected Attributes inherited from CYISceneNode
CYIString m_name
std::vector< std::unique_ptr< CYISceneNode > > m_children
std::vector< CYISceneNode * > m_drawChildren
std::map< CYIString, CYIString, std::less<> > m_Properties
std::vector< std::shared_ptr< CYIEffect > > m_Effects
std::vector< std::unique_ptr< PropertyAnimation > > m_propertyAnimations
float m_localOpacity
std::unique_ptr< CYITransformm_pTransform
glm::vec3 m_size
glm::vec3 m_initialSize
glm::vec3 m_measuredSize
glm::vec3 m_vlsLastCollision
bool m_clip
bool m_localVisibility
int32_t m_id
uint64_t m_guid
std::unique_ptr< CYINPatch > m_pNPatch
std::shared_ptr< CYIBitmapm_pNPatchBitmap
std::shared_ptr< CYIRenderablem_pRenderable
- Protected Attributes inherited from CYIEventTarget
std::vector< EventListenerEntry > m_listeners
SpecialEventTargetType m_specialTypes
std::shared_ptr< CYIEventTargetProxym_pEventTargetProxy

Additional Inherited Members

- Static Public Member Functions inherited from CYISceneNode
static void RegisterAllSceneNodes ()
- Public Attributes inherited from CYISceneNode
CYISignal< CYISceneNode *, PropertyAnimation::TypePropertyAnimationComplete
CYISignal< CYISceneNode *, CYISceneNode *> DescendantGainedFocus
 Emitted when focus has entered this tree. The first signal parameter is the new node with focus, and the second signal parameter is the previous node with focus. More...
CYISignal< CYISceneNode *, CYISceneNode *> DescendantLostFocus
 Emitted when focus has left this tree. The first signal parameter is the new node with focus, and the second signal parameter is the previous node with focus. More...
CYISignal< CYISceneNode *, CYISceneNode *> DescendantsChangedFocus
 Emitted when focus has changed within this tree. This signal is called only if focus was previously within this tree and focus is now on a different node (but still within this tree). The first signal parameter is the new node with focus, and the second signal parameter is the previous node with focus. More...
CYISignal< CYIAccessibilityAttributes::AccessibleAccessibleStateChanged
 Emitted when accessible state changed. More...
- Static Public Attributes inherited from CYISceneNode
static constexpr DirtyFlag DirtyClean = 0x0000
static constexpr DirtyFlag DirtySceneGraph = 0x0001
static constexpr DirtyFlag DirtyVisibility = 0x0002
static constexpr DirtyFlag DirtyOpacity = 0x0004
static constexpr DirtyFlag DirtyLocalTransform = 0x0008
static constexpr DirtyFlag DirtyWorldTransform = 0x0010
static constexpr DirtyFlag DirtyUniform = 0x0020
static constexpr DirtyFlag DirtyWorldBoundingBox = 0x0040
static constexpr DirtyFlag DirtyMesh = 0x0080
static constexpr DirtyFlag DirtyWorldSurfaceScale = 0x0100
static constexpr DirtyFlag DirtyWorldScale = 0x0200
static constexpr DirtyFlag DirtyLocalBoundingBox = 0x0400
static constexpr DirtyFlag DirtyEverything = (DirtySceneGraph | DirtyVisibility | DirtyOpacity | DirtyLocalTransform | DirtyWorldTransform | DirtyUniform | DirtyWorldBoundingBox | DirtyWorldSurfaceScale | DirtyWorldScale | DirtyLocalBoundingBox)

Member Enumeration Documentation

◆ RepeatMode

When the node is resized, the selected repeat mode dictates how 'empty' space is used.

When the scene node is measured and its repeat mode is not CYIImageSceneNode::RepeatMode::None, the reported measured size will always be the incoming measure specs (rather than be based on the image's size and size mode). This differs from the normal behaviour where the measured size would be calculated from the size mode, the incoming measure spec, and the original image size.
The repeat mode has no effect when the size mode is CYIImageSceneNode::SizeMode::Stretch or CYIImageSceneNode::SizeMode::Fill.
To have a visible effect the CYIImageSceneNode size must be greater than the original image texture size as the CYIImageSceneNode size will be initialized to the size of the image texture. This can be accomplished by placing the CYIImageSceneNode in a layout which modifies the contents size. For example placing the CYIImageSceneNode in a CYIStackLayout with the fill-parent property enabled. Programatically setting the CYIImageSceneNode size via SetSize() outside of a layout will also work.
Not all devices support the use of CYIImageSceneNode::RepeatMode::Tile or CYIImageSceneNode::RepeatMode::Mirror with non-power-of-two texture sizes. A power-of-two texture size is a texture which has a height and width that are a power-of-two, for example a 256x128 texture. If a device does not support this and the image has a non-power-of-two texture size the image will not be rendered. It is recommended when using these modes that the image texture width and height are power-of-two.

Default: CYIImageSceneNode::RepeatMode::None


No repeat.


The image is tiled to fill the node's size.


The image is tiled to fill the node's size, but adjacent tiles are mirrored.


The edge pixels of the image are 'stretched' to fill the node's size.

◆ SizeMode

When the node is resized, the selected resize mode dictates how the image appears.

Default: CYIImageSceneNode::SizeMode::Stretch


Will resize the image to the size of the node. The aspect ratio will not be retained.


Will resize on either the width or the height, whichever is larger. The image may be larger than the node size. The aspect ratio of the image will be retained.


Will resize on either the width or the height, whichever is smaller. The image may be smaller than the node size. The aspect ratio of the image will be retained.


The original size and aspect ratio of the image will be retained and the image will be centered in the CYIImageSceneNode. The image may be smaller or larger than the node size.

Constructor & Destructor Documentation

◆ CYIImageSceneNode()

CYIImageSceneNode::CYIImageSceneNode ( )

◆ ~CYIImageSceneNode()

virtual CYIImageSceneNode::~CYIImageSceneNode ( )

Member Function Documentation

◆ GetImageAlignment()

const glm::vec2& CYIImageSceneNode::GetImageAlignment ( ) const

◆ GetImageScale()

const glm::vec2& CYIImageSceneNode::GetImageScale ( ) const

◆ GetRepeatMode()

RepeatMode CYIImageSceneNode::GetRepeatMode ( ) const
See also

◆ GetSizeMode()

SizeMode CYIImageSceneNode::GetSizeMode ( ) const
See also

◆ Init()

virtual bool CYIImageSceneNode::Init ( )

Initializes the scene node. Children of the scene node are also recursively initialized.

Subclasses must call CYISceneNode::Init.

A CYISceneManager must be set on the node using SetSceneManager before the node can be initialized.
The node must have an assigned CYISceneManager before this function can be called.
See also

Reimplemented from CYISceneNode.

◆ IsMipmappingEnabled()

bool CYIImageSceneNode::IsMipmappingEnabled ( ) const

◆ Measure()

virtual void CYIImageSceneNode::Measure ( const MeasureSpec widthSpec,
const MeasureSpec heightSpec,
const MeasureSpec depthSpec 

Measures this scene node, considering the layout configuration constraints (if available) and the provided measure specifications. The Measure function is used by the layout system to determine the 'desired' size of elements in a container. The result of calls to this function can be accessed through the GetMeasuredSize() function.

The Measure function may be called multiple times on a single scene node during a layout pass.
The measure specs passed in must take in consideration the node's scale. For example, if a node is calling the Measure function on one of its children and that child has a scale of glm::vec3(1, 3, 1), then the size of heightSpec must be divided by 3.
The measured values may exceed the provided measure specifications if the specifications cannot be met given the constraints placed on this scene node. In other words, the constraints placed on this node have a higher priority than the provided measure specifications.
Subclasses that override this function must ensure that the Measure function of ALL children of this scene node is called at least once, even if those children are hidden.
Typically, if Measure is overridden then ApplyMeasurements must also be overridden.
Subclasses that override this function should make use of the GetCurrentLayoutDirtyFlag() function (rather than GetLayoutDirtyFlag() ).

Reimplemented from CYISceneNode.

◆ RecalculateMesh()

void CYIImageSceneNode::RecalculateMesh ( )

◆ SetImageAlignment()

void CYIImageSceneNode::SetImageAlignment ( const glm::vec2 &  imageAlignment)

Sets how the image should be aligned when a sizing mode is applied.

For the x component of the alignment, a value of 0.0f will align the left edge of the image to the left side of the size, a value of 1.0f will align the right edge of the image to the right side of the size, and a value of 0.5f will center the image horizontally. For the y component of the alignment, a value of 0.0f will align the top edge of the image to the top side of the size, a value of 1.0f will align the bottom edge of the image to the bottom side of the size, and a value of 0.5f will center the image vertically. Values outside of the 0.0f to 1.0f range are accepted and will behave as one might expect.

By default, the image is centered (using an image alignment of glm::vec2(0.5f, 0.5f)).

◆ SetImageScale()

void CYIImageSceneNode::SetImageScale ( const glm::vec2 &  imageScale)

Sets an image scale for this image node. The image scale is an extra scale that is applied on top of the calculated image size for a given sizing mode. By default, the image scale is 1.0.

Setting an image scale when the repeat mode is RepeatMode::None will result in undefined behaviour.

◆ SetMipmappingEnabled()

void CYIImageSceneNode::SetMipmappingEnabled ( bool  enable)

Configures the underlying texture to use mipmapping. Mipmapping is disabled by default.

See also

◆ SetRepeatMode()

void CYIImageSceneNode::SetRepeatMode ( RepeatMode  repeatMode)

Sets and applies the repeat mode of this node.

See also

◆ SetSize()

virtual void CYIImageSceneNode::SetSize ( const glm::vec3 &  size,
bool  dirtyLayout = true 

Applies the current resize mode.

Reimplemented from CYISceneNode.

◆ SetSizeMode()

void CYIImageSceneNode::SetSizeMode ( SizeMode  scaleMode)

Sets and applies the resize mode of this node.

See also

Member Data Documentation

◆ m_imageAlignment

glm::vec2 CYIImageSceneNode::m_imageAlignment

◆ m_imageScale

glm::vec2 CYIImageSceneNode::m_imageScale

◆ m_repeatMode

RepeatMode CYIImageSceneNode::m_repeatMode

◆ m_sizeMode

SizeMode CYIImageSceneNode::m_sizeMode

◆ m_useMipmapping

bool CYIImageSceneNode::m_useMipmapping

The documentation for this class was generated from the following file: