bpp-core  2.2.0
bpp::PgfGraphicDevice Class Reference

LaTeX Portable Graphic Format (Pgf) plotting format. More...

#include <Bpp/Graphics/Latex/PgfGraphicDevice.h>

+ Inheritance diagram for bpp::PgfGraphicDevice:
+ Collaboration diagram for bpp::PgfGraphicDevice:

Public Member Functions

 PgfGraphicDevice (std::ostream &out, double unit)
 Build a new Pgf device object. More...
 
virtual ~PgfGraphicDevice ()
 
void begin ()
 Start the painting. More...
 
void end ()
 End the painting. More...
 
void setCurrentForegroundColor (const RGBColor &color)
 
void setCurrentBackgroundColor (const RGBColor &color)
 
void setCurrentFont (const Font &font)
 
void setCurrentPointSize (unsigned int size)
 
void setCurrentLineType (short type) throw (Exception)
 
void setCurrentLayer (int layerIndex)
 
void drawLine (double x1, double y1, double x2, double y2)
 Draw a line between two points. More...
 
void drawRect (double x, double y, double width, double height, short fill=FILL_EMPTY)
 Draw a rectangle. More...
 
void drawCircle (double x, double y, double radius, short fill=FILL_EMPTY)
 Draw a circle. More...
 
void drawText (double x, double y, const std::string &text, short hpos=TEXT_HORIZONTAL_LEFT, short vpos=TEXT_VERTICAL_BOTTOM, double angle=0) throw (UnvalidFlagException)
 Draw some characters. More...
 
void comment (const std::string &text)
 Add a comment in the output. More...
 
const std::string & getFontShape (const Font &font)
 
void setXUnit (double xu)
 
void setYUnit (double yu)
 
double getXUnit () const
 
double getYUnit () const
 
const RGBColorgetCurrentForegroundColor () const
 
const RGBColorgetCurrentBackgroundColor () const
 
const FontgetCurrentFont () const
 
unsigned int getCurrentPointSize () const
 
short getCurrentLineType () const
 
int getCurrentLayer () const
 

Static Public Attributes

static short TEXT_HORIZONTAL_CENTER = 0
 
static short TEXT_HORIZONTAL_LEFT = 1
 
static short TEXT_HORIZONTAL_RIGHT = 2
 
static short TEXT_VERTICAL_CENTER = 3
 
static short TEXT_VERTICAL_BOTTOM = 4
 
static short TEXT_VERTICAL_TOP = 5
 
static short FILL_EMPTY = 10
 
static short FILL_FILLED = 11
 
static short FILL_PATTERN = 12
 
static short LINE_SOLID = 20
 
static short LINE_DASHED = 21
 
static short LINE_DOTTED = 22
 

Protected Member Functions

double x_ (double x) const
 
double y_ (double y) const
 
double revx_ (double x) const
 
double revy_ (double y) const
 

Private Attributes

std::ostream & out_
 
std::string fgColorStr_
 
std::string bgColorStr_
 
std::vector< std::string > content_
 
std::vector< int > layers_
 
std::map< const RGBColor, std::string > colorIndex_
 
unsigned int colorCount_
 
bool useLayers_
 
bool contentStarted_
 
std::map< short int, std::string > fontShapes_
 
std::map< short int, std::string > fontSeries_
 

Detailed Description

LaTeX Portable Graphic Format (Pgf) plotting format.

Definition at line 57 of file PgfGraphicDevice.h.

Constructor & Destructor Documentation

◆ PgfGraphicDevice()

PgfGraphicDevice::PgfGraphicDevice ( std::ostream &  out,
double  unit 
)

Build a new Pgf device object.

Coordinates in Pgf are the same as in LaTeX, so it can be any of cm, mm, in, pt, px, etc. For compatibility with other devices, the constructor takes as input the scale of the drawing, as cm per points. All coordinates and widths will be multiplied by the factor in the output file.

Parameters
outThe output stream.
unitThe unit length.

Definition at line 47 of file PgfGraphicDevice.cpp.

