Apollo 11.0
自动驾驶开放平台
RadarPoints类 参考

#include <radarpoints.h>

类 RadarPoints 继承关系图:
RadarPoints 的协作图:

Public 成员函数

 RadarPoints (const std::shared_ptr< QOpenGLShaderProgram > &shaderProgram=nullptr)
 
 ~RadarPoints (void)
 
virtual GLenum GetPrimitiveType (void) const
 
void SetupExtraUniforms (void)
 
GLfloat red (void) const
 
GLfloat green (void) const
 
GLfloat blue (void) const
 
const QVector3D & color (void) const
 
void set_color (const QRgb &rgb)
 
void set_color (const QColor &color)
 
bool FillData (const std::shared_ptr< const apollo::drivers::RadarObstacles > &pData)
 
- Public 成员函数 继承自 RenderableObject
 RenderableObject (int vertex_count=1, int vertex_element_count=3, const std::shared_ptr< QOpenGLShaderProgram > &shaderProgram=NullRenderableObj)
 
virtual ~RenderableObject (void)
 
bool is_renderable (void) const
 
void set_is_renderable (bool b)
 
int vertex_count (void) const
 
void set_vertex_count (int vertexCount)
 
int vertex_element_count (void) const
 
void set_vertex_element_count (int vertexElementCount)
 
int VertexBufferSize (void) const
 
void set_shader_program (const std::shared_ptr< QOpenGLShaderProgram > &shaderProgram)
 
bool haveShaderProgram (void)
 
bool Init (std::shared_ptr< QOpenGLShaderProgram > &shaderProgram=NullRenderableObj)
 
void Destroy (void)
 
void Render (const QMatrix4x4 *mvp=nullptr)
 

Protected 成员函数

bool FillVertexBuffer (GLfloat *pBuffer) override
 
- Protected 成员函数 继承自 RenderableObject
virtual void Draw (void)
 
virtual void SetupAllAttrPointer (void)
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 RenderableObject
static std::shared_ptr< QOpenGLShaderProgram > CreateShaderProgram (const QString &vertexShaderFileName, const QString &fragShaderFileName)
 
- 静态 Public 属性 继承自 RenderableObject
static std::shared_ptr< QOpenGLShaderProgram > NullRenderableObj
 
- Protected 属性 继承自 RenderableObject
bool is_init_
 
bool is_renderable_
 
int vertex_count_
 
int vertex_element_count_
 
std::shared_ptr< QOpenGLShaderProgram > shader_program_
 
QOpenGLVertexArrayObject vao_
 
QOpenGLBuffer vbo_
 

详细描述

在文件 radarpoints.h 第 28 行定义.

构造及析构函数说明

◆ RadarPoints()

RadarPoints::RadarPoints ( const std::shared_ptr< QOpenGLShaderProgram > &  shaderProgram = nullptr)
explicit

在文件 radarpoints.cc 第 22 行定义.

24 : RenderableObject(1, 3, shaderProgram),
25 color_(1.0f, 0.0f, 0.0f),
26 buffer_(nullptr) {}

◆ ~RadarPoints()

RadarPoints::~RadarPoints ( void  )
inline

在文件 radarpoints.h 第 39 行定义.

39 {
40 if (buffer_) {
41 delete[] buffer_;
42 buffer_ = nullptr;
43 }
44 }

成员函数说明

◆ blue()

GLfloat RadarPoints::blue ( void  ) const
inline

在文件 radarpoints.h 第 54 行定义.

54{ return color_.z(); }

◆ color()

const QVector3D & RadarPoints::color ( void  ) const
inline

在文件 radarpoints.h 第 56 行定义.

56{ return color_; }

◆ FillData()

bool RadarPoints::FillData ( const std::shared_ptr< const apollo::drivers::RadarObstacles > &  pData)

在文件 radarpoints.cc 第 28 行定义.

29 {
30 bool ret = false;
31
32 set_vertex_count(rawData->radar_obstacle_size());
33 buffer_ = new GLfloat[vertex_count() * vertex_element_count()];
34
35 if (buffer_) {
36 GLfloat* ptr = buffer_;
37 const ::google::protobuf::Map<::google::protobuf::int32,
39 radarObstacles = rawData->radar_obstacle();
40 for (::google::protobuf::Map<::google::protobuf::int32,
41 apollo::drivers::RadarObstacle>::const_iterator
42 iter = radarObstacles.cbegin();
43 iter != radarObstacles.cend(); ++iter, ptr += vertex_element_count()) {
44 const apollo::common::Point2D& position =
45 iter->second.absolute_position();
46
47 ptr[0] = static_cast<float>(position.x());
48 ptr[1] = static_cast<float>(position.y());
49 ptr[2] = std::pow(10.0f, static_cast<float>(iter->second.rcs() / 20.0));
50 } // end for
51
52 ret = true;
53 }
54
55 return ret;
56}
int vertex_element_count(void) const
int vertex_count(void) const
void set_vertex_count(int vertexCount)

◆ FillVertexBuffer()

bool RadarPoints::FillVertexBuffer ( GLfloat *  pBuffer)
overrideprotectedvirtual

实现了 RenderableObject.

在文件 radarpoints.cc 第 58 行定义.

58 {
59 if (buffer_ && pBuffer) {
60 memcpy(pBuffer, buffer_, VertexBufferSize());
61 delete[] buffer_;
62 buffer_ = nullptr;
63 return true;
64 } else {
65 std::cout << "---Error!!! cannot upload data to Graphics Card----"
66 << std::endl;
67 return false;
68 }
69}
int VertexBufferSize(void) const

◆ GetPrimitiveType()

virtual GLenum RadarPoints::GetPrimitiveType ( void  ) const
inlinevirtual

实现了 RenderableObject.

在文件 radarpoints.h 第 46 行定义.

46{ return GL_POINTS; }

◆ green()

GLfloat RadarPoints::green ( void  ) const
inline

在文件 radarpoints.h 第 53 行定义.

53{ return color_.y(); }

◆ red()

GLfloat RadarPoints::red ( void  ) const
inline

在文件 radarpoints.h 第 52 行定义.

52{ return color_.x(); }

◆ set_color() [1/2]

void RadarPoints::set_color ( const QColor &  color)
inline

在文件 radarpoints.h 第 60 行定义.

60 {
61 color_.setX(static_cast<float>(color.redF()));
62 color_.setY(static_cast<float>(color.greenF()));
63 color_.setZ(static_cast<float>(color.blueF()));
64 }
const QVector3D & color(void) const
Definition radarpoints.h:56

◆ set_color() [2/2]

void RadarPoints::set_color ( const QRgb &  rgb)
inline

在文件 radarpoints.h 第 58 行定义.

58{ set_color(QColor(rgb)); }
void set_color(const QRgb &rgb)
Definition radarpoints.h:58

◆ SetupExtraUniforms()

void RadarPoints::SetupExtraUniforms ( void  )
inlinevirtual

重载 RenderableObject .

在文件 radarpoints.h 第 48 行定义.

48 {
49 shader_program_->setUniformValue("color", color_);
50 }
std::shared_ptr< QOpenGLShaderProgram > shader_program_

该类的文档由以下文件生成: