iVS3D v2.0.9
Loading...
Searching...
No Matches
iselection.h
1#pragma once
2
3#include <QObject>
4#include <tl/expected.hpp>
5#include <vector>
6#include <memory>
7
8#include "ierror.h"
9#include "resolution.h"
10#include "roi.h"
11#include "reader.h"
12#include "LogFileParent.h"
13#include "opencv2/core.hpp"
14
15namespace PLUG {
16
32 std::vector<uint> selectedIndices; // Indices of the selected images
33 Resolution workingResolution; // Working resolution of the images
34 ROI roi; // Region of interest within the images
35 Reader* reader; // Pointer to the Reader instance
36 std::shared_ptr<LogFileParent> logFile; // Log sink for plugin selection
37};
38
45using SelectionResult = tl::expected<std::vector<uint>, Error>;
46
54 public:
55 virtual ~ISelection() = default;
56
67 virtual SelectionResult selectImages(const SelectionData& data, volatile bool& cancelFlag) = 0;
68};
69
70} // namespace PLUG
71
72Q_DECLARE_INTERFACE(PLUG::ISelection, "iVS3D.ISelection")
Represents an error with a code and a message. The message is intended for display to the user.
Definition ierror.h:28
Interface for keyframe/image-selection plugins in iVS3D.
Definition iselection.h:53
virtual SelectionResult selectImages(const SelectionData &data, volatile bool &cancelFlag)=0
Selects images based on the provided selection data.
The ROI class manages a region of interest represented as a rectangle in the [0,1]x[0,...
Definition roi.h:21
The Reader interface defines functions which are used for reading and parsing the import.
Definition reader.h:23
The Resolution class encapsulates an image resolution (width and height). It provides functionality f...
Definition resolution.h:17
Plugin interface namespace containing common plugin contracts and helper types.
Data available for image selection in ISelection plugins.
Definition iselection.h:31