Skip to content
Snippets Groups Projects
Commit cac460c7 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

+ Bin1D::clipped_or_nil

parent 2a79d610
No related branches found
No related tags found
1 merge request!1620core simplifications, especially detector iterators
......@@ -36,3 +36,13 @@ Bin1D::Bin1D(double lower, double upper)
{
ASSERT(m_lower <= m_upper);
}
std::optional<Bin1D> Bin1D::clipped_or_nil(double lower, double upper) const
{
ASSERT(lower <= upper);
if (upper < m_lower || m_upper < lower)
return {};
if (lower <= m_lower && m_upper <= upper)
return *this;
return Bin1D(std::max(lower, m_lower), std::min(upper, m_upper));
}
......@@ -15,6 +15,8 @@
#ifndef BORNAGAIN_BASE_AXIS_BIN_H
#define BORNAGAIN_BASE_AXIS_BIN_H
#include <optional>
//! An real-valued interval.
class Bin1D {
......@@ -30,6 +32,8 @@ public:
bool operator==(const Bin1D& other) const = default;
std::optional<Bin1D> clipped_or_nil(double lower, double upper) const;
private:
Bin1D(double lower, double upper);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment