#ifndef GFX_IMAGE_COLORSPACE_H__
#define GFX_IMAGE_COLORSPACE_H__

#include "maxon/interface.h"

namespace maxon
{

class ColorProfile;

//----------------------------------------------------------------------------------------
/// Interface class for color spaces.
/// At the moment this class has no elements and is more or less only used as enum.
/// See ColorSpaces registry to iterate through all available color spaces or
/// call a registered color space directly:
/// @code
/// ColorSpace rgbSpace = ColorSpaces::RGBspace;
/// @endcode
//----------------------------------------------------------------------------------------
class ColorSpaceInterface : MAXON_INTERFACE_BASES(ObjectInterface)
{
	MAXON_INTERFACE(ColorSpaceInterface, MAXON_REFERENCE_CONST, "net.maxon.image.interface.colorspace");
public:

	//----------------------------------------------------------------------------------------
	/// Returns the default non-linear color profile (gamma != 1.0) for this color space for 8/16 bit integer formats.
	//----------------------------------------------------------------------------------------
	MAXON_METHOD const ColorProfile& GetDefaultNonlinearColorProfile() const;

	//----------------------------------------------------------------------------------------
	/// Returns the default color profile for this color space for floating point data.
	//----------------------------------------------------------------------------------------
	MAXON_METHOD const ColorProfile& GetDefaultLinearColorProfile() const;
};

// include autogenerated headerfile here
#include "gfx_image_colorspace1.hxx"

// include autogenerated headerfile here
#include "gfx_image_colorspace2.hxx"

}



#endif // GFX_IMAGE_COLORSPACE_H__
