RayTracing Class Reference

#include <RayTracing.h>

Inheritance diagram for RayTracing:

ReflectionModel GRAObject PathTracing PhotonMapping PhotonTracing Caustics List of all members.

Public Member Functions

 RayTracing (AutoPtr< LocalReflection > *r=NULL, const Color3f &bg=Color3f(0, 0, 0), Intersector *i=NULL, unsigned d=1, float w=.001, float f=REFR_AIR)
virtual ~RayTracing ()
virtual void setDiffuseBRDF (DiffuseBRDF *b)
virtual void setSpecularBRDF (SpecularBRDF *b)
virtual void setEmittance (Emittance *e)
virtual void setScene (Scene *s)
virtual Color3f * illuminatePoint (PointEnv &)
void setIntersector (Intersector *i)

Protected Types

enum  RefrDir { REFR_DIR_REFLECTION, REFR_DIR_REFRACTION }

Protected Member Functions

void _check_point_of_intersection (PointEnv &) const
MatVisitor * _check_material (SceneGraphObject *, bool)
PointEnv * _cast_ray (const Vector3 &, const Vector3 &)
void _apply_texture (PointEnv &, Color3f &)
void _apply_texture (PointEnv &, Vector3 &)
void _direct_illumination (PointEnv &, MatVisitor &, unsigned, Color3f &)
RefrDir _refraction_dir (PointEnv &, MatVisitor &, bool, Vector3 &)
void _reflection_dir (PointEnv &, Vector3 &)
virtual void _cast_secondary_rays (PointEnv &, unsigned, bool, Color3f &, MatVisitor &)
virtual void _illuminate (PointEnv &, unsigned, bool, Color3f &)

Protected Attributes

AutoPtr< LocalReflection > * _pAReflection
Color3f _background
Intersector * _pIntersector
unsigned _maxDepth
float _minRayWeight
float _defaultMediumRefraction
LocalReflection_pLocalReflection
RayIntExplorer _riExplorer
Texture * _pTexture
Sgi::hash_map< SceneGraphObject::OID,
MatVisitor * > 
_matCache
DiffuseBRDF * _pDiffuseBRDF
SpecularBRDF * _pSpecularBRDF
Emittance * _pEmittance
Scene_pScene

Detailed Description

Definition at line 28 of file RayTracing.h.


Member Enumeration Documentation

enum RefrDir [protected]
 

Enumerator:
REFR_DIR_REFLECTION 
REFR_DIR_REFRACTION 

Definition at line 48 of file RayTracing.h.


Constructor & Destructor Documentation

RayTracing AutoPtr< LocalReflection > *  r = NULL,
const Color3f &  bg = Color3f(0,0,0),
Intersector *  i = NULL,
unsigned  d = 1,
float  w = .001,
float  f = REFR_AIR
[inline]
 

Definition at line 70 of file RayTracing.h.

virtual ~RayTracing  )  [inline, virtual]
 

Definition at line 92 of file RayTracing.h.


Member Function Documentation

void _apply_texture PointEnv &  ,
Vector3 & 
[protected]
 

Definition at line 116 of file RayTracing.cc.

References RayTracing::_pTexture.

void _apply_texture PointEnv &  ,
Color3f & 
[protected]
 

Definition at line 84 of file RayTracing.cc.

References RayTracing::_pTexture.

Referenced by RayTracing::_cast_secondary_rays(), and RayTracing::_direct_illumination().

PointEnv * _cast_ray const Vector3 &  ,
const Vector3 & 
[protected]
 

Definition at line 53 of file RayTracing.cc.

References RayTracing::_pIntersector, ReflectionModel::_pScene, RayTracing::_riExplorer, and Scene::root().

Referenced by RayTracing::_cast_secondary_rays(), and PathTracing::_cast_the_ray().

void _cast_secondary_rays PointEnv &  ,
unsigned  ,
bool  ,
Color3f &  ,
MatVisitor & 
[protected, virtual]
 

Reimplemented in PathTracing, and PhotonMapping.

Definition at line 200 of file RayTracing.cc.

