18 #ifndef itkQuadricDecimationQuadEdgeMeshFilter_h
19 #define itkQuadricDecimationQuadEdgeMeshFilter_h
31 template<
typename TInput,
typename TOutput,
typename TCriterion >
62 itkStaticConstMacro(OutputPointDimension,
unsigned int, OutputMeshType::PointDimension);
81 typedef std::map< OutputPointIdentifier, QuadricElementType >
102 id[0] = iEdge->GetOrigin();
103 id[1] = iEdge->GetDestination();
104 id[2] = iEdge->GetOnext()->GetDestination();
108 for (
int i = 0; i < 3; i++ )
110 p[i] = outputMesh->GetPoint(
id[i]);
113 oQ.AddTriangle(p[0], p[1], p[2]);
131 mid.SetToMidPoint(org, dest);
141 virtual void DeletePoint(
const OutputPointIdentifier & iIdToBeDeleted,
142 const OutputPointIdentifier & iRemaining) ITK_OVERRIDE;
148 OutputPointType Relocate(OutputQEType *iEdge) ITK_OVERRIDE;
151 virtual void Initialize() ITK_OVERRIDE;
159 #ifndef ITK_MANUAL_INSTANTIATION
160 #include "itkQuadricDecimationQuadEdgeMeshFilter.hxx"
Superclass::QueueMapType QueueMapType
TODO explicit specification for VDimension=3!!!
Superclass::OperatorType OperatorType
Light weight base class for most itk classes.
OutputMeshType::PointsContainerIterator OutputPointsContainerIterator
Superclass::PriorityQueuePointer PriorityQueuePointer
OutputMeshType::EdgeCellType OutputEdgeCellType
CriterionType::MeasureType MeasureType
std::map< OutputPointIdentifier, QuadricElementType > QuadricElementMapType
OutputMeshType::PointType OutputPointType
CriterionType::MeasureType MeasureType
OutputMeshType::QEType OutputQEType
OutputMeshType::PointIdentifier OutputPointIdentifier
SmartPointer< Self > Pointer
OutputPointType::CoordRepType OutputCoordType
OutputMeshType::Pointer OutputMeshPointer
OutputMeshType::PointsContainerPointer OutputPointsContainerPointer
OutputMeshType::QEType OutputQEType
PointType ComputeOptimalLocation(const PointType &iP)
OutputMeshType::PointType OutputPointType
CoordType ComputeError(const PointType &iP) const
TODO this method should be really optimized!!!
ImageBaseType::PointType PointType
Superclass::PriorityType PriorityType
OutputMeshType::CellsContainerIterator OutputCellsContainerIterator
Superclass::PriorityQueueType PriorityQueueType
QuadricElementMapType::iterator QuadricElementMapIterator
EdgeDecimationQuadEdgeMeshFilter< TInput, TOutput, TCriterion > Superclass
Superclass::OperatorPointer OperatorPointer
Superclass::PriorityQueueItemType PriorityQueueItemType
MeasureType MeasureEdge(OutputQEType *iEdge) override
Compute the measure value for iEdge.
SmartPointer< const Self > ConstPointer
QuadEdgeMeshDecimationQuadricElementHelper< OutputPointType > QuadricElementType
QuadricDecimationQuadEdgeMeshFilter Self
Superclass::QueueMapIterator QueueMapIterator
InputMeshType::Pointer InputMeshPointer