10 #ifndef MsiChart_BarSeriesRenderer_h 11 #define MsiChart_BarSeriesRenderer_h 148 if (iGroupCount > 0 && iSeriesCount > 0)
250 virtual void AddTextToMapAndList(std::map<TripleId, GraphObject::Ptr>& irGraphObjectMap, std::vector<GraphObject::Ptr>& irGraphObjectList);
291 void hCreateDataLabels(std::vector<Rect2D> &iorBarsRect, std::vector<Rect2D> &iorDLRect,
bool iIsRotated,
bool iIsOnlyForRect =
false);
292 void hCreateOneDataLabelItem(
const RiserInfo& irRiserInfo, std::vector<Rect2D> &iorBarsRect, std::vector<Rect2D> &iorDLRect,
bool iIsRoteated,
bool iIsOnlyForRect =
true);
356 void hRenderOneItem(
const RiserInfo& irRiserInfo, std::vector<std::pair<Int32, TextObject::Ptr> >& orTextForGroup,
BOOL iIsForReserveArea);
double mGroupSize
Definition: BarSeriesRenderer.h:434
void hGetSingleShapeSize(Int32 &iMarkersize, const TripleId &irTripleId, bool iIsLineAsDots)
bool hUpdateBarRectSize(const RiserInfo &irRiserInfo, Rect2D &iorRect, bool iIsDataPointAboveZero, double iDataValue)
Int32 mGroupIndex
Definition: BarSeriesRenderer.h:94
signed char BOOL
Definition: PDCwtypes.h:101
double hGetBarThickness(const RiserInfo &irRiserInfo)
bool hGetOneBarRect(const RiserInfo &irRiserInfo, Rect2D &iorRect, bool iIsOnlyForDataLabels=true)
Int32 mGapWidth
Gap width between groups.
Definition: BarSeriesRenderer.h:54
Int32 mMiddleValueSize
Middle value's size.
Definition: BarSeriesRenderer.h:58
Point< Int32 > Point2D
Definition: Point2D.h:402
Definition: BarSeriesRenderer.h:204
void hGetSeriesOrderByType(Int32 iGroupIndex, std::vector< Int32 > &orSerie, EnumValueAxis iVA)
Get the series order by rendering type for one group.
void hPrepareErrorBar(const RiserInfo &irRiserInfo, const Rect2D &irRectBar)
virtual void LoadProperties()
Load default bar graph related properties from ChartContext.
virtual void hGetRiserStartPosAndSize(const RiserInfo &irRiserInfo, Int32 &orStart, Int32 &orSize)
Get the riser's start position and size.
void AddObjectsToDLManagerForAxisOrigin(DataLabelManager::Ptr iDataLabelManagerPtr)
bool hGetSamplePoint(const RiserInfo &irRiserInfo, Point< double > &orSample)
Get the sample point of trendline one riser.
Definition: BarSeriesRenderer.h:202
Int32 hGetNumberOfVA() const
Get the number of value axis that assigned.
BarOptions()
Definition: BarSeriesRenderer.h:49
void hGetSingleShapeCenter(Point2D &iCenter, const Rect2D &iRectBar, bool iAboveZero)
bool hUpdateSpecificColor(const TripleId &irId, GraphObject::Ptr lPtr)
virtual Int32 GetGroupIndex()
Definition: BarSeriesRenderer.h:99
Int32 mBarColumns
How many columns within one group.
Definition: BarSeriesRenderer.h:437
Int32 hGetGroupIndex(const RiserInfo &irRiserInfo)
Get group index for a tripleId.
bool hUpdateBarRectSizeToTickMode(const RiserInfo &irRiserInfo, Rect2D &iorRect, bool iIsDataPointAboveZero, double iDataValue)
EnumBarRenderType
Enumeration of Bar Rendering type, corresponding to 4 layout type.
Definition: BarSeriesRenderer.h:199
virtual bool GetDataPoint(Int32 iSeriesId, Int32 iGroupId, Point2D &orDataPoint)
Provide position information for tooltip display on iPad.
~SeriesLineInfo()
Definition: BarSeriesRenderer.h:151
Definition: GraphCollectionObject.h:19
BarOptions mBarOptions
Internal bar options.
Definition: BarSeriesRenderer.h:440
void hRenderOneItem(const RiserInfo &irRiserInfo, std::vector< std::pair< Int32, TextObject::Ptr > > &orTextForGroup, BOOL iIsForReserveArea)
double mSpaceBetweenGroup
Definition: BarSeriesRenderer.h:436
Int32 mBarClusters
Definition: BarSeriesRenderer.h:439
EnumValueAxis
Definition: Plot.h:54
void hCalSeriesOrderForOneGroup(Int32 iGroupIndex, std::vector< Int32 > &orSeries, EnumValueAxis iVA)
For one group, calculate the series order.
bool hIsFitPaddingToBorder(const Rect2D &irDLRect, const Int32 &irPadding)
Definition: BarSeriesRenderer.h:110
std::map< Int32, Rect2D > mMapTotalRect[2]
Holds information for total labels, one for each Axis.
Definition: BarSeriesRenderer.h:430
PointInfo * mpPointInfo
Definition: BarSeriesRenderer.h:192
void hPrepareAnimationForOneBar(const RiserInfo &irRiserInfo, const Rect2D &irRectBar, GraphObject::Ptr iObjectPtr)
SeriesLineInfo * mpSeriesLineInfo
HOLDS information for series line information.
Definition: BarSeriesRenderer.h:428
bool GetPoint(Int32 iGroupID, Int32 iSeriesID, Point2D &orPoint, bool iFront)
Definition: BarSeriesRenderer.h:170
double hGetBarRiserWidth(const RiserInfo &irRiserInfo)
Get Bar Riser width according to different scenario. (Normal, GraphMatrix<and sub size mode>) ...
bool hIsSeperateMetricForClusterBar()
BarSeriesRenderer(const TripleId &irTripleId, GraphObjectManager *ipManager, Dataset::Ptr iDatasetPtr, Legend::Ptr iLegendPtr)
Point2D * mpBack
Definition: BarSeriesRenderer.h:141
GMDataLabelVecs mDataLabes
Definition: BarSeriesRenderer.h:299
Definition: Dataset.h:198
RiserInfoWithIndex(Int32 iGroupID, Int32 iSeriesInfoID)
Definition: BarSeriesRenderer.h:80
void hPrepareForAnimation()
bool mColorBySeries
Color mode: by series or by category.
Definition: BarSeriesRenderer.h:60
Int32 mSeriesCount
Definition: BarSeriesRenderer.h:195
~PointInfo()
Definition: BarSeriesRenderer.h:116
bool hReserveAreaForDataLabel(Rect2D &iorRect, TextObject *ipTextObject)
virtual void GetOptions(Int32 iSeriesId, Int32 iPropertyId, CComVariant *opValue) const
void Clear(SERIES_LINEINFO_CLEARTYPE iType)
Definition: BarSeriesRenderer.h:121
bool hIsLegendMarkerAddedToCollection(Int32 iSeriesID)
Definition: BarSeriesRenderer.h:77
#define Int32
Definition: BasicTypes.h:20
void ReserveAreaForDataLabels(Rect2D &iorRect)
SERIES_LINEINFO_CLEARTYPE
SeriesLine Info.
Definition: BarSeriesRenderer.h:103
void hPostProcessOneBar(const RiserInfo &irRiserInfo, GraphObject::Ptr iObjectPtr)
void hAdjustSeriesOrderForNegativeValue(Int32 iGroupIndex, std::vector< Int32 > &iorVecSeries)
Adjust the drawing order for considering Negative value.
Point2D * mpFront
Definition: BarSeriesRenderer.h:140
void hSmartLabelForCluster(EnumValueAxis iVA, std::vector< TextObject::Ptr > &irTextForGroup)
Definition: TextObject.h:181
void hPrepareGMRiserLabel(const TripleId &ID, const RiserInfo &irRiserInfo, const Rect2D &irRectBar, const Rect2D &irOldRectBar, double iDataValue)
void hGenerateTrendLine()
Add the trend line to orTrendLineObjects, called by ABLPlot.
Definition: BarSeriesRenderer.h:106
std::map< Int32, std::vector< Point< double > > > mSGMapTrend
map which holds Series/GroupID -> sample points
Definition: BarSeriesRenderer.h:426
bool mHasMiddleValue
Flag indicates whether to draw middle value in Error Bar graph.
Definition: BarSeriesRenderer.h:57
EnumBarRenderType mBarRenderType
Bar Rendering Type.
Definition: BarSeriesRenderer.h:432
void hGetSeriesByVA(std::vector< Int32 > &irSeries, EnumValueAxis iVA)
Get the series info ID for the specified ValueAxis index.
bool hIsTwoRectFitPadding(const Rect2D &irDLRect, const Rect2D &irRect, const Int32 &irPadding)
bool hCheckBarRect(const Int32 iSeriesIndex, const Rect2D &irRect)
void SetDeviceDataArea(const Rect2D &irDeviceDataArea)
Definition: BarSeriesRenderer.h:201
Int32 mGroupID
Definition: BarSeriesRenderer.h:69
virtual Int32 GetGroupIndex()
Definition: BarSeriesRenderer.h:75
virtual void hCalBarWidth()
Calculate the bar width.
bool mReformedCombo
Definition: BarSeriesRenderer.h:445
double mBarWidth
Bar's width.
Definition: BarSeriesRenderer.h:433
GraphObject::Ptr hprepareSingleShape(const TripleId &irTripleId, const Point2D &irPoint, bool iIsLineAsDots)
TextObject::Ptr hCreateRiserLabel(const RiserInfo &irRiserInfo, const Rect2D &irRefRect, GraphCollectionObject::Ptr iColPtr)
Create the label for one riser.
virtual void hRenderItems(EnumValueAxis iVA, BOOL iIsOnlyForDataLabels)
Int32 mLastSeenWidth
used in cluster bar in GraphMatrix to record the last seen size of the bar, usually the 1st bar...
Definition: BarSeriesRenderer.h:443
std::map< Int32, bool > mAddedLegendMarkerSet
which legend Marker has been added to collection
Definition: BarSeriesRenderer.h:442
Int32 mSeriesInfoID
Definition: BarSeriesRenderer.h:70
Int32 mOverlap
Overlap value.
Definition: BarSeriesRenderer.h:53
virtual void GenerateMapAndList()
Definition: BarSeriesRenderer.h:105
bool mShowErrorBar
Flag indicates whether to show Error Bar or not.
Definition: BarSeriesRenderer.h:56
virtual void AddTextToMapAndList(std::map< TripleId, GraphObject::Ptr > &irGraphObjectMap, std::vector< GraphObject::Ptr > &irGraphObjectList)
Add the trend line to orTrendLineObjects, called by ABLPlot.
void hGetVAOrder(EnumValueAxis &orFirst, EnumValueAxis &orSecond)
Calcuated the drawing order for Value Axis.
MSynch::SmartPtr< BarSeriesRenderer > Ptr
Type definition.
Definition: BarSeriesRenderer.h:214
void hPutOneDataLabel(const Rect2D &irBarRect, TextObject::Ptr irDLText, double irValue, bool iIsForJudgeRotate=false, bool iIsRotated=false)
RiserInfoWithIndex(Int32 iGroupID, Int32 iSeriesInfoID, Int32 iGroupIndex)
Definition: BarSeriesRenderer.h:87
std::map< Int32, GraphCollectionObject::Ptr > mSGMapLabel
map which holds Series/GroupID -> Collection object pointer
Definition: BarSeriesRenderer.h:424
void hGenerateSeriesLine(EnumValueAxis iValueAxis)
Generate series line for specified value axis - usually it's VA_Y1.
void hGetLogicalMiddlePosition(Int32 iSeriesIndex, Int32 iGroupId, double &orPosition) const
void hGenerateByValueAxis(EnumValueAxis iValueAxis, BOOL iIsOnlyForDataLabels)
RiserInfo — SeriesInfoIndex and GroupID pair.
Definition: BarSeriesRenderer.h:64
unsigned char mRiserShape
Riser's shape, only "Rectangle".
Definition: BarSeriesRenderer.h:55
void hCheckLabelForClipping(const RiserInfo &irRiserInfo, TextObject::Ptr iTextObjectPtr, const Point2D &irMax, const Point2D &irMin)
Move label further in case they go beyond the chart area.
GraphObject::Ptr hPrepareRectangleObject(const RiserInfo &irRiserInfo, const Rect2D &irRectBar, bool iAboveZero)
Int32 mGroupCount
Definition: BarSeriesRenderer.h:194
Rect2D hPrepareRect(const RiserInfo &irRiserInfo, double iDataValue, bool &orAboveZero)
void hCreateDataLabels(std::vector< Rect2D > &iorBarsRect, std::vector< Rect2D > &iorDLRect, bool iIsRotated, bool iIsOnlyForRect=false)
Definition: BarSeriesRenderer.h:107
bool hShouldRotateDataLabel()
----------—Data Label Methods---------—///
EnumDssGraphMatrixDataLabelPosition
Definition: Common.h:131
void AddObjectsToDataLabelManager(DataLabelManager::Ptr iDataLabelManagerPtr)
RiserInfo(Int32 iGroupID, Int32 iSeriesInfoID)
Definition: BarSeriesRenderer.h:66
Definition: BarSeriesRenderer.h:203
void hGetSeriesLinePoint(const RiserInfo &irRiserInfo, const Rect2D &irRefRect, Point2D &orFront, Point2D &orBack)
Get series line point.
bool hPrepareData(const RiserInfo &irRiserInfo, double &orValue)
virtual ~BarSeriesRenderer()
Definition: BarSeriesRenderer.h:222
Definition: Msi_ccomvariant.h:24
GraphCollectionObject * hFindRiserCollectionOrInsert(const RiserInfo &irInfo)
Find the riser collection.
virtual Int32 hGetIndexInColumn(const RiserInfo &irRiserInfo)
Get the index along the Category Axis for each riser.
std::vector< GMDataLabelInfo > GMDataLabelVecs
Definition: DataLabelManager.h:93
virtual bool hIsLabelShown()
bool mShowSeriesLines
Whether to show series lines.
Definition: BarSeriesRenderer.h:59
void hGetRenderingType()
Data Label~.
virtual void GenerateByValueAxis(EnumValueAxis iValueAxis, std::vector< GraphObject::Ptr > &iorGraphObjectList)
std::map< Int32, Int32 > mBarSeriesInfoToIndex
Definition: BarSeriesRenderer.h:444
#define NULL
Definition: Null.h:10
Definition: GraphObjectManager.h:37
Int32 hGetDataLabelNumber(bool iIsRotated)
Definition: BarSeriesRenderer.h:112
void SetPoint(Int32 iGroupID, Int32 iSeriesID, const Point2D &irPoint, bool iFront)
Definition: BarSeriesRenderer.h:156
void hCreateOneDataLabelItem(const RiserInfo &irRiserInfo, std::vector< Rect2D > &iorBarsRect, std::vector< Rect2D > &iorDLRect, bool iIsRoteated, bool iIsOnlyForRect=true)
bool hIsTickShapeForGMObject(const TripleId &iID)
SeriesLineInfo(Int32 iGroupCount, Int32 iSeriesCount)
Definition: BarSeriesRenderer.h:144
Use four Int32 values to represent a 2D rectangle.
Definition: Rect2D.h:25
bool ShouldRotateDataLabel()
Options related to Bar graph.
Definition: BarSeriesRenderer.h:47
Definition: BarSeriesRenderer.h:210
double mSpaceBetweenRiser
Definition: BarSeriesRenderer.h:435
PointInfo()
Definition: BarSeriesRenderer.h:114
Definition: SeriesRenderer.h:52