56 #include "vtkChartsCoreModule.h"
57 #include "vtkContextItem.h"
59 #include "vtkVector.h"
68 class vtkTextProperty;
70 class VTKCHARTSCORE_EXPORT
vtkAxis :
public vtkContextItem
74 virtual void PrintSelf(ostream &os,
vtkIndent indent);
90 TICK_WILKINSON_EXTENDED
99 virtual void SetPosition(
int position);
100 vtkGetMacro(Position,
int);
105 void SetPoint1(
const vtkVector2f& pos);
106 void SetPoint1(
float x,
float y);
111 vtkGetVector2Macro(Point1,
float);
112 vtkVector2f GetPosition1();
117 void SetPoint2(
const vtkVector2f& pos);
118 void SetPoint2(
float x,
float y);
123 vtkGetVector2Macro(Point2,
float);
124 vtkVector2f GetPosition2();
129 virtual void SetNumberOfTicks(
int numberOfTicks);
133 vtkGetMacro(NumberOfTicks,
int);
139 vtkGetObjectMacro(LabelProperties, vtkTextProperty);
145 virtual void SetMinimum(
double minimum);
151 vtkGetMacro(Minimum,
double);
157 virtual void SetMaximum(
double maximum);
163 vtkGetMacro(Maximum,
double);
170 virtual void SetUnscaledMinimum(
double minimum);
174 vtkGetMacro(UnscaledMinimum,
double);
178 virtual void SetUnscaledMaximum(
double maximum);
182 vtkGetMacro(UnscaledMaximum,
double);
192 virtual void SetRange(
double minimum,
double maximum);
193 virtual void SetRange(
double range[2]);
194 virtual void SetUnscaledRange(
double minimum,
double maximum);
195 virtual void SetUnscaledRange(
double range[2]);
203 virtual void GetRange(
double *range);
204 virtual void GetUnscaledRange(
double *range);
209 virtual void SetMinimumLimit(
double lowest);
214 vtkGetMacro(MinimumLimit,
double);
219 virtual void SetMaximumLimit(
double highest);
224 vtkGetMacro(MaximumLimit,
double);
229 virtual void SetUnscaledMinimumLimit(
double lowest);
234 vtkGetMacro(UnscaledMinimumLimit,
double);
239 virtual void SetUnscaledMaximumLimit(
double highest);
244 vtkGetMacro(UnscaledMaximumLimit,
double);
249 vtkGetVector2Macro(Margins,
int);
254 vtkSetVector2Macro(Margins,
int);
265 vtkGetObjectMacro(TitleProperties, vtkTextProperty);
277 vtkGetMacro(LogScaleActive,
bool);
283 vtkGetMacro(LogScale,
bool);
284 virtual void SetLogScale(
bool logScale);
285 vtkBooleanMacro(LogScale,
bool);
290 vtkSetMacro(GridVisible,
bool);
291 vtkGetMacro(GridVisible,
bool);
296 vtkSetMacro(LabelsVisible,
bool);
297 vtkGetMacro(LabelsVisible,
bool);
302 vtkSetMacro(TicksVisible,
bool);
303 vtkGetMacro(TicksVisible,
bool);
308 virtual void SetPrecision(
int precision);
309 vtkGetMacro(Precision,
int);
315 STANDARD_NOTATION = 0,
320 #ifndef VTK_LEGACY_REMOVE
322 STANDARD = STANDARD_NOTATION,
323 SCIENTIFIC = SCIENTIFIC_NOTATION,
324 MIXED = FIXED_NOTATION
331 virtual void SetNotation(
int notation);
332 vtkGetMacro(Notation,
int);
347 vtkSetMacro(Behavior,
int);
348 vtkGetMacro(Behavior,
int);
354 vtkGetObjectMacro(Pen, vtkPen);
360 vtkGetObjectMacro(GridPen, vtkPen);
370 vtkSetMacro(TickLabelAlgorithm,
int)
371 vtkGetMacro(TickLabelAlgorithm,
int)
376 virtual
void Update();
379 virtual
bool Paint(vtkContext2D *painter);
385 virtual
void AutoScale();
389 virtual
void RecalculateTickSpacing();
415 VTK_LEGACY(virtual
void SetTickPositions(
vtkDoubleArray* positions));
426 vtkRectf GetBoundingRect(vtkContext2D* painter);
431 static
double NiceNumber(
double number,
bool roundUp);
436 static
double NiceMinMax(
double &min,
double &max,
float pixelRange,
437 float tickPixelSpacing);
450 void UpdateLogScaleActive(
bool updateMinMaxFromUnscaled);
453 void GenerateTickLabels(
double min,
double max);
457 void GenerateTickLabels();
459 void GenerateLabelFormat(
int notation,
double n);
463 double CalculateNiceMinMax(
double &min,
double &max);
472 double LogScaleTickMark(
double number,
486 void GenerateLogSpacedLinearTicks(
int order,
double min,
double max);
496 void GenerateLogScaleTickMarks(
int order,
499 bool detailLabels = true);
505 vtkVector2f Position1, Position2;
508 vtkTextProperty* LabelProperties;
513 double UnscaledMinimum;
514 double UnscaledMaximum;
515 double UnscaledMinimumLimit;
516 double UnscaledMaximumLimit;
517 double NonLogUnscaledMinLimit;
518 double NonLogUnscaledMaxLimit;
521 vtkTextProperty* TitleProperties;
535 bool CustomTickLabels;
555 bool UsingNiceMinMax;
564 int TickLabelAlgorithm;
570 vtkAxis(const vtkAxis &);
571 void operator=(const vtkAxis &);
575 bool InRange(
double value);
Wrapper around std::string to keep symbols short.
record modification and/or execution time
dynamic, self-adjusting array of float
a vtkAbstractArray subclass for strings
Hold a reference to a vtkObjectBase instance.
dynamic, self-adjusting array of double
takes care of drawing 2D axes
a simple class to control print indentation