VTK
dox/Views/Infovis/vtkHierarchicalGraphPipeline.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkHierarchicalGraphPipeline.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 /*-------------------------------------------------------------------------
00016   Copyright 2008 Sandia Corporation.
00017   Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
00018   the U.S. Government retains certain rights in this software.
00019 -------------------------------------------------------------------------*/
00030 #include "vtkViewsInfovisModule.h" // For export macro
00031 #include "vtkObject.h"
00032 
00033 class vtkActor;
00034 class vtkActor2D;
00035 class vtkAlgorithmOutput;
00036 class vtkApplyColors;
00037 class vtkDataRepresentation;
00038 class vtkDynamic2DLabelMapper;
00039 class vtkEdgeCenters;
00040 class vtkGraphHierarchicalBundleEdges;
00041 class vtkGraphToPolyData;
00042 class vtkPolyDataMapper;
00043 class vtkRenderView;
00044 class vtkSplineGraphEdges;
00045 class vtkSelection;
00046 class vtkTextProperty;
00047 class vtkViewTheme;
00048 
00049 class VTKVIEWSINFOVIS_EXPORT vtkHierarchicalGraphPipeline : public vtkObject
00050 {
00051 public:
00052   static vtkHierarchicalGraphPipeline* New();
00053   vtkTypeMacro(vtkHierarchicalGraphPipeline, vtkObject);
00054   void PrintSelf(ostream& os, vtkIndent indent);
00055 
00057 
00058   vtkGetObjectMacro(Actor, vtkActor);
00060 
00062 
00063   vtkGetObjectMacro(LabelActor, vtkActor2D);
00065 
00067 
00068   virtual void SetBundlingStrength(double strength);
00069   virtual double GetBundlingStrength();
00071 
00073 
00074   virtual void SetLabelArrayName(const char* name);
00075   virtual const char* GetLabelArrayName();
00077 
00079 
00080   virtual void SetLabelVisibility(bool vis);
00081   virtual bool GetLabelVisibility();
00082   vtkBooleanMacro(LabelVisibility, bool);
00084 
00086 
00087   virtual void SetLabelTextProperty(vtkTextProperty* prop);
00088   virtual vtkTextProperty* GetLabelTextProperty();
00090 
00092 
00093   virtual void SetColorArrayName(const char* name);
00094   virtual const char* GetColorArrayName();
00096 
00098 
00099   virtual void SetColorEdgesByArray(bool vis);
00100   virtual bool GetColorEdgesByArray();
00101   vtkBooleanMacro(ColorEdgesByArray, bool);
00103 
00105 
00106   virtual void SetVisibility(bool vis);
00107   virtual bool GetVisibility();
00108   vtkBooleanMacro(Visibility, bool);
00110 
00113   virtual vtkSelection* ConvertSelection(vtkDataRepresentation* rep, vtkSelection* sel);
00114 
00116 
00119   virtual void PrepareInputConnections(
00120     vtkAlgorithmOutput* graphConn,
00121     vtkAlgorithmOutput* treeConn,
00122     vtkAlgorithmOutput* annConn);
00124 
00126   virtual void ApplyViewTheme(vtkViewTheme* theme);
00127 
00129 
00130   vtkSetStringMacro(HoverArrayName);
00131   vtkGetStringMacro(HoverArrayName);
00133 
00135 
00138   virtual void SetSplineType(int type);
00139   virtual int GetSplineType();
00141 
00143   void RegisterProgress(vtkRenderView* view);
00144 
00145 protected:
00146   vtkHierarchicalGraphPipeline();
00147   ~vtkHierarchicalGraphPipeline();
00148 
00149   vtkApplyColors*                  ApplyColors;
00150   vtkGraphHierarchicalBundleEdges* Bundle;
00151   vtkGraphToPolyData*              GraphToPoly;
00152   vtkSplineGraphEdges*             Spline;
00153   vtkPolyDataMapper*               Mapper;
00154   vtkActor*                        Actor;
00155   vtkTextProperty*                 TextProperty;
00156   vtkEdgeCenters*                  EdgeCenters;
00157   vtkDynamic2DLabelMapper*         LabelMapper;
00158   vtkActor2D*                      LabelActor;
00159 
00160   char* HoverArrayName;
00161 
00162   vtkSetStringMacro(ColorArrayNameInternal);
00163   vtkGetStringMacro(ColorArrayNameInternal);
00164   char* ColorArrayNameInternal;
00165 
00166   vtkSetStringMacro(LabelArrayNameInternal);
00167   vtkGetStringMacro(LabelArrayNameInternal);
00168   char* LabelArrayNameInternal;
00169 
00170 private:
00171   vtkHierarchicalGraphPipeline(const vtkHierarchicalGraphPipeline&); // Not implemented
00172   void operator=(const vtkHierarchicalGraphPipeline&); // Not implemented
00173 };
00174