// -*- C++ -*-
#ifndef RICOOKTORRANCE_H
#define RICOOKTORRANCE_H
/* Copyright 1998,1999 
 * Wed Aug 18 10:37:28 1999  Brian Smits  (bes@phoenix.cs.utah.edu)
 * 
 * RiCookTorrance.H
 * 
 *	
 * 
 * $Id: RiCookTorrance.H,v 1.1 1999/10/01 18:39:34 bes Exp $ 
 * 
 */
#ifndef RICOMMON_H
#include <RiCommon.H>
#endif

#ifndef RIMATERIAL_H
#include <RiMaterial.H>
#endif

#ifndef RITEXTURE_H
#include <RiTexture.H>
#endif

/***************************************************************
CLASS
    RiCookTorrance
     Cook-Torrance model (as described in Glassner)

DESCRIPTION
    Standard Cook Torrance model.  There is no ideal specular term in this model...

****************************************************************/

class RiCookTorrance : public RiMaterial {
  public:
				// GROUP: Constructors and assignment
				//// Constructor
    RiCookTorrance(const RiScalarTextureProxy &roughness,
	      const RiSpectrumTextureProxy &normalMatte,
	      const RiSpectrumTextureProxy &normalSpecular);
				// GROUP: Members
				////
    virtual RiMaterialSamplePointer  GetSample(RiMaterialRegion &);
  private:
				//// roughness
    RiScalarTextureProxy roughness;
				//// specular and matte reflectances
    RiSpectrumTextureProxy matteR, specularR; 
};


#endif /* RICOOKTORRANCE_H */

