8 #ifndef MsiChart_ValueAxis_h 9 #define MsiChart_ValueAxis_h 30 void ToX(
bool iIsLabelAoveAxis)
37 void ToY1(
bool iIsSeriesAxis =
false)
44 void ToY2(
bool iIsSeriesAxis =
false)
100 bool iLargerGridInterval =
false,
101 bool iIsPercent =
false,
102 unsigned char iAxisDirection =
AD_Y,
103 bool iIsShown =
true,
104 Int32 iPrimaryMetricIndex = -1);
245 virtual void GetTicks(std::vector<double>& orTicks)
const;
304 float ValueToPosition(
double iValue,
float iStartPosition,
float iStopPosition)
const;
313 bool ValueToPosition(
double iValue,
float iStartPosition,
float iStopPosition,
float& orPosition)
const;
354 virtual double hComputeStep(
double iMaximum,
double iMinimum,
bool iIncludeZero);
408 double iCustomValue,
Int32 iCustomLineId);
486 bool hCheckValue(
double& iorValue,
double& orMin,
double& orMax)
const;
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();
599 bool hReserveAreaAtTop(
Int32 iReservedHeight);
631 inline bool ValueAxis::hIsManualMinShown()
const 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()
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()
void hSetAxisLabelStyle()
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
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
void hGenerateMajorGrid()
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)
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
bool HasCustomAxisOrigin()
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
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)
void hUpdateLabelLocation()
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
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
void hGenerateMinorGrid()
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
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
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.
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
virtual void UpdateTitleAndLabelArea(Rect2D &iorArea)
GraphAxisGrid mMajorGrid
Properties of major grid lines.
Definition: Axis.h:530