GNU Octave  4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
octave::ft_text_renderer Class Reference
Inheritance diagram for octave::ft_text_renderer:
Inheritance graph
[legend]
Collaboration diagram for octave::ft_text_renderer:
Collaboration graph
[legend]

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 (void)
 
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
 
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

 ft_text_renderer (const ft_text_renderer &)
 
void compute_bbox (void)
 
int compute_line_xoffset (const Matrix &lb) const
 
ft_text_rendereroperator= (const ft_text_renderer &)
 
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 326 of file ft-text-renderer.cc.

Member Enumeration Documentation

anonymous enum
Enumerator
MODE_BBOX 
MODE_RENDER 

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

anonymous enum
Enumerator
ROTATION_0 
ROTATION_90 
ROTATION_180 
ROTATION_270 

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

Constructor & Destructor Documentation

octave::ft_text_renderer::ft_text_renderer ( void  )
inline

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

octave::ft_text_renderer::~ft_text_renderer ( void  )
inline

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

octave::ft_text_renderer::ft_text_renderer ( const ft_text_renderer )
private

Member Function Documentation

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

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

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

Referenced by get_extent(), and render().

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

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

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

Referenced by push_new_line(), and set_mode().

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

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

Matrix octave::ft_text_renderer::get_extent ( text_element elt,
double  rotation = 0.0 
)
virtual
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 1208 of file ft-text-renderer.cc.

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

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

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

ft_text_renderer& octave::ft_text_renderer::operator= ( const ft_text_renderer )
private
FT_UInt octave::ft_text_renderer::process_character ( FT_ULong  code,
FT_UInt  previous = 0 
)
private
void octave::ft_text_renderer::push_new_line ( void  )
private
uint8NDArray octave::ft_text_renderer::render ( text_element elt,
Matrix box,
int  rotation = ROTATION_0 
)
void octave::ft_text_renderer::reset ( void  )
virtual

Reimplemented from text_processor.

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

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

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

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

References ROTATION_0, ROTATION_180, ROTATION_270, and ROTATION_90.

Referenced by get_extent(), and text_to_pixels().

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

Implements octave::base_text_renderer.

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

References c, color, Array< T >::numel(), and warning().

Referenced by reset(), and visit().

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 512 of file ft-text-renderer.cc.

References font.

Referenced by visit().

void octave::ft_text_renderer::set_mode ( int  m)
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
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 826 of file ft-text-renderer.cc.

References strlist, and text_to_pixels().

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

Definition at line 621 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().

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

Reimplemented from text_processor.

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

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

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

Reimplemented from text_processor.

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

References text_element_color::get_color(), mode, MODE_RENDER, and set_color().

void octave::ft_text_renderer::visit ( text_element_fontsize e)
virtual
void octave::ft_text_renderer::visit ( text_element_fontname e)
virtual
void octave::ft_text_renderer::visit ( text_element_fontstyle e)
virtual
void octave::ft_text_renderer::visit ( text_element_symbol e)
virtual
void octave::ft_text_renderer::visit ( text_element_combined e)
virtual

Member Data Documentation

Matrix octave::ft_text_renderer::bbox
private

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

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

uint8NDArray octave::ft_text_renderer::color
private

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

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

ft_font octave::ft_text_renderer::font
private
int octave::ft_text_renderer::halign
private

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

Referenced by compute_line_xoffset(), and text_to_pixels().

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

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

Referenced by push_new_line(), and visit().

int octave::ft_text_renderer::line_yoffset
private

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

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

int octave::ft_text_renderer::mode
private
uint8NDArray octave::ft_text_renderer::pixels
private

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

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

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

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

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

int octave::ft_text_renderer::xoffset
private

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

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

int octave::ft_text_renderer::yoffset
private

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