23#ifndef VCL_MESH_ELEMENTS_VERTEX_COMPONENTS_H
24#define VCL_MESH_ELEMENTS_VERTEX_COMPONENTS_H
26#include "../components/adjacent_edges.h"
27#include "../components/adjacent_faces.h"
28#include "../components/adjacent_vertices.h"
29#include "../components/bit_flags.h"
30#include "../components/color.h"
31#include "../components/custom_components.h"
32#include "../components/mark.h"
33#include "../components/normal.h"
34#include "../components/parent_mesh_pointer.h"
35#include "../components/position.h"
36#include "../components/principal_curvature.h"
37#include "../components/quality.h"
38#include "../components/tex_coord.h"
117template<
bool INDEXED,
typename EdgeType,
typename ParentVertexType>
119 comp::AdjacentEdges<INDEXED, EdgeType, -1,
false, ParentVertexType>;
121template<
bool INDEXED,
typename EdgeType,
typename ParentVertexType>
122using VerticalAdjacentEdges =
123 comp::AdjacentEdges<INDEXED, EdgeType, -1,
false, ParentVertexType,
true>;
125template<
bool INDEXED,
typename EdgeType,
typename ParentVertexType>
126using OptionalAdjacentEdges = comp::
127 AdjacentEdges<INDEXED, EdgeType, -1,
false, ParentVertexType,
true,
true>;
129template<
typename EdgeType,
typename ParentVertexType>
130using AdjacentEdgeIndices =
131 comp::AdjacentEdges<
true, EdgeType, -1,
false, ParentVertexType>;
133template<
typename EdgeType,
typename ParentVertexType>
134using VerticalAdjacentEdgeIndices =
135 comp::AdjacentEdges<
true, EdgeType, -1,
false, ParentVertexType,
true>;
137template<
typename EdgeType,
typename ParentVertexType>
138using OptionalAdjacentEdgeIndices = comp::
139 AdjacentEdges<
true, EdgeType, -1,
false, ParentVertexType,
true,
true>;
141template<
typename EdgeType,
typename ParentVertexType>
142using AdjacentEdgePointers =
143 comp::AdjacentEdges<
false, EdgeType, -1,
false, ParentVertexType>;
145template<
typename EdgeType,
typename ParentVertexType>
146using VerticalAdjacentEdgePointers =
147 comp::AdjacentEdges<
false, EdgeType, -1,
false, ParentVertexType,
true>;
149template<
typename EdgeType,
typename ParentVertexType>
150using OptionalAdjacentEdgePointers = comp::
151 AdjacentEdges<
false, EdgeType, -1,
false, ParentVertexType,
true,
true>;
154template<
bool INDEXED,
typename FaceType,
typename ParentVertexType>
156 comp::AdjacentFaces<INDEXED, FaceType, -1,
false, ParentVertexType>;
158template<
bool INDEXED,
typename FaceType,
typename ParentVertexType>
159using VerticalAdjacentFaces =
160 comp::AdjacentFaces<INDEXED, FaceType, -1,
false, ParentVertexType,
true>;
162template<
bool INDEXED,
typename FaceType,
typename ParentVertexType>
163using OptionalAdjacentFaces = comp::
164 AdjacentFaces<INDEXED, FaceType, -1,
false, ParentVertexType,
true,
true>;
166template<
typename FaceType,
typename ParentVertexType>
167using AdjacentFaceIndices =
168 comp::AdjacentFaces<
true, FaceType, -1,
false, ParentVertexType>;
170template<
typename FaceType,
typename ParentVertexType>
171using VerticalAdjacentFaceIndices =
172 comp::AdjacentFaces<
true, FaceType, -1,
false, ParentVertexType,
true>;
174template<
typename FaceType,
typename ParentVertexType>
175using OptionalAdjacentFaceIndices = comp::
176 AdjacentFaces<
true, FaceType, -1,
false, ParentVertexType,
true,
true>;
178template<
typename FaceType,
typename ParentVertexType>
179using AdjacentFacePointers =
180 comp::AdjacentFaces<
false, FaceType, -1,
false, ParentVertexType>;
182template<
typename FaceType,
typename ParentVertexType>
183using VerticalAdjacentFacePointers =
184 comp::AdjacentFaces<
false, FaceType, -1,
false, ParentVertexType,
true>;
186template<
typename FaceType,
typename ParentVertexType>
187using OptionalAdjacentFacePointers = comp::
188 AdjacentFaces<
false, FaceType, -1,
false, ParentVertexType,
true,
true>;
191template<
bool INDEXED,
typename ParentVertexType>
192using AdjacentVertices =
193 comp::AdjacentVertices<INDEXED, ParentVertexType, ParentVertexType>;
195template<
bool INDEXED,
typename ParentVertexType>
196using VerticalAdjacentVertices =
197 comp::AdjacentVertices<INDEXED, ParentVertexType, ParentVertexType, true>;
199template<
bool INDEXED,
typename ParentVertexType>
200using OptionalAdjacentVertices = comp::
201 AdjacentVertices<INDEXED, ParentVertexType, ParentVertexType, true, true>;
203template<
typename ParentVertexType>
204using AdjacentVertexIndices =
205 comp::AdjacentVertices<true, ParentVertexType, ParentVertexType>;
207template<
typename ParentVertexType>
208using VerticalAdjacentVertexIndices =
209 comp::AdjacentVertices<true, ParentVertexType, ParentVertexType, true>;
211template<
typename ParentVertexType>
212using OptionalAdjacentVertexIndices = comp::
213 AdjacentVertices<true, ParentVertexType, ParentVertexType, true, true>;
215template<
typename ParentVertexType>
216using AdjacentVertexPointers =
217 comp::AdjacentVertices<false, ParentVertexType, ParentVertexType>;
219template<
typename ParentVertexType>
220using VerticalAdjacentVertexPointers =
221 comp::AdjacentVertices<false, ParentVertexType, ParentVertexType, true>;
223template<
typename ParentVertexType>
224using OptionalAdjacentVertexPointers = comp::
225 AdjacentVertices<false, ParentVertexType, ParentVertexType, true, true>;
228using BitFlags = comp::BitFlags<>;
230template<
typename ParentVertexType>
231using VerticalBitFlags = comp::BitFlags<ParentVertexType>;
234using Color = comp::Color<>;
236template<
typename ParentVertexType>
237using VerticalColor = comp::Color<ParentVertexType>;
239template<
typename ParentVertexType>
240using OptionalColor = comp::Color<ParentVertexType, true>;
243template<
typename ParentVertexType>
244using CustomComponents = comp::CustomComponents<ParentVertexType>;
247using Mark = comp::Mark<>;
249template<
typename ParentVertexType>
250using VerticalMark = comp::Mark<ParentVertexType>;
252template<
typename ParentVertexType>
253using OptionalMark = comp::Mark<ParentVertexType, true>;
256template<
typename ScalarType,
int N>
257using Normal = comp::Normal<Point<ScalarType, N>>;
259template<
typename ScalarType>
260using Normal3 = comp::Normal3<ScalarType>;
262using Normal3f = comp::Normal3f<>;
263using Normal3d = comp::Normal3d<>;
265template<
typename ScalarType,
int N,
typename ParentVertexType>
266using VerticalNormal = comp::Normal<Point<ScalarType, N>, ParentVertexType>;
268template<
typename ScalarType,
typename ParentVertexType>
269using VerticalNormal3 = comp::Normal3<ScalarType, ParentVertexType>;
271template<
typename ParentVertexType>
272using VerticalNormal3f = comp::Normal3f<ParentVertexType>;
274template<
typename ParentVertexType>
275using VerticalNormal3d = comp::Normal3d<ParentVertexType>;
277template<
typename ScalarType,
int N,
typename ParentVertexType>
278using OptionalNormal =
279 comp::Normal<Point<ScalarType, N>, ParentVertexType,
true>;
281template<
typename ScalarType,
typename ParentVertexType>
282using OptionalNormal3 = comp::Normal3<ScalarType, ParentVertexType, true>;
284template<
typename ParentVertexType>
285using OptionalNormal3f = comp::Normal3f<ParentVertexType, true>;
287template<
typename ParentVertexType>
288using OptionalNormal3d = comp::Normal3d<ParentVertexType, true>;
291template<
typename MeshType>
292using ParentMeshPointer = comp::ParentMeshPointer<MeshType>;
295template<
typename ScalarType,
int N>
296using Position = comp::Position<Point<ScalarType, N>>;
298template<
typename ScalarType>
299using Position3 = comp::Position3<ScalarType>;
301using Position3f = comp::Position3f<>;
302using Position3d = comp::Position3d<>;
304template<
typename ScalarType,
int N,
typename ParentVertexType>
305using VerticalPosition = comp::Position<Point<ScalarType, N>, ParentVertexType>;
307template<
typename ScalarType,
typename ParentVertexType>
308using VerticalPosition3 = comp::Position3<ScalarType, ParentVertexType>;
310template<
typename ParentVertexType>
311using VerticalPosition3f = comp::Position3f<ParentVertexType>;
313template<
typename ParentVertexType>
314using VerticalPosition3d = comp::Position3d<ParentVertexType>;
317template<
typename ScalarType>
318using PrincipalCurvature = comp::PrincipalCurvature<ScalarType>;
320using PrincipalCurvaturef = comp::PrincipalCurvaturef<>;
321using PrincipalCurvatured = comp::PrincipalCurvatured<>;
323template<
typename ScalarType,
typename ParentVertexType>
324using VerticalPrincipalCurvature =
325 comp::PrincipalCurvature<ScalarType, ParentVertexType>;
327template<
typename ParentVertexType>
328using VerticalPrincipalCurvaturef = comp::PrincipalCurvaturef<ParentVertexType>;
329template<
typename ParentVertexType>
330using VerticalPrincipalCurvatured = comp::PrincipalCurvatured<ParentVertexType>;
332template<
typename ScalarType,
typename ParentVertexType>
333using OptionalPrincipalCurvature =
334 comp::PrincipalCurvature<ScalarType, ParentVertexType, true>;
336template<
typename ParentVertexType>
337using OptionalPrincipalCurvaturef =
338 comp::PrincipalCurvaturef<ParentVertexType, true>;
339template<
typename ParentVertexType>
340using OptionalPrincipalCurvatured =
341 comp::PrincipalCurvatured<ParentVertexType, true>;
344template<
typename QualityType>
345using Quality = comp::Quality<QualityType>;
347using Qualityf = comp::Qualityf<>;
348using Qualityd = comp::Qualityd<>;
350template<
typename QualityType,
typename FaceType>
351using VerticalQuality = comp::Quality<QualityType, FaceType>;
353template<
typename FaceType>
354using VerticalQualityf = comp::Quality<float, FaceType>;
356template<
typename FaceType>
357using VerticalQualityd = comp::Quality<double, FaceType>;
359template<
typename QualityType,
typename ParentVertexType>
360using OptionalQuality = comp::Quality<QualityType, ParentVertexType, true>;
362template<
typename ParentVertexType>
363using OptionalQualityf = comp::Quality<float, ParentVertexType, true>;
365template<
typename ParentVertexType>
366using OptionalQualityd = comp::Quality<double, ParentVertexType, true>;
369template<
typename ScalarType>
370using TexCoord = comp::TexCoord<ScalarType>;
372using TexCoordf = comp::TexCoordf<>;
373using TexCoordd = comp::TexCoordd<>;
375template<
typename ScalarType,
typename ParentVertexType>
376using VerticalTexCoord = comp::TexCoord<ScalarType, ParentVertexType>;
378template<
typename ParentVertexType>
379using VerticalTexCoordf = comp::TexCoord<float, ParentVertexType>;
381template<
typename ParentVertexType>
382using VerticalTexCoordd = comp::TexCoord<double, ParentVertexType>;
384template<
typename ScalarType,
typename ParentVertexType>
385using OptionalTexCoord = comp::TexCoord<ScalarType, ParentVertexType, true>;
387template<
typename ParentVertexType>
388using OptionalTexCoordf = comp::TexCoord<float, ParentVertexType, true>;
390template<
typename ParentVertexType>
391using OptionalTexCoordd = comp::TexCoord<double, ParentVertexType, true>;
A concept that checks whether a type T (that should be a Element) has the AdjacentEdges component (in...
Definition adjacent_edges.h:668
A concept that checks whether a type T (that should be a Element) has the AdjacentFaces component (in...
Definition adjacent_faces.h:672
A concept that checks whether a type T (that should be a Element) has the AdjacentVertices component ...
Definition adjacent_vertices.h:655
A concept that checks whether a type T (that should be an Element) has the one of the BitFlags compon...
Definition bit_flags.h:101
A concept that checks whether a type T (that should be a Element or a Mesh) has the Color component (...
Definition color.h:132
A concept that checks whether a type T (that should be an Element or a Mesh) has the CustomComponents...
Definition custom_components.h:316
A concept that checks whether a type T (that should be a Element or a Mesh) has the Mark component (i...
Definition mark.h:198
A concept that checks whether a type T (that should be a Element) has the Normal component (inherits ...
Definition normal.h:133
A concept that checks whether a type T (that should be a Element) has the AdjacentEdges component (in...
Definition adjacent_edges.h:682
A concept that checks whether a type T (that should be a Element) has the AdjacentFaces component (in...
Definition adjacent_faces.h:686
A concept that checks whether a type T (that should be a Element) has the AdjacentVertices component ...
Definition adjacent_vertices.h:669
A concept that checks whether a type T (that should be a Element or a Mesh) has the Color component (...
Definition color.h:144
A concept that checks whether a type T (that should be a Element or a Mesh) has the Mark component (i...
Definition mark.h:210
A concept that checks whether a type T (that should be a Element) has the Normal component (inherits ...
Definition normal.h:146
A concept that checks whether a type T (that should be a Element) has the PrincipalCurvature componen...
Definition principal_curvature.h:159
A concept that checks whether a type T (that should be a Element or a Mesh) has the Quality component...
Definition quality.h:144
A concept that checks whether a type T (that should be a Element) has the TexCoord component (inherit...
Definition tex_coord.h:145
A concept that checks whether a type T (that should be a Element) has the Position component (inherit...
Definition position.h:127
A concept that checks whether a type T (that should be a Element) has the PrincipalCurvature componen...
Definition principal_curvature.h:145
A concept that checks whether a type T (that should be a Element or a Mesh) has the Quality component...
Definition quality.h:132
A concept that checks whether a type T (that should be a Element) has the TexCoord component (inherit...
Definition tex_coord.h:132
Definition vertex_components.h:67
Definition vertex_components.h:71
Definition vertex_components.h:75
Definition vertex_components.h:79
Definition vertex_components.h:81
Definition vertex_components.h:85
Definition vertex_components.h:89
Definition vertex_components.h:93
Definition vertex_components.h:69
Definition vertex_components.h:73
Definition vertex_components.h:77
Definition vertex_components.h:83
Definition vertex_components.h:91
Definition vertex_components.h:95
Definition vertex_components.h:99
Definition vertex_components.h:103
Definition vertex_components.h:107
Definition vertex_components.h:87
Definition vertex_components.h:97
Definition vertex_components.h:101
Definition vertex_components.h:105