HasAdjacentFaces 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::AdjacentFaces component of a given element.
More...
template<typename T>
T&& obj,
typename RemoveRef<T>::AdjacentFaceType f,
typename RemoveRef<T>::AdjacentFaceIterator it,
typename RemoveRef<T>::ConstAdjacentFaceIterator cIt,
typename RemoveRef<T>::ConstAdjacentFaceIndexIterator cIIt,
typename RemoveRef<T>::AdjacentFaceType* fP,
const typename RemoveRef<T>::AdjacentFaceType* cFP,
std::vector<typename RemoveRef<T>::AdjacentFaceType*> vec) {
RemoveRef<T>::ADJ_FACE_NUMBER;
typename RemoveRef<T>::AdjacentFaceType;
typename RemoveRef<T>::AdjacentFaceIterator;
typename RemoveRef<T>::ConstAdjacentFaceIterator;
typename RemoveRef<T>::ConstAdjacentFaceIndexIterator;
{ obj.adjFacesNumber() } -> std::same_as<uint>;
{
obj.adjFace(
uint()) } -> std::convertible_to<
decltype(
cFP)>;
{
obj.adjFaceIndex(uint()) } -> std::same_as<uint>;
{ obj.adjFaceMod(int()) } -> std::convertible_to<decltype(cFP)>;
{ obj.adjFaceIndexMod(uint()) } -> std::same_as<uint>;
{ obj.containsAdjFace(&f) } -> std::same_as<bool>;
{ obj.containsAdjFace(uint()) } -> std::same_as<bool>;
{ obj.indexOfAdjFace(&f) } -> std::same_as<uint>;
{ obj.indexOfAdjFace(uint()) } -> std::same_as<uint>;
{ obj.adjFaceBegin() } -> InputIterator<decltype(cFP)>;
{ obj.adjFaceEnd() } -> InputIterator<decltype(cFP)>;
{ obj.adjFaceIndexBegin() } -> InputIterator<uint>;
{ obj.adjFaceIndexEnd() } -> InputIterator<uint>;
{ obj.adjFaces() } -> InputRange<decltype(cFP)>;
{ obj.adjFaceIndices() } -> InputRange<uint>;
requires IsConst<T> || requires {
{ obj.adjFace(uint()) } -> std::same_as<decltype(fP)>;
{ obj.adjFaceMod(int()) } -> std::same_as<decltype(fP)>;
{ obj.setAdjFace(uint(), &f) } -> std::same_as<void>;
{ obj.setAdjFace(uint(), uint()) } -> std::same_as<void>;
{ obj.setAdjFace(it, &f) } -> std::same_as<void>;
{ obj.setAdjFace(it, uint()) } -> std::same_as<void>;
{ obj.setAdjFace(cIt, &f) } -> std::same_as<void>;
{ obj.setAdjFace(cIt, uint()) } -> std::same_as<void>;
{ obj.setAdjFace(cIIt, &f) } -> std::same_as<void>;
{ obj.setAdjFace(cIIt, uint()) } -> std::same_as<void>;
{ obj.setAdjFaceMod(int(), &f) } -> std::same_as<void>;
{ obj.setAdjFaceMod(int(), uint()) } -> std::same_as<void>;
{ obj.setAdjFaces(vec) } -> std::same_as<void>;
{ obj.adjFaceBegin() } -> InputIterator<decltype(fP)>;
{ obj.adjFaceEnd() } -> InputIterator<decltype(fP)>;
{ obj.adjFaces() } -> InputRange<decltype(fP)>;
};
}
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:43
HasAdjacentFaces concept is satisfied only if a Element class provides the types and member functions...
Definition adjacent_faces.h:51
HasAdjacentFaces 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::AdjacentFaces component of a given element.
Note that this concept does not discriminate between the Horizontal AdjacentFaces component and the vertical OptionalAdjacentFaces component, therefore it does not guarantee that a template Element type that satisfies this concept provides AdjacentFaces component at runtime (it is guaranteed only that the proper member functions are available at compile time).