References bpp::ColorTools::BLACK, bpp::ColorTools::BLUE, colorIndex_, bpp::ColorTools::CYAN, fontSeries_, fontShapes_, bpp::ColorTools::GREEN, bpp::ColorTools::MAGENTA, bpp::ColorTools::RED, setCurrentFont(), bpp::AbstractGraphicDevice::setXUnit(), bpp::AbstractGraphicDevice::setYUnit(), bpp::Font::STYLE_ITALIC, bpp::Font::STYLE_NORMAL, bpp::Font::WEIGHT_BOLD, bpp::Font::WEIGHT_NORMAL, bpp::ColorTools::WHITE, and bpp::ColorTools::YELLOW.

◆ ~PgfGraphicDevice()

virtual bpp::PgfGraphicDevice::~PgfGraphicDevice ( )
inlinevirtual

Definition at line 86 of file PgfGraphicDevice.h.

Member Function Documentation

◆ begin()

void PgfGraphicDevice::begin ( )
virtual

Start the painting.

Implements bpp::GraphicDevice.

Definition at line 79 of file PgfGraphicDevice.cpp.

References colorCount_, colorIndex_, content_, contentStarted_, layers_, and useLayers_.

◆ comment()

void bpp::PgfGraphicDevice::comment ( const std::string &  comment)
inlinevirtual

Add a comment in the output.

Parameters
commentComment text.

Implements bpp::GraphicDevice.

Definition at line 103 of file PgfGraphicDevice.h.

References content_.

◆ drawCircle()

void PgfGraphicDevice::drawCircle ( double  x,
double  y,
double  radius,
short  fill = FILL_EMPTY 
)
virtual

Draw a circle.

This method uses the current foreground color and the current line type for drawing the stroke of the circle, and the current background color for filling the circle.

Parameters
xx coordinate of the center
yy coordinate of the center
radiusThe circle radius
fillFilling type (one of FILL_EMPTY, FILL_FILLED or FILL_PATTERN).

Implements bpp::GraphicDevice.

Definition at line 263 of file PgfGraphicDevice.cpp.

References content_, contentStarted_, and bpp::GraphicDevice::FILL_FILLED.

◆ drawLine()

void PgfGraphicDevice::drawLine ( double  x1,
double  y1,
double  x2,
double  y2 
)
virtual

Draw a line between two points.

This method uses the current foreground color and the current line type.

Parameters
x1x coordinate 1
y1y coordinate 1
x2x coordinate 2
y2y coordinate 2

Implements bpp::GraphicDevice.

Definition at line 240 of file PgfGraphicDevice.cpp.

References content_, and contentStarted_.

◆ drawRect()

void PgfGraphicDevice::drawRect ( double  x,
double  y,
double  width,
double  height,
short  fill = FILL_EMPTY 
)
virtual

Draw a rectangle.

This method uses the current foreground color and the current line type for drawing the stroke of the rectangle, and the current background color for filling the rectangle.

Parameters
xx coordinate
yy coordinate
widthThe rectangle width
heightThe rectangle height
fillFilling type (one of FILL_EMPTY, FILL_FILLED or FILL_PATTERN).

Implements bpp::GraphicDevice.

Definition at line 251 of file PgfGraphicDevice.cpp.

References content_, contentStarted_, and bpp::GraphicDevice::FILL_FILLED.

◆ drawText()

void PgfGraphicDevice::drawText ( double  x,
double  y,
const std::string &  text,
short  hpos = TEXT_HORIZONTAL_LEFT,
short  vpos = TEXT_VERTICAL_BOTTOM,
double  angle = 0 
)
throw (UnvalidFlagException
)
virtual

Draw some characters.

This method uses the current foreground color.

Parameters
xx coordinate
yy coordinate
textThe characters to draw
hposHorizontal adjustment, one of TEXT_HORIZONTAL_LEFT, TEXT_HORIZONTAL_CENTER or TEXT_HORIZONTAL_RIGHT.
vposVertical adjustment, one of TEXT_VERTICAL_LEFT, TEXT_VERTICAL_CENTER or TEXT_VERTICAL_RIGHT.
angleAngle i radian to rotate the text.

Implements bpp::GraphicDevice.

Definition at line 275 of file PgfGraphicDevice.cpp.

◆ end()

void PgfGraphicDevice::end ( )
virtual

End the painting.

Depending on the implementation of the device, the call of this method might be required before the plotting commands become visible.

Implements bpp::GraphicDevice.

Definition at line 90 of file PgfGraphicDevice.cpp.

