Castor3D 0.12.0
Multiplatform 3D engine
Fonctions membres publiques | Attributs publics statiques | Liste de tous les membres
Référence de la classe castor3d::TriFaceMapping

#include <TriFaceMapping.hpp>

Graphe d'héritage de castor3d::TriFaceMapping:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::TriFaceMapping:
Collaboration graph
[légende]

Fonctions membres publiques

C3D_API TriFaceMapping (Submesh &submesh, VkBufferUsageFlags bufferUsageFlags={})
 Constructeur. Plus de détails...
 
C3D_API void clearFaces ()
 Vide le tableau de faces. Plus de détails...
 
C3D_API Face addFace (uint32_t a, uint32_t b, uint32_t c)
 Crée et ajoute une face au sous-maillage. Plus de détails...
 
C3D_API void addFaceGroup (FaceIndices const *const begin, FaceIndices const *const end)
 Crée et ajoute des faces au sous-maillage. Plus de détails...
 
C3D_API void addQuadFace (uint32_t a, uint32_t b, uint32_t c, uint32_t d, castor::Point3f const &minUV=castor::Point3f(), castor::Point3f const &maxUV=castor::Point3f(1, 1, 1))
 Crée et ajoute une face à 4 côtés au sous-maillage. Plus de détails...
 
C3D_API void computeFacesFromPolygonVertex ()
 Crée les faces à partir des points. Plus de détails...
 
C3D_API void computeNormals (InterleavedVertexArray &points, bool reverted=false) const
 Calcule la normale et la tangente pour chaque vertex de la face donnée. Plus de détails...
 
C3D_API void computeNormals (Face const &face)
 Calcule la normale et la tangente pour chaque vertex de la face donnée. Plus de détails...
 
C3D_API void computeNormals (InterleavedVertexArray &points, Face const &face) const
 Calcule la normale et la tangente pour chaque vertex de la face donnée. Plus de détails...
 
C3D_API void computeTangents (Face const &face)
 Calcule la tangente pour chaque vertex de la face donnée. Plus de détails...
 
C3D_API void computeTangents (InterleavedVertexArray &points, Face const &face) const
 Calcule la tangente pour chaque vertex de la face donnée. Plus de détails...
 
C3D_API void computeTangentsFromNormals ()
 Calcule la tangente pour chaque vertex du sous-maillage. Plus de détails...
 
C3D_API void computeTangentsFromNormals (InterleavedVertexArray &points) const
 Calcule la tangente pour chaque vertex du sous-maillage. Plus de détails...
 
C3D_API uint32_t getCount () const override
 
C3D_API uint32_t getComponentsCount () const override
 
C3D_API void sortByDistance (castor::Point3f const &cameraPosition) override
 Trie les faces des plus éloignées aux plus proches de la caméra. Plus de détails...
 
C3D_API void computeNormals (bool reverted=false) override
 Génère les normales et les tangentes. Plus de détails...
 
C3D_API SubmeshComponentSPtr clone (Submesh &submesh) const override
 
void addFaceGroup (std::vector< FaceIndices > const &faces)
 Crée et ajoute une face au sous-maillage. Plus de détails...
 
template<size_t Count>
void addFaceGroup (std::array< FaceIndices, Count > const &faces)
 Crée et ajoute une face au sous-maillage. Plus de détails...
 
template<uint32_t Count>
void addFaceGroup (FaceIndices(&faces)[Count])
 Crée et ajoute une face au sous-maillage. Plus de détails...
 
Face const & operator[] (uint32_t index) const
 Récupère la face à l'index donné. Plus de détails...
 
FaceArray const & getFaces () const
 
FaceArray & getFaces ()
 
- Fonctions membres publiques hérités de castor3d::IndexMapping
C3D_API IndexMapping (Submesh &submesh, castor::String const &type, VkBufferUsageFlags bufferUsageFlags)
 Constructeur. Plus de détails...
 
virtual C3D_API uint32_t getCount () const =0
 
virtual C3D_API uint32_t getComponentsCount () const =0
 
virtual C3D_API void sortByDistance (castor::Point3f const &cameraPosition)=0
 Trie les faces des plus éloignées aux plus proches de la caméra. Plus de détails...
 
virtual C3D_API void computeNormals (bool reverted=false)=0
 Génère les normales et les tangentes. Plus de détails...
 
void gather (ShaderFlags const &shaderFlags, ProgramFlags const &programFlags, MaterialRPtr material, ashes::BufferCRefArray &buffers, std::vector< uint64_t > &offsets, ashes::PipelineVertexInputStateCreateInfoCRefArray &layouts, TextureFlagsArray const &mask, uint32_t &currentLocation) override
 Récupère les tampons qui doivent aller dans un vertex layout. Plus de détails...
 
