Visual Computing Library  devel
Loading...
Searching...
No Matches
vcl::FaceConcept Concept Reference

A concept that checks whether a class has (inherits from) an Face class. More...

#include <vclib/mesh/elements/face.h>

Concept definition

template<typename T>
concept vcl::FaceConcept =
IsDerivedFromSpecializationOfV<T, Face> &&
RemoveRef<T>::ELEMENT_ID == ElemId::FACE && face::HasBitFlags<T> &&
(RemoveRef<T>::VERTEX_NUMBER < 0 || RemoveRef<T>::VERTEX_NUMBER >= 3) &&
(!face::HasTriangleBitFlags<T> || RemoveRef<T>::VERTEX_NUMBER == 3) &&
A concept that checks whether a class has (inherits from) an Face class.
Definition face.h:295
SanityCheckAdjacentEdges concept.
Definition adjacent_edges.h:715
SanityCheckAdjacentFaces concept.
Definition adjacent_faces.h:719
SanityCheckWedgeColors concept.
Definition wedge_colors.h:380
SanityCheckWedgeTexCoords concept.
Definition wedge_tex_coords.h:444
Definition face_components.h:76
Definition face_components.h:104
Definition face_components.h:106

Detailed Description

A concept that checks whether a class has (inherits from) an Face class.

The concept is satisfied when T is a class that instantiates or derives from a Face class having any ParentMesh type and any Component types. The concept checks also that the Face has:

  • a BitFlags component;
  • VertexPointers or VertexIndices components
  • the number of vertices is less than 0 (dynamic size) or at least 3 (static size);
  • if the Face has the TriangleBitFlags component, the number of vertices must be 3 (static size);
  • all the components tied to the vertex number of the Face are consistent with the number of vertices;
Template Parameters
TThe type to be tested for conformity to the EdgeConcept.