11 using VertexType = std::conditional_t<CNST, const Vertex, Vertex>;
13 std::vector<VertexType*> mSamples;
16 using PointType = VertexType::PositionType;
20 const std::vector<VertexType*> samples()
const {
return mSamples; }
22 const typename VertexType::PositionType& sample(
uint i)
const
24 return mSamples[
i]->position();
27 std::size_t size()
const {
return mSamples.size(); }
29 void clear() { mSamples.clear(); }
31 void reserve(
uint n) { mSamples.reserve(
n); }
33 void resize(
uint n) { mSamples.resize(
n); }
35 void add(VertexType& v) { mSamples.push_back(&v); }
37 void set(
uint i, VertexType& v) { mSamples[
i] = &v; }
39 auto begin()
const {
return std::begin(mSamples | views::positions); }
41 auto end()
const {
return std::end(mSamples | views::positions); }