23#ifndef VCL_MESH_ELEMENTS_EDGE_COMPONENTS_H
24#define VCL_MESH_ELEMENTS_EDGE_COMPONENTS_H
26#include "../components/adjacent_edges.h"
27#include "../components/adjacent_faces.h"
28#include "../components/bit_flags.h"
29#include "../components/color.h"
30#include "../components/custom_components.h"
31#include "../components/mark.h"
32#include "../components/normal.h"
33#include "../components/parent_mesh_pointer.h"
34#include "../components/quality.h"
35#include "../components/vertex_references.h"
55template<
bool INDEXED,
typename ParentEdgeType>
57 comp::AdjacentEdges<INDEXED, ParentEdgeType, -1,
false, ParentEdgeType>;
59template<
bool INDEXED,
typename ParentEdgeType>
60using VerticalAdjacentEdges = comp::
61 AdjacentEdges<INDEXED, ParentEdgeType, -1,
false, ParentEdgeType,
true>;
63template<
bool INDEXED,
typename ParentEdgeType>
64using OptionalAdjacentEdges = comp::AdjacentEdges<
73template<
typename ParentEdgeType>
74using AdjacentEdgeIndices =
75 comp::AdjacentEdges<
true, ParentEdgeType, -1,
false, ParentEdgeType>;
77template<
typename ParentEdgeType>
78using VerticalAdjacentEdgeIndices =
79 comp::AdjacentEdges<
true, ParentEdgeType, -1,
false, ParentEdgeType,
true>;
81template<
typename ParentEdgeType>
82using OptionalAdjacentEdgeIndices = comp::
83 AdjacentEdges<
true, ParentEdgeType, -1,
false, ParentEdgeType,
true,
true>;
85template<
typename ParentEdgeType>
86using AdjacentEdgePointers =
87 comp::AdjacentEdges<
false, ParentEdgeType, -1,
false, ParentEdgeType>;
89template<
typename ParentEdgeType>
90using VerticalAdjacentEdgePointers =
91 comp::AdjacentEdges<
false, ParentEdgeType, -1,
false, ParentEdgeType,
true>;
93template<
typename ParentEdgeType>
94using OptionalAdjacentEdgePointers = comp::
95 AdjacentEdges<
false, ParentEdgeType, -1,
false, ParentEdgeType,
true,
true>;
98template<
bool INDEXED,
typename FaceType,
typename ParentEdgeType>
100 comp::AdjacentFaces<INDEXED, FaceType, -1,
false, ParentEdgeType>;
102template<
bool INDEXED,
typename FaceType,
typename ParentEdgeType>
103using VerticalAdjacentFaces =
104 comp::AdjacentFaces<INDEXED, FaceType, -1,
false, ParentEdgeType,
true>;
106template<
bool INDEXED,
typename FaceType,
typename ParentEdgeType>
107using OptionalAdjacentFaces = comp::
108 AdjacentFaces<INDEXED, FaceType, -1,
false, ParentEdgeType,
true,
true>;
110template<
typename FaceType,
typename ParentEdgeType>
111using AdjacentFaceIndices =
112 comp::AdjacentFaces<
true, FaceType, -1,
false, ParentEdgeType>;
114template<
typename FaceType,
typename ParentEdgeType>
115using VerticalAdjacentFaceIndices =
116 comp::AdjacentFaces<
true, FaceType, -1,
false, ParentEdgeType,
true>;
118template<
typename FaceType,
typename ParentEdgeType>
119using OptionalAdjacentFaceIndices =
120 comp::AdjacentFaces<
true, FaceType, -1,
false, ParentEdgeType,
true,
true>;
122template<
typename FaceType,
typename ParentEdgeType>
123using AdjacentFacePointers =
124 comp::AdjacentFaces<
false, FaceType, -1,
false, ParentEdgeType>;
126template<
typename FaceType,
typename ParentEdgeType>
127using VerticalAdjacentFacePointers =
128 comp::AdjacentFaces<
false, FaceType, -1,
false, ParentEdgeType,
true>;
130template<
typename FaceType,
typename ParentEdgeType>
131using OptionalAdjacentFacePointers =
132 comp::AdjacentFaces<
false, FaceType, -1,
false, ParentEdgeType,
true,
true>;
135using BitFlags = comp::BitFlags<>;
138using Color = comp::Color<>;
140template<
typename ParentEdgeType>
141using VerticalColor = comp::Color<ParentEdgeType>;
143template<
typename ParentEdgeType>
144using OptionalColor = comp::Color<ParentEdgeType, true>;
147template<
typename ParentEdgeType>
148using CustomComponents = comp::CustomComponents<ParentEdgeType>;
151using Mark = comp::Mark<>;
153template<
typename ParentEdgeType>
154using VerticalMark = comp::Mark<ParentEdgeType>;
156template<
typename ParentEdgeType>
157using OptionalMark = comp::Mark<ParentEdgeType, true>;
160template<
typename ScalarType,
int N>
161using Normal = comp::Normal<Point<ScalarType, N>>;
163template<
typename ScalarType>
164using Normal3 = comp::Normal3<ScalarType>;
169template<
typename ScalarType,
int N,
typename ParentEdgeType>
170using VerticalNormal = comp::Normal<Point<ScalarType, N>, ParentEdgeType>;
172template<
typename ScalarType,
typename ParentEdgeType>
173using VerticalNormal3 = comp::Normal3<ScalarType, ParentEdgeType>;
175template<
typename ParentEdgeType>
176using VerticalNormal3f = comp::Normal3f<ParentEdgeType>;
178template<
typename ParentEdgeType>
179using VerticalNormal3d = comp::Normal3d<ParentEdgeType>;
181template<
typename ScalarType,
int N,
typename ParentEdgeType>
182using OptionalNormal = comp::Normal<Point<ScalarType, N>, ParentEdgeType,
true>;
184template<
typename ScalarType,
typename ParentEdgeType>
185using OptionalNormal3 = comp::Normal3<ScalarType, ParentEdgeType, true>;
187template<
typename ParentEdgeType>
188using OptionalNormal3f = comp::Normal3f<ParentEdgeType, true>;
190template<
typename ParentEdgeType>
191using OptionalNormal3d = comp::Normal3d<ParentEdgeType, true>;
194template<
typename MeshType>
195using ParentMeshPointer = comp::ParentMeshPointer<MeshType>;
198template<
typename QualityType>
199using Quality = comp::Quality<QualityType>;
204template<
typename QualityType,
typename ParentEdgeType>
205using VerticalQuality = comp::Quality<QualityType, ParentEdgeType>;
207template<
typename ParentEdgeType>
208using VerticalQualityf = comp::Quality<float, ParentEdgeType>;
210template<
typename ParentEdgeType>
211using VerticalQualityd = comp::Quality<double, ParentEdgeType>;
213template<
typename QualityType,
typename ParentEdgeType>
214using OptionalQuality = comp::Quality<QualityType, ParentEdgeType, true>;
216template<
typename ParentEdgeType>
217using OptionalQualityf = comp::Quality<float, ParentEdgeType, true>;
219template<
typename ParentEdgeType>
220using OptionalQualityd = comp::Quality<double, ParentEdgeType, true>;
223template<
bool INDEXED,
typename VertexType,
typename EdgeType>
224using VertexReferences =
225 comp::VertexReferences<INDEXED, VertexType, 2, EdgeType>;
227template<
typename VertexType,
typename EdgeType>
228using VertexIndices = comp::VertexReferences<true, VertexType, 2, EdgeType>;
230template<
typename VertexType,
typename EdgeType>
231using VertexPointers = comp::VertexReferences<false, VertexType, 2, EdgeType>;
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
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
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