moving textures to textures repo #1
This commit is contained in:
@@ -171,29 +171,26 @@ void Mesh::loadTextures(char *t_subfolder, char *t_extension)
|
||||
BmpLoader bmpLoader = BmpLoader();
|
||||
if (isObjLoaded)
|
||||
{
|
||||
textures = new MeshTexture *[obj->frames[0].getMaterialsCount()];
|
||||
textures = new MeshTexture[obj->frames[0].getMaterialsCount()];
|
||||
for (u8 i = 0; i < obj->frames[0].getMaterialsCount(); i++)
|
||||
{
|
||||
textures[i] = new MeshTexture();
|
||||
bmpLoader.load(*textures[i], t_subfolder, obj->frames[0].getMaterial(i).getName(), t_extension);
|
||||
bmpLoader.load(textures[i], t_subfolder, obj->frames[0].getMaterial(i).getName(), t_extension);
|
||||
// setDefaultWrapSettings(spec->textures[i].wrapSettings);
|
||||
}
|
||||
}
|
||||
else if (isMd2Loaded)
|
||||
{
|
||||
textures = new MeshTexture *[1];
|
||||
textures[0] = new MeshTexture();
|
||||
bmpLoader.load(*textures[0], t_subfolder, md2->filename, t_extension);
|
||||
textures = new MeshTexture[1];
|
||||
bmpLoader.load(textures[0], t_subfolder, md2->filename, t_extension);
|
||||
// setDefaultWrapSettings(spec->textures[0].wrapSettings);
|
||||
}
|
||||
else if (isDffLoaded)
|
||||
{
|
||||
textures = new MeshTexture *[dff->clump.geometryList.geometries[0].materialList.data.materialCount];
|
||||
textures = new MeshTexture[dff->clump.geometryList.geometries[0].materialList.data.materialCount];
|
||||
for (u8 i = 0; i < dff->clump.geometryList.geometries[0].materialList.data.materialCount; i++)
|
||||
for (u8 j = 0; j < dff->clump.geometryList.geometries[0].materialList.materials[i].data.textureCount; j++)
|
||||
{
|
||||
textures[i] = new MeshTexture();
|
||||
bmpLoader.load(*textures[i], t_subfolder, dff->clump.geometryList.geometries[0].materialList.materials[i].textures[j].textureName.text, t_extension);
|
||||
bmpLoader.load(textures[i], t_subfolder, dff->clump.geometryList.geometries[0].materialList.materials[i].textures[j].textureName.text, t_extension);
|
||||
// setDefaultWrapSettings(spec->textures[i].wrapSettings);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
MeshTexture::MeshTexture()
|
||||
{
|
||||
id = rand() % 100000;
|
||||
materialId = 0;
|
||||
texLinkCount = 0;
|
||||
_isSizeSet = false;
|
||||
_isNameSet = false;
|
||||
setDefaultWrapSettings();
|
||||
@@ -29,6 +29,8 @@ MeshTexture::MeshTexture()
|
||||
|
||||
MeshTexture::~MeshTexture()
|
||||
{
|
||||
if (texLinkCount > 0)
|
||||
delete[] texLinks;
|
||||
if (_isNameSet)
|
||||
delete[] name;
|
||||
if (_isSizeSet)
|
||||
@@ -78,3 +80,31 @@ void MeshTexture::setWrapSettings(const WrapSettings t_horizontal, const WrapSet
|
||||
wrapSettings.horizontal = t_horizontal;
|
||||
wrapSettings.vertical = t_vertical;
|
||||
}
|
||||
|
||||
void MeshTexture::addLink(u32 t_meshId, u32 t_materialId)
|
||||
{
|
||||
TextureLink *savedLinks = texLinks;
|
||||
texLinks = new TextureLink[++texLinkCount];
|
||||
for (u32 i = 0; i < texLinkCount - 1; i++)
|
||||
{
|
||||
texLinks[i].materialId = savedLinks[i].materialId;
|
||||
texLinks[i].meshId = savedLinks[i].meshId;
|
||||
}
|
||||
delete[] savedLinks;
|
||||
texLinks[texLinkCount - 1].materialId = t_materialId;
|
||||
texLinks[texLinkCount - 1].meshId = t_meshId;
|
||||
}
|
||||
|
||||
void MeshTexture::removeLink(u32 t_meshId, u32 t_materialId)
|
||||
{
|
||||
TextureLink *savedLinks = texLinks;
|
||||
texLinks = new TextureLink[--texLinkCount];
|
||||
u32 savedCount = 0;
|
||||
for (u32 i = 0; i < texLinkCount + 1; i++)
|
||||
if (savedLinks[i].materialId != t_materialId && savedLinks[i].meshId != t_meshId)
|
||||
{
|
||||
texLinks[savedCount++].materialId = savedLinks[i].materialId;
|
||||
texLinks[savedCount++].meshId = savedLinks[i].meshId;
|
||||
}
|
||||
delete[] savedLinks;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user