circle.cpp
Go to the documentation of this file.
00001 /*
00002  * Copyright 2014 Google Inc. All Rights Reserved.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #include "tango-gl/circle.h"
00018 
00019 namespace tango_gl {
00020 Circle::Circle(float radius, int resolution) : Mesh(GL_TRIANGLE_FAN){
00021   SetShader();
00022   std::vector<GLfloat> vertices;
00023   vertices.reserve(3 * (resolution + 2));
00024   vertices.push_back(0);
00025   vertices.push_back(0);
00026   vertices.push_back(0);
00027   float delta_theta = M_PI * 2.0f / static_cast<float>(resolution);
00028   for (int i = resolution; i >= 0; i--) {
00029     float theta = delta_theta * static_cast<float>(i);
00030     vertices.push_back(cos(theta) * radius);
00031     vertices.push_back(0);
00032     vertices.push_back(sin(theta) * radius);
00033   }
00034   SetVertices(vertices);
00035 }
00036 }  // namespace tango_gl


rtabmap
Author(s): Mathieu Labbe
autogenerated on Thu Jun 6 2019 21:59:19