00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00032 #ifndef __vtkPlot_h
00033 #define __vtkPlot_h
00034
00035 #include "vtkContextItem.h"
00036 #include "vtkStdString.h"
00037 #include "vtkSmartPointer.h"
00038
00039 class vtkVariant;
00040 class vtkTable;
00041 class vtkIdTypeArray;
00042 class vtkContextMapper2D;
00043 class vtkPen;
00044 class vtkBrush;
00045 class vtkAxis;
00046 class vtkVector2f;
00047 class vtkRectf;
00048 class vtkStringArray;
00049
00050 class VTK_CHARTS_EXPORT vtkPlot : public vtkContextItem
00051 {
00052 public:
00053 vtkTypeMacro(vtkPlot, vtkContextItem);
00054 virtual void PrintSelf(ostream &os, vtkIndent indent);
00055
00057
00062 virtual bool PaintLegend(vtkContext2D *painter, const vtkRectf& rect,
00063 int legendIndex);
00065
00067
00075 virtual void SetTooltipLabelFormat(const vtkStdString &label);
00076 virtual vtkStdString GetTooltipLabelFormat();
00078
00079
00081
00083 virtual vtkStdString GetTooltipLabel(const vtkVector2f &plotPos,
00084 vtkIdType seriesIndex,
00085 vtkIdType segmentIndex);
00087
00089
00092 virtual vtkIdType GetNearestPoint(const vtkVector2f& point,
00093 const vtkVector2f& tolerance,
00094 vtkVector2f* location);
00096
00098
00099 virtual bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max);
00100
00102
00104
00105 virtual void SetColor(unsigned char r, unsigned char g, unsigned char b,
00106 unsigned char a);
00107 virtual void SetColor(double r, double g, double b);
00108 virtual void GetColor(double rgb[3]);
00109 void GetColor(unsigned char rgb[3]);
00111
00113 virtual void SetWidth(float width);
00114
00116 virtual float GetWidth();
00117
00119
00121 vtkGetObjectMacro(Pen, vtkPen);
00123
00125
00127 vtkGetObjectMacro(Brush, vtkBrush);
00129
00131 virtual void SetLabel(const vtkStdString &label);
00132
00134 virtual vtkStdString GetLabel();
00135
00138 virtual void SetLabels(vtkStringArray *labels);
00139
00143 virtual vtkStringArray *GetLabels();
00144
00146 virtual int GetNumberOfLabels();
00147
00149 vtkStdString GetLabel(vtkIdType index);
00150
00155 void SetIndexedLabels(vtkStringArray *labels);
00156
00158 virtual vtkStringArray *GetIndexedLabels();
00159
00161
00162 vtkGetObjectMacro(Data, vtkContextMapper2D);
00164
00166
00169 vtkGetMacro(UseIndexForXSeries, bool);
00171
00173
00176 vtkSetMacro(UseIndexForXSeries, bool);
00178
00180
00182 virtual void SetInput(vtkTable *table);
00183 virtual void SetInput(vtkTable *table, const vtkStdString &xColumn,
00184 const vtkStdString &yColumn);
00185 void SetInput(vtkTable *table, vtkIdType xColumn, vtkIdType yColumn);
00187
00189 virtual vtkTable* GetInput();
00190
00194 virtual void SetInputArray(int index, const vtkStdString &name);
00195
00196 virtual void SetSelection(vtkIdTypeArray *id);
00197 vtkGetObjectMacro(Selection, vtkIdTypeArray);
00198
00200
00201 vtkGetObjectMacro(XAxis, vtkAxis);
00202 virtual void SetXAxis(vtkAxis* axis);
00204
00206
00207 vtkGetObjectMacro(YAxis, vtkAxis);
00208 virtual void SetYAxis(vtkAxis* axis);
00210
00212
00213 virtual void GetBounds(double bounds[4])
00214 { bounds[0] = bounds[1] = bounds[2] = bounds[3] = 0.0; }
00216
00217
00219
00221 virtual void SetProperty(const vtkStdString &property, const vtkVariant &var);
00222 virtual vtkVariant GetProperty(const vtkStdString &property);
00223
00225
00226
00227 protected:
00228 vtkPlot();
00229 ~vtkPlot();
00230
00232 vtkStdString GetNumber(double position, vtkAxis *axis);
00233
00235 vtkPen* Pen;
00236
00238 vtkBrush* Brush;
00239
00241 vtkSmartPointer<vtkStringArray> Labels;
00242
00244 vtkSmartPointer<vtkStringArray> AutoLabels;
00245
00247 vtkSmartPointer<vtkStringArray> IndexedLabels;
00248
00252 bool UseIndexForXSeries;
00253
00256 vtkContextMapper2D *Data;
00257
00259 vtkIdTypeArray *Selection;
00260
00262 vtkAxis* XAxis;
00263
00265 vtkAxis* YAxis;
00266
00269 vtkStdString TooltipLabelFormat;
00270
00273 vtkStdString TooltipDefaultLabelFormat;
00274
00275 private:
00276 vtkPlot(const vtkPlot &);
00277 void operator=(const vtkPlot &);
00278
00279
00280 };
00281
00282 #endif //__vtkPlot_h