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

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

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



/***************************************************************
CLASS
    RiDiffuseLuminaire
     Diffuse emitting RiMaterial

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

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

class RiDiffuseLuminaire : public RiMaterial {
  public:
    // GROUP: Constructors and assignment
    //// Constructor-- radEx is radiant Exitance
    RiDiffuseLuminaire(const RiSpectrum &radEx, RiMaterial *);
    // GROUP: Members
    virtual RiMaterialSamplePointer  GetSample(RiMaterialRegion &);
    virtual bool IsLuminaire() const;
  private:
    RiMaterial *reflectionPtr;
    RiSpectrum emittedRadiance;
};

#endif

