VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/IO/Infovis/vtkPhyloXMLTreeWriter.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkPhyloXMLTreeWriter.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 =========================================================================*/
00025 #ifndef vtkPhyloXMLTreeWriter_h
00026 #define vtkPhyloXMLTreeWriter_h
00027 
00028 #include "vtkIOInfovisModule.h" // For export macro
00029 #include "vtkXMLWriter.h"
00030 #include "vtkSmartPointer.h"    // For SP ivars
00031 #include "vtkStdString.h"       // For get/set ivars
00032 
00033 class vtkStringArray;
00034 class vtkTree;
00035 class vtkXMLDataElement;
00036 
00037 class VTKIOINFOVIS_EXPORT vtkPhyloXMLTreeWriter : public vtkXMLWriter
00038 {
00039 public:
00040   static vtkPhyloXMLTreeWriter *New();
00041   vtkTypeMacro(vtkPhyloXMLTreeWriter,vtkXMLWriter);
00042   void PrintSelf(ostream& os, vtkIndent indent);
00043 
00045 
00046   vtkTree* GetInput();
00047   vtkTree* GetInput(int port);
00049 
00051   virtual const char* GetDefaultFileExtension();
00052 
00054 
00058   vtkGetMacro(EdgeWeightArrayName, vtkStdString);
00059   vtkSetMacro(EdgeWeightArrayName, vtkStdString);
00061 
00063 
00067   vtkGetMacro(NodeNameArrayName, vtkStdString);
00068   vtkSetMacro(NodeNameArrayName, vtkStdString);
00070 
00074   void IgnoreArray(const char * arrayName);
00075 
00076 protected:
00077   vtkPhyloXMLTreeWriter();
00078   ~vtkPhyloXMLTreeWriter() {}
00079 
00080   virtual int WriteData();
00081 
00082   virtual const char* GetDataSetName();
00083   virtual int StartFile();
00084   virtual int EndFile();
00085 
00087 
00089   void WriteTreeLevelElement(vtkTree *input,
00090                              vtkXMLDataElement *rootElement,
00091                              const char *elementName,
00092                              const char *attributeName);
00094 
00097   void WriteTreeLevelProperties(vtkTree *input, vtkXMLDataElement *rootElement);
00098 
00100 
00102   void WriteCladeElement(vtkTree* const input, vtkIdType vertex,
00103                    vtkXMLDataElement *parentElement);
00105 
00107 
00108   void WriteBranchLengthAttribute(vtkTree* const input, vtkIdType vertex,
00109                                   vtkXMLDataElement *element);
00111 
00113   void WriteNameElement(vtkIdType vertex, vtkXMLDataElement *element);
00114 
00116 
00117   void WriteConfidenceElement(vtkTree* const input, vtkIdType vertex,
00118                               vtkXMLDataElement *element);
00120 
00122 
00124   void WriteColorElement(vtkTree* const input, vtkIdType vertex,
00125                          vtkXMLDataElement *element);
00127 
00129 
00131   void WritePropertyElement(vtkAbstractArray *array, vtkIdType vertex,
00132                             vtkXMLDataElement *element);
00134 
00136 
00138   const char* GetArrayAttribute(vtkAbstractArray *array,
00139                                 const char *attributeName);
00141 
00142   virtual int FillInputPortInformation(int port, vtkInformation *info);
00143 
00144   vtkInformation* InputInformation;
00145 
00146   vtkStdString EdgeWeightArrayName;
00147   vtkStdString NodeNameArrayName;
00148 
00149   vtkAbstractArray *EdgeWeightArray;
00150   vtkAbstractArray *NodeNameArray;
00151   vtkSmartPointer<vtkStringArray> Blacklist;
00152 
00153 private:
00154   vtkPhyloXMLTreeWriter(const vtkPhyloXMLTreeWriter&);  // Not implemented.
00155   void operator=(const vtkPhyloXMLTreeWriter&);  // Not implemented.
00156 };
00157 
00158 #endif