47 double halfYneg,
double halfYpos) noexcept(
false)
48 :
m_values({halfXnegY, halfXzeroY, halfXposY, halfYneg, halfYpos}),
76 std::vector<double>
values()
const final;
102 std::vector<Vector2D>
vertices(
unsigned int lseg = 1)
const final;
110 std::ostream&
toStream(std::ostream& sl)
const final;
126 std::vector<double> valvector;
127 valvector.insert(valvector.begin(), m_values.begin(), m_values.end());
132 if (std::any_of(m_values.begin(), m_values.end(),
133 [](
auto v) {
return v <= 0.; })) {
134 throw std::invalid_argument(
"DiamondBounds: negative half length.");
138 throw std::invalid_argument(
"DiamondBounds: not a diamond shape.");