ProgramFlags getProgramFlags (MaterialRPtr material) const override
 
VkBufferUsageFlags getUsageFlags () const override
 
- Fonctions membres publiques hérités de castor3d::SubmeshComponent
C3D_API SubmeshComponent (Submesh &submesh, castor::String const &type, uint32_t id)
 Constructeur. Plus de détails...
 
virtual C3D_API ~SubmeshComponent () noexcept=default
 Destructeur. Plus de détails...
 
C3D_API bool initialise (RenderDevice const &device)
 Initialise le sous-maillage. Plus de détails...
 
C3D_API void cleanup (RenderDevice const &device)
 Nettoie le sous-maillage. Plus de détails...
 
C3D_API void upload ()
 Met les données en VRAM. Plus de détails...
 
virtual C3D_API void gather (ShaderFlags const &shaderFlags, ProgramFlags const &programFlags, MaterialRPtr material, ashes::BufferCRefArray &buffers, std::vector< uint64_t > &offsets, ashes::PipelineVertexInputStateCreateInfoCRefArray &layouts, TextureFlagsArray const &mask, uint32_t &currentLocation)=0
 Récupère les tampons qui doivent aller dans un vertex layout. Plus de détails...
 
virtual C3D_API ProgramFlags getProgramFlags (MaterialRPtr material) const =0
 
virtual C3D_API VkBufferUsageFlags getUsageFlags () const
 
virtual C3D_API SubmeshComponentSPtr clone (Submesh &submesh) const =0
 
castor::String const & getType () const
 
void needsUpdate ()
 Dit que le composant doit être mis à jour. Plus de détails...
 
uint32_t getID ()
 

Attributs publics statiques

static C3D_API castor::String const Name
 

Membres hérités additionnels

- Attributs protégés hérités de castor3d::IndexMapping
StagingDataUPtr m_staging
 

Documentation des constructeurs et destructeur

◆ TriFaceMapping()

C3D_API castor3d::TriFaceMapping::TriFaceMapping ( Submesh submesh,
VkBufferUsageFlags  bufferUsageFlags = {} 
)
explicit

Constructeur.

Paramètres
[in]submeshLe sous-maillage parent.
[in]bufferUsageFlagsLes flags d'utilisation du buffer.

Documentation des fonctions membres

◆ addFace()

C3D_API Face castor3d::TriFaceMapping::addFace ( uint32_t  a,
uint32_t  b,
uint32_t  c 
)

Crée et ajoute une face au sous-maillage.

Paramètres
[in]aL'index du premier vertex.
[in]bL'index du second vertex.
[in]cL'index du troisième vertex.
Renvoie
La face créée.

◆ addFaceGroup() [1/4]

C3D_API void castor3d::TriFaceMapping::addFaceGroup ( FaceIndices const *const  begin,
FaceIndices const *const  end 
)

Crée et ajoute des faces au sous-maillage.

Paramètres
[in]beginLe début des données de faces.
[in]endLa fin des données de faces.

Référencé par addFaceGroup().

Voici le graphe des appelants de cette fonction :

◆ addFaceGroup() [2/4]

template<uint32_t Count>
void castor3d::TriFaceMapping::addFaceGroup ( FaceIndices(&)  faces[Count])
inline

Crée et ajoute une face au sous-maillage.

Paramètres
[in]facesLes faces.

Références addFaceGroup().

Voici le graphe d'appel pour cette fonction :

◆ addFaceGroup() [3/4]

template<size_t Count>
void castor3d::TriFaceMapping::addFaceGroup ( std::array< FaceIndices, Count > const &  faces)
inline

Crée et ajoute une face au sous-maillage.

Paramètres
[in]facesLes faces.

Références addFaceGroup().

Voici le graphe d'appel pour cette fonction :

◆ addFaceGroup() [4/4]

void castor3d::TriFaceMapping::addFaceGroup ( std::vector< FaceIndices > const &  faces)
inline

Crée et ajoute une face au sous-maillage.

Paramètres
[in]facesLes faces.

Références addFaceGroup().

Voici le graphe d'appel pour cette fonction :

◆ addQuadFace()

C3D_API void castor3d::TriFaceMapping::addQuadFace ( uint32_t  a,
uint32_t  b,
uint32_t  c,
uint32_t  d,
castor::Point3f const &  minUV = castor::Point3f(),
castor::Point3f const &  maxUV = castor::Point3f(1, 1, 1) 
)

Crée et ajoute une face à 4 côtés au sous-maillage.

