1 #ifndef __CPM__DATASTRUCTURES__SIMPLEXMESH__H__
2 #define __CPM__DATASTRUCTURES__SIMPLEXMESH__H__
5 #include <cpPlugins/Extensions/QuadEdgeMesh.h>
9 namespace DataStructures
13 template< typename P, unsigned int K, unsigned int D = 3, typename T = itk::DefaultStaticMeshTraits< P, D, D > >
15 : public cpPlugins::Extensions::QuadEdgeMesh< P, D, T >
18 typedef SimplexMesh Self;
19 typedef cpPlugins::Extensions::QuadEdgeMesh< P, D, T > Superclass;
20 typedef itk::SmartPointer< Self > Pointer;
21 typedef itk::SmartPointer< const Self > ConstPointer;
24 itkStaticConstMacro( Order, unsigned int, K );
26 /// Types from superclass
28 typename Superclass::BoundaryAssignmentsContainer
29 BoundaryAssignmentsContainer;
32 typename Superclass::BoundaryAssignmentsContainerPointer
33 BoundaryAssignmentsContainerPointer;
34 typedef typename Superclass::BoundingBoxType BoundingBoxType;
35 typedef typename Superclass::CellAutoPointer CellAutoPointer;
36 typedef typename Superclass::CellsContainer CellsContainer;
37 typedef typename Superclass::CellDataContainer CellDataContainer;
38 typedef typename Superclass::CellFeatureCount CellFeatureCount;
39 typedef typename Superclass::CellFeatureIdentifier CellFeatureIdentifier;
40 typedef typename Superclass::CellIdentifier CellIdentifier;
41 typedef typename Superclass::CellLinksContainer CellLinksContainer;
42 typedef typename Superclass::CellMultiVisitorType CellMultiVisitorType;
43 typedef typename Superclass::CellPixelType CellPixelType;
44 typedef typename Superclass::CellType CellType;
45 typedef typename Superclass::PointIdentifier PointIdentifier;
46 typedef typename Superclass::PointsContainer PointsContainer;
47 typedef typename Superclass::PointType PointType;
48 typedef typename Superclass::TPrimalEdge TPrimalEdge;
49 typedef typename Superclass::TDualEdge TDualEdge;
50 typedef typename Superclass::VectorType VectorType;
51 typedef typename VectorType::ValueType ValueType;
52 typedef typename Superclass::TQuadEdgeCell TQuadEdgeCell;
54 typedef itk::Vector< P, K + 1 > BarycenterVector;
58 itkTypeMacro( SimplexMesh, QuadEdgeMesh );
61 bool ComputeSimplexParameters(
62 const PointIdentifier& pId,
67 BarycenterVector& barycenter,
74 bool VerifySimplexOrder( ) const;
75 bool OperatorDeleteEdge(
76 const PointIdentifier& a, const PointIdentifier& b
81 virtual ~SimplexMesh( );
83 virtual VectorType _ComputePointNormal( const TPrimalEdge* e ) const;
86 SimplexMesh( const Self& ); // Not implemented
87 void operator=( const Self& ); // Not implemented
94 #include <cpm/DataStructures/SimplexMesh.hxx>
96 #endif // __CPM__DATASTRUCTURES__SIMPLEXMESH__H__