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/coordinate.h"
32#include "../components/custom_components.h"
33#include "../components/mark.h"
34#include "../components/normal.h"
35#include "../components/parent_mesh_pointer.h"
36#include "../components/principal_curvature.h"
37#include "../components/quality.h"
38#include "../components/tex_coord.h"
58template<
bool INDEXED,
typename EdgeType,
typename ParentVertexType>
60 comp::AdjacentEdges<INDEXED, EdgeType, -1,
false, ParentVertexType>;
62template<
bool INDEXED,
typename EdgeType,
typename ParentVertexType>
63using VerticalAdjacentEdges =
64 comp::AdjacentEdges<INDEXED, EdgeType, -1,
false, ParentVertexType,
true>;
66template<
bool INDEXED,
typename EdgeType,
typename ParentVertexType>
67using OptionalAdjacentEdges = comp::
68 AdjacentEdges<INDEXED, EdgeType, -1,
false, ParentVertexType,
true,
true>;
70template<
typename EdgeType,
typename ParentVertexType>
71using AdjacentEdgeIndices =
72 comp::AdjacentEdges<
true, EdgeType, -1,
false, ParentVertexType>;
74template<
typename EdgeType,
typename ParentVertexType>
75using VerticalAdjacentEdgeIndices =
76 comp::AdjacentEdges<
true, EdgeType, -1,
false, ParentVertexType,
true>;
78template<
typename EdgeType,
typename ParentVertexType>
79using OptionalAdjacentEdgeIndices = comp::
80 AdjacentEdges<
true, EdgeType, -1,
false, ParentVertexType,
true,
true>;
82template<
typename EdgeType,
typename ParentVertexType>
83using AdjacentEdgePointers =
84 comp::AdjacentEdges<
false, EdgeType, -1,
false, ParentVertexType>;
86template<
typename EdgeType,
typename ParentVertexType>
87using VerticalAdjacentEdgePointers =
88 comp::AdjacentEdges<
false, EdgeType, -1,
false, ParentVertexType,
true>;
90template<
typename EdgeType,
typename ParentVertexType>
91using OptionalAdjacentEdgePointers = comp::
92 AdjacentEdges<
false, EdgeType, -1,
false, ParentVertexType,
true,
true>;
95template<
bool INDEXED,
typename FaceType,
typename ParentVertexType>
97 comp::AdjacentFaces<INDEXED, FaceType, -1,
false, ParentVertexType>;
99template<
bool INDEXED,
typename FaceType,
typename ParentVertexType>
100using VerticalAdjacentFaces =
101 comp::AdjacentFaces<INDEXED, FaceType, -1,
false, ParentVertexType,
true>;
103template<
bool INDEXED,
typename FaceType,
typename ParentVertexType>
104using OptionalAdjacentFaces = comp::
105 AdjacentFaces<INDEXED, FaceType, -1,
false, ParentVertexType,
true,
true>;
107template<
typename FaceType,
typename ParentVertexType>
108using AdjacentFaceIndices =
109 comp::AdjacentFaces<
true, FaceType, -1,
false, ParentVertexType>;
111template<
typename FaceType,
typename ParentVertexType>
112using VerticalAdjacentFaceIndices =
113 comp::AdjacentFaces<
true, FaceType, -1,
false, ParentVertexType,
true>;
115template<
typename FaceType,
typename ParentVertexType>
116using OptionalAdjacentFaceIndices = comp::
117 AdjacentFaces<
true, FaceType, -1,
false, ParentVertexType,
true,
true>;
119template<
typename FaceType,
typename ParentVertexType>
120using AdjacentFacePointers =
121 comp::AdjacentFaces<
false, FaceType, -1,
false, ParentVertexType>;
123template<
typename FaceType,
typename ParentVertexType>
124using VerticalAdjacentFacePointers =
125 comp::AdjacentFaces<
false, FaceType, -1,
false, ParentVertexType,
true>;
127template<
typename FaceType,
typename ParentVertexType>
128using OptionalAdjacentFacePointers = comp::
129 AdjacentFaces<
false, FaceType, -1,
false, ParentVertexType,
true,
true>;
132template<
bool INDEXED,
typename ParentVertexType>
133using AdjacentVertices =
134 comp::AdjacentVertices<INDEXED, ParentVertexType, ParentVertexType>;
136template<
bool INDEXED,
typename ParentVertexType>
137using VerticalAdjacentVertices =
138 comp::AdjacentVertices<INDEXED, ParentVertexType, ParentVertexType, true>;
140template<
bool INDEXED,
typename ParentVertexType>
141using OptionalAdjacentVertices = comp::
142 AdjacentVertices<INDEXED, ParentVertexType, ParentVertexType, true, true>;
144template<
typename ParentVertexType>
145using AdjacentVertexIndices =
146 comp::AdjacentVertices<true, ParentVertexType, ParentVertexType>;
148template<
typename ParentVertexType>
149using VerticalAdjacentVertexIndices =
150 comp::AdjacentVertices<true, ParentVertexType, ParentVertexType, true>;
152template<
typename ParentVertexType>
153using OptionalAdjacentVertexIndices = comp::
154 AdjacentVertices<true, ParentVertexType, ParentVertexType, true, true>;
156template<
typename ParentVertexType>
157using AdjacentVertexPointers =
158 comp::AdjacentVertices<false, ParentVertexType, ParentVertexType>;
160template<
typename ParentVertexType>
161using VerticalAdjacentVertexPointers =
162 comp::AdjacentVertices<false, ParentVertexType, ParentVertexType, true>;
164template<
typename ParentVertexType>
165using OptionalAdjacentVertexPointers = comp::
166 AdjacentVertices<false, ParentVertexType, ParentVertexType, true, true>;
169using BitFlags = comp::BitFlags<>;
171template<
typename ParentVertexType>
172using VerticalBitFlags = comp::BitFlags<ParentVertexType>;
175using Color = comp::Color<>;
177template<
typename ParentVertexType>
178using VerticalColor = comp::Color<ParentVertexType>;
180template<
typename ParentVertexType>
181using OptionalColor = comp::Color<ParentVertexType, true>;
184template<
typename ScalarType,
int N>
185using Coordinate = comp::Coordinate<Point<ScalarType, N>>;
187template<
typename ScalarType>
193template<
typename ScalarType,
int N,
typename ParentVertexType>
194using VerticalCoordinate =
195 comp::Coordinate<Point<ScalarType, N>, ParentVertexType>;
197template<
typename ScalarType,
typename ParentVertexType>
198using VerticalCoordinate3 = comp::Coordinate3<ScalarType, ParentVertexType>;
200template<
typename ParentVertexType>
201using VerticalCoordinate3f = comp::Coordinate3f<ParentVertexType>;
203template<
typename ParentVertexType>
204using VerticalCoordinate3d = comp::Coordinate3d<ParentVertexType>;
207template<
typename ParentVertexType>
208using CustomComponents = comp::CustomComponents<ParentVertexType>;
211using Mark = comp::Mark<>;
213template<
typename ParentVertexType>
214using VerticalMark = comp::Mark<ParentVertexType>;
216template<
typename ParentVertexType>
217using OptionalMark = comp::Mark<ParentVertexType, true>;
220template<
typename ScalarType,
int N>
221using Normal = comp::Normal<Point<ScalarType, N>>;
223template<
typename ScalarType>
224using Normal3 = comp::Normal3<ScalarType>;
229template<
typename ScalarType,
int N,
typename ParentVertexType>
230using VerticalNormal = comp::Normal<Point<ScalarType, N>, ParentVertexType>;
232template<
typename ScalarType,
typename ParentVertexType>
233using VerticalNormal3 = comp::Normal3<ScalarType, ParentVertexType>;
235template<
typename ParentVertexType>
236using VerticalNormal3f = comp::Normal3f<ParentVertexType>;
238template<
typename ParentVertexType>
239using VerticalNormal3d = comp::Normal3d<ParentVertexType>;
241template<
typename ScalarType,
int N,
typename ParentVertexType>
242using OptionalNormal =
243 comp::Normal<Point<ScalarType, N>, ParentVertexType,
true>;
245template<
typename ScalarType,
typename ParentVertexType>
246using OptionalNormal3 = comp::Normal3<ScalarType, ParentVertexType, true>;
248template<
typename ParentVertexType>
249using OptionalNormal3f = comp::Normal3f<ParentVertexType, true>;
251template<
typename ParentVertexType>
252using OptionalNormal3d = comp::Normal3d<ParentVertexType, true>;
255template<
typename MeshType>
256using ParentMeshPointer = comp::ParentMeshPointer<MeshType>;
259template<
typename ScalarType>
260using PrincipalCurvature = comp::PrincipalCurvature<ScalarType>;
265template<
typename ScalarType,
typename ParentVertexType>
266using VerticalPrincipalCurvature =
267 comp::PrincipalCurvature<ScalarType, ParentVertexType>;
269template<
typename ParentVertexType>
270using VerticalPrincipalCurvaturef = comp::PrincipalCurvaturef<ParentVertexType>;
271template<
typename ParentVertexType>
272using VerticalPrincipalCurvatured = comp::PrincipalCurvatured<ParentVertexType>;
274template<
typename ScalarType,
typename ParentVertexType>
275using OptionalPrincipalCurvature =
276 comp::PrincipalCurvature<ScalarType, ParentVertexType, true>;
278template<
typename ParentVertexType>
279using OptionalPrincipalCurvaturef =
280 comp::PrincipalCurvaturef<ParentVertexType, true>;
281template<
typename ParentVertexType>
282using OptionalPrincipalCurvatured =
283 comp::PrincipalCurvatured<ParentVertexType, true>;
286template<
typename QualityType>
287using Quality = comp::Quality<QualityType>;
292template<
typename QualityType,
typename FaceType>
293using VerticalQuality = comp::Quality<QualityType, FaceType>;
295template<
typename FaceType>
296using VerticalQualityf = comp::Quality<float, FaceType>;
298template<
typename FaceType>
299using VerticalQualityd = comp::Quality<double, FaceType>;
301template<
typename QualityType,
typename ParentVertexType>
302using OptionalQuality = comp::Quality<QualityType, ParentVertexType, true>;
304template<
typename ParentVertexType>
305using OptionalQualityf = comp::Quality<float, ParentVertexType, true>;
307template<
typename ParentVertexType>
308using OptionalQualityd = comp::Quality<double, ParentVertexType, true>;
311template<
typename ScalarType>
312using TexCoord = comp::TexCoord<ScalarType>;
317template<
typename ScalarType,
typename ParentVertexType>
318using VerticalTexCoord = comp::TexCoord<ScalarType, ParentVertexType>;
320template<
typename ParentVertexType>
321using VerticalTexCoordf = comp::TexCoord<float, ParentVertexType>;
323template<
typename ParentVertexType>
324using VerticalTexCoordd = comp::TexCoord<double, ParentVertexType>;
326template<
typename ScalarType,
typename ParentVertexType>
327using OptionalTexCoord = comp::TexCoord<ScalarType, ParentVertexType, true>;
329template<
typename ParentVertexType>
330using OptionalTexCoordf = comp::TexCoord<float, ParentVertexType, true>;
332template<
typename ParentVertexType>
333using OptionalTexCoordd = comp::TexCoord<double, ParentVertexType, true>;
Normal< Point3< Scalar >, ElementType, OPT > Normal3
The Normal3 class is an alias of the Normal component that uses 3 dimensional Points.
Definition normal.h:156
TexCoord< float, ElementType, OPT > TexCoordf
Definition tex_coord.h:154
Coordinate3< double, ElementType, OPT > Coordinate3d
The Coordinate3d class is an alias of the Coordinate component that uses 3 dimensional Points with do...
Definition coordinate.h:183
PrincipalCurvature< float, ElementType, OPT > PrincipalCurvaturef
Definition principal_curvature.h:167
TexCoord< double, ElementType, OPT > TexCoordd
Definition tex_coord.h:169
Coordinate3< float, ElementType, OPT > Coordinate3f
The Coordinate3f class is an alias of the Coordinate component that uses 3 dimensional Points with fl...
Definition coordinate.h:168
Coordinate< Point3< Scalar >, ElementType, OPT > Coordinate3
The Coordinate3 class is an alias of the Coordinate component that uses 3 dimensional Points.
Definition coordinate.h:153
Normal3< double, ElementType, OPT > Normal3d
The Normal3d class is an alias of the Normal component that uses 3 dimensional Points with double pre...
Definition normal.h:186
Quality< float, ElementType, OPT > Qualityf
Definition quality.h:153
PrincipalCurvature< double, ElementType, OPT > PrincipalCurvatured
Definition principal_curvature.h:182
Normal3< float, ElementType, OPT > Normal3f
The Normal3f class is an alias of the Normal component that uses 3 dimensional Points with float prec...
Definition normal.h:171
Quality< double, ElementType, OPT > Qualityd
Definition quality.h:168