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

mpBitmapLayer Class Reference


Detailed Description

This virtual class represents objects that can be moved to an arbitrary 2D location+rotation.

The current transformation is set through SetCoordinateBase. To ease the implementation of descendent classes, mpMovableObject will be in charge of Bounding Box computation and layer render, assuming that the object updates its shape in m_shape_xs & m_shape_ys.

Definition at line 1668 of file mathplot.h.

#include <mrpt/otherlibs/mathplot/mathplot.h>

Inheritance diagram for mpBitmapLayer:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 mpBitmapLayer ()
 Default constructor.
virtual ~mpBitmapLayer ()
void GetBitmapCopy (wxImage &outBmp) const
 Returns a copy of the current bitmap assigned to the layer.
void SetBitmap (const wxImage &inBmp, double x, double y, double lx, double ly)
 Change the bitmap associated with the layer (to update the screen, refresh the mpWindow).
virtual bool HasBBox ()
 Check whether this layer has a bounding box.
virtual double GetMinX ()
 Get inclusive left border of bounding box.
virtual double GetMaxX ()
 Get inclusive right border of bounding box.
virtual double GetMinY ()
 Get inclusive bottom border of bounding box.
virtual double GetMaxY ()
 Get inclusive top border of bounding box.
virtual void Plot (wxDC &dc, mpWindow &w)
 Plot given view of layer to the given device context.
void SetAlign (int align)
 Set label axis alignment.

Protected Attributes

int m_flags
 Holds label alignment.
wxImage m_bitmap
 The internal copy of the Bitmap:
wxBitmap m_scaledBitmap
wxCoord m_scaledBitmap_offset_x
wxCoord m_scaledBitmap_offset_y
bool m_validImg
double m_min_x
 The shape of the bitmap:
double m_max_x
double m_min_y
double m_max_y

Constructor & Destructor Documentation

mpBitmapLayer::mpBitmapLayer (  ) [inline]

Default constructor.

Definition at line 1673 of file mathplot.h.

References mpLAYER_BITMAP.

virtual mpBitmapLayer::~mpBitmapLayer (  ) [inline, virtual]

Definition at line 1681 of file mathplot.h.


Member Function Documentation

void mpBitmapLayer::GetBitmapCopy ( wxImage &  outBmp ) const

Returns a copy of the current bitmap assigned to the layer.

virtual double mpBitmapLayer::GetMaxX (  ) [inline, virtual]

Get inclusive right border of bounding box.

Reimplemented from mpLayer.

Definition at line 1704 of file mathplot.h.

virtual double mpBitmapLayer::GetMaxY (  ) [inline, virtual]

Get inclusive top border of bounding box.

Reimplemented from mpLayer.

Definition at line 1712 of file mathplot.h.

virtual double mpBitmapLayer::GetMinX (  ) [inline, virtual]

Get inclusive left border of bounding box.

Reimplemented from mpLayer.

Definition at line 1700 of file mathplot.h.

virtual double mpBitmapLayer::GetMinY (  ) [inline, virtual]

Get inclusive bottom border of bounding box.

Reimplemented from mpLayer.

Definition at line 1708 of file mathplot.h.

virtual bool mpBitmapLayer::HasBBox (  ) [inline, virtual]

Check whether this layer has a bounding box.

The default implementation returns TRUE. Override and return FALSE if your mpLayer implementation should be ignored by the calculation of the global bounding box for all layers in a mpWindow.

Return values:
TRUEHas bounding box
FALSEHas not bounding box

Reimplemented from mpLayer.

Definition at line 1696 of file mathplot.h.

virtual void mpBitmapLayer::Plot ( wxDC &  dc,
mpWindow w 
) [virtual]

Plot given view of layer to the given device context.

An implementation of this function has to transform layer coordinates to wxDC coordinates based on the view parameters retrievable from the mpWindow passed in w. Note that the public methods of mpWindow: x2p,y2p and p2x,p2y are already provided which transform layer coordinates to DC pixel coordinates, and user code should rely on them for portability and future changes to be applied transparently, instead of implementing the following formulas manually.

The passed device context dc has its coordinate origin set to the top-left corner of the visible area (the default). The coordinate orientation is as shown in the following picture:

        (wxDC origin 0,0)
               x-------------> ascending X ----------------+
               |                                           |
               |                                           |
               V ascending Y                               |
	           |                                           |
	           |                                           |
	           |                                           |
	           +-------------------------------------------+  <-- right-bottom corner of the mpWindow visible area.
        

Note that Y ascends in downward direction, whereas the usual vertical orientation for mathematical plots is vice versa. Thus Y-orientation will be swapped usually, when transforming between wxDC and mpLayer coordinates. This change of coordinates is taken into account in the methods p2x,p2y,x2p,y2p.

Rules for transformation between mpLayer and wxDC coordinates

        dc_X = (layer_X - mpWindow::GetPosX()) * mpWindow::GetScaleX()
        dc_Y = (mpWindow::GetPosY() - layer_Y) * mpWindow::GetScaleY() // swapping Y-orientation

        layer_X = (dc_X / mpWindow::GetScaleX()) + mpWindow::GetPosX() // scale guaranteed to be not 0
        layer_Y = mpWindow::GetPosY() - (dc_Y / mpWindow::GetScaleY()) // swapping Y-orientation
Parameters:
dcDevice context to plot to.
wView to plot. The visible area can be retrieved from this object.
See also:
mpWindow::p2x,mpWindow::p2y,mpWindow::x2p,mpWindow::y2p

Implements mpLayer.

void mpBitmapLayer::SetAlign ( int  align ) [inline]

Set label axis alignment.

Parameters:
alignalignment (choose between mpALIGN_NE, mpALIGN_NW, mpALIGN_SW, mpALIGN_SE

Definition at line 1719 of file mathplot.h.

void mpBitmapLayer::SetBitmap ( const wxImage &  inBmp,
double  x,
double  y,
double  lx,
double  ly 
)

Change the bitmap associated with the layer (to update the screen, refresh the mpWindow).

Parameters:
inBmpThe bitmap to associate. A copy is made, thus it can be released after calling this.
xThe left corner X coordinate (in plot units).
yThe top corner Y coordinate (in plot units).
lxThe width in plot units.
lyThe height in plot units.

Member Data Documentation

wxImage mpBitmapLayer::m_bitmap [protected]

The internal copy of the Bitmap:

Definition at line 1726 of file mathplot.h.

int mpBitmapLayer::m_flags [protected]

Holds label alignment.

Definition at line 1719 of file mathplot.h.

double mpBitmapLayer::m_max_x [protected]

Definition at line 1736 of file mathplot.h.

double mpBitmapLayer::m_max_y [protected]

Definition at line 1736 of file mathplot.h.

double mpBitmapLayer::m_min_x [protected]

The shape of the bitmap:

Definition at line 1736 of file mathplot.h.

double mpBitmapLayer::m_min_y [protected]

Definition at line 1736 of file mathplot.h.

wxBitmap mpBitmapLayer::m_scaledBitmap [protected]

Definition at line 1727 of file mathplot.h.

Definition at line 1728 of file mathplot.h.

Definition at line 1728 of file mathplot.h.

bool mpBitmapLayer::m_validImg [protected]

Definition at line 1731 of file mathplot.h.




Page generated by Doxygen 1.7.2 for MRPT 0.9.4 SVN: at Mon Jan 10 22:46:17 UTC 2011