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>
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 |
mpBitmapLayer::mpBitmapLayer | ( | ) | [inline] |
Default constructor.
Definition at line 1673 of file mathplot.h.
virtual mpBitmapLayer::~mpBitmapLayer | ( | ) | [inline, virtual] |
Definition at line 1681 of file mathplot.h.
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.
TRUE | Has bounding box | |
FALSE | Has 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
dc | Device context to plot to. | |
w | View to plot. The visible area can be retrieved from this object. |
Implements mpLayer.
void mpBitmapLayer::SetAlign | ( | int | align | ) | [inline] |
Set label axis alignment.
align | alignment (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).
inBmp | The bitmap to associate. A copy is made, thus it can be released after calling this. | |
x | The left corner X coordinate (in plot units). | |
y | The top corner Y coordinate (in plot units). | |
lx | The width in plot units. | |
ly | The height in plot units. |
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.
wxCoord mpBitmapLayer::m_scaledBitmap_offset_x [protected] |
Definition at line 1728 of file mathplot.h.
wxCoord mpBitmapLayer::m_scaledBitmap_offset_y [protected] |
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.1 for MRPT 0.9.4 SVN: at Mon Jan 10 23:33:19 UTC 2011 |