VTK
vtkPhyloXMLTreeReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPhyloXMLTreeReader.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 =========================================================================*/
35 #ifndef vtkPhyloXMLTreeReader_h
36 #define vtkPhyloXMLTreeReader_h
37 
38 #include "vtkIOInfovisModule.h" // For export macro
39 #include "vtkSmartPointer.h" // For SP ivar
40 #include "vtkXMLReader.h"
41 
42 class vtkBitArray;
44 class vtkTree;
45 class vtkXMLDataElement;
46 
47 class VTKIOINFOVIS_EXPORT vtkPhyloXMLTreeReader : public vtkXMLReader
48 {
49 public:
50  static vtkPhyloXMLTreeReader *New();
52  void PrintSelf(ostream& os, vtkIndent indent) override;
53 
55 
58  vtkTree *GetOutput();
59  vtkTree *GetOutput(int idx);
61 
62 protected:
64  ~vtkPhyloXMLTreeReader() override;
65 
69  void ReadXMLData() override;
70 
76  void ReadXMLElement(vtkXMLDataElement *element, vtkMutableDirectedGraph *g,
77  vtkIdType vertex);
78 
85  vtkIdType ReadCladeElement(vtkXMLDataElement *element,
87 
92  void ReadNameElement(vtkXMLDataElement *element, vtkMutableDirectedGraph *g,
93  vtkIdType vertex);
94 
98  void ReadDescriptionElement(vtkXMLDataElement *element,
100 
106  void ReadPropertyElement(vtkXMLDataElement *element,
108 
114  void ReadBranchLengthElement(vtkXMLDataElement *element,
116 
121  void ReadConfidenceElement(vtkXMLDataElement *element,
123 
128  void ReadColorElement(vtkXMLDataElement *element, vtkMutableDirectedGraph *g,
129  vtkIdType vertex);
130 
135  void PropagateBranchColor(vtkTree *tree);
136 
140  void CountNodes(vtkXMLDataElement *element);
141 
146  std::string GetTrimmedString(const char *input);
147 
152  std::string GetStringBeforeColon(const char *input);
153 
158  std::string GetStringAfterColon(const char *input);
159 
160  int FillOutputPortInformation(int, vtkInformation*) override;
161  const char* GetDataSetName() override;
162  void SetOutput(vtkTree *output);
163  void SetupEmptyOutput() override;
164 
165 private:
166  vtkIdType NumberOfNodes;
167  bool HasBranchColor;
168  vtkSmartPointer<vtkBitArray> ColoredVertices;
170  void operator=(const vtkPhyloXMLTreeReader&) = delete;
171 };
172 
173 #endif
vtkXMLReader.h
vtkMutableDirectedGraph
An editable directed graph.
Definition: vtkMutableDirectedGraph.h:45
vtkIdType
int vtkIdType
Definition: vtkType.h:347
vtkSmartPointer< vtkBitArray >
vtkTree
A rooted tree data structure.
Definition: vtkTree.h:54
vtkXMLReader::ReadXMLData
virtual void ReadXMLData()
vtkXMLReader::SetupEmptyOutput
virtual void SetupEmptyOutput()=0
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkXMLReader::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkSmartPointer.h
vtkXMLReader::GetDataSetName
virtual const char * GetDataSetName()=0
vtkXMLDataElement
Represents an XML element and those nested inside.
Definition: vtkXMLDataElement.h:36
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:80
vtkAlgorithm::New
static vtkAlgorithm * New()
vtkX3D::string
Definition: vtkX3D.h:490
vtkPhyloXMLTreeReader
read vtkTree from PhyloXML formatted file
Definition: vtkPhyloXMLTreeReader.h:47
vtkBitArray
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:33
vtkXMLReader
Superclass for VTK's XML format readers.
Definition: vtkXMLReader.h:43
vtkAlgorithm::FillOutputPortInformation
virtual int FillOutputPortInformation(int port, vtkInformation *info)
Fill the output port information objects for this algorithm.