Mobile API Reference  MicroStrategy 2019
ValueAxis.h
Go to the documentation of this file.
1 //==============================================================================================
2 // FILENAME : ValueAxis.h
3 // AUTHOR : Liang Liu
4 // CREATION : 2008-06-04
5 // Copyright (C) MicroStrategy Incorporated 2008
6 // All Rights Reserved
7 //==============================================================================================
8 #ifndef MsiChart_ValueAxis_h
9 #define MsiChart_ValueAxis_h
10 
11 #include "Axis.h"
12 #include "NumberObject.h"
13 
14 namespace MsiChart
15 {
16 
18  {
20  unsigned char mAxisLabelsLocation;
21  unsigned char mAxisDirection;
22 
24  {
25  mId = TripleId(DssGraphY1Body, 0, -3);
28  }
29 
30  void ToX(bool iIsLabelAoveAxis)
31  {
32  mId = TripleId(DssGraphX1Body, 0, -3);
34  mAxisLabelsLocation = iIsLabelAoveAxis ? ALL_TOP : ALL_BOTTOM;
35  }
36 
37  void ToY1(bool iIsSeriesAxis = false)
38  {
39  mId = TripleId(DssGraphY1Body, 0, -3); //maybe some other ID?
42  }
43 
44  void ToY2(bool iIsSeriesAxis = false)
45  {
46  mId = TripleId(DssGraphY2Body, 0, -3); //maybe some other ID?
49  }
50 
51  };
52 
53 
54 
55 
57  {
73  unsigned char mOffScaleType;
74  double mAxisMinValue;
75  double mAxisMaxValue;
79  };
80 
85  class ValueAxis: public Axis
86  {
87  public:
89 
96  ValueAxis(const TripleId& irTripleId,
97  GraphObjectManager* ipManager,
98  double iMin,
99  double iMax,
100  bool iLargerGridInterval = false,
101  bool iIsPercent = false,
102  unsigned char iAxisDirection = AD_Y,
103  bool iIsShown = true,
104  Int32 iPrimaryMetricIndex = -1);
105  virtual ~ValueAxis();
106 
107  // Override methods
108  virtual void GenerateMapAndList();
109  virtual void GetOptions(Int32 iSeriesId, Int32 iPropertyId, CComVariant* opValue) const;
110 
117  void AdjustDeviceDataArea(Rect2D& iorDeviceDataArea, bool iIsReversed = false);
125  Int32 ValueToPosition(double iValue, bool iTruncate = true) const;
134  bool GetPositionByValue(double iValue, Int32& orPosition) const;
143  bool GetFloatPositionByValue(double iValue, float& orPosition) const;
144 
152  bool Get3DPositionByValue(double iValue, double& orPosition) const;
153 
160  float ValueToFloatPosition(double iValue) const;
167  Int32 ValueToBubbleSize(Int32 iDialogSize, double iValue) const;
179  double GetBasePositionFor3D();
184  double GetMinTick();
189  double GetMaxTick();
195  double GetBaseValue();
200  bool IsBaseAtZero();
208  void GenerateCustomLine(const Rect2D& irDataArea, std::vector<GraphObject::Ptr>& iorGraphObjectList);
209  void GenerateOneCustomLine(double iValue, Int32 iLineObjectId, const Rect2D& irDataArea, std::vector<GraphObject::Ptr>& iorGraphObjectList);
210 
218  void ReserveTitleAndLabels(Rect2D& iorArea, Int32 iLowMargin = 1000, Int32 iHighMargin = 1000);
223  virtual void UpdateTitleAndLabelArea(Rect2D& iorArea);
224 
229  double GetStep() const;
230 
235  void GetNumberFormat(ChartAdvFormat& orFormat);
236 
237  virtual double GetLogicalCoord(Int32 iAbsoluteCoord);
238  virtual float GetAbsoluteCoord(double iLogicalCoord);
239  virtual void GetMinMaxLogicalCoord(double& orMin, double& orMax) const;
240  virtual double GetSlopeFactor(double iLogicalCoord) const;
241 
245  virtual void GetTicks(std::vector<double>& orTicks) const;
246 
251  virtual bool IsLogarithmic() const;
252 
253  virtual void OnZooming(Int32 iOldStart, Int32 iOldEnd, Int32 iNewStart, Int32 iNewEnd);
254 
256  void OnZoomRestore();
257 
262  Int32 GetOuterTickLength() const;
263 
264  virtual void GenerateLabelsFor3D(const std::vector<Point2D>& irGridPoints, const DVector2D& irUnitOffsetDirection,
265  GraphCollectionObject* ipLabelCollectioin, std::vector<GraphObject::Ptr>& iorGraphObjectList);
266 
267  virtual void GetGridLinePositionsFor3D(std::vector<double>& orGridLinePositions, EnumGraphObjectType iGraphObjectType) const;
268 
269  virtual double GetPositionAtTick(double iTickValue);
270  virtual double GetIntervalSpace();
271  virtual void TrimAxisPadding(Rect2D& iorRect, bool iUseFixedMargin = true);
272 
273 
274  bool IsZeroBaseLineQualified();
275  void SetTrimWithPadding(bool iIsTrimmed);
276  bool GetTrimWithPadding();
277  virtual Int32 LayoutAxis(bool iIsRotated, Int32& orMaxLabelSpace);
279  void GetMaxMinDataInput(double &orMaximum, double &orMinimum);
280 
281  int GetPrimaryMetricIndex() const;
282 
283  bool IsCustomMinMax() const;
284  bool IsTickExist(double iValue);
285  bool HasCustomAxisOrigin();
286  double GetCustomAxisOriginValue() const;
287  Int32 GetLabelObjectId()const;
288  protected:
292  void LoadProperties();
296  virtual void CreateAxisLine();
297 
304  float ValueToPosition(double iValue, float iStartPosition, float iStopPosition) const;
305 
313  bool ValueToPosition(double iValue, float iStartPosition, float iStopPosition, float& orPosition) const;
314 
316  void GenerateTickLabels();
320  void hCreateTickLabels();
326  virtual void hCreateOneTickLabel(const TripleId& irTripleId, double iTickValue);
332  void hUpdateLabelLocation();
341  void hUpdateOneLabelLocation(Int32 iGraphObjectIndex, Int32 iLabelLocation, double iTickValue);
346  void hComputeTicks();
354  virtual double hComputeStep(double iMaximum, double iMinimum, bool iIncludeZero);
362  void hReserveLabelOrTickArea(Rect2D& iorArea, bool iIsLabel, bool iIsReversed);
363 
370  Int32 hGetMaxLabelWidthOrHeight(bool iIsWidth) const;
382  void hGenerateGridSectionByValue(const TripleId& irTripleId, double iValue1, double iValue2, GraphCollectionObject* ipGridSet);
386  void hGenerateMajorGrid();
390  void hGenerateMinorGrid();
399  void hGenerateGridByValue(const TripleId& irTripleId, double iValue, GraphCollectionObject* ipGridLineSet, bool iIsMajor);
400 
407  void hGenerateOneCustomLine(std::vector<GraphObject::Ptr>& iorGraphObjectList,
408  double iCustomValue, Int32 iCustomLineId);
415  void hGetLineByValue(double iValue, Point2D& orLowEnd, Point2D& orHighEnd) const;
420  bool hHasAxisLine() const;
426  bool hIsDualAxisWithoutSplit() const;
439  // Four combinations of mUseMaxValue and mUseMinValue.
449  void hComputeTicksForFixMax();
455  void hComputeTicksForFixMin();
468  void HideOverlappedLabels(Int32 iStartIndex, Int32 iEndIndex);
469 
470 
472  void HideOverlappedLabelsForCustomPercentLabels(Int32 iStartIndex, Int32 iEndIndex);
477  bool hHasTooManyTicks() const;
482  bool hIsHistogramX() const;
483 
484  bool hIsPolarXOrHistogramX() const;
485 
486  bool hCheckValue(double& iorValue, double& orMin, double& orMax) const;
487 
488 
489  double hLengthToValue(double iLength); //< Map a length to a value.
490  void hAdjustAxisRangeForGM(); //< Enlarge the axis range so all the element/markers would be included in graph area
491  void hAdjustTickForGM(); //< Decide flex min/max or fix min/max will be used by checking the tick values
492  //double hGetMaxOffsetSpaceForGMMarker(); //< Get max offset space according to graph type and radius computation forum.
493  bool hGetNumberFormatFromMetric(); //< Get NumberFormat From Primary Metric
494  TextObject* hGetAxisLabelByTickValue(double iValue); //< Get the corresponding label to one tick value.
495  void hGetOneTickToLabel(bool iIsOnHighSide, double iValue, TextObject* ipObject);//< Build the label from tick value to label object
496  void hBuildTickToLabelMap(bool iIsOnHighSide, Int32 iStartIndexInset);//< Build the label from tick value to label object
497  bool IsAxisLabelAbbreviated(const TripleId& irTripleId); //< Scan all the labels and check if any abbreviation happens for the labels under this axis.
498  void hSetAxisLabelStyle(); //< Notify chart context if abbreviation of the labels should be used.
499  void hUpdateShownTicksToGMContext(); //< Notify GM context which labels will be shown.
500  void hSetAxisOrigin();
508  Int32 hPickStartLabelIndex(Int32 iStartIndex, Int32 iEndIndex, bool& iorIsPaddingPossible);
509 
522  Int32 hComputeLabelSkipStep(bool iSkipFromHighEnd, bool iNeedDistanceCheck, Int32 iStartIndex, Int32 iEndIndex, Int32 iRefLabelIndex, Int32 iAnchorStyle, TextObject* ipRefLabel, REC_EXP_DIRECTION iExpDirection);
523 
532  void hHideLabelsWithStep(bool iSkipFromHighEnd, Int32 iStartIndex, Int32 iEndIndex, Int32 iReflabeIndex, Int32 iLabelStep);
533 
538  Int32 hHideLabelsFromHighEnd(Int32 iLastIndex, bool iIsFromHigh);
539  bool hIsLabelFitWithPadding(TextObject* ipTextLable, Int32 iPadding);
540  Int32 hGetEvenSpacedPadding(bool iIsHighSide, double iBaseLength);
541  void hFilterRepeatedLabels();
542  double hScaleStep(double iStep);
543 
544  int hGetMaxScreenPixels() const;
545 
547  bool hIsPercentChart();
548 
549  //---------Data members----------------------------------
551  bool mIsShown;
555  bool mIsPercent;
556  double mMinimum;
557  double mMaximum;
558  double mMaxTick;
559  double mMinTick;
560  double mStep;
562  std::vector<double> mTicks;
563 
564  bool mIsStagger;
570  mutable bool mIsMaxZoom;
571  std::vector<Int32> mMetricList;
574  std::map<double, TextObject*> mLowTicksToLabel;
575  std::map<double, TextObject*> mHighTicksToLabel;
576  /*
577  since we may ajust the mMinmum and mMaxmum, we use those two values to
578  store the origin value pass in ctor
579  */
580  double mOriginMinimum;
581  double mOriginMaxmum;
582  double mStepScale;
583 
584  private:
585  virtual void hGenerateGridsByArea(bool iIsGridLine);
586  bool hIsAutoXAxis() const;
587  void hApplyAutoXAxisLayout();
588  bool hIsManualMinShown() const;
589  void hGetLabelMargins(Int32& orLowMargin, Int32& orHighMargin);
590  void hAdjustAxisInputScale();
591 
599  bool hReserveAreaAtTop(Int32 iReservedHeight);
600  };
601 
603  {
605  }
606 
607  inline bool ValueAxis::hHasTooManyTicks() const
608  {
610  }
611 
612  inline bool ValueAxis::hIsHistogramX() const
613  {
615  }
616 
618  {
620  }
621 
622  inline double ValueAxis::GetStep() const
623  {
624  return mStep;
625  }
626  inline bool ValueAxis::IsLogarithmic() const
627  {
629  }
630 
631  inline bool ValueAxis::hIsManualMinShown() const
632  {
634  }
636  {
637  // Dual axis support, just a work round, we need to generate invalid valueaxis to complete the workflow, so here we need to judge the invalidation
638  if (!mAxisInfo.mIsValid) {
639  return false;
640  }
641 
642  //[2013/2/19] if custom min/max enabled in Graph matrix
643  return mMaxTick * mMinTick < 0;
644  //return mMaximum * mMinimum < 0;
645  }
646  inline void ValueAxis::SetTrimWithPadding(bool iIsTrimmed)
647  {
648  mIsTrimmedWithPadding = iIsTrimmed;
649  }
650 
652  {
653  return mIsTrimmedWithPadding;
654  }
655 
657  {
658  return mPrimaryMetricIndex;
659  }
660 
661  inline bool ValueAxis::IsCustomMinMax() const
662  {
663  return mOptions.mUseCustomMinMax;
664  }
666  {
667  return mLabelObjectId;
668  }
669 }
670 #endif
virtual void hCreateOneTickLabel(const TripleId &irTripleId, double iTickValue)
void GetMaxMinDataInput(double &orMaximum, double &orMinimum)
virtual void GenerateLabelsFor3D(const std::vector< Point2D > &irGridPoints, const DVector2D &irUnitOffsetDirection, GraphCollectionObject *ipLabelCollectioin, std::vector< GraphObject::Ptr > &iorGraphObjectList)
Definition: Vector2D.h:21
virtual void OnZooming(Int32 iOldStart, Int32 iOldEnd, Int32 iNewStart, Int32 iNewEnd)
float ValueToFloatPosition(double iValue) const
bool mIsStagger
Used in Histogram chart.
Definition: ValueAxis.h:564
virtual void GenerateMapAndList()
double mMinTick
The minimum tick value.
Definition: ValueAxis.h:559
Int32 hGetEvenSpacedPadding(bool iIsHighSide, double iBaseLength)
double mAxisSecondCustomValue
Definition: ValueAxis.h:77
bool mIsValid
Definition: Axis.h:83
bool mIsMaxZoom
Definition: ValueAxis.h:570
double mGridInterval
Indicates the manual grid interval.
Definition: Axis.h:97
std::vector< double > mTicks
A list of desired tick values.
Definition: ValueAxis.h:562
Definition: DSSIPhoneEnums.h:870
void hAdjustAxisRangeForGM()
virtual void GetMinMaxLogicalCoord(double &orMin, double &orMax) const
virtual void GetOptions(Int32 iSeriesId, Int32 iPropertyId, CComVariant *opValue) const
bool IsTickExist(double iValue)
Vertical, or Y direction in 3D chart.
Definition: Axis.h:32
unsigned char mAxisDirection
Definition: ValueAxis.h:21
double GetBasePositionFor3D()
Definition: Axis.h:24
Int32 GetOuterTickLength() const
Int32 ValueToBubbleSize(Int32 iDialogSize, double iValue) const
virtual void GetGridLinePositionsFor3D(std::vector< double > &orGridLinePositions, EnumGraphObjectType iGraphObjectType) const
Int32 mObjectId
Definition: Common.h:406
Definition: ValueAxis.h:17
virtual float GetAbsoluteCoord(double iLogicalCoord)
virtual Int32 LayoutAxis(bool iIsRotated, Int32 &orMaxLabelSpace)
void hComputeTicksForHistogramX()
bool mHasCustomAxisOrigin
Definition: ValueAxis.h:72
bool mUseLogarithmicScale
Definition: ValueAxis.h:59
void HideOverlappedLabels(Int32 iStartIndex, Int32 iEndIndex)
void hComputeTicksForLogScale()
double mStepScale
Definition: ValueAxis.h:582
void AdjustDeviceDataArea(Rect2D &iorDeviceDataArea, bool iIsReversed=false)
bool mDrawFromZero
Definition: ValueAxis.h:61
ValueAxis(const TripleId &irTripleId, GraphObjectManager *ipManager, double iMin, double iMax, bool iLargerGridInterval=false, bool iIsPercent=false, unsigned char iAxisDirection=AD_Y, bool iIsShown=true, Int32 iPrimaryMetricIndex=-1)
ValueAxisOptions mOptions
Definition: ValueAxis.h:550
This struct is from ChartCtrl.h.
Definition: NumberObject.h:38
Rect2D mLabelArea
Definition: ValueAxis.h:566
Int32 mLabelSpan
The span between two labels for time series widget.
Definition: ValueAxis.h:573
bool mUseCustomMinMax
Definition: ValueAxis.h:69
Int32 ValueToPosition(double iValue, bool iTruncate=true) const
void ReserveTitleAndLabels(Rect2D &iorArea, Int32 iLowMargin=1000, Int32 iHighMargin=1000)
void hComputeTicksForFixMinMax()
Definition: GraphCollectionObject.h:19
Int32 mLabelStartIndex
The start index of labels in mGraphObjectList.
Definition: ValueAxis.h:561
int GetPrimaryMetricIndex() const
Definition: ValueAxis.h:656
Int32 mGraphMajorType
Keeps the current graph major type.
Definition: ValueAxis.h:567
EnumGraphObjectType
Enum for GraphObject type in Axis.
Definition: Axis.h:50
void HideOverlappedLabelsForCustomPercentLabels(Int32 iStartIndex, Int32 iEndIndex)
void ToY2(bool iIsSeriesAxis=false)
Definition: ValueAxis.h:44
bool hIsPolarXOrHistogramX() const
Definition: ValueAxis.h:617
MSynch::SmartPtr< ValueAxis > Ptr
Definition: ValueAxis.h:88
bool mUseManualGrid
Indicates whether manual grid interval should be used or not.
Definition: Axis.h:95
void hFilterRepeatedLabels()
Horizontal, or X direction in 3D chart.
Definition: Axis.h:31
double mCustomAxisOriginValue
Definition: ValueAxis.h:78
bool mIsShown
Indicates whether larger grid interval is desired.
Definition: ValueAxis.h:552
void hGenerateGridSectionByValue(const TripleId &irTripleId, double iValue1, double iValue2, GraphCollectionObject *ipGridSet)
bool mShowMaxLabel
Definition: ValueAxis.h:65
Definition: Axis.h:21
double hLengthToValue(double iLength)
virtual Int32 GetUniformAxisExtraPadding()
Int32 hComputeLabelSkipStep(bool iSkipFromHighEnd, bool iNeedDistanceCheck, Int32 iStartIndex, Int32 iEndIndex, Int32 iRefLabelIndex, Int32 iAnchorStyle, TextObject *ipRefLabel, REC_EXP_DIRECTION iExpDirection)
void ToX(bool iIsLabelAoveAxis)
Definition: ValueAxis.h:30
Definition: ValueAxis.h:85
bool hHasAxisLine() const
unsigned char mOffScaleType
Definition: ValueAxis.h:73
void hComputeTicksForPercent()
double GetCustomAxisOriginValue() const
void hGenerateInterlacedGrids()
Definition: ValueAxis.h:56
Int32 mLabelObjectId
Definition: ValueAxis.h:568
bool mDrawSecondCustomLine
Definition: ValueAxis.h:67
void SetTrimWithPadding(bool iIsTrimmed)
Definition: ValueAxis.h:646
void hGetLineByValue(double iValue, Point2D &orLowEnd, Point2D &orHighEnd) const
void hGetOneTickToLabel(bool iIsOnHighSide, double iValue, TextObject *ipObject)
bool mCondenseLabel
Definition: ValueAxis.h:71
bool hCheckValue(double &iorValue, double &orMin, double &orMax) const
TextObject * hGetAxisLabelByTickValue(double iValue)
virtual double GetLogicalCoord(Int32 iAbsoluteCoord)
void hUpdateShownTicksToGMContext()
void GenerateCustomLine(const Rect2D &irDataArea, std::vector< GraphObject::Ptr > &iorGraphObjectList)
bool IsZeroBaseLineQualified()
Definition: ValueAxis.h:635
bool hGetNumberFormatFromMetric()
#define Int32
Definition: BasicTypes.h:20
void GenerateOneCustomLine(double iValue, Int32 iLineObjectId, const Rect2D &irDataArea, std::vector< GraphObject::Ptr > &iorGraphObjectList)
Definition: Axis.h:123
Int32 hHideLabelsFromHighEnd(Int32 iLastIndex, bool iIsFromHigh)
void hGenerateOneCustomLine(std::vector< GraphObject::Ptr > &iorGraphObjectList, double iCustomValue, Int32 iCustomLineId)
void hUpdateOneLabelLocation(Int32 iGraphObjectIndex, Int32 iLabelLocation, double iTickValue)
Definition: TextObject.h:181
bool GetTrimWithPadding()
Definition: ValueAxis.h:651
virtual void TrimAxisPadding(Rect2D &iorRect, bool iUseFixedMargin=true)
bool hHasTooManyTicks() const
Definition: ValueAxis.h:607
std::map< double, TextObject * > mHighTicksToLabel
A map from tick value to its corresponding label.
Definition: ValueAxis.h:575
virtual void GetTicks(std::vector< double > &orTicks) const
bool mDrawCustomLine
Definition: ValueAxis.h:66
double mMaxTick
The maximum tick value.
Definition: ValueAxis.h:558
void hHideLabelsWithStep(bool iSkipFromHighEnd, Int32 iStartIndex, Int32 iEndIndex, Int32 iReflabeIndex, Int32 iLabelStep)
void hComputeTicksForFixMax()
bool hIsDualAxisWithoutSplit() const
double mMaximum
The maximum value suggested by renderer.
Definition: ValueAxis.h:557
bool mIsPercent
Indicate whether current value type is percent.
Definition: ValueAxis.h:555
std::map< double, TextObject * > mLowTicksToLabel
A map from tick value to its corresponding label.
Definition: ValueAxis.h:574
int hGetMaxScreenPixels() const
bool IsBaseAtZero()
Definition: ValueAxis.h:602
bool mLargerGridInterval
Definition: ValueAxis.h:553
double mOriginMinimum
Definition: ValueAxis.h:580
Definition: Common.h:246
bool mUseMinValue
Definition: ValueAxis.h:62
bool GetPositionByValue(double iValue, Int32 &orPosition) const
REC_EXP_DIRECTION
Definition: Rect2D.h:16
Int32 hGetMaxLabelWidthOrHeight(bool iIsWidth) const
bool GetFloatPositionByValue(double iValue, float &orPosition) const
bool hIsLabelFitWithPadding(TextObject *ipTextLable, Int32 iPadding)
void hGenerateGridByValue(const TripleId &irTripleId, double iValue, GraphCollectionObject *ipGridLineSet, bool iIsMajor)
void hReserveLabelOrTickArea(Rect2D &iorArea, bool iIsLabel, bool iIsReversed)
virtual double GetPositionAtTick(double iTickValue)
const TripleId mTripleId
Identifiy current GraphObjectManager.
Definition: GraphObjectManager.h:270
bool IsCustomMinMax() const
Definition: ValueAxis.h:661
double mStep
A desired data interval which corresponds to a desired geometric grid interval.
Definition: ValueAxis.h:560
Definition: DSSIPhoneEnums.h:864
Definition: ABLPlot.h:21
virtual double GetIntervalSpace()
Int32 hPickStartLabelIndex(Int32 iStartIndex, Int32 iEndIndex, bool &iorIsPaddingPossible)
bool mDisableFractionalGrids
whether or not fractional grids should be disabeld.
Definition: ValueAxis.h:70
void hInitLargerGridInterval()
double GetStep() const
Definition: ValueAxis.h:622
Int32 hComputeLabelSkipStepForCustomPercentLabels(Int32 iStartIndex, Int32 iEndIndex)
double mOriginMaxmum
Definition: ValueAxis.h:581
void ToY1(bool iIsSeriesAxis=false)
Definition: ValueAxis.h:37
virtual double hComputeStep(double iMaximum, double iMinimum, bool iIncludeZero)
Int32 mPrimaryMetricIndex
The index of the metric if all our data comes under it.
Definition: ValueAxis.h:572
Definition: Axis.h:20
double mAxisMinValue
Definition: ValueAxis.h:74
Definition: DSSIPhoneEnums.h:876
std::vector< Int32 > mMetricList
To indicate which metric this axis controls.
Definition: ValueAxis.h:571
void GetNumberFormat(ChartAdvFormat &orFormat)
Definition: Msi_ccomvariant.h:24
bool mShowMinLabel
Definition: ValueAxis.h:64
Int32 GetLabelObjectId() const
Definition: ValueAxis.h:665
double hScaleStep(double iStep)
bool mAlwaysIncludeZero
Definition: ValueAxis.h:60
void hComputeTicksForFlexMinMax()
virtual void CreateAxisLine()
double mAxisMaxValue
Definition: ValueAxis.h:75
bool Get3DPositionByValue(double iValue, double &orPosition) const
bool mIsTrimmedWithPadding
Padding trimmed.
Definition: ValueAxis.h:569
bool IsAxisLabelAbbreviated(const TripleId &irTripleId)
ChartAdvFormat mNumberFormat
Stores the number format of tick labels.
Definition: ValueAxis.h:565
Definition: Axis.h:23
bool mUseSmartScaleBreak
Definition: ValueAxis.h:68
bool hIsHistogramX() const
Definition: ValueAxis.h:612
virtual bool IsLogarithmic() const
Definition: ValueAxis.h:626
void OnZoomRestore()
Restore from zoom state.
Definition: Common.h:242
unsigned char mAxisLabelsLocation
Definition: ValueAxis.h:20
double mAxisCustomValue
Definition: ValueAxis.h:76
Definition: GraphObjectManager.h:37
double mMinimum
The minimum value suggested by renderer.
Definition: ValueAxis.h:556
void GenerateTickLabels()
Generate tick labels.
TripleId mId
Definition: ValueAxis.h:19
GraphAxisGeneral mAxisInfo
General axis properties.
Definition: Axis.h:529
virtual double GetSlopeFactor(double iLogicalCoord) const
Use four Int32 values to represent a 2D rectangle.
Definition: Rect2D.h:25
void hBuildTickToLabelMap(bool iIsOnHighSide, Int32 iStartIndexInset)
void hComputeTicksForFixMin()
bool mUseMaxValue
Definition: ValueAxis.h:63
ValueAxisInfo()
Definition: ValueAxis.h:23
Definition: Common.h:397
virtual void UpdateTitleAndLabelArea(Rect2D &iorArea)
GraphAxisGrid mMajorGrid
Properties of major grid lines.
Definition: Axis.h:530