StevEngine
StevEngine is a customizable C++ game engine.
Loading...
Searching...
No Matches
StevEngine::Renderer::Object Class Reference

Standard renderable mesh object. More...

#include <visuals/renderer/Object.hpp>

Inheritance diagram for StevEngine::Renderer::Object:
StevEngine::Renderer::CustomObject

Public Member Functions

 Object (const std::vector< Utilities::Vertex > &vertices, const Visuals::Material &material, RenderType renderType=SOLID)
 Create object from vertices.
 
 Object (const std::vector< Utilities::Vertex > &vertices, const std::vector< uint32_t > &indices, const Visuals::Material &material, RenderType renderType=SOLID)
 Create object from vertices and indices.
 
 Object (const Object &instance)
 Copy constructor.
 
void AddShader (Renderer::ShaderProgram program)
 Add shader program.
 
void RemoveShader (Renderer::ShaderType type)
 Remove shader of specified type.
 
void Draw (Utilities::Matrix4 transform) const
 Draw object with transform.
 
void UpdateBuffers () const
 Update GPU buffers with object vertex and index data.
 
void UpdateShaderMaterial () const
 Update Fragment shader with material data.
 
uint32_t GetIndexCount () const
 Get the number of indices in object.
 
uint32_t GetVertexCount () const
 Get the number of indices in object.
 
Utilities::Range3 GetBoundingBox () const
 Get bouning box of object.
 
RenderType GetRenderType () const
 Get the type of rendering used by this object.
 
void SetRenderType (RenderType type)
 Set the type of rendering used by this object.
 

Public Attributes

Visuals::Material material
 Material used for rendering.
 

Detailed Description

Standard renderable mesh object.

Manages vertex data, indices, and materials for rendering 3D meshes. Handles OpenGL buffer management and shader program binding.

Constructor & Destructor Documentation

◆ Object() [1/3]

StevEngine::Renderer::Object::Object ( const std::vector< Utilities::Vertex > & vertices,
const Visuals::Material & material,
RenderType renderType = SOLID )

Create object from vertices.

Parameters
verticesArray of vertex data
materialMaterial to render with

◆ Object() [2/3]

StevEngine::Renderer::Object::Object ( const std::vector< Utilities::Vertex > & vertices,
const std::vector< uint32_t > & indices,
const Visuals::Material & material,
RenderType renderType = SOLID )

Create object from vertices and indices.

Parameters
verticesArray of vertex data
indicesArray of vertex indices
materialMaterial to render with

◆ Object() [3/3]

StevEngine::Renderer::Object::Object ( const Object & instance)

Copy constructor.

Parameters
instanceObject to copy

Member Function Documentation

◆ AddShader()

void StevEngine::Renderer::Object::AddShader ( Renderer::ShaderProgram program)

Add shader program.

Parameters
programShader program to add

◆ Draw()

void StevEngine::Renderer::Object::Draw ( Utilities::Matrix4 transform) const
virtual

Draw object with transform.

Parameters
transformWorld transform matrix

Implements StevEngine::Renderer::CustomObject.

◆ GetBoundingBox()

Utilities::Range3 StevEngine::Renderer::Object::GetBoundingBox ( ) const
inline

Get bouning box of object.

Returns
Bounding box

◆ GetIndexCount()

uint32_t StevEngine::Renderer::Object::GetIndexCount ( ) const
inline

Get the number of indices in object.

Returns
Number of indices

◆ GetRenderType()

RenderType StevEngine::Renderer::Object::GetRenderType ( ) const
inline

Get the type of rendering used by this object.

Returns
Render type

◆ GetVertexCount()

uint32_t StevEngine::Renderer::Object::GetVertexCount ( ) const
inline

Get the number of indices in object.

Returns
Number of indices

◆ RemoveShader()

void StevEngine::Renderer::Object::RemoveShader ( Renderer::ShaderType type)

Remove shader of specified type.

Parameters
typeType of shader to remove

◆ SetRenderType()

void StevEngine::Renderer::Object::SetRenderType ( RenderType type)

Set the type of rendering used by this object.

Returns
Render type

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