Mobile API Reference  MicroStrategy 2019
Area3DObject.h
Go to the documentation of this file.
1 //==============================================================================================
2 // FILENAME : Area3DObject.h
3 // AUTHOR : Xin Liu
4 // CREATION : 2009-05-27
5 // Copyright (C) MicroStrategy Incorporated 2009
6 // All Rights Reserved
7 //==============================================================================================
8 
9 #ifndef MSICHART_AREA3DOBJECT_H
10 #define MSICHART_AREA3DOBJECT_H
11 
12 #include "Shape3DObject.h"
13 
14 namespace MsiChart
15 {
17  {
19  APT_FRONT = 2,
20  APT_BACK = 4,
21  };
22 
24  {
25  public:
27 
28  Area3DObject(const TripleId& irTripleId, GraphObjectManager* ipManager,
29  const DPoint3D& irStartDataPoint, const DPoint3D& irEndDataPoint, double iBaseValue, double iAreaThickness, Int32 iAreaPositionType = APT_MIDDLE,
30  GraphCollectionObject* ipParentObject = NULL, bool iHasFill = true);
31 
32  ~Area3DObject();
33 
34  private:
35  void hCalculateIntersectionPoint(const DPoint3D& irStartDataPoint, const DPoint3D& irEndDataPoint, DPoint3D& orIntersectionPoint);
36  void hCalculateTopFacePoints(const DPoint3D& irStartDataPoint, const DPoint3D& irEndDataPoint);
37  void hAddFaces();
38 
39  void hGetFront(Polygon3D& orFront);
40  void hGetBack(Polygon3D& orBack);
41  void hGetTop(Polygon3D& orTop);
42  void hGetFirstTop(Polygon3D& orFirstTop);
43  void hGetSecondTop(Polygon3D& orSecondTop);
44  void hGetBottom(Polygon3D& orBottom);
45  void hGetFirstBottom(Polygon3D& orFirstBottom);
46  void hGetSecondBottom(Polygon3D& orSecondBottom);
47  void hGetLeftSide(Polygon3D &orLeftSide);
48  void hGetRightSide(Polygon3D &orRightSide);
49  void hGetFrontDirection(DVector3D& orFrontDirection);
50  void hGetRightDirection(DVector3D& orRightDirection);
51  void hGetTopDirection(DVector3D& orTopDirection);
52  void hGetBottomDirection(DVector3D& orBottomDirection);
53 
54  DPoint3D mStartLeftPoint;
55  DPoint3D mStartRightPoint;
56  DPoint3D mEndLeftPoint;
57  DPoint3D mEndRightPoint;
58  DPoint3D mIntersectionLeftPoint;
59  DPoint3D mIntersectionRightPoint;
60  double mBaseValue;
61  double mAreaThickness;
62  Int32 mAreaPositionType;
63 
64  bool mIsSplit;
65  };
66 }
67 
68 #endif
This is the base class of 3D graph objects.
Definition: Shape3DObject.h:20
Definition: GraphCollectionObject.h:19
MSynch::SmartPtr< Area3DObject > Ptr
Definition: Area3DObject.h:26
AreaPositionType
Definition: Area3DObject.h:16
std::vector< DPoint3D > Polygon3D
Definition: Shape3DObject.h:17
Definition: Area3DObject.h:18
#define Int32
Definition: BasicTypes.h:20
Definition: Area3DObject.h:23
Area3DObject(const TripleId &irTripleId, GraphObjectManager *ipManager, const DPoint3D &irStartDataPoint, const DPoint3D &irEndDataPoint, double iBaseValue, double iAreaThickness, Int32 iAreaPositionType=APT_MIDDLE, GraphCollectionObject *ipParentObject=NULL, bool iHasFill=true)
Definition: Area3DObject.h:20
Definition: SmartPtr.h:38
Definition: ABLPlot.h:21
Definition: Area3DObject.h:19
#define NULL
Definition: Null.h:10
Definition: GraphObjectManager.h:37
Definition: Common.h:397