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 =========================================================================*/
23 #ifndef vtkPhyloXMLTreeWriter_h
24 #define vtkPhyloXMLTreeWriter_h
25 
26 #include "vtkIOInfovisModule.h" // For export macro
27 #include "vtkXMLWriter.h"
28 #include "vtkSmartPointer.h" // For SP ivars
29 #include "vtkStdString.h" // For get/set ivars
30 
31 class vtkStringArray;
32 class vtkTree;
33 class vtkXMLDataElement;
34 
35 class VTKIOINFOVIS_EXPORT vtkPhyloXMLTreeWriter : public vtkXMLWriter
36 {
37 public:
38  static vtkPhyloXMLTreeWriter *New();
40  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
41 
43 
46  vtkTree* GetInput();
47  vtkTree* GetInput(int port);
49 
53  const char* GetDefaultFileExtension() VTK_OVERRIDE;
54 
56 
63  vtkGetMacro(EdgeWeightArrayName, vtkStdString);
64  vtkSetMacro(EdgeWeightArrayName, vtkStdString);
66 
68 
75  vtkGetMacro(NodeNameArrayName, vtkStdString);
76  vtkSetMacro(NodeNameArrayName, vtkStdString);
78 
84  void IgnoreArray(const char * arrayName);
85 
86 protected:
88  ~vtkPhyloXMLTreeWriter() VTK_OVERRIDE {}
89 
90  int WriteData() VTK_OVERRIDE;
91 
92  const char* GetDataSetName() VTK_OVERRIDE;
93  int StartFile() VTK_OVERRIDE;
94  int EndFile() VTK_OVERRIDE;
95 
100  void WriteTreeLevelElement(vtkTree *input,
101  vtkXMLDataElement *rootElement,
102  const char *elementName,
103  const char *attributeName);
104 
108  void WriteTreeLevelProperties(vtkTree *input, vtkXMLDataElement *rootElement);
109 
114  void WriteCladeElement(vtkTree* const input, vtkIdType vertex,
115  vtkXMLDataElement *parentElement);
116 
120  void WriteBranchLengthAttribute(vtkTree* const input, vtkIdType vertex,
121  vtkXMLDataElement *element);
122 
126  void WriteNameElement(vtkIdType vertex, vtkXMLDataElement *element);
127 
131  void WriteConfidenceElement(vtkTree* const input, vtkIdType vertex,
132  vtkXMLDataElement *element);
133 
138  void WriteColorElement(vtkTree* const input, vtkIdType vertex,
139  vtkXMLDataElement *element);
140 
144  void WritePropertyElement(vtkAbstractArray *array, vtkIdType vertex,
145  vtkXMLDataElement *element);
146 
151  const char* GetArrayAttribute(vtkAbstractArray *array,
152  const char *attributeName);
153 
154  int FillInputPortInformation(int port, vtkInformation *info) VTK_OVERRIDE;
155 
156  vtkInformation* InputInformation;
157 
158  vtkStdString EdgeWeightArrayName;
159  vtkStdString NodeNameArrayName;
160 
161  vtkAbstractArray *EdgeWeightArray;
162  vtkAbstractArray *NodeNameArray;
164 
165 private:
166  vtkPhyloXMLTreeWriter(const vtkPhyloXMLTreeWriter&) VTK_DELETE_FUNCTION;
167  void operator=(const vtkPhyloXMLTreeWriter&) VTK_DELETE_FUNCTION;
168 };
169 
170 #endif
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:41
Represents an XML element and those nested inside.
vtkDataObject * GetInput()
Assign a data object as input.
Definition: vtkXMLWriter.h:218
Store vtkAlgorithm input/output information.
Abstract superclass for all arrays.
a vtkAbstractArray subclass for strings
Hold a reference to a vtkObjectBase instance.
int vtkIdType
Definition: vtkType.h:345
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int WriteData()
Definition: vtkXMLWriter.h:340
Superclass for VTK's XML file writers.
Definition: vtkXMLWriter.h:53
a simple class to control print indentation
Definition: vtkIndent.h:33
virtual const char * GetDefaultFileExtension()=0
Get the default file extension for files written by this writer.
write vtkTree data to PhyloXML format.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
static vtkAlgorithm * New()
A rooted tree data structure.
Definition: vtkTree.h:54