10 #ifndef MsiChart_AreaSeriesRenderer_h 11 #define MsiChart_AreaSeriesRenderer_h 48 const std::vector<Int32>& irObjectIds,
Int32& iorDistance,
Int32 iRadius,
62 void hGenerateDataLabels();
68 void hGenerateLabelsForSeries(
Int32 iSeriesIndex);
76 void hGenerateNaiveSideFaces(
Int32 iSeriesIndex,
const Polygon2D& irPolygon,
Int32 iGroupId);
109 void hGenerateRisersForSeries(
Int32 iSeriesIndex,
bool iUseDepth);
116 void hGenerateOnePolygon(
Int32 iSeriesIndex,
const Polygon2D& irPolygon,
bool iUseDepth);
127 void hAddSeriesVirtualMarkersToImageMap(
Int32 iSeriesIndex,
ImageMap& iorImageMap);
129 void hInitSeriesPolygons();
131 void hParsePolygon(
const Polygon2D& irPolygon, std::vector<std::vector<Point2D> >& orPolygonUnits, std::vector<std::vector<Point2D> >& orSeriesPolygonBounder,
int iSeriesIndex)
const;
136 void hGenerateVirtualMarkersBySeries(
Int32 iSeriesIndex);
137 void GetAreaPointByProgress(
int iSeriesIndex,
int iPointIndex,
double iProgress,
Point2D& orAreaPoint);
143 void hGenerateOneRiser(
Int32 iSeriesIndex,
Int32 iGroupIndex,
const Polygon2D& irPolygon,
bool iUseDepth);
145 void hSplitPolygon(
const Polygon2D& irPolyGon, std::vector<Polygon2D>& orSplitPolyGonSet,
Int32 iSplitSpan)
const;
147 void hPrepareAnimation();
151 Int32 hGetSeriesPolygonIndex(
Int32 iSeriesIndex);
158 std::vector<GraphCollectionObject::Ptr> mAreaCollection;
160 std::vector<std::vector<Point2D> > mSeriesPolygons;
162 std::vector<std::vector<Point2D> > mFinalSeriesPolygons;
164 std::vector<Int32> mSeriesDrawingOrder;
165 std::set<Int32> mTransitionalSet;
168 mutable bool mIsPolygonSplit;
169 bool mSupportAnimation;
171 std::vector<std::vector<EnumValueAxis> > mAxisGenInfo;
173 mutable std::vector<std::pair<Int32, Int32> > mGroupRangeList;
174 void hPopulateGroupRangeListPerSeries(
const std::vector<std::vector<Point2D> >& irPolygonUnits)
const;
175 void hPopulateGroupIdMapPerSeries(
const std::vector<Point2D>& irPolygonUnit)
const;
177 void hSplitGroupRangeListPerSeries(
Int32 iSplitSpan)
const;
178 Int32 hGetStartGroupIndexForPolygonAt(
Int32 iPolygonIndex,
Int32 iCanidate);
179 bool hIsAtHighSideToBase(
bool iIsVertical,
Int32 iBasePosition,
bool iIsStringent,
const Point2D& irPoint)
const;
180 void hUpdatePolygonSize(
Int32& iBasePosition,
Int32& iValuePosition,
double iValue,
double iBaseValue);
181 void hPushDownBaseSide(
Polygon2D& iorPolygon,
bool iIsVertical)
const;
185 void hMovePolygon(
Polygon2D& iorPolygon,
Int32 iOffset,
bool iIsVertical)
const;
186 bool hUpdateBaseSide(
Polygon2D& iorPolygon,
ValueAxis* iValueAxisPtr,
bool iIsVertical);
189 void hGenerateOnePolylineBounderForDataLabel(
Int32 iSeriesIndex,
Int32 iGroupIndex,
const Polygon2D& irPolygon,
bool iUseDepth);
190 void hGenerateStorkeBounderForOneRiser(
Int32 iSeriesIndex,
Int32 iGroupIndex,
const Polygon2D& irPolygon,
bool iUseDepth);
197 std::vector<GraphObject::Ptr> mAreaBoundForDL;
198 std::vector<GraphObject::Ptr > mSinglePointObjects;
199 void CreateAllDataLabels();
203 void hPrepareDataLabelPositions();
204 int hGetDLIndexInVec(
Int32 iSeriesId,
Int32 iGroupId);
205 void hCreateAreaMarkers();
Definition: LayerObject.h:21
virtual void GenerateImageMap(ImageMap &iorImageMap)
virtual void AddObjectsToDataLabelManager(DataLabelManager::Ptr iDataLabelManagerPtr)
Definition: GraphCollectionObject.h:19
EnumValueAxis
Definition: Plot.h:54
Definition: ValueAxis.h:85
Definition: Dataset.h:198
EnumGraphObjectUsage
Definition: GraphObject.h:28
virtual void GenerateByValueAxis(EnumValueAxis iValueAxis, std::vector< GraphObject::Ptr > &iorGraphObjectList)
virtual void GenerateMapAndList()
std::vector< Point2D > Polygon2D
Definition: GraphObject.h:25
#define Int32
Definition: BasicTypes.h:20
void hCreateDataMarkerForDataLabel(bool iOnlyForDisplayedDataLable=true)
virtual GraphObject::Ptr OnPointDetectionEx(const Point2D &irCursor, const std::vector< Int32 > &irObjectIds, Int32 &iorDistance, Int32 iRadius, std::vector< GraphObject::Ptr > &iorGraphObjectsAround, EnumGraphObjectUsage iUsage=GOU_NORMAL_HIGHLIGHT)
MSynch::SmartPtr< AreaSeriesRenderer > Ptr
Definition: AreaSeriesRenderer.h:30
Definition: DataLabelManager.h:54
virtual void GenerateInterpolationFrame(double iProgress, LayerObject *ipLayerObject)
AreaSeriesRenderer(const TripleId &irTripleId, GraphObjectManager *ipManager, Dataset::Ptr iDatasetPtr, Legend::Ptr iLegendPtr)
Definition: ABLPlot.h:144
std::vector< AreaRec * > ImageMap
Definition: ImageMap.h:99
Definition: AreaSeriesRenderer.h:27
std::vector< GMDataLabelInfo > GMDataLabelVecs
Definition: DataLabelManager.h:93
Definition: GraphObjectManager.h:37
Definition: GraphObjectAggregation.h:22
Definition: GraphObject.h:30
Definition: SeriesRenderer.h:52