Apollo  6.0
Open source self driving car software
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
RenderableObject Class Referenceabstract

#include <renderable_object.h>

Inheritance diagram for RenderableObject:
Inheritance graph
Collaboration diagram for RenderableObject:
Collaboration graph

Public Member Functions

 RenderableObject (int vertex_count=1, int vertex_element_count=3, const std::shared_ptr< QOpenGLShaderProgram > &shaderProgram=NullRenderableObj)
 
virtual ~RenderableObject (void)
 
virtual GLenum GetPrimitiveType (void) const =0
 
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)
 

Static Public Member Functions

static std::shared_ptr< QOpenGLShaderProgram > CreateShaderProgram (const QString &vertexShaderFileName, const QString &fragShaderFileName)
 

Static Public Attributes

static std::shared_ptr< QOpenGLShaderProgram > NullRenderableObj
 

Protected Member Functions

virtual bool FillVertexBuffer (GLfloat *pBuffer)=0
 
virtual void Draw (void)
 
virtual void SetupAllAttrPointer (void)
 

Protected Attributes

bool is_init_
 
bool is_renderable_
 
int vertex_count_
 
int vertex_element_count_
 
std::shared_ptr< QOpenGLShaderProgram > shader_program_
 
QOpenGLVertexArrayObject vao_
 
QOpenGLBuffer vbo_
 

Constructor & Destructor Documentation

◆ RenderableObject()

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

◆ ~RenderableObject()

virtual RenderableObject::~RenderableObject ( void  )
virtual

Member Function Documentation

◆ CreateShaderProgram()

static std::shared_ptr<QOpenGLShaderProgram> RenderableObject::CreateShaderProgram ( const QString &  vertexShaderFileName,
const QString &  fragShaderFileName 
)
static

◆ Destroy()

void RenderableObject::Destroy ( void  )

◆ Draw()

virtual void RenderableObject::Draw ( void  )
inlineprotectedvirtual

Reimplemented in Plane.

◆ FillVertexBuffer()

virtual bool RenderableObject::FillVertexBuffer ( GLfloat *  pBuffer)
protectedpure virtual

Implemented in RadarPoints, Grid, and Plane.

◆ GetPrimitiveType()

virtual GLenum RenderableObject::GetPrimitiveType ( void  ) const
pure virtual

Implemented in Plane, RadarPoints, PointCloud, and Grid.

◆ haveShaderProgram()

bool RenderableObject::haveShaderProgram ( void  )
inline

◆ Init()

bool RenderableObject::Init ( std::shared_ptr< QOpenGLShaderProgram > &  shaderProgram = NullRenderableObj)

◆ is_renderable()

bool RenderableObject::is_renderable ( void  ) const
inline

◆ Render()

void RenderableObject::Render ( const QMatrix4x4 *  mvp = nullptr)

◆ set_is_renderable()

void RenderableObject::set_is_renderable ( bool  b)
inline

◆ set_shader_program()

void RenderableObject::set_shader_program ( const std::shared_ptr< QOpenGLShaderProgram > &  shaderProgram)
inline

◆ set_vertex_count()

void RenderableObject::set_vertex_count ( int  vertexCount)
inline

◆ set_vertex_element_count()

void RenderableObject::set_vertex_element_count ( int  vertexElementCount)
inline

◆ SetupAllAttrPointer()

virtual void RenderableObject::SetupAllAttrPointer ( void  )
inlineprotectedvirtual

Reimplemented in Plane.

◆ SetupExtraUniforms()

virtual void RenderableObject::SetupExtraUniforms ( void  )
inlinevirtual

Reimplemented in RadarPoints, and Grid.

◆ vertex_count()

int RenderableObject::vertex_count ( void  ) const
inline

◆ vertex_element_count()

int RenderableObject::vertex_element_count ( void  ) const
inline

◆ VertexBufferSize()

int RenderableObject::VertexBufferSize ( void  ) const
inline

Member Data Documentation

◆ is_init_

bool RenderableObject::is_init_
protected

◆ is_renderable_

bool RenderableObject::is_renderable_
protected

◆ NullRenderableObj

std::shared_ptr<QOpenGLShaderProgram> RenderableObject::NullRenderableObj
static

◆ shader_program_

std::shared_ptr<QOpenGLShaderProgram> RenderableObject::shader_program_
protected

◆ vao_

QOpenGLVertexArrayObject RenderableObject::vao_
protected

◆ vbo_

QOpenGLBuffer RenderableObject::vbo_
protected

◆ vertex_count_

int RenderableObject::vertex_count_
protected

◆ vertex_element_count_

int RenderableObject::vertex_element_count_
protected

The documentation for this class was generated from the following file: