VTK  9.0.1
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 "vtkSmartPointer.h" // For SP ivars
28 #include "vtkStdString.h" // For get/set ivars
29 #include "vtkXMLWriter.h"
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) override;
41 
43 
46  vtkTree* GetInput();
47  vtkTree* GetInput(int port);
49 
53  const char* GetDefaultFileExtension() 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() override {}
89 
90  int WriteData() override;
91 
92  const char* GetDataSetName() override;
93  int StartFile() override;
94  int EndFile() override;
95 
100  void WriteTreeLevelElement(vtkTree* input, vtkXMLDataElement* rootElement,
101  const char* elementName, const char* attributeName);
102 
106  void WriteTreeLevelProperties(vtkTree* input, vtkXMLDataElement* rootElement);
107 
112  void WriteCladeElement(vtkTree* const input, vtkIdType vertex, vtkXMLDataElement* parentElement);
113 
117  void WriteBranchLengthAttribute(
118  vtkTree* const input, vtkIdType vertex, vtkXMLDataElement* element);
119 
123  void WriteNameElement(vtkIdType vertex, vtkXMLDataElement* element);
124 
128  void WriteConfidenceElement(vtkTree* const input, vtkIdType vertex, vtkXMLDataElement* element);
129 
134  void WriteColorElement(vtkTree* const input, vtkIdType vertex, vtkXMLDataElement* element);
135 
139  void WritePropertyElement(vtkAbstractArray* array, vtkIdType vertex, vtkXMLDataElement* element);
140 
145  const char* GetArrayAttribute(vtkAbstractArray* array, const char* attributeName);
146 
147  int FillInputPortInformation(int port, vtkInformation* info) override;
148 
150 
153 
157 
158 private:
160  void operator=(const vtkPhyloXMLTreeWriter&) = delete;
161 };
162 
163 #endif
virtual const char * GetDataSetName()=0
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:34
Represents an XML element and those nested inside.
vtkDataObject * GetInput()
Assign a data object as input.
Definition: vtkXMLWriter.h:239
Store vtkAlgorithm input/output information.
Abstract superclass for all arrays.
virtual int EndFile()
vtkInformation * InputInformation
a vtkAbstractArray subclass for strings
vtkAbstractArray * NodeNameArray
int vtkIdType
Definition: vtkType.h:338
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:359
Superclass for VTK's XML file writers.
Definition: vtkXMLWriter.h:61
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.
vtkAbstractArray * EdgeWeightArray
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
vtkSmartPointer< vtkStringArray > Blacklist
static vtkAlgorithm * New()
virtual int StartFile()
A rooted tree data structure.
Definition: vtkTree.h:54