23#ifndef VCL_MESH_COMPONENTS_BASE_BASE_H
24#define VCL_MESH_COMPONENTS_BASE_BASE_H
26#include <vclib/base.h>
84 "BitFlags",
"Position",
87 "MaterialIndex",
"PrincipalCurvature",
88 "Tangent",
"TexCoord",
89 "VertexPointers",
"AdjacentEdges",
90 "AdjacentFaces",
"AdjacentVertices",
91 "WedgeColors",
"WedgeTexCoords",
92 "BoundingBox",
"Name",
93 "Materials",
"TransformMatrix",
108template<u
int COMP_ID>
127template<u
int COMP_ID>
132 "Invalid ComponentIDEnum. You should specialize the 'ComponentString' "
133 "struct with your COMP_ID value.");
151template<uint COMP_ID,
typename... Components>
152struct ComponentOfTypePred
155 template<
typename Comp>
158 static constexpr bool value = Comp::COMPONENT_ID == COMP_ID;
164 typename FilterTypesByCondition<SameCompPred, Components...>::type;
165 static constexpr bool value = NumberOfTypes<type>::value == 1;
169template<uint COMP_ID,
typename... Components>
170struct ComponentOfTypePred<COMP_ID, TypeWrapper<Components...>> :
171 public ComponentOfTypePred<COMP_ID, Components...>
184template<uint COMP_ID,
typename... Components>
186 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:83
constexpr const char * componentEnumString()
Returns the string associated to the COMP_ID value.
Definition base.h:128
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:110
const char * str
The string associated to the COMPONENT_ID.
Definition base.h:114