Kanzi  3.9.7
Kanzi Engine API
kanzi::TextLayouter::CharacterInfo Struct Reference

Intermediate structure for layout of a single character. More...

#include <kanzi/core.ui/text/text_layouter.hpp>

Public Member Functions

 CharacterInfo ()
 Constructor. More...
 

Public Attributes

bool addedDuringLayouting
 Flag to determine whether character is part of the input text, or it was added during layouting, for example, due to overflow. More...
 
unsigned char bidiLevel
 Bidirectional embedding level of the character. More...
 
RectangleFloat bounds
 Bounding rectangle for the glyph. More...
 
unsigned int character
 Character glyph index to a font table. More...
 
unsigned int clusterEnd
 Index of the character in the input text that starts the next cluster, or length of the input text if this is the last cluster. More...
 
unsigned int clusterStart
 Index of the first character in the input text that is part of this cluster. More...
 
bool endOfLine
 Whether layouting continues in a new line after this character. More...
 
bool potentialEndOfLine
 Whether layouting continues in a new line after this character. More...
 
unsigned int precedingCharactersOnLine
 Amount of characters before this one on the current line. More...
 
bool renderable
 Whether this is a valid character that participates in the layout. More...
 
float totalAdvanceOnLine
 Total width of characters up to this one on the current line. More...
 
bool whitespace
 Whether this is a whitespace character, such as ' '. More...
 
float width
 Width of the character. More...
 
float x
 Layouted x axis coordinate of the character. More...
 
float y
 Layouted y axis coordinate of the character. More...
 

Detailed Description

Intermediate structure for layout of a single character.

Constructor & Destructor Documentation

kanzi::TextLayouter::CharacterInfo::CharacterInfo ( )
inline

Constructor.

Member Data Documentation

RectangleFloat kanzi::TextLayouter::CharacterInfo::bounds

Bounding rectangle for the glyph.

float kanzi::TextLayouter::CharacterInfo::width

Width of the character.

float kanzi::TextLayouter::CharacterInfo::x

Layouted x axis coordinate of the character.

float kanzi::TextLayouter::CharacterInfo::y

Layouted y axis coordinate of the character.

float kanzi::TextLayouter::CharacterInfo::totalAdvanceOnLine

Total width of characters up to this one on the current line.

unsigned int kanzi::TextLayouter::CharacterInfo::character

Character glyph index to a font table.

unsigned int kanzi::TextLayouter::CharacterInfo::clusterStart

Index of the first character in the input text that is part of this cluster.

See https://harfbuzz.github.io/clusters.html for more information.

Since
Kanzi 3.9.0
unsigned int kanzi::TextLayouter::CharacterInfo::clusterEnd

Index of the character in the input text that starts the next cluster, or length of the input text if this is the last cluster.

Since
Kanzi 3.9.0
unsigned int kanzi::TextLayouter::CharacterInfo::precedingCharactersOnLine

Amount of characters before this one on the current line.

unsigned char kanzi::TextLayouter::CharacterInfo::bidiLevel

Bidirectional embedding level of the character.

Even levels denote left-to-right text, odd levels right-to-left. See Unicode Standard Annex #9, Unicode Bidirectional Algorithm.

bool kanzi::TextLayouter::CharacterInfo::potentialEndOfLine

Whether layouting continues in a new line after this character.

bool kanzi::TextLayouter::CharacterInfo::endOfLine

Whether layouting continues in a new line after this character.

bool kanzi::TextLayouter::CharacterInfo::whitespace

Whether this is a whitespace character, such as ' '.

bool kanzi::TextLayouter::CharacterInfo::renderable

Whether this is a valid character that participates in the layout.

bool kanzi::TextLayouter::CharacterInfo::addedDuringLayouting

Flag to determine whether character is part of the input text, or it was added during layouting, for example, due to overflow.

This is set to true if the character was added during layouting and false if the character is part of the input text.

Since
Kanzi 3.9.0

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