Frapper  1.0a
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
HairRenderNode::DualScatterMath Class Reference

#include <DualScatterMath.h>

Public Member Functions

 DualScatterMath (const unsigned int tableSize=128)
 
 ~DualScatterMath ()
 
unsigned int getTablesize () const
 

Private Types

typedef float(DualScatterMath::* funcPtr )(float, float)
 

Private Member Functions

float GToR (const float grad)
 
float g (float x, float variance)
 
float S (funcPtr f, const float a, const float b, int n, const float c)
 Computes the integral using the Simpson rule.
 
float M_X (const float alpha, const float beta, const float theta)
 
float SM_X (const float alpha, const float beta, const float a, const float b)
 
float N_R (const float phi, float empty=0)
 
float N_TT (const float phi, const float gamma)
 
float N_TRT (const float phi, const float gamma)
 
Ogre::ColourValue f_R (const float theta, const float I, const float phi, Ogre::ColourValue &colour)
 
Ogre::ColourValue f_TT (const float theta, const float I, const float phi, Ogre::ColourValue &colour)
 
Ogre::ColourValue f_TRT (const float theta, const float I, const float phi, Ogre::ColourValue &colour)
 
Ogre::ColourValue DualScatterMath::f_s (const float theta, const float phi, const float I_R, const float I_TT, const float I_TRT, const float I_G, Ogre::ColourValue &colour_R, Ogre::ColourValue &colour_TT, Ogre::ColourValue &colour_TRT)
 
Ogre::ColourValue alpha_fb (const float phi, const float from, const float to)
 
Ogre::ColourValue beta_fb (const float phi, const float from, const float to)
 
Ogre::ColourValue SX_f_s (const float theta, const float from, const float to)
 
Ogre::ColourValue a_fb (const float theta, const float from, const float to)
 
Ogre::ColourValue A_b (const float theta)
 
Ogre::ColourValue delta_b (const float theta)
 
Ogre::ColourValue sigma_b (const float theta)
 
float * fillN_gR ()
 
float * fillN_gTT ()
 
float * fillN_gTRT ()
 
Ogre::ColourValue * fill_A_b (const float from, const float to)
 
Ogre::ColourValue * fill_delta_b (const float from, const float to)
 
Ogre::ColourValue * fill_sigma_b (const float from, const float to)
 

Private Attributes

float m_eta
 
float m_sigma_a
 
float m_a
 
Ogre::ColourValue m_C_R
 
Ogre::ColourValue m_C_TT
 
Ogre::ColourValue m_C_TRT
 
float m_I_R
 
float m_I_TT
 
float m_I_TRT
 
float m_I_G
 
float m_alpha_R
 
float m_alpha_TT
 
float m_alpha_TRT
 
float m_beta_R
 
float m_beta_TT
 
float m_beta_TRT
 
float m_gamma_TT
 
float m_gamma_G
 
float m_k_g
 
float m_w_c
 
float m_dEta
 
float m_dh_M
 
Ogre::ColourValue * m_A_b
 
Ogre::ColourValue * m_delta_b
 
Ogre::ColourValue * m_sigma_b
 
float * m_N_gR
 
float * m_N_gTT
 
float * m_N_gTRT
 
unsigned int m_tableSize
 

Member Typedef Documentation

typedef float(DualScatterMath::* HairRenderNode::DualScatterMath::funcPtr)(float, float)
private

Constructor & Destructor Documentation

HairRenderNode::DualScatterMath::DualScatterMath ( const unsigned int  tableSize = 128)
HairRenderNode::DualScatterMath::~DualScatterMath ( )

Member Function Documentation

unsigned int HairRenderNode::DualScatterMath::getTablesize ( ) const
float HairRenderNode::DualScatterMath::GToR ( const float  grad)
inlineprivate
float HairRenderNode::DualScatterMath::g ( float  x,
float  variance 
)
private
float HairRenderNode::DualScatterMath::S ( funcPtr  f,
const float  a,
const float  b,
int  n,
const float  c 
)
inlineprivate

Computes the integral using the Simpson rule.

