From cde1334e0b73e7bfe66eb525d6c88ed666db2678 Mon Sep 17 00:00:00 2001 From: Leonardo Zide Date: Sun, 25 Sep 2016 13:15:43 -0700 Subject: [PATCH] Fixed bounding box of models loaded from loose files. --- .gitignore | 25 +++++++++++++++++++++---- common/lc_library.cpp | 7 ++++++- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index ac1ceda6..f8005ca0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,22 @@ -################################################################################ -# This .gitignore file was automatically created by Microsoft(R) Visual Studio. -################################################################################ - +*.suo +*.sln +*.vcxproj +*.filters +*.user +*.pdb +*.db +*.psess +*.opendb +*.opensdf +*.sdf *.suo +*.vspx +*.xcodeproj +build +debug +release +ipch +Makefile +library.bin +leocad_plugin_import.cpp +*.qm diff --git a/common/lc_library.cpp b/common/lc_library.cpp index a00aa371..276dd5c1 100644 --- a/common/lc_library.cpp +++ b/common/lc_library.cpp @@ -882,6 +882,7 @@ bool lcPiecesLibrary::LoadPiece(PieceInfo* Info) bool Loaded = false; bool SaveCache = false; + bool UpdateBoundingBox = false; if (Info->mZipFileType != LC_NUM_ZIPFILES && mZipFiles[Info->mZipFileType]) { @@ -928,13 +929,17 @@ bool lcPiecesLibrary::LoadPiece(PieceInfo* Info) const char* OldLocale = setlocale(LC_NUMERIC, "C"); Loaded = ReadMeshData(PieceFile, lcMatrix44Identity(), 16, TextureStack, MeshData, LC_MESHDATA_SHARED, false); setlocale(LC_NUMERIC, OldLocale); + UpdateBoundingBox = true; } } if (!Loaded) return false; - CreateMesh(Info, MeshData); + lcMesh* Mesh = CreateMesh(Info, MeshData); + + if (UpdateBoundingBox) + Info->SetBoundingBox(Mesh->mBoundingBox.Min, Mesh->mBoundingBox.Max); if (SaveCache) SaveCachePiece(Info);