VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkMoleculeAlgorithm.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 =========================================================================*/ 00032 #ifndef __vtkMoleculeAlgorithm_h 00033 #define __vtkMoleculeAlgorithm_h 00034 00035 #include "vtkDomainsChemistryModule.h" // For export macro 00036 #include "vtkAlgorithm.h" 00037 00038 class vtkDataSet; 00039 class vtkMolecule; 00040 00041 class VTKDOMAINSCHEMISTRY_EXPORT vtkMoleculeAlgorithm : public vtkAlgorithm 00042 { 00043 public: 00044 static vtkMoleculeAlgorithm *New(); 00045 vtkTypeMacro(vtkMoleculeAlgorithm,vtkAlgorithm); 00046 void PrintSelf(ostream& os, vtkIndent indent); 00047 00049 00050 vtkMolecule* GetOutput(); 00051 vtkMolecule* GetOutput(int); 00052 virtual void SetOutput(vtkMolecule* d); 00054 00056 00057 virtual int ProcessRequest(vtkInformation*, 00058 vtkInformationVector**, 00059 vtkInformationVector*); 00061 00062 // this method is not recommended for use, but lots of old style filters 00063 // use it 00064 vtkDataObject* GetInput(); 00065 vtkDataObject *GetInput(int port); 00066 vtkMolecule *GetMoleculeInput(int port); 00067 00069 00076 void SetInputData(vtkDataObject *); 00077 void SetInputData(int, vtkDataObject*); 00079 00081 00085 void AddInputData(vtkDataObject *); 00086 void AddInputData(int, vtkDataObject*); 00088 00089 protected: 00090 vtkMoleculeAlgorithm(); 00091 ~vtkMoleculeAlgorithm(); 00092 00093 // convenience method 00094 virtual int RequestInformation(vtkInformation* request, 00095 vtkInformationVector** inputVector, 00096 vtkInformationVector* outputVector); 00097 00099 00101 virtual int RequestData(vtkInformation* request, 00102 vtkInformationVector** inputVector, 00103 vtkInformationVector* outputVector); 00105 00107 00109 virtual int RequestUpdateExtent(vtkInformation*, 00110 vtkInformationVector**, 00111 vtkInformationVector*); 00113 00114 // see algorithm for more info 00115 virtual int FillOutputPortInformation(int port, vtkInformation* info); 00116 virtual int FillInputPortInformation(int port, vtkInformation* info); 00117 00118 private: 00119 vtkMoleculeAlgorithm(const vtkMoleculeAlgorithm&); // Not implemented. 00120 void operator=(const vtkMoleculeAlgorithm&); // Not implemented. 00121 }; 00122 00123 #endif