|
PH Logo
Logo intepreter modeled after UCB Logo.
|
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 }
1.7.4