23#ifndef VCL_MESH_COMPONENTS_BASE_BASE_H
24#define VCL_MESH_COMPONENTS_BASE_BASE_H
26#include <vclib/base.h>
116template<u
int COMP_ID>
135template<u
int COMP_ID>
140 "Invalid ComponentIDEnum. You should specialize the 'ComponentString' "
141 "struct with your COMP_ID value.");
159template<uint COMP_ID,
typename... Components>
160struct ComponentOfTypePred
163 template<
typename Comp>
166 static constexpr bool value = Comp::COMPONENT_ID == COMP_ID;
172 typename FilterTypesByCondition<SameCompPred, Components...>::type;
173 static constexpr bool value = NumberOfTypes<type>::value == 1;
177template<uint COMP_ID,
typename... Components>
178struct ComponentOfTypePred<COMP_ID, TypeWrapper<Components...>> :
179 public ComponentOfTypePred<COMP_ID, Components...>
192template<uint COMP_ID,
typename... Components>
194 typename detail::ComponentOfTypePred<
COMP_ID, Components...>::type>;
A class representing a box in N-dimensional space.
Definition box.h:46
typename FirstType< Args... >::type FirstTypeT
Alias for the type of the first type in a pack of types.
Definition variadic_templates.h:63
constexpr const char * COMPONENT_ENUM_STRINGS[CompId::COMPONENTS_NUMBER]
The COMPONENT_ENUM_STRINGS array contains the string representation of the CompId::Enum values.
Definition base.h:82
constexpr const char * componentEnumString()
Returns the string associated to the COMP_ID value.
Definition base.h:136
The CompId struct enumerates the components that can compose a element or a mesh.
Definition base.h:48
The ComponentString class is used to retrieve the string associated to a COMP_ID value,...
Definition base.h:118
const char * str
The string associated to the COMPONENT_ID.
Definition base.h:122