Skip to content

Commit 47da3b8

Browse files
committed
Minor fixes to the clamping backend
The clamping backend was missing a useful constructor and was incorrectly initializing its member variables. This commit fixes this issue.
1 parent e98d9b0 commit 47da3b8

File tree

1 file changed

+19
-6
lines changed
  • lib/core/covfie/core/backend/transformer

1 file changed

+19
-6
lines changed

lib/core/covfie/core/backend/transformer/clamp.hpp

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@
1919
#include <covfie/core/vector.hpp>
2020

2121
namespace covfie::backend {
22+
23+
template <typename vector_t>
24+
struct clamp_configuration_t {
25+
vector_t min, max;
26+
};
27+
2228
template <concepts::field_backend _backend_t>
2329
struct clamp {
2430
using this_t = clamp<_backend_t>;
@@ -29,9 +35,8 @@ struct clamp {
2935
using contravariant_input_t = typename backend_t::contravariant_input_t;
3036
using covariant_output_t = typename backend_t::covariant_output_t;
3137

32-
struct configuration_t {
33-
typename contravariant_input_t::vector_t min, max;
34-
};
38+
using configuration_t =
39+
clamp_configuration_t<typename contravariant_input_t::vector_t>;
3540

3641
static constexpr uint32_t IO_MAGIC_HEADER = 0xAB020002;
3742

@@ -70,15 +75,23 @@ struct clamp {
7075
dimensions>>) explicit owning_data_t(Args... args)
7176
: m_backend(std::forward<Args>(args)...)
7277
{
73-
m_min.fill(static_cast<typename contravariant_input_t::scalar_t>(0)
74-
);
75-
7678
for (std::size_t i = 0; i < contravariant_input_t::dimensions; ++i)
7779
{
80+
m_min[i] = 0;
7881
m_max[i] = m_backend.get_configuration()[i];
7982
}
8083
}
8184

85+
template <typename T>
86+
requires(std::same_as<
87+
typename T::parent_t::configuration_t,
88+
configuration_t>) explicit owning_data_t(const T & o)
89+
: m_min(o.get_configuration().min)
90+
, m_max(o.get_configuration().max)
91+
, m_backend(o.m_backend)
92+
{
93+
}
94+
8295
typename backend_t::owning_data_t & get_backend(void)
8396
{
8497
return m_backend;

0 commit comments

Comments
 (0)