You.i Engine
CYILayoutUtility Class Reference

Detailed Description

A utility class that helps retrieving attachement positions relative to an object.

#include <utility/YiLayoutUtility.h>

Public Types

enum  YI_ATTACHMENT_POSITION {
  YI_ATTACHMENT_POSITION_TOP_LEFT = 0,
  YI_ATTACHMENT_POSITION_TOP_CENTER,
  YI_ATTACHMENT_POSITION_TOP_RIGHT,
  YI_ATTACHMENT_POSITION_CENTER_LEFT,
  YI_ATTACHMENT_POSITION_CENTER,
  YI_ATTACHMENT_POSITION_CENTER_RIGHT,
  YI_ATTACHMENT_POSITION_BOTTOM_LEFT,
  YI_ATTACHMENT_POSITION_BOTTOM_CENTER,
  YI_ATTACHMENT_POSITION_BOTTOM_RIGHT
}
 

Static Public Member Functions

static glm::vec3 CalculateAttachmentPosition (glm::vec3 vLeftTop, glm::vec3 vRightBottom, YI_ATTACHMENT_POSITION eAttachmentPosition)
 
static glm::vec3 GetAttachmentPosition (CYISceneNode *pSceneNode, YI_ATTACHMENT_POSITION eAttachmentPosition)
 
static glm::vec3 GetAttachmentPosition (CYIMesh *pMesh, YI_ATTACHMENT_POSITION eAttachmentPosition)
 
static glm::vec3 GetAttachmentPosition (std::shared_ptr< CYIMesh > pMesh, YI_ATTACHMENT_POSITION eAttachmentPosition)
 
static glm::vec3 ConvertAttachmentPositionToWorldSpace (CYISceneNode *pSceneNode, glm::vec3 vAttachmentPosition)
 
static YI_ATTACHMENT_POSITION ConvertAttachmentPositionNameToEnum (CYIString const &rAttachmentPointName)
 

Member Enumeration Documentation

Attachment positions:

Top Left Top Center Top Right
+------------------+------------------+
| | |
| | |
| | |
| | |
Left Center +---------------Center----------------+ Right Center
| | |
| | |
| | |
| | |
+------------------+------------------+
Bottom Left Bottom Center Bottom Right
Enumerator
YI_ATTACHMENT_POSITION_TOP_LEFT 
YI_ATTACHMENT_POSITION_TOP_CENTER 
YI_ATTACHMENT_POSITION_TOP_RIGHT 
YI_ATTACHMENT_POSITION_CENTER_LEFT 
YI_ATTACHMENT_POSITION_CENTER 
YI_ATTACHMENT_POSITION_CENTER_RIGHT 
YI_ATTACHMENT_POSITION_BOTTOM_LEFT 
YI_ATTACHMENT_POSITION_BOTTOM_CENTER 
YI_ATTACHMENT_POSITION_BOTTOM_RIGHT 

Member Function Documentation

static glm::vec3 CYILayoutUtility::CalculateAttachmentPosition ( glm::vec3  vLeftTop,
glm::vec3  vRightBottom,
YI_ATTACHMENT_POSITION  eAttachmentPosition 
)
static

Calculate the attachment position from vLeftTop and vRightBottom vectors.

static YI_ATTACHMENT_POSITION CYILayoutUtility::ConvertAttachmentPositionNameToEnum ( CYIString const &  rAttachmentPointName)
static

Returns the conversion of an attachment point name string to the YI_ATTACHMENT_POSITION enumeration.

static glm::vec3 CYILayoutUtility::ConvertAttachmentPositionToWorldSpace ( CYISceneNode pSceneNode,
glm::vec3  vAttachmentPosition 
)
static

Returns the conversion of pSceneNode vAttachmentPosition in world space.

static glm::vec3 CYILayoutUtility::GetAttachmentPosition ( CYISceneNode pSceneNode,
YI_ATTACHMENT_POSITION  eAttachmentPosition 
)
static

Returns one of the CYISceneNode attachment positions as glm::vec3 in local space. Child CYISceneNodes can be positioned relative to these attachment positions.

When used on a CYITextSceneNode, the tight text rectangle will be used. When used on a CYISceneView, the world logical size will be used. When used on a CYISceneNode with a mesh, the mesh Axis Aligned Bounding Box will be used. When used on a CYISceneNode without a mesh, (0,0,0) is returned.

Note
Use GetAttachmentPosition(pSceneView->GetMesh()) to find the attachment position on the mesh of a CYISceneView.

example of use:

// Positions a node anchor point at the center of another node.
CYISceneNode *pAttachedNode = GetNode("ANode");
CYISceneNode *pNodeToAttachTo = GetNode("NodeToAttachTo");
// positions pAttachedNode anchor point to the center of pNodeToAttachTo
pAttachedNode->SetPosition(GetAttachmentPosition(pNodeToAttachTo, CYISceneView::YI_ATTACHMENT_POSITION_CENTER));

See YI_ATTACHMENT_POSITION for the available attachment positions.

static glm::vec3 CYILayoutUtility::GetAttachmentPosition ( CYIMesh pMesh,
YI_ATTACHMENT_POSITION  eAttachmentPosition 
)
static

Returns one of the CYIMesh attachment positions as glm::vec3 in local space.

See also
GetAttachmentPosition(CYISceneNode, YI_ATTACHMENT_POSITION)
static glm::vec3 CYILayoutUtility::GetAttachmentPosition ( std::shared_ptr< CYIMesh pMesh,
YI_ATTACHMENT_POSITION  eAttachmentPosition 
)
static

Returns one of the std::shared_ptr<CYIMesh> attachment positions as glm::vec3 in local space.

See also
GetAttachmentPosition(CYISceneNode, YI_ATTACHMENT_POSITION)

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