libimgdoc2
Loading...
Searching...
No Matches
IDocQuery3d.h
1// SPDX-FileCopyrightText: 2023 Carl Zeiss Microscopy GmbH
2//
3// SPDX-License-Identifier: MIT
4
5#pragma once
6#include "LogicalPositionInfo.h"
7#include "BrickBaseInfo.h"
8#include "ITileCoordinate.h"
9#include "IDimCoordinateQueryClause.h"
10#include "ITIleInfoQueryClause.h"
11#include "IBlobOutput.h"
12
13namespace imgdoc2
14{
17 {
18 public:
19 virtual ~IDocQuery3d() = default;
20
31 virtual void ReadBrickInfo(imgdoc2::dbIndex idx, imgdoc2::ITileCoordinateMutate* coordinate, imgdoc2::LogicalPositionInfo3D* info, imgdoc2::BrickBlobInfo* brick_blob_info) = 0;
32
41 virtual void Query(const imgdoc2::IDimCoordinateQueryClause* clause, const imgdoc2::ITileInfoQueryClause* tileInfoQuery, const std::function<bool(imgdoc2::dbIndex)>& func) = 0;
42
49 virtual void GetTilesIntersectingCuboid(const imgdoc2::CuboidD& cuboid, const imgdoc2::IDimCoordinateQueryClause* coordinate_clause, const imgdoc2::ITileInfoQueryClause* tileinfo_clause, const std::function<bool(imgdoc2::dbIndex)>& func) = 0;
50
58 virtual void GetTilesIntersectingPlane(const imgdoc2::Plane_NormalAndDistD& plane, const imgdoc2::IDimCoordinateQueryClause* coordinate_clause, const imgdoc2::ITileInfoQueryClause* tileinfo_clause, const std::function<bool(imgdoc2::dbIndex)>& func) = 0;
59
60 // /// Reads the brick data for the specified brick.
61 // /// \param idx The primary key of the brick for which the brick data is to be read.
62 // /// \param [in] data The object which is receiving the blob data.
63 virtual void ReadBrickData(imgdoc2::dbIndex idx, imgdoc2::IBlobOutput* data) = 0;
64 public:
65 // no copy and no move (-> https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c21-if-you-define-or-delete-any-copy-move-or-destructor-function-define-or-delete-them-all )
66 IDocQuery3d() = default;
67 IDocQuery3d(const IDocQuery3d&) = delete; // copy constructor
68 IDocQuery3d& operator=(const IDocQuery3d&) = delete; // copy assignment
69 IDocQuery3d(IDocQuery3d&&) = delete; // move constructor
70 IDocQuery3d& operator=(IDocQuery3d&&) = delete; // move assignment
71 };
72}
interface for outputting binary data
Definition: IBlobOutput.h:16
Definition: IDimCoordinateQueryClause.h:18
This interface is providing read-only access to the 3d-document.
Definition: IDocQuery3d.h:17
virtual void GetTilesIntersectingCuboid(const imgdoc2::CuboidD &cuboid, const imgdoc2::IDimCoordinateQueryClause *coordinate_clause, const imgdoc2::ITileInfoQueryClause *tileinfo_clause, const std::function< bool(imgdoc2::dbIndex)> &func)=0
virtual void GetTilesIntersectingPlane(const imgdoc2::Plane_NormalAndDistD &plane, const imgdoc2::IDimCoordinateQueryClause *coordinate_clause, const imgdoc2::ITileInfoQueryClause *tileinfo_clause, const std::function< bool(imgdoc2::dbIndex)> &func)=0
virtual void Query(const imgdoc2::IDimCoordinateQueryClause *clause, const imgdoc2::ITileInfoQueryClause *tileInfoQuery, const std::function< bool(imgdoc2::dbIndex)> &func)=0
virtual void ReadBrickInfo(imgdoc2::dbIndex idx, imgdoc2::ITileCoordinateMutate *coordinate, imgdoc2::LogicalPositionInfo3D *info, imgdoc2::BrickBlobInfo *brick_blob_info)=0
This interface provides modify access to the object and allows to mutate the object.
Definition: ITileCoordinate.h:145
Interface defining the query-clause on "tile-info".
Definition: ITIleInfoQueryClause.h:39
Definition: BrickBaseInfo.h:31
Structure defining an axis-aligned cuboid in three dimensions with doubles representing the coordinat...
Definition: types.h:310
Definition: LogicalPositionInfo.h:68
Definition: types.h:421