Castor3D 0.12.0
Multiplatform 3D engine
Fonctions membres publiques | Amis | Liste de tous les membres
Référence de la classe castor3d::Submesh

#include <Submesh.hpp>

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

Fonctions membres publiques

C3D_API Submesh (Mesh &mesh, uint32_t id=1)
 Constructeur. Plus de détails...
 
C3D_API ~Submesh ()
 Destructeur. Plus de détails...
 
C3D_API void 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 update ()
 Met à jour les tampons. Plus de détails...
 
C3D_API void computeContainers ()
 Calcule les conteneurs (cube et sphère) Plus de détails...
 
C3D_API void updateContainers (castor::BoundingBox const &boundingBox)
 Met à jour les conteneurs depuis la bounding box donnée. Plus de détails...
 
C3D_API uint32_t getFaceCount () const
 
C3D_API uint32_t getPointsCount () const
 
C3D_API int isInMyPoints (castor::Point3f const &position, double precision)
 Teste si le point donné fait partie de ceux de ce sous-maillage. Plus de détails...
 
C3D_API InterleavedVertex addPoint (float x, float y, float z)
 Crée un Vertex à partir des coordonnées données et l'ajoute à la liste. Plus de détails...
 
C3D_API InterleavedVertex addPoint (castor::Point3f const &value)
 Crée un Vertex à partir du point donné et l'ajoute à la liste. Plus de détails...
 
C3D_API InterleavedVertex addPoint (float *value)
 Crée un Vertex à partir des coordonnées données et l'ajoute à la liste. Plus de détails...
 
C3D_API void addPoint (InterleavedVertex const &value)
 Ajoute un sommet à la liste. Plus de détails...
 
C3D_API void addPoints (InterleavedVertex const *const begin, InterleavedVertex const *const end)
 Ajoute des points à la liste. Plus de détails...
 
C3D_API void computeNormals (bool reverted=false)
 Génère les normales et les tangentes. Plus de détails...
 
C3D_API void sortByDistance (castor::Point3f const &cameraPosition)
 Trie les faces des plus éloignées aux plus proches de la caméra. Plus de détails...
 
C3D_API ProgramFlags getProgramFlags (MaterialRPtr material) const
 
C3D_API void setMaterial (MaterialRPtr oldMaterial, MaterialRPtr newMaterial, bool update)
 Définit le materiau. Plus de détails...
 
C3D_API GeometryBuffers const & getGeometryBuffers (ShaderFlags const &shaderFlags, ProgramFlags const &programFlags, MaterialRPtr material, TextureFlagsArray const &mask, bool forceTexcoords) const
 
void addPoints (std::vector< InterleavedVertex > const &vertices)
 Ajoute des points à la liste. Plus de détails...
 
template<size_t Count>
void addPoints (std::array< InterleavedVertex, Count > const &vertices)
 Ajoute des points à la liste. Plus de détails...
 
void setDefaultMaterial (MaterialRPtr material)
 Définit le material. Plus de détails...
 
void needsUpdate ()
 Dit que le sous-maillage doit être mis à jour. Plus de détails...
 
void setIndexMapping (IndexMappingSPtr mapping)
 Définit le mappage d'indices. Plus de détails...
 
IndexMappingSPtr getIndexMapping () const
 
void addComponent (castor::String const &name, SubmeshComponentSPtr component)
 Ajoute un composant. Plus de détails...
 
template<typename T >
void addComponent (std::shared_ptr< T > component)
 Ajoute un composant. Plus de détails...
 
void setTopology (VkPrimitiveTopology value)
 Définit la topologie. Plus de détails...
 
void disableSceneUpdate ()
 Désactive la mise à jour de la scène en cas de modification. Plus de détails...
 
C3D_API void enableSceneUpdate (bool updateScene)
 Active la mise à jour de la scène en cas de modification. Plus de détails...
 

Amis

template<typename T >
struct SubmeshComponentAdder
 
class BinaryWriter< Submesh >
 
class BinaryParser< Submesh >
 
static uint32_t constexpr Position = 0u
 
static uint32_t constexpr Normal = 1u
 
static uint32_t constexpr Tangent = 2u
 
