#include "Color.h"

Color::Color(unsigned r, unsigned g, unsigned b, double a)
    : mR(r),
      mG(g),
      mB(b),
      mAlpha(a)
{

}

std::shared_ptr<Color> Color::CreateShared(unsigned r, unsigned g, unsigned b,
        double a )
{
    return std::make_shared<Color>(r, g, b, a);
}

std::unique_ptr<Color> Color::Create(unsigned r, unsigned g, unsigned b,
        double a )
{
    return std::make_unique<Color>(r, g, b, a);
}

std::unique_ptr<Color> Color::Create(const Color& color)
{
    return std::make_unique<Color>(color);
}

unsigned Color::GetR() const
{
    return mR;
}

unsigned Color::GetG() const
{
    return mG;
}

unsigned Color::GetB() const
{
    return mB;
}

double Color::GetAlpha() const
{
    return mAlpha;
}
