Ponca
7abd0fd82719106ad460aa0f2070dffbe375d727
Point Cloud Analysis library
Loading...
Searching...
No Matches
concepts.h
1
#pragma once
2
3
#include "../concepts.h"
4
5
namespace
Ponca
6
{
7
template
<
typename
T>
8
concept
ProvidesScaleDerivative
= T::isScaleDer();
9
10
template
<
typename
T>
11
concept
ProvidesSpaceDerivative
= T::isSpaceDer();
12
13
template
<
typename
K>
14
concept
KernelProvidesFirstOrderDerivative
= K::isDValid;
15
16
template
<
typename
K>
17
concept
KernelProvidesSecondOrderDerivative
= K::isDDValid;
28
template
<
typename
T>
29
concept
ProvidesComputeState
=
ProvidesCommonTypes<T>
&&
requires
(T t,
const
T ct) {
30
{ ct.isStable() } -> std::same_as<bool>;
31
{ ct.isReady() } -> std::same_as<bool>;
32
{ ct.getCurrentState() } -> std::same_as<FIT_RESULT>;
33
};
37
template
<
typename
T>
38
concept
ProvidesBasketUnitBase
=
ProvidesCommonTypes<T>
&&
ProvidesComputeState<T>
&&
requires
(T t,
const
T ct) {
39
typename
T::NeighborFilter;
40
t.setNeighborFilter(
typename
T::NeighborFilter{});
41
{ ct.getNeighborFilter() } -> std::convertible_to<typename T::NeighborFilter>;
42
43
{ ct.getWeightSum() } -> std::same_as<typename T::Scalar>;
44
{ ct.getNumNeighbors() } -> std::integral;
45
};
46
50
template
<
typename
T>
51
concept
ProvidesBasketDiffUnitBase
=
ProvidesBasketUnitBase<T>
&&
requires
(T t,
const
T ct) {
52
{ ct.isScaleDer() } -> std::same_as<bool>;
53
{ ct.isSpaceDer() } -> std::same_as<bool>;
54
{ ct.derDimension() } -> std::integral;
55
};
56
57
}
// namespace Ponca
Ponca::KernelProvidesFirstOrderDerivative
Definition
concepts.h:14
Ponca::KernelProvidesSecondOrderDerivative
Definition
concepts.h:17
Ponca::ProvidesBasketDiffUnitBase
This concept ensures that the default types and accessors in a BasketDiff are well-formed.
Definition
concepts.h:51
Ponca::ProvidesBasketUnitBase
This concept ensures that the default types and accessors in a Basket are well-formed.
Definition
concepts.h:38
Ponca::ProvidesCommonTypes
Definition
concepts.h:13
Ponca::ProvidesComputeState
This concept if currently only used a base concept for ProvidesBasketUnitBase.
Definition
concepts.h:29
Ponca::ProvidesScaleDerivative
Definition
concepts.h:8
Ponca::ProvidesSpaceDerivative
Definition
concepts.h:11
Ponca
This Source Code Form is subject to the terms of the Mozilla Public License, v.
Definition
concepts.h:11
src
Ponca
src
Fitting
Basket
concepts.h
Generated on Tue Sep 15 2026 12:02:27 for Ponca by
1.9.8