]> Creatis software - cpPlugins.git/blobdiff - lib/cpExtensions/Visualization/OutlineSource.cxx
yet another refactoring
[cpPlugins.git] / lib / cpExtensions / Visualization / OutlineSource.cxx
diff --git a/lib/cpExtensions/Visualization/OutlineSource.cxx b/lib/cpExtensions/Visualization/OutlineSource.cxx
new file mode 100644 (file)
index 0000000..a00a221
--- /dev/null
@@ -0,0 +1,50 @@
+#include <cpExtensions/Visualization/OutlineSource.h>
+#include <vtkCellArray.h>
+#include <vtkInformation.h>
+#include <vtkInformationVector.h>
+#include <vtkSmartPointer.h>
+
+// -------------------------------------------------------------------------
+cpExtensions::Visualization::OutlineSource::
+Self* cpExtensions::Visualization::OutlineSource::
+New( )
+{
+  return( new Self( ) );
+}
+
+// -------------------------------------------------------------------------
+cpExtensions::Visualization::OutlineSource::
+OutlineSource( )
+  : Superclass( )
+{
+}
+
+// -------------------------------------------------------------------------
+cpExtensions::Visualization::OutlineSource::
+~OutlineSource( )
+{
+}
+
+// -------------------------------------------------------------------------
+int cpExtensions::Visualization::OutlineSource::
+RequestData(
+  vtkInformation* request,
+  vtkInformationVector** inputVector,
+  vtkInformationVector* outputVector
+  )
+{
+  int r = this->Superclass::RequestData( request, inputVector, outputVector );
+
+  // Complete polydatas to avoid bizarre rendering errors (multi-thread)
+  vtkInformation *outInfo = outputVector->GetInformationObject( 0 );
+  vtkPolyData *output = vtkPolyData::SafeDownCast(
+    outInfo->Get( vtkDataObject::DATA_OBJECT( ) )
+    );
+  output->SetVerts( vtkSmartPointer< vtkCellArray >::New( ) );
+  output->SetStrips( vtkSmartPointer< vtkCellArray >::New( ) );
+  if( this->GenerateFaces != 1 )
+    output->SetPolys( vtkSmartPointer< vtkCellArray >::New( ) );
+  return( r );
+}
+
+// eof - $RCSfile$