4 #include <boost/serialization/export.hpp>
5 #include <boost/serialization/nvp.hpp>
6 #include <boost/serialization/version.hpp>
10 //! convienece class for handling opengl colors
16 //! initialize with red, green, blue, alpha
17 Color(float r, float g, float b, float a=1.0);
19 //! set all channels simultaneously
20 void set(float r, float g, float b, float a=1.0);
21 //! return an array of 4 colors (stored by class)
22 const float* const get() const;
32 enum color_channels { RedChannel, GreenChannel, BlueChannel, AlphaChannel };
33 friend bool operator==(const Color&, const Color&);
34 friend std::ostream& operator<<(std::ostream&, const Color&);
40 friend class boost::serialization::access;
41 template<class Archive>
42 void serialize(Archive& ar, const unsigned int /*version*/) {
43 ar & boost::serialization::make_nvp("red", colors[RedChannel]);
44 ar & boost::serialization::make_nvp("green", colors[GreenChannel]);
45 ar & boost::serialization::make_nvp("blue", colors[BlueChannel]);
46 ar & boost::serialization::make_nvp("alpha", colors[AlphaChannel]);
49 BOOST_CLASS_EXPORT(Color)