本文整理汇总了C++中Turtle::turnAround方法的典型用法代码示例。如果您正苦于以下问题:C++ Turtle::turnAround方法的具体用法?C++ Turtle::turnAround怎么用?C++ Turtle::turnAround使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Turtle
的用法示例。
在下文中一共展示了Turtle::turnAround方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawSystem
// draw the given lsystem starting at the given position
void drawSystem(LSystem* sys, vec4 startPoint, vec4 color, bool setColor) {
Turtle* turtle = sys->getTurtleCopy();
stack<mat4> modelView;
// move to start point and point the tree upwards
modelView.push(Translate(startPoint) * RotateX(-90));
turtle->ctm = &modelView;
string turtleString = sys->getTurtleString();
if(setColor) {
GLuint colorLoc = glGetUniformLocationARB(program, "inColor");
glUniform4fv(colorLoc, 1, color);
}
for(string::iterator it = turtleString.begin(); it != turtleString.end(); ++it) {
char currentChar = *it;
if(currentChar == 'F') {
drawTurtleComponent(turtle, sphere);
drawTurtleComponent(turtle, cylinder);
}
switch(currentChar) {
case 'F':
case 'f':
turtle->forward();
break;
case '+':
turtle->rotate(Turtle::X, true);
break;
case '-':
turtle->rotate(Turtle::X, false);
break;
case '&':
turtle->rotate(Turtle::Y, true);
break;
case '^':
turtle->rotate(Turtle::Y, false);
break;
case '\\':
turtle->rotate(Turtle::Z, true);
break;
case '/':
turtle->rotate(Turtle::Z, false);
break;
case '|':
turtle->turnAround();
break;
case '[':
turtle->push();
break;
case ']':
turtle->pop();
break;
}
}
delete turtle;
}