1 #ifndef __CPPLUGINS__DATAOBJECT__H__
2 #define __CPPLUGINS__DATAOBJECT__H__
4 #include <cpPlugins/Object.h>
7 #include <vtkRenderer.h>
11 // Some forward declarations
13 class DataObjectVisualizationQtDialog;
17 class cpPlugins_EXPORT DataObject
21 typedef DataObject Self;
22 typedef Object Superclass;
23 typedef itk::SmartPointer< Self > Pointer;
24 typedef itk::SmartPointer< const Self > ConstPointer;
28 itkTypeMacro( DataObject, Object );
29 cpPlugins_Id_Macro( DataObject, Object );
33 vtkSmartPointer< vtkProp > Actor;
34 vtkSmartPointer< vtkRenderer > Renderer;
35 bool operator<( const TDataView& b ) const
36 { return( this->Actor.GetPointer( ) < b.Actor.GetPointer( ) ); }
38 typedef std::set< TDataView > TDataViews;
41 ProcessObject* GetSource( );
42 const ProcessObject* GetSource( ) const;
43 void SetSource( ProcessObject* src );
45 void DisconnectFromPipeline( );
48 virtual DataObjectVisualizationQtDialog* CreateQtDialog( );
51 virtual void AddVTKActor( vtkProp* actor, vtkRenderer* renderer );
52 virtual void ClearVTKActors( );
53 virtual void RenderVTKActors( );
54 TDataViews::iterator BeginVTKActors( );
55 TDataViews::iterator EndVTKActors( );
56 TDataViews::const_iterator BeginVTKActors( ) const;
57 TDataViews::const_iterator EndVTKActors( ) const;
61 virtual ~DataObject( );
64 // Purposely not implemented
65 DataObject( const Self& );
66 Self& operator=( const Self& );
69 ProcessObject* m_Source;
75 #endif // __CPPLUGINS__DATAOBJECT__H__