Main MRPT website > C++ reference
MRPT logo
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | Private Attributes
mrpt::utils::CEnhancedMetaFile Class Reference

Detailed Description

This class represents a Windows Enhanced Meta File (EMF) for generating and saving graphics.

If used under Linux, a ".png", non-vectorial, file will be generated instead.

#include <mrpt/utils/CEnhancedMetaFile.h>

Inheritance diagram for mrpt::utils::CEnhancedMetaFile:
Inheritance graph
[legend]

List of all members.

Public Types

enum  TPenStyle {
  psSolid = 0, psDash, psDot, psDashDot,
  psDashDotDot
}
 Definition of pen styles. More...

Public Member Functions

 CEnhancedMetaFile (const std::string &targetFileName, int scaleFactor=1)
 Constructor.
virtual ~CEnhancedMetaFile ()
 Destructor.
virtual void setPixel (int x, int y, size_t color)
 Changes the value of the pixel (x,y).
virtual size_t getWidth () const
 Returns the width of the image in pixels (this currently has no applicability for a EMF file...)
virtual size_t getHeight () const
 Returns the height of the image in pixels (this currently has no applicability for a EMF file...)
virtual void drawImage (int x, int y, const utils::CImage &img)
 Draws an image as a bitmap at a given position.
virtual void line (int x0, int y0, int x1, int y1, const mrpt::utils::TColor color, unsigned int width=1, TPenStyle penStyle=psSolid)
 Draws a line.
virtual void textOut (int x0, int y0, const std::string &str, const mrpt::utils::TColor color)
 Places a text label.
virtual void selectTextFont (const std::string &fontName, int fontSize, bool bold=false, bool italic=false)
 Select the current font used when drawing text.
virtual void drawImage (int x, int y, const utils::CImage &img, float rotation, float scale)
 Draws an image as a bitmap at a given position, with some custom scale and rotation changes.
virtual void rectangle (int x0, int y0, int x1, int y1, const mrpt::utils::TColor color, unsigned int width=1)
 Draws a rectangle (an empty rectangle, without filling)
template<class T >
void ellipseGaussian (math::CMatrixTemplateNumeric< T > *cov2D, T mean_x, T mean_y, float confIntervalStds=2, const mrpt::utils::TColor color=mrpt::utils::TColor(255, 255, 255), unsigned int width=1, int nEllipsePoints=20)
 Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution.
void triangle (int x0, int y0, int size, const mrpt::utils::TColor color, bool inferior=true, unsigned int width=1)
 Draws a triangle.
virtual void filledRectangle (int x0, int y0, int x1, int y1, const mrpt::utils::TColor color)
 Draws a filled rectangle.
virtual void selectTextFont (const std::string &fontName)
 Select the current font used when drawing text.
void cross (int x0, int y0, const mrpt::utils::TColor color, char type, unsigned int size=5, unsigned int width=1)
 Draw a cross.
virtual void drawCircle (int x, int y, int radius, const mrpt::utils::TColor color=mrpt::utils::TColor(255, 255, 255), unsigned int width=1)
 Draws a circle of a given radius.
template<class MATRIX2X2 >
void ellipseGaussian (const MATRIX2X2 *cov2D, const double mean_x, const double mean_y, double confIntervalStds=2, const mrpt::utils::TColor color=mrpt::utils::TColor(255, 255, 255), unsigned int width=1, int nEllipsePoints=20)
 Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution.
template<class FEATURELIST >
void drawFeaturesSimple (const FEATURELIST &list, const TColor &color=TColor::red)
 Draws a set of marks onto the image, given a generic container of entities having just "x" and "y" fields.
template<class FEATURELIST >
void drawFeatures (const FEATURELIST &list, const TColor &color=TColor::red, const bool showIDs=false, const bool showResponse=false)
 Draws a set of marks (or scaled circles for features with scale) onto the image, given a generic container of features.

Static Public Attributes

static int LINUX_IMG_WIDTH
 In Linux, the size of the bitmap image that emulates the EMF (Default:800)
static int LINUX_IMG_HEIGHT
 In Linux, the size of the bitmap image that emulates the EMF (Default:600)

