51 double halfYneg,
double halfYpos) noexcept(
false)
52 :
m_values({halfXnegY, halfXzeroY, halfXposY, halfYneg, halfYpos}),
80 std::vector<double>
values()
const final;
100 std::vector<Vector2>
vertices(
unsigned int lseg = 1)
const final;
108 std::ostream&
toStream(std::ostream& sl)
const final;
124 std::vector<double> valvector;
125 valvector.insert(valvector.begin(), m_values.begin(), m_values.end());
130 if (std::any_of(m_values.begin(), m_values.end(),
131 [](
auto v) {
return v <= 0.; })) {
132 throw std::invalid_argument(
"DiamondBounds: negative half length.");
136 throw std::invalid_argument(
"DiamondBounds: not a diamond shape.");