VTK  9.3.0
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:
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33 
35 
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 
99 
104  void WriteCladeElement(vtkTree* input, vtkIdType vertex, vtkXMLDataElement* parentElement);
105 
110 
115 
120 
125  void WriteColorElement(vtkTree* input, vtkIdType vertex, vtkXMLDataElement* element);
126 
131 
136  const char* GetArrayAttribute(vtkAbstractArray* array, const char* attributeName);
137 
139 
141 
144 
148 
149 private:
151  void operator=(const vtkPhyloXMLTreeWriter&) = delete;
152 };
153 
154 VTK_ABI_NAMESPACE_END
155 #endif
Abstract superclass for all arrays.
a simple class to control print indentation
Definition: vtkIndent.h:38
Store vtkAlgorithm input/output information.
write vtkTree data to PhyloXML format.
void WriteNameElement(vtkIdType vertex, vtkXMLDataElement *element)
Write the name element for the specified vertex.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkAbstractArray * EdgeWeightArray
void WriteTreeLevelElement(vtkTree *input, vtkXMLDataElement *rootElement, const char *elementName, const char *attributeName)
Check for an optional, tree-level element and write it out if it is found.
void WriteBranchLengthAttribute(vtkTree *input, vtkIdType vertex, vtkXMLDataElement *element)
Write the branch length attribute for the specified vertex.
int StartFile() override
vtkTree * GetInput(int port)
Get the input to this writer.
void WriteCladeElement(vtkTree *input, vtkIdType vertex, vtkXMLDataElement *parentElement)
Convert one vertex to PhyloXML.
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void WriteTreeLevelProperties(vtkTree *input, vtkXMLDataElement *rootElement)
Search for any tree-level properties and write them out if they are found.
vtkTree * GetInput()
Get the input to this writer.
int WriteData() override
vtkSmartPointer< vtkStringArray > Blacklist
void IgnoreArray(const char *arrayName)
Do not include name the VertexData array in the PhyloXML output of this writer.
vtkInformation * InputInformation
int EndFile() override
vtkAbstractArray * NodeNameArray
static vtkPhyloXMLTreeWriter * New()
void WriteColorElement(vtkTree *input, vtkIdType vertex, vtkXMLDataElement *element)
Write the color element and its subelements (red, green, blue) for the specified vertex.
const char * GetArrayAttribute(vtkAbstractArray *array, const char *attributeName)
Get the value of the requested attribute from the specified array's vtkInformation.
const char * GetDataSetName() override
void WriteConfidenceElement(vtkTree *input, vtkIdType vertex, vtkXMLDataElement *element)
Write the confidence element for the specified vertex.
void WritePropertyElement(vtkAbstractArray *array, vtkIdType vertex, vtkXMLDataElement *element)
Write a property element as a child of the specified vtkXMLDataElement.
~vtkPhyloXMLTreeWriter() override=default
const char * GetDefaultFileExtension() override
Get the default file extension for files written by this writer.
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:38
a vtkAbstractArray subclass for strings
A rooted tree data structure.
Definition: vtkTree.h:55
Represents an XML element and those nested inside.
Superclass for VTK's XML file writers.
Definition: vtkXMLWriter.h:54
@ info
Definition: vtkX3D.h:376
@ port
Definition: vtkX3D.h:447
int vtkIdType
Definition: vtkType.h:315