Protected Attributes

std::string m_selectedFont
 The selected font name.
const uint32_t * m_selectedFontBitmaps
 Direct access to character bitmaps.

Private Attributes

void_ptr_noncopy m_hdc
int m_scale
void_ptr_noncopy m_hFont
std::string m_targetFile

Member Enumeration Documentation

Definition of pen styles.

Enumerator:
psSolid 
psDash 
psDot 
psDashDot 
psDashDotDot 

Definition at line 78 of file CCanvas.h.


Constructor & Destructor Documentation

mrpt::utils::CEnhancedMetaFile::CEnhancedMetaFile ( const std::string targetFileName,
int  scaleFactor = 1 
)

Constructor.

Parameters:
targetFileNameThis file will be created and the EMF saved there.
scaleFactorAll coordinates in draw commands will be internally multiplied by this scale, to provide a way of obtaining "subpixel" drawing.
virtual mrpt::utils::CEnhancedMetaFile::~CEnhancedMetaFile ( ) [virtual]

Destructor.


Member Function Documentation

void mrpt::utils::CCanvas::cross ( int  x0,
int  y0,
const mrpt::utils::TColor  color,
char  type,
unsigned int  size = 5,
unsigned int  width = 1 
) [inherited]

Draw a cross.

Parameters:
x0The point x coordinate
y0The point y coordinate
colorThe color of the cross
sizeThe size of the cross
typeThe cross type. It could be: 'x', '+' or ':'(like '+' but clear at the center dot)
widthThe desired width of the cross (this is IGNORED yet)
virtual void mrpt::utils::CCanvas::drawCircle ( int  x,
int  y,
int  radius,
const mrpt::utils::TColor  color = mrpt::utils::TColor(255, 255, 255),
unsigned int  width = 1 
) [virtual, inherited]

Draws a circle of a given radius.

Parameters:
xThe center - x coordinate in pixels.
yThe center - y coordinate in pixels.
radiusThe radius - in pixels.
colorThe color of the circle.
widthThe desired width of the line (this is IGNORED in this virtual class)
template<class FEATURELIST >
void mrpt::utils::CCanvas::drawFeatures ( const FEATURELIST &  list,
const TColor color = TColor::red,
const bool  showIDs = false,
const bool  showResponse = false 
) [inline, inherited]

Draws a set of marks (or scaled circles for features with scale) onto the image, given a generic container of features.

The class of FEATURELIST can be:

See also:
drawFeaturesSimple

Definition at line 347 of file CCanvas.h.

References mrpt::utils::round(), and mrpt::format().

template<class FEATURELIST >
void mrpt::utils::CCanvas::drawFeaturesSimple ( const FEATURELIST &  list,
const TColor color = TColor::red 
) [inline, inherited]

Draws a set of marks onto the image, given a generic container of entities having just "x" and "y" fields.

The class of FEATURELIST can be, for example, std::vector<TPoint2D>, std::vector<TPixelCoordsf> or mrpt::vision::CFeatureList

See also:
drawFeatures

Definition at line 329 of file CCanvas.h.

References mrpt::utils::round().

virtual void mrpt::utils::CEnhancedMetaFile::drawImage ( int  x,
int  y,
const utils::CImage img 
) [virtual]

Draws an image as a bitmap at a given position.

Parameters:
x0The top-left corner x coordinates on this canvas where the image is to be drawn
y0The top-left corner y coordinates on this canvas where the image is to be drawn
imgThe image to be drawn in this canvas This method may be redefined in some classes implementing this interface in a more appropiate manner.

Reimplemented from mrpt::utils::CCanvas.

virtual void mrpt::utils::CEnhancedMetaFile::drawImage ( int  x,
int  y,
const utils::CImage img,
float  rotation,
float  scale 
) [inline, virtual]

Draws an image as a bitmap at a given position, with some custom scale and rotation changes.

Parameters:
x0The top-left corner x coordinates on this canvas where the image is to be drawn
y0The top-left corner y coordinates on this canvas where the image is to be drawn
rotationThe rotation in radians, positive values being anti-clockwise direction, 0 is the normal position.
scaleThe scale factor, e.g. 2 means twice the original size.
imgThe image to be drawn in this canvas This method may be redefined in some classes implementing this interface in a more appropiate manner.

