#include "munga.h"
#pragma hdrstop

#include "color.h"
#include "cstr.h"

//~~~~~~~~~~~~~~~~~~~~~~~~~~ RGBColor functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//
//###########################################################################
//###########################################################################
//
void Convert_From_Ascii(const char *str, RGBColor *color)
{
	Check_Pointer(str);
	Check_Signature(color);

	CString parse_string(str);

	Check_Pointer(parse_string.GetNthToken(0));
	color->Red = atof(parse_string.GetNthToken(0));

	Check_Pointer(parse_string.GetNthToken(1));
	color->Green = atof(parse_string.GetNthToken(1));

	Check_Pointer(parse_string.GetNthToken(2));
	color->Blue = atof(parse_string.GetNthToken(2));

	Check(color);
}

//
//###########################################################################
//###########################################################################
//
Logical RGBColor::TestInstance() const
{
	return True;
}


//~~~~~~~~~~~~~~~~~~~~~~~~~~ RGBAColor functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//
//###########################################################################
//###########################################################################
//
void Convert_From_Ascii(const char *str, RGBAColor *color)
{
	Check_Pointer(str);
	Check_Signature(color);

	CString parse_string(str);

	Check_Pointer(parse_string.GetNthToken(0));
	color->Red = atof(parse_string.GetNthToken(0));

	Check_Pointer(parse_string.GetNthToken(1));
	color->Green = atof(parse_string.GetNthToken(1));

	Check_Pointer(parse_string.GetNthToken(2));
	color->Blue = atof(parse_string.GetNthToken(2));

	Check_Pointer(parse_string.GetNthToken(3));
	color->Alpha = atof(parse_string.GetNthToken(3));

	Check(color);
}
