// Copyright (C) 2006 Erik Dahlberg
//
-// This file is part of LSystem3d.
+// This file is part of LSystem3D.
//
// LSystem3D is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
/**
- * The model renderer
+ * The model creator
*/
class Turtle
{
public:
/**
* Constructor
- * @param model render this model
+ * @param model create this model
*/
Turtle(Model *model);
*/
void walk();
+ /**
+ * Walk forward, creating a filled surface
+ */
+ void fillWalk();
+
/**
* Save current state to stack
*/
*/
void reset();
- /**
- * Decrement diameter of segment
- */
- void decrementDiameter();
-
- /**
- * Begin creation of a filled surface
- */
- void fenceInBegin();
-
- /**
- * End creation of a filled surface
- */
- void fenceInEnd();
-
/**
* Set turn/pitch/roll angle
* @param angle the angle, in radians
protected:
- Coordinate _position; // current position
+ Coordinate _position; // Current position
- Vector _heading; // forward pointing vector
- Vector _left; // left pointing vector
- Vector _up; // up pointing vector
+ Vector _heading; // Forward pointing vector
+ Vector _left; // Left pointing vector
+ Vector _up; // Up pointing vector
- double _angle; // turn/pitch/roll angle
- double _diameter; // diameter of segment
- bool _fenceMode; // create filled surface?
+ double _angle; // Turn/pitch/roll angle, in radians
- stack<Coordinate> _positionStack; // positions in stack
- stack<Vector> _headingStack; // heading vectors in stack
- stack<Vector> _leftStack; // left vectors in stack
- stack<Vector> _upStack; // up vectors in stack
- stack<double> _diameterStack; // diameters in stack
+ stack<Coordinate> _positionStack; // Positions in stack
+ stack<Vector> _headingStack; // Heading vectors in stack
+ stack<Vector> _leftStack; // Left vectors in stack
+ stack<Vector> _upStack; // Up vectors in stack
+ stack<double> _diameterStack; // Diameters in stack
+ stack<int> _colorIndexStack; // Colors indices in stack
- Model *_model; // the rendered model
+ Model *_model; // The created model
};