References colorIndex_, comp(), content_, bpp::AbstractGraphicDevice::getCurrentLayer(), bpp::AbstractGraphicDevice::getXUnit(), bpp::AbstractGraphicDevice::getYUnit(), layers_, out_, bpp::TextTools::toString(), and useLayers_.

◆ getCurrentBackgroundColor()

const RGBColor& bpp::AbstractGraphicDevice::getCurrentBackgroundColor ( ) const
inlinevirtualinherited

Implements bpp::GraphicDevice.

Definition at line 93 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::bgColor_.

◆ getCurrentFont()

const Font& bpp::AbstractGraphicDevice::getCurrentFont ( ) const
inlinevirtualinherited

Implements bpp::GraphicDevice.

Definition at line 94 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::font_.

◆ getCurrentForegroundColor()

const RGBColor& bpp::AbstractGraphicDevice::getCurrentForegroundColor ( ) const
inlinevirtualinherited

Implements bpp::GraphicDevice.

Definition at line 92 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::fgColor_.

◆ getCurrentLayer()

int bpp::AbstractGraphicDevice::getCurrentLayer ( ) const
inlinevirtualinherited

◆ getCurrentLineType()

short bpp::AbstractGraphicDevice::getCurrentLineType ( ) const
inlinevirtualinherited

Implements bpp::GraphicDevice.

Definition at line 96 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::lineType_.

◆ getCurrentPointSize()

unsigned int bpp::AbstractGraphicDevice::getCurrentPointSize ( ) const
inlinevirtualinherited

Implements bpp::GraphicDevice.

Definition at line 95 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::pointSize_.

◆ getFontShape()

const std::string& bpp::PgfGraphicDevice::getFontShape ( const Font font)

◆ getXUnit()

double bpp::AbstractGraphicDevice::getXUnit ( ) const
inlinevirtualinherited
Returns
The x expansion factor. The actual unit actually depends on the implementation.

Implements bpp::GraphicDevice.

Definition at line 76 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::xUnit_.

Referenced by end().

◆ getYUnit()

double bpp::AbstractGraphicDevice::getYUnit ( ) const
inlinevirtualinherited
Returns
The y expansion factor. The actual unit actually depends on the implementation.

Implements bpp::GraphicDevice.

Definition at line 77 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::yUnit_.

Referenced by end().

◆ revx_()

double bpp::AbstractGraphicDevice::revx_ ( double  x) const
inlineprotectedinherited

Definition at line 104 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::xUnit_.

◆ revy_()

double bpp::AbstractGraphicDevice::revy_ ( double  y) const
inlineprotectedinherited

Definition at line 105 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::yUnit_.

◆ setCurrentBackgroundColor()

void PgfGraphicDevice::setCurrentBackgroundColor ( const RGBColor color)
virtual

◆ setCurrentFont()

void PgfGraphicDevice::setCurrentFont ( const Font font)
virtual

◆ setCurrentForegroundColor()

void PgfGraphicDevice::setCurrentForegroundColor ( const RGBColor color)
virtual

◆ setCurrentLayer()

void PgfGraphicDevice::setCurrentLayer ( int  layerIndex)
virtual

◆ setCurrentLineType()

void PgfGraphicDevice::setCurrentLineType ( short  type)
throw (Exception
)
virtual

◆ setCurrentPointSize()

void PgfGraphicDevice::setCurrentPointSize ( unsigned int  size)
virtual

◆ setXUnit()

void bpp::AbstractGraphicDevice::setXUnit ( double  xu)
inlinevirtualinherited
Parameters
xuThe x expansion factor. The actual unit actually depends on the implementation.

Implements bpp::GraphicDevice.

Definition at line 74 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::xUnit_.

Referenced by PgfGraphicDevice().

◆ setYUnit()

void bpp::AbstractGraphicDevice::setYUnit ( double  yu)
inlinevirtualinherited
Parameters
yuThe y expansion factor. The actual unit actually depends on the implementation.

Implements bpp::GraphicDevice.

Definition at line 75 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::yUnit_.

Referenced by PgfGraphicDevice().

◆ x_()

double bpp::AbstractGraphicDevice::x_ ( double  x) const
inlineprotectedinherited

Definition at line 101 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::xUnit_.

Referenced by setCurrentPointSize().

◆ y_()

double bpp::AbstractGraphicDevice::y_ ( double  y) const
inlineprotectedinherited

Definition at line 102 of file AbstractGraphicDevice.h.

