Maria GDK 5.0.0.738
Documentation of native code in develop branch
Loading...
Searching...
No Matches
Maria::ElevationAnalysisObserver Class Referenceabstract

#include <MElevationAnalysisObserver.h>

Inheritance diagram for Maria::ElevationAnalysisObserver:
Maria::LineOfSightObserver Maria::MinMaxElevationObserver

Public Member Functions

 ElevationAnalysisObserver (const std::string &id)
 
bool update (const std::shared_ptr< RasterProjector > &vp, std::shared_ptr< Maria::ElevationData > elevation)
 
void redraw (const STK::Matrix4x4f &mv, STK::ShaderProgram &shader, float opacity)
 
const std::string & getId () const
 
bool isBusy () const
 
void setPosition (const BasicGeoTypes::GeoPos &gp)
 
const BasicGeoTypes::GeoPosgetPosition () const
 
void setRadius (double radius)
 
double getRadius () const
 
void setInnerRadius (double innerRadius)
 
double getInnerRadius () const
 
void setBearing (double bearing)
 
double getBearing () const
 
void setSectorSize (int sectorSize)
 
int getSectorSize () const
 
double getHeightAboveGround () const
 
void setHeightAboveGround (double heightAboveGround)
 
double getTargetHeightAboveGround () const
 
void setTargetHeightAboveGround (double targetHeightAboveGround)
 
bool getUseFovSettings () const
 
void setUseFovSettings (bool useFovSettings)
 
double getFovAzimuth () const
 
void setFovAzimuth (double azimuth)
 
double getFovTilt () const
 
void setFovTilt (double tilt)
 
double getFovWidth () const
 
void setFovWidth (double width)
 
double getFovHeight () const
 
void setFovHeight (double height)
 
bool needsUpdate () const
 
void forceUpdate ()
 
int getMaxRasterSize () const
 
void setMaxRasterSize (int maxRasterSize)
 

Protected Member Functions

bool calcExtents (const std::shared_ptr< Maria::IProjector > &pj, const BasicGeoTypes::GeoPos &pos, double radius, BasicGeoTypes::Extents &ext)
 
virtual void updateTexture (std::shared_ptr< IProjector > pj, const BasicGeoTypes::Extents &ext, const std::shared_ptr< STK::Image > &elevationImage)=0
 
void asyncUpdate (const std::shared_ptr< RasterProjector > &vp, const BasicGeoTypes::GeoPos &gp, double radius, const BasicGeoTypes::Extents &ext, std::shared_ptr< Maria::ElevationData > elevation)
 
void setTextureImage (const std::shared_ptr< STK::Image > &img)
 
bool insideEllipse (double px, double py, double cx, double cy, double rx, double ry, double rx0, double ry0)
 
void cancelUpdate ()
 
void cancelProcessingThread ()
 

Protected Attributes

std::string _id
 
BasicGeoTypes::GeoPos _position
 
BasicGeoTypes::PointDXY _offset
 
double _width
 
double _height
 
double _radius = 0.0
 
double _innerRadius = 0.0
 
double _heightAboveGround = 0.0
 
double _targetHeightAboveGround = 0.0
 
double _bearing = 0.0
 
int _sectorSize = 100
 
bool _useFovSettings = false
 
double _fovAzimuth = 0.0
 
double _fovTilt = 0.0
 
double _fovWidth = 0.0
 
double _fovHeight = 0.0
 
bool _dirty
 
Maria::InterpolationMethod _interpolationMethod
 
std::mutex _mutex
 
std::mutex _texMutex
 
std::shared_ptr< STK::Image_texImage
 
std::shared_ptr< STK::Texture_texture
 
int _texWidth
 
int _texHeight
 
std::atomic< bool > _busy
 
std::atomic< bool > _needsRedraw
 
std::atomic< bool > _cancelProcess
 
std::shared_ptr< std::thread > _updateThread
 
BasicGeoTypes::GeoPos _bmPos
 
double _bmRadius
 
int _maxRasterSize
 

Detailed Description

ElevationAnalysisObserver - Short description. Detailed description.

Member Function Documentation

◆ redraw()

void ElevationAnalysisObserver::redraw ( const STK::Matrix4x4f mv,
STK::ShaderProgram shader,
float  opacity 
)

Redraw analysis bitmap. This method will redraw the bitmap with the transform calculated in the last update().

◆ update()

bool ElevationAnalysisObserver::update ( const std::shared_ptr< RasterProjector > &  vp,
std::shared_ptr< Maria::ElevationData elevation 
)

Update data according to viewport. This method will update the rendering transforms and fire off a new calculation thread for the analysis data if the observer parameters have changed.

Returns
true if we need redraw of the bitmap, false if not.

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