// -*- C++ -*-
#ifndef RICOSINEPOWERLUMINAIRE_H
#define RICOSINEPOWERLUMINAIRE_H

#ifndef RICOMMON_H
#include <RiCommon.H>
#endif

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



/***************************************************************
CLASS
    RiCosinePowerLuminaire
     CosinePower emitting RiMaterial

DESCRIPTION
   The RiCosinePowerLuminaire does not describe reflectance behavior directly.
   Instead it has a pointer to a reflective RiMaterial.

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

class RiCosinePowerLuminaire : public RiMaterial {
  public:
    // GROUP: Constructors and assignment
    //// Constructor
    RiCosinePowerLuminaire(const RiSpectrum &radEx, RiReal expo, RiMaterial *);
    // GROUP: Members
    virtual RiMaterialSamplePointer  GetSample(RiMaterialRegion &);
    virtual bool IsLuminaire() const;
  private:
    RiMaterial *reflectionPtr;
    RiSpectrum radiantExitance;
    RiReal exponent;
};

#endif