static uint32_t constexpr Bitangent = 3u
 
static uint32_t constexpr Texture = 4u
 
SkeletonSPtr getSkeleton () const
 
InterleavedVertex const & operator[] (uint32_t index) const
 
InterleavedVertexoperator[] (uint32_t index)
 
InterleavedVertex const & getPoint (uint32_t index) const
 
InterleavedVertexgetPoint (uint32_t index)
 
MaterialRPtr getDefaultMaterial () const
 
castor::BoundingBox const & getBoundingBox () const
 
castor::BoundingBox & getBoundingBox ()
 
castor::BoundingSphere const & getBoundingSphere () const
 
castor::BoundingSphere & getBoundingSphere ()
 
InterleavedVertexArray const & getPoints () const
 
InterleavedVertexArraygetPoints ()
 
bool hasBufferOffsets () const
 
ObjectBufferOffset const & getBufferOffsets () const
 
bool isInitialised () const
 
bool isDynamic () const
 
Mesh const & getParent () const
 
MeshgetParent ()
 
uint32_t getId () const
 
bool hasComponent (castor::String const &name) const
 
SubmeshComponentSPtr getComponent (castor::String const &name) const
 
template<typename T >
std::shared_ptr< T > getComponent () const
 
InstantiationComponentgetInstantiation ()
 
InstantiationComponent const & getInstantiation () const
 
SubmeshComponentIDMap const & getComponents () const
 
VkPrimitiveTopology getTopology () const
 

Documentation des constructeurs et destructeur

◆ Submesh()

C3D_API castor3d::Submesh::Submesh ( Mesh mesh,
uint32_t  id = 1 
)
explicit

Constructeur.

Paramètres
[in]meshLe mesh parent.
[in]idL'ID du sous-maillage.

◆ ~Submesh()

C3D_API castor3d::Submesh::~Submesh ( )

Destructeur.

Documentation des fonctions membres

◆ addComponent() [1/2]

void castor3d::Submesh::addComponent ( castor::String const &  name,
SubmeshComponentSPtr  component 
)
inline

Ajoute un composant.

Paramètres
[in]nameLe nom du composant.
[in]componentLe composant.

◆ addComponent() [2/2]

template<typename T >
void castor3d::Submesh::addComponent ( std::shared_ptr< T >  component)
inline

Ajoute un composant.

Paramètres
[in]componentLe composant.

◆ addPoint() [1/4]

C3D_API InterleavedVertex castor3d::Submesh::addPoint ( castor::Point3f const &  value)

Crée un Vertex à partir du point donné et l'ajoute à la liste.

Paramètres
[in]valueLe point
Renvoie
Le vertex créé

◆ addPoint() [2/4]

C3D_API InterleavedVertex castor3d::Submesh::addPoint ( float *  value)

Crée un Vertex à partir des coordonnées données et l'ajoute à la liste.

Paramètres
[in]valueLes coordonnées du point
Renvoie
Le vertex créé

◆ addPoint() [3/4]

C3D_API InterleavedVertex castor3d::Submesh::addPoint ( float  x,
float  y,
float  z 
)

Crée un Vertex à partir des coordonnées données et l'ajoute à la liste.

Paramètres
[in]xCoordonnée X
[in]yCoordonnée Y
[in]zCoordonnée Y
Renvoie
Le vertex créé

◆ addPoint() [4/4]

C3D_API void castor3d::Submesh::addPoint ( InterleavedVertex const &  value)

Ajoute un sommet à la liste.

Paramètres
[in]valueLe sommet.

◆ addPoints() [1/3]

C3D_API void castor3d::Submesh::addPoints ( InterleavedVertex const *const  begin,
InterleavedVertex const *const  end 
)

Ajoute des points à la liste.

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

◆ addPoints() [2/3]

template<size_t Count>
void castor3d::Submesh::addPoints ( std::array< InterleavedVertex, Count > const &  vertices)
inline

Ajoute des points à la liste.

Paramètres
[in]verticesLes vertices

◆ addPoints() [3/3]

void castor3d::Submesh::addPoints ( std::vector< InterleavedVertex > const &  vertices)
inline

