VTK
vtkPhyloXMLTreeWriter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPhyloXMLTreeWriter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
25 #ifndef vtkPhyloXMLTreeWriter_h
26 #define vtkPhyloXMLTreeWriter_h
27 
28 #include "vtkIOInfovisModule.h" // For export macro
29 #include "vtkXMLWriter.h"
30 #include "vtkSmartPointer.h" // For SP ivars
31 #include "vtkStdString.h" // For get/set ivars
32 
33 class vtkStringArray;
34 class vtkTree;
35 class vtkXMLDataElement;
36 
38 {
39 public:
40  static vtkPhyloXMLTreeWriter *New();
42  void PrintSelf(ostream& os, vtkIndent indent);
43 
45 
46  vtkTree* GetInput();
47  vtkTree* GetInput(int port);
49 
51  virtual const char* GetDefaultFileExtension();
52 
54 
58  vtkGetMacro(EdgeWeightArrayName, vtkStdString);
59  vtkSetMacro(EdgeWeightArrayName, vtkStdString);
61 
63 
67  vtkGetMacro(NodeNameArrayName, vtkStdString);
68  vtkSetMacro(NodeNameArrayName, vtkStdString);
70 
74  void IgnoreArray(const char * arrayName);
75 
76 protected:
79 
80  virtual int WriteData();
81 
82  virtual const char* GetDataSetName();
83  virtual int StartFile();
84  virtual int EndFile();
85 
87 
89  void WriteTreeLevelElement(vtkTree *input,
90  vtkXMLDataElement *rootElement,
91  const char *elementName,
92  const char *attributeName);
94 
97  void WriteTreeLevelProperties(vtkTree *input, vtkXMLDataElement *rootElement);
98 
100 
102  void WriteCladeElement(vtkTree* const input, vtkIdType vertex,
103  vtkXMLDataElement *parentElement);
105 
107 
108  void WriteBranchLengthAttribute(vtkTree* const input, vtkIdType vertex,
109  vtkXMLDataElement *element);
111 
113  void WriteNameElement(vtkIdType vertex, vtkXMLDataElement *element);
114 
116 
117  void WriteConfidenceElement(vtkTree* const input, vtkIdType vertex,
118  vtkXMLDataElement *element);
120 
122 
124  void WriteColorElement(vtkTree* const input, vtkIdType vertex,
125  vtkXMLDataElement *element);
127 
129 
131  void WritePropertyElement(vtkAbstractArray *array, vtkIdType vertex,
132  vtkXMLDataElement *element);
134 
136 
138  const char* GetArrayAttribute(vtkAbstractArray *array,
139  const char *attributeName);
141 
143 
145 
148 
152 
153 private:
154  vtkPhyloXMLTreeWriter(const vtkPhyloXMLTreeWriter&); // Not implemented.
155  void operator=(const vtkPhyloXMLTreeWriter&); // Not implemented.
156 };
157 
158 #endif
virtual const char * GetDataSetName()=0
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:46
Represents an XML element and those nested inside.
vtkDataObject * GetInput()
Definition: vtkXMLWriter.h:196
Store vtkAlgorithm input/output information.
Abstract superclass for all arrays.
#define VTKIOINFOVIS_EXPORT
virtual int EndFile()
vtkInformation * InputInformation
a vtkAbstractArray subclass for strings
vtkAbstractArray * NodeNameArray
int vtkIdType
Definition: vtkType.h:275
virtual int WriteData()
Definition: vtkXMLWriter.h:323
Superclass for VTK's XML file writers.
Definition: vtkXMLWriter.h:53
a simple class to control print indentation
Definition: vtkIndent.h:38
void PrintSelf(ostream &os, vtkIndent indent)
virtual const char * GetDefaultFileExtension()=0
write vtkTree data to PhyloXML format.
vtkAbstractArray * EdgeWeightArray
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkSmartPointer< vtkStringArray > Blacklist
static vtkAlgorithm * New()
virtual int StartFile()
A rooted tree data structure.
Definition: vtkTree.h:59