18 #ifndef itkAutomaticTopologyMeshSource_h
19 #define itkAutomaticTopologyMeshSource_h
23 #include "itksys/hash_map.hxx"
110 template<
typename TOutputMesh >
146 typedef itksys::hash_map<
153 MeshType::PointDimension);
155 MeshType::MaxTopologicalDimension);
342 IdType size = identifierArray.
Size();
344 std::sort( identifierArray.begin(), identifierArray.end() );
347 IdType *
id = &identifierArray[0];
352 hash = ( hash << 7 ) | ( hash >> 25 );
369 IdType size1 = identifierArray1.
Size();
370 IdType size2 = identifierArray2.
Size();
372 if ( size1 != size2 )
377 std::sort( identifierArray1.begin(), identifierArray1.end() );
378 std::sort( identifierArray2.begin(), identifierArray2.end() );
380 return ( identifierArray1 == identifierArray2 );
393 void operator=(const
Self &) ITK_DELETE_FUNCTION;
395 typedef itksys::hash_map<
398 IdentifierArrayHashFunction,
407 #ifndef ITK_MANUAL_INSTANTIATION
408 #include "itkAutomaticTopologyMeshSource.hxx"
411 #endif // itkAutomaticTopologyMeshSource_h
~AutomaticTopologyMeshSource()
Light weight base class for most itk classes.
IdentifierType AddHexahedron(const IdentifierArrayType &pointIds)
IdentifierType AddPoint(const PointType &p0)
static const unsigned int PointDimension
IdentifierType AddTriangle(const IdentifierArrayType &pointIds)
Convenience class for generating meshes.
SmartPointer< const Self > ConstPointer
typedef::itk::TetrahedronCell< CellType > TetrahedronCell
MeshSource< TOutputMesh > Superclass
typedef::itk::LineCell< CellType > LineCell
MeshType::Pointer MeshPointer
typedef::itk::QuadrilateralCell< CellType > QuadrilateralCell
void GenerateData() override
typedef::itk::TriangleCell< CellType > TriangleCell
SmartPointer< Self > Pointer
CellHashMap m_CellsHashTable
Base class for all process objects that output mesh data.
PointType::CoordRepType CoordinateType
SizeValueType IdentifierType
MeshType::PointType PointType
static const unsigned int MaxTopologicalDimension
IdentifierType operator()(Array< IdentifierType > identifierArray) const
PointHashMap m_PointsHashTable
AutomaticTopologyMeshSource Self
IdentifierType AddQuadrilateral(const IdentifierArrayType &pointIds)
itksys::hash_map< PointType, IdentifierType, StructHashFunction< PointHashType > > PointHashMap
IdentifierType AddLine(const IdentifierArrayType &pointIds)
CellType::CellAutoPointer CellAutoPointer
typedef::itk::HexahedronCell< CellType > HexahedronCell
typedef::itk::VertexCell< CellType > VertexCell
bool operator()(Array< IdentifierType > identifierArray1, Array< IdentifierType > identifierArray2) const
SizeValueType Size(void) const
MeshType::CellType CellType
Generic hash function for an arbitrary struct (or class).
MeshType::PointHashType PointHashType
IdentifierType AddTetrahedron(const IdentifierArrayType &pointIds)
unsigned long IdentifierType
itksys::hash_map< Array< IdentifierType >, IdentifierType, IdentifierArrayHashFunction, IdentifierArrayEqualsFunction > CellHashMap
Array< IdentifierType > IdentifierArrayType
::itk::IdentifierType IdentifierType
AutomaticTopologyMeshSource()
IdentifierType AddVertex(const IdentifierArrayType &pointIds)