32#include "MeshKernel/UndoActions/UndoAction.hpp"
33#include "MeshKernelApi/State.hpp"
47 const std::pair<meshkernel::Point, meshkernel::Point>& frozenLinePoints) : m_mkStateReference(mkState),
48 m_frozenLinesCounter(frozenLineId),
49 m_frozenLinePoints(frozenLinePoints)
55 void DoCommit()
override
57 if (m_mkStateReference.
m_frozenLines.contains(m_frozenLinesCounter))
59 throw meshkernel::MeshKernelError(
"Frozen line counter in meshkernel state should not exist when committing an addition of a frozen line");
61 m_mkStateReference.
m_frozenLines[m_frozenLinesCounter] = m_frozenLinePoints;
65 void DoRestore()
override
67 if (!m_mkStateReference.
m_frozenLines.contains(m_frozenLinesCounter))
69 throw meshkernel::MeshKernelError(
"Frozen line counter in meshkernel state should not exist when restoring an addition of a frozen line");
76 MeshKernelState& m_mkStateReference;
79 int m_frozenLinesCounter;
82 std::pair<meshkernel::Point, meshkernel::Point> m_frozenLinePoints;
A class for throwing general MeshKernel exceptions.
Definition Exceptions.hpp:142
Undo action for adding frozen lines.
Definition CurvilinearFrozenLinesAddUndoAction.hpp:40
CurvilinearFrozenLinesAddUndoAction(MeshKernelState &mkState, int frozenLineId, const std::pair< meshkernel::Point, meshkernel::Point > &frozenLinePoints)
Constructor.
Definition CurvilinearFrozenLinesAddUndoAction.hpp:45
Contains all structs and functions exposed at the API level.
Definition BoundingBox.hpp:33
The class holding the state of the C API library.
Definition State.hpp:56
std::unordered_map< meshkernel::UInt, std::pair< meshkernel::Point, meshkernel::Point > > m_frozenLines
Map for string the frozen lines.
Definition State.hpp:83