GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
octave::ft_text_renderer Class Reference
Inheritance diagram for octave::ft_text_renderer:
Collaboration diagram for octave::ft_text_renderer:

Classes

class  ft_font
 

Public Types

enum  { MODE_BBOX = 0, MODE_RENDER = 1 }
 
enum  { ROTATION_0 = 0, ROTATION_90 = 1, ROTATION_180 = 2, ROTATION_270 = 3 }
 

Public Member Functions

 ft_text_renderer (void)
 
 ft_text_renderer (const ft_text_renderer &)=delete
 
 ~ft_text_renderer (void)=default
 
Matrix get_boundingbox (void) const
 
Matrix get_extent (text_element *elt, double rotation=0.0)
 
Matrix get_extent (const std::string &txt, double rotation, const caseless_str &interpreter)
 
uint8NDArray get_pixels (void) const
 
ft_text_rendereroperator= (const ft_text_renderer &)=delete
 
uint8NDArray render (text_element *elt, Matrix &box, int rotation=ROTATION_0)
 
void reset (void)
 
void set_color (const Matrix &c)
 
void set_font (const std::string &name, const std::string &weight, const std::string &angle, double size)
 
void set_mode (int m)
 
void text_to_pixels (const std::string &txt, uint8NDArray &pxls, Matrix &bbox, int halign, int valign, double rotation, const caseless_str &interpreter, bool handle_rotation)
 
void text_to_strlist (const std::string &txt, std::list< text_renderer::string > &lst, Matrix &bbox, int halign, int valign, double rotation, const caseless_str &interp)
 
void visit (text_element_string &e)
 
void visit (text_element_list &e)
 
void visit (text_element_subscript &e)
 
void visit (text_element_superscript &e)
 
void visit (text_element_color &e)
 
void visit (text_element_fontsize &e)
 
void visit (text_element_fontname &e)
 
void visit (text_element_fontstyle &e)
 
void visit (text_element_symbol &e)
 
void visit (text_element_combined &e)
 

Private Member Functions

void compute_bbox (void)
 
int compute_line_xoffset (const Matrix &lb) const
 
FT_UInt process_character (FT_ULong code, FT_UInt previous=0)
 
void push_new_line (void)
 
int rotation_to_mode (double rotation) const
 
void update_line_bbox (void)
 

Private Attributes

Matrix bbox
 
uint8NDArray color
 
ft_font font
 
int halign
 
std::list< Matrixline_bbox
 
int line_xoffset
 
int line_yoffset
 
int mode
 
uint8NDArray pixels
 
std::list< text_renderer::stringstrlist
 
int xoffset
 
int yoffset
 

Detailed Description

Definition at line 353 of file ft-text-renderer.cc.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
MODE_BBOX 
MODE_RENDER 

Definition at line 359 of file ft-text-renderer.cc.

◆ anonymous enum

anonymous enum
Enumerator
ROTATION_0 
ROTATION_90 
ROTATION_180 
ROTATION_270 

Definition at line 365 of file ft-text-renderer.cc.

Constructor & Destructor Documentation

◆ ft_text_renderer() [1/2]

octave::ft_text_renderer::ft_text_renderer ( void  )
inline

Definition at line 375 of file ft-text-renderer.cc.

◆ ft_text_renderer() [2/2]

octave::ft_text_renderer::ft_text_renderer ( const ft_text_renderer )
delete

◆ ~ft_text_renderer()

octave::ft_text_renderer::~ft_text_renderer ( void  )
default

Member Function Documentation

◆ compute_bbox()

void octave::ft_text_renderer::compute_bbox ( void  )
private

Definition at line 614 of file ft-text-renderer.cc.

References bbox, Matrix::extract(), Array< T >::isempty(), line_bbox, and octave::math::max().

Referenced by get_extent(), and render().

◆ compute_line_xoffset()

int octave::ft_text_renderer::compute_line_xoffset ( const Matrix lb) const
private

Definition at line 595 of file ft-text-renderer.cc.

References bbox, halign, and Array< T >::isempty().

Referenced by push_new_line(), and set_mode().

◆ get_boundingbox()

Matrix octave::ft_text_renderer::get_boundingbox ( void  ) const
inline

Definition at line 413 of file ft-text-renderer.cc.

◆ get_extent() [1/2]

Matrix octave::ft_text_renderer::get_extent ( text_element elt,
double  rotation = 0.0 
)
virtual

◆ get_extent() [2/2]

Matrix octave::ft_text_renderer::get_extent ( const std::string txt,
double  rotation,
const caseless_str interpreter 
)
virtual

Implements octave::base_text_renderer.

Definition at line 1244 of file ft-text-renderer.cc.

References get_extent(), and text_parser::parse().

◆ get_pixels()

uint8NDArray octave::ft_text_renderer::get_pixels ( void  ) const
inline

Definition at line 411 of file ft-text-renderer.cc.

◆ operator=()

ft_text_renderer& octave::ft_text_renderer::operator= ( const ft_text_renderer )
delete

◆ process_character()

FT_UInt octave::ft_text_renderer::process_character ( FT_ULong  code,
FT_UInt  previous = 0 
)
private