References RayTracing::_apply_texture(), RayTracing::_background, RayTracing::_cast_ray(), RayTracing::_illuminate(), RayTracing::_minRayWeight, RayTracing::_reflection_dir(), RayTracing::_refraction_dir(), and RayTracing::REFR_DIR_REFLECTION.

Referenced by RayTracing::_illuminate().

MatVisitor * _check_material SceneGraphObject *  ,
bool 
[protected]
 

Definition at line 28 of file RayTracing.cc.

References RayTracing::_matCache, ReflectionModel::_pDiffuseBRDF, RayTracing::_pLocalReflection, ReflectionModel::_pSpecularBRDF, RayTracing::_pTexture, ReflectionModel::setDiffuseBRDF(), ReflectionModel::setEmittance(), and ReflectionModel::setSpecularBRDF().

Referenced by RayTracing::_illuminate(), PhotonTracing::_illuminate(), PhotonMapping::_illuminate(), and Caustics::_illuminate().

void _check_point_of_intersection PointEnv &   )  const [protected]
 

Definition at line 6 of file RayTracing.cc.

Referenced by RayTracing::_illuminate(), PhotonTracing::_illuminate(), PhotonMapping::_illuminate(), and Caustics::_illuminate().

void _direct_illumination PointEnv &  ,
MatVisitor &  ,
unsigned  ,
Color3f & 
[protected]
 

Definition at line 148 of file RayTracing.cc.

References RayTracing::_apply_texture(), RayTracing::_pLocalReflection, LocalReflection::illuminatePoint(), and LocalReflection::setActBlockingObjCache().

Referenced by RayTracing::_illuminate(), and PhotonMapping::_illuminate().

void _illuminate PointEnv &  ,
unsigned  ,
bool  ,
Color3f & 
[protected, virtual]
 

Reimplemented in Caustics, PhotonMapping, and PhotonTracing.

Definition at line 294 of file RayTracing.cc.

References RayTracing::_cast_secondary_rays(), RayTracing::_check_material(), RayTracing::_check_point_of_intersection(), RayTracing::_direct_illumination(), and RayTracing::_maxDepth.

Referenced by RayTracing::_cast_secondary_rays(), PathTracing::_cast_the_ray(), and RayTracing::illuminatePoint().

void _reflection_dir PointEnv &  ,
Vector3 & 
[protected]
 

Definition at line 188 of file RayTracing.cc.

Referenced by RayTracing::_cast_secondary_rays(), and PhotonMapping::_sample_specular().

RayTracing::RefrDir _refraction_dir PointEnv &  ,
MatVisitor &  ,
bool  ,
Vector3 & 
[protected]
 

Definition at line 164 of file RayTracing.cc.

References RayTracing::_defaultMediumRefraction, RayTracing::REFR_DIR_REFLECTION, and RayTracing::REFR_DIR_REFRACTION.

Referenced by RayTracing::_cast_secondary_rays(), and PhotonMapping::_sample_specular().

Color3f * illuminatePoint PointEnv &   )  [virtual]
 

Implements ReflectionModel.

Reimplemented in PhotonMapping, and PhotonTracing.

Definition at line 335 of file RayTracing.cc.

References RayTracing::_illuminate(), ReflectionModel::_pDiffuseBRDF, RayTracing::_pIntersector, RayTracing::_pLocalReflection, ReflectionModel::_pScene, ReflectionModel::_pSpecularBRDF, and Scene::root().

Referenced by PhotonMapping::illuminatePoint().

virtual void setDiffuseBRDF DiffuseBRDF *  b  )  [inline, virtual]
 

Reimplemented from ReflectionModel.

Definition at line 98 of file RayTracing.h.

References ReflectionModel::setDiffuseBRDF().

Referenced by PhotonMapShader::distributeEnergy().

virtual void setEmittance Emittance *  e  )  [inline, virtual]
 

Reimplemented from ReflectionModel.

Definition at line 110 of file RayTracing.h.

References ReflectionModel::setEmittance().

void setIntersector Intersector *  i  )  [inline]
 