Parameters
fThe pointer to the function f(x).
aThe intervall start value
bThe intervall end value
fThe pointer to the function f(x, c).
aThe intervall start value
bThe intervall end value
float HairRenderNode::DualScatterMath::M_X ( const float  alpha,
const float  beta,
const float  theta 
)
inlineprivate
float HairRenderNode::DualScatterMath::SM_X ( const float  alpha,
const float  beta,
const float  a,
const float  b 
)
inlineprivate
float HairRenderNode::DualScatterMath::N_R ( const float  phi,
float  empty = 0 
)
inlineprivate
float HairRenderNode::DualScatterMath::N_TT ( const float  phi,
const float  gamma 
)
inlineprivate
float HairRenderNode::DualScatterMath::N_TRT ( const float  phi,
const float  gamma 
)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::f_R ( const float  theta,
const float  I,
const float  phi,
Ogre::ColourValue &  colour 
)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::f_TT ( const float  theta,
const float  I,
const float  phi,
Ogre::ColourValue &  colour 
)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::f_TRT ( const float  theta,
const float  I,
const float  phi,
Ogre::ColourValue &  colour 
)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::DualScatterMath::f_s ( const float  theta,
const float  phi,
const float  I_R,
const float  I_TT,
const float  I_TRT,
const float  I_G,
Ogre::ColourValue &  colour_R,
Ogre::ColourValue &  colour_TT,
Ogre::ColourValue &  colour_TRT 
)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::alpha_fb ( const float  phi,
const float  from,
const float  to 
)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::beta_fb ( const float  phi,
const float  from,
const float  to 
)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::SX_f_s ( const float  theta,
const float  from,
const float  to 
)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::a_fb ( const float  theta,
const float  from,
const float  to 
)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::A_b ( const float  theta)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::delta_b ( const float  theta)
inlineprivate
Ogre::ColourValue HairRenderNode::DualScatterMath::sigma_b ( const float  theta)
inlineprivate
float * HairRenderNode::DualScatterMath::fillN_gR ( )
private
float * HairRenderNode::DualScatterMath::fillN_gTT ( )
private
float * HairRenderNode::DualScatterMath::fillN_gTRT ( )
private
Ogre::ColourValue * HairRenderNode::DualScatterMath::fill_A_b ( const float  from,
const float  to 
)
private
Ogre::ColourValue * HairRenderNode::DualScatterMath::fill_delta_b ( const float  from,
const float  to 
)
private
Ogre::ColourValue * HairRenderNode::DualScatterMath::fill_sigma_b ( const float  from,
const float  to 
)
private

Member Data Documentation

float HairRenderNode::DualScatterMath::m_eta
private
float HairRenderNode::DualScatterMath::m_sigma_a
private
float HairRenderNode::DualScatterMath::m_a
private
Ogre::ColourValue HairRenderNode::DualScatterMath::m_C_R
private
Ogre::ColourValue HairRenderNode::DualScatterMath::m_C_TT
private
Ogre::ColourValue HairRenderNode::DualScatterMath::m_C_TRT
private
float HairRenderNode::DualScatterMath::m_I_R
private
float HairRenderNode::DualScatterMath::m_I_TT
private
float HairRenderNode::DualScatterMath::m_I_TRT
private
float HairRenderNode::DualScatterMath::m_I_G
private
float HairRenderNode::DualScatterMath::m_alpha_R
private
float HairRenderNode::DualScatterMath::m_alpha_TT
private
float HairRenderNode::DualScatterMath::m_alpha_TRT
private
float HairRenderNode::DualScatterMath::m_beta_R
private
float HairRenderNode::DualScatterMath::m_beta_TT
private
float HairRenderNode::DualScatterMath::m_beta_TRT
private
float HairRenderNode::DualScatterMath::m_gamma_TT
private
float HairRenderNode::DualScatterMath::m_gamma_G
private
float HairRenderNode::DualScatterMath::m_k_g
private
float HairRenderNode::DualScatterMath::m_w_c
private
float HairRenderNode::DualScatterMath::m_dEta
private
float HairRenderNode::DualScatterMath::m_dh_M
private
Ogre::ColourValue* HairRenderNode::DualScatterMath::m_A_b
private
Ogre::ColourValue* HairRenderNode::DualScatterMath::m_delta_b
private
Ogre::ColourValue* HairRenderNode::DualScatterMath::m_sigma_b
private
float* HairRenderNode::DualScatterMath::m_N_gR
private
float* HairRenderNode::DualScatterMath::m_N_gTT
private
float* HairRenderNode::DualScatterMath::m_N_gTRT
private
unsigned int HairRenderNode::DualScatterMath::m_tableSize
private

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