◆ push_new_line()

void octave::ft_text_renderer::push_new_line ( void  )
private

◆ render()

◆ reset()

void octave::ft_text_renderer::reset ( void  )
virtual

Reimplemented from text_processor.

Definition at line 1125 of file ft-text-renderer.cc.

References MODE_BBOX, set_color(), and set_mode().

◆ rotation_to_mode()

int octave::ft_text_renderer::rotation_to_mode ( double  rotation) const
private

Definition at line 1255 of file ft-text-renderer.cc.

References ROTATION_0, ROTATION_180, ROTATION_270, and ROTATION_90.

Referenced by get_extent(), and text_to_pixels().

◆ set_color()

void octave::ft_text_renderer::set_color ( const Matrix c)
virtual

Implements octave::base_text_renderer.

Definition at line 1132 of file ft-text-renderer.cc.

References c, color, and warning().

Referenced by reset(), and visit().

◆ set_font()

void octave::ft_text_renderer::set_font ( const std::string name,
const std::string weight,
const std::string angle,
double  size 
)
virtual

Implements octave::base_text_renderer.

Definition at line 539 of file ft-text-renderer.cc.

References font, and name.

Referenced by visit().

◆ set_mode()

void octave::ft_text_renderer::set_mode ( int  m)

◆ text_to_pixels()

void octave::ft_text_renderer::text_to_pixels ( const std::string txt,
uint8NDArray pxls,
Matrix bbox,
int  halign,
int  valign,
double  rotation,
const caseless_str interpreter,
bool  handle_rotation 
)
virtual

◆ text_to_strlist()

void octave::ft_text_renderer::text_to_strlist ( const std::string txt,
std::list< text_renderer::string > &  lst,
Matrix bbox,
int  halign,
int  valign,
double  rotation,
const caseless_str interp 
)
virtual

Implements octave::base_text_renderer.

Definition at line 852 of file ft-text-renderer.cc.

References box(), strlist, and text_to_pixels().

◆ update_line_bbox()

void octave::ft_text_renderer::update_line_bbox ( void  )
private

Definition at line 647 of file ft-text-renderer.cc.

References font, octave::ft_text_renderer::ft_font::get_face(), line_bbox, mode, MODE_BBOX, and yoffset.

Referenced by visit().

◆ visit() [1/10]

◆ visit() [2/10]

void octave::ft_text_renderer::visit ( text_element_list e)
virtual

Reimplemented from text_processor.

Definition at line 950 of file ft-text-renderer.cc.

References color, e, font, and text_processor::visit().

◆ visit() [3/10]

◆ visit() [4/10]

◆ visit() [5/10]

void octave::ft_text_renderer::visit ( text_element_color e)
virtual

Reimplemented from text_processor.

Definition at line 1026 of file ft-text-renderer.cc.

References e, mode, MODE_RENDER, and set_color().

◆ visit() [6/10]

◆ visit() [7/10]

◆ visit() [8/10]

◆ visit() [9/10]

◆ visit() [10/10]

void octave::ft_text_renderer::visit ( text_element_combined e)
virtual

Reimplemented from text_processor.

Definition at line 1109 of file ft-text-renderer.cc.

References e, octave::math::max(), and xoffset.

Member Data Documentation

◆ bbox

Matrix octave::ft_text_renderer::bbox
private

Definition at line 500 of file ft-text-renderer.cc.

Referenced by compute_bbox(), compute_line_xoffset(), get_extent(), render(), and set_mode().

◆ color

uint8NDArray octave::ft_text_renderer::color
private

Definition at line 528 of file ft-text-renderer.cc.

Referenced by process_character(), set_color(), and visit().

◆ font

ft_font octave::ft_text_renderer::font
private

◆ halign

int octave::ft_text_renderer::halign
private

Definition at line 511 of file ft-text-renderer.cc.

Referenced by compute_line_xoffset(), and text_to_pixels().

◆ line_bbox

std::list<Matrix> octave::ft_text_renderer::line_bbox
private

◆ line_xoffset

int octave::ft_text_renderer::line_xoffset
private

Definition at line 534 of file ft-text-renderer.cc.

Referenced by push_new_line(), and visit().

◆ line_yoffset

int octave::ft_text_renderer::line_yoffset
private

Definition at line 517 of file ft-text-renderer.cc.

Referenced by process_character(), push_new_line(), set_mode(), and visit().

◆ mode

int octave::ft_text_renderer::mode
private

◆ pixels

uint8NDArray octave::ft_text_renderer::pixels
private

Definition at line 504 of file ft-text-renderer.cc.

Referenced by process_character(), render(), and set_mode().

◆ strlist

std::list<text_renderer::string> octave::ft_text_renderer::strlist
private

Definition at line 531 of file ft-text-renderer.cc.

Referenced by render(), text_to_strlist(), and visit().

◆ xoffset

int octave::ft_text_renderer::xoffset
private

Definition at line 514 of file ft-text-renderer.cc.

Referenced by process_character(), push_new_line(), set_mode(), and visit().

◆ yoffset

int octave::ft_text_renderer::yoffset
private

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