Apollo 11.0
自动驾驶开放平台
grid.h
浏览该文件的文档.
1/******************************************************************************
2 * Copyright 2018 The Apollo Authors. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *****************************************************************************/
16
17#pragma once
18
19#include <QtGui/QColor>
20
22
23class Grid : public RenderableObject {
24 public:
25 explicit Grid(int cellCountBySide = 1);
26 ~Grid() {}
27
28 GLenum GetPrimitiveType(void) const { return GL_LINES; }
29 void SetupExtraUniforms(void) {
30 QVector3D color;
31 color.setX(static_cast<float>(grid_color_.redF()));
32 color.setY(static_cast<float>(grid_color_.greenF()));
33 color.setZ(static_cast<float>(grid_color_.blueF()));
34 shader_program_->setUniformValue("color", color);
35 }
36
37 int red(void) const { return grid_color_.red(); }
38 int green(void) const { return grid_color_.green(); }
39 int blue(void) const { return grid_color_.blue(); }
40
41 const QColor& grid_color(void) const { return grid_color_; }
42 void set_grid_color(const QColor& color) { grid_color_ = color; }
43
44 void SetCellCount(int cellCount) {
45 set_vertex_count(((cellCount << 1) + 2) * vertex_element_count());
46 }
47
48 int CellCount(void) const {
49 return (vertex_count() / vertex_element_count() - 2) >> 1;
50 }
51
52 protected:
53 virtual bool FillVertexBuffer(GLfloat* pBuffer);
54
55 private:
56 QColor grid_color_;
57};
Definition grid.h:23
virtual bool FillVertexBuffer(GLfloat *pBuffer)
Definition grid.cc:23
GLenum GetPrimitiveType(void) const
Definition grid.h:28
int CellCount(void) const
Definition grid.h:48
int red(void) const
Definition grid.h:37
int green(void) const
Definition grid.h:38
void set_grid_color(const QColor &color)
Definition grid.h:42
~Grid()
Definition grid.h:26
void SetupExtraUniforms(void)
Definition grid.h:29
void SetCellCount(int cellCount)
Definition grid.h:44
int blue(void) const
Definition grid.h:39
const QColor & grid_color(void) const
Definition grid.h:41
int vertex_element_count(void) const
int vertex_count(void) const
std::shared_ptr< QOpenGLShaderProgram > shader_program_
void set_vertex_count(int vertexCount)