#define __CPPLUGINS__DATAOBJECT__H__
#include <cpPlugins/Object.h>
+#include <set>
+#include <vtkProp.h>
+#include <vtkRenderer.h>
namespace cpPlugins
{
// Some forward declarations
class ProcessObject;
+ class DataObjectVisualizationQtDialog;
/**
*/
itkTypeMacro( DataObject, Object );
cpPlugins_Id_Macro( DataObject, Object );
+ struct TDataView
+ {
+ vtkSmartPointer< vtkProp > Actor;
+ vtkSmartPointer< vtkRenderer > Renderer;
+ bool operator<( const TDataView& b ) const
+ { return( this->Actor.GetPointer( ) < b.Actor.GetPointer( ) ); }
+ };
+ typedef std::set< TDataView > TDataViews;
+
public:
ProcessObject* GetSource( );
const ProcessObject* GetSource( ) const;
void DisconnectFromPipeline( );
+ // Qt dialog creation
+ virtual DataObjectVisualizationQtDialog* CreateQtDialog( );
+
+ // VTK actors
+ virtual void AddVTKActor( vtkProp* actor, vtkRenderer* renderer );
+ virtual void ClearVTKActors( );
+ virtual void RenderVTKActors( );
+ TDataViews::iterator BeginVTKActors( );
+ TDataViews::iterator EndVTKActors( );
+ TDataViews::const_iterator BeginVTKActors( ) const;
+ TDataViews::const_iterator EndVTKActors( ) const;
+
protected:
DataObject( );
virtual ~DataObject( );
protected:
ProcessObject* m_Source;
+ TDataViews m_Actors;
};
} // ecapseman