All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DirectionIndependentCameraFrustumStreamingVolume.h
1 // Copyright Wrld Ltd (2012-2022), All Rights Reserved
2 
3 #pragma once
4 
5 #include "CameraFrustumStreamingVolume.h"
6 
7 namespace Eegeo
8 {
9  namespace Streaming
10  {
12  {
13  public:
15  const std::vector<double>& lodRefinementAltitudes,
16  int deepestLevelForAltitudeLodRefinement,
17  const Rendering::EnvironmentFlatteningService& environmentFlatteningService);
18 
19  bool IntersectsKey(const MortonKey& key,
20  bool& canRefineIntersectedKey,
21  double& intersectedNodeDepthSortSignedDistance) override;
22 
23  void updateStreamingVolume(Eegeo::dv3 ecefCentre,
24  const std::vector<Geometry::Plane>& frustumPlanes,
25  float fovRadians) override;
26 
27  bool intersectsOriginRelativeSphere(float sphereRadius, const v3& sphereCentreRelativePos) override;
28 
29  protected:
30  bool intersectsUprightCylinder(double cylinderRadius,
31  double cylinderHeight,
32  double cylinderBaseCentreX,
33  double cylinderBaseCentreY,
34  double cylinderBaseCentreZ) override;
35 
36  float m_frustumRadius;
37  };
38  }
39 }