Castor3D 0.13.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, SubmeshFlags const &flags=SubmeshFlags{})
 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 ProgramFlags getProgramFlags (Material const &material) const
 
C3D_API SubmeshFlags getSubmeshFlags (Pass const *pass) const
 
C3D_API MorphFlags getMorphFlags () const
 
C3D_API void instantiate (Geometry const *geometry, MaterialRPtr oldMaterial, MaterialRPtr newMaterial, bool update)
 Instancie le submesh avec une géométrie et son matériau. Plus de détails...
 
C3D_API GeometryBuffers const & getGeometryBuffers (SubmeshRenderNode const &node, ShaderFlags const &shaderFlags, ProgramFlags const &programFlags, SubmeshFlags const &submeshFlags, TextureFlagsArray const &mask) const
 
C3D_API void enableSceneUpdate (bool updateScene)
 Active la mise à jour de la scène en cas de modification. Plus de détails...
 
C3D_API void setBaseData (SubmeshData submeshData, castor::Point3fArray data)
 
void disableSceneUpdate ()
 
void needsUpdate ()
 
void addPoints (std::vector< InterleavedVertex > const &vertices)
 
template<size_t Count>
void addPoints (std::array< InterleavedVertex, Count > const &vertices)
 
void setDefaultMaterial (MaterialRPtr material)
 
void setIndexMapping (IndexMappingSPtr mapping)
 
IndexMappingSPtr getIndexMapping () const
 
template<typename ComponentT , typename ... ParamsT>
std::shared_ptr< ComponentT > createComponent (ParamsT &&... params)
 
void addComponent (SubmeshComponentSPtr component)
 
template<typename ComponentT >
void addComponent (std::shared_ptr< ComponentT > component)
 
void setTopology (VkPrimitiveTopology value)
 
C3D_API InterleavedVertex getInterleavedPoint (uint32_t index) const
 
C3D_API castor::Point3fArray const & getPositions () const
 
C3D_API castor::Point3fArray & getPositions ()
 
C3D_API castor::Point3fArray const & getNormals () const
 
C3D_API castor::Point3fArray & getNormals ()
 
C3D_API castor::Point3fArray const & getTangents () const
 
C3D_API castor::Point3fArray & getTangents ()
 
C3D_API castor::Point3fArray const & getTexcoords0 () const
 
C3D_API castor::Point3fArray & getTexcoords0 ()
 
C3D_API castor::Point3fArray const & getTexcoords1 () const
 
C3D_API castor::Point3fArray & getTexcoords1 ()
 
C3D_API castor::Point3fArray const & getTexcoords2 () const
 
C3D_API castor::Point3fArray & getTexcoords2 ()
 
C3D_API castor::Point3fArray const & getTexcoords3 () const
 
C3D_API castor::Point3fArray & getTexcoords3 ()
 
C3D_API castor::Point3fArray const & getColours () const
 
C3D_API castor::Point3fArray & getColours ()
 
C3D_API castor::Point3fArray const & getBaseData (SubmeshData submeshData) const
 
C3D_API castor::Point3fArray & getBaseData (SubmeshData submeshData)
 
C3D_API GpuBufferOffsetT< castor::Point4f > const & getMorphTargets () const
 
C3D_API uint32_t getMorphTargetsCount () const
 
C3D_API std::vector< Meshlet > const & getMeshlets () const
 
C3D_API std::vector< Meshlet > & getMeshlets ()
 
C3D_API uint32_t getMeshletsCount () const
 
C3D_API bool isDynamic () const
 
C3D_API ObjectBufferOffset const & getFinalBufferOffsets (Geometry const &instance) const
 
C3D_API ObjectBufferOffset const & getSourceBufferOffsets () const
 
C3D_API GpuBufferOffsetT< Meshlet > const & getMeshletsBuffer () const
 
C3D_API GpuBufferOffsetT< MeshletCullData > const & getFinalMeshletsBounds (Geometry const &instance) const
 
C3D_API GpuBufferOffsetT< MeshletCullData > const & getSourceMeshletsBounds () const
 
C3D_API bool hasMorphComponent () const
 
C3D_API bool hasSkinComponent () const
 
SkeletonRPtr getSkeleton () const
 
MaterialRPtr getDefaultMaterial () const
 
castor::BoundingBox const & getBoundingBox () const
 
castor::BoundingBox & getBoundingBox ()
 
castor::BoundingSphere const & getBoundingSphere () const
 
castor::BoundingSphere & getBoundingSphere ()
 
bool isInitialised () 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 ComponentT >
std::shared_ptr< ComponentT > getComponent () const
 
InstantiationComponentgetInstantiation ()
 
InstantiationComponent const & getInstantiation () const
 
SubmeshComponentIDMap const & getComponents () const
 
VkPrimitiveTopology getTopology () const
 
SubmeshFlags getFinalSubmeshFlags () const
 

Amis

template<typename T >
struct SubmeshComponentAdder
 
class BinaryWriter< Submesh >
 
class BinaryParser< Submesh >
 

Documentation des constructeurs et destructeur

◆ Submesh()

C3D_API castor3d::Submesh::Submesh ( Mesh mesh,
uint32_t  id = 1,
SubmeshFlags const &  flags = SubmeshFlags{} 
)
explicit

Constructeur.

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

◆ ~Submesh()

C3D_API castor3d::Submesh::~Submesh ( )

Destructeur.

Documentation des fonctions membres

◆ addComponent() [1/2]

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

◆ addComponent() [2/2]

void castor3d::Submesh::addComponent ( SubmeshComponentSPtr  component)
inline

◆ 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

◆ addPoints() [3/3]

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

◆ 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.

◆ createComponent()

template<typename ComponentT , typename ... ParamsT>
std::shared_ptr< ComponentT > castor3d::Submesh::createComponent ( ParamsT &&...  params)
inline

◆ disableSceneUpdate()

void castor3d::Submesh::disableSceneUpdate ( )
inline

◆ enableSceneUpdate()

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

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

name Mutateurs.

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

◆ getBaseData() [1/2]

C3D_API castor::Point3fArray & castor3d::Submesh::getBaseData ( SubmeshData  submeshData)

◆ getBaseData() [2/2]

C3D_API castor::Point3fArray const & castor3d::Submesh::getBaseData ( SubmeshData  submeshData) const

◆ 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

◆ getColours() [1/2]

C3D_API castor::Point3fArray & castor3d::Submesh::getColours ( )

◆ getColours() [2/2]

C3D_API castor::Point3fArray const & castor3d::Submesh::getColours ( ) const

◆ getComponent() [1/2]

template<typename ComponentT >
std::shared_ptr< ComponentT > 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

◆ getFinalBufferOffsets()

C3D_API ObjectBufferOffset const & castor3d::Submesh::getFinalBufferOffsets ( Geometry const &  instance) const

◆ getFinalMeshletsBounds()

C3D_API GpuBufferOffsetT< MeshletCullData > const & castor3d::Submesh::getFinalMeshletsBounds ( Geometry const &  instance) const

◆ getFinalSubmeshFlags()

SubmeshFlags castor3d::Submesh::getFinalSubmeshFlags ( ) const
inline

◆ getGeometryBuffers()

C3D_API GeometryBuffers const & castor3d::Submesh::getGeometryBuffers ( SubmeshRenderNode const &  node,
ShaderFlags const &  shaderFlags,
ProgramFlags const &  programFlags,
SubmeshFlags const &  submeshFlags,
TextureFlagsArray const &  mask 
) const
Renvoie
Les tampons de géométrie associés au noeud de rendu donné.
Paramètres
[in]nodeLe noeud de rendu utilisant ce sous-maillage.
[in]shaderFlagsLes shader flags.
[in]programFlagsLes program flags.
[in]submeshFlagsLes submesh flags.
[in]maskLe masque de textures.

◆ getId()

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

◆ getIndexMapping()

IndexMappingSPtr castor3d::Submesh::getIndexMapping ( ) const
inline

◆ getInstantiation() [1/2]

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

◆ getInstantiation() [2/2]

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

◆ getInterleavedPoint()

C3D_API InterleavedVertex castor3d::Submesh::getInterleavedPoint ( uint32_t  index) const

name Accesseurs.

◆ getMeshlets() [1/2]

C3D_API std::vector< Meshlet > & castor3d::Submesh::getMeshlets ( )

◆ getMeshlets() [2/2]

C3D_API std::vector< Meshlet > const & castor3d::Submesh::getMeshlets ( ) const

◆ getMeshletsBuffer()

C3D_API GpuBufferOffsetT< Meshlet > const & castor3d::Submesh::getMeshletsBuffer ( ) const

◆ getMeshletsCount()

