KWStyle - itkQuadraticEdgeCell.h
 
Matrix View
Description

1 /*=========================================================================
2
3   Program:   Insight Segmentation & Registration Toolkit
4   Module:    $RCSfile: itkQuadraticEdgeCell.h.html,v $
5   Language:  C++
6   Date:      $Date: 2006/01/17 19:15:46 $
7   Version:   $Revision: 1.4 $
8
9   Copyright (c) Insight Software Consortium. All rights reserved.
10   See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11
12      This software is distributed WITHOUT ANY WARRANTY; without even 
13      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14      PURPOSE.  See the above copyright notices for more information.
15
16 =========================================================================*/
17 #ifndef __itkQuadraticEdgeCell_h
18 #define __itkQuadraticEdgeCell_h
19
20 #include "itkCellInterface.h"
21 #include "itkVertexCell.h"
22
23 namespace itk
24 {
25
26 /** \class QuadraticEdgeCell
27  * QuadraticEdgeCell represents a second order line segment for a Mesh.
28  *
29  * Template parameters for QuadraticEdgeCell:
30  *
31  * TPixelType =
32  *     The type associated with a point, cell, or boundary for use in storing
33  *     its data.
34  *
35  * TCellTraits =
36  *     Type information of mesh containing cell.
37  *
38  * \ingroup MeshObjects
39  */
40
41 template < typename TCellInterface >
42 class ITK_EXPORT QuadraticEdgeCell: public TCellInterface
43 {
44 public:
45   /** Standard class typedefs. */
46   itkCellCommonTypedefs(QuadraticEdgeCell);
47   itkCellInheritedTypedefs(TCellInterface);
48   
49   /** Standard part of every itk Object. */
50   itkTypeMacro(QuadraticEdgeCell, CellInterface);
51
52   /** The type of boundary for this lines's vertices. */
53   typedef VertexCell< TCellInterface >             VertexType;
54   typedef typename VertexType::SelfAutoPointer     VertexAutoPointer;
55     
56   /** QuadraticEdge-specific topology numbers. */
57   itkStaticConstMacro(NumberOfPoints, unsigned int, 3);
58   itkStaticConstMacro(NumberOfVertices, unsigned int, 2);
59   itkStaticConstMacro(CellDimension, unsigned int, 1);
60   
61   /** Implement the standard CellInterface. */
62   virtual CellGeometry GetType(void) const 
63 IND **{return Superclass::QUADRATIC_EDGE_CELL;}
64   virtual void MakeCopy( CellAutoPointer & ) const;
65   virtual unsigned int GetDimension(void) const;
66   virtual unsigned int GetNumberOfPoints(void) const;
67   virtual CellFeatureCount GetNumberOfBoundaryFeatures(int dimension) const;
68 LEN   virtual bool GetBoundaryFeature(int dimension, CellFeatureIdentifier,CellAutoPointer &);
69   virtual void SetPointIds(PointIdConstIterator first);
70   virtual void SetPointIds(PointIdConstIterator first,
71                            PointIdConstIterator last);
72   virtual void SetPointId(int localId, PointIdentifier);
73   virtual PointIdIterator      PointIdsBegin(void);
74   virtual PointIdConstIterator PointIdsBegin(void) const;
75   virtual PointIdIterator      PointIdsEnd(void);
76   virtual PointIdConstIterator PointIdsEnd(void) const; 
77   
78   /** QuadraticEdge-specific interface. */
79   virtual CellFeatureCount GetNumberOfVertices(void) const;
80   virtual bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
81   
82   /** Visitor interface */
83   itkCellVisitMacro(Superclass::QUADRATIC_EDGE_CELL);
84
85   QuadraticEdgeCell() {}
86   ~QuadraticEdgeCell() {}
87
88   /** Given the parametric coordinates of a point in the cell
89    * returned the values of its ShapeFunctions */
90   virtual void EvaluateShapeFunctions( 
91 LEN                           const ParametricCoordArrayType & parametricCoordinates,
92                                 ShapeFunctionsArrayType  & weights) const;
93
94
95 protected:
96   /** Store number of points needed for a line segment. */
97   PointIdentifier m_PointIds[NumberOfPoints];
98
99 private:
100   QuadraticEdgeCell(const Self&); //purposely not implemented
101   void operator=(const Self&); //purposely not implemented
102 };
103
104 // end namespace itk
105
106 #ifndef ITK_MANUAL_INSTANTIATION
107 #include "itkQuadraticEdgeCell.txx"
108 #endif
109
110 #endif
111

Generated by KWStyle 1.0b on Tuesday January,17 at 02:14:39PM
© Kitware Inc.