Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
EngineCore::MeshPrimitive Class Reference

#include <MeshPrimitive.h>

Collaboration diagram for EngineCore::MeshPrimitive:

Classes

struct  MeshletBoundsHelper

Public Member Functions

 MeshPrimitive ()=default
 MeshPrimitive (GltfLoader::GltfMeshPrimitiveData meshPrimitiveData, ApplicationContext *context, Renderer *renderer)
 ~MeshPrimitive ()
std::vector< VertexgetVertices () const
const std::vector< Vertex > & getVerticesByRef () const
std::vector< uint32_t > getIndices () const
const std::vector< uint32_t > & getIndicesByRef () const
uint32_t getTextureIndex () const
std::vector< meshopt_Meshlet > getMeshlets () const
const std::vector< meshopt_Meshlet > & getMeshletByRef () const
std::vector< uint8_t > getMeshletTriangles () const
const std::vector< uint8_t > & getMeshletTrianglesByRef () const
std::vector< uint32_t > getMeshletVertices () const
const std::vector< uint32_t > & getMeshletVerticesByRef () const
uint32_t getMeshletTriangleCount () const
uint32_t getMeshletVertexCount () const
uint32_t getMeshletsCount () const
float getBoundingSphereRadius () const
glm::vec3 getBoundingSphereCenter () const
ObjectCullingData getCullingData () const
bool hasCustomTexture () const
PipelineNames getMaterialName () const
MaterialShadergetMaterialShader () const
void setMaterialShader (MaterialShader *shader)
void setMaterialId (uint32_t materialId)
const ObjectCullingDatagetPrimitiveBoundsByRef () const
const std::vector< MeshletBounds > & getMeshletBoundsByRef () const
const std::variant< NormalMaterialData, DiffuseFlatColorMaterialData, DiffuseShaderMaterialData, MovableDiffuseShaderMaterialData, L0ShaderMaterialData, L1ShaderMaterialData, L2ShaderMaterialData, DynamicTexturesMaterialData, StaticLightmapMaterialData > & getMaterialData () const

Public Attributes

std::vector< meshopt_Meshlet > meshlets {}
std::vector< MeshletBoundsmeshletBounds {}

Private Member Functions

void generateMeshlets ()
void generateBoundingSpheres ()

Private Attributes

friend Mesh
PipelineNames materialName
MaterialShadermaterialShader = nullptr
uint32_t materialId = 0
std::variant< NormalMaterialData, DiffuseFlatColorMaterialData, DiffuseShaderMaterialData, MovableDiffuseShaderMaterialData, L0ShaderMaterialData, L1ShaderMaterialData, L2ShaderMaterialData, DynamicTexturesMaterialData, StaticLightmapMaterialDatamaterialData
std::vector< uint32_t > meshletVertices {}
std::vector< uint8_t > meshletTriangles {}
ObjectCullingData objectCullingData {.worldPositionAndRadius = {0.0f, 0.0f, 0.0f, 0.0f}, .objectIndex = 0}
ApplicationContextcontext = nullptr
Rendererrenderer = nullptr
uint32_t textureIndex = 0
TexturecolorTexture = nullptr
std::vector< Vertexvertices
std::vector< uint32_t > indices

Detailed Description

Definition at line 20 of file MeshPrimitive.h.

Constructor & Destructor Documentation

◆ MeshPrimitive() [1/2]

EngineCore::MeshPrimitive::MeshPrimitive ( )
default

References context, materialId, and renderer.

◆ MeshPrimitive() [2/2]

EngineCore::MeshPrimitive::MeshPrimitive ( GltfLoader::GltfMeshPrimitiveData meshPrimitiveData,
ApplicationContext * context,
Renderer * renderer )

Definition at line 16 of file MeshPrimitive.cpp.

References context, generateMeshlets(), getIndices(), EngineCore::GltfLoader::GltfMeshPrimitiveData::getMaterialData(), getVertices(), EngineCore::GltfLoader::GltfMaterialData::hasTexture(), EngineCore::GltfLoader::GltfMaterialData::hasVulkanSchneeExtension(), indices, meshlets, renderer, and vertices.

Here is the call graph for this function:

◆ ~MeshPrimitive()

EngineCore::MeshPrimitive::~MeshPrimitive ( )

Definition at line 53 of file MeshPrimitive.cpp.

Member Function Documentation

◆ generateBoundingSpheres()

void EngineCore::MeshPrimitive::generateBoundingSpheres ( )
private

Definition at line 312 of file MeshPrimitive.cpp.

