![]() |
Open CASCADE Technology Reference Manual 8.0.0
|
This class is intended to prepare formatted text by using: More...
#include <Font_TextFormatter.hxx>

Data Structures | |
| class | Iterator |
| Iterator through formatted symbols. It's possible to filter returned symbols to have only significant ones. More... | |
Public Types | |
| enum | IterationFilter { IterationFilter_None = 0x0000 , IterationFilter_ExcludeInvisible = 0x0002 } |
| Iteration filter flags. Command symbols are skipped with any filter. More... | |
Public Types inherited from Standard_Transient | |
| typedef void | base_type |
| Returns a type descriptor about this object. | |
Public Member Functions | |
| Font_TextFormatter () | |
| Default constructor. | |
| void | SetupAlignment (const Graphic3d_HorizontalTextAlignment theAlignX, const Graphic3d_VerticalTextAlignment theAlignY) |
| Setup alignment style. | |
| void | Reset () |
| Reset current progress. | |
| void | Append (const NCollection_String &theString, Font_FTFont &theFont) |
| Render specified text to inner buffer. | |
| void | Format () |
| Perform formatting on the buffered text. Should not be called more than once after initialization! | |
| const NCollection_Vec2< float > & | TopLeft (const int theIndex) const |
| const NCollection_Vec2< float > & | BottomLeft (const int theIndex) const |
| Returns specific glyph rectangle. | |
| const NCollection_String & | String () const |
| Returns current rendering string. | |
| bool | GlyphBoundingBox (const int theIndex, Font_Rect &theBndBox) const |
| Returns symbol bounding box. | |
| float | LineHeight (const int theIndex) const |
| Returns the line height. | |
| float | LineWidth (const int theIndex) const |
| Returns width of a line. | |
| bool | IsLFSymbol (const int theIndex) const |
| Returns true if the symbol by the index is ' '. The width of the symbol is zero. | |
| float | FirstPosition () const |
| Returns position of the first symbol in a line using alignment. | |
| int | LinePositionIndex (const int theIndex) const |
| Returns column index of the corner index in the current line. | |
| int | LineIndex (const int theIndex) const |
| Returns row index of the corner index among text lines. | |
| int | TabSize () const |
| Returns tab size. | |
| Graphic3d_HorizontalTextAlignment | HorizontalTextAlignment () const |
| Returns horizontal alignment style. | |
| Graphic3d_VerticalTextAlignment | VerticalTextAlignment () const |
| Returns vertical alignment style. | |
| void | SetWrapping (const float theWidth) |
| Sets text wrapping width, zero means that the text is not bounded by width. | |
| bool | HasWrapping () const |
| Returns text maximum width, zero means that the text is not bounded by width. | |
| float | Wrapping () const |
| Returns text maximum width, zero means that the text is not bounded by width. | |
| bool | WordWrapping () const |
| returns TRUE when trying not to break words when wrapping text | |
| void | SetWordWrapping (const bool theIsWordWrapping) |
| returns TRUE when trying not to break words when wrapping text | |
| float | ResultWidth () const |
| float | ResultHeight () const |
| float | MaximumSymbolWidth () const |
| void | BndBox (Font_Rect &theBndBox) const |
| const NCollection_DynamicArray< NCollection_Vec2< float > > & | Corners () const |
| Returns internal container of the top left corners of a formatted rectangles. | |
| const NCollection_DynamicArray< float > & | NewLines () const |
| Returns container of each line position at LF in formatted text. | |
Public Member Functions inherited from Standard_Transient | |
| Standard_Transient () | |
| Empty constructor. | |
| Standard_Transient (const Standard_Transient &) | |
| Copy constructor – does nothing. | |
| Standard_Transient & | operator= (const Standard_Transient &) |
| Assignment operator, needed to avoid copying reference counter. | |
| virtual | ~Standard_Transient ()=default |
| Destructor must be virtual. | |
| virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
| Returns a type descriptor about this object. | |
| bool | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
| Returns a true value if this is an instance of Type. | |
| bool | IsInstance (const char *const theTypeName) const |
| Returns a true value if this is an instance of TypeName. | |
| bool | IsKind (const opencascade::handle< Standard_Type > &theType) const |
| Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
| bool | IsKind (const char *const theTypeName) const |
| Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. | |
| Standard_Transient * | This () const |
| Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. | |
| int | GetRefCount () const noexcept |
| Get the reference counter of this object. | |
| void | IncrementRefCounter () noexcept |
| Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations. | |
| int | DecrementRefCounter () noexcept |
| Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement. | |
| virtual void | Delete () const |
| Memory deallocator for transient classes. | |
Static Public Member Functions | |
| static bool | IsCommandSymbol (const char32_t &theSymbol) |
| Returns true if the symbol is CR, BEL, FF, NP, BS or VT. | |
| static bool | IsSeparatorSymbol (const char32_t &theSymbol) |
| Returns true if the symbol separates words when wrapping is enabled. | |
Static Public Member Functions inherited from Standard_Transient | |
| static constexpr const char * | get_type_name () |
| Returns a type descriptor about this object. | |
| static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
| Returns type descriptor of Standard_Transient class. | |
Protected Member Functions | |
class auxiliary methods | |
Move glyphs on the current line to correct position. | |
| void | newLine (const int theLastRect, const float theMaxLineWidth) |
Protected Attributes | |
configuration | |
| Graphic3d_HorizontalTextAlignment | myAlignX |
| horizontal alignment style | |
| Graphic3d_VerticalTextAlignment | myAlignY |
| vertical alignment style | |
| int | myTabSize |
| horizontal tabulation width (number of space symbols) | |
| float | myWrappingWidth |
| text is wrapped by the width if defined (more 0) | |
| bool | myIsWordWrapping |
| if TRUE try not to break words when wrapping text (true by default) | |
| float | myLastSymbolWidth |
| width of the last symbol | |
| float | myMaxSymbolWidth |
| maximum symbol width of the formatter string | |
input data | |
| NCollection_String | myString |
| currently rendered text | |
| NCollection_Vec2< float > | myPen |
| current pen position | |
| NCollection_DynamicArray< NCollection_Vec2< float > > | myCorners |
| The bottom left corners of a formatted rectangles. | |
| NCollection_DynamicArray< float > | myNewLines |
| position at LF | |
| float | myLineSpacing |
| line spacing (computed as maximum of all fonts involved in text formatting) | |
| float | myAscender |
| line spacing for the first line | |
| bool | myIsFormatted |
| formatting state | |
temporary variables for formatting routines | |
| int | myLinesNb |
| overall (new)lines number (including splitting by width limit) | |
| int | myRectLineStart |
| id of first rectangle on the current line | |
| int | myNewLineNb |
| overall (new)lines number (including splitting by width limit) | |
| float | myPenCurrLine |
| current baseline position | |
| float | myBndTop |
| overall (new)lines number (including splitting by width limit) | |
| float | myBndWidth |
| overall (new)lines number (including splitting by width limit) | |
| NCollection_Vec2< float > | myMoveVec |
| local variable | |
This class is intended to prepare formatted text by using:
After text formatting, each symbol of formatted text is placed in some position. Further work with the formatter is using an iterator. The iterator gives an access to each symbol inside the initial row. Also it's possible to get only significant/writable symbols of the text. Formatter gives an access to geometrical position of a symbol by the symbol index in the text. Example of correspondence of some text symbol to an index in "row_1\n\nrow_2\n": "row_1\n" - 0-5 indices; "\n" - 6 index; "\n" - 7 index; "row_2\n" - 8-13 indices. Pay attention that fonts should have the same LineSpacing value for correct formatting. Example of the formatter using:
| Font_TextFormatter::Font_TextFormatter | ( | ) |
Default constructor.
| void Font_TextFormatter::Append | ( | const NCollection_String & | theString, |
| Font_FTFont & | theFont ) |
Render specified text to inner buffer.
|
inline |
Returns specific glyph rectangle.
|
inline |
Returns internal container of the top left corners of a formatted rectangles.
| float Font_TextFormatter::FirstPosition | ( | ) | const |
Returns position of the first symbol in a line using alignment.
| void Font_TextFormatter::Format | ( | ) |
Perform formatting on the buffered text. Should not be called more than once after initialization!
Returns symbol bounding box.
| bounding | box. |
|
inline |
Returns text maximum width, zero means that the text is not bounded by width.
|
inline |
Returns horizontal alignment style.
Returns true if the symbol is CR, BEL, FF, NP, BS or VT.
Returns true if the symbol by the index is '
'. The width of the symbol is zero.
Returns true if the symbol separates words when wrapping is enabled.
Returns the line height.
| theIndex | a line index, obtained by LineIndex() |
Returns row index of the corner index among text lines.
Returns column index of the corner index in the current line.
|
inline |
|
inline |
Returns container of each line position at LF in formatted text.
| void Font_TextFormatter::Reset | ( | ) |
Reset current progress.
|
inline |
|
inline |
| void Font_TextFormatter::SetupAlignment | ( | const Graphic3d_HorizontalTextAlignment | theAlignX, |
| const Graphic3d_VerticalTextAlignment | theAlignY ) |
Setup alignment style.
returns TRUE when trying not to break words when wrapping text
Sets text wrapping width, zero means that the text is not bounded by width.
|
inline |
Returns current rendering string.
|
inline |
Returns tab size.
|
inline |
|
inline |
Returns vertical alignment style.
|
inline |
returns TRUE when trying not to break words when wrapping text
|
inline |
Returns text maximum width, zero means that the text is not bounded by width.
|
protected |
horizontal alignment style
|
protected |
vertical alignment style
|
protected |
line spacing for the first line
|
protected |
overall (new)lines number (including splitting by width limit)
|
protected |
overall (new)lines number (including splitting by width limit)
|
protected |
The bottom left corners of a formatted rectangles.
|
protected |
formatting state
|
protected |
if TRUE try not to break words when wrapping text (true by default)
|
protected |
width of the last symbol
|
protected |
overall (new)lines number (including splitting by width limit)
|
protected |
line spacing (computed as maximum of all fonts involved in text formatting)
|
protected |
maximum symbol width of the formatter string
|
protected |
local variable
|
protected |
overall (new)lines number (including splitting by width limit)
|
protected |
position at LF
|
protected |
current pen position
|
protected |
current baseline position
|
protected |
id of first rectangle on the current line
|
protected |
currently rendered text
|
protected |
horizontal tabulation width (number of space symbols)
|
protected |
text is wrapped by the width if defined (more 0)