From 43bb5a4f7fbf62d05a75d33bbaf2eea31dfdfc9e Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Fri, 12 Nov 2021 08:01:06 +0100 Subject: [PATCH] ... --- .clang-tidy | 5 +- App/AppOptions.cpp | 4 +- GUI/View/Realspace/IPositionBuilder.cpp | 14 ++- .../Realspace/RealSpace2DParacrystalUtils.cpp | 88 ++++++++----------- .../SampleDesigner/SampleEditorCommands.cpp | 7 +- .../SampleDesigner/SampleToolBoxGroupView.cpp | 3 +- GUI/View/Tool/DesignerHelper.cpp | 3 +- 7 files changed, 56 insertions(+), 68 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index e54bc67fc1f..21b1a8391a1 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -29,7 +29,7 @@ Checks: '*, -bugprone-suspicious-include, -cert-err58-cpp, -cert-err61-cpp, --cert-msc30-cpp, +-cert-msc30-c*, -cert-msc50-cpp, -clang-analyzer-alpha*, -clang-analyzer-alpha.deadcode.UnreachableCode, @@ -103,6 +103,7 @@ Checks: '*, -bugprone-parent-virtual-call, -clang-analyzer-core.CallAndMessage, -clang-analyzer-optin.cplusplus.VirtualCall, +-cppcoreguidelines-explicit-virtual-functions, -cppcoreguidelines-pro-type-const-cast, -cppcoreguidelines-pro-type-static-cast-downcast, -google-explicit-constructor, @@ -131,9 +132,9 @@ Checks: '*, -readability-redundant-member-init, -readability-simplify-boolean-expr, - -SectionComment_Temporarily_disabled_checks__We_need_to_investigate_them_one_by_one, +-bugprone-misplaced-widening-cast, ' # keep the closing quotation mark \ No newline at end of file diff --git a/App/AppOptions.cpp b/App/AppOptions.cpp index 3e96eca7d02..64df880a829 100644 --- a/App/AppOptions.cpp +++ b/App/AppOptions.cpp @@ -64,12 +64,12 @@ ApplicationOptions::ApplicationOptions(int argc, char** argv) : m_options_is_con const bpo::variable_value& ApplicationOptions::operator[](const std::string& s) const { - return m_variables_map[s.c_str()]; + return m_variables_map[s]; } bool ApplicationOptions::find(std::string name) const { - return (m_variables_map.count(name.c_str())); + return (m_variables_map.count(name)); } bool ApplicationOptions::isConsistent() const diff --git a/GUI/View/Realspace/IPositionBuilder.cpp b/GUI/View/Realspace/IPositionBuilder.cpp index 488f1a472c2..18250c54864 100644 --- a/GUI/View/Realspace/IPositionBuilder.cpp +++ b/GUI/View/Realspace/IPositionBuilder.cpp @@ -228,7 +228,7 @@ RadialParacrystalPositionBuilder::generatePositionsImpl(double layer_size, doubl // for populating particles correctly within the 3D model's boundaries int n = distance <= 0.0 ? 1 : static_cast<int>(layer_size * std::sqrt(2.0) / distance); - lattice_positions.resize(static_cast<size_t>(2 * n + 1)); + lattice_positions.resize(2 * n + 1); for (auto& it : lattice_positions) { it.resize(2); } @@ -241,17 +241,15 @@ RadialParacrystalPositionBuilder::generatePositionsImpl(double layer_size, doubl unsigned i_left = static_cast<unsigned>(std::max(0, 2 * i - 3)); double offset = m_iff->randomSample(); - lattice_positions[static_cast<size_t>(2 * i - 1)][0] = + lattice_positions[2 * i - 1][0] = lattice_positions[i_left][0] + distance + offset; - lattice_positions[static_cast<size_t>(2 * i - 1)][1] = 0.0; + lattice_positions[2 * i - 1][1] = 0.0; // positions of particles located along -x (store at even index) - unsigned i_right = static_cast<unsigned>(2 * (i - 1)); - offset = m_iff->randomSample(); - lattice_positions[static_cast<size_t>(2 * i)][0] = - lattice_positions[i_right][0] - distance + offset; - lattice_positions[static_cast<size_t>(2 * i)][1] = 0.0; + lattice_positions[2 * i][0] = + lattice_positions[2 * (i - 1)][0] - distance + offset; + lattice_positions[2 * i][1] = 0.0; } return lattice_positions; } diff --git a/GUI/View/Realspace/RealSpace2DParacrystalUtils.cpp b/GUI/View/Realspace/RealSpace2DParacrystalUtils.cpp index a63352a1262..c899f69dee7 100644 --- a/GUI/View/Realspace/RealSpace2DParacrystalUtils.cpp +++ b/GUI/View/Realspace/RealSpace2DParacrystalUtils.cpp @@ -13,56 +13,11 @@ // ************************************************************************************************ #include "GUI/View/Realspace/RealSpace2DParacrystalUtils.h" +#include "Base/Util/Assert.h" #include "Sample/Aggregate/Interference2DParaCrystal.h" namespace { -void ResizeLatticePositions(std::vector<std::vector<double>>& lattice_positions, double l1, - double l2, double layer_size); -void FindLatticePositionsIndex(size_t& index, size_t& index_prev, int i, int j, int size, - double l_alpha); -std::pair<double, double> ComputePositionAlongPositiveLatticeVector( - const size_t index_prev, std::vector<std::vector<double>>& lattice_positions, - const IFTDistribution2D* pdf, double l, double l_xi, double l_alpha); -std::pair<double, double> ComputePositionAlongNegativeLatticeVector( - const size_t index_prev, std::vector<std::vector<double>>& lattice_positions, - const IFTDistribution2D* pdf, double l, double l_xi, double l_alpha); -std::pair<double, double> -ComputeLatticePosition(const size_t index_prev, int i, int j, - std::vector<std::vector<double>>& lattice_positions, - const IFTDistribution2D* pdf, double l, double l_xi, double l_alpha); -void ComputePositionsAlongLatticeVectorAxes(std::vector<std::vector<double>>& lattice_positions, - const IFTDistribution2D* pdf, double l, double l_xi, - double l_alpha); -void ComputePositionsInsideLatticeQuadrants(std::vector<std::vector<double>>& lattice_positions, - const IFTDistribution2D* pdf1, - const IFTDistribution2D* pdf2, double l1, double l2, - double l_xi, double l_alpha); -} // namespace - -std::vector<std::vector<double>> -GUI::RealSpace::Paracrystal2D::latticePositions(const Interference2DParaCrystal* p_iff, - double layer_size) -{ - auto& lattice = p_iff->lattice(); - double l1 = lattice.length1(); - double l2 = lattice.length2(); - double alpha = lattice.latticeAngle(); - double xi = lattice.rotationAngle(); - std::vector<std::vector<double>> lattice_positions; - ResizeLatticePositions(lattice_positions, l1, l2, layer_size); - - ComputePositionsAlongLatticeVectorAxes(lattice_positions, p_iff->pdf1(), l1, xi, 0); - - ComputePositionsAlongLatticeVectorAxes(lattice_positions, p_iff->pdf2(), l2, xi, alpha); - - ComputePositionsInsideLatticeQuadrants(lattice_positions, p_iff->pdf1(), p_iff->pdf2(), l1, l2, - xi, alpha); - - return lattice_positions; -} - -namespace { void ResizeLatticePositions(std::vector<std::vector<double>>& lattice_positions, double l1, double l2, double layer_size) { @@ -74,7 +29,7 @@ void ResizeLatticePositions(std::vector<std::vector<double>>& lattice_positions, n1 = std::max(n1, n2); - lattice_positions.resize(static_cast<size_t>((2 * n1 + 1) * (2 * n1 + 1))); + lattice_positions.resize((2 * n1 + 1) * (2 * n1 + 1)); for (auto& it : lattice_positions) { it.resize(2); } @@ -86,17 +41,17 @@ void ResizeLatticePositions(std::vector<std::vector<double>>& lattice_positions, void FindLatticePositionsIndex(size_t& index, size_t& index_prev, int i, int j, int size, double l_alpha) { - index = static_cast<size_t>(i * (2 * size + 1) + j); + int newindex = i * (2 * size + 1) + j; + ASSERT(newindex>0); + index = newindex; - if (std::sin(l_alpha) == 0) // along l1 - { + if (std::sin(l_alpha) == 0) { // along l1 // particles along +l1 stored every odd iter (e.g. 1,3,5...) index of lattice_positions // particles along -l1 stored every even iter (e.g. 2,4,6...) index of lattice_positions index_prev = static_cast<size_t>(i * (2 * size + 1)); if (j - 2 > 0) index_prev = index - 2; - } else // along l2 - { + } else { // along l2 // particles along +l2/-l2 stored every (odd/even iter)*(2*n1+1) index of lattice_positions index_prev = static_cast<size_t>(j); if (i - 2 > 0) @@ -229,4 +184,33 @@ void ComputePositionsInsideLatticeQuadrants(std::vector<std::vector<double>>& la } } } + } // namespace + + +// ************************************************************************************************ +// implement namespace GUI::RealSpace::Paracrystal2D +// ************************************************************************************************ + +std::vector<std::vector<double>> +GUI::RealSpace::Paracrystal2D::latticePositions(const Interference2DParaCrystal* p_iff, + double layer_size) +{ + auto& lattice = p_iff->lattice(); + double l1 = lattice.length1(); + double l2 = lattice.length2(); + double alpha = lattice.latticeAngle(); + double xi = lattice.rotationAngle(); + + std::vector<std::vector<double>> lattice_positions; + ResizeLatticePositions(lattice_positions, l1, l2, layer_size); + + ComputePositionsAlongLatticeVectorAxes(lattice_positions, p_iff->pdf1(), l1, xi, 0); + + ComputePositionsAlongLatticeVectorAxes(lattice_positions, p_iff->pdf2(), l2, xi, alpha); + + ComputePositionsInsideLatticeQuadrants(lattice_positions, p_iff->pdf1(), p_iff->pdf2(), l1, l2, + xi, alpha); + + return lattice_positions; +} diff --git a/GUI/View/SampleDesigner/SampleEditorCommands.cpp b/GUI/View/SampleDesigner/SampleEditorCommands.cpp index c2cdac4d739..e6cc6c2b4a4 100644 --- a/GUI/View/SampleDesigner/SampleEditorCommands.cpp +++ b/GUI/View/SampleDesigner/SampleEditorCommands.cpp @@ -19,8 +19,11 @@ #include "GUI/View/SampleDesigner/SampleEditorController.h" namespace { -static constexpr int COMMAND_ID_CHANGE_VALUE = 11; -} + +constexpr int COMMAND_ID_CHANGE_VALUE = 11; + +} // namespace + CommandRemoveLayer::CommandRemoveLayer(SampleEditorController* ec, LayerItem* layerItem, QUndoCommand* parent /*= nullptr*/) diff --git a/GUI/View/SampleDesigner/SampleToolBoxGroupView.cpp b/GUI/View/SampleDesigner/SampleToolBoxGroupView.cpp index 20ee33dc39c..aebb8a1ecd8 100644 --- a/GUI/View/SampleDesigner/SampleToolBoxGroupView.cpp +++ b/GUI/View/SampleDesigner/SampleToolBoxGroupView.cpp @@ -104,8 +104,9 @@ QVariant SampleToolBoxGroupModel::data(const QModelIndex& index, int role) const } case FILTER_ROLE: return item.filter; + default: + return {}; } - return QVariant(); } Qt::ItemFlags SampleToolBoxGroupModel::flags(const QModelIndex& /*index*/) const diff --git a/GUI/View/Tool/DesignerHelper.cpp b/GUI/View/Tool/DesignerHelper.cpp index 9d299b3fce8..520147f7848 100644 --- a/GUI/View/Tool/DesignerHelper.cpp +++ b/GUI/View/Tool/DesignerHelper.cpp @@ -23,6 +23,7 @@ namespace { double m_current_zoom_level = 1.0; } + QGradient DesignerHelper::getLayerGradient(const QColor& color, const QRectF& rect) { QColor c = color; @@ -42,7 +43,7 @@ QGradient DesignerHelper::getLayerGradient(const QColor& color, const QRectF& re QGradient DesignerHelper::getDecorationGradient(const QColor& color, const QRectF& rect) { - QColor c = color; + const QColor& c = color; // c.setAlpha(200); QLinearGradient result(rect.x() + rect.width() / 2, rect.y(), rect.x() + rect.width() / 2, rect.y() + rect.height()); -- GitLab