#include <itkGeometricalQuadEdge.h>
This class extends the QuadEdge by adding a reference to the Origin.
The class is implemented in such a way that it can generate its own Dual. In a physical edge, there will be four GeometricalQuadEdge. Two of them will be Primal and two will be Dual. The Primal ones are parallel to the physical edge and their origins relate to the mesh points. The Dual ones are orthogonal to the physical edge and their origins relate to the faces at each side of the physical edge.
The only purpose of the last parameter of the template is to guarantee that the two types GeometricalQuadEdge and GeometricalQuadEdge::Dual are always different (in the sense that their typeid() are different). If we only had the four first parameters and assume that GeometricalQuadEdge gets instantiated with types such that TVRef = TFRef and TPrimalData = TDualData then this instantiation GeometricalQuadEdge and GeometricalQuadEdge::Dual would be the same types (this is simply due to the very definition of GeometricalQuadEdge::Dual). This would in turn make the types QEType and QEDual of QuadEdgeMesh identical and would prevent any algorithm requiring to distinguish those types (e.g. by relying on a dynamic_cast<QEType*>) to be effective. This justifies the existence of last dummy template parameter and its default value.
This implementation was contributed as a paper to the Insight Journal https://doi.org/10.54294/4mx7kk
Definition at line 61 of file itkGeometricalQuadEdge.h.
Public Types | |
using | ConstIteratorGeom = QuadEdgeMeshConstIteratorGeom<Self> |
using | DualDataType = TDualData |
using | DualOriginRefType = TFRef |
using | DualType = GeometricalQuadEdge<TFRef, TVRef, TDualData, TPrimalData, !PrimalDual> |
using | IteratorGeom = QuadEdgeMeshIteratorGeom<Self> |
using | LineCellIdentifier = TFRef |
using | OriginRefType = TVRef |
using | PrimalDataType = TPrimalData |
using | RawPointer = Self * |
using | Self = GeometricalQuadEdge |
using | Superclass = QuadEdge |
![]() | |
using | ConstIterator = QuadEdgeMeshConstIterator<Self> |
using | Iterator = QuadEdgeMeshIterator<Self> |
using | Self = QuadEdge |
Static Public Attributes | |
static const OriginRefType | m_NoPoint |
Protected Attributes | |
PrimalDataType | m_Data {} |
bool | m_DataSet { false } |
LineCellIdentifier | m_LineCellIdent {} |
OriginRefType | m_Origin {} |
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::ConstIteratorGeom = QuadEdgeMeshConstIteratorGeom<Self> |
Definition at line 88 of file itkGeometricalQuadEdge.h.
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::DualDataType = TDualData |
Definition at line 80 of file itkGeometricalQuadEdge.h.
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::DualOriginRefType = TFRef |
Definition at line 78 of file itkGeometricalQuadEdge.h.
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::DualType = GeometricalQuadEdge<TFRef, TVRef, TDualData, TPrimalData, !PrimalDual> |
Dual type, basically the same type with swapped template parameters.
Definition at line 74 of file itkGeometricalQuadEdge.h.
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IteratorGeom = QuadEdgeMeshIteratorGeom<Self> |
Iterator types.
Definition at line 87 of file itkGeometricalQuadEdge.h.
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::LineCellIdentifier = TFRef |
Definition at line 83 of file itkGeometricalQuadEdge.h.
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::OriginRefType = TVRef |
Input template parameters & values convenient renaming.
Definition at line 77 of file itkGeometricalQuadEdge.h.
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::PrimalDataType = TPrimalData |
Definition at line 79 of file itkGeometricalQuadEdge.h.
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::RawPointer = Self * |
Definition at line 67 of file itkGeometricalQuadEdge.h.
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::Self = GeometricalQuadEdge |
Hierarchy type alias.
Definition at line 65 of file itkGeometricalQuadEdge.h.
using itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::Superclass = QuadEdge |
Definition at line 66 of file itkGeometricalQuadEdge.h.
itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::GeometricalQuadEdge | ( | ) |
|
default |
|
default |
|
overridedefault |
void itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::Disconnect | ( | ) |
|
inline |
Get methods.
Definition at line 185 of file itkGeometricalQuadEdge.h.
|
inline |
Extra data get methods.
Definition at line 257 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 357 of file itkGeometricalQuadEdge.h.
|
inline |
Get methods.
Definition at line 195 of file itkGeometricalQuadEdge.h.
Self * itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::GetNextBorderEdgeWithUnsetLeft | ( | Self * | edgeTest = nullptr | ) |
|
inline |
Get methods.
Definition at line 180 of file itkGeometricalQuadEdge.h.
|
inline |
Extra data get methods.
Definition at line 252 of file itkGeometricalQuadEdge.h.
|
inline |
Get methods.
Definition at line 190 of file itkGeometricalQuadEdge.h.
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::InsertAfterNextBorderEdgeWithUnsetLeft | ( | Self * | isol, |
Self * | hint = nullptr ) |
|
inline |
Definition at line 291 of file itkGeometricalQuadEdge.h.
|
inline |
Disconnection methods.
Definition at line 338 of file itkGeometricalQuadEdge.h.
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsDestinationSet | ( | ) | const |
|
inline |
Disconnection methods.
Definition at line 343 of file itkGeometricalQuadEdge.h.
|
inline |
Boolean accessors.
Definition at line 270 of file itkGeometricalQuadEdge.h.
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsInLnextRing | ( | Self * | ) |
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsInOnextRing | ( | Self * | ) |
|
inline |
Definition at line 301 of file itkGeometricalQuadEdge.h.
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsLeftSet | ( | ) | const |
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsLnextOfTriangle | ( | ) |
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsLnextSharingSameFace | ( | int | maxSize = 100 | ) |
|
inline |
Disconnection methods.
Definition at line 333 of file itkGeometricalQuadEdge.h.
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsOriginInternal | ( | ) | const |
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsOriginSet | ( | ) | const |
Boolean accessors.
|
inline |
Boolean accessors.
Definition at line 265 of file itkGeometricalQuadEdge.h.
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsRightSet | ( | ) | const |
|
inline |
Definition at line 280 of file itkGeometricalQuadEdge.h.
itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::itkQEAccessorsMacro | ( | Superclass | , |
Self | , | ||
DualType | ) |
QE macros.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
inline |
Basic iterators methods.
|
default |
|
default |
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::ReorderOnextRingBeforeAddFace | ( | Self * | second | ) |
|
inline |
Definition at line 127 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 233 of file itkGeometricalQuadEdge.h.
|
inline |
Extra data set methods.
Definition at line 222 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 352 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 139 of file itkGeometricalQuadEdge.h.
bool itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::SetLnextRingWithSameLeftFace | ( | const DualOriginRefType | faceGeom, |
int | maxSize = 100 ) |
Set the Left() of all the edges in the Lnext() ring of "this" with the same given geometrical information.
faceGeom | Looks at most maxSize edges in the Lnext() ring. |
maxSize | Sets at most maxSize edges in the Lnext() ring. |
|
inline |
Set methods.
Definition at line 121 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 228 of file itkGeometricalQuadEdge.h.
|
inline |
Extra data set methods.
Definition at line 216 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 133 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 160 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 244 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 170 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 155 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 239 of file itkGeometricalQuadEdge.h.
|
inline |
Definition at line 165 of file itkGeometricalQuadEdge.h.
|
protected |
Definition at line 368 of file itkGeometricalQuadEdge.h.
|
protected |
Definition at line 369 of file itkGeometricalQuadEdge.h.
|
protected |
Definition at line 370 of file itkGeometricalQuadEdge.h.
|
static |
Definition at line 364 of file itkGeometricalQuadEdge.h.
|
protected |
Definition at line 367 of file itkGeometricalQuadEdge.h.