Ajoute des points à la liste.

Paramètres
[in]verticesLes vertices

◆ cleanup()

C3D_API void castor3d::Submesh::cleanup ( RenderDevice const &  device)

Nettoie le sous-maillage.

◆ computeContainers()

C3D_API void castor3d::Submesh::computeContainers ( )

Calcule les conteneurs (cube et sphère)

◆ computeNormals()

C3D_API void castor3d::Submesh::computeNormals ( bool  reverted = false)

Génère les normales et les tangentes.

◆ disableSceneUpdate()

void castor3d::Submesh::disableSceneUpdate ( )
inline

Désactive la mise à jour de la scène en cas de modification.

◆ enableSceneUpdate()

C3D_API void castor3d::Submesh::enableSceneUpdate ( bool  updateScene)

Active la mise à jour de la scène en cas de modification.

Paramètres
[in]updateSceneDit si cet appel déclenche une mise à jour de la scène.

◆ getBoundingBox() [1/2]

castor::BoundingBox & castor3d::Submesh::getBoundingBox ( )
inline

◆ getBoundingBox() [2/2]

castor::BoundingBox const & castor3d::Submesh::getBoundingBox ( ) const
inline

◆ getBoundingSphere() [1/2]

castor::BoundingSphere & castor3d::Submesh::getBoundingSphere ( )
inline

◆ getBoundingSphere() [2/2]

castor::BoundingSphere const & castor3d::Submesh::getBoundingSphere ( ) const
inline

◆ getBufferOffsets()

ObjectBufferOffset const & castor3d::Submesh::getBufferOffsets ( ) const
inline

◆ getComponent() [1/2]

template<typename T >
std::shared_ptr< T > castor3d::Submesh::getComponent ( ) const
inline

◆ getComponent() [2/2]

SubmeshComponentSPtr castor3d::Submesh::getComponent ( castor::String const &  name) const
inline

◆ getComponents()

SubmeshComponentIDMap const & castor3d::Submesh::getComponents ( ) const
inline

◆ getDefaultMaterial()

MaterialRPtr castor3d::Submesh::getDefaultMaterial ( ) const
inline

◆ getFaceCount()

C3D_API uint32_t castor3d::Submesh::getFaceCount ( ) const
Renvoie
Le nombre de faces de ce submesh

◆ getGeometryBuffers()

C3D_API GeometryBuffers const & castor3d::Submesh::getGeometryBuffers ( ShaderFlags const &  shaderFlags,
ProgramFlags const &  programFlags,
MaterialRPtr  material,
TextureFlagsArray const &  mask,
bool  forceTexcoords 
) const
Renvoie
Les tampons de géométrie associés au materiau donné.
Paramètres
[in]shaderFlagsLes shader flags.
[in]programFlagsLes program flags.
[in]materialLes matériau.
[in]maskLe masque de textures.
[in]forceTexcoordstrue pour forcer les coordonnées de texture dans le vertex layout.

◆ getId()

uint32_t castor3d::Submesh::getId ( ) const
inline

◆ getIndexMapping()

IndexMappingSPtr castor3d::Submesh::getIndexMapping ( ) const
inline
Renvoie
Le mappage d'indices.

◆ getInstantiation() [1/2]

InstantiationComponent & castor3d::Submesh::getInstantiation ( )
inline

◆ getInstantiation() [2/2]

InstantiationComponent const & castor3d::Submesh::getInstantiation ( ) const
inline

◆ getParent() [1/2]

Mesh & castor3d::Submesh::getParent ( )
inline

◆ getParent() [2/2]

Mesh const & castor3d::Submesh::getParent ( ) const
inline

◆ getPoint() [1/2]

InterleavedVertex & castor3d::Submesh::getPoint ( uint32_t  index)
inline

◆ getPoint() [2/2]

InterleavedVertex const & castor3d::Submesh::getPoint ( uint32_t  index) const
inline

◆ getPoints() [1/2]

InterleavedVertexArray & castor3d::Submesh::getPoints ( )
inline

◆ getPoints() [2/2]

InterleavedVertexArray const & castor3d::Submesh::getPoints ( ) const
inline

