8 #ifndef MsiChart_Axis_h 9 #define MsiChart_Axis_h 134 unsigned char iAxisDirection);
448 const Point2D& irLeftOrBottom,
const Point2D& irRightOrTop, std::vector<Point2D>& orPolyLine);
568 void hGenerateGrids(
const Rect2D& irDataArea, std::vector<GraphObject::Ptr>& iorGraphObjectList,
bool iIsGridLine);
573 virtual void hGenerateGridsByArea(
bool iIsGridLine) = 0;
586 void hGenerateOneAxisLine(
Int32 iLabelLocation);
590 void hGenerateDepthAxisLine();
609 void hGetOneDepthGridLine(
Int32 iLocation,
Int32 iGridStyle,
Int32 iTickLength,
610 const Point2D& irLeftOrBottom,
const Point2D& irRightOrTop, std::vector<Point2D>& orPolyLine);
614 void hUseInnerDataArea();
644 return mDepthDirection < 90 || mDepthDirection > 270;
void TrimMarginsForDepthAxis(Int32 &iorLowMargin, Int32 &iorHighMargin) const
Definition: Vector2D.h:21
Int32 mCustomLineId
The object ID of custom line.
Definition: Axis.h:107
void SetDepthAndDirection(Int32 iDepth, Int32 iDepthDirection)
Int32 mMinorId
The object ID of Minor gridline.
Definition: Axis.h:105
ChartContext::Ptr mChartContextPtr
The drawing context instance. Only one object in a chart.
Definition: GraphObjectManager.h:273
bool mIsValid
Definition: Axis.h:83
virtual float GetAbsoluteCoord(double iLogicalCoord)=0
void GenerateAxisLine(std::vector< GraphObject::Ptr > &iorGraphObjectList)
double mGridInterval
Indicates the manual grid interval.
Definition: Axis.h:97
void SetIsAxisForRangeLegend(bool iIsForRangeLegend)
Int32 mTickLength
Tick Length.
Definition: Axis.h:533
Vertical, or Y direction in 3D chart.
Definition: Axis.h:32
bool IsRightDirection() const
Definition: Axis.h:642
bool mIsAxisFor3D
Definition: Axis.h:546
void MoveLabel(TextObject *ipLabel, const Point2D &irGridPoint, const DVector2D &irUnitOffsetDirection, Int32 iLabelMargin=gLabelMargin) const
bool mIsUniformAxis
Definition: Axis.h:558
bool mUseInterlacedGrids
Indicate whether current axis has interlaced grids.
Definition: Axis.h:81
Z direction in 3D chart.
Definition: Axis.h:33
GraphAxisGeneral(unsigned char mAxisLabelsLocation, unsigned char iAxisDirection)
This struct is used to get the object ID of labels, major/minor grid lines or axis title from axis in...
Definition: Axis.h:101
Int32 mLabelId
The object ID of axis label.
Definition: Axis.h:103
GraphCollectionObject * GetObjectSet(EnumGraphObjectType iGraphObjectType) const
virtual void GetInterlacedPositions(std::vector< double > &orPositions)
Definition: DSSIPhoneEnums.h:1891
EnumAxisDirection
Enum for axis direction.
Definition: Axis.h:29
void SetAxisInfoFor3D(Int32 iAxisLength, Int32 iAxisMargin)
Definition: Axis.h:689
void ReserveTitleArea(Rect2D &iorTitleArea)
Definition: DSSIPhoneEnums.h:1890
bool HasLabelsOnBothSides() const
Definition: Axis.h:632
Definition: GraphCollectionObject.h:19
unsigned char mGridStyle
Indicates which style of grid lines should be shown. Should be a value in EnumGridStyle.
Definition: Axis.h:93
void GetOneGridLine(Int32 iLocation, Int32 iGridStyle, Int32 iTickLength, const Point2D &irLeftOrBottom, const Point2D &irRightOrTop, std::vector< Point2D > &orPolyLine)
EnumGraphObjectType
Enum for GraphObject type in Axis.
Definition: Axis.h:50
Grid line properties.
Definition: Axis.h:87
#define _ASSERTE(x)
Definition: Asserte.h:40
Int32 mMajorId
The object ID of Major gridline.
Definition: Axis.h:104
bool mUseManualGrid
Indicates whether manual grid interval should be used or not.
Definition: Axis.h:95
bool mUseDepth
Indicate whether to use depth or not.
Definition: Axis.h:535
bool IsVerticalAxis() const
Definition: Axis.h:637
Horizontal, or X direction in 3D chart.
Definition: Axis.h:31
Int32 mAxisLengthFor3D
Definition: Axis.h:547
bool HasOuterTicks(Int32 iGridStyle) const
Definition: Axis.h:658
virtual void GetMinMaxLogicalCoord(double &orMin, double &orMax) const =0
bool IsReverseOrder()
Definition: Axis.h:627
void MoveTitleForManual(TextObject *ipAxisTitle) const
void ReserveDepthAxisLine(Rect2D &iorDeviceDataArea, bool iIsReversed=false, bool iBothDirections=false) const
const Int32 gLabelMargin
Definition: Axis.h:112
bool mShowAxisTitle
Indicate whether the axis title should be shown or not.
Definition: Axis.h:74
void GenerateTitleFor3D(Int32 iObjectId, Point2D &irRefPoint, const DVector2D &irUnitOffsetDirection, std::vector< GraphObject::Ptr > &iorGraphObjectList)
Int32 mTitleId
The object ID of axis title.
Definition: Axis.h:106
bool mIsForRangeLegend
Is this axis is used by a range legend.
Definition: Axis.h:557
virtual Int32 GetUniformAxisExtraPadding()
double mHighTrim
When depth is not used, the grid lines need to be put into manager's graph object list...
Definition: Axis.h:541
void DrawTitleAndLabels()
double ValueToPositionFor3D(double iLogicalCoord) const
General axis properties.
Definition: Axis.h:62
#define Int32
Definition: BasicTypes.h:20
MBase::String mAxisTitle
Axis title string.
Definition: Axis.h:539
void GetLabelOffset(Int32 iLabelLocation, Point2D &orOffset) const
void GenerateOneLineObject(const TripleId &irTripleId, const std::vector< Point2D > &irPolyLine, GraphCollectionObject *ipGridLineSet)
bool IsMajorGridShown() const
Definition: Axis.h:673
bool IsInterlacedShown() const
Definition: Axis.h:677
GraphCollectionObject * mpMinorGridSet
Definition: Axis.h:551
virtual double GetPositionAtTick(double iTickValue)=0
Definition: TextObject.h:181
void ReserveTitle(Rect2D &iorTitleArea, bool iIsReversed)
unsigned char mAxisLabelsLocation
Indicates on which side the axis labels should be shown. Should be a value in EnumAxisLabelsLocation...
Definition: Axis.h:66
Point2D mDepthOffset
Indicate the depth offset.
Definition: Axis.h:538
virtual bool IsLogarithmic() const
Definition: Axis.h:669
virtual void GetOptions(Int32 iSeriesId, Int32 iPropertyId, CComVariant *opValue) const
virtual void TrimAxisPadding(Rect2D &iorRect, bool iUseFixedMargin=true)
virtual void CreateAxisLine()
EnumAxisLabelsLocation
Enum for axis label location.
Definition: Axis.h:18
Definition: DSSIPhoneEnums.h:1889
Int32 mDepthDirection
Indicate the depth direction.
Definition: Axis.h:537
const AxisObject gAxisObjects[]
Store the object ID of labels, major grid lines, minor grid lines or axis title.
const Int32 gMaxLabelLength
Definition: Axis.h:113
Int32 GetAxisTitleLocationId(Int32 iAxisTitleId) const
virtual GraphObject::Ptr OnPointDetection(const Point2D &irCursor) const
bool IsTimeSeriesChart() const
Definition: ChartContext.h:2355
void UpdateTitleLocation(const Rect2D &irTitleArea)
GraphCollectionObject * mpInterlacedGridSet
Definition: Axis.h:552
unsigned char mAxisDirection
Definition: Axis.h:79
bool IsUniformAxis() const
Definition: Axis.h:698
GraphCollectionObject * mpAxisLabelSet
Definition: Axis.h:554
virtual void GetGridLinePositionsFor3D(std::vector< double > &orGridLinePositions, EnumGraphObjectType iGraphObjectType) const =0
void SetDeviceDataArea(const Rect2D &irDeviceDataArea)
Definition: Axis.h:617
virtual void OnZooming(Int32 iOldStart, Int32 iOldEnd, Int32 iNewStart, Int32 iNewEnd)=0
std::basic_string< WCHAR, std::char_traits< WCHAR >, Allocator< WCHAR > > String
Definition: BaseString.h:26
void GetDeviceDataArea(Rect2D &orDeviceDataArea)
Definition: Axis.h:622
virtual double GetLogicalCoord(Int32 iAbsoluteCoord)=0
bool IsLeftDirection() const
Definition: Axis.h:646
virtual double GetSlopeFactor(double iLogicalCoord) const =0
bool IsUpDirection() const
Definition: Axis.h:650
bool IsTitleShown() const
Definition: Axis.h:685
bool HasTwoGridLineParts(Int32 iGridStyle) const
Definition: Axis.h:664
bool IsDownDirection() const
Definition: Axis.h:654
bool mShowAxisLabels
Indicate whether the axis labels should be shown or not.
Definition: Axis.h:72
bool IsLabelsShown() const
Definition: Axis.h:681
bool mShowAxisLine
Indicate whether the axis line should be shown or not.
Definition: Axis.h:70
virtual void GenerateLabelsFor3D(const std::vector< Point2D > &irGridPoints, const DVector2D &irUnitOffsetDirection, GraphCollectionObject *ipLabelCollectioin, std::vector< GraphObject::Ptr > &iorGraphObjectList)=0
Int32 GetAxisLengthFor3D() const
Definition: Axis.h:694
void InitObjectSet(const TripleId &irTripleId, EnumGraphObjectType iGraphObjectType)
virtual Int32 LayoutAxis(bool iIsRotated, Int32 &orMaxLabelSpace)=0
double mLowTrim
Definition: Axis.h:540
Definition: Msi_ccomvariant.h:24
bool HasDepthAxisLine(Int32 iLabelLocation) const
void SetAsUniformAxis(bool iUniformAxis)
Definition: Axis.h:703
GraphAxisGrid mMinorGrid
Properties of minor grid lines.
Definition: Axis.h:531
MSynch::SmartPtr< Axis > Ptr
Definition: Axis.h:126
void GenerateInterlacedGrids(const Rect2D &irDataArea, Int32 iAreaId, std::vector< GraphObject::Ptr > &iorGraphObjectList)
Axis(const TripleId &irTripleId, GraphObjectManager *ipManager, unsigned char iAxisLabelsLocation, unsigned char iAxisDirection)
Rect2D mDeviceDataArea
Indicate the data area of current axis.
Definition: Axis.h:532
std::vector< GraphObject::Ptr > mManagerGraphObjectList
Definition: Axis.h:544
EnumAxisIndex
Enum for axis index in gAxisObjects.
Definition: Axis.h:37
bool IsGraphMatrix() const
Definition: ChartContext.h:2384
GraphAxisGrid(bool iShowGridLines, unsigned char iGridStyle)
double GetIntervalSpace()
void GetDepthMargin(Int32 &orLowMargin, Int32 &orHighMargin) const
GraphCollectionObject * mpAxisLineSet
Definition: Axis.h:555
Definition: GraphObjectManager.h:37
void MoveGraphObjectList(std::vector< GraphObject::Ptr > &iorGraphObjectList)
GraphAxisGeneral mAxisInfo
General axis properties.
Definition: Axis.h:529
Use four Int32 values to represent a 2D rectangle.
Definition: Rect2D.h:25
GraphCollectionObject * mpAxisTitleSet
Definition: Axis.h:553
bool mAxisDrawInReverse
Indicates whether the axis labels should be shown in reverse order (e.g. from bottom to top...
Definition: Axis.h:68
Definition: DSSIPhoneEnums.h:1892
Int32 mAxisMarginFor3D
Definition: Axis.h:548
Int32 mDepth
Indicate the depth value.
Definition: Axis.h:536
bool mShowGridLines
Indicates whether grid lines should be shown or not.
Definition: Axis.h:91
GraphCollectionObject * mpMajorGridSet
Definition: Axis.h:550
GraphAxisGrid mMajorGrid
Properties of major grid lines.
Definition: Axis.h:530
Int32 GetInterlacedGridId() const