PH Logo
Logo intepreter modeled after UCB Logo.
/Users/paul/Documents/phlogo/core/Turtle.cpp
00001 /*
00002  *  Turtle.cpp
00003  *
00004  *  Author: Paul Hamilton
00005  *      Date: 7 Aug 2011
00006  *
00007  */
00008 #include "Turtle.h"
00009         
00010 using namespace std;
00011 
00012 namespace phlogo {
00013 
00014 void Turtle::home() {
00015     _x = 100;
00016     _y = 100;
00017     _heading = 0;
00018 }
00019 
00020 JSONTurtle::JSONTurtle() {
00021     clear();
00022 }
00023 
00024 void JSONTurtle::clear() {
00025     startGData();
00026     home();
00027     _pendown = true;
00028     moveTo(_x, _y);       
00029 }
00030 
00031 void JSONTurtle::startGData() {
00032     _gdata.str("");
00033     _gdata << "[";
00034     _firstop = true;
00035 }
00036 
00037 string JSONTurtle::endGData() {
00038     _gdata << "]";
00039     return _gdata.str();
00040 }
00041 
00042 void JSONTurtle::moveTo(int x, int y) {
00043     if (_firstop)
00044         _firstop = false;
00045     else
00046         _gdata << ",";
00047     _gdata << "{m:[" << x << "," << y << "]}";
00048 }
00049 
00050 void JSONTurtle::lineTo(int x, int y) {
00051     if (_firstop)
00052         _firstop = false;
00053     else
00054         _gdata << ",";
00055     _gdata << "{l:[" << x << "," << y << "]}";
00056 }
00057 
00058 void JSONTurtle::stroke() {
00059     if (_firstop)
00060         _firstop = false;
00061     else
00062         _gdata << ",";
00063     _gdata << "{s:0}";
00064 }
00065 
00066 }
 All Classes Functions