From 7275c4256dd7bf3470a45f84df22b3cde7325fa8 Mon Sep 17 00:00:00 2001 From: Leonardo Zide Date: Sun, 22 Mar 2020 20:18:52 -0700 Subject: [PATCH] Added const qualifiers. --- common/group.cpp | 6 +- common/lc_array.h | 2 +- common/lc_colors.h | 4 +- common/lc_context.cpp | 32 ++++----- common/lc_file.h | 4 +- common/lc_library.cpp | 38 +++++------ common/lc_mainwindow.h | 12 ++-- common/lc_math.h | 150 ++++++++++++++++++++--------------------- common/lc_mesh.cpp | 16 ++--- common/lc_scene.cpp | 74 ++++++++++---------- common/lc_scene.h | 2 +- common/lc_texture.cpp | 50 +++++++------- common/lc_texture.h | 2 +- common/minifig.cpp | 28 ++++---- common/piece.h | 8 +-- common/pieceinf.cpp | 22 +++--- common/project.h | 2 +- 17 files changed, 226 insertions(+), 226 deletions(-) diff --git a/common/group.cpp b/common/group.cpp index e81b2e0c..b64d9fc7 100644 --- a/common/group.cpp +++ b/common/group.cpp @@ -26,7 +26,7 @@ void lcGroup::CreateName(const lcArray& Groups) if (!mName.isEmpty()) { bool Found = false; - for (lcGroup* Group : Groups) + for (const lcGroup* const Group : Groups) { if (Group->mName == mName) { @@ -41,9 +41,9 @@ void lcGroup::CreateName(const lcArray& Groups) int Max = 0; QString Prefix = QApplication::tr("Group #"); - int Length = Prefix.length(); + const int Length = Prefix.length(); - for (lcGroup* Group : Groups) + for (const lcGroup* const Group : Groups) { const QString& Name = Group->mName; diff --git a/common/lc_array.h b/common/lc_array.h index 28b6d754..2a1b7039 100644 --- a/common/lc_array.h +++ b/common/lc_array.h @@ -133,7 +133,7 @@ public: { if ((mLength + Grow) > mAlloc) { - size_t NewSize = ((mLength + Grow + mGrow - 1) / mGrow) * mGrow; + const size_t NewSize = ((mLength + Grow + mGrow - 1) / mGrow) * mGrow; T* NewData = new T[NewSize]; for (int i = 0; i < mLength; i++) diff --git a/common/lc_colors.h b/common/lc_colors.h index c3e921ed..abcbb5ad 100644 --- a/common/lc_colors.h +++ b/common/lc_colors.h @@ -55,13 +55,13 @@ bool lcLoadColorFile(lcFile& File); int lcGetColorIndex(quint32 ColorCode); int lcGetBrickLinkColor(int ColorIndex); -inline quint32 lcGetColorCodeFromExtendedColor(int Color) +inline constexpr quint32 lcGetColorCodeFromExtendedColor(int Color) { const int ConverstionTable[] = { 4, 12, 2, 10, 1, 9, 14, 15, 8, 0, 6, 13, 13, 334, 36, 44, 34, 42, 33, 41, 46, 47, 7, 382, 6, 13, 11, 383 }; return ConverstionTable[Color]; } -inline quint32 lcGetColorCodeFromOriginalColor(int Color) +inline constexpr quint32 lcGetColorCodeFromOriginalColor(int Color) { const int ConverstionTable[] = { 0, 2, 4, 9, 7, 6, 22, 8, 10, 11, 14, 16, 18, 9, 21, 20, 22, 8, 10, 11 }; return lcGetColorCodeFromExtendedColor(ConverstionTable[Color]); diff --git a/common/lc_context.cpp b/common/lc_context.cpp index 3ba723c9..7309fceb 100644 --- a/common/lc_context.cpp +++ b/common/lc_context.cpp @@ -102,7 +102,7 @@ void lcContext::CreateShaderPrograms() " LC_SHADER_PRECISION float Diffuse = min(abs(dot(Normal, LightDirection)) * 0.6 + 0.65, 1.0);\n" }; - const char* VertexShaders[static_cast(lcMaterialType::Count)] = + const char* const VertexShaders[static_cast(lcMaterialType::Count)] = { ":/resources/shaders/unlit_color_vs.glsl", // UnlitColor ":/resources/shaders/unlit_texture_modulate_vs.glsl", // UnlitTextureModulate @@ -113,7 +113,7 @@ void lcContext::CreateShaderPrograms() ":/resources/shaders/fakelit_texture_decal_vs.glsl" // FakeLitTextureDecal }; - const char* FragmentShaders[static_cast(lcMaterialType::Count)] = + const char* const FragmentShaders[static_cast(lcMaterialType::Count)] = { ":/resources/shaders/unlit_color_ps.glsl", // UnlitColor ":/resources/shaders/unlit_texture_modulate_ps.glsl", // UnlitTextureModulate @@ -124,7 +124,7 @@ void lcContext::CreateShaderPrograms() ":/resources/shaders/fakelit_texture_decal_ps.glsl" // FakeLitTextureDecal }; - auto LoadShader = [ShaderPrefix](const char* FileName, GLuint ShaderType) -> GLuint + const auto LoadShader = [ShaderPrefix](const char* FileName, GLuint ShaderType) -> GLuint { QResource Resource(FileName); @@ -141,7 +141,7 @@ void lcContext::CreateShaderPrograms() Data = ShaderPrefix + Data; const char* Source = Data.constData(); - GLuint Shader = glCreateShader(ShaderType); + const GLuint Shader = glCreateShader(ShaderType); glShaderSource(Shader, 1, &Source, nullptr); glCompileShader(Shader); @@ -167,8 +167,8 @@ void lcContext::CreateShaderPrograms() for (int MaterialType = 0; MaterialType < static_cast(lcMaterialType::Count); MaterialType++) { - GLuint VertexShader = LoadShader(VertexShaders[MaterialType], GL_VERTEX_SHADER); - GLuint FragmentShader = LoadShader(FragmentShaders[MaterialType], GL_FRAGMENT_SHADER); + const GLuint VertexShader = LoadShader(VertexShaders[MaterialType], GL_VERTEX_SHADER); + const GLuint FragmentShader = LoadShader(FragmentShaders[MaterialType], GL_FRAGMENT_SHADER); GLuint Program = glCreateProgram(); @@ -505,7 +505,7 @@ void lcContext::SetColorIndex(int ColorIndex) void lcContext::SetColorIndexTinted(int ColorIndex, lcInterfaceColor InterfaceColor, float Weight) { - lcVector3 Color(gColorList[ColorIndex].Value * Weight + gInterfaceColors[InterfaceColor] * (1.0f - Weight)); + const lcVector3 Color(gColorList[ColorIndex].Value * Weight + gInterfaceColors[InterfaceColor] * (1.0f - Weight)); SetColor(lcVector4(Color, gColorList[ColorIndex].Value.w)); } @@ -686,7 +686,7 @@ void lcContext::GetRenderFramebufferImage(const std::pairmVertexCacheOffset != -1) { - GLuint VertexBufferObject = Library->mVertexBuffer.Object; - GLuint IndexBufferObject = Library->mIndexBuffer.Object; + const GLuint VertexBufferObject = Library->mVertexBuffer.Object; + const GLuint IndexBufferObject = Library->mIndexBuffer.Object; if (VertexBufferObject != mVertexBufferObject) { @@ -1192,7 +1192,7 @@ void lcContext::FlushState() if (mViewMatrixDirty) { - lcMatrix44 InverseViewMatrix = lcMatrix44AffineInverse(mViewMatrix); + const lcMatrix44 InverseViewMatrix = lcMatrix44AffineInverse(mViewMatrix); lcVector3 ViewPosition = lcMul30(-mViewMatrix.GetTranslation(), InverseViewMatrix); if (Program.LightPositionLocation != -1) diff --git a/common/lc_file.h b/common/lc_file.h index 81a1e7b2..99ce81a6 100644 --- a/common/lc_file.h +++ b/common/lc_file.h @@ -167,7 +167,7 @@ public: QString ReadQString() { - quint32 Size = ReadU32(); + const quint32 Size = ReadU32(); char* Buffer = new char[Size]; ReadBuffer(Buffer, Size); QString String = QString::fromUtf8(Buffer, Size); @@ -545,7 +545,7 @@ public: char* ReadLine(char* Buffer, size_t BufferSize) override { - qint64 LineLength = mFile.readLine(Buffer, BufferSize); + const qint64 LineLength = mFile.readLine(Buffer, BufferSize); return LineLength != -1 ? Buffer : nullptr; } diff --git a/common/lc_library.cpp b/common/lc_library.cpp index c1902eb8..bcd834cc 100644 --- a/common/lc_library.cpp +++ b/common/lc_library.cpp @@ -498,7 +498,7 @@ void lcPiecesLibrary::ReadArchiveDescriptions(const QString& OfficialFileName, c bool lcPiecesLibrary::OpenDirectory(const QDir& LibraryDir, bool ShowProgress) { const QLatin1String BaseFolders[LC_NUM_FOLDERTYPES] = { QLatin1String("unofficial/"), QLatin1String("") }; - const int NumBaseFolders = LC_ARRAY_COUNT(BaseFolders); + constexpr int NumBaseFolders = LC_ARRAY_COUNT(BaseFolders); QFileInfoList FileLists[NumBaseFolders]; @@ -561,7 +561,7 @@ bool lcPiecesLibrary::OpenDirectory(const QDir& LibraryDir, bool ShowProgress) if (BaseFolderIdx == 0) mHasUnofficial = true; - bool SubFile = SubFileDirectories[DirectoryIdx]; + const bool SubFile = SubFileDirectories[DirectoryIdx]; mPrimitives[Name] = new lcLibraryPrimitive(std::move(FileName), strchr(FileString, '/') + 1, LC_NUM_ZIPFILES, 0, !SubFile && (memcmp(Name, "STU", 3) == 0), SubFile); } } @@ -705,7 +705,7 @@ void lcPiecesLibrary::ReadDirectoryDescriptions(const QFileInfoList (&FileLists) { const char* FileName = *(const char**)CachedDescription; const char* Description = FileName + strlen(FileName) + 1; - uint64_t CachedFileTime = *(uint64_t*)(Description + strlen(Description) + 1 + 4 + 1); + const uint64_t CachedFileTime = *(uint64_t*)(Description + strlen(Description) + 1 + 4 + 1); #if (QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)) quint64 FileTime = FileLists[Info->mFolderType][Info->mFolderIndex].lastModified().toMSecsSinceEpoch(); @@ -851,7 +851,7 @@ bool lcPiecesLibrary::ReadArchiveCacheFile(const QString& FileName, lcMemFile& C CacheFile.SetLength(UncompressedSize); CacheFile.Seek(0, SEEK_SET); - const int CHUNK = 16384; + constexpr int CHUNK = 16384; int ret; unsigned have; z_stream strm; @@ -918,8 +918,8 @@ bool lcPiecesLibrary::WriteArchiveCacheFile(const QString& FileName, lcMemFile& if (!File.open(QIODevice::WriteOnly)) return false; - quint32 CacheVersion = LC_LIBRARY_CACHE_VERSION; - quint32 CacheFlags = LC_LIBRARY_CACHE_ARCHIVE; + constexpr quint32 CacheVersion = LC_LIBRARY_CACHE_VERSION; + constexpr quint32 CacheFlags = LC_LIBRARY_CACHE_ARCHIVE; if (File.write((char*)&CacheVersion, sizeof(CacheVersion)) == -1) return false; @@ -930,12 +930,12 @@ bool lcPiecesLibrary::WriteArchiveCacheFile(const QString& FileName, lcMemFile& if (File.write((char*)&mArchiveCheckSum, sizeof(mArchiveCheckSum)) == -1) return false; - quint32 UncompressedSize = (quint32)CacheFile.GetLength(); + const quint32 UncompressedSize = (quint32)CacheFile.GetLength(); if (File.write((char*)&UncompressedSize, sizeof(UncompressedSize)) == -1) return false; - const size_t BufferSize = 16384; + constexpr size_t BufferSize = 16384; char WriteBuffer[BufferSize]; z_stream Stream; quint32 Crc32 = 0; @@ -1015,15 +1015,15 @@ bool lcPiecesLibrary::WriteDirectoryCacheFile(const QString& FileName, lcMemFile if (!File.open(QIODevice::WriteOnly)) return false; - quint32 CacheVersion = LC_LIBRARY_CACHE_VERSION; + constexpr quint32 CacheVersion = LC_LIBRARY_CACHE_VERSION; if (File.write((char*)&CacheVersion, sizeof(CacheVersion)) == -1) return false; - quint32 CacheFlags = LC_LIBRARY_CACHE_DIRECTORY; + constexpr quint32 CacheFlags = LC_LIBRARY_CACHE_DIRECTORY; if (File.write((char*)&CacheFlags, sizeof(CacheFlags)) == -1) return false; - quint32 UncompressedSize = (quint32)CacheFile.GetLength(); + const quint32 UncompressedSize = (quint32)CacheFile.GetLength(); if (File.write((char*)&UncompressedSize, sizeof(UncompressedSize)) == -1) return false; @@ -1065,15 +1065,15 @@ bool lcPiecesLibrary::SaveArchiveCacheIndex(const QString& FileName) { lcMemFile IndexFile; - quint32 NumFiles = (quint32)mPieces.size(); + const quint32 NumFiles = (quint32)mPieces.size(); if (IndexFile.WriteBuffer((char*)&NumFiles, sizeof(NumFiles)) == 0) return false; for (const auto& PieceIt : mPieces) { - PieceInfo* Info = PieceIt.second; - quint8 Length = (quint8)strlen(Info->m_strDescription); + const PieceInfo* Info = PieceIt.second; + const quint8 Length = (quint8)strlen(Info->m_strDescription); if (IndexFile.WriteBuffer((char*)&Length, sizeof(Length)) == 0) return false; @@ -1117,7 +1117,7 @@ bool lcPiecesLibrary::SaveCachePiece(PieceInfo* Info) { lcMemFile MeshData; - qint32 Flags = mStudLogo; + const qint32 Flags = mStudLogo; if (MeshData.WriteBuffer((char*)&Flags, sizeof(Flags)) == 0) return false; @@ -1425,7 +1425,7 @@ void lcPiecesLibrary::UpdateBuffers(lcContext* Context) for (const auto& PieceIt : mPieces) { - PieceInfo* Info = PieceIt.second; + const PieceInfo* const Info = PieceIt.second; lcMesh* Mesh = Info->IsPlaceholder() ? gPlaceholderMesh : Info->GetMesh(); if (!Mesh) @@ -1631,7 +1631,7 @@ bool lcPiecesLibrary::LoadPrimitive(lcLibraryPrimitive* Primitive) if (Primitive->mStud) { - bool OpenStud = !strcmp(Primitive->mName,"stud2.dat"); + const bool OpenStud = !strcmp(Primitive->mName,"stud2.dat"); if (OpenStud || !strcmp(Primitive->mName,"stud.dat")) { Primitive->mMeshData.mHasLogoStud = true; @@ -1675,7 +1675,7 @@ bool lcPiecesLibrary::LoadPrimitive(lcLibraryPrimitive* Primitive) { if (Primitive->mStud) { - bool OpenStud = !strcmp(Primitive->mName,"stud2.dat"); + const bool OpenStud = !strcmp(Primitive->mName,"stud2.dat"); if (OpenStud || !strcmp(Primitive->mName,"stud.dat")) { Primitive->mMeshData.mHasLogoStud = true; @@ -1779,7 +1779,7 @@ void lcPiecesLibrary::GetCategoryEntries(const char* CategoryKeywords, bool Grou else { // Check if this piece has already been added to this category by one of its children. - int Index = GroupedPieces.FindIndex(Info); + const int Index = GroupedPieces.FindIndex(Info); if (Index == -1) SinglePieces.Add(Info); diff --git a/common/lc_mainwindow.h b/common/lc_mainwindow.h index fd787d62..c6e18ca3 100644 --- a/common/lc_mainwindow.h +++ b/common/lc_mainwindow.h @@ -204,7 +204,7 @@ public: View* GetActiveView() const { - lcModelTabWidget* CurrentTab = mModelTabWidget ? (lcModelTabWidget*)mModelTabWidget->currentWidget() : nullptr; + const lcModelTabWidget* const CurrentTab = mModelTabWidget ? (lcModelTabWidget*)mModelTabWidget->currentWidget() : nullptr; return CurrentTab ? CurrentTab->GetActiveView() : nullptr; } @@ -212,13 +212,13 @@ public: lcModel* GetCurrentTabModel() const { - lcModelTabWidget* CurrentTab = (lcModelTabWidget*)mModelTabWidget->currentWidget(); + const lcModelTabWidget* const CurrentTab = (lcModelTabWidget*)mModelTabWidget->currentWidget(); return CurrentTab ? CurrentTab->GetModel() : nullptr; } - const lcArray* GetViewsForModel(lcModel* Model) const + const lcArray* GetViewsForModel(const lcModel* Model) const { - lcModelTabWidget* TabWidget = GetTabWidgetForModel(Model); + const lcModelTabWidget* const TabWidget = GetTabWidgetForModel(Model); return TabWidget ? TabWidget->GetViews() : nullptr; } @@ -228,7 +228,7 @@ public: { lcModelTabWidget* TabWidget = (lcModelTabWidget*)mModelTabWidget->widget(TabIdx); - int ViewIndex = TabWidget->GetViews()->FindIndex(View); + const int ViewIndex = TabWidget->GetViews()->FindIndex(View); if (ViewIndex != -1) return TabWidget; } @@ -376,7 +376,7 @@ protected: bool OpenProjectFile(const QString& FileName); - lcModelTabWidget* GetTabWidgetForModel(lcModel* Model) const + lcModelTabWidget* GetTabWidgetForModel(const lcModel* Model) const { for (int TabIdx = 0; TabIdx < mModelTabWidget->count(); TabIdx++) { diff --git a/common/lc_math.h b/common/lc_math.h index 0270800a..3dc6e41c 100644 --- a/common/lc_math.h +++ b/common/lc_math.h @@ -448,7 +448,7 @@ inline QDataStream& operator >> (QDataStream& Stream, lcVector4& v) inline void lcVector3::Normalize() { - float InvLength = 1.0f / Length(); + const float InvLength = 1.0f / Length(); x *= InvLength; y *= InvLength; @@ -680,13 +680,13 @@ inline lcVector4 lcMul4(const lcVector4& a, const lcMatrix44& b) inline lcMatrix33 lcMul(const lcMatrix33& a, const lcMatrix33& b) { - lcVector3 Col0(b.r[0][0], b.r[1][0], b.r[2][0]); - lcVector3 Col1(b.r[0][1], b.r[1][1], b.r[2][1]); - lcVector3 Col2(b.r[0][2], b.r[1][2], b.r[2][2]); + const lcVector3 Col0(b.r[0][0], b.r[1][0], b.r[2][0]); + const lcVector3 Col1(b.r[0][1], b.r[1][1], b.r[2][1]); + const lcVector3 Col2(b.r[0][2], b.r[1][2], b.r[2][2]); - lcVector3 Ret0(lcDot(a.r[0], Col0), lcDot(a.r[0], Col1), lcDot(a.r[0], Col2)); - lcVector3 Ret1(lcDot(a.r[1], Col0), lcDot(a.r[1], Col1), lcDot(a.r[1], Col2)); - lcVector3 Ret2(lcDot(a.r[2], Col0), lcDot(a.r[2], Col1), lcDot(a.r[2], Col2)); + const lcVector3 Ret0(lcDot(a.r[0], Col0), lcDot(a.r[0], Col1), lcDot(a.r[0], Col2)); + const lcVector3 Ret1(lcDot(a.r[1], Col0), lcDot(a.r[1], Col1), lcDot(a.r[1], Col2)); + const lcVector3 Ret2(lcDot(a.r[2], Col0), lcDot(a.r[2], Col1), lcDot(a.r[2], Col2)); return lcMatrix33(Ret0, Ret1, Ret2); } @@ -1101,8 +1101,8 @@ inline lcVector4 lcMatrix44ToAxisAngle(const lcMatrix44& m) if (m.Determinant() < 0.0f) Rows[0] *= -1.0f; - float Trace = Rows[0][0] + Rows[1][1] + Rows[2][2]; - float Cos = 0.5f * (Trace - 1.0f); + const float Trace = Rows[0][0] + Rows[1][1] + Rows[2][2]; + const float Cos = 0.5f * (Trace - 1.0f); lcVector4 rot; rot[3] = acosf(lcClamp(Cos, -1.0f, 1.0f)); // in [0,PI] @@ -1358,10 +1358,10 @@ inline lcMatrix44 lcMatrix44Inverse(const lcMatrix44& m) r0[4] = s * (r0[4] - r1[4] * m0), r0[5] = s * (r0[5] - r1[5] * m0), r0[6] = s * (r0[6] - r1[6] * m0), r0[7] = s * (r0[7] - r1[7] * m0); - lcVector4 Row0(r0[4], r1[4], r2[4], r3[4]); - lcVector4 Row1(r0[5], r1[5], r2[5], r3[5]); - lcVector4 Row2(r0[6], r1[6], r2[6], r3[6]); - lcVector4 Row3(r0[7], r1[7], r2[7], r3[7]); + const lcVector4 Row0(r0[4], r1[4], r2[4], r3[4]); + const lcVector4 Row1(r0[5], r1[5], r2[5], r3[5]); + const lcVector4 Row2(r0[6], r1[6], r2[6], r3[6]); + const lcVector4 Row3(r0[7], r1[7], r2[7], r3[7]); lcMatrix44 out(Row0, Row1, Row2, Row3); @@ -1412,17 +1412,17 @@ inline lcVector4 lcQuaternionRotationZ(float Radians) inline lcVector4 lcQuaternionFromAxisAngle(const lcVector4& a) { - float s = sinf(a[3] / 2.0f); + const float s = sinf(a[3] / 2.0f); return lcVector4(a[0] * s, a[1] * s, a[2] * s, cosf(a[3] / 2.0f)); } inline lcVector4 lcQuaternionToAxisAngle(const lcVector4& a) { - float Len = lcDot3(a, a); + const float Len = lcDot3(a, a); if (Len > 0.00001f) { - float f = 1.0f / sqrtf(Len); + const float f = 1.0f / sqrtf(Len); return lcVector4(a[0] * f, a[1] * f, a[2] * f, acosf(a[3]) * 2.0f); } else @@ -1433,10 +1433,10 @@ inline lcVector4 lcQuaternionToAxisAngle(const lcVector4& a) inline lcVector4 lcQuaternionMultiply(const lcVector4& a, const lcVector4& b) { - float x = a[0] * b[3] + a[1] * b[2] - a[2] * b[1] + a[3] * b[0]; - float y = -a[0] * b[2] + a[1] * b[3] + a[2] * b[0] + a[3] * b[1]; - float z = a[0] * b[1] - a[1] * b[0] + a[2] * b[3] + a[3] * b[2]; - float w = -a[0] * b[0] - a[1] * b[1] - a[2] * b[2] + a[3] * b[3]; + const float x = a[0] * b[3] + a[1] * b[2] - a[2] * b[1] + a[3] * b[0]; + const float y = -a[0] * b[2] + a[1] * b[3] + a[2] * b[0] + a[3] * b[1]; + const float z = a[0] * b[1] - a[1] * b[0] + a[2] * b[3] + a[3] * b[2]; + const float w = -a[0] * b[0] - a[1] * b[1] - a[2] * b[2] + a[3] * b[3]; return lcVector4(x, y, z, w); } @@ -1444,18 +1444,18 @@ inline lcVector4 lcQuaternionMultiply(const lcVector4& a, const lcVector4& b) inline lcVector3 lcQuaternionMul(const lcVector3& a, const lcVector4& b) { // Faster to transform to a matrix and multiply. - float Tx = 2.0f*b[0]; - float Ty = 2.0f*b[1]; - float Tz = 2.0f*b[2]; - float Twx = Tx*b[3]; - float Twy = Ty*b[3]; - float Twz = Tz*b[3]; - float Txx = Tx*b[0]; - float Txy = Ty*b[0]; - float Txz = Tz*b[0]; - float Tyy = Ty*b[1]; - float Tyz = Tz*b[1]; - float Tzz = Tz*b[2]; + const float Tx = 2.0f*b[0]; + const float Ty = 2.0f*b[1]; + const float Tz = 2.0f*b[2]; + const float Twx = Tx*b[3]; + const float Twy = Ty*b[3]; + const float Twz = Tz*b[3]; + const float Txx = Tx*b[0]; + const float Txy = Ty*b[0]; + const float Txz = Tz*b[0]; + const float Tyy = Ty*b[1]; + const float Tyz = Tz*b[1]; + const float Tzz = Tz*b[2]; lcVector3 Rows[3]; Rows[0] = lcVector3(1.0f-(Tyy+Tzz), Txy+Twz, Txz-Twy); @@ -1483,7 +1483,7 @@ inline lcVector3 lcProjectPoint(const lcVector3& Point, const lcMatrix44& ModelV inline lcVector3 lcUnprojectPoint(const lcVector3& Point, const lcMatrix44& ModelView, const lcMatrix44& Projection, const int Viewport[4]) { // Calculate the screen to model transform. - lcMatrix44 Transform = lcMatrix44Inverse(lcMul(ModelView, Projection)); + const lcMatrix44 Transform = lcMatrix44Inverse(lcMul(ModelView, Projection)); lcVector4 Tmp; @@ -1504,7 +1504,7 @@ inline lcVector3 lcUnprojectPoint(const lcVector3& Point, const lcMatrix44& Mode inline void lcUnprojectPoints(lcVector3* Points, int NumPoints, const lcMatrix44& ModelView, const lcMatrix44& Projection, const int Viewport[4]) { // Calculate the screen to model transform. - lcMatrix44 Transform = lcMatrix44Inverse(lcMul(ModelView, Projection)); + const lcMatrix44 Transform = lcMatrix44Inverse(lcMul(ModelView, Projection)); for (int i = 0; i < NumPoints; i++) { @@ -1556,8 +1556,8 @@ inline void lcGetFrustumPlanes(const lcMatrix44& WorldView, const lcMatrix44& Pr for (int i = 0; i < 6; i++) { - lcVector3 Normal(Planes[i][0], Planes[i][1], Planes[i][2]); - float Length = Normal.Length(); + const lcVector3 Normal(Planes[i][0], Planes[i][1], Planes[i][2]); + const float Length = Normal.Length(); Planes[i] /= -Length; } } @@ -1570,19 +1570,19 @@ inline std::tuple lcZoomExtents(const lcVector3& Position, con lcVector4 Planes[6]; lcGetFrustumPlanes(WorldView, Projection, Planes); - lcVector3 Front(WorldView[0][2], WorldView[1][2], WorldView[2][2]); + const lcVector3 Front(WorldView[0][2], WorldView[1][2], WorldView[2][2]); float SmallestDistance = FLT_MAX; for (int PlaneIdx = 0; PlaneIdx < 4; PlaneIdx++) { - lcVector3 Plane(Planes[PlaneIdx][0], Planes[PlaneIdx][1], Planes[PlaneIdx][2]); - float ep = lcDot(Position, Plane); - float fp = lcDot(Front, Plane); + const lcVector3 Plane(Planes[PlaneIdx][0], Planes[PlaneIdx][1], Planes[PlaneIdx][2]); + const float ep = lcDot(Position, Plane); + const float fp = lcDot(Front, Plane); for (int PointIdx = 0; PointIdx < NumPoints; PointIdx++) { - float u = (ep - lcDot(Points[PointIdx], Plane)) / fp; + const float u = (ep - lcDot(Points[PointIdx], Plane)) / fp; if (u < SmallestDistance) SmallestDistance = u; @@ -1595,7 +1595,7 @@ inline std::tuple lcZoomExtents(const lcVector3& Position, con for (int PointIdx = 0; PointIdx < NumPoints; PointIdx++) { - float Distance = lcDot(Points[PointIdx], Front); + const float Distance = lcDot(Points[PointIdx], Front); if (Distance > FarDistance) FarDistance = Distance; @@ -1606,11 +1606,11 @@ inline std::tuple lcZoomExtents(const lcVector3& Position, con inline void lcClosestPointsBetweenLines(const lcVector3& Line1a, const lcVector3& Line1b, const lcVector3& Line2a, const lcVector3& Line2b, lcVector3* Intersection1, lcVector3* Intersection2) { - lcVector3 u1 = Line1b - Line1a; - lcVector3 u2 = Line2b - Line2a; - lcVector3 p21 = Line2a - Line1a; - lcVector3 m = lcCross(u2, u1); - float m2 = lcDot(m, m); + const lcVector3 u1 = Line1b - Line1a; + const lcVector3 u2 = Line2b - Line2a; + const lcVector3 p21 = Line2a - Line1a; + const lcVector3 m = lcCross(u2, u1); + const float m2 = lcDot(m, m); if (m2 < 0.00001f) { @@ -1621,33 +1621,33 @@ inline void lcClosestPointsBetweenLines(const lcVector3& Line1a, const lcVector3 return; } - lcVector3 r = lcCross(p21, m / m2); + const lcVector3 r = lcCross(p21, m / m2); if (Intersection1) { - float t1 = lcDot(r, u2); + const float t1 = lcDot(r, u2); *Intersection1 = Line1a + t1 * u1; } if (Intersection2) { - float t2 = lcDot(r, u1); + const float t2 = lcDot(r, u1); *Intersection2 = Line2a + t2 * u2; } } inline bool lcLineSegmentPlaneIntersection(lcVector3* Intersection, const lcVector3& Start, const lcVector3& End, const lcVector4& Plane) { - lcVector3 Dir = End - Start; - lcVector3 PlaneNormal(Plane[0], Plane[1], Plane[2]); + const lcVector3 Dir = End - Start; + const lcVector3 PlaneNormal(Plane[0], Plane[1], Plane[2]); - float t1 = lcDot(PlaneNormal, Start) + Plane[3]; - float t2 = lcDot(PlaneNormal, Dir); + const float t1 = lcDot(PlaneNormal, Start) + Plane[3]; + const float t2 = lcDot(PlaneNormal, Dir); if (t2 == 0.0f) return false; - float t = -t1 / t2; + const float t = -t1 / t2; *Intersection = Start + t * Dir; @@ -1660,19 +1660,19 @@ inline bool lcLineSegmentPlaneIntersection(lcVector3* Intersection, const lcVect inline bool lcLineTriangleMinIntersection(const lcVector3& p1, const lcVector3& p2, const lcVector3& p3, const lcVector3& Start, const lcVector3& End, float* MinDist, lcVector3* Intersection) { // Calculate the polygon plane. - lcVector3 PlaneNormal = lcCross(p1 - p2, p3 - p2); - float PlaneD = -lcDot(PlaneNormal, p1); + const lcVector3 PlaneNormal = lcCross(p1 - p2, p3 - p2); + const float PlaneD = -lcDot(PlaneNormal, p1); // Check if the line is parallel to the plane. - lcVector3 Dir = End - Start; + const lcVector3 Dir = End - Start; - float t1 = lcDot(PlaneNormal, Start) + PlaneD; - float t2 = lcDot(PlaneNormal, Dir); + const float t1 = lcDot(PlaneNormal, Start) + PlaneD; + const float t2 = lcDot(PlaneNormal, Dir); if (t2 == 0) return false; - float t = -(t1 / t2); + const float t = -(t1 / t2); if (t < 0) return false; @@ -1696,7 +1696,7 @@ inline bool lcLineTriangleMinIntersection(const lcVector3& p1, const lcVector3& a2 = lcDot(pa2, pa3); a3 = lcDot(pa3, pa1); - float total = (acosf(a1) + acosf(a2) + acosf(a3)) * LC_RTOD; + const float total = (acosf(a1) + acosf(a2) + acosf(a3)) * LC_RTOD; if (fabs(total - 360) <= 0.001f) { @@ -1757,15 +1757,15 @@ inline void lcPolygonPlaneClip(lcVector3* InPoints, int NumInPoints, lcVector3* // Return true if a polygon intersects a set of planes. inline bool lcTriangleIntersectsPlanes(const float* p1, const float* p2, const float* p3, const lcVector4 Planes[6]) { - const int NumPlanes = 6; - const float* Points[3] = { p1, p2, p3 }; + constexpr int NumPlanes = 6; + const float* const Points[3] = { p1, p2, p3 }; int Outcodes[3] = { 0, 0, 0 }, i; - int NumPoints = 3; + constexpr int NumPoints = 3; // First do the Cohen-Sutherland out code test for trivial rejects/accepts. for (i = 0; i < NumPoints; i++) { - lcVector3 Pt(Points[i][0], Points[i][1], Points[i][2]); + const lcVector3 Pt(Points[i][0], Points[i][1], Points[i][2]); for (int j = 0; j < NumPlanes; j++) { @@ -1892,9 +1892,9 @@ inline bool lcBoundingBoxRayIntersectDistance(const lcVector3& Min, const lcVect inline bool lcSphereRayMinIntersectDistance(const lcVector3& Center, float Radius, const lcVector3& Start, const lcVector3& End, float* Dist) { - lcVector3 Dir = Center - Start; - float LengthSquaredDir = lcLengthSquared(Dir); - float RadiusSquared = Radius * Radius; + const lcVector3 Dir = Center - Start; + const float LengthSquaredDir = lcLengthSquared(Dir); + const float RadiusSquared = Radius * Radius; if (LengthSquaredDir < RadiusSquared) { @@ -1904,14 +1904,14 @@ inline bool lcSphereRayMinIntersectDistance(const lcVector3& Center, float Radiu } else { - lcVector3 RayDir = End - Start; + const lcVector3 RayDir = End - Start; float t = lcDot(Dir, RayDir) / lcLengthSquared(RayDir); // Ray points away from sphere. if (t < 0) return false; - float c = (RadiusSquared - LengthSquaredDir) / lcLengthSquared(RayDir) + (t * t); + const float c = (RadiusSquared - LengthSquaredDir) / lcLengthSquared(RayDir) + (t * t); if (c > 0) { *Dist = t - sqrtf(c); @@ -1924,8 +1924,8 @@ inline bool lcSphereRayMinIntersectDistance(const lcVector3& Center, float Radiu inline lcVector3 lcRayPointClosestPoint(const lcVector3& Point, const lcVector3& Start, const lcVector3& End) { - lcVector3 Dir = Point - Start; - lcVector3 RayDir = End - Start; + const lcVector3 Dir = Point - Start; + const lcVector3 RayDir = End - Start; float t = lcDot(Dir, RayDir) / lcLengthSquared(RayDir); t = lcClamp(t, 0.0f, 1.0f); @@ -1935,7 +1935,7 @@ inline lcVector3 lcRayPointClosestPoint(const lcVector3& Point, const lcVector3& inline float lcRayPointDistance(const lcVector3& Point, const lcVector3& Start, const lcVector3& End) { - lcVector3 Closest = lcRayPointClosestPoint(Point, Start, End); + const lcVector3 Closest = lcRayPointClosestPoint(Point, Start, End); return lcLength(Closest - Point); } @@ -1943,7 +1943,7 @@ inline float lcRayPointDistance(const lcVector3& Point, const lcVector3& Start, // Returns true if the axis aligned box intersects the volume defined by planes. inline bool lcBoundingBoxIntersectsVolume(const lcVector3& Min, const lcVector3& Max, const lcVector4 Planes[6]) { - const int NumPlanes = 6; + constexpr int NumPlanes = 6; lcVector3 Points[8] = { Points[0] = lcVector3(Min[0], Min[1], Min[2]), diff --git a/common/lc_mesh.cpp b/common/lc_mesh.cpp index f927cb63..d3cfe706 100644 --- a/common/lc_mesh.cpp +++ b/common/lc_mesh.cpp @@ -191,7 +191,7 @@ bool lcMesh::MinIntersectDist(const lcVector3& Start, const lcVector3& End, floa if (!lcBoundingBoxRayIntersectDistance(mBoundingBox.Min, mBoundingBox.Max, Start, End, &Distance, nullptr) || (Distance >= MinDistance)) return false; - lcVertex* Verts = (lcVertex*)mVertexData; + lcVertex* const Verts = (lcVertex*)mVertexData; bool Hit = false; lcVector3 Intersection; @@ -265,7 +265,7 @@ void lcMesh::ExportPOVRay(lcFile& File, const char* MeshName, const char** Color for (int SectionIdx = 0; SectionIdx < mLods[LC_MESH_LOD_HIGH].NumSections; SectionIdx++) { - lcMeshSection* Section = &mLods[LC_MESH_LOD_HIGH].Sections[SectionIdx]; + const lcMeshSection* const Section = &mLods[LC_MESH_LOD_HIGH].Sections[SectionIdx]; if (Section->PrimitiveType == LC_MESH_TRIANGLES || Section->PrimitiveType == LC_MESH_TEXTURED_TRIANGLES) NumSections++; @@ -277,7 +277,7 @@ void lcMesh::ExportPOVRay(lcFile& File, const char* MeshName, const char** Color sprintf(Line, "#declare lc_%s = mesh {\n", MeshName); File.WriteLine(Line); - lcVertex* Verts = (lcVertex*)mVertexData; + const lcVertex* const Verts = (lcVertex*)mVertexData; for (int SectionIdx = 0; SectionIdx < mLods[LC_MESH_LOD_HIGH].NumSections; SectionIdx++) { @@ -348,9 +348,9 @@ void lcMesh::ExportWavefrontIndices(lcFile& File, int DefaultColorIndex, int Ver for (int Idx = 0; Idx < Section->NumIndices; Idx += 3) { - long int idx1 = Indices[Idx + 0] + VertexOffset; - long int idx2 = Indices[Idx + 1] + VertexOffset; - long int idx3 = Indices[Idx + 2] + VertexOffset; + const long int idx1 = Indices[Idx + 0] + VertexOffset; + const long int idx2 = Indices[Idx + 1] + VertexOffset; + const long int idx3 = Indices[Idx + 2] + VertexOffset; if (idx1 != idx2 && idx1 != idx3 && idx2 != idx3) sprintf(Line, "f %ld//%ld %ld//%ld %ld//%ld\n", idx1, idx1, idx2, idx2, idx3, idx3); @@ -461,7 +461,7 @@ bool lcMesh::FileSave(lcMemFile& File) { for (int SectionIdx = 0; SectionIdx < mLods[LodIdx].NumSections; SectionIdx++) { - lcMeshSection& Section = mLods[LodIdx].Sections[SectionIdx]; + const lcMeshSection& Section = mLods[LodIdx].Sections[SectionIdx]; File.WriteU32(lcGetColorCode(Section.ColorIndex)); File.WriteU32(Section.IndexOffset); @@ -473,7 +473,7 @@ bool lcMesh::FileSave(lcMemFile& File) if (Section.Texture) { - quint16 Length = (quint16)strlen(Section.Texture->mName); + const quint16 Length = (quint16)strlen(Section.Texture->mName); File.WriteU16(Length); File.WriteBuffer(Section.Texture->mName, Length); } diff --git a/common/lc_scene.cpp b/common/lc_scene.cpp index c8fa2ccf..dd5435de 100644 --- a/common/lc_scene.cpp +++ b/common/lc_scene.cpp @@ -30,13 +30,13 @@ void lcScene::Begin(const lcMatrix44& ViewMatrix) void lcScene::End() { - auto OpaqueMeshCompare = [this](int Index1, int Index2) + const auto OpaqueMeshCompare = [this](int Index1, int Index2) { const lcMesh* Mesh1 = mRenderMeshes[Index1].Mesh; const lcMesh* Mesh2 = mRenderMeshes[Index2].Mesh; - int Texture1 = Mesh1->mFlags & lcMeshFlag::HasTexture; - int Texture2 = Mesh2->mFlags & lcMeshFlag::HasTexture; + const int Texture1 = Mesh1->mFlags & lcMeshFlag::HasTexture; + const int Texture2 = Mesh2->mFlags & lcMeshFlag::HasTexture; if (Texture1 == Texture2) return Mesh1 < Mesh2; @@ -62,11 +62,11 @@ void lcScene::AddMesh(lcMesh* Mesh, const lcMatrix44& WorldMatrix, int ColorInde RenderMesh.Mesh = Mesh; RenderMesh.ColorIndex = ColorIndex; RenderMesh.State = State; - float Distance = fabsf(lcMul31(WorldMatrix[3], mViewMatrix).z); + const float Distance = fabsf(lcMul31(WorldMatrix[3], mViewMatrix).z); RenderMesh.LodIndex = mAllowLOD ? RenderMesh.Mesh->GetLodIndex(Distance) : LC_MESH_LOD_HIGH; - bool Translucent = lcIsColorTranslucent(ColorIndex); - lcMeshFlags Flags = Mesh->mFlags; + const bool Translucent = lcIsColorTranslucent(ColorIndex); + const lcMeshFlags Flags = Mesh->mFlags; if ((Flags & (lcMeshFlag::HasSolid | lcMeshFlag::HasLines)) || ((Flags & lcMeshFlag::HasDefault) && !Translucent)) mOpaqueMeshes.Add(mRenderMeshes.GetSize() - 1); @@ -90,8 +90,8 @@ void lcScene::AddMesh(lcMesh* Mesh, const lcMatrix44& WorldMatrix, int ColorInde if (!lcIsColorTranslucent(SectionColorIndex)) continue; - lcVector3 Center = (Section->BoundingBox.Min + Section->BoundingBox.Max) / 2; - float InstanceDistance = fabsf(lcMul31(lcMul31(Center, WorldMatrix), mViewMatrix).z); + const lcVector3 Center = (Section->BoundingBox.Min + Section->BoundingBox.Max) / 2; + const float InstanceDistance = fabsf(lcMul31(lcMul31(Center, WorldMatrix), mViewMatrix).z); lcTranslucentMeshInstance& Instance = mTranslucentMeshes.Add(); Instance.Section = Section; @@ -101,10 +101,10 @@ void lcScene::AddMesh(lcMesh* Mesh, const lcMatrix44& WorldMatrix, int ColorInde } } -void lcScene::DrawDebugNormals(lcContext* Context, lcMesh* Mesh) const +void lcScene::DrawDebugNormals(lcContext* Context, const lcMesh* Mesh) const { - lcVertex* VertexBuffer = (lcVertex*)Mesh->mVertexData; - lcVector3* Vertices = (lcVector3*)malloc(Mesh->mNumVertices * 2 * sizeof(lcVector3)); + const lcVertex* const VertexBuffer = (lcVertex*)Mesh->mVertexData; + lcVector3* const Vertices = (lcVector3*)malloc(Mesh->mNumVertices * 2 * sizeof(lcVector3)); for (int VertexIdx = 0; VertexIdx < Mesh->mNumVertices; VertexIdx++) { @@ -138,18 +138,18 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy Context->SetPolygonOffset(lcPolygonOffset::Opaque); - for (int MeshIndex : mOpaqueMeshes) + for (const int MeshIndex : mOpaqueMeshes) { const lcRenderMesh& RenderMesh = mRenderMeshes[MeshIndex]; const lcMesh* Mesh = RenderMesh.Mesh; - int LodIndex = RenderMesh.LodIndex; + const int LodIndex = RenderMesh.LodIndex; Context->BindMesh(Mesh); Context->SetWorldMatrix(RenderMesh.WorldMatrix); for (int SectionIdx = 0; SectionIdx < Mesh->mLods[LodIndex].NumSections; SectionIdx++) { - lcMeshSection* Section = &Mesh->mLods[LodIndex].Sections[SectionIdx]; + const lcMeshSection* const Section = &Mesh->mLods[LodIndex].Sections[SectionIdx]; if ((Section->PrimitiveType & PrimitiveTypes) == 0) continue; @@ -214,23 +214,23 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy } else if (Section->PrimitiveType == LC_MESH_CONDITIONAL_LINES) { - lcMatrix44 WorldViewProjectionMatrix = lcMul(RenderMesh.WorldMatrix, lcMul(mViewMatrix, Context->GetProjectionMatrix())); - lcVertex* VertexBuffer = (lcVertex*)Mesh->mVertexData; - int IndexBufferOffset = Mesh->mIndexCacheOffset != -1 ? Mesh->mIndexCacheOffset : 0; + const lcMatrix44 WorldViewProjectionMatrix = lcMul(RenderMesh.WorldMatrix, lcMul(mViewMatrix, Context->GetProjectionMatrix())); + const lcVertex* const VertexBuffer = (lcVertex*)Mesh->mVertexData; + const int IndexBufferOffset = Mesh->mIndexCacheOffset != -1 ? Mesh->mIndexCacheOffset : 0; - int VertexBufferOffset = Mesh->mVertexCacheOffset != -1 ? Mesh->mVertexCacheOffset : 0; + const int VertexBufferOffset = Mesh->mVertexCacheOffset != -1 ? Mesh->mVertexCacheOffset : 0; Context->SetVertexFormat(VertexBufferOffset, 3, 1, 0, 0, DrawLit); if (Mesh->mIndexType == GL_UNSIGNED_SHORT) { - quint16* Indices = (quint16*)((char*)Mesh->mIndexData + Section->IndexOffset); + const quint16* const Indices = (quint16*)((char*)Mesh->mIndexData + Section->IndexOffset); for (int i = 0; i < Section->NumIndices; i += 4) { - lcVector3 p1 = lcMul31(VertexBuffer[Indices[i + 0]].Position, WorldViewProjectionMatrix); - lcVector3 p2 = lcMul31(VertexBuffer[Indices[i + 1]].Position, WorldViewProjectionMatrix); - lcVector3 p3 = lcMul31(VertexBuffer[Indices[i + 2]].Position, WorldViewProjectionMatrix); - lcVector3 p4 = lcMul31(VertexBuffer[Indices[i + 3]].Position, WorldViewProjectionMatrix); + const lcVector3 p1 = lcMul31(VertexBuffer[Indices[i + 0]].Position, WorldViewProjectionMatrix); + const lcVector3 p2 = lcMul31(VertexBuffer[Indices[i + 1]].Position, WorldViewProjectionMatrix); + const lcVector3 p3 = lcMul31(VertexBuffer[Indices[i + 2]].Position, WorldViewProjectionMatrix); + const lcVector3 p4 = lcMul31(VertexBuffer[Indices[i + 3]].Position, WorldViewProjectionMatrix); if (((p1.y - p2.y) * (p3.x - p1.x) + (p2.x - p1.x) * (p3.y - p1.y)) * ((p1.y - p2.y) * (p4.x - p1.x) + (p2.x - p1.x) * (p4.y - p1.y)) >= 0) Context->DrawIndexedPrimitives(GL_LINES, 2, Mesh->mIndexType, IndexBufferOffset + Section->IndexOffset + i * sizeof(quint16)); @@ -238,14 +238,14 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy } else { - quint32* Indices = (quint32*)((char*)Mesh->mIndexData + Section->IndexOffset); + const quint32* const Indices = (quint32*)((char*)Mesh->mIndexData + Section->IndexOffset); for (int i = 0; i < Section->NumIndices; i += 4) { - lcVector3 p1 = lcMul31(VertexBuffer[Indices[i + 0]].Position, WorldViewProjectionMatrix); - lcVector3 p2 = lcMul31(VertexBuffer[Indices[i + 1]].Position, WorldViewProjectionMatrix); - lcVector3 p3 = lcMul31(VertexBuffer[Indices[i + 2]].Position, WorldViewProjectionMatrix); - lcVector3 p4 = lcMul31(VertexBuffer[Indices[i + 3]].Position, WorldViewProjectionMatrix); + const lcVector3 p1 = lcMul31(VertexBuffer[Indices[i + 0]].Position, WorldViewProjectionMatrix); + const lcVector3 p2 = lcMul31(VertexBuffer[Indices[i + 1]].Position, WorldViewProjectionMatrix); + const lcVector3 p3 = lcMul31(VertexBuffer[Indices[i + 2]].Position, WorldViewProjectionMatrix); + const lcVector3 p4 = lcMul31(VertexBuffer[Indices[i + 3]].Position, WorldViewProjectionMatrix); if (((p1.y - p2.y) * (p3.x - p1.x) + (p2.x - p1.x) * (p3.y - p1.y)) * ((p1.y - p2.y) * (p4.x - p1.x) + (p2.x - p1.x) * (p4.y - p1.y)) >= 0) Context->DrawIndexedPrimitives(GL_LINES, 2, Mesh->mIndexType, IndexBufferOffset + Section->IndexOffset + i * sizeof(quint32)); @@ -255,9 +255,9 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy continue; } - lcTexture* Texture = Section->Texture; + const lcTexture* const Texture = Section->Texture; int VertexBufferOffset = Mesh->mVertexCacheOffset != -1 ? Mesh->mVertexCacheOffset : 0; - int IndexBufferOffset = Mesh->mIndexCacheOffset != -1 ? Mesh->mIndexCacheOffset : 0; + const int IndexBufferOffset = Mesh->mIndexCacheOffset != -1 ? Mesh->mIndexCacheOffset : 0; if (!Texture) { @@ -272,7 +272,7 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy Context->BindTexture2D(Texture->mTexture); } - GLenum DrawPrimitiveType = Section->PrimitiveType & (LC_MESH_TRIANGLES | LC_MESH_TEXTURED_TRIANGLES) ? GL_TRIANGLES : GL_LINES; + const GLenum DrawPrimitiveType = Section->PrimitiveType & (LC_MESH_TRIANGLES | LC_MESH_TEXTURED_TRIANGLES) ? GL_TRIANGLES : GL_LINES; Context->DrawIndexedPrimitives(DrawPrimitiveType, Section->NumIndices, Mesh->mIndexType, IndexBufferOffset + Section->IndexOffset); } @@ -342,9 +342,9 @@ void lcScene::DrawTranslucentMeshes(lcContext* Context, bool DrawLit) const break; } - lcTexture* Texture = Section->Texture; + const lcTexture* Texture = Section->Texture; int VertexBufferOffset = Mesh->mVertexCacheOffset != -1 ? Mesh->mVertexCacheOffset : 0; - int IndexBufferOffset = Mesh->mIndexCacheOffset != -1 ? Mesh->mIndexCacheOffset : 0; + const int IndexBufferOffset = Mesh->mIndexCacheOffset != -1 ? Mesh->mIndexCacheOffset : 0; if (!Texture) { @@ -359,7 +359,7 @@ void lcScene::DrawTranslucentMeshes(lcContext* Context, bool DrawLit) const Context->BindTexture2D(Texture->mTexture); } - GLenum DrawPrimitiveType = Section->PrimitiveType & (LC_MESH_TRIANGLES | LC_MESH_TEXTURED_TRIANGLES) ? GL_TRIANGLES : GL_LINES; + const GLenum DrawPrimitiveType = Section->PrimitiveType & (LC_MESH_TRIANGLES | LC_MESH_TEXTURED_TRIANGLES) ? GL_TRIANGLES : GL_LINES; Context->DrawIndexedPrimitives(DrawPrimitiveType, Section->NumIndices, Mesh->mIndexType, IndexBufferOffset + Section->IndexOffset); #ifdef LC_DEBUG_NORMALS @@ -382,7 +382,7 @@ void lcScene::Draw(lcContext* Context) const Context->SetViewMatrix(mViewMatrix); - const bool DrawConditional = false; + constexpr bool DrawConditional = false; const lcPreferences& Preferences = lcGetPreferences(); lcShadingMode ShadingMode = Preferences.mShadingMode; @@ -403,7 +403,7 @@ void lcScene::Draw(lcContext* Context) const } else if (ShadingMode == lcShadingMode::Flat) { - bool DrawLines = Preferences.mDrawEdgeLines && Preferences.mLineWidth != 0.0f; + const bool DrawLines = Preferences.mDrawEdgeLines && Preferences.mLineWidth != 0.0f; int PrimitiveTypes = LC_MESH_TRIANGLES | LC_MESH_TEXTURED_TRIANGLES; @@ -424,7 +424,7 @@ void lcScene::Draw(lcContext* Context) const } else { - bool DrawLines = Preferences.mDrawEdgeLines && Preferences.mLineWidth != 0.0f; + const bool DrawLines = Preferences.mDrawEdgeLines && Preferences.mLineWidth != 0.0f; if (DrawLines) { diff --git a/common/lc_scene.h b/common/lc_scene.h index 56262468..8b9db217 100644 --- a/common/lc_scene.h +++ b/common/lc_scene.h @@ -94,7 +94,7 @@ public: protected: void DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTypes) const; void DrawTranslucentMeshes(lcContext* Context, bool DrawLit) const; - void DrawDebugNormals(lcContext* Context, lcMesh* Mesh) const; + void DrawDebugNormals(lcContext* Context, const lcMesh* Mesh) const; lcMatrix44 mViewMatrix; lcMatrix44 mActiveSubmodelTransform; diff --git a/common/lc_texture.cpp b/common/lc_texture.cpp index 6f534e73..f3562746 100644 --- a/common/lc_texture.cpp +++ b/common/lc_texture.cpp @@ -45,7 +45,7 @@ lcTexture::~lcTexture() void lcTexture::CreateGridTexture() { - const int NumLevels = 9; + constexpr int NumLevels = 9; mImages.resize(NumLevels); quint8* Previous = nullptr; @@ -57,30 +57,30 @@ void lcTexture::CreateGridTexture() if (Previous) { - int PreviousGridSize = 2 * GridSize; + const int PreviousGridSize = 2 * GridSize; for (int y = 0; y < GridSize - 1; y++) { for (int x = 0; x < GridSize - 1; x++) { - quint8 a = Previous[x * 2 + y * 2 * PreviousGridSize] > 64 ? 255 : 0; - quint8 b = Previous[x * 2 + 1 + y * 2 * PreviousGridSize] > 64 ? 255 : 0; - quint8 c = Previous[x * 2 + (y * 2 + 1) * PreviousGridSize] > 64 ? 255 : 0; - quint8 d = Previous[x * 2 + 1 + (y * 2 + 1) * PreviousGridSize] > 64 ? 255 : 0; + const quint8 a = Previous[x * 2 + y * 2 * PreviousGridSize] > 64 ? 255 : 0; + const quint8 b = Previous[x * 2 + 1 + y * 2 * PreviousGridSize] > 64 ? 255 : 0; + const quint8 c = Previous[x * 2 + (y * 2 + 1) * PreviousGridSize] > 64 ? 255 : 0; + const quint8 d = Previous[x * 2 + 1 + (y * 2 + 1) * PreviousGridSize] > 64 ? 255 : 0; GridImage.mData[x + y * GridSize] = (a + b + c + d) / 4; } int x = GridSize - 1; - quint8 a = Previous[x * 2 + y * 2 * PreviousGridSize]; - quint8 c = Previous[x * 2 + (y * 2 + 1) * PreviousGridSize]; + const quint8 a = Previous[x * 2 + y * 2 * PreviousGridSize]; + const quint8 c = Previous[x * 2 + (y * 2 + 1) * PreviousGridSize]; GridImage.mData[x + y * GridSize] = (a + c) / 2; } int y = GridSize - 1; for (int x = 0; x < GridSize - 1; x++) { - quint8 a = Previous[x * 2 + y * 2 * PreviousGridSize]; - quint8 b = Previous[x * 2 + 1 + y * 2 * PreviousGridSize]; + const quint8 a = Previous[x * 2 + y * 2 * PreviousGridSize]; + const quint8 b = Previous[x * 2 + 1 + y * 2 * PreviousGridSize]; GridImage.mData[x + y * GridSize] = (a + b) / 2; } @@ -105,15 +105,15 @@ void lcTexture::CreateGridTexture() if (Radius2 <= y2) { - int x1 = sqrtf(Radius1 - y2); + const int x1 = sqrtf(Radius1 - y2); for (int x = GridSize / 2 - x1; x < GridSize / 2 + x1; x++) Pixel[x] = 255; } else { - int x1 = sqrtf(Radius1 - y2); - int x2 = sqrtf(Radius2 - y2); + const int x1 = sqrtf(Radius1 - y2); + const int x2 = sqrtf(Radius2 - y2); for (int x = GridSize / 2 - x1; x < GridSize / 2 - x2; x++) Pixel[x] = 255; @@ -127,24 +127,24 @@ void lcTexture::CreateGridTexture() { for (int x = 0; x < GridSize - 1; x++) { - quint8 a = TempBuffer[x + y * GridSize]; - quint8 b = TempBuffer[x + 1 + y * GridSize]; - quint8 c = TempBuffer[x + (y + 1) * GridSize]; - quint8 d = TempBuffer[x + 1 + (y + 1) * GridSize]; + const quint8 a = TempBuffer[x + y * GridSize]; + const quint8 b = TempBuffer[x + 1 + y * GridSize]; + const quint8 c = TempBuffer[x + (y + 1) * GridSize]; + const quint8 d = TempBuffer[x + 1 + (y + 1) * GridSize]; GridImage.mData[x + y * GridSize] = (a + b + c + d) / 4; } int x = GridSize - 1; - quint8 a = TempBuffer[x + y * GridSize]; - quint8 c = TempBuffer[x + (y + 1) * GridSize]; + const quint8 a = TempBuffer[x + y * GridSize]; + const quint8 c = TempBuffer[x + (y + 1) * GridSize]; GridImage.mData[x + y * GridSize] = (a + c) / 2; } int y = GridSize - 1; for (int x = 0; x < GridSize - 1; x++) { - quint8 a = TempBuffer[x + y * GridSize]; - quint8 b = TempBuffer[x + 1 + y * GridSize]; + const quint8 a = TempBuffer[x + y * GridSize]; + const quint8 b = TempBuffer[x + 1 + y * GridSize]; GridImage.mData[x + y * GridSize] = (a + b) / 2; } @@ -210,15 +210,15 @@ void lcTexture::Upload(lcContext* Context) if (!mTexture) glGenTextures(1, &mTexture); - int Filters[2][5] = + constexpr int Filters[2][5] = { { GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR }, { GL_NEAREST, GL_LINEAR, GL_LINEAR, GL_LINEAR, GL_LINEAR }, }; - int FilterFlags = mFlags & LC_TEXTURE_FILTER_MASK; - int FilterIndex = FilterFlags >> LC_TEXTURE_FILTER_SHIFT; - int MipIndex = mFlags & LC_TEXTURE_MIPMAPS ? 0 : 1; + const int FilterFlags = mFlags & LC_TEXTURE_FILTER_MASK; + const int FilterIndex = FilterFlags >> LC_TEXTURE_FILTER_SHIFT; + const int MipIndex = mFlags & LC_TEXTURE_MIPMAPS ? 0 : 1; unsigned int Faces, Target; diff --git a/common/lc_texture.h b/common/lc_texture.h index eb5c05c8..22d66a96 100644 --- a/common/lc_texture.h +++ b/common/lc_texture.h @@ -46,7 +46,7 @@ public: bool Release() { - bool InUse = mRefCount.deref(); + const bool InUse = mRefCount.deref(); if (!InUse) Unload(); diff --git a/common/minifig.cpp b/common/minifig.cpp index d90c6a0d..6d784452 100644 --- a/common/minifig.cpp +++ b/common/minifig.cpp @@ -98,7 +98,7 @@ void MinifigWizard::OnInitialUpdate() static_assert(LC_ARRAY_COUNT(MinifigWizard::mSectionNames) == LC_MFW_NUMITEMS, "Array size mismatch."); const int ColorCodes[LC_MFW_NUMITEMS] = { 4, 7, 14, 7, 1, 0, 7, 4, 4, 14, 14, 7, 7, 0, 0, 7, 7 }; - const char* Pieces[LC_MFW_NUMITEMS] = { "3624.dat", "", "3626bp01.dat", "", "973.dat", "3815.dat", "", "3819.dat", "3818.dat", "3820.dat", "3820.dat", "", "", "3817.dat", "3816.dat", "", "" }; + const char* const Pieces[LC_MFW_NUMITEMS] = { "3624.dat", "", "3626bp01.dat", "", "973.dat", "3815.dat", "", "3819.dat", "3818.dat", "3820.dat", "3820.dat", "", "", "3817.dat", "3816.dat", "", "" }; lcPiecesLibrary* Library = lcGetPiecesLibrary(); for (int i = 0; i < LC_MFW_NUMITEMS; i++) @@ -129,7 +129,7 @@ void MinifigWizard::ParseSettings(lcFile& Settings) char Line[1024]; bool FoundSection = false; const char* SectionName = mSectionNames[SectionIndex]; - size_t SectionNameLength = strlen(SectionName); + const size_t SectionNameLength = strlen(SectionName); while (Settings.ReadLine(Line, sizeof(Line))) { @@ -323,7 +323,7 @@ void MinifigWizard::OnDraw() { mContext->SetDefaultState(); - float Aspect = (float)mWidth/(float)mHeight; + const float Aspect = (float)mWidth/(float)mHeight; mContext->SetViewport(0, 0, mWidth, mHeight); lcGetActiveModel()->DrawBackground(this); @@ -332,7 +332,7 @@ void MinifigWizard::OnDraw() for (int InfoIdx = 0; InfoIdx < LC_MFW_NUMITEMS; InfoIdx++) { - PieceInfo* Info = mMinifig.Parts[InfoIdx]; + const PieceInfo* const Info = mMinifig.Parts[InfoIdx]; if (!Info) continue; @@ -342,21 +342,21 @@ void MinifigWizard::OnDraw() for (int PointIdx = 0; PointIdx < 8; PointIdx++) { - lcVector3 Point = lcMul31(Points[PointIdx], mMinifig.Matrices[InfoIdx]); + const lcVector3 Point = lcMul31(Points[PointIdx], mMinifig.Matrices[InfoIdx]); Min = lcMin(Point, Min); Max = lcMax(Point, Max); } } - lcVector3 Center = (Min + Max) / 2.0f; + const lcVector3 Center = (Min + Max) / 2.0f; lcVector3 Eye(0.0f, 0.0f, 1.0f); Eye = lcMul30(Eye, lcMatrix44RotationX(-mRotateX * LC_DTOR)); Eye = lcMul30(Eye, lcMatrix44RotationZ(-mRotateZ * LC_DTOR)); - lcMatrix44 Projection = lcMatrix44Perspective(30.0f, Aspect, 1.0f, 2500.0f); + const lcMatrix44 Projection = lcMatrix44Perspective(30.0f, Aspect, 1.0f, 2500.0f); mContext->SetProjectionMatrix(Projection); lcMatrix44 ViewMatrix; @@ -368,12 +368,12 @@ void MinifigWizard::OnDraw() Eye += Center; - lcMatrix44 ModelView = lcMatrix44LookAt(Eye, Center, lcVector3(0, 0, 1)); + const lcMatrix44 ModelView = lcMatrix44LookAt(Eye, Center, lcVector3(0, 0, 1)); std::tie(Eye, std::ignore) = lcZoomExtents(Eye, ModelView, Projection, Points, 8); ViewMatrix = lcMatrix44LookAt(Eye, Center, lcVector3(0, 0, 1)); - lcVector3 d = Eye - Center; + const lcVector3 d = Eye - Center; mDistance = d.Length(); } else @@ -476,11 +476,11 @@ void MinifigWizard::Calculate() lcMatrix44 Root, Mat, Mat2; PieceInfo** Parts = mMinifig.Parts; - float* Angles = mMinifig.Angles; + const float* Angles = mMinifig.Angles; lcMatrix44* Matrices = mMinifig.Matrices; - bool DroidTorso = Parts[LC_MFW_BODY] && !qstricmp(Parts[LC_MFW_BODY]->mFileName, "30375.dat"); - bool SkeletonTorso = Parts[LC_MFW_BODY] && !qstricmp(Parts[LC_MFW_BODY]->mFileName, "6260.dat"); + const bool DroidTorso = Parts[LC_MFW_BODY] && !qstricmp(Parts[LC_MFW_BODY]->mFileName, "30375.dat"); + const bool SkeletonTorso = Parts[LC_MFW_BODY] && !qstricmp(Parts[LC_MFW_BODY]->mFileName, "6260.dat"); if (Parts[LC_MFW_BODY3]) Root = lcMatrix44Translation(lcVector3(0, 0, 74.0f)); @@ -610,7 +610,7 @@ void MinifigWizard::Calculate() if (Parts[LC_MFW_RLEGA]) { - lcVector3 Center(-10.0f, -1.0f, -28.0f); + const lcVector3 Center(-10.0f, -1.0f, -28.0f); Mat = lcMatrix44RotationZ(LC_DTOR * Angles[LC_MFW_RLEGA]); Mat2 = mSettings[LC_MFW_RLEGA][GetSelectionIndex(LC_MFW_RLEGA)].Offset; Mat2.SetTranslation(lcMul31(-Center, Mat2)); @@ -629,7 +629,7 @@ void MinifigWizard::Calculate() if (Parts[LC_MFW_LLEGA]) { - lcVector3 Center(10.0f, -1.0f, -28.0f); + const lcVector3 Center(10.0f, -1.0f, -28.0f); Mat = lcMatrix44RotationZ(LC_DTOR * Angles[LC_MFW_LLEGA]); Mat2 = mSettings[LC_MFW_LLEGA][GetSelectionIndex(LC_MFW_LLEGA)].Offset; Mat2.SetTranslation(lcMul31(-Center, Mat2)); diff --git a/common/piece.h b/common/piece.h index 398495dd..44b993b3 100644 --- a/common/piece.h +++ b/common/piece.h @@ -545,7 +545,7 @@ public: lcVector3 GetRotationCenter() const { - quint32 Section = GetFocusSection(); + const quint32 Section = GetFocusSection(); if (Section == LC_PIECE_SECTION_POSITION || Section == LC_PIECE_SECTION_INVALID) { @@ -556,7 +556,7 @@ public: } else { - int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_1; + const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_1; if (ControlPointIndex >= 0 && ControlPointIndex < mControlPoints.GetSize()) { @@ -570,7 +570,7 @@ public: lcMatrix33 GetRelativeRotation() const { - quint32 Section = GetFocusSection(); + const quint32 Section = GetFocusSection(); if (Section == LC_PIECE_SECTION_POSITION || Section == LC_PIECE_SECTION_INVALID) { @@ -581,7 +581,7 @@ public: } else { - int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_1; + const int ControlPointIndex = Section - LC_PIECE_SECTION_CONTROL_POINT_1; if (ControlPointIndex >= 0 && ControlPointIndex < mControlPoints.GetSize()) { diff --git a/common/pieceinf.cpp b/common/pieceinf.cpp index 91d8913d..c0e92429 100644 --- a/common/pieceinf.cpp +++ b/common/pieceinf.cpp @@ -84,7 +84,7 @@ void PieceInfo::SetModel(lcModel* Model, bool UpdateMesh, Project* CurrentProjec PieceFile.Seek(0, SEEK_SET); lcMeshLoader MeshLoader(MeshData, true, CurrentProject, SearchProjectFolder); - bool Ret = MeshLoader.LoadMesh(PieceFile, LC_MESHDATA_SHARED); + const bool Ret = MeshLoader.LoadMesh(PieceFile, LC_MESHDATA_SHARED); if (Ret && !MeshData.IsEmpty()) SetMesh(MeshData.CreateMesh()); @@ -210,7 +210,7 @@ bool PieceInfo::MinIntersectDist(const lcVector3& Start, const lcVector3& End, f Intersect |= mModel->SubModelMinIntersectDist(Start, End, MinDistance); else if (IsProject()) { - lcModel* Model = mProject->GetMainModel(); + const lcModel* const Model = mProject->GetMainModel(); if (Model) Intersect |= Model->SubModelMinIntersectDist(Start, End, MinDistance); } @@ -226,13 +226,13 @@ bool PieceInfo::BoxTest(const lcMatrix44& WorldMatrix, const lcVector4 WorldPlan { lcMatrix44 InverseWorldMatrix = lcMatrix44AffineInverse(WorldMatrix); - const int NumCorners = 8; - const int NumPlanes = 6; + constexpr int NumCorners = 8; + constexpr int NumPlanes = 6; lcVector4 LocalPlanes[NumPlanes]; for (int PlaneIdx = 0; PlaneIdx < NumPlanes; PlaneIdx++) { - lcVector3 PlaneNormal = lcMul30(WorldPlanes[PlaneIdx], InverseWorldMatrix); + const lcVector3 PlaneNormal = lcMul30(WorldPlanes[PlaneIdx], InverseWorldMatrix); LocalPlanes[PlaneIdx] = lcVector4(PlaneNormal, WorldPlanes[PlaneIdx][3] - lcDot3(InverseWorldMatrix[3], PlaneNormal)); } @@ -276,7 +276,7 @@ bool PieceInfo::BoxTest(const lcMatrix44& WorldMatrix, const lcVector4 WorldPlan return mModel->SubModelBoxTest(LocalPlanes); else if (IsProject()) { - lcModel* Model = mProject->GetMainModel(); + const lcModel* const Model = mProject->GetMainModel(); return Model ? Model->SubModelBoxTest(LocalPlanes) : false; } @@ -288,11 +288,11 @@ void PieceInfo::ZoomExtents(float FoV, float AspectRatio, lcMatrix44& Projection lcVector3 Points[8]; lcGetBoxCorners(mBoundingBox, Points); - lcVector3 Center = (mBoundingBox.Min + mBoundingBox.Max) / 2.0f; + const lcVector3 Center = (mBoundingBox.Min + mBoundingBox.Max) / 2.0f; lcVector3 Position = Center + lcVector3(100.0f, -100.0f, 75.0f); ProjectionMatrix = lcMatrix44Perspective(FoV, AspectRatio, 1.0f, 12500.0f); - lcMatrix44 ModelView = lcMatrix44LookAt(Position, Center, lcVector3(0, 0, 1)); + const lcMatrix44 ModelView = lcMatrix44LookAt(Position, Center, lcVector3(0, 0, 1)); float FarDistance; std::tie(Position, FarDistance) = lcZoomExtents(Position, ModelView, ProjectionMatrix, Points, 8); ViewMatrix = lcMatrix44LookAt(Position, Center, lcVector3(0, 0, 1)); @@ -314,7 +314,7 @@ void PieceInfo::AddRenderMeshes(lcScene& Scene, const lcMatrix44& WorldMatrix, i mModel->AddSubModelRenderMeshes(Scene, WorldMatrix, ColorIndex, RenderMeshState, ParentActive); else if (IsProject()) { - lcModel* Model = mProject->GetMainModel(); + const lcModel* const Model = mProject->GetMainModel(); if (Model) Model->AddSubModelRenderMeshes(Scene, WorldMatrix, ColorIndex, RenderMeshState, ParentActive); } @@ -332,7 +332,7 @@ void PieceInfo::GetPartsList(int DefaultColorIndex, bool ScanSubModels, bool Add } else if (IsProject()) { - lcModel* Model = mProject->GetMainModel(); + const lcModel* const Model = mProject->GetMainModel(); if (Model) Model->GetPartsList(DefaultColorIndex, ScanSubModels, AddSubModels, PartsList); } @@ -349,7 +349,7 @@ void PieceInfo::GetModelParts(const lcMatrix44& WorldMatrix, int DefaultColorInd } else if (IsProject()) { - lcModel* Model = mProject->GetMainModel(); + const lcModel* const Model = mProject->GetMainModel(); if (Model) Model->GetModelParts(WorldMatrix, DefaultColorIndex, ModelParts); return; diff --git a/common/project.h b/common/project.h index d0235b74..04c583be 100644 --- a/common/project.h +++ b/common/project.h @@ -122,7 +122,7 @@ protected: inline lcModel* lcGetActiveModel() { - Project* Project = lcGetActiveProject(); + const Project* const Project = lcGetActiveProject(); return Project ? Project->GetActiveModel() : nullptr; }