00001 #ifndef __WHITEPOINT_H__ 00002 #define __WHITEPOINT_H__ 00003 00004 #include <stdint.h> 00005 #include "processor.h" 00006 00007 namespace coltolum { 00008 00010 class ColourToLuminance : public spectral::Processor 00011 { 00012 public: 00013 ColourToLuminance(); 00014 virtual ~ColourToLuminance(); 00015 00016 protected: 00017 00018 // Get slots & output type. Returns output colour space. 00019 // pairs are <slot id, colour space> 00020 virtual uint32_t GetInterface( 00021 std::list<std::pair<uint32_t, uint32_t> > &mandatory, 00022 std::list<std::pair<uint32_t, uint32_t> > &optional) const; 00023 00024 // Attempt to set an image in a slot. 00025 virtual bool SetImage(uint32_t type, const spectral::Image *img); 00026 00027 // Apply parameters to a processor. 00028 virtual void SetParameters(const spectral::Parameters *); 00029 00030 // Process images. 00031 virtual spectral::Image *Process(void); 00032 00033 // Clear the image in a slot. 00034 virtual void ClearImage(uint32_t type); 00035 00036 protected: 00037 00038 // Populate a spectral::Parameters object. 00039 virtual void GetParameters(spectral::Parameters *) const; 00040 00041 private: 00042 00043 // data members 00044 const spectral::Image *m_picture; 00045 }; 00046 00047 } 00048 00049 #endif