00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPipelineGraphSource.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00021 #ifndef __vtkPipelineGraphSource_h 00022 #define __vtkPipelineGraphSource_h 00023 00024 #include "vtkDirectedGraphAlgorithm.h" 00025 #include <vtkStdString.h> 00026 00027 class vtkCollection; 00028 00029 class VTK_VIEWS_EXPORT vtkPipelineGraphSource : public vtkDirectedGraphAlgorithm 00030 { 00031 public: 00032 static vtkPipelineGraphSource* New(); 00033 vtkTypeMacro(vtkPipelineGraphSource,vtkDirectedGraphAlgorithm); 00034 void PrintSelf(ostream& os, vtkIndent indent); 00035 00036 void AddSink(vtkObject* object); 00037 void RemoveSink(vtkObject* object); 00038 00039 //BTX 00041 00043 static void PipelineToDot(vtkAlgorithm* sink, ostream& output, const vtkStdString& graph_name = ""); 00044 // Description: 00045 // Generates a GraphViz DOT file that describes the VTK pipeline 00046 // terminating at the given sinks. 00047 static void PipelineToDot(vtkCollection* sinks, ostream& output, const vtkStdString& graph_name = ""); 00049 00050 protected: 00051 vtkPipelineGraphSource(); 00052 ~vtkPipelineGraphSource(); 00053 00054 int RequestData( 00055 vtkInformation*, 00056 vtkInformationVector**, 00057 vtkInformationVector*); 00058 00059 vtkCollection* Sinks; 00060 00061 private: 00062 vtkPipelineGraphSource(const vtkPipelineGraphSource&); // Not implemented 00063 void operator=(const vtkPipelineGraphSource&); // Not implemented 00064 //ETX 00065 }; 00066 00067 #endif 00068