Recast: remove mesh import flipping code

This was initially implemented to work around a normal flipping bug caused by the BSP to OBJ converter script, and the way Blender exports assets (it flips the axis on export). Removed code as we should instead use the fixed scripts and properly export the adjusted models from the DCC tools.
This commit is contained in:
Kawe Mazidjatari 2024-07-11 09:26:05 +02:00
parent d38bdd1abd
commit f7d9cefc80
3 changed files with 14 additions and 46 deletions

View File

@ -48,18 +48,11 @@ void rcMeshLoaderObj::addVertex(float x, float y, float z, int& cap)
m_verts = nv;
}
float* dst = &m_verts[m_vertCount*3];
if (m_flipAxis)
{
*dst++ = x * m_scale;
*dst++ = z * m_scale;
*dst++ = -y * m_scale;
}
else
{
*dst++ = x * m_scale;
*dst++ = y * m_scale;
*dst++ = z * m_scale;
}
*dst++ = x * m_scale;
*dst++ = y * m_scale;
*dst++ = z * m_scale;
m_vertCount++;
}
@ -211,10 +204,8 @@ bool rcMeshLoaderObj::load(const std::string& filename)
const int c = face[i];
if (a < 0 || a >= m_vertCount || b < 0 || b >= m_vertCount || c < 0 || c >= m_vertCount)
continue;
if(m_flipTris)
addTriangle(a, c, b, tcap);
else
addTriangle(a, b, c, tcap);
addTriangle(a, b, c, tcap);
}
}
}

View File

@ -79,21 +79,9 @@ end_header
for (size_t i = 0; i < m_vertCount; i++)
{
//TODO: m_scale?
if (m_flipAxis)
{
input.read((char*)&m_verts[i * 3 + 0], sizeof(float));
input.read((char*)&m_verts[i * 3 + 2], sizeof(float));
input.read((char*)&m_verts[i * 3 + 1], sizeof(float));
m_verts[i * 3 + 1] *= -1;
}
else
{
input.read((char*)&m_verts[i * 3 + 0], sizeof(float));
input.read((char*)&m_verts[i * 3 + 1], sizeof(float));
input.read((char*)&m_verts[i * 3 + 2], sizeof(float));
}
input.read((char*)&m_verts[i * 3 + 0], sizeof(float));
input.read((char*)&m_verts[i * 3 + 1], sizeof(float));
input.read((char*)&m_verts[i * 3 + 2], sizeof(float));
}
for (size_t i = 0; i < m_triCount; i++)
@ -102,18 +90,10 @@ end_header
input.read(&count, 1);
if (count != 3)
return false;
if (m_flipTris)
{
input.read((char*)&m_tris[i * 3 + 0], sizeof(int));
input.read((char*)&m_tris[i * 3 + 2], sizeof(int));
input.read((char*)&m_tris[i * 3 + 1], sizeof(int));
}
else
{
input.read((char*)&m_tris[i * 3 + 0], sizeof(int));
input.read((char*)&m_tris[i * 3 + 1], sizeof(int));
input.read((char*)&m_tris[i * 3 + 2], sizeof(int));
}
input.read((char*)&m_tris[i * 3 + 0], sizeof(int));
input.read((char*)&m_tris[i * 3 + 1], sizeof(int));
input.read((char*)&m_tris[i * 3 + 2], sizeof(int));
}
// Calculate normals.

View File

@ -33,9 +33,6 @@ public:
virtual int getVertCount() const = 0;
virtual int getTriCount() const = 0;
virtual const std::string& getFileName() const = 0;
bool m_flipAxis = false; // !TODO: ImGui import option.
bool m_flipTris = false; // !TODO: ImGui import option.
};
class rcMeshLoaderObj:public IMeshLoader
{