Castor3D
..
|
Representation d'un sous-maillage. Plus de détails...
Fonctions membres publiques | |
C3D_API | Submesh (Scene &p_scene, Mesh &p_mesh, uint32_t p_id=1) |
Constructeur. Plus de détails... | |
C3D_API | ~Submesh () |
Destructeur. Plus de détails... | |
C3D_API void | Initialise () |
Initialise le sous-maillage. Plus de détails... | |
C3D_API void | Cleanup () |
Nettoie le sous-maillage. Plus de détails... | |
C3D_API void | ComputeContainers () |
Calcule les conteneurs (cube et sphère) Plus de détails... | |
C3D_API uint32_t | GetFaceCount () const |
C3D_API uint32_t | GetPointsCount () const |
C3D_API int | IsInMyPoints (Castor::Point3r const &p_vertex, double p_precision) |
Teste si le point donné fait partie de ceux de ce sous-maillage. Plus de détails... | |
C3D_API BufferElementGroupSPtr | AddPoint (real x, real y, real z) |
Crée un Vertex à partir des coordonnées données et l'ajoute à la liste. Plus de détails... | |
C3D_API BufferElementGroupSPtr | AddPoint (Castor::Point3r const &p_v) |
Crée un Vertex à partir du point donné et l'ajoute à la liste. Plus de détails... | |
C3D_API BufferElementGroupSPtr | AddPoint (real *p_v) |
Crée un Vertex à partir des coordonnées données et l'ajoute à la liste. Plus de détails... | |
C3D_API BufferElementGroupSPtr | AddPoint (InterleavedVertex const &p_v) |
Crée un Vertex et l'ajoute à la liste. Plus de détails... | |
C3D_API void | AddPoints (InterleavedVertex const *const p_begin, InterleavedVertex const *const p_end) |
Ajoute des points à la liste. Plus de détails... | |
C3D_API void | AddBoneDatas (VertexBoneData const *const p_begin, VertexBoneData const *const p_end) |
Ajoute des données de bones. 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 p_begin, FaceIndices const *const p_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::Point3r const &p_minUV=Castor::Point3r(), Castor::Point3r const &p_maxUV=Castor::Point3r(1, 1, 1)) |
Crée et ajoute une face à 4 côtés au sous-maillage. Plus de détails... | |
C3D_API void | ResetGpuBuffers () |
Recrée les tampons. Plus de détails... | |
C3D_API void | ResetMatrixBuffers () |
Recrée le tampon de matrices. Plus de détails... | |
C3D_API void | Draw (GeometryBuffers const &p_geometryBuffers) |
Dessine le sous-maillage. Plus de détails... | |
C3D_API void | DrawInstanced (GeometryBuffers const &p_geometryBuffers, uint32_t p_count) |
Dessine le 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 (bool p_reverted=false) |
Génère les normales et les tangentes. Plus de détails... | |
C3D_API void | ComputeNormals (Face const &p_face) |
Calcule la normale et la tangente pour chaque vertex de la face donnée. Plus de détails... | |
C3D_API void | ComputeTangents (Face const &p_face) |
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 | ComputeTangentsFromBitangents () |
Calcule la tangente pour chaque vertex du sous-maillage. Plus de détails... | |
C3D_API void | ComputeBitangents () |
Calcule la bitangente pour chaque vertex du sous-maillage. Plus de détails... | |
C3D_API void | SortByDistance (Castor::Point3r const &p_cameraPosition) |
Trie les faces des plus éloignées aux plus proches de la caméra. Plus de détails... | |
C3D_API uint32_t | Ref (MaterialSPtr p_material) |
Incrémente le compte d'instances. Plus de détails... | |
C3D_API uint32_t | UnRef (MaterialSPtr p_material) |
Décrémente le compte d'instances. Plus de détails... | |
C3D_API uint32_t | GetRefCount (MaterialSPtr p_material) const |
Récupère le nombre d'instances. Plus de détails... | |
C3D_API Topology | GetTopology () const |
C3D_API void | SetTopology (Topology p_value) |
Définit la topologie. Plus de détails... | |
C3D_API GeometryBuffersSPtr | GetGeometryBuffers (ShaderProgram const &p_program) |
Récupère un GeometryBuffers pour le programme donné. Plus de détails... | |
C3D_API void | SetAnimated (bool p_animated) |
void | AddPoints (std::vector< InterleavedVertex > const &p_vertices) |
Ajoute des points à la liste. Plus de détails... | |
template<size_t Count> | |
void | AddPoints (std::array< InterleavedVertex, Count > const &p_vertices) |
Ajoute des points à la liste. Plus de détails... | |
void | AddBoneDatas (std::vector< VertexBoneData > const &p_boneData) |
Ajoute des données de bones. Plus de détails... | |
template<size_t Count> | |
void | AddBoneDatas (std::array< VertexBoneData, Count > const &p_boneData) |
Ajoute des données de bones. Plus de détails... | |
void | AddFaceGroup (std::vector< FaceIndices > const &p_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 &p_faces) |
Crée et ajoute une face au sous-maillage. Plus de détails... | |
SkeletonSPtr | GetSkeleton () const |
void | SetDefaultMaterial (MaterialSPtr p_mat) |
Définit le material. Plus de détails... | |
BufferElementGroupSPtr | operator[] (uint32_t p_index) const |
Récupère le point à l'index donné Plus de détails... | |
BufferElementGroupSPtr | GetPoint (uint32_t p_index) const |
Récupère le point à l'index donné Plus de détails... | |
MaterialSPtr | GetDefaultMaterial () const |
Castor::CubeBox const & | GetCollisionBox () const |
Castor::CubeBox & | GetCollisionBox () |
Castor::SphereBox const & | GetCollisionSphere () const |
Castor::SphereBox & | GetCollisionSphere () |
VertexPtrArray const & | GetPoints () const |
VertexPtrArray & | GetPoints () |
Face const & | GetFace (uint32_t p_index) const |
Récupère récupère la face à l'index donné Plus de détails... | |
FaceArray const & | GetFaces () const |
FaceArray & | GetFaces () |
bool | HasVertexBuffer () const |
bool | HasAnimationBuffer () const |
bool | HasIndexBuffer () const |
bool | HasBonesBuffer () const |
bool | HasMatrixBuffer () const |
VertexBuffer const & | GetVertexBuffer () const |
VertexBuffer & | GetVertexBuffer () |
VertexBuffer const & | GetAnimationBuffer () const |
VertexBuffer & | GetAnimationBuffer () |
IndexBuffer const & | GetIndexBuffer () const |
IndexBuffer & | GetIndexBuffer () |
VertexBuffer const & | GetBonesBuffer () const |
VertexBuffer & | GetBonesBuffer () |
VertexBuffer const & | GetMatrixBuffer () const |
VertexBuffer & | GetMatrixBuffer () |
bool | IsInitialised () const |
Mesh const & | GetParent () const |
Mesh & | GetParent () |
ProgramFlags const & | GetProgramFlags () const |
uint32_t | GetId () const |
void | NeedUpdate () |
template<uint32_t Count> | |
void | AddFaceGroup (FaceIndices(&p_faces)[Count]) |
Crée et ajoute une face au sous-maillage. Plus de détails... | |
Amis | |
class | GeometryBuffers |
class | BinaryWriter< Submesh > |
class | BinaryParser< Submesh > |
Representation d'un sous-maillage.
Constructeur.
[in] | p_mesh | Le mesh parent. |
[in] | p_scene | La scène. |
[in] | p_id | L'ID du sous-maillage. |
C3D_API Castor3D::Submesh::~Submesh | ( | ) |
Destructeur.
C3D_API void Castor3D::Submesh::AddBoneDatas | ( | VertexBoneData const *const | p_begin, |
VertexBoneData const *const | p_end | ||
) |
Ajoute des données de bones.
[in] | p_begin | Le début des données de bones. |
[in] | p_end | La fin des données de bones. |
Référencé par AddBoneDatas().
|
inline |
Ajoute des données de bones.
[in] | p_boneData | Les données de bones. |
Références AddBoneDatas().
|
inline |
Ajoute des données de bones.
[in] | p_boneData | Les données de bones. |
Références AddBoneDatas().
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::Submesh::AddFaceGroup | ( | FaceIndices const *const | p_begin, |
FaceIndices const *const | p_end | ||
) |
Crée et ajoute des faces au sous-maillage.
[in] | p_begin | Le début des données de faces. |
[in] | p_end | La fin des données de faces. |
Référencé par AddFaceGroup().
|
inline |
Crée et ajoute une face au sous-maillage.
[in] | p_faces | Les faces |
Références AddFaceGroup().
|
inline |
Crée et ajoute une face au sous-maillage.
[in] | p_faces | Les faces |
Références AddFaceGroup().
|
inline |
Crée et ajoute une face au sous-maillage.
[in] | p_faces | Les faces |
Références AddFaceGroup().
C3D_API BufferElementGroupSPtr Castor3D::Submesh::AddPoint | ( | real | x, |
real | y, | ||
real | z | ||
) |
Crée un Vertex à partir des coordonnées données et l'ajoute à la liste.
[in] | x | Coordonnée X |
[in] | y | Coordonnée Y |
[in] | z | Coordonnée Y |
C3D_API BufferElementGroupSPtr Castor3D::Submesh::AddPoint | ( | Castor::Point3r const & | p_v | ) |
Crée un Vertex à partir du point donné et l'ajoute à la liste.
[in] | p_v | Le point |
C3D_API BufferElementGroupSPtr Castor3D::Submesh::AddPoint | ( | real * | p_v | ) |
Crée un Vertex à partir des coordonnées données et l'ajoute à la liste.
[in] | p_v | Les coordonnées du point |
C3D_API BufferElementGroupSPtr Castor3D::Submesh::AddPoint | ( | InterleavedVertex const & | p_v | ) |
C3D_API void Castor3D::Submesh::AddPoints | ( | InterleavedVertex const *const | p_begin, |
InterleavedVertex const *const | p_end | ||
) |
Ajoute des points à la liste.
[in] | p_begin | Le début des données de sommets. |
[in] | p_end | La fin des données de sommets. |
Référencé par AddPoints().
|
inline |
Ajoute des points à la liste.
[in] | p_vertices | Les vertices |
Références AddPoints().
|
inline |
Ajoute des points à la liste.
[in] | p_vertices | Les vertices |
Références AddPoints().
C3D_API void Castor3D::Submesh::AddQuadFace | ( | uint32_t | a, |
uint32_t | b, | ||
uint32_t | c, | ||
uint32_t | d, | ||
Castor::Point3r const & | p_minUV = Castor::Point3r() , |
||
Castor::Point3r const & | p_maxUV = Castor::Point3r(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] | p_minUV | L'UV du coin bas gauche |
[in] | p_maxUV | L'UV du coin haut droit |
C3D_API void Castor3D::Submesh::Cleanup | ( | ) |
Nettoie le sous-maillage.
C3D_API void Castor3D::Submesh::ClearFaces | ( | ) |
Vide le tableau de faces.
C3D_API void Castor3D::Submesh::ComputeBitangents | ( | ) |
Calcule la bitangente pour chaque vertex du sous-maillage.
C3D_API void Castor3D::Submesh::ComputeContainers | ( | ) |
Calcule les conteneurs (cube et sphère)
C3D_API void Castor3D::Submesh::ComputeFacesFromPolygonVertex | ( | ) |
Crée les faces à partir des points.
C3D_API void Castor3D::Submesh::ComputeNormals | ( | bool | p_reverted = false | ) |
Génère les normales et les tangentes.
Calcule la normale et la tangente pour chaque vertex de la face donnée.
[in] | p_face | La face |
Calcule la tangente pour chaque vertex de la face donnée.
[in] | p_face | La face |
C3D_API void Castor3D::Submesh::ComputeTangentsFromBitangents | ( | ) |
Calcule la tangente pour chaque vertex du sous-maillage.
C3D_API void Castor3D::Submesh::ComputeTangentsFromNormals | ( | ) |
Calcule la tangente pour chaque vertex du sous-maillage.
C3D_API void Castor3D::Submesh::Draw | ( | GeometryBuffers const & | p_geometryBuffers | ) |
Dessine le sous-maillage.
[in] | p_geometryBuffers | Les tampons de géométrie utilisés pour dessiner ce sous-maillage. |
C3D_API void Castor3D::Submesh::DrawInstanced | ( | GeometryBuffers const & | p_geometryBuffers, |
uint32_t | p_count | ||
) |
Dessine le sous-maillage.
[in] | p_geometryBuffers | Les tampons de géométrie utilisés pour dessiner ce sous-maillage. |
[in] | p_count | Le nombre d'instances. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Récupère récupère la face à l'index donné
[in] | p_index | L'index |
C3D_API uint32_t Castor3D::Submesh::GetFaceCount | ( | ) | const |
|
inline |
|
inline |
C3D_API GeometryBuffersSPtr Castor3D::Submesh::GetGeometryBuffers | ( | ShaderProgram const & | p_program | ) |
Récupère un GeometryBuffers pour le programme donné.
[in] | p_program | Le programme. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Référencé par GetSkeleton().
|
inline |
|
inline |
Récupère le point à l'index donné
[in] | p_index | L'index |
|
inline |
|
inline |
C3D_API uint32_t Castor3D::Submesh::GetPointsCount | ( | ) | const |
|
inline |
C3D_API uint32_t Castor3D::Submesh::GetRefCount | ( | MaterialSPtr | p_material | ) | const |
Récupère le nombre d'instances.
[in] | p_material | Le matériau pour lequel le compte est récupéré |
|
inline |
Références GetParent(), et Castor3D::Mesh::GetSkeleton().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
C3D_API void Castor3D::Submesh::Initialise | ( | ) |
Initialise le sous-maillage.
|
inline |
C3D_API int Castor3D::Submesh::IsInMyPoints | ( | Castor::Point3r const & | p_vertex, |
double | p_precision | ||
) |
Teste si le point donné fait partie de ceux de ce sous-maillage.
[in] | p_vertex | Le point à tester |
[in] | p_precision | La précision de comparaison |
|
inline |
|
inline |
Récupère le point à l'index donné
[in] | p_index | L'index |
C3D_API uint32_t Castor3D::Submesh::Ref | ( | MaterialSPtr | p_material | ) |
Incrémente le compte d'instances.
[in] | p_material | Le matériau pour lequel le compte est incrémenté. |
C3D_API void Castor3D::Submesh::ResetGpuBuffers | ( | ) |
Recrée les tampons.
C3D_API void Castor3D::Submesh::ResetMatrixBuffers | ( | ) |
Recrée le tampon de matrices.
C3D_API void Castor3D::Submesh::SetAnimated | ( | bool | p_animated | ) |
|
inline |
Définit le material.
[in] | p_mat | La nouvelle valeur |
Définit la topologie.
[in] | p_value | La nouvelle valeur. |
C3D_API void Castor3D::Submesh::SortByDistance | ( | Castor::Point3r const & | p_cameraPosition | ) |
Trie les faces des plus éloignées aux plus proches de la caméra.
[in] | p_cameraPosition | La position de la caméra, relative au sous-maillage |
C3D_API uint32_t Castor3D::Submesh::UnRef | ( | MaterialSPtr | p_material | ) |
Décrémente le compte d'instances.
[in] | p_material | Le matériau pour lequel le compte est décrémenté. |
|
friend |
|
friend |
|
friend |