HasAdjacentEdges concept is satisfied only if a Element class provides the types and member functions specified in this concept. These types and member functions allow to access to a vcl::comp::AdjacentEdges component of a given element.
More...
template<typename T>
T&& obj,
typename RemoveRef<T>::AdjacentEdgeType e,
typename RemoveRef<T>::AdjacentEdgeIterator it,
typename RemoveRef<T>::ConstAdjacentEdgeIterator cIt,
typename RemoveRef<T>::ConstAdjacentEdgeIndexIterator cIIt,
typename RemoveRef<T>::AdjacentEdgeType* eP,
const typename RemoveRef<T>::AdjacentEdgeType* cEP,
std::vector<typename RemoveRef<T>::AdjacentEdgeType*> vec) {
RemoveRef<T>::ADJ_EDGE_NUMBER;
typename RemoveRef<T>::AdjacentEdgeType;
typename RemoveRef<T>::AdjacentEdgeIterator;
typename RemoveRef<T>::ConstAdjacentEdgeIterator;
typename RemoveRef<T>::ConstAdjacentEdgeIndexIterator;
{ obj.adjEdgesNumber() } -> std::same_as<uint>;
{
obj.adjEdge(
uint()) } -> std::convertible_to<
decltype(
cEP)>;
{
obj.adjEdgeIndex(uint()) } -> std::same_as<uint>;
{ obj.adjEdgeMod(int()) } -> std::convertible_to<decltype(cEP)>;
{ obj.adjEdgeIndexMod(uint()) } -> std::same_as<uint>;
{ obj.containsAdjEdge(&e) } -> std::same_as<bool>;
{ obj.containsAdjEdge(uint()) } -> std::same_as<bool>;
{ obj.indexOfAdjEdge(&e) } -> std::same_as<uint>;
{ obj.indexOfAdjEdge(uint()) } -> std::same_as<uint>;
{ obj.adjEdgeBegin() } -> InputIterator<decltype(cEP)>;
{ obj.adjEdgeEnd() } -> InputIterator<decltype(cEP)>;
{ obj.adjEdgeIndexBegin() } -> InputIterator<uint>;
{ obj.adjEdgeIndexEnd() } -> InputIterator<uint>;
{ obj.adjEdges() } -> InputRange<decltype(cEP)>;
{ obj.adjEdgeIndices() } -> InputRange<uint>;
requires IsConst<T> || requires {
{ obj.adjEdge(uint()) } -> std::same_as<decltype(eP)>;
{ obj.adjEdgeMod(int()) } -> std::same_as<decltype(eP)>;
{ obj.setAdjEdge(uint(), &e) } -> std::same_as<void>;
{ obj.setAdjEdge(uint(), uint()) } -> std::same_as<void>;
{ obj.setAdjEdge(it, &e) } -> std::same_as<void>;
{ obj.setAdjEdge(it, uint()) } -> std::same_as<void>;
{ obj.setAdjEdge(cIt, &e) } -> std::same_as<void>;
{ obj.setAdjEdge(cIt, uint()) } -> std::same_as<void>;
{ obj.setAdjEdge(cIIt, &e) } -> std::same_as<void>;
{ obj.setAdjEdge(cIIt, uint()) } -> std::same_as<void>;
{ obj.setAdjEdgeMod(int(), &e) } -> std::same_as<void>;
{ obj.setAdjEdgeMod(int(), uint()) } -> std::same_as<void>;
{ obj.setAdjEdges(vec) } -> std::same_as<void>;
{ obj.adjEdgeBegin() } -> InputIterator<decltype(eP)>;
{ obj.adjEdgeEnd() } -> InputIterator<decltype(eP)>;
{ obj.adjEdges() } -> InputRange<decltype(eP)>;
};
}
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:43
HasAdjacentEdges concept is satisfied only if a Element class provides the types and member functions...
Definition adjacent_edges.h:51
HasAdjacentEdges concept is satisfied only if a Element class provides the types and member functions specified in this concept. These types and member functions allow to access to a vcl::comp::AdjacentEdges component of a given element.
Note that this concept does not discriminate between the Horizontal AdjacentEdges component and the vertical OptionalAdjacentEdges component, therefore it does not guarantee that a template Element type that satisfies this concept provides AdjacentEdges component at runtime (it is guaranteed only that the proper member functions are available at compile time).