Infinity Engine v0.6.20
C++ API Documentation
Loading...
Searching...
No Matches
Mesh.hpp
1#pragma once
2
3#include <Infinity/Types/Core/Data.hpp>
4#include <Infinity/Types/Core/Value.hpp>
5#include <Infinity/Types/Containers/Array.hpp>
6#include <Infinity/Types/Rendering/VertexBuffer.hpp>
7#include <Infinity/Types/Rendering/IndexBuffer.hpp>
8#include <Infinity/Types/Rendering/SubMesh.hpp>
9
11{
134 class INFINITY_API_PUBLIC Mesh : public Core::Data
135 {
136 public:
144
152
160
167
175 Mesh(const VertexBuffer& vertexBuffer,
176 const IndexBuffer& indexBuffer,
177 const Containers::Array<SubMesh>& subMeshes);
178
193 const Containers::Array<uint16_t>& indices,
195 const Containers::Array<Math::Vector3>& normals);
196
208 const Containers::Array<uint32_t>& indices,
210 const Containers::Array<Math::Vector3>& normals);
211
223 Mesh(size_t nVertices, size_t n16bitIndices, size_t nUVs, size_t nNormals);
224
228 virtual ~Mesh();
229
230 std::unique_ptr<Core::Base> clone() const override;
231
237 const Infinity::Types::TypeID& typeId() const override;
238 };
239}
240
Dynamic contiguous container for homogeneous elements in the Infinity type system.
Definition Array.hpp:77
Base class for complex data types with memory wrapping and property support.
Definition Data.hpp:49
Container for mesh index data defining vertex connectivity and topology.
Definition IndexBuffer.hpp:89
Complete 3D geometry definition with vertices, indices, and material partitioning.
Definition Mesh.hpp:135
Mesh(size_t nVertices, size_t n16bitIndices, size_t nUVs, size_t nNormals)
Constructs a mesh with pre-allocated buffers.
std::unique_ptr< Core::Base > clone() const override
VertexBuffer vertexBuffer
Vertex attribute data for the mesh.
Definition Mesh.hpp:143
IndexBuffer indexBuffer
Index data defining primitive connectivity.
Definition Mesh.hpp:151
Mesh(const Containers::Array< Math::Vector3 > &vertices, const Containers::Array< uint32_t > &indices, const Containers::Array< Math::Vector2 > &uvs, const Containers::Array< Math::Vector3 > &normals)
Constructs a simple mesh from vertex/index arrays (32-bit indices).
Mesh(const Containers::Array< Math::Vector3 > &vertices, const Containers::Array< uint16_t > &indices, const Containers::Array< Math::Vector2 > &uvs, const Containers::Array< Math::Vector3 > &normals)
Constructs a simple mesh from vertex/index arrays (16-bit indices).
virtual ~Mesh()
Destructor.
Mesh(const VertexBuffer &vertexBuffer, const IndexBuffer &indexBuffer, const Containers::Array< SubMesh > &subMeshes)
Constructs a mesh from pre-built buffers and submeshes.
const Infinity::Types::TypeID & typeId() const override
Gets the TypeID for Mesh.
Mesh()
Default constructor.
Containers::Array< SubMesh > subMeshes
Optional array of submeshes for multi-material rendering.
Definition Mesh.hpp:159
Container for mesh vertex attribute data.
Definition VertexBuffer.hpp:106
Definition IndexBuffer.hpp:9
Runtime type identifier for the Infinity type system.
Definition TypeID.hpp:71