OSDN Git Service

fix build system ofmoflib1 and saisei1
[moflib/moflib.git] / moflib-1.0 / src / mof / Color.hpp
1 #pragma once
2 #include "mof/tstring.hpp"
3 #include "mof/real.hpp"
4
5 namespace mof{
6         typedef unsigned int Color;
7         typedef unsigned char ColorChannel;
8         Color createColor(ColorChannel r , ColorChannel g , ColorChannel b);
9         Color createColor(ColorChannel a , ColorChannel r , ColorChannel g , ColorChannel b);
10         Color createColor(const mof::tstring& code);
11         ColorChannel getRed(const Color& color);
12         ColorChannel getGreen(const Color& color);
13         ColorChannel getBlue(const Color& color);
14         ColorChannel getAlpha(const Color& color);
15         Color blendColor( Color a , Color b , real rate );
16         Color inverseColor( Color color );
17         mof::tstring toColorCode( Color color );
18
19         struct Color4f{
20                 real red;
21                 real green;
22                 real blue;
23                 real alpha;
24
25                 Color4f();
26                 Color4f(real alpha_ , real red_ , real green_ , real blue_);
27                 Color4f( real red_ , real green_ , real blue_);
28                 explicit Color4f(mof::Color color);
29                 mof::Color toColorCode() const;
30
31                 mof::Color4f operator +( const mof::Color4f& rhs ) const ;
32                 mof::Color4f operator -( const mof::Color4f& rhs ) const ;
33         mof::Color4f operator *( const Color4f& rhs ) const;
34
35                 friend mof::Color4f operator *(const Color4f& color , real f);
36                 friend mof::Color4f operator *(real f ,  const mof::Color4f & color);
37             friend std::ostream& operator <<(std::ostream& os , const mof::Color4f& obj );
38
39         };
40
41         
42
43         
44 };