#include <cpPlugins/Interface/DataObject.h>
+#include <vtkImageData.h>
+#include <vtkPolyData.h>
// -------------------------------------------------------------------------
-std::string cpPlugins::Interface::DataObject::
-GetClassName( ) const
+itk::DataObject* cpPlugins::Interface::DataObject::
+GetITKDataObject( )
{
- return( "cpPlugins::Interface::DataObject" );
+ return( this->m_ITKObject.GetPointer( ) );
}
// -------------------------------------------------------------------------
-std::string cpPlugins::Interface::DataObject::
-GetClassType( ) const
+const itk::DataObject* cpPlugins::Interface::DataObject::
+GetITKDataObject( ) const
{
- return( "DataObject" );
+ return( this->m_ITKObject.GetPointer( ) );
}
// -------------------------------------------------------------------------
-itk::DataObject* cpPlugins::Interface::DataObject::
-GetRealDataObject( ) const
+vtkDataObject* cpPlugins::Interface::DataObject::
+GetVTKDataObject( )
{
- return( this->m_RealDataObject );
+ return( this->m_VTKObject.GetPointer( ) );
}
// -------------------------------------------------------------------------
-void cpPlugins::Interface::DataObject::
-SetRealDataObject( itk::DataObject* dobj )
+const vtkDataObject* cpPlugins::Interface::DataObject::
+GetVTKDataObject( ) const
{
- this->m_RealDataObject = dobj;
+ return( this->m_VTKObject.GetPointer( ) );
}
// -------------------------------------------------------------------------
void cpPlugins::Interface::DataObject::
SetSource( cpPlugins::Interface::Object* src )
{
- this->m_Source = src;
+ if( this->m_Source.GetPointer( ) != src )
+ {
+ this->m_Source = src;
+ this->Modified( );
+
+ } // fi
}
// -------------------------------------------------------------------------
void cpPlugins::Interface::DataObject::
DisconnectPipeline( )
{
- if( this->m_RealDataObject.IsNotNull( ) )
+ if( this->m_ITKObject.IsNotNull( ) )
{
- this->m_RealDataObject->DisconnectPipeline( );
+ // Disconnect input pipelines
+ this->m_ITKObject->DisconnectPipeline( );
+ vtkImageData* vtk_image =
+ dynamic_cast< vtkImageData* >( this->m_VTKObject.GetPointer( ) );
+ vtkPolyData* vtk_pd =
+ dynamic_cast< vtkPolyData* >( this->m_VTKObject.GetPointer( ) );
+ if( vtk_image != NULL )
+ {
+ vtkSmartPointer< vtkImageData > d =
+ vtkSmartPointer< vtkImageData >::New( );
+ d->ShallowCopy( vtk_image );
+ this->m_VTKObject = d;
+ }
+ else if( vtk_pd != NULL )
+ {
+ vtkSmartPointer< vtkPolyData > d =
+ vtkSmartPointer< vtkPolyData >::New( );
+ d->ShallowCopy( vtk_pd );
+ this->m_VTKObject = d;
+
+ } // fi
+
+ // Unbind source
if( this->m_Source.IsNotNull( ) )
this->m_Source->Delete( );
this->Register( );
DataObject( )
: Superclass( )
{
+ this->m_ClassName = "cpPlugins::Interface::DataObject";
+ this->m_ClassCategory = "BasicObject";
}
// -------------------------------------------------------------------------