All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Classes | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Eegeo::Streaming::CameraFrustumStreamingVolume Class Reference
Inheritance diagram for Eegeo::Streaming::CameraFrustumStreamingVolume:
Eegeo::Streaming::IStreamingVolume Eegeo::Streaming::DirectionIndependentCameraFrustumStreamingVolume

Classes

struct  CameraFrustumStreamingVolumeQuadtreeNodeVisitParams
 

Public Member Functions

const Geometry::Frustumfrustum () const
 
const Eegeo::dv3origin () const
 
const Eegeo::v3viewDirection () const
 
float fovRadians () const
 
uint inactivePlaneFlags () const
 
 CameraFrustumStreamingVolume (const Eegeo::Streaming::ResourceCeilingProvider &resourceCeilingProvider, const std::vector< double > &lodRefinementAltitudes, int deepestLevelForAltitudeLodRefinement, const Rendering::EnvironmentFlatteningService &environmentFlatteningService)
 
void ResetVolume (const dv3 &ecefInterestPoint)
 
bool IntersectsKey (const MortonKey &key, bool &canRefineIntersectedKey, double &intersectedNodeDepthSortSignedDistance) override
 
virtual void updateStreamingVolume (Eegeo::dv3 ecefCentre, const std::vector< Geometry::Plane > &frustumPlanes, float fovRadians)
 
void setInactivePlaneFlags (uint inactivePlaneFlags)
 
virtual bool intersectsOriginRelativeSphere (float sphereRadius, const v3 &sphereCentreRelativePos)
 
bool intersectsSphere (double sphereRadius, double sphereCentreX, double sphereCentreY, double sphereCentreZ)
 
void setDeepestLevelForAltitudeLodRefinement (int level)
 
void SetForceMaximumRefinement (bool forceMaximumRefinement)
 
bool GetForceMaximumRefinement () const
 

Static Public Attributes

static const int PLANE_FLAGS_ALL = 0x3F
 

Protected Member Functions

virtual bool intersectsUprightCylinder (double cylinderRadius, double cylinderHeight, double cylinderBaseCentreX, double cylinderBaseCentreY, double cylinderBaseCentreZ)
 
bool shouldDivideAtDepth (int nodeDepth, double cellCameraSpaceError)
 
int calculateMostDetailedLodLevel (double cameraAltitude)
 
int calculateLodLevelForAltitude (double altitude)
 
void calculateVisibilityThresholds ()
 

Protected Attributes

const
Eegeo::Streaming::ResourceCeilingProvider
m_resourceCeilingProvider
 
Eegeo::dv3 m_origin
 
Geometry::Frustum m_frustum
 
float m_fovRadians
 
Eegeo::v3 m_viewDirection
 
uint m_inactivePlaneFlags
 
int m_sphereTestsPerformed
 
int m_cylinderTestsPerformed
 
double m_sagittaAtCylinderTestMinNodeDepth
 
float m_ceilingHeight
 
double m_cellRefineDistance
 
double m_depthSortBias
 
int m_deepestLevelForAltitudeLodRefinement
 
Eegeo::dv3 m_cameraWorldPosition
 
Eegeo::dv3 m_cameraWorldPositionNormal
 
double m_viewDependentScale
 
float m_halfCeilingHeight
 
float m_earthRadiusPlusHalfCeiling
 
float m_earthRadiusPlusCeilingSq
 
float m_halfCeilingHeightSq
 
float m_cylinderHeight
 
float m_earthCentreToCylinderBase
 
double m_cameraAltitude
 
double m_cameraSpaceErrorDenominatorMult
 
int m_stackItemIndex
 
int m_currentMostDetailedLodLevel
 
std::vector< double > m_lodRefinementAltitudes
 
std::vector
< CameraFrustumStreamingVolumeQuadtreeNodeVisitParams
m_stack
 
std::vector< double > m_visibilityThresholdsByDepth
 
bool m_forceMaximumRefinement
 
const
Rendering::EnvironmentFlatteningService
m_environmentFlatteningService
 

The documentation for this class was generated from the following files: