Saga3D API Documentation
1.0-RC4
|
Go to the documentation of this file. 1 #ifndef __CGPU_MESH_BUFFER_H_INCLUDED__
2 #define __CGPU_MESH_BUFFER_H_INCLUDED__
26 virtual std::uint64_t
getID()
const override {
return ID; }
70 virtual const std::uint32_t*
getIndices()
const override {
return nullptr; }
74 virtual std::uint32_t*
getIndices()
override {
return nullptr;}
77 virtual std::uint32_t
getIndex(std::size_t offset)
const override {
return 0; }
97 virtual const glm::vec3&
getPosition(std::uint32_t i)
const override {
return {}; }
100 virtual const glm::vec3&
getNormal(std::uint32_t i)
const override {
return {}; }
103 virtual const glm::vec2&
getTCoords(std::uint32_t i)
const override {
return {}; }
106 virtual const glm::vec3&
getTangent(std::uint32_t i)
const override {
return {}; }
109 virtual const glm::vec3&
getBiTangent(std::uint32_t i)
const override {
return {}; }
116 virtual void append(std::vector<S3DVertex>&& vertices, std::vector<uint32_t>&& indices)
override {}
123 virtual void appendAttribute(
const char* buffer,
const size_t size,
const size_t stride)
override {}
133 const std::uint64_t
ID;
constexpr SGPUResource::HandleType NULL_GPU_RESOURCE_HANDLE
Implementation of the CPU IMeshBuffer interface.
virtual void append(std::vector< S3DVertex > &&vertices, std::vector< uint32_t > &&indices) override
Append the vertices and indices to the current buffer.
SGPUResource::HandleType PipelineHandle
virtual std::uint32_t * getIndices() override
Get pointer to indices.
video::ShaderBufferHandle VertexBuffer
virtual void setVertexCount(const size_t count) override
Set number of vertices.
virtual std::uint32_t getIndexCount() const override
Get number of indices.
virtual void setIndexCount(const std::uint32_t count)
Set number of indices.
virtual const glm::vec2 & getTCoords(std::uint32_t i) const override
returns texture coord of vertex i
Struct for holding a mesh with a single material.
auto getIndexBuffer() const
Get GPU index buffer.
virtual const glm::vec3 & getNormal(std::uint32_t i) const override
returns normal of vertex i
virtual std::size_t getVertexCount() const override
Get number of vertices.
auto getVertexBuffer() const
Get GPU mesh buffer.
void setIndexBuffer(const video::ShaderBufferHandle buffer)
Set a shader buffer as vertex buffer.
std::uint32_t ID
Type for node ID.
virtual ~CGPUMeshBuffer()
SGPUResource::HandleType ShaderBufferHandle
void setVertexBuffer(const video::ShaderBufferHandle buffer)
Set a shader buffer as MeshBuffer.
virtual const glm::vec3 & getPosition(std::uint32_t i) const override
returns position of vertex i
virtual std::size_t getSize(const video::PipelineHandle pipeline) const override
Get size of GPU staging buffer.
virtual const core::aabbox3d< float > & getBoundingBox() const override
Get the axis aligned bounding box.
virtual std::uint64_t getID() const override
Returns internal ID to identify mesh buffer.
virtual const std::uint32_t * getIndices() const override
Get pointer to indices.
virtual const glm::vec3 & getTangent(std::uint32_t i) const override
returns tangent of vertex i
virtual void appendAttribute(const char *buffer, const size_t size, const size_t stride) override
Append the custom attribute buffer to the current mesh buffer.
virtual void * getVertices() override
Get pointer to vertices.
virtual const glm::vec3 & getBiTangent(std::uint32_t i) const override
returns bi-tangent of vertex i
CGPUMeshBuffer()
Default constructor for empty meshbuffer.
video::ShaderBufferHandle IndexBuffer
virtual const void * getData(const video::PipelineHandle pipeline) const override
Get pointer to GPU staging buffer.
virtual std::uint32_t getIndex(std::size_t offset) const override
returns vertex index at this offset
virtual bool isGPUBuffer() const override
virtual void buildBuffer(video::IVideoDriver &driver, const video::PipelineHandle pipeline) override
Generate GPU-compatible data.
virtual void recalculateBoundingBox() override
Recalculate the bounding box.
virtual void setBoundingBox(const core::aabbox3df &box) override
Set the axis aligned bounding box.
static MeshBufferID RootID
To set ID for mesh buffer when created.
virtual void append(const IMeshBuffer *const other) override
Append the meshbuffer to the current buffer.