Definition at line 134 of file RayTracing.h.

virtual void setScene Scene s  )  [inline, virtual]
 

Reimplemented from ReflectionModel.

Reimplemented in PhotonMapping.

Definition at line 116 of file RayTracing.h.

References ReflectionModel::setScene().

Referenced by PhotonMapShader::distributeEnergy(), and PhotonMapping::setScene().

virtual void setSpecularBRDF SpecularBRDF *  b  )  [inline, virtual]
 

Reimplemented from ReflectionModel.

Definition at line 104 of file RayTracing.h.

References ReflectionModel::setSpecularBRDF().

Referenced by PhotonMapShader::distributeEnergy().


Member Data Documentation

Color3f _background [protected]
 

Definition at line 37 of file RayTracing.h.

Referenced by RayTracing::_cast_secondary_rays(), and PathTracing::_cast_the_ray().

float _defaultMediumRefraction [protected]
 

Definition at line 41 of file RayTracing.h.

Referenced by RayTracing::_refraction_dir().

Sgi::hash_map<SceneGraphObject::OID, MatVisitor*> _matCache [protected]
 

Definition at line 46 of file RayTracing.h.

Referenced by RayTracing::_check_material().

unsigned _maxDepth [protected]
 

Definition at line 39 of file RayTracing.h.

Referenced by RayTracing::_illuminate(), PhotonTracing::_illuminate(), and Caustics::_illuminate().

float _minRayWeight [protected]
 

Definition at line 40 of file RayTracing.h.

Referenced by RayTracing::_cast_secondary_rays(), and PathTracing::_cast_the_ray().

AutoPtr<LocalReflection>* _pAReflection [protected]
 

Definition at line 36 of file RayTracing.h.

DiffuseBRDF* _pDiffuseBRDF [protected, inherited]
 

Definition at line 39 of file ReflectionModel.h.

Referenced by PathTracing::_cast_secondary_rays(), RayTracing::_check_material(), PhotonMapping::_sample_diffuse(), RayTracing::illuminatePoint(), PhotonTracing::illuminatePoint(), LocalReflection::illuminatePoint(), PhongReflection::PhongReflection(), and PhongReflection::~PhongReflection().

Emittance* _pEmittance [protected, inherited]
 

Definition at line 41 of file ReflectionModel.h.

Referenced by LocalReflection::illuminatePoint().

Intersector* _pIntersector [protected]
 

Definition at line 38 of file RayTracing.h.

Referenced by RayTracing::_cast_ray(), RayTracing::illuminatePoint(), and PhotonTracing::illuminatePoint().

LocalReflection* _pLocalReflection [protected]
 

Definition at line 42 of file RayTracing.h.

Referenced by RayTracing::_check_material(), RayTracing::_direct_illumination(), and RayTracing::illuminatePoint().

Scene* _pScene [protected, inherited]
 

Definition at line 42 of file ReflectionModel.h.

Referenced by RayTracing::_cast_ray(), LocalReflection::_light_visible(), RayTracing::illuminatePoint(), PhotonTracing::illuminatePoint(), LocalReflection::illuminatePoint(), Radiosity::setScene(), and LocalReflection::setScene().

SpecularBRDF* _pSpecularBRDF [protected, inherited]
 

Definition at line 40 of file ReflectionModel.h.

Referenced by PathTracing::_cast_secondary_rays(), RayTracing::_check_material(), PhotonMapping::_sample_specular(), RayTracing::illuminatePoint(), PhotonTracing::illuminatePoint(), LocalReflection::illuminatePoint(), PhongReflection::PhongReflection(), and PhongReflection::~PhongReflection().

Texture* _pTexture [protected]
 

Definition at line 44 of file RayTracing.h.

Referenced by RayTracing::_apply_texture(), and RayTracing::_check_material().

RayIntExplorer _riExplorer [protected]
 

Definition at line 43 of file RayTracing.h.

Referenced by RayTracing::_cast_ray().


The documentation for this class was generated from the following files:
Generated on Tue Nov 21 15:11:43 2006 for gra by  doxygen 1.4.6