###############
ISoftRayContext
###############

.. cpp:namespace:: RED::ISoftRayContext

.. default-domain:: cpp

Functions
=========

====================================== ==============================================================================================================================================================================================================================================================================================================================================================================================
:doc:`classRED_1_1CID`                 :cpp:func:`GetClassID <static RED::CID RED::ISoftRayContext::GetClassID()>`                                                                                                                                                                                                                                                                                                                   
void                                   :cpp:func:`GetPixelCoordinates <virtual void RED::ISoftRayContext::GetPixelCoordinates(double oPixel[2]) const =0>`                                                                                                                                                                                                                                                                           
int                                    :cpp:func:`GetDepth <virtual int RED::ISoftRayContext::GetDepth() const =0>`                                                                                                                                                                                                                                                                                                                  
int                                    :cpp:func:`GetThreadID <virtual int RED::ISoftRayContext::GetThreadID() const =0>`                                                                                                                                                                                                                                                                                                            
void                                   :cpp:func:`Interpolate <virtual void RED::ISoftRayContext::Interpolate(double oInterpolated[4], const RED::RenderCode &iRenderCode, RED_VSH_INPUT iChannel) const =0>`                                                                                                                                                                                                                        
void                                   :cpp:func:`Interpolate <virtual void RED::ISoftRayContext::Interpolate(double oInterpolated[4], RED::MESH_CHANNEL iMeshChannel) const =0>`                                                                                                                                                                                                                                                    
void                                   :cpp:func:`GetWCSHit <virtual void RED::ISoftRayContext::GetWCSHit(double oWCSHit[4]) const =0>`                                                                                                                                                                                                                                                                                              
void                                   :cpp:func:`GetWCSNormal <virtual void RED::ISoftRayContext::GetWCSNormal(double oWCSNormal[4], const RED::RenderCode &iRenderCode, RED_VSH_INPUT iChannel=RED_VSH_NORMAL) const =0>`                                                                                                                                                                                                          
void                                   :cpp:func:`GetWCSTangent <virtual void RED::ISoftRayContext::GetWCSTangent(double oWCSTangent[4], const RED::RenderCode &iRenderCode, RED_VSH_INPUT iChannel=RED_VSH_COLOR) const =0>`                                                                                                                                                                                                        
void                                   :cpp:func:`GetWCSIncoming <virtual void RED::ISoftRayContext::GetWCSIncoming(double oWCSIncoming[4]) const =0>`                                                                                                                                                                                                                                                                               
bool                                   :cpp:func:`HasDifferentials <virtual bool RED::ISoftRayContext::HasDifferentials() const =0>`                                                                                                                                                                                                                                                                                                 
void                                   :cpp:func:`GetWCSDifferentials <virtual void RED::ISoftRayContext::GetWCSDifferentials(double oWCSdPdX[4], double oWCSdPdY[4]) const =0>`                                                                                                                                                                                                                                                     
double                                 :cpp:func:`GetNormalFacing <virtual double RED::ISoftRayContext::GetNormalFacing() const =0>`                                                                                                                                                                                                                                                                                                 
void                                   :cpp:func:`GetPrimaryPixelFrustum <virtual void RED::ISoftRayContext::GetPrimaryPixelFrustum(double oFrustumPlanes[24]) const =0>`                                                                                                                                                                                                                                                            
void                                   :cpp:func:`GetHitInterval <virtual void RED::ISoftRayContext::GetHitInterval(double &oTMin, double &oTMax) const =0>`                                                                                                                                                                                                                                                                         
int                                    :cpp:func:`GetObjectUID <virtual int RED::ISoftRayContext::GetObjectUID() const =0>`                                                                                                                                                                                                                                                                                                          
int                                    :cpp:func:`GetElementUID <virtual int RED::ISoftRayContext::GetElementUID() const =0>`                                                                                                                                                                                                                                                                                                        
int                                    :cpp:func:`GetObjectElementNumber <virtual int RED::ISoftRayContext::GetObjectElementNumber() const =0>`                                                                                                                                                                                                                                                                                      
void                                   :cpp:func:`GetObjectElementIndices <virtual void RED::ISoftRayContext::GetObjectElementIndices(int &oI0, int &oI1, int &oI2) const =0>`                                                                                                                                                                                                                                                       
void                                   :cpp:func:`GetObjectElementUVs <virtual void RED::ISoftRayContext::GetObjectElementUVs(double &oU, double &oV) const =0>`                                                                                                                                                                                                                                                                     
void                                   :cpp:func:`GetObjectElementWCS <virtual void RED::ISoftRayContext::GetObjectElementWCS(double oP0[4], double oP1[4], double oP2[4]) const =0>`                                                                                                                                                                                                                                                
:doc:`classRED_1_1Object` *            :cpp:func:`GetObjectShape <virtual RED::Object * RED::ISoftRayContext::GetObjectShape() const =0>`                                                                                                                                                                                                                                                                                            
const :doc:`classRED_1_1ShapePath` &   :cpp:func:`GetObjectShapePath <virtual const RED::ShapePath & RED::ISoftRayContext::GetObjectShapePath() const =0>`                                                                                                                                                                                                                                                                           
:doc:`classRED_1_1Object` *            :cpp:func:`GetObjectMaterial <virtual RED::Object * RED::ISoftRayContext::GetObjectMaterial() const =0>`                                                                                                                                                                                                                                                                                      
:doc:`classRED_1_1Matrix` *            :cpp:func:`GetObjectMatrix <virtual RED::Matrix * RED::ISoftRayContext::GetObjectMatrix() const =0>`                                                                                                                                                                                                                                                                                          
:doc:`classRED_1_1LayerSet` *          :cpp:func:`GetObjectLayerSet <virtual RED::LayerSet * RED::ISoftRayContext::GetObjectLayerSet() const =0>`                                                                                                                                                                                                                                                                                    
double                                 :cpp:func:`GetIOR <virtual double RED::ISoftRayContext::GetIOR() const =0>`                                                                                                                                                                                                                                                                                                                   
double                                 :cpp:func:`GetNextIOR <virtual double RED::ISoftRayContext::GetNextIOR() const =0>`                                                                                                                                                                                                                                                                                                           
bool                                   :cpp:func:`IsIOROnly <virtual bool RED::ISoftRayContext::IsIOROnly() const =0>`                                                                                                                                                                                                                                                                                                               
bool                                   :cpp:func:`IsShadingNormalOnly <virtual bool RED::ISoftRayContext::IsShadingNormalOnly() const =0>`                                                                                                                                                                                                                                                                                           
bool                                   :cpp:func:`IsNoBumpNormalOnly <virtual bool RED::ISoftRayContext::IsNoBumpNormalOnly() const =0>`                                                                                                                                                                                                                                                                                             
bool                                   :cpp:func:`IsTangentOnly <virtual bool RED::ISoftRayContext::IsTangentOnly() const =0>`                                                                                                                                                                                                                                                                                                       
bool                                   :cpp:func:`IsGlossinessAnglesOnly <virtual bool RED::ISoftRayContext::IsGlossinessAnglesOnly() const =0>`                                                                                                                                                                                                                                                                                     
void                                   :cpp:func:`GetReflectionColor <virtual void RED::ISoftRayContext::GetReflectionColor(double oColor[4]) const =0>`                                                                                                                                                                                                                                                                             
void                                   :cpp:func:`GetReflectionDistance <virtual void RED::ISoftRayContext::GetReflectionDistance(double &oDistance) const =0>`                                                                                                                                                                                                                                                                      
void                                   :cpp:func:`GetRefractionColor <virtual void RED::ISoftRayContext::GetRefractionColor(double oColor[4]) const =0>`                                                                                                                                                                                                                                                                             
void                                   :cpp:func:`GetRefractionDistance <virtual void RED::ISoftRayContext::GetRefractionDistance(double &oDistance) const =0>`                                                                                                                                                                                                                                                                      
void                                   :cpp:func:`GetCutoff <virtual void RED::ISoftRayContext::GetCutoff(double oCutoff[4]) const =0>`                                                                                                                                                                                                                                                                                              
:cpp:enumerator:`~RED_RC`              :cpp:func:`GetShadowColor <virtual RED_RC RED::ISoftRayContext::GetShadowColor(double oShadowColor[4], const RED::ISoftLight *iLight, const RED::ISoftRenderingContext &iRenderCtx, const double *iSamplePos=NULL, int iSampleTID=0, bool iForceTwoSided=false) const =0>`                                                                                                                    
void                                   :cpp:func:`GetGlossySampleDir <virtual void RED::ISoftRayContext::GetGlossySampleDir(double oSampleDir[3]) const =0>`                                                                                                                                                                                                                                                                         
void                                   :cpp:func:`SampleTexture <virtual void RED::ISoftRayContext::SampleTexture(double oColor[4], int iColorBind, int iTextureBind, RED_VSH_INPUT iUVChannel, int iUVMatrixBind, const RED::ISoftShaderContext &iShaderContext, const RED::ISoftRenderingContext &iRenderContext) const =0>`                                                                                                       
void                                   :cpp:func:`SampleTexture <virtual void RED::ISoftRayContext::SampleTexture(double oColor[4], int iTextureBind, RED_VSH_INPUT iUVChannel, int iUVMatrixBind, const double iColor[4], const RED::ISoftShaderContext &iShaderContext, const RED::ISoftRenderingContext &iRenderContext) const =0>`                                                                                               
void                                   :cpp:func:`SampleTexture <virtual void RED::ISoftRayContext::SampleTexture(double oColor[4], int iColorBind, int iTextureBind, const double iUV[4], const RED::Matrix &iUVMatrix, const RED::ISoftShaderContext &iShaderContext, const RED::ISoftRenderingContext &iRenderContext) const =0>`                                                                                                 
void                                   :cpp:func:`SampleTexture <virtual void RED::ISoftRayContext::SampleTexture(double oColor[4], const RED::Object *iTexture, RED::MESH_CHANNEL iUVChannel, const RED::Matrix &iUVMatrix, const RED::ISoftShaderContext &iShaderContext, const RED::ISoftRenderingContext &iRenderContext) const =0>`                                                                                             
void                                   :cpp:func:`SampleTexture <virtual void RED::ISoftRayContext::SampleTexture(double oColor[4], const RED::Object *iTexture, const double iUV[4], const RED::ISoftShaderContext &iShaderContext, const RED::ISoftRenderingContext &iRenderContext) const =0>`                                                                                                                                    
void                                   :cpp:func:`SampleNormalMap <virtual void RED::ISoftRayContext::SampleNormalMap(double oBumpNormalWCS[4], double oNormalWCS[4], double oTangentWCS[4], int iTextureBind, RED_VSH_INPUT iUVChannel, RED_VSH_INPUT iNormalChannel, RED_VSH_INPUT iTangentChannel, int iUVMatrixBind, const RED::ISoftShaderContext &iShaderContext, const RED::ISoftRenderingContext &iRenderContext) const =0>` 
void                                   :cpp:func:`SampleFontGlyphTexture <virtual void RED::ISoftRayContext::SampleFontGlyphTexture(double oColor[4], RED_VSH_INPUT iUVChannel, const RED::ISoftShaderContext &iShaderContext, const RED::ISoftRenderingContext &iRenderContext) const =0>`                                                                                                                                          
void                                   :cpp:func:`SampleBackgroundImage <virtual void RED::ISoftRayContext::SampleBackgroundImage(double oColor[4], const double iE[4], const double iP[4], bool iDirect, const RED::ISoftRenderingContext &iRenderContext) const =0>`                                                                                                                                                               
:cpp:enumerator:`~RED_RC`              :cpp:func:`PrepareLights <virtual RED_RC RED::ISoftRayContext::PrepareLights(const double *iPoint, const double *iNormal, bool iIncludeBakedLights, const RED::ISoftRenderingContext &iRenderContext) const =0>`                                                                                                                                                                              
const :doc:`classRED_1_1ISoftLight` *  :cpp:func:`GetLight <virtual const RED::ISoftLight * RED::ISoftRayContext::GetLight(const RED::ISoftRenderingContext &iRenderContext) const =0>`                                                                                                                                                                                                                                              
const :doc:`classRED_1_1Object` *      :cpp:func:`GetGeometryDatabase <virtual const RED::Object * RED::ISoftRayContext::GetGeometryDatabase() const =0>`                                                                                                                                                                                                                                                                            
bool                                   :cpp:func:`IsComputingGI <virtual bool RED::ISoftRayContext::IsComputingGI() const =0>`                                                                                                                                                                                                                                                                                                       
const :doc:`classRED_1_1Object` *      :cpp:func:`GetCamera <virtual const RED::Object * RED::ISoftRayContext::GetCamera() const =0>`                                                                                                                                                                                                                                                                                                
const :doc:`classRED_1_1Matrix` *      :cpp:func:`GetMatrix <virtual const RED::Matrix * RED::ISoftRayContext::GetMatrix() const =0>`                                                                                                                                                                                                                                                                                                
const :doc:`classRED_1_1Matrix` *      :cpp:func:`GetInverseTransposeMatrix <virtual const RED::Matrix * RED::ISoftRayContext::GetInverseTransposeMatrix() const =0>`                                                                                                                                                                                                                                                                
double                                 :cpp:func:`RandF <virtual double RED::ISoftRayContext::RandF() const =0>`                                                                                                                                                                                                                                                                                                                     
unsigned int                           :cpp:func:`RandI <virtual unsigned int RED::ISoftRayContext::RandI() const =0>`                                                                                                                                                                                                                                                                                                               
bool                                   :cpp:func:`IsGICache <virtual bool RED::ISoftRayContext::IsGICache() const =0>`                                                                                                                                                                                                                                                                                                               
:cpp:enumerator:`~RED_RC`              :cpp:func:`EstimateGI <virtual RED_RC RED::ISoftRayContext::EstimateGI(double oGI[4], const double iPoint[3], const double iNormal[3], unsigned int iRayDepth, const RED::ISoftRenderingContext &iRenderingContext) const =0>`                                                                                                                                                                
:cpp:enumerator:`~RED_RC`              :cpp:func:`EstimateCaustics <virtual RED_RC RED::ISoftRayContext::EstimateCaustics(double oCaustics[4], const double iPoint[3], const double iNormal[3], const RED::ISoftRenderingContext &iRenderingContext) const =0>`                                                                                                                                                                      
bool                                   :cpp:func:`CanApproximateLighting <virtual bool RED::ISoftRayContext::CanApproximateLighting(double oLighting[4], double oIndirectLighting[4], const double iPoint[3], const double iNormal[3], const RED::ISoftRenderingContext &iRenderingContext) const =0>`                                                                                                                               
====================================== ==============================================================================================================================================================================================================================================================================================================================================================================================

.. cpp:namespace:: nullptr

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

.. doxygenclass:: RED::ISoftRayContext
   :project: RED
   :members:
   :undoc-members:



