var halfPI = Math.PI / 2,
x, y;
function TextureUvs()
{
this.x0 = 0;
this.y0 = 0;
this.x1 = 0;
this.y1 = 0;
this.x2 = 0;
this.y2 = 0;
this.x3 = 0;
this.y3 = 0;
}
module.exports = TextureUvs;
TextureUvs.prototype.rotate = function (angle)
{
if (!angle)
{
return;
}
// if not a multiple of (PI/2)
if (angle % halfPI)
{
// TODO: Not a multiple of (PI/2)...
}
// shift values for multiples of (PI/2)
else
{
// rotate the uvs by (PI/2) however many times are needed
if (angle > 0)
{
for (var i = angle / halfPI; i > 0; --i)
{
x = this.x3;
y = this.y3;
this.x3 = this.x2;
this.y3 = this.y2;
this.x2 = this.x1;
this.y2 = this.y1;
this.x1 = this.x0;
this.y1 = this.y0;
this.x0 = x;
this.y0 = y;
}
}
// rotate the uvs by -(PI/2) however many times are needed
else
{
for (var i = angle / halfPI; i < 0; ++i)
{
x = this.x0;
y = this.y0;
this.x0 = this.x1;
this.y0 = this.y1;
this.x1 = this.x2;
this.y1 = this.y2;
this.x2 = this.x3;
this.y2 = this.y3;
this.x3 = x;
this.y3 = y;
}
}
}
};