VTK
dox/Views/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 "vtkObject.h"
00031 
00032 class vtkActor;
00033 class vtkActor2D;
00034 class vtkAlgorithmOutput;
00035 class vtkApplyColors;
00036 class vtkDataRepresentation;
00037 class vtkDynamic2DLabelMapper;
00038 class vtkEdgeCenters;
00039 class vtkGraphHierarchicalBundleEdges;
00040 class vtkGraphToPolyData;
00041 class vtkPolyDataMapper;
00042 class vtkRenderView;
00043 class vtkSplineGraphEdges;
00044 class vtkSelection;
00045 class vtkTextProperty;
00046 class vtkViewTheme;
00047 
00048 class VTK_VIEWS_EXPORT vtkHierarchicalGraphPipeline : public vtkObject
00049 {
00050 public:
00051   static vtkHierarchicalGraphPipeline* New();
00052   vtkTypeMacro(vtkHierarchicalGraphPipeline, vtkObject);
00053   void PrintSelf(ostream& os, vtkIndent indent);
00054 
00056 
00057   vtkGetObjectMacro(Actor, vtkActor);
00059 
00061 
00062   vtkGetObjectMacro(LabelActor, vtkActor2D);
00064 
00066 
00067   virtual void SetBundlingStrength(double strength);
00068   virtual double GetBundlingStrength();
00070 
00072 
00073   virtual void SetLabelArrayName(const char* name);
00074   virtual const char* GetLabelArrayName();
00076 
00078 
00079   virtual void SetLabelVisibility(bool vis);
00080   virtual bool GetLabelVisibility();
00081   vtkBooleanMacro(LabelVisibility, bool);
00083 
00085 
00086   virtual void SetLabelTextProperty(vtkTextProperty* prop);
00087   virtual vtkTextProperty* GetLabelTextProperty();
00089 
00091 
00092   virtual void SetColorArrayName(const char* name);
00093   virtual const char* GetColorArrayName();
00095 
00097 
00098   virtual void SetColorEdgesByArray(bool vis);
00099   virtual bool GetColorEdgesByArray();
00100   vtkBooleanMacro(ColorEdgesByArray, bool);
00102 
00104 
00105   virtual void SetVisibility(bool vis);
00106   virtual bool GetVisibility();
00107   vtkBooleanMacro(Visibility, bool);
00109 
00112   virtual vtkSelection* ConvertSelection(vtkDataRepresentation* rep, vtkSelection* sel);
00113 
00115 
00118   virtual void PrepareInputConnections(
00119     vtkAlgorithmOutput* graphConn,
00120     vtkAlgorithmOutput* treeConn,
00121     vtkAlgorithmOutput* annConn);
00123 
00125   virtual void ApplyViewTheme(vtkViewTheme* theme);
00126 
00128 
00129   vtkSetStringMacro(HoverArrayName);
00130   vtkGetStringMacro(HoverArrayName);
00132 
00134 
00137   virtual void SetSplineType(int type);
00138   virtual int GetSplineType();
00140 
00142   void RegisterProgress(vtkRenderView* view);
00143 
00144 protected:
00145   vtkHierarchicalGraphPipeline();
00146   ~vtkHierarchicalGraphPipeline();
00147 
00148   vtkApplyColors*                  ApplyColors;
00149   vtkGraphHierarchicalBundleEdges* Bundle;
00150   vtkGraphToPolyData*              GraphToPoly;
00151   vtkSplineGraphEdges*             Spline;
00152   vtkPolyDataMapper*               Mapper;
00153   vtkActor*                        Actor;
00154   vtkTextProperty*                 TextProperty;
00155   vtkEdgeCenters*                  EdgeCenters;
00156   vtkDynamic2DLabelMapper*         LabelMapper;
00157   vtkActor2D*                      LabelActor;
00158 
00159   char* HoverArrayName;
00160 
00161   vtkSetStringMacro(ColorArrayNameInternal);
00162   vtkGetStringMacro(ColorArrayNameInternal);
00163   char* ColorArrayNameInternal;
00164 
00165   vtkSetStringMacro(LabelArrayNameInternal);
00166   vtkGetStringMacro(LabelArrayNameInternal);
00167   char* LabelArrayNameInternal;
00168 
00169 private:
00170   vtkHierarchicalGraphPipeline(const vtkHierarchicalGraphPipeline&); // Not implemented
00171   void operator=(const vtkHierarchicalGraphPipeline&); // Not implemented
00172 };
00173