2004-05-29 22:53:40 +02:00
|
|
|
//----------------------------------------------------------------
|
|
|
|
//
|
|
|
|
// Name: SHCoeffs.h
|
|
|
|
// Last Update: 25/11/03
|
|
|
|
// Author: Rich Cross
|
|
|
|
// Contact: rich@0ad.wildfiregames.com
|
|
|
|
//
|
|
|
|
// Description: implementation of 9 component spherical harmonic
|
|
|
|
// lighting
|
|
|
|
//----------------------------------------------------------------
|
|
|
|
|
|
|
|
#ifndef __SHCOEFFS_H
|
|
|
|
#define __SHCOEFFS_H
|
|
|
|
|
|
|
|
#include "Color.h"
|
|
|
|
|
|
|
|
class CSHCoeffs
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
CSHCoeffs();
|
|
|
|
|
|
|
|
void Clear();
|
|
|
|
|
|
|
|
void AddAmbientLight(const RGBColor& color);
|
|
|
|
void AddDirectionalLight(const CVector3D& lightDir,const RGBColor& lightColor);
|
|
|
|
|
2005-09-06 10:25:41 +02:00
|
|
|
void Evaluate(const CVector3D& normal, RGBColor& color, RGBColor mod=RGBColor(1,1,1)) const;
|
2004-05-29 22:53:40 +02:00
|
|
|
|
|
|
|
const RGBColor* GetCoefficients() const { return _data; }
|
|
|
|
|
|
|
|
private:
|
|
|
|
RGBColor _data[9];
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|