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 00040 00042 00044 static void PipelineToDot(vtkAlgorithm* sink, ostream& output, const vtkStdString& graph_name = ""); 00045 // Description: 00046 // Generates a GraphViz DOT file that describes the VTK pipeline 00047 // terminating at the given sinks. 00048 static void PipelineToDot(vtkCollection* sinks, ostream& output, const vtkStdString& graph_name = ""); 00050 00051 protected: 00052 vtkPipelineGraphSource(); 00053 ~vtkPipelineGraphSource(); 00054 00055 int RequestData( 00056 vtkInformation*, 00057 vtkInformationVector**, 00058 vtkInformationVector*); 00059 00060 vtkCollection* Sinks; 00061 00062 private: 00063 vtkPipelineGraphSource(const vtkPipelineGraphSource&); // Not implemented 00064 void operator=(const vtkPipelineGraphSource&); // Not implemented 00065 //ETX 00066 }; 00067 00068 #endif 00069