81 typename RemoveRef<T>::VertexType v,
82 typename RemoveRef<T>::VertexType& vR,
83 typename RemoveRef<T>::VertexType* vP,
84 std::vector<uint> vec) {
86 typename RemoveRef<T>::Containers;
87 typename RemoveRef<T>::Components;
91 requires std::same_as<
93 typename RemoveRef<T>::template ElementType<ElemId::VERTEX>>;
96 requires RemoveRef<T>::template hasContainerOf<decltype(v)>();
99 requires RemoveRef<T>::template hasContainerOf<ElemId::VERTEX>();
102 requires RemoveRef<T>::template hasPerElementComponent<
104 CompId::COORDINATE>();
111 { obj.isCompact() } -> std::same_as<bool>;
112 { obj.index(v) } -> std::same_as<uint>;
116 obj.template element<ElemId::VERTEX>(uint())
117 } -> std::convertible_to<
decltype(v)>;
119 { obj.template number<ElemId::VERTEX>() } -> std::same_as<uint>;
120 { obj.template containerSize<ElemId::VERTEX>() } -> std::same_as<uint>;
121 { obj.template deletedNumber<ElemId::VERTEX>() } -> std::same_as<uint>;
123 obj.template compactIndices<ElemId::VERTEX>()
124 } -> std::same_as<
decltype(vec)>;
126 { obj.template begin<ElemId::VERTEX>() } ->
InputIterator<
decltype(v)>;
128 obj.template begin<ElemId::VERTEX>(
bool())
130 { obj.template end<ElemId::VERTEX>() } ->
InputIterator<
decltype(v)>;
131 { obj.template elements<ElemId::VERTEX>() } ->
InputRange<
decltype(v)>;
133 obj.template elements<ElemId::VERTEX>(
bool())
139 { obj.clear() } -> std::same_as<void>;
140 { obj.compact() } -> std::same_as<void>;
141 { obj.enableAllOptionalComponents() } -> std::same_as<void>;
142 { obj.disableAllOptionalComponents() } -> std::same_as<void>;
143 { obj.enableSameOptionalComponentsOf(obj) } -> std::same_as<void>;
144 { obj.append(obj) } -> std::same_as<void>;
145 { obj.importFrom(obj) } -> std::same_as<void>;
146 { obj.swap(obj) } -> std::same_as<void>;
147 { obj.deleteElement(v) } -> std::same_as<void>;
148 { obj.deleteElement(vP) } -> std::same_as<void>;
151 { obj = obj } -> std::same_as<T&>;
155 obj.template element<ElemId::VERTEX>(uint())
156 } -> std::same_as<
decltype(vR)>;
157 { obj.template add<ElemId::VERTEX>() } -> std::same_as<uint>;
158 { obj.template add<ElemId::VERTEX>(uint()) } -> std::same_as<uint>;
160 obj.template clearElements<ElemId::VERTEX>()
161 } -> std::same_as<void>;
163 obj.template resize<ElemId::VERTEX>(uint())
164 } -> std::same_as<void>;
166 obj.template reserve<ElemId::VERTEX>(uint())
167 } -> std::same_as<void>;
169 obj.template deleteElement<ElemId::VERTEX>(uint())
170 } -> std::same_as<void>;
172 obj.template updateIndices<ElemId::VERTEX>(vec)
173 } -> std::same_as<void>;
176 obj.template begin<ElemId::VERTEX>()
179 obj.template begin<ElemId::VERTEX>(
bool())
182 obj.template end<ElemId::VERTEX>()
185 obj.template elements<ElemId::VERTEX>()
188 obj.template elements<ElemId::VERTEX>(
bool())