Castor3D 0.15.0
Multiplatform 3D engine
|
#include <TriFaceMapping.hpp>
Fonctions membres publiques | |
C3D_API | TriFaceMapping (Submesh &submesh, VkBufferUsageFlags bufferUsageFlags={}) |
Constructeur. | |
C3D_API void | clearFaces () |
Vide le tableau de faces. | |
C3D_API Face | addFace (uint32_t a, uint32_t b, uint32_t c) |
Crée et ajoute une face au sous-maillage. | |
C3D_API void | addFaceGroup (FaceIndices const *const begin, FaceIndices const *const end) |
Crée et ajoute des faces au sous-maillage. | |
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. | |
C3D_API void | computeFacesFromPolygonVertex () |
Crée les faces à partir des points. | |
C3D_API void | computeNormals (castor::Point3fArray const &positions, castor::Point3fArray const &texcoords, castor::Point3fArray &normals, castor::Point3fArray &tangents, bool reverted=false) const |
Calcule la normale et la tangente pour chaque vertex de la face donnée. | |
C3D_API void | computeNormals (Face const &face) |
Calcule la normale et la tangente pour chaque vertex de la face donnée. | |
C3D_API void | computeNormals (castor::Point3fArray const &positions, castor::Point3fArray const &texcoords, castor::Point3fArray &normals, castor::Point3fArray &tangents, Face const &face) const |
Calcule la normale et la tangente pour chaque vertex de la face donnée. | |
C3D_API void | computeTangents (Face const &face) |
Calcule la tangente pour chaque vertex de la face donnée. | |
C3D_API void | computeTangents (castor::Point3fArray const &positions, castor::Point3fArray const &texcoords, castor::Point3fArray &tangents, Face const &face) const |
Calcule la tangente pour chaque vertex de la face donnée. | |
C3D_API void | computeTangentsFromNormals (castor::Point3fArray const &positions, castor::Point3fArray const &texcoords, castor::Point3fArray const &normals, castor::Point3fArray &tangents) const |
Calcule la tangente pour chaque vertex du sous-maillage. | |
C3D_API uint32_t | getCount () const override |
C3D_API uint32_t | getComponentsCount () const override |
C3D_API void | computeNormals (bool reverted=false) override |
Génère les normales et les tangentes. | |
C3D_API void | computeTangents () override |
Génère les tangentes. | |
C3D_API SubmeshComponentUPtr | clone (Submesh &submesh) const override |
void | addFaceGroup (std::vector< FaceIndices > const &faces) |
Crée et ajoute une face au sous-maillage. | |
template<size_t Count> | |
void | addFaceGroup (std::array< FaceIndices, Count > const &faces) |
Crée et ajoute une face au sous-maillage. | |
template<uint32_t Count> | |
void | addFaceGroup (FaceIndices(&faces)[Count]) |
Crée et ajoute une face au sous-maillage. | |
Face const & | operator[] (uint32_t index) const |
FaceArray const & | getFaces () const |
FaceArray & | getFaces () |
void | setData (FaceArray faces) |
Fonctions membres publiques hérités de castor3d::IndexMapping | |
C3D_API | IndexMapping (Submesh &submesh, castor::String const &type, VkBufferUsageFlags bufferUsageFlags) |
Constructeur. | |
virtual C3D_API uint32_t | getCount () const =0 |
virtual C3D_API uint32_t | getComponentsCount () const =0 |
virtual C3D_API void | computeNormals (bool reverted=false)=0 |
Génère les normales et les tangentes. | |
virtual C3D_API void | computeTangents ()=0 |
Génère les tangentes. | |
void | gather (PipelineFlags const &flags, MaterialObs material, ashes::BufferCRefArray &buffers, std::vector< uint64_t > &offsets, ashes::PipelineVertexInputStateCreateInfoCRefArray &layouts, uint32_t ¤tBinding, uint32_t ¤tLocation) override |
Récupère les tampons qui doivent aller dans un vertex layout. | |
SubmeshFlags | getSubmeshFlags (Pass const *pass) 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. | |
virtual C3D_API | ~SubmeshComponent () noexcept=default |
Destructeur. | |
C3D_API bool | initialise (RenderDevice const &device) |
Initialise le sous-maillage. | |
C3D_API void | cleanup (RenderDevice const &device) |
Nettoie le sous-maillage. | |
C3D_API void | upload () |
Met les données en VRAM. | |
virtual C3D_API void | gather (PipelineFlags const &flags, MaterialObs material, ashes::BufferCRefArray &buffers, std::vector< uint64_t > &offsets, ashes::PipelineVertexInputStateCreateInfoCRefArray &layouts, uint32_t ¤tBinding, uint32_t ¤tLocation)=0 |
Récupère les tampons qui doivent aller dans un vertex layout. | |
virtual C3D_API ProgramFlags | getProgramFlags (Material const &material) const |
virtual C3D_API SubmeshFlags | getSubmeshFlags (Pass const *pass) const |
virtual C3D_API VkBufferUsageFlags | getUsageFlags () const |
virtual C3D_API SubmeshComponentUPtr | clone (Submesh &submesh) const =0 |
castor::String const & | getType () const |
void | needsUpdate () |
Dit que le composant doit être mis à jour. | |
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 |
|
explicit |
Constructeur.
[in] | submesh | Le sous-maillage parent. |
[in] | bufferUsageFlags | Les flags d'utilisation du buffer. |
Crée et ajoute une face au sous-maillage.
[in] | a | L'index du premier vertex. |
[in] | b | L'index du second vertex. |
[in] | c | L'index du troisième vertex. |
C3D_API void castor3d::TriFaceMapping::addFaceGroup | ( | FaceIndices const *const | begin, |
FaceIndices const *const | end | ||
) |
Crée et ajoute des faces au sous-maillage.
[in] | begin | Le début des données de faces. |
[in] | end | La fin des données de faces. |
Référencé par addFaceGroup().
|
inline |
Crée et ajoute une face au sous-maillage.
[in] | faces | Les faces. |
Références addFaceGroup().
|
inline |
Crée et ajoute une face au sous-maillage.
[in] | faces | Les faces. |
Références addFaceGroup().
|
inline |
Crée et ajoute une face au sous-maillage.
[in] | faces | Les faces. |
Références addFaceGroup().
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.
[in] | a | L'index du premier vertex. |
[in] | b | L'index du second vertex. |
[in] | c | L'index du troisième vertex. |
[in] | d | L'index du quatrième vertex. |
[in] | minUV | L'UV du coin bas gauche. |
[in] | maxUV | L'UV du coin haut droit. |
C3D_API void castor3d::TriFaceMapping::clearFaces | ( | ) |
Vide le tableau de faces.
|
overridevirtual |
[in,out] | submesh | Reçoit le composant cloné. |
Implémente castor3d::SubmeshComponent.
C3D_API void castor3d::TriFaceMapping::computeFacesFromPolygonVertex | ( | ) |
Crée les faces à partir des points.
|
overridevirtual |
Génère les normales et les tangentes.
[in] | reverted | Dit si les normales sont inversées. |
Implémente castor3d::IndexMapping.
C3D_API void castor3d::TriFaceMapping::computeNormals | ( | castor::Point3fArray const & | positions, |
castor::Point3fArray const & | texcoords, | ||
castor::Point3fArray & | normals, | ||
castor::Point3fArray & | tangents, | ||
bool | reverted = false |
||
) | const |
Calcule la normale et la tangente pour chaque vertex de la face donnée.
[in] | positions | Les positions des sommets. |
[in] | texcoords | Les coordonnées de texture des sommets. |
[out] | normals | Les normales des sommets. |
[out] | tangents | Les tangentes des sommets. |
[in] | reverted | true pour inverser les normales. |
C3D_API void castor3d::TriFaceMapping::computeNormals | ( | castor::Point3fArray const & | positions, |
castor::Point3fArray const & | texcoords, | ||
castor::Point3fArray & | normals, | ||
castor::Point3fArray & | tangents, | ||
Face const & | face | ||
) | const |
Calcule la normale et la tangente pour chaque vertex de la face donnée.
[in] | positions | Les positions des sommets. |
[in] | texcoords | Les coordonnées de texture des sommets. |
[out] | normals | Les normales des sommets. |
[out] | tangents | Les tangentes des sommets. |
[in] | face | La face. |
Calcule la normale et la tangente pour chaque vertex de la face donnée.
[in] | face | La face. |
|
overridevirtual |
Génère les tangentes.
Implémente castor3d::IndexMapping.
C3D_API void castor3d::TriFaceMapping::computeTangents | ( | castor::Point3fArray const & | positions, |
castor::Point3fArray const & | texcoords, | ||
castor::Point3fArray & | tangents, | ||
Face const & | face | ||
) | const |
Calcule la tangente pour chaque vertex de la face donnée.
[in] | positions | Les positions des sommets. |
[in] | texcoords | Les coordonnées de texture des sommets. |
[out] | tangents | Les tangentes des sommets. |
[in] | face | La face. |
Calcule la tangente pour chaque vertex de la face donnée.
[in] | face | La face. |
C3D_API void castor3d::TriFaceMapping::computeTangentsFromNormals | ( | castor::Point3fArray const & | positions, |
castor::Point3fArray const & | texcoords, | ||
castor::Point3fArray const & | normals, | ||
castor::Point3fArray & | tangents | ||
) | const |
Calcule la tangente pour chaque vertex du sous-maillage.
[in] | positions | Les positions des sommets. |
[in] | texcoords | Les coordonnées de texture des sommets. |
[in] | normals | Les normales des sommets. |
[out] | tangents | Les tangentes des sommets. |
|
overridevirtual |
Implémente castor3d::IndexMapping.
|
overridevirtual |
Implémente castor3d::IndexMapping.
|
inline |
|
inline |
|
inline |
|
inline |
|
static |