Visual Computing Library
Loading...
Searching...
No Matches
vcl::mesh::HasVertexContainer Concept Reference

The HasVertexContainer concept is satisfied only if a container class provides the types and member functions specified in this concept. These types and member functions allow to access to a vcl::mesh::VertexContainer container of a given mesh. More...

#include <vclib/concepts/mesh/containers/vertex_container.h>

Concept definition

template<typename T>
concept vcl::mesh::HasVertexContainer = requires (
T&& obj,
typename RemoveRef<T>::VertexType v,
typename RemoveRef<T>::VertexType* vP,
typename RemoveRef<T>::VertexType& vR,
typename RemoveRef<T>::VertexType::CoordType c,
std::vector<uint> vec) {
typename RemoveRef<T>::VertexType;
typename RemoveRef<T>::VertexIterator;
typename RemoveRef<T>::ConstVertexIterator;
{ obj.vertex(uint()) } -> std::convertible_to<decltype(v)>;
{ obj.vertexNumber() } -> std::same_as<uint>;
{ obj.vertexContainerSize() } -> std::same_as<uint>;
{ obj.deletedVertexNumber() } -> std::same_as<uint>;
{ obj.vertexIndexIfCompact(uint()) } -> std::same_as<uint>;
{ obj.vertexCompactIndices() } -> std::same_as<decltype(vec)>;
{ obj.vertexBegin() } -> InputIterator<decltype(v)>;
{ obj.vertexEnd() } -> InputIterator<decltype(v)>;
{ obj.vertices() } -> InputRange<decltype(v)>;
{ obj.vertices(bool()) } -> InputRange<decltype(v)>;
requires IsConst<T> || requires {
{ obj.vertex(uint()) } -> std::same_as<decltype(vR)>;
{ obj.addVertex() } -> std::same_as<uint>;
{ obj.addVertex(c) } -> std::same_as<uint>;
{ obj.addVertices(uint()) } -> std::same_as<uint>;
{ obj.addVertices(c, c, c, c) } -> std::same_as<uint>;
{ obj.clearVertices() } -> std::same_as<void>;
{ obj.resizeVertices(uint()) } -> std::same_as<void>;
{ obj.reserveVertices(uint()) } -> std::same_as<void>;
{ obj.compactVertices() } -> std::same_as<void>;
{ obj.deleteVertex(uint()) } -> std::same_as<void>;
{ obj.deleteVertex(vP) } -> std::same_as<void>;
{ obj.updateVertexIndices(vec) } -> std::same_as<void>;
{ obj.vertexBegin() } -> OutputIterator<decltype(v)>;
{ obj.vertexEnd() } -> OutputIterator<decltype(v)>;
{ obj.vertices() } -> OutputRange<decltype(v)>;
{ obj.vertices(bool()) } -> OutputRange<decltype(v)>;
{ obj.enableAllPerVertexOptionalComponents() } -> std::same_as<void>;
{ obj.disableAllPerVertexOptionalComponents() } -> std::same_as<void>;
};
}
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:43
The HasVertexContainer concept is satisfied only if a container class provides the types and member f...
Definition vertex_container.h:44

Detailed Description

The HasVertexContainer concept is satisfied only if a container class provides the types and member functions specified in this concept. These types and member functions allow to access to a vcl::mesh::VertexContainer container of a given mesh.