VTK  9.3.1
vtkPhyloXMLTreeWriter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
14 #ifndef vtkPhyloXMLTreeWriter_h
15 #define vtkPhyloXMLTreeWriter_h
16 
17 #include "vtkIOInfovisModule.h" // For export macro
18 #include "vtkSmartPointer.h" // For SP ivars
19 #include "vtkStdString.h" // For get/set ivars
20 #include "vtkXMLWriter.h"
21 
22 VTK_ABI_NAMESPACE_BEGIN
23 class vtkStringArray;
24 class vtkTree;
25 class vtkXMLDataElement;
26 
27 class VTKIOINFOVIS_EXPORT vtkPhyloXMLTreeWriter : public vtkXMLWriter
28 {
29 public:
30  static vtkPhyloXMLTreeWriter* New();
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33 
35 
38  vtkTree* GetInput();
39  vtkTree* GetInput(int port);
41 
45  const char* GetDefaultFileExtension() override;
46 
48 
55  vtkGetMacro(EdgeWeightArrayName, vtkStdString);
56  vtkSetMacro(EdgeWeightArrayName, vtkStdString);
58 
60 
67  vtkGetMacro(NodeNameArrayName, vtkStdString);
68  vtkSetMacro(NodeNameArrayName, vtkStdString);
70 
76  void IgnoreArray(const char* arrayName);
77 
78 protected:
80  ~vtkPhyloXMLTreeWriter() override = default;
81 
82  int WriteData() override;
83 
84  const char* GetDataSetName() override;
85  int StartFile() override;
86  int EndFile() override;
87 
92  void WriteTreeLevelElement(vtkTree* input, vtkXMLDataElement* rootElement,
93  const char* elementName, const char* attributeName);
94 
98  void WriteTreeLevelProperties(vtkTree* input, vtkXMLDataElement* rootElement);
99 
104  void WriteCladeElement(vtkTree* input, vtkIdType vertex, vtkXMLDataElement* parentElement);
105 
109  void WriteBranchLengthAttribute(vtkTree* input, vtkIdType vertex, vtkXMLDataElement* element);
110 
114  void WriteNameElement(vtkIdType vertex, vtkXMLDataElement* element);
115 
119  void WriteConfidenceElement(vtkTree* input, vtkIdType vertex, vtkXMLDataElement* element);
120 
125  void WriteColorElement(vtkTree* input, vtkIdType vertex, vtkXMLDataElement* element);
126 
130  void WritePropertyElement(vtkAbstractArray* array, vtkIdType vertex, vtkXMLDataElement* element);
131 
136  const char* GetArrayAttribute(vtkAbstractArray* array, const char* attributeName);
137 
138  int FillInputPortInformation(int port, vtkInformation* info) override;
139 
141 
144 
148 
149 private:
151  void operator=(const vtkPhyloXMLTreeWriter&) = delete;
152 };
153 
154 VTK_ABI_NAMESPACE_END
155 #endif
virtual const char * GetDataSetName()=0
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:28
Represents an XML element and those nested inside.
vtkDataObject * GetInput()
Assign a data object as input.
Definition: vtkXMLWriter.h:68
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:315
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:147
Superclass for VTK's XML file writers.
Definition: vtkXMLWriter.h:53
a simple class to control print indentation
Definition: vtkIndent.h:28
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
virtual const char * GetDefaultFileExtension()=0
Get the default file extension for files written by this writer.
static vtkAlgorithm * New()
virtual int StartFile()
A rooted tree data structure.
Definition: vtkTree.h:45