libimgdoc2
Loading...
Searching...
No Matches
DimCoordinateQueryClause.h
1// SPDX-FileCopyrightText: 2023 Carl Zeiss Microscopy GmbH
2//
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
7#include "IDimCoordinateQueryClause.h"
8#include <vector>
9#include <map>
10#include <set>
11
12namespace imgdoc2
13{
16 {
17 private:
18 std::map<imgdoc2::Dimension, std::vector<RangeClause>> rangeClauses;
19 std::set<imgdoc2::Dimension> dims;
20 public:
24 void AddRangeClause(imgdoc2::Dimension d, const RangeClause& clause)
25 {
26 this->rangeClauses[d].push_back(clause);
27 this->dims.insert(d);
28 }
29
31 const std::set<imgdoc2::Dimension>& GetTileDimsForClause() const override
32 {
33 return this->dims;
34 }
35
37 const std::vector<RangeClause>* GetRangeClause(imgdoc2::Dimension d) const override
38 {
39 const auto& c = this->rangeClauses.find(d);
40 if (c != this->rangeClauses.cend())
41 {
42 return &c->second;
43 }
44
45 return nullptr;
46 }
47 };
48}
A simple implementation of the IDimCoordinateQueryClause interface.
Definition: DimCoordinateQueryClause.h:16
const std::vector< RangeClause > * GetRangeClause(imgdoc2::Dimension d) const override
Definition: DimCoordinateQueryClause.h:37
const std::set< imgdoc2::Dimension > & GetTileDimsForClause() const override
Definition: DimCoordinateQueryClause.h:31
void AddRangeClause(imgdoc2::Dimension d, const RangeClause &clause)
Definition: DimCoordinateQueryClause.h:24
Definition: IDimCoordinateQueryClause.h:18
Definition: IDimCoordinateQueryClause.h:25