3#include "../_cexports/c_spectral.h"
12 inline HandleGuard<Spectral::Interpolator>::HandleGuard(
void *handle) noexcept
13 : HandleGuard<Spectral::Interpolator>(handle, [](
void *handle) { CVB_CALL_CAPI(
ReleaseObject(handle)); })
22 class Interpolator final
25 Interpolator(
const Interpolator &other)
noexcept =
delete;
26 Interpolator &operator=(
const Interpolator &other)
noexcept =
delete;
27 Interpolator(Interpolator &&other)
noexcept =
default;
28 Interpolator &operator=(Interpolator &&other)
noexcept =
default;
29 ~Interpolator() =
default;
64 return Internal::DoResCallObjectOut<Interpolator>([&](
void *&obj) {
65 return CVB_CALL_CAPI(CVSCreateInterpolator(cube.
Handle(),
static_cast<CExports::CVSStdObserver
>(stdObserver),
66 static_cast<CExports::CVSStdIlluminant
>(stdIlluminant),
67 static_cast<CExports::CVSInterpolationMethod
>(interpolationMethod),
80 auto cVal = Internal::DoResCallValueOut<CExports::CVSStdObserver>([&](CExports::CVSStdObserver val) {
81 return CVB_CALL_CAPI(CVSInterpolatorGetObserver(this->
Handle(), val));
95 auto cVal = Internal::DoResCallValueOut<CExports::CVSStdIlluminant>([&](CExports::CVSStdIlluminant val) {
96 return CVB_CALL_CAPI(CVSInterpolatorGetIlluminant(this->
Handle(), val));
110 CVB_CALL_CAPI_CHECKED(CVSInterpolatorGetWavelengths(this->
Handle(),
reinterpret_cast<double *
>(NULL), sz));
112 CVB_CALL_CAPI_CHECKED(CVSInterpolatorGetWavelengths(this->
Handle(), waves.data(), sz));
123 return handle_.Handle();
143 explicit Interpolator(HandleGuard<Interpolator> &&guard) noexcept
149 HandleGuard<Interpolator> handle_;
22 class Interpolator final {
…};
Spectral Cube object.
Definition cube.hpp:59
void * Handle() const noexcept
Returns C-API style handle to the Cube.
Definition cube.hpp:316
Spectral Interpolator object.
Definition interpolator.hpp:23
Spectral::StdObserver StdObserver() const
Retrieves the standard observer from the interpolator object.
Definition interpolator.hpp:78
static std::unique_ptr< Interpolator > Create(const Cube &cube, StdObserver stdObserver, StdIlluminant stdIlluminant, InterpolationMethod interpolationMethod)
Creates an Interpolator object.
Definition interpolator.hpp:61
static std::unique_ptr< Interpolator > FromHandle(HandleGuard< Interpolator > &&guard)
Creates Interpolator from a classic API Interpolator handle.
Definition interpolator.hpp:135
Spectral::StdIlluminant StdIlluminant() const
Retrieves the standard illuminant from the interpolator object.
Definition interpolator.hpp:93
std::vector< double > Wavelengths() const
Retrieves the wavelengths of the illuminant spectrum.
Definition interpolator.hpp:107
void * Handle() const noexcept
Returns C-API style handle to the Interpolator.
Definition interpolator.hpp:121
cvbbool_t ReleaseObject(OBJ &Object)
Namespace for the Spectral package.
Definition arithmetic.hpp:14
StdIlluminant
Defines Standard Illumination.
Definition spectral.hpp:252
InterpolationMethod
Defines the interpolation method.
Definition spectral.hpp:282
StdObserver
Defines Standard Observer.
Definition spectral.hpp:267
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17