46 typename RemoveRef<T>::FaceType f,
47 typename RemoveRef<T>::FaceType* fP,
48 typename RemoveRef<T>::FaceType& fR,
49 typename RemoveRef<T>::FaceType::VertexType* vP,
50 std::vector<uint> vecU,
51 std::vector<typename RemoveRef<T>::FaceType::VertexType*> vecV) {
52 typename RemoveRef<T>::FaceType;
53 typename RemoveRef<T>::FaceIterator;
54 typename RemoveRef<T>::ConstFaceIterator;
56 { obj.face(uint()) } -> std::convertible_to<
decltype(f)>;
57 { obj.faceNumber() } -> std::same_as<uint>;
58 { obj.faceContainerSize() } -> std::same_as<uint>;
59 { obj.deletedFaceNumber() } -> std::same_as<uint>;
61 { obj.faceIndexIfCompact(uint()) } -> std::same_as<uint>;
62 { obj.faceCompactIndices() } -> std::same_as<
decltype(vecU)>;
67 { obj.faces(
bool()) } ->
InputRange<
decltype(f)>;
71 { obj.face(uint()) } -> std::same_as<
decltype(fR)>;
73 { obj.addFace() } -> std::same_as<uint>;
74 { obj.addFace(uint(), uint(), uint()) } -> std::same_as<uint>;
75 { obj.addFace(vP, vP, vP) } -> std::same_as<uint>;
76 { obj.addFace(vecU) } -> std::same_as<uint>;
77 { obj.addFace(vecV) } -> std::same_as<uint>;
78 { obj.addFaces(uint()) } -> std::same_as<uint>;
79 { obj.clearFaces() } -> std::same_as<void>;
80 { obj.resizeFaces(uint()) } -> std::same_as<void>;
81 { obj.reserveFaces(uint()) } -> std::same_as<void>;
82 { obj.compactFaces() } -> std::same_as<void>;
83 { obj.deleteFace(uint()) } -> std::same_as<void>;
84 { obj.deleteFace(fP) } -> std::same_as<void>;
85 { obj.updateFaceIndices(vecU) } -> std::same_as<void>;
92 { obj.enableAllPerFaceOptionalComponents() } -> std::same_as<void>;
93 { obj.disableAllPerFaceOptionalComponents() } -> std::same_as<void>;