class mrpt::img::CEnhancedMetaFile
Overview
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/img/CEnhancedMetaFile.h> class CEnhancedMetaFile: public mrpt::img::CCanvas { public: // construction CEnhancedMetaFile(const std::string& targetFileName, int scaleFactor = 1); // methods static void LINUX_IMG_WIDTH(int value); static int LINUX_IMG_WIDTH(); static void LINUX_IMG_HEIGHT(int value); static int LINUX_IMG_HEIGHT(); virtual void setPixel(int x, int y, size_t color); virtual size_t getWidth() const; virtual size_t getHeight() const; virtual void drawImage(int x, int y, const mrpt::img::CImage& img); virtual void line( int x0, int y0, int x1, int y1, const mrpt::img::TColor color, unsigned int width = 1, TPenStyle penStyle = psSolid ); virtual void textOut(int x0, int y0, const std::string& str, const mrpt::img::TColor color); virtual void selectVectorTextFont( const std::string& fontName, int fontSize, bool bold = false, bool italic = false ); virtual void drawImage(int x, int y, const mrpt::img::CImage& img, float rotation, float scale); virtual void rectangle( int x0, int y0, int x1, int y1, const mrpt::img::TColor color, unsigned int width = 1 ); template <class T> void ellipseGaussian( mrpt::math::CMatrixDynamic<T>* cov2D, T mean_x, T mean_y, float confIntervalStds = 2, const mrpt::img::TColor& color = mrpt::img::TColor(255, 255, 255), unsigned int width = 1, int nEllipsePoints = 20 ); };
Inherited Members
public: // enums enum TPenStyle; // methods virtual void setPixel(int x, int y, size_t color) = 0; virtual size_t getWidth() const = 0; virtual size_t getHeight() const = 0; virtual void line( int x0, int y0, int x1, int y1, const mrpt::img::TColor color, unsigned int width = 1, TPenStyle penStyle = psSolid ); void rectangle(int x0, int y0, int x1, int y1, const mrpt::img::TColor color, unsigned int width = 1); void triangle( int x0, int y0, int size, const mrpt::img::TColor color, bool inferior = true, unsigned int width = 1 ); virtual void filledRectangle(int x0, int y0, int x1, int y1, const mrpt::img::TColor color); virtual void textOut(int x0, int y0, const std::string& str, const mrpt::img::TColor color); virtual void selectTextFont(const std::string& fontName); virtual void drawImage(int x, int y, const mrpt::img::CImage& img); void drawMark( int x0, int y0, const mrpt::img::TColor color, char type, int size = 5, unsigned int width = 1 ); virtual void drawImage(int x, int y, const mrpt::img::CImage& img, float rotation, float scale); virtual void drawCircle( int x, int y, int radius, const mrpt::img::TColor& color = mrpt::img::TColor(255, 255, 255), unsigned int width = 1 ); void ellipseGaussian( const mrpt::math::CMatrixFixed<double, 2, 2>& cov2D, const double mean_x, const double mean_y, double confIntervalStds = 2, const mrpt::img::TColor& color = mrpt::img::TColor(255, 255, 255), unsigned int width = 1, int nEllipsePoints = 20 ); template <class FEATURELIST> void drawFeaturesSimple( const FEATURELIST& list, const TColor& color = TColor::red(), const int cross_size = 5 ); template <class FEATURELIST> void drawFeatures( const FEATURELIST& list, const TColor& color = TColor::red(), const bool showIDs = false, const bool showResponse = false, const bool showScale = false, const char marker = '+' );
Construction
CEnhancedMetaFile(const std::string& targetFileName, int scaleFactor = 1)
Constructor.
Parameters:
targetFileName  | 
This file will be created and the EMF saved there.  | 
scaleFactor  | 
All coordinates in draw commands will be internally multiplied by this scale, to provide a way of obtaining “subpixel” drawing.  | 
Methods
static void LINUX_IMG_WIDTH(int value)
In Linux, the size of the bitmap image that emulates the EMF (Default:800)
static void LINUX_IMG_HEIGHT(int value)
In Linux, the size of the bitmap image that emulates the EMF (Default:600)
virtual void setPixel(int x, int y, size_t color)
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.
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 mrpt::img::CImage& img)
Draws an image as a bitmap at a given position.
Parameters:
x0  | 
The top-left corner x coordinates on this canvas where the image is to be drawn  | 
y0  | 
The top-left corner y coordinates on this canvas where the image is to be drawn  | 
img  | 
The image to be drawn in this canvas This method may be redefined in some classes implementing this interface in a more appropiate manner.  | 
virtual void line( int x0, int y0, int x1, int y1, const mrpt::img::TColor color, unsigned int width = 1, TPenStyle penStyle = psSolid )
Draws a line.
Parameters:
x0  | 
The starting point x coordinate  | 
y0  | 
The starting point y coordinate  | 
x1  | 
The end point x coordinate  | 
y1  | 
The end point y coordinate  | 
color  | 
The color of the line  | 
width  | 
The 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.  | 
virtual void textOut(int x0, int y0, const std::string& str, const mrpt::img::TColor color)
Places a text label.
Parameters:
x0  | 
The x coordinates  | 
y0  | 
The y coordinates  | 
str  | 
The string to put  | 
color  | 
The text color  | 
fontSize  | 
The font size, in “points” This method may be redefined in some classes implementing this interface in a more appropiate manner.  | 
See also:
virtual void selectVectorTextFont( const std::string& fontName, int fontSize, bool bold = false, bool italic = false )
Select the current font used when drawing text.
Parameters:
fontName  | 
The face name of a font (e.g. “Arial”,”System”,…)  | 
fontSize  | 
The size of the font in pts.  | 
bold  | 
Whether the font is bold  | 
italic  | 
Whether the font is italic  | 
See also:
textOut, CCanvas::selectTextFont
virtual void drawImage(int x, int y, const mrpt::img::CImage& img, float rotation, float scale)
Draws an image as a bitmap at a given position, with some custom scale and rotation changes.
Parameters:
x0  | 
The top-left corner x coordinates on this canvas where the image is to be drawn  | 
y0  | 
The top-left corner y coordinates on this canvas where the image is to be drawn  | 
rotation  | 
The rotation in radians, positive values being anti-clockwise direction, 0 is the normal position.  | 
scale  | 
The scale factor, e.g. 2 means twice the original size.  | 
img  | 
The image to be drawn in this canvas This method may be redefined in some classes implementing this interface in a more appropiate manner.  | 
virtual void rectangle( int x0, int y0, int x1, int y1, const mrpt::img::TColor color, unsigned int width = 1 )
Draws a rectangle (an empty rectangle, without filling)
Parameters:
x0  | 
The top-left x coordinate  | 
y0  | 
The top-left y coordinate  | 
x1  | 
The right-bottom x coordinate  | 
y1  | 
The right-bottom y coordinate  | 
color  | 
The color of the line  | 
width  | 
The desired width of the line.  | 
See also:
template <class T> void ellipseGaussian( mrpt::math::CMatrixDynamic<T>* cov2D, T mean_x, T mean_y, float confIntervalStds = 2, const mrpt::img::TColor& color = mrpt::img::TColor(255, 255, 255), unsigned int width = 1, int nEllipsePoints = 20 )
Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution.
Parameters:
mean_x  | 
The x coordinate of the center point of the ellipse.  | 
mean_y  | 
The y coordinate of the center point of the ellipse.  | 
cov2D  | 
A 2x2 covariance matrix.  | 
confIntervalStds  | 
How many “sigmas” for the confidence level (i.e. 2->95%, 3=99.97%,…)  | 
color  | 
The color of the ellipse  | 
width  | 
The desired width of the line (this is IGNORED in this virtual class)  | 
nEllipsePoints  | 
The number of points to generate to approximate the ellipse shape.  | 
std::exception  | 
On an invalid matrix.  |