// tabulated.cpp*
#include "pbrt.h"
#include "material.h"

// reflection.h is included for writing your own BxDF class
#include "reflection.h"

// BRDFRead.h is included for reading measured brdf
#include "BRDFRead.h"

// Tabulated Class Declarations
class TabulatedBxDF: public BxDF {
public:
	// accomplish these two functions, you can change the prototype of the constructor
	TabulatedBxDF();
	Spectrum f(const Vector &wo,const Vector &wi) const;
private:
};

Spectrum TabulatedBxDF::f(const Vector &wo,const Vector &wi) const
{
	// write your own code here
}


class Tabulated: public Material {
public:
	// Tabulated Public Methods

	// accomplish these two functions
	Tabulated(string bsdfFile);
	BSDF *GetBSDF(const DifferentialGeometry &dgGeom,
	              const DifferentialGeometry &dgShading) const;
private:
};

Tabulated::Tabulated(string bsdfFile) {

}

// Tabulated Method Definitions
BSDF *Tabulated::GetBSDF(const DifferentialGeometry &dgGeom,
		const DifferentialGeometry &dgShading) const {
}
// Plastic Dynamic Creation Routine
extern "C" DLLEXPORT Material * CreateMaterial(const Transform &xform,
		const TextureParams &mp) {
	string bsdfFile = mp.FindString("filename");
	return new Tabulated(bsdfFile);
}
