| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // SPDX-FileCopyrightText: 2023 Carl Zeiss Microscopy GmbH | ||
| 2 | // | ||
| 3 | // SPDX-License-Identifier: MIT | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "IDocInfo.h" | ||
| 8 | |||
| 9 | namespace imgdoc2 | ||
| 10 | { | ||
| 11 | /// This interface is used for retrieving global information about the document (i.e. usually aggregated from | ||
| 12 | /// the individual bricks) specific to the 3d-document. | ||
| 13 | class IDocInfo3d : public IDocInfo | ||
| 14 | { | ||
| 15 | public: | ||
| 16 | /// <summary> Gets the extents of an axis-aligned bounding cuboid for all bricks. </summary> | ||
| 17 | /// <param name="bounds_x"> [in,out] If non-null, the extent for the x-coordinate is put here. </param> | ||
| 18 | /// <param name="bounds_y"> [in,out] If non-null, the extent for the y-coordinate is put here. </param> | ||
| 19 | /// <param name="bounds_z"> [in,out] If non-null, the extent for the z-coordinate is put here. </param> | ||
| 20 | virtual void GetBricksBoundingBox(imgdoc2::DoubleInterval* bounds_x, imgdoc2::DoubleInterval* bounds_y, imgdoc2::DoubleInterval* bounds_z) = 0; | ||
| 21 | |||
| 22 | 136 | ~IDocInfo3d() override = default; | |
| 23 | |||
| 24 | // 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 ) | ||
| 25 | 68 | IDocInfo3d() = default; | |
| 26 | IDocInfo3d(const IDocInfo3d&) = delete; // copy constructor | ||
| 27 | IDocInfo3d& operator=(const IDocInfo3d&) = delete; // copy assignment | ||
| 28 | IDocInfo3d(IDocInfo3d&&) = delete; // move constructor | ||
| 29 | IDocInfo3d& operator=(IDocInfo3d&&) = delete; // move assignment | ||
| 30 | }; | ||
| 31 | } | ||
| 32 |