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.
Definition at line 24 of file CEnhancedMetaFile.h.
#include <mrpt/utils/CEnhancedMetaFile.h>
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. More... | |
virtual | ~CEnhancedMetaFile () |
Destructor. More... | |
void | setPixel (int x, int y, size_t color) MRPT_OVERRIDE |
Changes the value of the pixel (x,y). More... | |
size_t | getWidth () const MRPT_OVERRIDE |
Returns the width of the image in pixels (this currently has no applicability for a EMF file...) More... | |
size_t | getHeight () const MRPT_OVERRIDE |
Returns the height of the image in pixels (this currently has no applicability for a EMF file...) More... | |
void | drawImage (int x, int y, const utils::CImage &img) MRPT_OVERRIDE |
Draws an image as a bitmap at a given position. More... | |
void | line (int x0, int y0, int x1, int y1, const mrpt::utils::TColor color, unsigned int width=1, TPenStyle penStyle=psSolid) MRPT_OVERRIDE |
Draws a line. More... | |
void | textOut (int x0, int y0, const std::string &str, const mrpt::utils::TColor color) MRPT_OVERRIDE |
Places a text label. More... | |
virtual void | selectVectorTextFont (const std::string &fontName, int fontSize, bool bold=false, bool italic=false) |
Select the current font used when drawing text. More... | |
void | drawImage (int x, int y, const utils::CImage &img, float rotation, float scale) MRPT_OVERRIDE |
Draws an image as a bitmap at a given position, with some custom scale and rotation changes. More... | |
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) More... | |
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. More... | |
void | triangle (int x0, int y0, int size, const mrpt::utils::TColor color, bool inferior=true, unsigned int width=1) |
Draws a triangle. More... | |
virtual void | filledRectangle (int x0, int y0, int x1, int y1, const mrpt::utils::TColor color) |
Draws a filled rectangle. More... | |
virtual void | selectTextFont (const std::string &fontName) |
Select the current font used when drawing text. More... | |
void | cross (int x0, int y0, const mrpt::utils::TColor color, char type, unsigned int size=5, unsigned int width=1) |
Draw a cross. More... | |
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. More... | |
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. More... | |
template<class FEATURELIST > | |
void | drawFeaturesSimple (const FEATURELIST &list, const TColor &color=TColor::red, const int cross_size=5) |
Draws a set of marks onto the image, given a generic container of entities having just "x" and "y" fields. More... | |
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. More... | |
Static Public Attributes | |
static int | LINUX_IMG_WIDTH |
In Linux, the size of the bitmap image that emulates the EMF (Default:800) More... | |
static int | LINUX_IMG_HEIGHT |
In Linux, the size of the bitmap image that emulates the EMF (Default:600) More... | |
Protected Attributes | |
std::string | m_selectedFont |
The selected font name. More... | |
const uint32_t * | m_selectedFontBitmaps |
Direct access to character bitmaps. More... | |
Private Attributes | |
void_ptr_noncopy | m_hdc |
int | m_scale |
void_ptr_noncopy | m_hFont |
std::string | m_targetFile |
|
inherited |
mrpt::utils::CEnhancedMetaFile::CEnhancedMetaFile | ( | const std::string & | targetFileName, |
int | scaleFactor = 1 |
||
) |
Constructor.
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. |
|
virtual |
Destructor.
|
inherited |
Draw a cross.
x0 | The point x coordinate |
y0 | The point y coordinate |
color | The color of the cross |
size | The size of the cross |
type | The cross type. It could be: 'x', '+' or ':'(like '+' but clear at the center dot) |
width | The desired width of the cross (this is IGNORED yet) |
Definition at line 329 of file CCanvas.cpp.
References mrpt::utils::CCanvas::line(), and THROW_EXCEPTION.
Referenced by find_chessboard_corners_multiple(), and mrpt::gui::CDisplayWindow::plot().
|
virtualinherited |
Draws a circle of a given radius.
x | The center - x coordinate in pixels. |
y | The center - y coordinate in pixels. |
radius | The radius - in pixels. |
color | The color of the circle. |
width | The desired width of the line (this is IGNORED in this virtual class) |
Reimplemented in mrpt::utils::CImage.
Definition at line 355 of file CCanvas.cpp.
References mrpt::utils::CCanvas::line(), M_2PI, and mrpt::utils::round().
|
inlineinherited |
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:
Definition at line 322 of file CCanvas.h.
References cross(), mrpt::format(), mrpt::utils::TColor::red, and mrpt::utils::round().
|
inlineinherited |
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<mrpt::math::TPoint2D>, std::vector<TPixelCoordsf> or mrpt::vision::CFeatureList
Definition at line 304 of file CCanvas.h.
References cross(), and mrpt::utils::round().
|
virtual |
Draws an image as a bitmap at a given position.
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. |
Reimplemented from mrpt::utils::CCanvas.
Referenced by mrpt::slam::CMetricMapBuilderICP::saveCurrentEstimationToImage().
|
inlinevirtual |
Draws an image as a bitmap at a given position, with some custom scale and rotation changes.
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. |
Reimplemented from mrpt::utils::CCanvas.
Definition at line 123 of file CEnhancedMetaFile.h.
References mrpt::utils::CCanvas::drawImage().
|
inline |
Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution.
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. |
Definition at line 160 of file CEnhancedMetaFile.h.
References M_2PI, MRPT_END_WITH_CLEAN_UP, MRPT_START, and mrpt::utils::round().
|
inlineinherited |
Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution.
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. |
Definition at line 255 of file CCanvas.h.
References M_2PI, MRPT_END_WITH_CLEAN_UP, MRPT_START, and mrpt::utils::round().
|
virtualinherited |
Draws a filled rectangle.
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 rectangle fill This method may be redefined in some classes implementing this interface in a more appropiate manner. |
Definition at line 229 of file CCanvas.cpp.
References mrpt::utils::CCanvas::getHeight(), mrpt::utils::CCanvas::getWidth(), min, and mrpt::utils::CCanvas::setPixel().
Referenced by mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), and mrpt::gui::CDisplayWindow::plot().
|
inlinevirtual |
Returns the height of the image in pixels (this currently has no applicability for a EMF file...)
Implements mrpt::utils::CCanvas.
Definition at line 61 of file CEnhancedMetaFile.h.
|
inlinevirtual |
Returns the width of the image in pixels (this currently has no applicability for a EMF file...)
Implements mrpt::utils::CCanvas.
Definition at line 58 of file CEnhancedMetaFile.h.
|
virtual |
Draws a line.
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. |
Reimplemented from mrpt::utils::CCanvas.
Referenced by mrpt::slam::CMetricMapBuilderICP::saveCurrentEstimationToImage().
|
virtual |
Draws a rectangle (an empty rectangle, without filling)
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. |
|
virtualinherited |
Select the current font used when drawing text.
fontName | The name of the font |
Valid font names:
18x18ja (Asian characters for UTF-8 strings - Only available if MRPT is built with MRPT_HAS_ASIAN_FONTS = true)
Definition at line 249 of file CCanvas.cpp.
References init_fonts_list(), list_registered_fonts, mrpt::utils::CCanvas::m_selectedFont, and mrpt::utils::CCanvas::m_selectedFontBitmaps.
Referenced by mrpt::utils::CImage::drawChessboardCorners(), and mrpt::utils::CCanvas::textOut().
|
virtual |
Select the current font used when drawing text.
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 |
|
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 |
Places a text label.
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. |
Reimplemented from mrpt::utils::CCanvas.
|
inherited |
Draws a triangle.
x0 | The triangle center x coordinate |
y0 | The triangle center y coordinate |
size | The size of the triangle |
color | The color of the line |
inferior | The position of the triangle |
width | The desired width of the line. |
Definition at line 200 of file CCanvas.cpp.
References mrpt::utils::CCanvas::line(), and mrpt::utils::round().
|
static |
In Linux, the size of the bitmap image that emulates the EMF (Default:600)
Definition at line 34 of file CEnhancedMetaFile.h.
|
static |
In Linux, the size of the bitmap image that emulates the EMF (Default:800)
Definition at line 33 of file CEnhancedMetaFile.h.
|
private |
Definition at line 27 of file CEnhancedMetaFile.h.
|
private |
Definition at line 29 of file CEnhancedMetaFile.h.
|
private |
Definition at line 28 of file CEnhancedMetaFile.h.
|
protectedinherited |
The selected font name.
Definition at line 43 of file CCanvas.h.
Referenced by mrpt::utils::CCanvas::selectTextFont().
|
protectedinherited |
Direct access to character bitmaps.
Definition at line 45 of file CCanvas.h.
Referenced by mrpt::utils::CCanvas::selectTextFont(), and mrpt::utils::CCanvas::textOut().
|
private |
Definition at line 30 of file CEnhancedMetaFile.h.
Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019 |