#include "Salamander.h"
#include "StreamData.h"

namespace Salamander
{

defineUniqueId(IStreamData);
IStreamData::IStreamData()
{

}

IStreamData::operator float*() const
{
	// We cast the class to a float*, then dereference it so that we can use the [] operator to advance the 
	// pointer past the internal static Id.
	return &((float*)this)[1];
}

defineUniqueId(StreamVertex);
StreamVertex::StreamVertex(float x, float y, float z) :
	x_(x),
	y_(y),
	z_(z)
{

}

defineUniqueId(StreamCoordinates);
StreamCoordinates::StreamCoordinates(float u, float v) :
	u_(u),
	v_(v)
{

}

defineUniqueId(StreamColour);
StreamColour::StreamColour(float r, float g, float b, float a) :
	r_(r),
	g_(g),
	b_(b),
	a_(a)
{

}

}