]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/DataObjects/Skeleton.cxx
CastImageFilter added.
[cpPlugins.git] / lib / cpPlugins / DataObjects / Skeleton.cxx
1 #include <cpPlugins/DataObjects/Skeleton.h>
2 #include <cpExtensions/Visualization/SkeletonToPolyData.h>
3 #include <cpPlugins/DataObjects/Skeleton_Demanglers.h>
4 #include <cpExtensions/DataStructures/Skeleton.h>
5
6 // -------------------------------------------------------------------------
7 void cpPlugins::DataObjects::Skeleton::
8 SetITK( itk::LightObject* o )
9 {
10   cpPlugins_Demangle_Skeleton_All_1( o, _ITK_2_VTK )
11   {
12     this->m_VTK = NULL;
13     this->m_ITKvVTK = NULL;
14   }
15 }
16
17 // -------------------------------------------------------------------------
18 void cpPlugins::DataObjects::Skeleton::
19 SetVTK( vtkObjectBase* o )
20 {
21   // Do nothing
22   this->m_ITK = NULL;
23   this->m_VTK = NULL;
24   this->m_ITKvVTK = NULL;
25 }
26
27 // -------------------------------------------------------------------------
28 cpPlugins::DataObjects::Skeleton::
29 Skeleton( )
30   : Superclass( )
31 {
32 }
33
34 // -------------------------------------------------------------------------
35 cpPlugins::DataObjects::Skeleton::
36 ~Skeleton( )
37 {
38 }
39
40 // -------------------------------------------------------------------------
41 template< class _TSkeleton >
42 void cpPlugins::DataObjects::Skeleton::
43 _ITK_2_VTK( _TSkeleton* sk )
44 {
45   typedef
46     cpExtensions::Visualization::SkeletonToPolyData< _TSkeleton >
47     _TFilter;
48   _TFilter* f = dynamic_cast< _TFilter* >( this->m_ITKvVTK.GetPointer( ) );
49   if( f == NULL )
50   {
51     _TFilter* nf = _TFilter::New( );
52     this->m_ITKvVTK = nf;
53     f = nf;
54
55   } // fi
56   f->SetInput( sk );
57   f->Update( );
58
59   // Keep object track
60   this->m_ITK = sk;
61   this->m_VTK = f->GetOutput( );
62 }
63
64 // eof - $RCSfile$