References meshletBounds, meshlets, meshletVertices, objectCullingData, TRACY_ZONE_SCOPED_NAMED, vertices, and EngineCore::MeshletBounds::worldPositionAndRadius.

Referenced by generateMeshlets().

Here is the caller graph for this function:

◆ generateMeshlets()

void EngineCore::MeshPrimitive::generateMeshlets ( )
private

Definition at line 176 of file MeshPrimitive.cpp.

References generateBoundingSpheres(), indices, meshlets, meshletTriangles, meshletVertices, TRACY_ZONE_SCOPED_NAMED, and vertices.

Referenced by MeshPrimitive().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBoundingSphereCenter()

glm::vec3 EngineCore::MeshPrimitive::getBoundingSphereCenter ( ) const
nodiscard

Definition at line 130 of file MeshPrimitive.cpp.

References objectCullingData.

◆ getBoundingSphereRadius()

float EngineCore::MeshPrimitive::getBoundingSphereRadius ( ) const
nodiscard

Definition at line 125 of file MeshPrimitive.cpp.

References objectCullingData.

◆ getCullingData()

ObjectCullingData EngineCore::MeshPrimitive::getCullingData ( ) const
nodiscard

Definition at line 135 of file MeshPrimitive.cpp.

References objectCullingData.

◆ getIndices()

std::vector< uint32_t > EngineCore::MeshPrimitive::getIndices ( ) const
nodiscard

Definition at line 65 of file MeshPrimitive.cpp.

References indices.

Referenced by MeshPrimitive().

Here is the caller graph for this function:

◆ getIndicesByRef()

const std::vector< uint32_t > & EngineCore::MeshPrimitive::getIndicesByRef ( ) const
nodiscard

Definition at line 70 of file MeshPrimitive.cpp.

References indices.

◆ getMaterialData()

◆ getMaterialName()

PipelineNames EngineCore::MeshPrimitive::getMaterialName ( ) const
nodiscard

Definition at line 145 of file MeshPrimitive.cpp.

References materialName.

◆ getMaterialShader()

MaterialShader * EngineCore::MeshPrimitive::getMaterialShader ( ) const
nodiscard

Definition at line 150 of file MeshPrimitive.cpp.

References materialShader.

◆ getMeshletBoundsByRef()

const std::vector< MeshletBounds > & EngineCore::MeshPrimitive::getMeshletBoundsByRef ( ) const

Definition at line 170 of file MeshPrimitive.cpp.

References meshletBounds.

◆ getMeshletByRef()

const std::vector< meshopt_Meshlet > & EngineCore::MeshPrimitive::getMeshletByRef ( ) const
nodiscard

Definition at line 85 of file MeshPrimitive.cpp.

References meshlets.

◆ getMeshlets()

std::vector< meshopt_Meshlet > EngineCore::MeshPrimitive::getMeshlets ( ) const
nodiscard

Definition at line 80 of file MeshPrimitive.cpp.

References meshlets.

◆ getMeshletsCount()

uint32_t EngineCore::MeshPrimitive::getMeshletsCount ( ) const
nodiscard

Definition at line 120 of file MeshPrimitive.cpp.

References meshlets.

◆ getMeshletTriangleCount()

uint32_t EngineCore::MeshPrimitive::getMeshletTriangleCount ( ) const
nodiscard

Definition at line 110 of file MeshPrimitive.cpp.

References meshletTriangles.

◆ getMeshletTriangles()

std::vector< uint8_t > EngineCore::MeshPrimitive::getMeshletTriangles ( ) const
nodiscard

Definition at line 90 of file MeshPrimitive.cpp.

References meshletTriangles.

◆ getMeshletTrianglesByRef()

const std::vector< uint8_t > & EngineCore::MeshPrimitive::getMeshletTrianglesByRef ( ) const
nodiscard

Definition at line 95 of file MeshPrimitive.cpp.

References meshletTriangles.

◆ getMeshletVertexCount()

uint32_t EngineCore::MeshPrimitive::getMeshletVertexCount ( ) const
nodiscard

Definition at line 115 of file MeshPrimitive.cpp.

References meshletVertices.

◆ getMeshletVertices()

std::vector< uint32_t > EngineCore::MeshPrimitive::getMeshletVertices ( ) const
nodiscard

Definition at line 100 of file MeshPrimitive.cpp.

References meshletVertices.

◆ getMeshletVerticesByRef()

const std::vector< uint32_t > & EngineCore::MeshPrimitive::getMeshletVerticesByRef ( ) const
nodiscard

Definition at line 105 of file MeshPrimitive.cpp.

References meshletVertices.

◆ getPrimitiveBoundsByRef()

