CVB++ 15.0
detail_plane_enumerator.hpp
1#pragma once
2
3#include "../_decl/decl_plane_enumerator.hpp"
4
5#include "detail_composite.hpp"
6#include "detail_point_cloud.hpp"
7
8namespace Cvb
9{
10
11 CVB_BEGIN_INLINE_NS
12
13 template <class T>
14 inline PlaneEnumerator PlaneEnumerator::FromObject(const T &object)
15 {
16 static_assert(!std::is_base_of<Composite, T>::value && !std::is_base_of<PointCloud, T>::value,
17 "CVB: PlaneEnumerator must not be a a base of Composite or PointCloud");
18 CVB_CALL_CAPI_CHECKED(ShareObject(object.Handle()));
19 return PlaneEnumerator(HandleGuard<PlaneEnumerator>(object.Handle()), PrivateTag{});
20 }
21
22 CVB_END_INLINE_NS
23
24} // namespace Cvb
Lazy enumeration of planes.
Definition decl_plane_enumerator.hpp:27
static PlaneEnumerator FromObject(const T &object)
Create a plane enumerator for a given object.
PlaneEnumerator() noexcept
Plane enumerator constructor.
Definition decl_plane_enumerator.hpp:39
void * Handle() const noexcept
Classic API device handle.
Definition decl_plane_enumerator.hpp:93
cvbbool_t ShareObject(OBJ Object)
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17