Reimplemented from mrpt::utils::CCanvas.

Definition at line 154 of file CEnhancedMetaFile.h.

References mrpt::utils::CCanvas::drawImage().

template<class T >
void mrpt::utils::CEnhancedMetaFile::ellipseGaussian ( math::CMatrixTemplateNumeric< T > *  cov2D,
mean_x,
mean_y,
float  confIntervalStds = 2,
const mrpt::utils::TColor  color = mrpt::utils::TColor(255,255,255),
unsigned int  width = 1,
int  nEllipsePoints = 20 
) [inline]

Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution.

Parameters:
mean_xThe x coordinate of the center point of the ellipse.
mean_yThe y coordinate of the center point of the ellipse.
cov2DA 2x2 covariance matrix.
confIntervalStdsHow many "sigmas" for the confidence level (i.e. 2->95%, 3=99.97%,...)
colorThe color of the ellipse
widthThe desired width of the line (this is IGNORED in this virtual class)
nEllipsePointsThe number of points to generate to approximate the ellipse shape.
Exceptions:
std::exceptionOn an invalid matrix.

Definition at line 193 of file CEnhancedMetaFile.h.

References MRPT_START, M_2PI, mrpt::utils::round(), and MRPT_END_WITH_CLEAN_UP.

template<class MATRIX2X2 >
void mrpt::utils::CCanvas::ellipseGaussian ( const MATRIX2X2 *  cov2D,
const double  mean_x,
const double  mean_y,
double  confIntervalStds = 2,
const mrpt::utils::TColor  color = mrpt::utils::TColor(255,255,255),
unsigned int  width = 1,
int  nEllipsePoints = 20 
) [inline, inherited]

Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution.

Parameters:
mean_xThe x coordinate of the center point of the ellipse.
mean_yThe y coordinate of the center point of the ellipse.
cov2DA 2x2 covariance matrix.
confIntervalStdsHow many "sigmas" for the confidence level (i.e. 2->95%, 3=99.97%,...)
colorThe color of the ellipse
widthThe desired width of the line (this is IGNORED in this virtual class)
nEllipsePointsThe number of points to generate to approximate the ellipse shape.
Exceptions:
std::exceptionOn an invalid matrix.

Definition at line 280 of file CCanvas.h.

References MRPT_START, M_2PI, mrpt::utils::round(), and MRPT_END_WITH_CLEAN_UP.

virtual void mrpt::utils::CCanvas::filledRectangle ( int  x0,
int  y0,
int  x1,
int  y1,
const mrpt::utils::TColor  color 
) [virtual, inherited]

Draws a filled rectangle.

Parameters:
x0The top-left x coordinate
y0The top-left y coordinate
x1The right-bottom x coordinate
y1The right-bottom y coordinate
colorThe color of the rectangle fill This method may be redefined in some classes implementing this interface in a more appropiate manner.
See also:
rectangle
virtual size_t mrpt::utils::CEnhancedMetaFile::getHeight ( ) const [inline, virtual]

Returns the height of the image in pixels (this currently has no applicability for a EMF file...)

Implements mrpt::utils::CCanvas.

Definition at line 86 of file CEnhancedMetaFile.h.

virtual size_t mrpt::utils::CEnhancedMetaFile::getWidth ( ) const [inline, virtual]

Returns the width of the image in pixels (this currently has no applicability for a EMF file...)

Implements mrpt::utils::CCanvas.

Definition at line 82 of file CEnhancedMetaFile.h.

virtual void mrpt::utils::CEnhancedMetaFile::line ( int  x0,
int  y0,
int  x1,
int  y1,
const mrpt::utils::TColor  color,
unsigned int  width = 1,
TPenStyle  penStyle = psSolid 
) [virtual]

Draws a line.

Parameters:
x0The starting point x coordinate
y0The starting point y coordinate
x1The end point x coordinate
y1The end point y coordinate
colorThe color of the line
widthThe desired width of the line (this is IGNORED in this virtual class) This method may be redefined in some classes implementing this interface in a more appropiate manner.

