23#ifndef VCL_MESH_CONTAINERS_BASE_CUSTOM_COMPONENT_VECTOR_HANDLE_H
24#define VCL_MESH_CONTAINERS_BASE_CUSTOM_COMPONENT_VECTOR_HANDLE_H
26#include <vclib/base.h>
59 std::vector<std::reference_wrapper<T>> mVec;
62 class Iterator :
public std::vector<std::reference_wrapper<T>>::iterator
64 using Base = std::vector<std::reference_wrapper<T>>::iterator;
68 using reference = value_type&;
69 using pointer = value_type*;
75 reference operator*()
const {
return Base::operator*().get(); }
77 pointer operator->()
const {
return &(Base::operator*().get()); }
81 public std::vector<std::reference_wrapper<T>>::const_iterator
83 using Base = std::vector<std::reference_wrapper<T>>::const_iterator;
87 using reference =
const value_type&;
88 using pointer =
const value_type*;
94 reference operator*()
const {
return Base::operator*().get(); }
96 pointer operator->()
const {
return &(Base::operator*().get()); }
105 mVec.push_back(std::any_cast<T&>(
cc[
i]));
109 T& at(uint i) {
return mVec[i].get(); }
111 const T& at(uint i)
const {
return mVec[i].get(); }
113 T& front() {
return mVec.begin()->get(); }
115 const T& front()
const {
return mVec.begin()->get(); }
117 T& back() {
return std::prev(mVec.end())->get(); }
119 const T& back()
const {
return std::prev(mVec.end())->get(); }
121 uint size()
const {
return mVec.
size(); }
123 T& operator[](uint i) {
return mVec[i].get(); }
125 const T& operator[](uint i)
const {
return mVec[i].get(); }
127 Iterator begin() {
return Iterator(mVec.begin()); }
129 Iterator end() {
return Iterator(mVec.end()); }
131 ConstIterator begin()
const {
return ConstIterator(mVec.begin()); }
133 ConstIterator end()
const {
return ConstIterator(mVec.end()); }
137using ConstCustomComponentVectorHandle = CustomComponentVectorHandle<const T>;
A class representing a box in N-dimensional space.
Definition box.h:46
PointT size() const
Computes the size of the box.
Definition box.h:267
Definition custom_component_vector_handle.h:82
Definition custom_component_vector_handle.h:63
Allows to access directly to a custom component.
Definition custom_component_vector_handle.h:58