Mobile API Reference  MicroStrategy 2019
Surface3DObject.h
Go to the documentation of this file.
1 //==============================================================================================
2 // FILENAME : Surface3DObject.h
3 // AUTHOR : Xin Liu
4 // CREATION : 2009-05-25
5 // Copyright (C) MicroStrategy Incorporated 2009
6 // All Rights Reserved
7 //==============================================================================================
8 
9 #ifndef MSICHART_SURFACE3DOBJECT_H
10 #define MSICHART_SURFACE3DOBJECT_H
11 
12 #include "Shape3DObject.h"
13 
14 namespace MsiChart
15 {
17  {
21  };
22 
24  {
25  public:
27 
28  Surface3DObject(const TripleId& irTripleId, GraphObjectManager* ipManager,
29  const std::vector<DPoint3D*>& irStartDataPoints, const std::vector<DPoint3D*>& irEndDataPoints, double iBaseValue, bool iIsLast = false,
30  GraphCollectionObject* ipParentObject = NULL, bool iHasFill = true);
32 
33  private:
34 
35  void hAddSurfaces();
36  void hAddTopSurfaces();
37  void hAddSideFaces();
38  void hAddSections();
39 
40  bool hGetSide(Int32 iIndex, Polygon3D& orSide);
41  void hGetTopSurfaces(Int32 iIndex, Polygon3D& orFirstTopSurface, DVector3D& orFirstNormalDirection, bool& orIsFirstValid
42  , Polygon3D& orSecondTopSurface, DVector3D& orSecondNormalDirection, bool& orIsSecondValid);
43  bool hGetSection(Int32 iIndex, Polygon3D& orSection);
44 
45  void hGetSideNormalDirection(DVector3D& orSideNormalDirection);
46  bool hGetFrontNormalDirection(DVector3D& orFrontNormalDirection);
47  bool hGetBackNormalDirection(DVector3D& orBackNormalDirection);
48 
49  void hCalculateFrontNormalDirection();
50  void hCalculateSideNormalDirection();
51  void hCalculateNonNullDataPointIndex();
52 
53 
54  std::vector<DPoint3D*> mStartDataPoints;
55  std::vector<DPoint3D*> mEndDataPoints;
56  double mBaseValue;
57  bool mIsLast;
58  Int32 mSurfaceType;
59 
60  DVector3D mFrontNormalDirection;
61  DVector3D mSideNormalDirection;
62  Int32 mNonNullDataPointIndex;
63  };
64 }
65 
66 
67 #endif
Definition: Surface3DObject.h:23
This is the base class of 3D graph objects.
Definition: Shape3DObject.h:20
Definition: GraphCollectionObject.h:19
Surface3DObject(const TripleId &irTripleId, GraphObjectManager *ipManager, const std::vector< DPoint3D *> &irStartDataPoints, const std::vector< DPoint3D *> &irEndDataPoints, double iBaseValue, bool iIsLast=false, GraphCollectionObject *ipParentObject=NULL, bool iHasFill=true)
std::vector< DPoint3D > Polygon3D
Definition: Shape3DObject.h:17
Definition: Surface3DObject.h:20
#define Int32
Definition: BasicTypes.h:20
Definition: Surface3DObject.h:18
Definition: SmartPtr.h:38
Definition: ABLPlot.h:21
MSynch::SmartPtr< Surface3DObject > Ptr
Definition: Surface3DObject.h:26
SurfaceType
Definition: Surface3DObject.h:16
#define NULL
Definition: Null.h:10
Definition: GraphObjectManager.h:37
Definition: Surface3DObject.h:19
Definition: Common.h:397