30 #include <MeshKernel/LandBoundaries.hpp>
31 #include <MeshKernel/Parameters.hpp>
32 #include <MeshKernel/UndoActions/UndoAction.hpp>
94 std::unique_ptr<Smoother> smoother,
95 std::unique_ptr<Orthogonalizer> orthogonalizer,
96 std::unique_ptr<Polygons> polygon,
97 std::unique_ptr<LandBoundaries> landBoundaries,
102 [[nodiscard]] std::unique_ptr<UndoAction>
Initialize();
118 void SnapMeshToOriginalMeshBoundary();
121 void ComputeLinearSystemTerms();
128 void ComputeLocalIncrements(
UInt nodeIndex,
131 std::array<double, 2>& weightsSum);
135 void UpdateNodeCoordinates(
UInt nodeIndex);
138 void AllocateLinearSystem();
141 void ComputeCoordinates()
const;
144 std::unique_ptr<Smoother> m_smoother;
145 std::unique_ptr<Orthogonalizer> m_orthogonalizer;
146 std::unique_ptr<Polygons> m_polygons;
147 std::unique_ptr<LandBoundaries> m_landBoundaries;
151 std::vector<UInt> m_localCoordinatesIndices;
152 std::vector<Point> m_localCoordinates;
153 std::vector<Point> m_orthogonalCoordinates;
154 std::vector<Point> m_originalNodes;
157 std::vector<UInt> m_compressedEndNodeIndex;
158 std::vector<UInt> m_compressedStartNodeIndex;
159 std::vector<double> m_compressedWeightX;
160 std::vector<double> m_compressedWeightY;
161 std::vector<double> m_compressedRhs;
162 std::vector<UInt> m_compressedNodesNodes;
165 double m_mumax = 0.0;