All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ShapeViewBase.h
1 #pragma once
2 
3 #include "IShapeView.h"
4 #include "Types.h"
5 
6 #include <vector>
7 
8 namespace Eegeo
9 {
10  namespace Shapes
11  {
13  {
14  public:
15  ShapeViewBase(const IShapeModel& model,
16  bool isHidden,
17  const dv3& originEcef,
18  const std::vector<dv3>& boundingPointsEcef,
19  const Eegeo::Geometry::SingleSphere& boundingSphere);
20 
21  const IShapeModel& GetShapeModel() const;
22 
23  bool IsHidden() const;
24 
25  void SetHidden(bool isHidden);
26 
27  dv3 GetOriginEcef() const;
28 
29  const Eegeo::Geometry::SingleSphere& GetBoundingSphere() const;
30 
31  bool IsBehindGlobeHorizon(const dv3& viewLocationEcef) const;
32 
33  private:
34  const IShapeModel& m_model;
35  bool m_isHidden;
36  dv3 m_originEcef;
37  std::vector<dv3> m_boundingPointsEcef;
38  Eegeo::Geometry::SingleSphere m_boundingSphere;
39  };
40  }
41 }