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 =========================================================================*/
37 #ifndef vtkPhyloXMLTreeReader_h
38 #define vtkPhyloXMLTreeReader_h
39 
40 #include "vtkIOInfovisModule.h" // For export macro
41 #include "vtkSmartPointer.h" // For SP ivar
42 #include "vtkXMLReader.h"
43 
44 class vtkBitArray;
46 class vtkTree;
47 class vtkXMLDataElement;
48 
50 {
51 public:
52  static vtkPhyloXMLTreeReader *New();
54  void PrintSelf(ostream& os, vtkIndent indent);
55 
57 
58  vtkTree *GetOutput();
59  vtkTree *GetOutput(int idx);
61 
62 protected:
65 
67  virtual void ReadXMLData();
68 
70 
73  void ReadXMLElement(vtkXMLDataElement *element, vtkMutableDirectedGraph *g,
74  vtkIdType vertex);
76 
78 
82  vtkIdType ReadCladeElement(vtkXMLDataElement *element,
85 
87 
89  void ReadNameElement(vtkXMLDataElement *element, vtkMutableDirectedGraph *g,
90  vtkIdType vertex);
92 
94 
95  void ReadDescriptionElement(vtkXMLDataElement *element,
98 
100 
103  void ReadPropertyElement(vtkXMLDataElement *element,
106 
108 
112  void ReadBranchLengthElement(vtkXMLDataElement *element,
115 
117 
119  void ReadConfidenceElement(vtkXMLDataElement *element,
122 
124 
127  void ReadColorElement(vtkXMLDataElement *element, vtkMutableDirectedGraph *g,
128  vtkIdType vertex);
130 
133  void PropagateBranchColor(vtkTree *tree);
134 
136  void CountNodes(vtkXMLDataElement *element);
137 
140  std::string GetTrimmedString(const char *input);
141 
144  std::string GetStringBeforeColon(const char *input);
145 
148  std::string GetStringAfterColon(const char *input);
149 
150  virtual int FillOutputPortInformation(int, vtkInformation*);
151  virtual const char* GetDataSetName();
152  void SetOutput(vtkTree *output);
153  virtual void SetupEmptyOutput();
154 
155 private:
156  vtkIdType NumberOfNodes;
157  bool HasBranchColor;
158  vtkSmartPointer<vtkBitArray> ColoredVertices;
159  vtkPhyloXMLTreeReader(const vtkPhyloXMLTreeReader&); // Not implemented.
160  void operator=(const vtkPhyloXMLTreeReader&); // Not implemented.
161 };
162 
163 #endif
virtual const char * GetDataSetName()=0
virtual void SetupEmptyOutput()=0
Represents an XML element and those nested inside.
void PrintSelf(ostream &os, vtkIndent indent)
Store vtkAlgorithm input/output information.
#define VTKIOINFOVIS_EXPORT
virtual void ReadXMLData()
int vtkIdType
Definition: vtkType.h:275
virtual int FillOutputPortInformation(int port, vtkInformation *info)
a simple class to control print indentation
Definition: vtkIndent.h:38
An editable directed graph.
read vtkTree from PhyloXML formatted file
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:35
static vtkAlgorithm * New()
A rooted tree data structure.
Definition: vtkTree.h:59
Superclass for VTK's XML format readers.
Definition: vtkXMLReader.h:41