All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ShapeViewCuller.h
1 #pragma once
2 
3 #include "Types.h"
4 #include "EegeoShapes.h"
5 #include "Positioning.h"
6 #include "Geometry.h"
7 #include "VectorMath.h"
8 
9 namespace Eegeo
10 {
11  namespace Shapes
12  {
14  {
15  public:
17  const dv3& ecefCameraPosition,
18  const Geometry::Frustum& frustum,
19  const Eegeo::Positioning::IPositioningViewComponent& positioningViewComponent
20  );
21 
22  bool operator()(const IShapeView* pView) const
23  {
24  return !IsPotentiallyVisible(*pView);
25  }
26 
27  private:
28  bool IsPotentiallyVisible(const IShapeView& view) const;
29 
30  bool IsOutsideFrustum(const IShapeView& view) const;
31 
32  const Eegeo::Positioning::IPositioningViewComponent& m_positioningViewComponent;
33  const dv3 m_ecefCameraPosition;
34  const Geometry::Frustum& m_frustum;
35  };
36  }
37 }
38 
39 
40