10 #ifndef MsiChart_PieSliceObject_h 11 #define MsiChart_PieSliceObject_h 58 SliceInfo(
float iStartAngle,
float iEndAngle,
float iRingPieFactor,
59 bool iIsRingPie,
bool iIs2DCircular,
double iScale,
const Point2D& irCenter,
60 float iRadius,
Int32 iMaxRadius,
Int32 iDepth,
double iPercentContribution = 0)
80 Int32 iExplode,
float iStartAngle,
float iEndAngle,
float iRingPieFactor,
81 bool iIsRingPie,
bool iIs2DCircular,
double iScale,
const Point2D& irCenter,
82 float iRadius,
Int32 iMaxRadius,
Int32 iDepth,
bool iOneSeries,
87 Int32 iExplode,
Int32 iStartAngle,
Int32 iEndAngle,
float iRingPieFactor,
88 bool iIsRingPie,
bool iIs2DCircular,
double iScale,
const Point2D& irCenter,
89 float iRadius,
Int32 iMaxRadius,
Int32 iDepth,
bool iOneSeries,
95 virtual void Draw()
const;
139 void SetOutLineInfo(
bool iIsConsectiveOutline,
bool iIsHighLightStartAngelEdge,
bool iIsHighLightEndAngleEdge);
261 void hDrawGlowEffect()
const;
266 void hApplyFillAndLine()
const;
271 void hFillSide()
const;
276 void hDrawRingPieSlice()
const;
278 void hDrawRingPieInnerStroke()
const;
283 void hDrawRingPieOneSeriesTop()
const;
288 void hDrawRingPieOneSeriesBottom()
const;
293 void hDrawRingPieMiddle()
const;
298 void hDrawRingPieTop()
const;
303 void hDrawRingPieBottom()
const;
309 void hDrawRingPieMiddleRectangle(
RectangleAngle iRectangleAngle)
const;
314 void hDrawRingPieMiddleCylinder()
const;
322 void hDrawCylinder(
bool iIsRing,
Int32 iStartAngle,
Int32 iEndAngle)
const;
327 void hDrawNormalPieSlice()
const;
329 void hDrawNormalPieInnerStroke()
const;
334 void hDrawNormalPieOneSeriesTop()
const;
339 void hDrawNormalPieOneSeriesBottom()
const;
344 void hDrawNormalPieMiddle()
const;
349 void hDrawNormalPieTop()
const;
354 void hDrawNormalPieBottom()
const;
360 void hDrawNormalPieMiddleRectangle(
RectangleAngle iRectangleAngle)
const;
365 void hDrawNormalPieMiddleCylinder()
const;
372 bool hPointInRingPieSlice(
const Point2D& irPoint)
const;
379 bool hPointInNormalPieSlice(
const Point2D& irPoint)
const;
386 bool hGetIntersectionConvertedAngleToSliceAngle(
const Angle& irAngle)
const;
392 void hGetTopBottomBoundingRect(
Rect2D& orBoundingRect)
const;
398 void hGetCylinderBoundingRect(
Rect2D& orBoundingRect)
const;
404 void hGetRectangleBoundingRect(
Rect2D& orBoundingRect)
const;
406 void hWhitenOuterBorder()
const;
413 mutable Int32 mCylinderStart;
414 mutable Int32 mCylinderEnd;
417 mutable bool mIsOutline;
420 float mStartAngleRadian;
421 float mEndAngleRadian;
422 float mMiddleAngleRadian;
425 Int32 mMiddleAngleQuadrant;
431 bool mIsWhitenOuterBorder;
434 bool mIsConsecutiveHighLihgt;
435 bool mIsConsecutiveSlcieNeedInnerStroke;
436 bool mIsHighLightStartAngleEdge;
437 bool mIsHighLightEndAngleEdge;
442 mCylinderStart = iCylinderStart;
447 mCylinderEnd = iCylinderEnd;
452 mBoundingRectType = iBoundingRectType;
457 mIsOutline = iIsOutline;
467 return mMiddleAngleQuadrant;
477 return mMiddleAngleRadian;
492 mIsConsecutiveSlcieNeedInnerStroke = iStroke;
497 return mStartAngleRadian;
502 return mEndAngleRadian;
507 mIsConsecutiveHighLihgt = iIsConsectiveOutline;
508 mIsHighLightStartAngleEdge = iIsHighLightStartAngelEdge;
509 mIsHighLightEndAngleEdge = iIsHighLightEndAngleEdge;
514 mIsWhitenOuterBorder = iIsWhiten;
RectangleAngle
Definition: PieSliceObject.h:28
float mRingPieFactor
Definition: PieSliceObject.h:48
float GetEndAngelRadian()
Definition: PieSliceObject.h:500
float mStartAngle
Definition: PieSliceObject.h:46
float GetMiddleAngleRadian() const
Definition: PieSliceObject.h:475
Int32 GetSliceIndex() const
Definition: PieSliceObject.h:485
virtual bool PointInObject(const Point2D &irPoint)
Int32 mMaxRadius
Definition: PieSliceObject.h:55
void GetCylinderImageMap(const Point2D &irCenter, const Int32 iRadius, const Int32 iDepth, const Int32 iStartAngle, const Int32 iEndAngle, ImageMap &iorImageMap) const
bool GetIntersectionConvertedAngles(const Angle &irAngle1, const Angle &irAngle2, Angle &orAngle) const
Definition: PieSliceObject.h:20
virtual bool IsCircularShape() const
MSynch::SmartPtr< PieSliceObject > Ptr
Definition: PieSliceObject.h:77
Definition: PieSliceObject.h:44
float mRadius
Definition: PieSliceObject.h:54
float mEndAngle
Definition: PieSliceObject.h:47
Definition: PieSliceObject.h:25
Definition: PieSliceObject.h:23
Definition: PieSliceObject.h:74
const SliceInfo * GetSliceInfo() const
Definition: PieSliceObject.h:460
Definition: PieSliceObject.h:34
Angle(Int32 iStartAngle=0, Int32 iEndAngle=0)
Definition: PieSliceObject.h:36
Point2D mCenter
Definition: PieSliceObject.h:53
Definition: GraphCollectionObject.h:19
Point2D GetPointByRatio(double iRadiusRatio, bool iSmartLabels=false) const
virtual void GetOptions(Int32 iPropertyId, CComVariant *opValue) const
Definition: PieSliceObject.h:22
bool GetIntersectionAngle(const Angle &irAngle1, const Angle &irAngle2) const
bool mIs2DCircular
Definition: PieSliceObject.h:50
void GetSectorImageMap(const Point2D &irCenter, const Int32 iRadius, const Int32 iStartAngle, const Int32 iEndAngle, ImageMap &iorImageMap) const
void ElementDrawNormalPieTop()
void SetCylinderStart(Int32 iCylinderStart) const
Definition: PieSliceObject.h:440
Definition: PieSliceObject.h:24
Definition: ShapeObject.h:20
virtual void DrawOutLine()
virtual void GetClockwisePolygon(std::vector< Point2D > &orPolygon) const
void SetWhitenOuterBorder(bool iIsWhiten)
Definition: PieSliceObject.h:512
double mScale
Definition: PieSliceObject.h:51
void SetIsNeedInnerStrokeForConsectiveSlcie(bool iStroke)
Definition: PieSliceObject.h:490
void GetLeaderLineStartPoint(Point2D &orPoint) const
bool mIsRingPie
Definition: PieSliceObject.h:49
virtual void Draw() const
#define Int32
Definition: BasicTypes.h:20
void SetOutLineInfo(bool iIsConsectiveOutline, bool iIsHighLightStartAngelEdge, bool iIsHighLightEndAngleEdge)
Definition: PieSliceObject.h:505
Int32 GetAngleIndex() const
Definition: PieSliceObject.h:480
Int32 mEndAngle
Definition: PieSliceObject.h:41
BoundingRectType
Definition: PieSliceObject.h:18
Definition: PieSliceElementObject.h:17
Definition: PieSliceObject.h:31
Definition: SmartPtr.h:38
Int32 GetMiddleAngle() const
Definition: PieSliceObject.h:470
void GetSideRectangleImageMap(const Point2D &irCenter, const Int32 iRadius, const Int32 iDepth, const Int32 iAngle, ImageMap &iorImageMap) const
void UpdateRadius(Int32 iRadius, Int32 iMaxRadius)
void ConvertAngle(Angle &iorAngle) const
std::vector< AreaRec * > ImageMap
Definition: ImageMap.h:99
Int32 mDepth
Definition: PieSliceObject.h:56
Definition: PieSliceObject.h:21
void SetCylinderEnd(Int32 iCylinderEnd) const
Definition: PieSliceObject.h:445
Int32 GetMiddleAngleQuadrant() const
Definition: PieSliceObject.h:465
Int32 mStartAngle
Definition: PieSliceObject.h:40
virtual void DrawInnerOutLine()
virtual void GetBoundingRect(Rect2D &orBoundingRect) const
Definition: Msi_ccomvariant.h:24
Definition: PieSliceObject.h:30
SliceInfo(float iStartAngle, float iEndAngle, float iRingPieFactor, bool iIsRingPie, bool iIs2DCircular, double iScale, const Point2D &irCenter, float iRadius, Int32 iMaxRadius, Int32 iDepth, double iPercentContribution=0)
Definition: PieSliceObject.h:58
virtual void FillBevel() const
void SetDrawOutline(bool iIsOutline)
Definition: PieSliceObject.h:455
virtual bool ObjectInRectangle(const Rect2D &irRect)
#define NULL
Definition: Null.h:10
Definition: GraphObjectManager.h:37
void ElementDrawRingPieTop()
float GetStartAngelRadian()
Definition: PieSliceObject.h:495
virtual void GenerateImageMap(ImageMap &iorImageMap)
Use four Int32 values to represent a 2D rectangle.
Definition: Rect2D.h:25
void SetBoundingRectType(BoundingRectType iBoundingRectType) const
Definition: PieSliceObject.h:450
PieSliceObject(const TripleId &irTripleId, GraphObjectManager *ipManager, Int32 iExplode, float iStartAngle, float iEndAngle, float iRingPieFactor, bool iIsRingPie, bool iIs2DCircular, double iScale, const Point2D &irCenter, float iRadius, Int32 iMaxRadius, Int32 iDepth, bool iOneSeries, GraphCollectionObject *ipParentObject=NULL, bool iIsShown=true)