implemented alpha texture repository

This commit is contained in:
Sandro Sobczyński
2020-10-31 13:58:20 +01:00
parent 3cfe7ba8f1
commit 885e8b4f2b
12 changed files with 186 additions and 29 deletions
+15
View File
@@ -54,8 +54,23 @@ public:
u8 isMd2Loaded, isObjLoaded, isDffLoaded, isSpecInitialized;
clutbuffer_t clut;
lod_t lod;
u32 id;
MeshTexture *textures;
/** Array of materials. Size of getMaterialsCount() */
MeshMaterial *getMaterials() const { return obj->frames[0].getMaterials(); };
const u32 &getMaterialsCount() const { return obj->frames[0].getMaterialsCount(); };
/** Returns material, which is a mesh "subgroup". */
MeshMaterial &getMaterial(const u32 &i) const { return obj->frames[0].getMaterial(i); };
/**
* Returns material, which is a mesh "subgroup".
* NULL if not found.
*/
MeshMaterial *getMaterialById(const u32 &t_id) const { return obj->frames[0].getMaterialById(t_id); }
private:
void setupLodAndClut();
void setDefaultWrapSettings(texwrap_t &t_wrapSettings);
+13
View File
@@ -11,6 +11,7 @@
#ifndef _TYRA_MESH_FRAME_
#define _TYRA_MESH_FRAME_
#include <stddef.h>
#include <tamtypes.h>
#include "math/point.hpp"
#include "math/vector3.hpp"
@@ -50,6 +51,18 @@ public:
/** Returns material, which is a mesh "subgroup". */
MeshMaterial &getMaterial(const u32 &i) const { return materials[i]; };
/**
* Returns material, which is a mesh "subgroup".
* NULL if not found.
*/
MeshMaterial *getMaterialById(const u32 &t_id) const
{
for (u32 i = 0; i < materialsCount; i++)
if (materials[i].getId() == t_id)
return &materials[i];
return NULL;
}
/** Array of vertices. Size of getVertexCount() */
Vector3 *getVertices() const { return vertices; };
+10 -2
View File
@@ -106,15 +106,23 @@ public:
// ----
/** Assign texture to mesh and mesh material */
void addLink(u32 t_meshId, u32 t_materialId);
void addLink(const u32 &t_meshId, const u32 &t_materialId);
/** Remove mesh and mesh material assignment */
void removeLink(u32 t_meshId, u32 t_materialId);
void removeLink(const u32 &t_meshId, const u32 &t_materialId);
const u8 &isNameSet() const { return _isNameSet; };
const u8 &isSizeSet() const { return _isSizeSet; };
const u8 isLinkedWith(const u32 &t_meshId, const u32 &t_materialId) const
{
for (u32 i = 0; i < texLinkCount; i++)
if (texLinks[i].materialId == t_materialId && texLinks[i].meshId == t_meshId)
return true;
return false;
};
private:
void setDefaultWrapSettings();
texwrap_t wrapSettings;