Update HMPLoader.cpp

- Fix possible division by zero
- closes https://github.com/assimp/assimp/issues/4235
kimkulling-fix_division_by_zero_issue4235
Kim Kulling 2021-12-10 14:32:44 +01:00 committed by GitHub
parent 6bb856335f
commit fa65d538dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 5 deletions

View File

@ -473,16 +473,22 @@ void HMPImporter::ReadFirstSkin(unsigned int iNumSkins, const unsigned char *szC
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
// Generate proepr texture coords // Generate proepr texture coords
void HMPImporter::GenerateTextureCoords( void HMPImporter::GenerateTextureCoords(const unsigned int width, const unsigned int height) {
const unsigned int width, const unsigned int height) {
ai_assert(nullptr != pScene->mMeshes); ai_assert(nullptr != pScene->mMeshes);
ai_assert(nullptr != pScene->mMeshes[0]); ai_assert(nullptr != pScene->mMeshes[0]);
ai_assert(nullptr != pScene->mMeshes[0]->mTextureCoords[0]); ai_assert(nullptr != pScene->mMeshes[0]->mTextureCoords[0]);
aiVector3D *uv = pScene->mMeshes[0]->mTextureCoords[0]; aiVector3D *uv = pScene->mMeshes[0]->mTextureCoords[0];
if (uv == nullptr) {
const float fY = (1.0f / height) + (1.0f / height) / (height - 1); return;
const float fX = (1.0f / width) + (1.0f / width) / (width - 1); }
if (height == 0.0f || width == 0.0) {
return;
}
const float fY = (1.0f / height) + (1.0f / height) / height;
const float fX = (1.0f / width) + (1.0f / width) / width;
for (unsigned int y = 0; y < height; ++y) { for (unsigned int y = 0; y < height; ++y) {
for (unsigned int x = 0; x < width; ++x, ++uv) { for (unsigned int x = 0; x < width; ++x, ++uv) {