Reimplemented from mrpt::utils::CCanvas.

virtual void mrpt::utils::CEnhancedMetaFile::rectangle ( int  x0,
int  y0,
int  x1,
int  y1,
const mrpt::utils::TColor  color,
unsigned int  width = 1 
) [virtual]

Draws a rectangle (an empty rectangle, without filling)

Parameters:
x0The top-left x coordinate
y0The top-left y coordinate
x1The right-bottom x coordinate
y1The right-bottom y coordinate
colorThe color of the line
widthThe desired width of the line.
See also:
filledRectangle

Reimplemented from mrpt::utils::CCanvas.

virtual void mrpt::utils::CEnhancedMetaFile::selectTextFont ( const std::string fontName,
int  fontSize,
bool  bold = false,
bool  italic = false 
) [virtual]

Select the current font used when drawing text.

Parameters:
fontNameThe face name of a font (e.g. "Arial","System",...)
fontSizeThe size of the font in pts.
boldWhether the font is bold
italicWhether the font is italic
See also:
textOut
virtual void mrpt::utils::CCanvas::selectTextFont ( const std::string fontName) [virtual, inherited]

Select the current font used when drawing text.

Parameters:
fontNameThe name of the font

Valid font names:

  • 5x7
  • 6x13
  • 6x13B
  • 6x13O
  • 9x15 (Default at start-up)
  • 9x15B
  • 10x20
  • 18x18ja (Asian characters for UTF-8 strings - Only available if MRPT is built with MRPT_HAS_ASIAN_FONTS = true)
sample_textFonts.png
See also:
textOut, The example in this page.
virtual void mrpt::utils::CEnhancedMetaFile::setPixel ( int  x,
int  y,
size_t  color 
) [virtual]

Changes the value of the pixel (x,y).

Pixel coordinates starts at the left-top corner of the image, and start in (0,0). The meaning of the parameter "color" depends on the implementation: it will usually be a 24bit RGB value (0x00RRGGBB), but it can also be just a 8bit gray level. This method must support (x,y) values OUT of the actual image size without neither raising exceptions, nor leading to memory access errors.

Implements mrpt::utils::CCanvas.

virtual void mrpt::utils::CEnhancedMetaFile::textOut ( int  x0,
int  y0,
const std::string str,
const mrpt::utils::TColor  color 
) [virtual]

Places a text label.

Parameters:
x0The x coordinates
y0The y coordinates
strThe string to put
colorThe text color
fontSizeThe font size, in "points" This method may be redefined in some classes implementing this interface in a more appropiate manner.
See also:
rectangle

Reimplemented from mrpt::utils::CCanvas.

void mrpt::utils::CCanvas::triangle ( int  x0,
int  y0,
int  size,
const mrpt::utils::TColor  color,
bool  inferior = true,
unsigned int  width = 1 
) [inherited]

Draws a triangle.

Parameters:
x0The triangle center x coordinate
y0The triangle center y coordinate
sizeThe size of the triangle
colorThe color of the line
inferiorThe position of the triangle
widthThe desired width of the line.
See also:
triangle

Member Data Documentation

In Linux, the size of the bitmap image that emulates the EMF (Default:600)

Definition at line 56 of file CEnhancedMetaFile.h.

In Linux, the size of the bitmap image that emulates the EMF (Default:800)

Definition at line 55 of file CEnhancedMetaFile.h.

Definition at line 49 of file CEnhancedMetaFile.h.

Definition at line 51 of file CEnhancedMetaFile.h.

Definition at line 50 of file CEnhancedMetaFile.h.

The selected font name.

Definition at line 68 of file CCanvas.h.

const uint32_t* mrpt::utils::CCanvas::m_selectedFontBitmaps [protected, inherited]

Direct access to character bitmaps.

Definition at line 70 of file CCanvas.h.

Definition at line 52 of file CEnhancedMetaFile.h.




Page generated by Doxygen 1.7.5 for MRPT 0.9.5 SVN: at Thu Oct 13 21:25:36 UTC 2011