VTK  9.3.20240328
vtkTreeHeatmapItem.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
27 #ifndef vtkTreeHeatmapItem_h
28 #define vtkTreeHeatmapItem_h
29 
30 #include "vtkContextItem.h"
31 #include "vtkViewsInfovisModule.h" // For export macro
32 
33 #include "vtkNew.h" // For vtkNew ivars
34 #include "vtkSmartPointer.h" // For vtkSmartPointer ivars
35 #include <map> // For string lookup tables
36 #include <vector> // For lookup tables
37 
38 VTK_ABI_NAMESPACE_BEGIN
39 class vtkDendrogramItem;
40 class vtkHeatmapItem;
41 class vtkTable;
42 class vtkTree;
43 
44 class VTKVIEWSINFOVIS_EXPORT vtkTreeHeatmapItem : public vtkContextItem
45 {
46 public:
49  void PrintSelf(ostream& os, vtkIndent indent) override;
50 
58  virtual void SetTree(vtkTree* tree);
59 
64 
70  virtual void SetColumnTree(vtkTree* tree);
71 
77 
83  virtual void SetTable(vtkTable* table);
84 
89 
91 
95  void SetDendrogram(vtkDendrogramItem* dendrogram);
97 
99 
103  void SetHeatmap(vtkHeatmapItem* heatmap);
105 
110  void ReorderTable();
111 
118 
125 
131 
136 
140  void GetBounds(double bounds[4]);
141 
145  void GetCenter(double center[2]);
146 
150  void GetSize(double size[2]);
151 
161  void CollapseToNumberOfLeafNodes(unsigned int n);
162 
164 
168  void SetTreeLineWidth(float width);
170 
175 
180  void SetTreeColorArray(const char* arrayName);
181 
185  bool Hit(const vtkContextMouseEvent& mouse) override;
186 
191  bool MouseDoubleClickEvent(const vtkContextMouseEvent& event) override;
192 
193 protected:
196 
200  bool Paint(vtkContext2D* painter) override;
201 
206 
211 
216 
217 private:
218  vtkTreeHeatmapItem(const vtkTreeHeatmapItem&) = delete;
219  void operator=(const vtkTreeHeatmapItem&) = delete;
220 
221  vtkMTimeType TreeHeatmapBuildTime;
222 };
223 
224 VTK_ABI_NAMESPACE_END
225 #endif
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:69
base class for items that are part of a vtkContextScene.
data structure to represent mouse events.
A 2D graphics item for rendering a tree as a dendrogram.
A 2D graphics item for rendering a heatmap.
a simple class to control print indentation
Definition: vtkIndent.h:108
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:168
A 2D graphics item for rendering a tree and an associated heatmap.
vtkSmartPointer< vtkDendrogramItem > Dendrogram
vtkTable * GetTable()
Get the table that this item draws.
void ReverseTableColumns()
Reverse the order of the rows in our input table.
vtkSmartPointer< vtkDendrogramItem > ColumnDendrogram
void GetBounds(double bounds[4])
Get the bounds of this item (xMin, xMax, yMin, Max) in pixel coordinates.
void SetTreeColorArray(const char *arrayName)
Deprecated.
bool MouseDoubleClickEvent(const vtkContextMouseEvent &event) override
Propagate any double click onto the dendrogram to check if any subtrees should be collapsed or expand...
vtkSmartPointer< vtkHeatmapItem > Heatmap
void SetHeatmap(vtkHeatmapItem *heatmap)
Get/Set the heatmap contained by this item.
~vtkTreeHeatmapItem() override
vtkDendrogramItem * GetDendrogram()
Get/Set the dendrogram contained by this item.
void SetOrientation(int orientation)
Set which way the tree / heatmap should face within the visualization.
void ReverseTableRows()
Reverse the order of the rows in our input table.
virtual void SetTree(vtkTree *tree)
Set the tree that this item draws.
void CollapseHeatmapRows()
Mark heatmap rows as hidden when a subtree is collapsed.
static vtkTreeHeatmapItem * New()
void SetDendrogram(vtkDendrogramItem *dendrogram)
Get/Set the dendrogram contained by this item.
void SetTreeLineWidth(float width)
Get/Set how wide the edges of the trees should be.
void CollapseToNumberOfLeafNodes(unsigned int n)
Collapse subtrees until there are only n leaf nodes left in the tree.
int GetOrientation()
Get the current orientation.
virtual void SetColumnTree(vtkTree *tree)
Set a tree to be drawn for the columns of the heatmap.
void GetSize(double size[2])
Get the size of this item in pixel coordinates.
void ReorderTable()
Reorder the rows in the table so they match the order of the leaf nodes in our tree.
bool Hit(const vtkContextMouseEvent &mouse) override
Returns true if the transform is interactive, false otherwise.
virtual void SetTable(vtkTable *table)
Set the table that this item draws.
vtkTree * GetPrunedTree()
Deprecated.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTree * GetTree()
Get the tree that this item draws.
void GetCenter(double center[2])
Get the center point of this item in pixel coordinates.
bool Paint(vtkContext2D *painter) override
Paints the tree & associated table as a heatmap.
vtkHeatmapItem * GetHeatmap()
Get/Set the heatmap contained by this item.
float GetTreeLineWidth()
Get/Set how wide the edges of the trees should be.
vtkTree * GetColumnTree()
Get the tree that represents the columns of the heatmap (if one has been set).
void CollapseHeatmapColumns()
Mark heatmap columns as hidden when a subtree is collapsed.
A rooted tree data structure.
Definition: vtkTree.h:145
@ orientation
Definition: vtkX3D.h:262
@ center
Definition: vtkX3D.h:230
@ size
Definition: vtkX3D.h:253
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:270