10#include "ITileCoordinate.h"
25 std::vector<DimensionAndValue> coordinates;
36 this->coordinates.reserve(reservedCapacity);
50 void Set(imgdoc2::Dimension d,
int value)
override
52 const auto it = std::find_if(
53 this->coordinates.begin(),
54 this->coordinates.end(),
57 return s.dimension == d;
59 if (it != this->coordinates.end())
72 this->coordinates.clear();
78 const auto it = std::find_if(this->coordinates.cbegin(), this->coordinates.cend(), [=](
const DimensionAndValue& s) { return s.dimension == dim; });
79 if (it != this->coordinates.cend())
81 if (coordVal !=
nullptr)
83 *coordVal = it->value;
92 void EnumCoordinates(
const std::function<
bool(imgdoc2::Dimension,
int)>& f)
const override
94 for (
auto it = this->coordinates.cbegin(); it != this->coordinates.cend(); ++it)
96 const bool b = f(it->dimension, it->value);
This interface provides modify access to the object and allows to mutate the object.
Definition: ITileCoordinate.h:145
Implementation of "tile coordinate object".
Definition: TileCoordinate.h:23
void EnumCoordinates(const std::function< bool(imgdoc2::Dimension, int)> &f) const override
Definition: TileCoordinate.h:92
void Clear() override
Clears this object to its blank/initial state.
Definition: TileCoordinate.h:70
void Set(imgdoc2::Dimension d, int value) override
Definition: TileCoordinate.h:50
TileCoordinate(size_t reservedCapacity)
Definition: TileCoordinate.h:34
TileCoordinate()
Default constructor, this reserves size for 5 dimensions.
Definition: TileCoordinate.h:28
TileCoordinate(std::initializer_list< DimensionAndValue > list)
Definition: TileCoordinate.h:41
bool TryGetCoordinate(imgdoc2::Dimension dim, int *coordVal) const override
Definition: TileCoordinate.h:76
A structure combining a dimension and a value.
Definition: TileCoordinate.h:16
imgdoc2::Dimension dimension
The dimension.
Definition: TileCoordinate.h:17
int value
The value (for this dimension).
Definition: TileCoordinate.h:18