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
vtkStdString.h
vtkXMLWriter::GetDefaultFileExtension
virtual const char * GetDefaultFileExtension()=0
Get the default file extension for files written by this writer.
vtkIdType
int vtkIdType
Definition: vtkType.h:338
vtkAlgorithm::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
vtkPhyloXMLTreeWriter::NodeNameArrayName
vtkStdString NodeNameArrayName
Definition: vtkPhyloXMLTreeWriter.h:152
vtkXMLWriter.h
vtkPhyloXMLTreeWriter::EdgeWeightArrayName
vtkStdString EdgeWeightArrayName
Definition: vtkPhyloXMLTreeWriter.h:151
vtkSmartPointer< vtkStringArray >
vtkPhyloXMLTreeWriter::NodeNameArray
vtkAbstractArray * NodeNameArray
Definition: vtkPhyloXMLTreeWriter.h:155
vtkXMLWriter::EndFile
virtual int EndFile()
vtkTree
A rooted tree data structure.
Definition: vtkTree.h:54
vtkPhyloXMLTreeWriter::InputInformation
vtkInformation * InputInformation
Definition: vtkPhyloXMLTreeWriter.h:149
vtkX3D::port
@ port
Definition: vtkX3D.h:453
vtkXMLWriter
Superclass for VTK's XML file writers.
Definition: vtkXMLWriter.h:61
vtkPhyloXMLTreeWriter::~vtkPhyloXMLTreeWriter
~vtkPhyloXMLTreeWriter() override
Definition: vtkPhyloXMLTreeWriter.h:88
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkPhyloXMLTreeWriter
write vtkTree data to PhyloXML format.
Definition: vtkPhyloXMLTreeWriter.h:35
vtkSmartPointer.h
vtkXMLWriter::GetDataSetName
virtual const char * GetDataSetName()=0
vtkXMLWriter::WriteData
virtual int WriteData()
Definition: vtkXMLWriter.h:359
vtkXMLDataElement
Represents an XML element and those nested inside.
Definition: vtkXMLDataElement.h:36
vtkXMLWriter::GetInput
vtkDataObject * GetInput()
Definition: vtkXMLWriter.h:239
vtkPhyloXMLTreeWriter::Blacklist
vtkSmartPointer< vtkStringArray > Blacklist
Definition: vtkPhyloXMLTreeWriter.h:156
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:75
vtkPhyloXMLTreeWriter::EdgeWeightArray
vtkAbstractArray * EdgeWeightArray
Definition: vtkPhyloXMLTreeWriter.h:154
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:73
vtkX3D::info
@ info
Definition: vtkX3D.h:382
vtkAlgorithm::New
static vtkAlgorithm * New()
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:36
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:34
vtkXMLWriter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkXMLWriter::StartFile
virtual int StartFile()