#########
IObserver
#########

.. cpp:namespace:: ART::IObserver

.. default-domain:: cpp

Functions
=========

================================== ===========================================================================================================================================================================================
..                                 :cpp:func:`SET_CID <ART::IObserver::SET_CID>`                                                                                                                                              
:doc:`classRED_1_1Object` *        :cpp:func:`GetParentCelestialBody <virtual RED::Object * ART::IObserver::GetParentCelestialBody() const =0>`                                                                               
:cpp:enumerator:`~RED_RC`          :cpp:func:`SetParentCelestialBody <virtual RED_RC ART::IObserver::SetParentCelestialBody(RED::Object *iParent)=0>`                                                                         
const :doc:`classRED_1_1Matrix` &  :cpp:func:`GetParentCelestialBodyTransform <virtual const RED::Matrix & ART::IObserver::GetParentCelestialBodyTransform() const =0>`                                                       
void                               :cpp:func:`GetSight <virtual void ART::IObserver::GetSight(double oSight[3]) const =0>`                                                                                                    
:doc:`classRED_1_1Vector3`         :cpp:func:`GetSight <virtual RED::Vector3 ART::IObserver::GetSight() const =0>`                                                                                                            
void                               :cpp:func:`GetTop <virtual void ART::IObserver::GetTop(double oTop[3]) const =0>`                                                                                                          
:doc:`classRED_1_1Vector3`         :cpp:func:`GetTop <virtual RED::Vector3 ART::IObserver::GetTop() const =0>`                                                                                                                
void                               :cpp:func:`GetRight <virtual void ART::IObserver::GetRight(double oRight[3]) const =0>`                                                                                                    
:doc:`classRED_1_1Vector3`         :cpp:func:`GetRight <virtual RED::Vector3 ART::IObserver::GetRight() const =0>`                                                                                                            
void                               :cpp:func:`GetPosition <virtual void ART::IObserver::GetPosition(double oPosition[3]) const =0>`                                                                                           
:doc:`classRED_1_1Vector3`         :cpp:func:`GetPosition <virtual RED::Vector3 ART::IObserver::GetPosition() const =0>`                                                                                                      
void                               :cpp:func:`GetSphericalPosition <virtual void ART::IObserver::GetSphericalPosition(double oPosition[3]) const =0>`                                                                         
void                               :cpp:func:`GetGPSPosition <virtual void ART::IObserver::GetGPSPosition(double oPosition[3]) const =0>`                                                                                     
const :doc:`classRED_1_1Matrix` &  :cpp:func:`GetViewMatrix <virtual const RED::Matrix & ART::IObserver::GetViewMatrix() const =0>`                                                                                           
:cpp:enumerator:`~RED_RC`          :cpp:func:`SetViewMatrix <virtual RED_RC ART::IObserver::SetViewMatrix(const RED::Matrix &iViewMatrix)=0>`                                                                                 
void                               :cpp:func:`GetNearFar <virtual void ART::IObserver::GetNearFar(double &oDNear, double &oDFar) const =0>`                                                                                   
void                               :cpp:func:`GetNearFarBackground <virtual void ART::IObserver::GetNearFarBackground(double &oDNear, double &oDFar) const =0>`                                                               
double                             :cpp:func:`GetFOV <virtual double ART::IObserver::GetFOV() const =0>`                                                                                                                      
:cpp:enumerator:`~RED_RC`          :cpp:func:`SetFOV <virtual RED_RC ART::IObserver::SetFOV(double iFOV)=0>`                                                                                                                  
double                             :cpp:func:`GetFocusDistance <virtual double ART::IObserver::GetFocusDistance() const =0>`                                                                                                  
:cpp:enumerator:`~RED_RC`          :cpp:func:`SetFocusDistance <virtual RED_RC ART::IObserver::SetFocusDistance(double iFocusDistance)=0>`                                                                                    
:cpp:enumerator:`~RED_RC`          :cpp:func:`SetFromCamera <virtual RED_RC ART::IObserver::SetFromCamera(const RED::Object *iCamera)=0>`                                                                                     
:doc:`classRED_1_1Object` *        :cpp:func:`GetToneMappingCamera <virtual RED::Object * ART::IObserver::GetToneMappingCamera() const =0>`                                                                                   
:cpp:enumerator:`~RED_RC`          :cpp:func:`ExtractLuminanceInformation <virtual RED_RC ART::IObserver::ExtractLuminanceInformation(float &oLuminanceAverage, float &oLuminanceLogAverage, float &oLuminanceMax) const =0>` 
:doc:`classRED_1_1Object` *        :cpp:func:`GetClosestCelestialBody <virtual RED::Object * ART::IObserver::GetClosestCelestialBody() const =0>`                                                                             
:cpp:enumerator:`~RED_RC`          :cpp:func:`OverrideNearFar <virtual RED_RC ART::IObserver::OverrideNearFar(double iNear, double iFar)=0>`                                                                                  
void                               :cpp:func:`ResetNearFarOverride <virtual void ART::IObserver::ResetNearFarOverride()=0>`                                                                                                   
bool                               :cpp:func:`IsNearFarOverride <virtual bool ART::IObserver::IsNearFarOverride() const =0>`                                                                                                  
:cpp:enumerator:`~RED_RC`          :cpp:func:`OverrideNearFarBackground <virtual RED_RC ART::IObserver::OverrideNearFarBackground(double iNear, double iFar)=0>`                                                              
void                               :cpp:func:`ResetNearFarOverrideBackground <virtual void ART::IObserver::ResetNearFarOverrideBackground()=0>`                                                                               
bool                               :cpp:func:`IsNearFarOverrideBackground <virtual bool ART::IObserver::IsNearFarOverrideBackground() const =0>`                                                                              
:cpp:enumerator:`~RED_RC`          :cpp:func:`GetPrimaryRay <virtual RED_RC ART::IObserver::GetPrimaryRay(double oE[3], double oP[3], double iX, double iY, double iZ=1.0) const =0>`                                         
================================== ===========================================================================================================================================================================================

.. cpp:namespace:: nullptr

Detailed Description
====================

.. doxygenclass:: ART::IObserver
   :project: RED
   :members:
   :undoc-members:



