/*===========================================
            Plant and fireworks
              Martin Robinson
                L-turtle plot
===========================================*/

#include "turtle.hpp"




//turtle::turtle()
//{
//}

void turtle::init(turtle &_tortue)
{
    _x = _tortue.x();
    _y = _tortue.y();
    _radian = _tortue.rad();
    _len = _tortue.len();
}

void turtle::init(int x, int y)
{
    _x = x;
    _y = y;
    _radian = 3.1416;
    _len = 20;
}

int turtle::x()
{
    return (int) _x;
}

int turtle::y()
{
    return (int) _y;
}

float turtle::rad()
{
    return _radian;
}

int turtle::len()
{
    return _len;
}

//void turtle::operator += (int length)
//{
//    _x += (sin(_radian) * length);
//    _y += (cos(_radian) * length);
//}

void turtle::rotate (float rad)
{
    _radian += rad;
}

void turtle::forward(float l)
{
    _len += l;
}

void turtle::stroke ()
{
    _x += (sin(_radian) * _len);
    _y += (cos(_radian) * _len);
}

void turtle::resetRad()
{
    _radian = 3.1416;
}

/*//-------------------------------test code-------------------------------
#include "SDL/SDL.h"

int main(int argc, char * argv[])
{
    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_Surface *screen = SDL_SetVideoMode(600, 400, 8, SDL_SWSURFACE);
    SDL_Event event;

    int keypress = 0,
        mx = 0,
        my = 0;
        
    Uint32 brown = SDL_MapRGB( screen->format, 0x66, 0x33, 0x00 ),
           green = SDL_MapRGB( screen->format, 0x00, 0xFF, 0x00 );

    while(!keypress)
    {
        SDL_Flip(screen);
        SDL_FillRect(screen,0,0);

        while(SDL_PollEvent(&event))
        {
            switch (event.type)
            {
                case SDL_QUIT:
                    keypress = 1;
                    break;
                case SDL_KEYDOWN:
                    keypress = 1;
                    break;
                case SDL_MOUSEMOTION:
                    mx = event.motion.x;
                    my = event.motion.y;
                    break;
                case SDL_MOUSEBUTTONDOWN:
                    break;
            }
        }
        
        turtle un(300,300);
        SDL_Rect tmp = {un.x(),un.y(),3,3};
        SDL_FillRect(screen,&tmp,brown);
        un += 10;
        tmp.x = un.x();
        tmp.y = un.y();
        SDL_FillRect(screen,&tmp,brown);
        un.rotate(1);
        un += 20;
        tmp.x = un.x();
        tmp.y = un.y();
        SDL_FillRect(screen,&tmp,brown);
    }
    SDL_Quit();
    return 0;
}
//-----------------------------------------------------------------------------*/
