00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00025 #ifndef __vtkAxis_h
00026 #define __vtkAxis_h
00027
00028 #include "vtkContextItem.h"
00029
00030 class vtkContext2D;
00031 class vtkPen;
00032 class vtkFloatArray;
00033 class vtkStringArray;
00034 class vtkTextProperty;
00035
00036 class VTK_CHARTS_EXPORT vtkAxis : public vtkContextItem
00037 {
00038 public:
00039 vtkTypeRevisionMacro(vtkAxis, vtkContextItem);
00040 virtual void PrintSelf(ostream &os, vtkIndent indent);
00041
00042
00044
00046 enum {
00047 LEFT = 0,
00048 BOTTOM,
00049 RIGHT,
00050 TOP,
00051 PARALLEL
00052 };
00054
00055
00057 static vtkAxis *New();
00058
00060
00061 vtkSetMacro(Position, int);
00062 vtkGetMacro(Position, int);
00064
00066
00067 vtkSetVector2Macro(Point1, float);
00069
00071
00072 vtkGetVector2Macro(Point1, float);
00074
00076
00077 vtkSetVector2Macro(Point2, float);
00079
00081
00082 vtkGetVector2Macro(Point2, float);
00084
00086
00087 vtkSetMacro(NumberOfTicks, int);
00089
00091
00092 vtkGetMacro(NumberOfTicks, int);
00094
00096
00098 vtkGetObjectMacro(LabelProperties, vtkTextProperty);
00100
00102
00103 vtkSetMacro(Minimum, double);
00105
00107
00108 vtkGetMacro(Minimum, double);
00110
00112
00113 vtkSetMacro(Maximum, double);
00115
00117
00118 vtkGetMacro(Maximum, double);
00120
00122
00123 vtkSetStringMacro(Title);
00124 vtkGetStringMacro(Title);
00126
00128
00129 vtkGetObjectMacro(TitleProperties, vtkTextProperty);
00131
00133
00134 vtkSetMacro(LogScale, bool);
00135 vtkGetMacro(LogScale, bool);
00137
00139
00140 vtkSetMacro(GridVisible, bool);
00141 vtkGetMacro(GridVisible, bool);
00143
00145
00146 vtkSetMacro(LabelsVisible, bool);
00147 vtkGetMacro(LabelsVisible, bool);
00149
00151
00152 vtkSetMacro(Precision, int);
00153 vtkGetMacro(Precision, int);
00155
00157
00159 vtkSetMacro(Notation, int);
00160 vtkGetMacro(Notation, int);
00162
00164
00166 vtkSetMacro(Behavior, int);
00167 vtkGetMacro(Behavior, int);
00169
00171
00173 vtkGetObjectMacro(Pen, vtkPen);
00175
00177
00179 vtkGetObjectMacro(GridPen, vtkPen);
00181
00184 virtual void Update();
00185
00187 virtual bool Paint(vtkContext2D *painter);
00188
00193 virtual void AutoScale();
00194
00197 virtual void RecalculateTickSpacing();
00198
00202 vtkFloatArray* GetTickPositions() { return this->TickPositions; }
00203
00204
00205 protected:
00206 vtkAxis();
00207 ~vtkAxis();
00208
00211 float CalculateNiceMinMax(double &min, double &max);
00212
00216 float NiceNumber(double number, bool roundUp);
00217
00218 int Position;
00219 float Point1[2];
00220 float Point2[2];
00221 double TickInterval;
00222 int NumberOfTicks;
00223 vtkTextProperty* LabelProperties;
00224 int TickLabelSize;
00225 double Minimum;
00226 double Maximum;
00227 char* Title;
00228 vtkTextProperty* TitleProperties;
00229 bool LogScale;
00230 bool GridVisible;
00231 bool LabelsVisible;
00232 int Precision;
00233 int Notation;
00234 int Behavior;
00235
00237 vtkPen* Pen;
00238
00241 vtkPen* GridPen;
00242
00243 vtkFloatArray* TickPositions;
00244 vtkStringArray* TickLabels;
00245
00247 vtkTimeStamp BuildTime;
00248
00249 private:
00250 vtkAxis(const vtkAxis &);
00251 void operator=(const vtkAxis &);
00252
00253 };
00254
00255 #endif //__vtkAxis_h