IGSTK
igstkTubeObject.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Image Guided Surgery Software Toolkit
4  Module: $RCSfile: igstkTubeObject.h,v $
5  Language: C++
6  Date: $Date: 2008-02-11 01:41:51 $
7  Version: $Revision: 1.7 $
8 
9  Copyright (c) ISC Insight Software Consortium. All rights reserved.
10  See IGSTKCopyright.txt or http://www.igstk.org/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 
18 #ifndef __igstkTubeObject_h
19 #define __igstkTubeObject_h
20 
21 #include "igstkMacros.h"
22 #include "igstkSpatialObject.h"
23 #include <itkTubeSpatialObject.h>
24 
25 namespace igstk
26 {
27 
28 namespace Friends
29 {
30 class TubeReaderToTubeSpatialObject;
31 }
32 
42 class TubeObject
43 : public SpatialObject
44 {
45 
46 public:
47 
50 
51 public:
52 
54  typedef itk::TubeSpatialObject<3> TubeSpatialObjectType;
55  typedef TubeSpatialObjectType::TubePointType PointType;
56  typedef TubeSpatialObjectType::PointListType PointListType;
57 
59  void AddPoint(PointType & point);
60 
62  unsigned int GetNumberOfPoints(void) const;
63 
65  const PointType * GetPoint(unsigned int pointId) const;
66 
68  const PointListType GetPoints() const;
69 
71  void Clear( void );
72 
75  igstkFriendClassMacro( igstk::Friends::TubeReaderToTubeSpatialObject );
76 
77 protected:
78 
80  TubeObject( void );
81 
83  ~TubeObject( void );
84 
86  virtual void PrintSelf( std::ostream& os, itk::Indent indent ) const;
87 
88 private:
89 
91  void SetTubeSpatialObject( TubeSpatialObjectType * tube );
92 
94  TubeSpatialObjectType::Pointer m_TubeSpatialObject;
95 
96 };
97 
98 } // end namespace igstk
99 
100 #endif // __igstkTubeObject_h