Main MRPT website > C++ reference
MRPT logo
Public Types | Public Member Functions | Protected Attributes

mrpt::utils::CCanvas Class Reference


Detailed Description

This virtual class defines the interface of any object accepting drawing primitives on it.

A number of text fonts can be selected with CCanvas::selectTextFont(). These are the implemented font names:

For an example of each font check the corresponding wiki page.

See also:
CImage

Definition at line 63 of file CCanvas.h.

#include <mrpt/utils/CCanvas.h>

Inheritance diagram for mrpt::utils::CCanvas:
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

 CCanvas ()
virtual ~CCanvas ()
 Dummy virtual destructor:
virtual void setPixel (int x, int y, size_t color)=0
 Changes the value of the pixel (x,y).
virtual size_t getWidth () const =0
 Returns the width of the image in pixels.
virtual size_t getHeight () const =0
 Returns the height of the image in pixels.
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.
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).
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 textOut (int x0, int y0, const std::string &str, const mrpt::utils::TColor color)
 Renders 2D text using bitmap fonts.
virtual void selectTextFont (const std::string &fontName)
 Select the current font used when drawing text.
virtual void drawImage (int x, int y, const utils::CImage &img)
 Draws an image as a bitmap at a given position.
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 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 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.

Protected Attributes

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

Member Enumeration Documentation

Definition of pen styles.

Enumerator:
psSolid 
psDash 
psDot 
psDashDot 
psDashDotDot 

Definition at line 76 of file CCanvas.h.


Constructor & Destructor Documentation

mrpt::utils::CCanvas::CCanvas (  ) 
virtual mrpt::utils::CCanvas::~CCanvas (  )  [inline, virtual]

Dummy virtual destructor:

Definition at line 87 of file CCanvas.h.


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 
)

Draw a cross.

Parameters:
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)
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]

Draws a circle of a given radius.

Parameters:
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)
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]

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 mrpt::vision::CFeatureList

See also:
drawFeaturesSimple

Definition at line 327 of file CCanvas.h.

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

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

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 315 of file CCanvas.h.

References mrpt::utils::round().

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

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.

Reimplemented in mrpt::utils::CEnhancedMetaFile.

Referenced by mrpt::utils::CEnhancedMetaFile::drawImage().

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

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.

Reimplemented in mrpt::utils::CEnhancedMetaFile.

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]

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.
Exceptions:
std::exception On an invalid matrix.

Definition at line 266 of file CCanvas.h.

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

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

Draws a filled rectangle.

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 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::CCanvas::getHeight (  )  const [pure virtual]

Returns the height of the image in pixels.

Implemented in mrpt::utils::CEnhancedMetaFile, and mrpt::utils::CImage.

virtual size_t mrpt::utils::CCanvas::getWidth (  )  const [pure virtual]

Returns the width of the image in pixels.

Implemented in mrpt::utils::CEnhancedMetaFile, and mrpt::utils::CImage.

virtual void mrpt::utils::CCanvas::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:
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 in mrpt::utils::CEnhancedMetaFile, and mrpt::utils::CImage.

void mrpt::utils::CCanvas::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).

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:
filledRectangle

Reimplemented in mrpt::utils::CEnhancedMetaFile.

virtual void mrpt::utils::CCanvas::selectTextFont ( const std::string &  fontName  )  [virtual]

Select the current font used when drawing text.

Parameters:
fontName The name of the font See the wiki for a list of valid font names.
See also:
textOut
virtual void mrpt::utils::CCanvas::setPixel ( int  x,
int  y,
size_t  color 
) [pure 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.

You can also use a TColor() type as input and it will be automatically converted to size_t.

This method must support (x,y) values OUT of the actual image size without neither raising exceptions, nor leading to memory access errors.

Implemented in mrpt::utils::CEnhancedMetaFile, and mrpt::utils::CImage.

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

Renders 2D text using bitmap fonts.

Parameters:
x0 The x coordinates
y0 The y coordinates
str The string to put. If using UNICODE characters, use UTF-8 encoding.
color The text color
See also:
selectTextFont

Reimplemented in mrpt::utils::CEnhancedMetaFile.

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

Draws a triangle.

Parameters:
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.
See also:
triangle

Member Data Documentation

std::string mrpt::utils::CCanvas::m_selectedFont [protected]

The selected font name.

Definition at line 66 of file CCanvas.h.

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

Direct access to character bitmaps.

Definition at line 68 of file CCanvas.h.




Page generated by Doxygen 1.7.1 for MRPT 0.9.4 SVN: at Mon Jan 10 23:33:19 UTC 2011