src/rcrt/materials/MirrorMaterial.cpp

Go to the documentation of this file.
00001 #include "MirrorMaterial.h"
00002 
00003 namespace rcrt
00004 {
00005 
00006 MirrorMaterial::MirrorMaterial(const RGBColor& refl):reflectivity(refl)
00007 {
00008 }
00009 
00010 MirrorMaterial::~MirrorMaterial()
00011 {
00012 }
00013 
00014 RGBColor MirrorMaterial::sample(const Vec3D& wOut, const Vec3D& wInc,
00015                 Intersection& is)
00016 {
00017         return 0;
00018 }
00019 
00020 bool MirrorMaterial::hasDiffuse() const
00021 {
00022         return false;
00023 }
00024 
00025 bool MirrorMaterial::hasSpecular() const
00026 {
00027         return true;
00028 }
00029 
00030 bool MirrorMaterial::hasTransmissive() const
00031 {
00032         return false;
00033 }
00034 
00035 RGBColor MirrorMaterial::getEmitted(const Vec3D& wOut, Intersection& is)
00036 {
00037         return 0;
00038 }
00039 
00040 RGBColor MirrorMaterial::sampleDiffuse(const Vec3D& wOut, const Vec3D& wInc, Intersection& is)
00041 {
00042         return 0;
00043 }
00044 
00045 RGBColor MirrorMaterial::sampleSpecular(const Vec3D& wOut, const Vec3D& wInc, Intersection& is)
00046 {
00047         return reflectivity;
00048 }
00049 
00050 bool MirrorMaterial::refracts() const
00051 {
00052         return false;
00053 }
00054 
00055 ScatterEvent MirrorMaterial::scatterPhoton(Intersection& is, Photon* photon)
00056 {
00057         photon->setDir(photon->getDir().reflect(is.getSNormalW()));
00058         photon->setPos(is.getPosition());
00059         photon->scalePower(reflectivity);
00060         return SPECULAR;
00061 }
00062 
00063 
00064 }

Generated on Thu Jan 31 19:26:19 2008 for RenderingCompetitionRayTracer by  doxygen 1.5.3