Apollo 10.0
自动驾驶开放平台
PointCloud类 参考

#include <pointcloud.h>

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

Public 成员函数

 PointCloud (int pointCount=1, int vertex_element_count=3, const std::shared_ptr< QOpenGLShaderProgram > &shaderProgram=NullRenderableObj)
 
 ~PointCloud (void)
 
virtual GLenum GetPrimitiveType (void) const
 
bool FillData (const std::shared_ptr< const apollo::drivers::PointCloud > &pData)
 
- Public 成员函数 继承自 RenderableObject
 RenderableObject (int vertex_count=1, int vertex_element_count=3, const std::shared_ptr< QOpenGLShaderProgram > &shaderProgram=NullRenderableObj)
 
virtual ~RenderableObject (void)
 
virtual void SetupExtraUniforms (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)
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 RenderableObject
static std::shared_ptr< QOpenGLShaderProgram > CreateShaderProgram (const QString &vertexShaderFileName, const QString &fragShaderFileName)
 
- 静态 Public 属性 继承自 RenderableObject
static std::shared_ptr< QOpenGLShaderProgram > NullRenderableObj
 
- Protected 成员函数 继承自 RenderableObject
virtual void Draw (void)
 
virtual void SetupAllAttrPointer (void)
 
- 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_
 

详细描述

在文件 pointcloud.h26 行定义.

构造及析构函数说明

◆ PointCloud()

PointCloud::PointCloud ( int  pointCount = 1,
int  vertex_element_count = 3,
const std::shared_ptr< QOpenGLShaderProgram > &  shaderProgram = NullRenderableObj 
)
explicit

在文件 pointcloud.cc21 行定义.

24 : RenderableObject(pointCount, vertexElementCount, shaderProgram),
25 buffer_(nullptr) {}

◆ ~PointCloud()

PointCloud::~PointCloud ( void  )

在文件 pointcloud.cc27 行定义.

27 {
28 if (buffer_) {
29 delete[] buffer_;
30 buffer_ = nullptr;
31 }
32}

成员函数说明

◆ FillData()

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

在文件 pointcloud.cc47 行定义.

48 {
49 assert(vertex_count() == pdata->point_size());
50 buffer_ = new GLfloat[vertex_count() * vertex_element_count()];
51 if (buffer_) {
52 GLfloat* tmp = buffer_;
53
54 for (int i = 0; i < vertex_count(); ++i, tmp += vertex_element_count()) {
55 const apollo::drivers::PointXYZIT& point = pdata->point(i);
56 tmp[0] = point.x();
57 tmp[1] = point.z();
58 tmp[2] = -point.y();
59 tmp[3] = static_cast<float>(point.intensity());
60 }
61 return true;
62 }
63 return false;
64}
int vertex_element_count(void) const
int vertex_count(void) const

◆ GetPrimitiveType()

virtual GLenum PointCloud::GetPrimitiveType ( void  ) const
inlinevirtual

实现了 RenderableObject.

在文件 pointcloud.h33 行定义.

33{ return GL_POINTS; }

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