mpFY Class Reference

#include <mathplot.h>

Inheritance diagram for mpFY:
Inheritance graph
[legend]
Collaboration diagram for mpFY:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 mpFY (wxString name=wxEmptyString, int flags=0x00)
virtual double GetX (double y)=0
virtual void Plot (wxDC &dc, mpWindow &w)
virtual bool HasBBox ()
virtual double GetMinX ()
virtual double GetMaxX ()
virtual double GetMinY ()
virtual double GetMaxY ()
wxString GetName () const
const wxFont & GetFont () const
const wxPen & GetPen () const
void SetName (wxString name)
void SetFont (wxFont &font)
void SetPen (wxPen &pen)
int GetYTranslated (double sizey, double y)

Protected Attributes

int m_flags
 Holds label alignment.
wxFont m_font
 Layer's font.
wxPen m_pen
 Layer's pen.
wxString m_name
 Layer's name.

Detailed Description

Abstract base class providing plot and labeling functionality for functions F:Y->X. Override mpFY::GetX to implement a function. Optionally implement a constructor and pass a name (label) and a label alignment to the constructor mpFY::mpFY. If the layer name is empty, no label will be plotted.

Definition at line 283 of file mathplot.h.


Constructor & Destructor Documentation

mpFY::mpFY ( wxString  name = wxEmptyString,
int  flags = 0x00 
)
Parameters:
name Label
flags Label alignment, pass one of mpALIGN_BOTTOM, mpALIGN_CENTER, mpALIGN_TOP.

Definition at line 118 of file mathplot.cxx.

00119 { 
00120         SetName(name);
00121         m_flags = flags;
00122 }


Member Function Documentation

const wxFont& mpLayer::GetFont (  )  const [inline, inherited]

Get font set for this layer.

Returns:
Font

Definition at line 175 of file mathplot.h.

00175 { return m_font; }

virtual double mpLayer::GetMaxX (  )  [inline, virtual, inherited]

Get inclusive right border of bounding box.

Returns:
Value

Definition at line 120 of file mathplot.h.

Referenced by mpWindow::UpdateBBox().

00120 { return  1.0; }

Here is the caller graph for this function:

virtual double mpLayer::GetMaxY (  )  [inline, virtual, inherited]

Get inclusive top border of bounding box.

Returns:
Value

Definition at line 130 of file mathplot.h.

Referenced by mpWindow::UpdateBBox().

00130 { return  1.0; }

Here is the caller graph for this function:

virtual double mpLayer::GetMinX (  )  [inline, virtual, inherited]

Get inclusive left border of bounding box.

Returns:
Value

Definition at line 115 of file mathplot.h.

Referenced by mpWindow::UpdateBBox().

00115 { return -1.0; }

Here is the caller graph for this function:

virtual double mpLayer::GetMinY (  )  [inline, virtual, inherited]

Get inclusive bottom border of bounding box.

Returns:
Value

Definition at line 125 of file mathplot.h.

Referenced by mpWindow::UpdateBBox().

00125 { return -1.0; }

Here is the caller graph for this function:

wxString mpLayer::GetName (  )  const [inline, inherited]

Get layer name.

Returns:
Name

Definition at line 170 of file mathplot.h.

00170 { return m_name; }

const wxPen& mpLayer::GetPen (  )  const [inline, inherited]

Get pen set for this layer.

Returns:
Pen

Definition at line 180 of file mathplot.h.

00180 { return m_pen;  }

virtual double mpFY::GetX ( double  y  )  [pure virtual]

Get function value for argument. Override this function in your implementation.

Parameters:
y Argument
Returns:
Function value

Referenced by Plot().

Here is the caller graph for this function:

int mpLayer::GetYTranslated ( double  sizey,
double  y 
) [inline, inherited]

Get the translation of the Y coordinate acoording to the new orientation of the axis du to the problem identified in MACOS with the funtion 'SetAxisOrientation'

Definition at line 201 of file mathplot.h.

Referenced by pPlotterLayer::draw(), pPlotterLayer::drawFunction(), pPlotterLayer::drawPoints(), pPlotterLayer::drawSplineCurve(), pPlotterScaleY::Plot(), pPlotterScaleX::Plot(), pPlotterLayer::Plot(), and mpScaleY::Plot().

00201                                                   {
00202                 return -y+sizey;
00203         }

Here is the caller graph for this function:

virtual bool mpLayer::HasBBox (  )  [inline, virtual, inherited]

Check whether this layer has a bounding box. The default implementation returns TRUE. Overide 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:
TRUE Has bounding box
FALSE Has not bounding box

Reimplemented in mpScaleX, mpScaleY, pPlotterScaleX, and pPlotterScaleY.

Definition at line 110 of file mathplot.h.

Referenced by mpWindow::UpdateBBox().

00110 { return TRUE; }

Here is the caller graph for this function:

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

Layer plot handler. This implementation will plot the function in the visible area and put a label according to the aligment specified.

Implements mpLayer.

Definition at line 124 of file mathplot.cxx.

References mpWindow::GetPosX(), mpWindow::GetPosY(), mpWindow::GetScaleX(), mpWindow::GetScaleY(), mpWindow::GetScrY(), GetX(), m_flags, mpLayer::m_font, mpLayer::m_name, mpLayer::m_pen, mpALIGN_CENTER, mpALIGN_TOP, and mpALIGNMASK.

00125 {
00126         dc.SetPen( m_pen);
00127 
00128         wxCoord i;
00129 
00130         if (m_pen.GetWidth() <= 1) 
00131         {
00132                 for (i = -(w.GetScrY()>>1); i < (w.GetScrY()>>1); ++i)
00133                 {
00134                         dc.DrawPoint((wxCoord) ((GetX( (double)i / w.GetScaleY() + w.GetPosY()) - w.GetPosX()) * w.GetScaleX()), -i);
00135                 }
00136         }
00137         else
00138         {
00139                 for (i = -(w.GetScrY()>>1); i < (w.GetScrY()>>1); ++i)
00140                 {
00141                         wxCoord c =  (wxCoord) ((GetX( (double)i / w.GetScaleY() + w.GetPosY()) - w.GetPosX()) * w.GetScaleX());
00142                         dc.DrawLine(c, -i, c, -i);
00143                 }
00144         }
00145 
00146         if (!m_name.IsEmpty())
00147         {
00148                 dc.SetFont(m_font);
00149 
00150                 wxCoord tx, ty;
00151                 dc.GetTextExtent(m_name, &tx, &ty);
00152 
00153                 if ((m_flags & mpALIGNMASK) == mpALIGN_TOP)
00154                         ty = (w.GetScrY()>>1) - 8;
00155                 else if ((m_flags & mpALIGNMASK) == mpALIGN_CENTER)
00156                         ty = 16 - ty/2;
00157                 else
00158                         ty = -(w.GetScrY()>>1) + 8;
00159 
00160                 dc.DrawText( m_name, (wxCoord) ((GetX( (double)i / w.GetScaleY() + w.GetPosY()) - w.GetPosX()) * w.GetScaleX()), -ty);
00161         }
00162 }

Here is the call graph for this function:

void mpLayer::SetFont ( wxFont &  font  )  [inline, inherited]

Set layer font

Parameters:
font Font, will be copied to internal class member

Definition at line 190 of file mathplot.h.

00190 { m_font = font; }

void mpLayer::SetName ( wxString  name  )  [inline, inherited]

Set layer name

Parameters:
name Name, will be copied to internal class member

Definition at line 185 of file mathplot.h.

00185 { m_name = name; }

void mpLayer::SetPen ( wxPen &  pen  )  [inline, inherited]

Set layer pen

Parameters:
pen Pen, will be copied to internal class member

Definition at line 195 of file mathplot.h.

Referenced by HistogramWidget::drawHistogram(), Histogram::drawHistogram(), HistogramWidget::drawTransferenceFunction(), pPlotterWindow::onChangeColor(), pPlotterWindow::onLoad(), and pPlotterWindow::onStartDrawing().

00195 { m_pen  = pen;  }

Here is the caller graph for this function:


Member Data Documentation

int mpFY::m_flags [protected]

Holds label alignment.

Definition at line 305 of file mathplot.h.

Referenced by Plot().

wxFont mpLayer::m_font [protected, inherited]
wxString mpLayer::m_name [protected, inherited]

Layer's name.

Definition at line 208 of file mathplot.h.

Referenced by mpScaleY::Plot(), mpScaleX::Plot(), mpFXY::Plot(), Plot(), and mpFX::Plot().

wxPen mpLayer::m_pen [protected, inherited]

The documentation for this class was generated from the following files:

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1