50 using Base =
Element<ElemId::FACE, MeshType, Comps...>;
53 using VRefs =
typename Face::VertexReferences;
55 static const int NV = VRefs::VERTEX_NUMBER;
58 using VertexType =
typename VRefs::VertexType;
90 VRefs::setVertices(
r);
93 if constexpr (NV < 0) {
112 template<
typename... V>
114 (std::convertible_to<V, VertexType*> || std::convertible_to<V, uint>) &&
137 VRefs::resizeVertices(
n);
145 VRefs::pushVertex(v);
151 void pushVertex(uint vi)
requires PolygonFaceConcept<Face>
153 VRefs::pushVertex(vi);
156 (pushBackTTVNComponent<Comps>(), ...);
159 void insertVertex(uint i, VertexType* v)
requires PolygonFaceConcept<Face>
161 VRefs::insertVertex(i, v);
164 (insertTTVNComponent<Comps>(i), ...);
167 void insertVertex(uint i, uint vi)
requires PolygonFaceConcept<Face>
169 VRefs::insertVertex(i, vi);
172 (insertTTVNComponent<Comps>(i), ...);
175 void eraseVertex(uint i)
requires PolygonFaceConcept<Face>
177 VRefs::eraseVertex(i);
180 (eraseTTVNComponent<Comps>(i), ...);
183 void clearVertices()
requires PolygonFaceConcept<
Face>
185 VRefs::clearVertices();
188 (clearTTVNComponent<Comps>(), ...);
191 template<
typename ElType>
192 void importFrom(
const ElType& v,
bool importRefs =
true)
194 if constexpr (comp::HasVertexReferences<ElType> && NV < 0) {
195 VRefs::resizeVertices(v.vertexNumber());
197 (resizeTTVNComponent<Comps>(v.vertexNumber()), ...);
200 Base::importFrom(v, importRefs);
208 template<
typename Comp>
212 if (Comp::isAvailable())
221 template<
typename Comp>
225 if (Comp::isAvailable())
234 template<
typename Comp>
238 if (Comp::isAvailable())
247 template<
typename Comp>
251 if (Comp::isAvailable())
260 template<
typename Comp>
264 if (Comp::isAvailable())