// -*- C++ -*-
#ifndef RICOLORXYZS_H
#define RICOLORXYZS_H
/* Copyright 1996 
 * Mon Jul 27 14:49:46 1998  Brian Edward Smits  (bes@phoenix.cs.utah.edu)
 * 
 * RiColorXYZS.H
 * 
 *	
 * 
 * $Id: RiColorXYZV.H,v 1.1 1998/08/12 20:23:08 bes Exp $ 
 * 
 */
#ifndef RICOMMON_H
#include <RiCommon.H>
#endif

#ifndef RISPECTRUM_H
#include <RiSpectrum.H>
#endif

/***************************************************************
CLASS
    RiColorXYZV
     Holds data in the XYZ colorspace, with the addition of
     a scotopic value.

DESCRIPTION
     <Detailed description with any warnings>

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

class RiColorXYZV {
  public:
				// GROUP: Constructors and assignment
				//// Default Constructor
    RiColorXYZV();
				//// Default Constructor
				// Note that passing in 0 for v may result in unusual conversion to rgb
    RiColorXYZV(RiReal x, RiReal y, RiReal z, RiReal v = 0);
				//// Constructor from RiSpectrum
    RiColorXYZV(const RiSpectrum &in);
				// GROUP: Accessors
				////
    RiReal	X() const;
				////
    RiReal	Y() const;
				////
    RiReal	Z() const;
				////
    RiReal	V() const;
				// GROUP: Members
				////
    RiColorXYZV operator+(const RiColorXYZV &rhs) const;
				////
    RiColorXYZV operator-(const RiColorXYZV &rhs) const;
				////
    RiColorXYZV operator*(RiReal rhs) const;
				////
    RiColorXYZV operator/(RiReal rhs) const;
    
				////
    const RiColorXYZV &operator+=(const RiColorXYZV &rhs);
				////
    const RiColorXYZV &operator-=(const RiColorXYZV &rhs);
				////
    const RiColorXYZV &operator*=(RiReal rhs);
				////
    const RiColorXYZV &operator/=(RiReal rhs);  
  private:
				//// data array
    RiReal d[4];
};



#endif /* RICOLORXYZS_H */