C3D_API uint32_t castor3d::Submesh::getMeshletsCount ( ) const

◆ getMorphFlags()

C3D_API MorphFlags castor3d::Submesh::getMorphFlags ( ) const
Renvoie
Les indicateurs de morphing.

◆ getMorphTargets()

C3D_API GpuBufferOffsetT< castor::Point4f > const & castor3d::Submesh::getMorphTargets ( ) const

◆ getMorphTargetsCount()

C3D_API uint32_t castor3d::Submesh::getMorphTargetsCount ( ) const

◆ getNormals() [1/2]

C3D_API castor::Point3fArray & castor3d::Submesh::getNormals ( )

◆ getNormals() [2/2]

C3D_API castor::Point3fArray const & castor3d::Submesh::getNormals ( ) const

◆ getParent() [1/2]

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

◆ getParent() [2/2]

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

◆ getPointsCount()

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

◆ getPositions() [1/2]

C3D_API castor::Point3fArray & castor3d::Submesh::getPositions ( )

◆ getPositions() [2/2]

C3D_API castor::Point3fArray const & castor3d::Submesh::getPositions ( ) const

◆ getProgramFlags()

C3D_API ProgramFlags castor3d::Submesh::getProgramFlags ( Material const &  material) const
Renvoie
Les indicateurs de programme.

◆ getSkeleton()

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

◆ getSourceBufferOffsets()

C3D_API ObjectBufferOffset const & castor3d::Submesh::getSourceBufferOffsets ( ) const

◆ getSourceMeshletsBounds()

C3D_API GpuBufferOffsetT< MeshletCullData > const & castor3d::Submesh::getSourceMeshletsBounds ( ) const

◆ getSubmeshFlags()

C3D_API SubmeshFlags castor3d::Submesh::getSubmeshFlags ( Pass const *  pass) const
Renvoie
Les indicateurs de submesh.

◆ getTangents() [1/2]

C3D_API castor::Point3fArray & castor3d::Submesh::getTangents ( )

◆ getTangents() [2/2]

C3D_API castor::Point3fArray const & castor3d::Submesh::getTangents ( ) const

◆ getTexcoords0() [1/2]

C3D_API castor::Point3fArray & castor3d::Submesh::getTexcoords0 ( )

◆ getTexcoords0() [2/2]

C3D_API castor::Point3fArray const & castor3d::Submesh::getTexcoords0 ( ) const

◆ getTexcoords1() [1/2]

C3D_API castor::Point3fArray & castor3d::Submesh::getTexcoords1 ( )

◆ getTexcoords1() [2/2]

C3D_API castor::Point3fArray const & castor3d::Submesh::getTexcoords1 ( ) const

◆ getTexcoords2() [1/2]

C3D_API castor::Point3fArray & castor3d::Submesh::getTexcoords2 ( )

◆ getTexcoords2() [2/2]

C3D_API castor::Point3fArray const & castor3d::Submesh::getTexcoords2 ( ) const

◆ getTexcoords3() [1/2]

C3D_API castor::Point3fArray & castor3d::Submesh::getTexcoords3 ( )

◆ getTexcoords3() [2/2]

C3D_API castor::Point3fArray const & castor3d::Submesh::getTexcoords3 ( ) const

◆ getTopology()

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

◆ hasComponent()

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

◆ hasMorphComponent()

C3D_API bool castor3d::Submesh::hasMorphComponent ( ) const

◆ hasSkinComponent()

C3D_API bool castor3d::Submesh::hasSkinComponent ( ) const

◆ initialise()

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

Initialise le sous-maillage.

◆ instantiate()

C3D_API void castor3d::Submesh::instantiate ( Geometry const *  geometry,
MaterialRPtr  oldMaterial,
MaterialRPtr  newMaterial,
bool  update 
)

Instancie le submesh avec une géométrie et son matériau.

Paramètres
[in]geometryLa géométrie instantiant le submesh.
[in]oldMaterialLe matériau précédent.
[in]newMaterialLe nouveau matériau.
[in]updateDit si le composant d'instantiation doit être mis à jour.

◆ isDynamic()

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

◆ 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

◆ setBaseData()

C3D_API void castor3d::Submesh::setBaseData ( SubmeshData  submeshData,
castor::Point3fArray  data 
)

◆ setDefaultMaterial()

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

◆ setIndexMapping()

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

◆ setTopology()

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

◆ 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

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