Paramètres
[in]aL'index du premier vertex.
[in]bL'index du second vertex.
[in]cL'index du troisième vertex.
[in]dL'index du quatrième vertex.
[in]minUVL'UV du coin bas gauche.
[in]maxUVL'UV du coin haut droit.

◆ clearFaces()

C3D_API void castor3d::TriFaceMapping::clearFaces ( )

Vide le tableau de faces.

◆ clone()

C3D_API SubmeshComponentSPtr castor3d::TriFaceMapping::clone ( Submesh submesh) const
overridevirtual

Renvoie
Clone ce composant dans le submesh donné.
Paramètres
[in,out]submeshReçoit le composant cloné.

Implémente castor3d::SubmeshComponent.

◆ computeFacesFromPolygonVertex()

C3D_API void castor3d::TriFaceMapping::computeFacesFromPolygonVertex ( )

Crée les faces à partir des points.

Remarques
Cette fonction suppose que les points sont tirés à la manière triangles fan.

◆ computeNormals() [1/4]

C3D_API void castor3d::TriFaceMapping::computeNormals ( bool  reverted = false)
overridevirtual

Génère les normales et les tangentes.

Paramètres
[in]revertedDit si les normales sont inversées.

Implémente castor3d::IndexMapping.

◆ computeNormals() [2/4]

C3D_API void castor3d::TriFaceMapping::computeNormals ( Face const &  face)

Calcule la normale et la tangente pour chaque vertex de la face donnée.

Paramètres
[in]faceLa face.

◆ computeNormals() [3/4]

C3D_API void castor3d::TriFaceMapping::computeNormals ( InterleavedVertexArray points,
bool  reverted = false 
) const

Calcule la normale et la tangente pour chaque vertex de la face donnée.

Paramètres
[in,out]pointsLes points.
[in]revertedtrue pour inverser les normales.

◆ computeNormals() [4/4]

C3D_API void castor3d::TriFaceMapping::computeNormals ( InterleavedVertexArray points,
Face const &  face 
) const

Calcule la normale et la tangente pour chaque vertex de la face donnée.

Paramètres
[in,out]pointsLes points.
[in]faceLa face.

◆ computeTangents() [1/2]

C3D_API void castor3d::TriFaceMapping::computeTangents ( Face const &  face)

Calcule la tangente pour chaque vertex de la face donnée.

Paramètres
[in]faceLa face.

◆ computeTangents() [2/2]

C3D_API void castor3d::TriFaceMapping::computeTangents ( InterleavedVertexArray points,
Face const &  face 
) const

Calcule la tangente pour chaque vertex de la face donnée.

Paramètres
[in,out]pointsLes points.
[in]faceLa face.

◆ computeTangentsFromNormals() [1/2]

C3D_API void castor3d::TriFaceMapping::computeTangentsFromNormals ( )

Calcule la tangente pour chaque vertex du sous-maillage.

Remarques
Cette fonction suppose que les normales sont définies.

◆ computeTangentsFromNormals() [2/2]

C3D_API void castor3d::TriFaceMapping::computeTangentsFromNormals ( InterleavedVertexArray points) const

Calcule la tangente pour chaque vertex du sous-maillage.

Remarques
Cette fonction suppose que les normales sont définies.
Paramètres
[in,out]pointsLes points.

◆ getComponentsCount()

C3D_API uint32_t castor3d::TriFaceMapping::getComponentsCount ( ) const
overridevirtual

Renvoie
Le nombre de composantes d'un élément.

Implémente castor3d::IndexMapping.

◆ getCount()

C3D_API uint32_t castor3d::TriFaceMapping::getCount ( ) const
overridevirtual

Renvoie
Le nombre d'éléments.

Implémente castor3d::IndexMapping.

◆ getFaces() [1/2]

FaceArray & castor3d::TriFaceMapping::getFaces ( )
inline
Renvoie
Le tableau de faces.

◆ getFaces() [2/2]

FaceArray const & castor3d::TriFaceMapping::getFaces ( ) const
inline
Renvoie
Le tableau de faces.

◆ operator[]()

Face const & castor3d::TriFaceMapping::operator[] ( uint32_t  index) const
inline

Récupère la face à l'index donné.

Paramètres
[in]indexL'index.
Renvoie
La valeur.

◆ sortByDistance()

C3D_API void castor3d::TriFaceMapping::sortByDistance ( castor::Point3f const &  cameraPosition)
overridevirtual

Trie les faces des plus éloignées aux plus proches de la caméra.

Paramètres
[in]cameraPositionLa position de la caméra, relative au sous-maillage

Implémente castor3d::IndexMapping.

Documentation des données membres

◆ Name

C3D_API castor::String const castor3d::TriFaceMapping::Name
static

La documentation de cette classe a été générée à partir du fichier suivant :