Jump To …

THREEx.LogoTurtle.js

/** @namespace */
var THREEx	= THREEx	|| {};

TODO should those relative polar coord function be INSIDE path already ?

THREEx.LogoTurtle	= function()
{
	this._penX	= 0;
	this._penY	= 0;
	this._angle	= 0;
	this._vectors	= [];
}

THREEx.LogoTurtle.create	= function()
{
	return new THREEx.LogoTurtle()
}

THREEx.LogoTurtle.prototype.turn	= function(rotation)
{
	this._angle	+= rotation;
	return this;	
}

THREEx.LogoTurtle.prototype.moveTo	= function(x, y)
{
	this._penX	= x * Math.cos(this._angle) - y * Math.sin(this._angle);
	this._penY	= x * Math.sin(this._angle) + y * Math.cos(this._angle);
	this._vectors.push( new THREE.Vector2(this._penX, this._penY) );
	return this;
}

THREEx.LogoTurtle.prototype.forward	= function(distance)
{
	this._penX	+= Math.cos(this._angle) * distance;
	this._penY	+= Math.sin(this._angle) * distance;

	this._vectors.push( new THREE.Vector2(this._penX, this._penY) );	
	
	return this;
}

THREEx.LogoTurtle.prototype.points	= function()
{
	return this._vectors;
}