diff --git a/common/lc_application.cpp b/common/lc_application.cpp index ad940623..d6631ff2 100644 --- a/common/lc_application.cpp +++ b/common/lc_application.cpp @@ -21,6 +21,7 @@ void lcPreferences::LoadDefaults() mDrawEdgeLines = lcGetProfileInt(LC_PROFILE_DRAW_EDGE_LINES); mLineWidth = lcGetProfileFloat(LC_PROFILE_LINE_WIDTH); mAllowLOD = lcGetProfileInt(LC_PROFILE_ALLOW_LOD); + mFadeSteps = lcGetProfileInt(LC_PROFILE_FADE_STEPS); mDrawGridStuds = lcGetProfileInt(LC_PROFILE_GRID_STUDS); mGridStudColor = lcGetProfileInt(LC_PROFILE_GRID_STUD_COLOR); mDrawGridLines = lcGetProfileInt(LC_PROFILE_GRID_LINES); @@ -32,6 +33,7 @@ void lcPreferences::LoadDefaults() mViewSphereTextColor = lcGetProfileInt(LC_PROFILE_VIEW_SPHERE_TEXT_COLOR); mViewSphereHighlightColor = lcGetProfileInt(LC_PROFILE_VIEW_SPHERE_HIGHLIGHT_COLOR); mAutoLoadMostRecent = lcGetProfileInt(LC_PROFILE_AUTOLOAD_MOSTRECENT); + mRestoreTabLayout = lcGetProfileInt(LC_PROFILE_RESTORE_TAB_LAYOUT); } void lcPreferences::SaveDefaults() @@ -43,6 +45,7 @@ void lcPreferences::SaveDefaults() lcSetProfileInt(LC_PROFILE_DRAW_EDGE_LINES, mDrawEdgeLines); lcSetProfileFloat(LC_PROFILE_LINE_WIDTH, mLineWidth); lcSetProfileInt(LC_PROFILE_ALLOW_LOD, mAllowLOD); + lcSetProfileInt(LC_PROFILE_FADE_STEPS, mFadeSteps); lcSetProfileInt(LC_PROFILE_GRID_STUDS, mDrawGridStuds); lcSetProfileInt(LC_PROFILE_GRID_STUD_COLOR, mGridStudColor); lcSetProfileInt(LC_PROFILE_GRID_LINES, mDrawGridLines); @@ -54,6 +57,7 @@ void lcPreferences::SaveDefaults() lcSetProfileInt(LC_PROFILE_VIEW_SPHERE_TEXT_COLOR, mViewSphereTextColor); lcSetProfileInt(LC_PROFILE_VIEW_SPHERE_HIGHLIGHT_COLOR, mViewSphereHighlightColor); lcSetProfileInt(LC_PROFILE_AUTOLOAD_MOSTRECENT, mAutoLoadMostRecent); + lcSetProfileInt(LC_PROFILE_RESTORE_TAB_LAYOUT, mRestoreTabLayout); } lcApplication::lcApplication(int& Argc, char** Argv) diff --git a/common/lc_application.h b/common/lc_application.h index 78706107..3ca55f12 100644 --- a/common/lc_application.h +++ b/common/lc_application.h @@ -34,6 +34,7 @@ public: bool mDrawEdgeLines; float mLineWidth; bool mAllowLOD; + bool mFadeSteps; bool mDrawGridStuds; quint32 mGridStudColor; bool mDrawGridLines; @@ -46,6 +47,7 @@ public: quint32 mViewSphereTextColor; quint32 mViewSphereHighlightColor; bool mAutoLoadMostRecent; + bool mRestoreTabLayout; }; class lcApplication : public QApplication diff --git a/common/lc_model.cpp b/common/lc_model.cpp index 7e6d5758..5a62a076 100644 --- a/common/lc_model.cpp +++ b/common/lc_model.cpp @@ -1252,13 +1252,18 @@ void lcModel::DuplicateSelectedPieces() SaveCheckpoint(tr("Duplicating Pieces")); } -void lcModel::GetScene(lcScene& Scene, lcCamera* ViewCamera, bool Highlight) const +void lcModel::GetScene(lcScene& Scene, lcCamera* ViewCamera, bool AllowHighlight, bool AllowFade) const { mPieceInfo->AddRenderMesh(Scene); - for (lcPiece* Piece : mPieces) + for (const lcPiece* Piece : mPieces) + { if (Piece->IsVisible(mCurrentStep)) - Piece->AddMainModelRenderMeshes(Scene, Highlight && Piece->GetStepShow() == mCurrentStep); + { + lcStep StepShow = Piece->GetStepShow(); + Piece->AddMainModelRenderMeshes(Scene, AllowHighlight && StepShow == mCurrentStep, AllowFade && StepShow < mCurrentStep); + } + } if (Scene.GetDrawInterface() && !Scene.GetActiveSubmodelInstance()) { diff --git a/common/lc_model.h b/common/lc_model.h index bd1047d8..3badc94a 100644 --- a/common/lc_model.h +++ b/common/lc_model.h @@ -225,7 +225,7 @@ public: void Paste(); void DuplicateSelectedPieces(); - void GetScene(lcScene& Scene, lcCamera* ViewCamera, bool Highlight) const; + void GetScene(lcScene& Scene, lcCamera* ViewCamera, bool AllowHighlight, bool AllowFade) const; void AddSubModelRenderMeshes(lcScene& Scene, const lcMatrix44& WorldMatrix, int DefaultColorIndex, lcRenderMeshState RenderMeshState, bool ParentActive) const; void DrawBackground(lcGLWidget* Widget); QImage GetStepImage(bool Zoom, bool Highlight, int Width, int Height, lcStep Step); diff --git a/common/lc_partselectionwidget.cpp b/common/lc_partselectionwidget.cpp index f06898fa..ec1220e6 100644 --- a/common/lc_partselectionwidget.cpp +++ b/common/lc_partselectionwidget.cpp @@ -424,7 +424,7 @@ void lcPartSelectionListModel::DrawPreview(int InfoIndex) Scene.SetAllowLOD(false); Scene.Begin(ViewMatrix); - Info->AddRenderMeshes(Scene, lcMatrix44Identity(), mColorIndex, lcRenderMeshState::NORMAL, false); + Info->AddRenderMeshes(Scene, lcMatrix44Identity(), mColorIndex, lcRenderMeshState::Default, false); Scene.End(); diff --git a/common/lc_profile.cpp b/common/lc_profile.cpp index f38746e9..9ce1daec 100644 --- a/common/lc_profile.cpp +++ b/common/lc_profile.cpp @@ -58,6 +58,7 @@ static lcProfileEntry gProfileEntries[LC_NUM_PROFILE_KEYS] = lcProfileEntry("Settings", "FixedAxes", false), // LC_PROFILE_FIXED_AXES lcProfileEntry("Settings", "LineWidth", 1.0f), // LC_PROFILE_LINE_WIDTH lcProfileEntry("Settings", "AllowLOD", true), // LC_PROFILE_ALLOW_LOD + lcProfileEntry("Settings", "FadeSteps", false), // LC_PROFILE_FADE_STEPS lcProfileEntry("Settings", "ShadingMode", LC_SHADING_DEFAULT_LIGHTS), // LC_PROFILE_SHADING_MODE lcProfileEntry("Settings", "DrawAxes", 0), // LC_PROFILE_DRAW_AXES lcProfileEntry("Settings", "DrawEdgeLines", 1), // LC_PROFILE_DRAW_EDGE_LINES @@ -88,6 +89,7 @@ static lcProfileEntry gProfileEntries[LC_NUM_PROFILE_KEYS] = lcProfileEntry("Settings", "RecentFile3", ""), // LC_PROFILE_RECENT_FILE3 lcProfileEntry("Settings", "RecentFile4", ""), // LC_PROFILE_RECENT_FILE4 lcProfileEntry("Settings", "AutoLoadMostRecent", false), // LC_PROFILE_AUTOLOAD_MOSTRECENT + lcProfileEntry("Settings", "RestoreTabLayout", true), // LC_PROFILE_RESTORE_TAB_LAYOUT lcProfileEntry("Settings", "AutosaveInterval", 10), // LC_PROFILE_AUTOSAVE_INTERVAL lcProfileEntry("Settings", "MouseSensitivity", 11), // LC_PROFILE_MOUSE_SENSITIVITY lcProfileEntry("Settings", "ImageWidth", 1280), // LC_PROFILE_IMAGE_WIDTH diff --git a/common/lc_profile.h b/common/lc_profile.h index b5bd3e4c..e0efc835 100644 --- a/common/lc_profile.h +++ b/common/lc_profile.h @@ -6,6 +6,7 @@ enum LC_PROFILE_KEY LC_PROFILE_FIXED_AXES, LC_PROFILE_LINE_WIDTH, LC_PROFILE_ALLOW_LOD, + LC_PROFILE_FADE_STEPS, LC_PROFILE_SHADING_MODE, LC_PROFILE_DRAW_AXES, LC_PROFILE_DRAW_EDGE_LINES, @@ -36,6 +37,7 @@ enum LC_PROFILE_KEY LC_PROFILE_RECENT_FILE3, LC_PROFILE_RECENT_FILE4, LC_PROFILE_AUTOLOAD_MOSTRECENT, + LC_PROFILE_RESTORE_TAB_LAYOUT, LC_PROFILE_AUTOSAVE_INTERVAL, LC_PROFILE_MOUSE_SENSITIVITY, LC_PROFILE_IMAGE_WIDTH, diff --git a/common/lc_scene.cpp b/common/lc_scene.cpp index 6531f6e8..083dc291 100644 --- a/common/lc_scene.cpp +++ b/common/lc_scene.cpp @@ -166,20 +166,20 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy switch (RenderMesh.State) { - case lcRenderMeshState::NORMAL: - case lcRenderMeshState::HIGHLIGHT: + case lcRenderMeshState::Default: + case lcRenderMeshState::Highlighted: Context->SetColorIndex(ColorIndex); break; - case lcRenderMeshState::SELECTED: + case lcRenderMeshState::Selected: Context->SetColorIndexTinted(ColorIndex, LC_COLOR_SELECTED, 0.5f); break; - case lcRenderMeshState::FOCUSED: + case lcRenderMeshState::Focused: Context->SetColorIndexTinted(ColorIndex, LC_COLOR_FOCUSED, 0.5f); break; - case lcRenderMeshState::DISABLED: + case lcRenderMeshState::Faded: Context->SetColorIndexTinted(ColorIndex, LC_COLOR_DISABLED, 0.25f); break; } @@ -188,26 +188,26 @@ void lcScene::DrawOpaqueMeshes(lcContext* Context, bool DrawLit, int PrimitiveTy { switch (RenderMesh.State) { - case lcRenderMeshState::NORMAL: + case lcRenderMeshState::Default: if (ColorIndex == gEdgeColor) Context->SetEdgeColorIndex(RenderMesh.ColorIndex); else Context->SetColorIndex(ColorIndex); break; - case lcRenderMeshState::SELECTED: + case lcRenderMeshState::Selected: Context->SetInterfaceColor(LC_COLOR_SELECTED); break; - case lcRenderMeshState::FOCUSED: + case lcRenderMeshState::Focused: Context->SetInterfaceColor(LC_COLOR_FOCUSED); break; - case lcRenderMeshState::HIGHLIGHT: + case lcRenderMeshState::Highlighted: Context->SetInterfaceColor(LC_COLOR_HIGHLIGHT); break; - case lcRenderMeshState::DISABLED: + case lcRenderMeshState::Faded: Context->SetInterfaceColor(LC_COLOR_DISABLED); break; } @@ -324,20 +324,20 @@ void lcScene::DrawTranslucentMeshes(lcContext* Context, bool DrawLit) const switch (RenderMesh.State) { - case lcRenderMeshState::NORMAL: - case lcRenderMeshState::HIGHLIGHT: + case lcRenderMeshState::Default: + case lcRenderMeshState::Highlighted: Context->SetColorIndex(ColorIndex); break; - case lcRenderMeshState::SELECTED: + case lcRenderMeshState::Selected: Context->SetColorIndexTinted(ColorIndex, LC_COLOR_SELECTED, 0.5f); break; - case lcRenderMeshState::FOCUSED: + case lcRenderMeshState::Focused: Context->SetColorIndexTinted(ColorIndex, LC_COLOR_FOCUSED, 0.5f); break; - case lcRenderMeshState::DISABLED: + case lcRenderMeshState::Faded: Context->SetColorIndexTinted(ColorIndex, LC_COLOR_DISABLED, 0.25f); break; } diff --git a/common/lc_scene.h b/common/lc_scene.h index 4eb551ca..56262468 100644 --- a/common/lc_scene.h +++ b/common/lc_scene.h @@ -5,11 +5,11 @@ enum class lcRenderMeshState : int { - NORMAL, - SELECTED, - FOCUSED, - DISABLED, - HIGHLIGHT + Default, + Selected, + Focused, + Faded, + Highlighted }; struct lcRenderMesh diff --git a/common/minifig.cpp b/common/minifig.cpp index 318c26b5..d90c6a0d 100644 --- a/common/minifig.cpp +++ b/common/minifig.cpp @@ -389,7 +389,7 @@ void MinifigWizard::OnDraw() for (int PieceIdx = 0; PieceIdx < LC_MFW_NUMITEMS; PieceIdx++) if (mMinifig.Parts[PieceIdx]) - mMinifig.Parts[PieceIdx]->AddRenderMeshes(Scene, mMinifig.Matrices[PieceIdx], mMinifig.Colors[PieceIdx], lcRenderMeshState::NORMAL, true); + mMinifig.Parts[PieceIdx]->AddRenderMeshes(Scene, mMinifig.Matrices[PieceIdx], mMinifig.Colors[PieceIdx], lcRenderMeshState::Default, true); Scene.End(); diff --git a/common/piece.cpp b/common/piece.cpp index 1bec47c4..73951804 100644 --- a/common/piece.cpp +++ b/common/piece.cpp @@ -649,31 +649,34 @@ void lcPiece::RemoveKeyFrames() ChangeKey(mRotationKeys, lcMatrix33(mModelWorld), 1, true); } -void lcPiece::AddMainModelRenderMeshes(lcScene& Scene, bool Highlight) const +void lcPiece::AddMainModelRenderMeshes(lcScene& Scene, bool Highlight, bool Fade) const { - lcRenderMeshState RenderMeshState = lcRenderMeshState::NORMAL; + lcRenderMeshState RenderMeshState = lcRenderMeshState::Default; bool ParentActive = false; + if (Fade) + RenderMeshState = lcRenderMeshState::Faded; + if (Scene.GetDrawInterface()) { lcPiece* ActiveSubmodelInstance = Scene.GetActiveSubmodelInstance(); if (!ActiveSubmodelInstance) - RenderMeshState = IsFocused() ? lcRenderMeshState::FOCUSED : (IsSelected() ? lcRenderMeshState::SELECTED : lcRenderMeshState::NORMAL); + RenderMeshState = IsFocused() ? lcRenderMeshState::Focused : (IsSelected() ? lcRenderMeshState::Selected : RenderMeshState); else if (ActiveSubmodelInstance == this) ParentActive = true; else - RenderMeshState = lcRenderMeshState::DISABLED; + RenderMeshState = lcRenderMeshState::Faded; } else if (Highlight) - RenderMeshState = lcRenderMeshState::HIGHLIGHT; + RenderMeshState = lcRenderMeshState::Highlighted; if (!mMesh) mPieceInfo->AddRenderMeshes(Scene, mModelWorld, mColorIndex, RenderMeshState, ParentActive); else Scene.AddMesh(mMesh, mModelWorld, mColorIndex, RenderMeshState); - if (RenderMeshState == lcRenderMeshState::FOCUSED || RenderMeshState == lcRenderMeshState::SELECTED) + if (RenderMeshState == lcRenderMeshState::Focused || RenderMeshState == lcRenderMeshState::Selected) Scene.AddInterfaceObject(this); } @@ -687,16 +690,16 @@ void lcPiece::AddSubModelRenderMeshes(lcScene& Scene, const lcMatrix44& WorldMat lcPiece* ActiveSubmodelInstance = Scene.GetActiveSubmodelInstance(); if (ActiveSubmodelInstance == this) - RenderMeshState = lcRenderMeshState::NORMAL; + RenderMeshState = lcRenderMeshState::Default; else if (ParentActive) - RenderMeshState = IsFocused() ? lcRenderMeshState::FOCUSED : (IsSelected() ? lcRenderMeshState::SELECTED : lcRenderMeshState::NORMAL); + RenderMeshState = IsFocused() ? lcRenderMeshState::Focused : (IsSelected() ? lcRenderMeshState::Selected : lcRenderMeshState::Default); if (!mMesh) mPieceInfo->AddRenderMeshes(Scene, lcMul(mModelWorld, WorldMatrix), ColorIndex, RenderMeshState, ActiveSubmodelInstance == this); else Scene.AddMesh(mMesh, lcMul(mModelWorld, WorldMatrix), ColorIndex, RenderMeshState); - if (ParentActive && (RenderMeshState == lcRenderMeshState::FOCUSED || RenderMeshState == lcRenderMeshState::SELECTED)) + if (ParentActive && (RenderMeshState == lcRenderMeshState::Focused || RenderMeshState == lcRenderMeshState::Selected)) Scene.AddInterfaceObject(this); } diff --git a/common/piece.h b/common/piece.h index 7044606e..8a9fcb01 100644 --- a/common/piece.h +++ b/common/piece.h @@ -346,7 +346,7 @@ public: virtual void DrawInterface(lcContext* Context, const lcScene& Scene) const override; virtual void RemoveKeyFrames() override; - void AddMainModelRenderMeshes(lcScene& Scene, bool Highlight) const; + void AddMainModelRenderMeshes(lcScene& Scene, bool Highlight, bool Fade) const; void AddSubModelRenderMeshes(lcScene& Scene, const lcMatrix44& WorldMatrix, int DefaultColorIndex, lcRenderMeshState RenderMeshState, bool ParentActive) const; void InsertTime(lcStep Start, lcStep Time); diff --git a/common/pieceinf.cpp b/common/pieceinf.cpp index 9143899f..594f11de 100644 --- a/common/pieceinf.cpp +++ b/common/pieceinf.cpp @@ -302,7 +302,7 @@ void PieceInfo::ZoomExtents(float FoV, float AspectRatio, lcMatrix44& Projection void PieceInfo::AddRenderMesh(lcScene& Scene) { if (mMesh) - Scene.AddMesh(mMesh, lcMatrix44Identity(), gDefaultColor, lcRenderMeshState::NORMAL); + Scene.AddMesh(mMesh, lcMatrix44Identity(), gDefaultColor, lcRenderMeshState::Default); } void PieceInfo::AddRenderMeshes(lcScene& Scene, const lcMatrix44& WorldMatrix, int ColorIndex, lcRenderMeshState RenderMeshState, bool ParentActive) const diff --git a/common/project.cpp b/common/project.cpp index 8b8d53e4..20d0217b 100644 --- a/common/project.cpp +++ b/common/project.cpp @@ -1583,7 +1583,7 @@ QImage Project::CreatePartsListImage(lcModel* Model, lcStep Step) Scene.SetAllowLOD(false); Scene.Begin(ViewMatrix); - Image.Info->AddRenderMeshes(Scene, lcMatrix44Identity(), Image.ColorIndex, lcRenderMeshState::NORMAL, true); + Image.Info->AddRenderMeshes(Scene, lcMatrix44Identity(), Image.ColorIndex, lcRenderMeshState::Default, true); Scene.End(); @@ -1973,7 +1973,7 @@ void Project::ExportHTML(const lcHTMLExportOptions& Options) Scene.SetAllowLOD(false); Scene.Begin(ViewMatrix); - Info->AddRenderMeshes(Scene, lcMatrix44Identity(), Options.PartImagesColor, lcRenderMeshState::NORMAL, true); + Info->AddRenderMeshes(Scene, lcMatrix44Identity(), Options.PartImagesColor, lcRenderMeshState::Default, true); Scene.End(); diff --git a/common/view.cpp b/common/view.cpp index 6d4e2332..0d1805ab 100644 --- a/common/view.cpp +++ b/common/view.cpp @@ -814,7 +814,7 @@ void View::OnDraw() mScene.SetActiveSubmodelInstance(mActiveSubmodelInstance, mActiveSubmodelTransform); mScene.SetDrawInterface(DrawInterface); - mModel->GetScene(mScene, mCamera, mHighlight); + mModel->GetScene(mScene, mCamera, mHighlight, Preferences.mFadeSteps); if (DrawInterface && mTrackTool == LC_TRACKTOOL_INSERT) { @@ -827,7 +827,7 @@ void View::OnDraw() if (GetActiveModel() != mModel) WorldMatrix = lcMul(WorldMatrix, mActiveSubmodelTransform); - Info->AddRenderMeshes(mScene, WorldMatrix, gMainWindow->mColorIndex, lcRenderMeshState::FOCUSED, true); + Info->AddRenderMeshes(mScene, WorldMatrix, gMainWindow->mColorIndex, lcRenderMeshState::Focused, true); } } diff --git a/qt/lc_qpreferencesdialog.cpp b/qt/lc_qpreferencesdialog.cpp index 8fee63db..ca06d391 100644 --- a/qt/lc_qpreferencesdialog.cpp +++ b/qt/lc_qpreferencesdialog.cpp @@ -57,6 +57,7 @@ lcQPreferencesDialog::lcQPreferencesDialog(QWidget* Parent, lcPreferencesDialogO ui->checkForUpdates->setCurrentIndex(mOptions->CheckForUpdates); ui->fixedDirectionKeys->setChecked(mOptions->Preferences.mFixedAxes); ui->autoLoadMostRecent->setChecked(mOptions->Preferences.mAutoLoadMostRecent); + ui->RestoreTabLayout->setChecked(mOptions->Preferences.mRestoreTabLayout); ui->antiAliasing->setChecked(mOptions->AASamples != 1); if (mOptions->AASamples == 8) @@ -68,6 +69,7 @@ lcQPreferencesDialog::lcQPreferencesDialog(QWidget* Parent, lcPreferencesDialogO ui->edgeLines->setChecked(mOptions->Preferences.mDrawEdgeLines); ui->lineWidth->setText(lcFormatValueLocalized(mOptions->Preferences.mLineWidth)); ui->MeshLOD->setChecked(mOptions->Preferences.mAllowLOD); + ui->FadeSteps->setChecked(mOptions->Preferences.mFadeSteps); ui->gridStuds->setChecked(mOptions->Preferences.mDrawGridStuds); ui->gridLines->setChecked(mOptions->Preferences.mDrawGridLines); ui->gridLineSpacing->setText(QString::number(mOptions->Preferences.mGridLineSpacing)); @@ -175,6 +177,7 @@ void lcQPreferencesDialog::accept() mOptions->CheckForUpdates = ui->checkForUpdates->currentIndex(); mOptions->Preferences.mFixedAxes = ui->fixedDirectionKeys->isChecked(); mOptions->Preferences.mAutoLoadMostRecent = ui->autoLoadMostRecent->isChecked(); + mOptions->Preferences.mRestoreTabLayout = ui->RestoreTabLayout->isChecked(); if (!ui->antiAliasing->isChecked()) mOptions->AASamples = 1; @@ -188,6 +191,7 @@ void lcQPreferencesDialog::accept() mOptions->Preferences.mDrawEdgeLines = ui->edgeLines->isChecked(); mOptions->Preferences.mLineWidth = lcParseValueLocalized(ui->lineWidth->text()); mOptions->Preferences.mAllowLOD = ui->MeshLOD->isChecked(); + mOptions->Preferences.mFadeSteps = ui->FadeSteps->isChecked(); mOptions->Preferences.mDrawGridStuds = ui->gridStuds->isChecked(); mOptions->Preferences.mDrawGridLines = ui->gridLines->isChecked(); diff --git a/qt/lc_qpreferencesdialog.ui b/qt/lc_qpreferencesdialog.ui index bebc2888..cab755e7 100644 --- a/qt/lc_qpreferencesdialog.ui +++ b/qt/lc_qpreferencesdialog.ui @@ -282,6 +282,13 @@ + + + + Restore tab layout + + + @@ -292,17 +299,10 @@ - - + + - Axis icon - - - - - - - Shading Mode: + width @@ -335,13 +335,39 @@ - - + + - width + Shading Mode: + + + + Axis icon + + + + + + + + Wireframe + + + + + Flat Shading + + + + + Default Lights + + + + @@ -385,13 +411,6 @@ - - - - Edge lines - - - @@ -405,23 +424,11 @@ - - - - - Wireframe - - - - - Flat Shading - - - - - Default Lights - - + + + + Edge lines + @@ -431,6 +438,13 @@ + + + + Fade Previous Steps + + + @@ -1169,6 +1183,7 @@ authorName fixedDirectionKeys autoLoadMostRecent + RestoreTabLayout antiAliasing antiAliasingSamples studLogo @@ -1177,6 +1192,7 @@ lineWidth MeshLOD axisIcon + FadeSteps ShadingMode gridStuds gridStudColor