VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPlotPoints.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 00032 #ifndef __vtkPlotPoints_h 00033 #define __vtkPlotPoints_h 00034 00035 #include "vtkPlot.h" 00036 #include "vtkScalarsToColors.h" // For VTK_COLOR_MODE_DEFAULT and _MAP_SCALARS 00037 #include "vtkStdString.h" // For color array name 00038 00039 class vtkContext2D; 00040 class vtkTable; 00041 class vtkPoints2D; 00042 class vtkStdString; 00043 class vtkImageData; 00044 class vtkScalarsToColors; 00045 class vtkUnsignedCharArray; 00046 00047 class VTK_CHARTS_EXPORT vtkPlotPoints : public vtkPlot 00048 { 00049 public: 00050 vtkTypeMacro(vtkPlotPoints, vtkPlot); 00051 virtual void PrintSelf(ostream &os, vtkIndent indent); 00052 00054 static vtkPlotPoints *New(); 00055 00059 virtual void Update(); 00060 00063 virtual bool Paint(vtkContext2D *painter); 00064 00066 00071 virtual bool PaintLegend(vtkContext2D *painter, const vtkRectf& rect, 00072 int legendIndex); 00074 00076 virtual void GetBounds(double bounds[4]); 00077 00079 00080 void SetLookupTable(vtkScalarsToColors *lut); 00081 vtkScalarsToColors *GetLookupTable(); 00083 00086 virtual void CreateDefaultLookupTable(); 00087 00089 00091 vtkSetMacro(ScalarVisibility,int); 00092 vtkGetMacro(ScalarVisibility,int); 00093 vtkBooleanMacro(ScalarVisibility,int); 00095 00097 00100 void SelectColorArray(vtkIdType arrayNum); 00101 void SelectColorArray(const vtkStdString& arrayName); 00103 00105 vtkStdString GetColorArrayName(); 00106 00107 //BTX 00109 00112 virtual vtkIdType GetNearestPoint(const vtkVector2f& point, 00113 const vtkVector2f& tolerance, 00114 vtkVector2f* location); 00116 00118 virtual bool SelectPoints(const vtkVector2f& min, const vtkVector2f& max); 00119 00121 00122 enum { 00123 NONE = 0, 00124 CROSS, 00125 PLUS, 00126 SQUARE, 00127 CIRCLE, 00128 DIAMOND 00129 }; 00130 //ETX 00132 00134 00136 vtkGetMacro(MarkerStyle, int); 00137 vtkSetMacro(MarkerStyle, int); 00139 00141 00144 vtkGetMacro(MarkerSize, float); 00145 vtkSetMacro(MarkerSize, float); 00147 00148 //BTX 00149 protected: 00150 vtkPlotPoints(); 00151 ~vtkPlotPoints(); 00152 00154 void GeneraterMarker(int width, bool highlight = false); 00155 00157 bool UpdateTableCache(vtkTable *table); 00158 00162 void CalculateLogSeries(); 00163 00167 void FindBadPoints(); 00168 00170 void CalculateBounds(double bounds[4]); 00171 00173 void CreateSortedPoints(); 00174 00176 vtkPoints2D *Points; 00177 00179 00180 class VectorPIMPL; 00181 VectorPIMPL* Sorted; 00183 00186 vtkIdTypeArray* BadPoints; 00187 00189 vtkTimeStamp BuildTime; 00190 00192 00193 int MarkerStyle; 00194 float MarkerSize; 00195 vtkImageData* Marker; 00196 vtkImageData* HighlightMarker; 00198 00199 bool LogX, LogY; 00200 00202 00203 vtkScalarsToColors *LookupTable; 00204 vtkUnsignedCharArray *Colors; 00205 int ScalarVisibility; 00206 vtkStdString ColorArrayName; 00208 00209 private: 00210 vtkPlotPoints(const vtkPlotPoints &); // Not implemented. 00211 void operator=(const vtkPlotPoints &); // Not implemented. 00212 00213 // #define VTK_COLOR_MODE_DEFAULT 0 00214 // #define VTK_COLOR_MODE_MAP_SCALARS 1 00215 //ETX 00216 }; 00217 00218 #endif //__vtkPlotPoints_h