00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00024 #ifndef __vtkPlotPoints_h
00025 #define __vtkPlotPoints_h
00026
00027 #include "vtkPlot.h"
00028
00029 class vtkContext2D;
00030 class vtkTable;
00031 class vtkPoints2D;
00032 class vtkStdString;
00033 class vtkImageData;
00034
00035 class VTK_CHARTS_EXPORT vtkPlotPoints : public vtkPlot
00036 {
00037 public:
00038 vtkTypeMacro(vtkPlotPoints, vtkPlot);
00039 virtual void PrintSelf(ostream &os, vtkIndent indent);
00040
00042 static vtkPlotPoints *New();
00043
00047 virtual void Update();
00048
00051 virtual bool Paint(vtkContext2D *painter);
00052
00058 virtual bool PaintLegend(vtkContext2D *painter, float rect[4]);
00059
00061 virtual void GetBounds(double bounds[4]);
00062
00063
00065
00067 virtual bool GetNearestPoint(const vtkVector2f& point,
00068 const vtkVector2f& tolerance,
00069 vtkVector2f* location);
00071
00073 virtual bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max);
00074
00076
00077 enum {
00078 NONE = 0,
00079 CROSS,
00080 PLUS,
00081 SQUARE,
00082 CIRCLE,
00083 DIAMOND
00084 };
00086
00087
00089
00091 vtkGetMacro(MarkerStyle, int);
00092 vtkSetMacro(MarkerStyle, int);
00094
00095
00096 protected:
00097 vtkPlotPoints();
00098 ~vtkPlotPoints();
00099
00101 void GeneraterMarker(int width, bool highlight = false);
00102
00104 bool UpdateTableCache(vtkTable *table);
00105
00109 void CalculateLogSeries();
00110
00114 void FindBadPoints();
00115
00117 void CalculateBounds(double bounds[4]);
00118
00120 vtkPoints2D *Points;
00121
00123
00124 class VectorPIMPL;
00125 VectorPIMPL* Sorted;
00127
00130 vtkIdTypeArray* BadPoints;
00131
00133 vtkTimeStamp BuildTime;
00134
00136
00137 int MarkerStyle;
00138 vtkImageData* Marker;
00139 vtkImageData* HighlightMarker;
00141
00142 bool LogX, LogY;
00143
00144 private:
00145 vtkPlotPoints(const vtkPlotPoints &);
00146 void operator=(const vtkPlotPoints &);
00147
00148
00149 };
00150
00151 #endif //__vtkPlotPoints_h