◆ getPointsCount()

C3D_API uint32_t castor3d::Submesh::getPointsCount ( ) const
Renvoie
Le nombre de vertices de ce sous-maillage

◆ getProgramFlags()

C3D_API ProgramFlags castor3d::Submesh::getProgramFlags ( MaterialRPtr  material) const
Renvoie
Les indicateurs de shader.

◆ getSkeleton()

SkeletonSPtr castor3d::Submesh::getSkeleton ( ) const
inline

name Accesseurs.

◆ getTopology()

VkPrimitiveTopology castor3d::Submesh::getTopology ( ) const
inline

◆ hasBufferOffsets()

bool castor3d::Submesh::hasBufferOffsets ( ) const
inline

◆ hasComponent()

bool castor3d::Submesh::hasComponent ( castor::String const &  name) const
inline

◆ initialise()

C3D_API void castor3d::Submesh::initialise ( RenderDevice const &  device)

Initialise le sous-maillage.

◆ isDynamic()

bool castor3d::Submesh::isDynamic ( ) const
inline

◆ isInitialised()

bool castor3d::Submesh::isInitialised ( ) const
inline

◆ isInMyPoints()

C3D_API int castor3d::Submesh::isInMyPoints ( castor::Point3f const &  position,
double  precision 
)

Teste si le point donné fait partie de ceux de ce sous-maillage.

Paramètres
[in]positionLe point à tester
[in]precisionLa précision de comparaison
Renvoie
L'index du point s'il a été trouvé, -1 sinon

◆ needsUpdate()

void castor3d::Submesh::needsUpdate ( )
inline

Dit que le sous-maillage doit être mis à jour.

◆ operator[]() [1/2]

InterleavedVertex & castor3d::Submesh::operator[] ( uint32_t  index)
inline

◆ operator[]() [2/2]

InterleavedVertex const & castor3d::Submesh::operator[] ( uint32_t  index) const
inline

◆ setDefaultMaterial()

void castor3d::Submesh::setDefaultMaterial ( MaterialRPtr  material)
inline

Définit le material.

Paramètres
[in]materialLa nouvelle valeur

◆ setIndexMapping()

void castor3d::Submesh::setIndexMapping ( IndexMappingSPtr  mapping)
inline

Définit le mappage d'indices.

Paramètres
[in]mappingLe mappage.

◆ setMaterial()

C3D_API void castor3d::Submesh::setMaterial ( MaterialRPtr  oldMaterial,
MaterialRPtr  newMaterial,
bool  update 
)

Définit le materiau.

Paramètres
[in]oldMaterialLe matériau précédent.
[in]newMaterialLe nouveau matériau.
[in]updateDit si les tampons doivent être mis à jour.

◆ setTopology()

void castor3d::Submesh::setTopology ( VkPrimitiveTopology  value)
inline

Définit la topologie.

Paramètres
[in]valueLa nouvelle valeur.

◆ sortByDistance()

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

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

◆ update()

C3D_API void castor3d::Submesh::update ( )

Met à jour les tampons.

◆ updateContainers()

C3D_API void castor3d::Submesh::updateContainers ( castor::BoundingBox const &  boundingBox)

Met à jour les conteneurs depuis la bounding box donnée.

Documentation des fonctions amies et associées

◆ BinaryParser< Submesh >

friend class BinaryParser< Submesh >
friend

◆ BinaryWriter< Submesh >

friend class BinaryWriter< Submesh >
friend

◆ SubmeshComponentAdder

template<typename T >
friend struct SubmeshComponentAdder
friend

Documentation des données membres

◆ Bitangent

uint32_t constexpr castor3d::Submesh::Bitangent = 3u
staticconstexpr

◆ Normal

uint32_t constexpr castor3d::Submesh::Normal = 1u
staticconstexpr

◆ Position

uint32_t constexpr castor3d::Submesh::Position = 0u
staticconstexpr

◆ Tangent

uint32_t constexpr castor3d::Submesh::Tangent = 2u
staticconstexpr

◆ Texture

uint32_t constexpr castor3d::Submesh::Texture = 4u
staticconstexpr

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