ITK  6.0.0
Insight Toolkit
itkQuadEdgeMeshEulerOperatorFlipEdgeFunction.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkQuadEdgeMeshEulerOperatorFlipEdgeFunction_h
19#define itkQuadEdgeMeshEulerOperatorFlipEdgeFunction_h
20
22#include "ITKQuadEdgeMeshExport.h"
23
24namespace itk
25{
33{
34public:
35 /*** \class EdgeStatusType
36 * \ingroup ITKQuadEdgeMesh
37 * Status of edge
38 */
39 enum class EdgeStatusType : uint8_t
40 {
41 STANDARD_CONFIG = 0,
42 EDGE_NULL,
43 MESH_NULL,
44 NON_INTERNAL_EDGE,
45 NON_TRIANGULAR_RIGHT_FACE,
46 NON_TRIANGULAR_LEFT_FACE,
47 EXISTING_OPPOSITE_EDGE
48 };
49};
50// Define how to print enumerations
51extern ITKQuadEdgeMesh_EXPORT std::ostream &
53
67template <typename TMesh, typename TQEType>
68class ITK_TEMPLATE_EXPORT QuadEdgeMeshEulerOperatorFlipEdgeFunction : public QuadEdgeMeshFunctionBase<TMesh, TQEType *>
69{
70public:
71 ITK_DISALLOW_COPY_AND_MOVE(QuadEdgeMeshEulerOperatorFlipEdgeFunction);
72
78
79 itkNewMacro(Self);
81 itkOverrideGetNameOfClassMacro(QuadEdgeMeshEulerOperatorFlipEdgeFunction);
82
84 using QEType = TQEType;
85
86 using typename Superclass::MeshType;
87 using typename Superclass::OutputType;
88
90#if !defined(ITK_LEGACY_REMOVE)
91 // We need to expose the enum values at the class level
92 // for backwards compatibility
93 static constexpr EdgeStatusEnum STANDARD_CONFIG = EdgeStatusEnum::STANDARD_CONFIG;
94 static constexpr EdgeStatusEnum EDGE_NULL = EdgeStatusEnum::EDGE_NULL;
95 static constexpr EdgeStatusEnum MESH_NULL = EdgeStatusEnum::MESH_NULL;
96 static constexpr EdgeStatusEnum NON_INTERNAL_EDGE = EdgeStatusEnum::NON_INTERNAL_EDGE;
97 static constexpr EdgeStatusEnum NON_TRIANGULAR_RIGHT_FACE = EdgeStatusEnum::NON_TRIANGULAR_RIGHT_FACE;
98 static constexpr EdgeStatusEnum NON_TRIANGULAR_LEFT_FACE = EdgeStatusEnum::NON_TRIANGULAR_LEFT_FACE;
99 static constexpr EdgeStatusEnum EXISTING_OPPOSITE_EDGE = EdgeStatusEnum::EXISTING_OPPOSITE_EDGE;
100#endif
102 virtual OutputType
104
105 // itkGetConstMacro( EdgeStatus, EdgeStatusType );
106
107protected:
110
111 void
112 PrintSelf(std::ostream & os, Indent indent) const override;
113
114 EdgeStatusEnum m_EdgeStatus{ EdgeStatusEnum::STANDARD_CONFIG };
115
116 void
118
121};
122} // end namespace itk
123
124#include "itkQuadEdgeMeshEulerOperatorFlipEdgeFunction.hxx"
125
126#endif
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
Contains enumerations for QuadEdgeMeshEulerOperatorFlipEdgeFunction class.
virtual OutputType Evaluate(QEType *h)
void PrintSelf(std::ostream &os, Indent indent) const override
~QuadEdgeMeshEulerOperatorFlipEdgeFunction() override=default
Base class for mesh function object modifiers.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
std::ostream & operator<<(std::ostream &os, const Array< TValue > &arr)
Definition: itkArray.h:216