const ObjectCullingData & EngineCore::MeshPrimitive::getPrimitiveBoundsByRef ( ) const

Definition at line 165 of file MeshPrimitive.cpp.

References objectCullingData.

◆ getTextureIndex()

uint32_t EngineCore::MeshPrimitive::getTextureIndex ( ) const
nodiscard

Definition at line 75 of file MeshPrimitive.cpp.

References textureIndex.

◆ getVertices()

std::vector< Vertex > EngineCore::MeshPrimitive::getVertices ( ) const
nodiscard

Definition at line 55 of file MeshPrimitive.cpp.

References vertices.

Referenced by MeshPrimitive().

Here is the caller graph for this function:

◆ getVerticesByRef()

const std::vector< Vertex > & EngineCore::MeshPrimitive::getVerticesByRef ( ) const
nodiscard

Definition at line 60 of file MeshPrimitive.cpp.

References vertices.

◆ hasCustomTexture()

bool EngineCore::MeshPrimitive::hasCustomTexture ( ) const
nodiscard

Definition at line 140 of file MeshPrimitive.cpp.

References colorTexture.

◆ setMaterialId()

void EngineCore::MeshPrimitive::setMaterialId ( uint32_t materialId)

Definition at line 160 of file MeshPrimitive.cpp.

References materialId.

◆ setMaterialShader()

void EngineCore::MeshPrimitive::setMaterialShader ( MaterialShader * shader)

Definition at line 155 of file MeshPrimitive.cpp.

References materialShader.

Member Data Documentation

◆ colorTexture

Texture* EngineCore::MeshPrimitive::colorTexture = nullptr
private

Definition at line 107 of file MeshPrimitive.h.

Referenced by hasCustomTexture().

◆ context

ApplicationContext* EngineCore::MeshPrimitive::context = nullptr
private

Definition at line 103 of file MeshPrimitive.h.

Referenced by MeshPrimitive(), and MeshPrimitive().

◆ indices

std::vector<uint32_t> EngineCore::MeshPrimitive::indices
private

Definition at line 110 of file MeshPrimitive.h.

Referenced by generateMeshlets(), getIndices(), getIndicesByRef(), and MeshPrimitive().

◆ materialData

◆ materialId

uint32_t EngineCore::MeshPrimitive::materialId = 0
private

Definition at line 77 of file MeshPrimitive.h.

Referenced by MeshPrimitive(), and setMaterialId().

◆ materialName

PipelineNames EngineCore::MeshPrimitive::materialName
private

Definition at line 75 of file MeshPrimitive.h.

Referenced by getMaterialName().

◆ materialShader

MaterialShader* EngineCore::MeshPrimitive::materialShader = nullptr
private

Definition at line 76 of file MeshPrimitive.h.

Referenced by getMaterialShader(), and setMaterialShader().

◆ Mesh

friend EngineCore::MeshPrimitive::Mesh
private

Definition at line 21 of file MeshPrimitive.h.

◆ meshletBounds

std::vector<MeshletBounds> EngineCore::MeshPrimitive::meshletBounds {}

Definition at line 72 of file MeshPrimitive.h.

Referenced by generateBoundingSpheres(), and getMeshletBoundsByRef().

◆ meshlets

std::vector<meshopt_Meshlet> EngineCore::MeshPrimitive::meshlets {}

◆ meshletTriangles

std::vector<uint8_t> EngineCore::MeshPrimitive::meshletTriangles {}
private

◆ meshletVertices

std::vector<uint32_t> EngineCore::MeshPrimitive::meshletVertices {}
private

◆ objectCullingData

ObjectCullingData EngineCore::MeshPrimitive::objectCullingData {.worldPositionAndRadius = {0.0f, 0.0f, 0.0f, 0.0f}, .objectIndex = 0}
private

◆ renderer

Renderer* EngineCore::MeshPrimitive::renderer = nullptr
private

Definition at line 104 of file MeshPrimitive.h.

Referenced by MeshPrimitive(), and MeshPrimitive().

◆ textureIndex

uint32_t EngineCore::MeshPrimitive::textureIndex = 0
private

Definition at line 106 of file MeshPrimitive.h.

Referenced by getTextureIndex().

◆ vertices

std::vector<Vertex> EngineCore::MeshPrimitive::vertices
private

The documentation for this class was generated from the following files:
  • /home/magerbeton/Documents/gl3-vulkan/Engine/include/Engine/Mesh/MeshPrimitive.h
  • /home/magerbeton/Documents/gl3-vulkan/Engine/src/Engine/Mesh/MeshPrimitive.cpp