23#ifndef VCL_CONCEPTS_MESH_COMPONENTS_COMPONENT_H
24#define VCL_CONCEPTS_MESH_COMPONENTS_COMPONENT_H
26#include <vclib/types.h>
45 { RemoveRef<T>::COMPONENT_ID } -> std::same_as<const uint&>;
59 typename RemoveRef<T>::DataValueType;
60 { RemoveRef<T>::IS_VERTICAL } -> std::same_as<const bool&>;
74 { RemoveRef<T>::IS_OPTIONAL } -> std::same_as<const bool&>;
92 { obj.init() } -> std::same_as<void>;
106 { obj.isAvailable() } -> std::same_as<bool>;
151template<
typename T,
typename R>
154 std::is_base_of<ReferencesComponentTriggerer<RemoveRef<R>>, RemoveRef<T>>::
165template<
typename T,
typename R>
180template<
typename T,
typename R>
182 obj.template pointers<RemoveRef<R>>();
193template<
typename T,
typename R>
208template<
typename T,
typename R>
210 obj.template indices<RemoveRef<R>>();
221template<
typename T,
typename R>
245template<
typename T, u
int COMP_ID>
247 ComponentOfTypePred<COMP_ID, typename RemoveRef<T>::Components>::value;
265template<
typename T, u
int COMP_ID>
269 ComponentOfType<COMP_ID, typename RemoveRef<T>::Components>>;
287template<
typename T, u
int COMP_ID>
291 ComponentOfType<COMP_ID, typename RemoveRef<T>::Components>>;
The ComponentConcept is evaluated to true whenever the type T is a valid component,...
Definition component.h:44
The HasComponentOfType concept checks whether a type T (that may be a Mesh or a MeshElement) has a co...
Definition component.h:246
The HasIndicesOfType concept checks whether a component T stores indices of a type (element) R.
Definition component.h:209
Evaluates to true if the type T is a component that has a init() member function, that must be called...
Definition component.h:91
Evaluates to true if the type T is a component that has a isAvailable() member function,...
Definition component.h:104
The HasOptionalComponentOfType concept checks whether a type T (that should be a MeshElement) has an ...
Definition component.h:288
See vcl::comp::HasIndicesOfType and vcl::comp::IsOptionalComponent.
Definition component.h:222
See vcl::comp::HasPointersOfType and vcl::comp::IsOptionalComponent.
Definition component.h:194
See vcl::comp::HasReferencesOfType and vcl::comp::IsOptionalComponent.
Definition component.h:166
The HasPointersOfType concept checks whether a component T stores pointers of a type (element) R.
Definition component.h:181
The HasReferencesOfType concept checks whether a component T stores references (pointers or indices) ...
Definition component.h:152
The HasVerticalComponentOfType concept checks whether a type T (that should be a MeshElement) has a v...
Definition component.h:266
Evaluates to true if the type T is a component that is stored vertically in its element container,...
Definition component.h:72
Evaluates to true if the type T is tied to the number of vertices in the face.
Definition component.h:124
Evaluates to true if the type T is a component that is stored vertically in its element container.
Definition component.h:57