References bpp::AbstractGraphicDevice::yUnit_.

Member Data Documentation

◆ bgColorStr_

std::string bpp::PgfGraphicDevice::bgColorStr_
private

Definition at line 63 of file PgfGraphicDevice.h.

Referenced by setCurrentBackgroundColor(), and setCurrentLayer().

◆ colorCount_

unsigned int bpp::PgfGraphicDevice::colorCount_
private

Definition at line 67 of file PgfGraphicDevice.h.

Referenced by begin(), setCurrentBackgroundColor(), and setCurrentForegroundColor().

◆ colorIndex_

std::map<const RGBColor, std::string> bpp::PgfGraphicDevice::colorIndex_
private

◆ content_

std::vector<std::string> bpp::PgfGraphicDevice::content_
private

◆ contentStarted_

bool bpp::PgfGraphicDevice::contentStarted_
private

Definition at line 69 of file PgfGraphicDevice.h.

Referenced by begin(), drawCircle(), drawLine(), drawRect(), and setCurrentLayer().

◆ fgColorStr_

std::string bpp::PgfGraphicDevice::fgColorStr_
private

Definition at line 62 of file PgfGraphicDevice.h.

Referenced by setCurrentForegroundColor(), and setCurrentLayer().

◆ FILL_EMPTY

short GraphicDevice::FILL_EMPTY = 10
staticinherited

Definition at line 186 of file GraphicDevice.h.

◆ FILL_FILLED

short GraphicDevice::FILL_FILLED = 11
staticinherited

Definition at line 187 of file GraphicDevice.h.

Referenced by drawCircle(), and drawRect().

◆ FILL_PATTERN

short GraphicDevice::FILL_PATTERN = 12
staticinherited

Definition at line 188 of file GraphicDevice.h.

◆ fontSeries_

std::map<short int, std::string> bpp::PgfGraphicDevice::fontSeries_
mutableprivate

Definition at line 71 of file PgfGraphicDevice.h.

Referenced by PgfGraphicDevice(), and setCurrentFont().

◆ fontShapes_

std::map<short int, std::string> bpp::PgfGraphicDevice::fontShapes_
mutableprivate

Definition at line 70 of file PgfGraphicDevice.h.

Referenced by PgfGraphicDevice(), and setCurrentFont().

◆ layers_

std::vector<int> bpp::PgfGraphicDevice::layers_
private

Definition at line 65 of file PgfGraphicDevice.h.

Referenced by begin(), end(), and setCurrentLayer().

◆ LINE_DASHED

short GraphicDevice::LINE_DASHED = 21
staticinherited

◆ LINE_DOTTED

short GraphicDevice::LINE_DOTTED = 22
staticinherited

◆ LINE_SOLID

short GraphicDevice::LINE_SOLID = 20
staticinherited

◆ out_

std::ostream& bpp::PgfGraphicDevice::out_
private

Definition at line 61 of file PgfGraphicDevice.h.

Referenced by end().

◆ TEXT_HORIZONTAL_CENTER

short GraphicDevice::TEXT_HORIZONTAL_CENTER = 0
staticinherited

Definition at line 179 of file GraphicDevice.h.

◆ TEXT_HORIZONTAL_LEFT

short GraphicDevice::TEXT_HORIZONTAL_LEFT = 1
staticinherited

Definition at line 180 of file GraphicDevice.h.

◆ TEXT_HORIZONTAL_RIGHT

short GraphicDevice::TEXT_HORIZONTAL_RIGHT = 2
staticinherited

Definition at line 181 of file GraphicDevice.h.

◆ TEXT_VERTICAL_BOTTOM

short GraphicDevice::TEXT_VERTICAL_BOTTOM = 4
staticinherited

Definition at line 183 of file GraphicDevice.h.

◆ TEXT_VERTICAL_CENTER

short GraphicDevice::TEXT_VERTICAL_CENTER = 3
staticinherited

Definition at line 182 of file GraphicDevice.h.

◆ TEXT_VERTICAL_TOP

short GraphicDevice::TEXT_VERTICAL_TOP = 5
staticinherited

Definition at line 184 of file GraphicDevice.h.

◆ useLayers_

bool bpp::PgfGraphicDevice::useLayers_
private

Definition at line 68 of file PgfGraphicDevice.h.

Referenced by begin(), end(), and setCurrentLayer().


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