00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00047 #ifndef __vtkGraphLayoutView_h
00048 #define __vtkGraphLayoutView_h
00049
00050 #include "vtkRenderView.h"
00051
00052 class vtkEdgeLayoutStrategy;
00053 class vtkGraphLayoutStrategy;
00054 class vtkRenderedGraphRepresentation;
00055 class vtkViewTheme;
00056
00057 class VTK_VIEWS_EXPORT vtkGraphLayoutView : public vtkRenderView
00058 {
00059 public:
00060 static vtkGraphLayoutView *New();
00061 vtkTypeMacro(vtkGraphLayoutView, vtkRenderView);
00062 void PrintSelf(ostream& os, vtkIndent indent);
00063
00065
00066 void SetVertexLabelArrayName(const char* name);
00067 const char* GetVertexLabelArrayName();
00069
00071
00072 void SetEdgeLabelArrayName(const char* name);
00073 const char* GetEdgeLabelArrayName();
00075
00077
00078 void SetVertexLabelVisibility(bool vis);
00079 bool GetVertexLabelVisibility();
00080 vtkBooleanMacro(VertexLabelVisibility, bool);
00082
00084
00086 void SetHideVertexLabelsOnInteraction(bool vis);
00087 bool GetHideVertexLabelsOnInteraction();
00088 vtkBooleanMacro(HideVertexLabelsOnInteraction, bool);
00090
00092
00093 void SetEdgeVisibility(bool vis);
00094 bool GetEdgeVisibility();
00095 vtkBooleanMacro(EdgeVisibility, bool);
00097
00099
00100 void SetEdgeLabelVisibility(bool vis);
00101 bool GetEdgeLabelVisibility();
00102 vtkBooleanMacro(EdgeLabelVisibility, bool);
00104
00106
00108 void SetHideEdgeLabelsOnInteraction(bool vis);
00109 bool GetHideEdgeLabelsOnInteraction();
00110 vtkBooleanMacro(HideEdgeLabelsOnInteraction, bool);
00112
00114
00115 void SetVertexColorArrayName(const char* name);
00116 const char* GetVertexColorArrayName();
00118
00120
00121 void SetColorVertices(bool vis);
00122 bool GetColorVertices();
00123 vtkBooleanMacro(ColorVertices, bool);
00125
00127
00128 void SetEdgeColorArrayName(const char* name);
00129 const char* GetEdgeColorArrayName();
00131
00133
00134 void SetColorEdges(bool vis);
00135 bool GetColorEdges();
00136 vtkBooleanMacro(ColorEdges, bool);
00138
00140
00141 void SetEnabledEdgesArrayName(const char* name);
00142 const char* GetEnabledEdgesArrayName();
00144
00146
00147 void SetEnableEdgesByArray(bool vis);
00148 int GetEnableEdgesByArray();
00150
00152
00153 void SetEnabledVerticesArrayName(const char* name);
00154 const char* GetEnabledVerticesArrayName();
00156
00158
00159 void SetEnableVerticesByArray(bool vis);
00160 int GetEnableVerticesByArray();
00162
00164
00165 void SetScalingArrayName(const char* name);
00166 const char* GetScalingArrayName();
00168
00170
00171 void SetScaledGlyphs(bool arg);
00172 bool GetScaledGlyphs();
00173 vtkBooleanMacro(ScaledGlyphs, bool);
00175
00177
00189 void SetLayoutStrategy(const char* name);
00190 void SetLayoutStrategyToRandom()
00191 { this->SetLayoutStrategy("Random"); }
00192 void SetLayoutStrategyToForceDirected()
00193 { this->SetLayoutStrategy("Force Directed"); }
00194 void SetLayoutStrategyToSimple2D()
00195 { this->SetLayoutStrategy("Simple 2D"); }
00196 void SetLayoutStrategyToClustering2D()
00197 { this->SetLayoutStrategy("Clustering 2D"); }
00198 void SetLayoutStrategyToCommunity2D()
00199 { this->SetLayoutStrategy("Community 2D"); }
00200 void SetLayoutStrategyToFast2D()
00201 { this->SetLayoutStrategy("Fast 2D"); }
00202 void SetLayoutStrategyToPassThrough()
00203 { this->SetLayoutStrategy("Pass Through"); }
00204 void SetLayoutStrategyToCircular()
00205 { this->SetLayoutStrategy("Circular"); }
00206 void SetLayoutStrategyToTree()
00207 { this->SetLayoutStrategy("Tree"); }
00208 void SetLayoutStrategyToCosmicTree()
00209 { this->SetLayoutStrategy("Cosmic Tree"); }
00210 void SetLayoutStrategyToCone()
00211 { this->SetLayoutStrategy("Cone"); }
00212 void SetLayoutStrategyToSpanTree()
00213 { this->SetLayoutStrategy("Span Tree"); }
00214 const char* GetLayoutStrategyName();
00216
00218
00221 vtkGraphLayoutStrategy* GetLayoutStrategy();
00222 void SetLayoutStrategy(vtkGraphLayoutStrategy *s);
00224
00226
00230 void SetEdgeLayoutStrategy(const char* name);
00231 void SetEdgeLayoutStrategyToArcParallel()
00232 { this->SetEdgeLayoutStrategy("Arc Parallel"); }
00233 void SetEdgeLayoutStrategyToPassThrough()
00234 { this->SetEdgeLayoutStrategy("Pass Through"); }
00235 const char* GetEdgeLayoutStrategyName();
00237
00239
00242 vtkEdgeLayoutStrategy* GetEdgeLayoutStrategy();
00243 void SetEdgeLayoutStrategy(vtkEdgeLayoutStrategy *s);
00245
00249 void AddIconType(char *type, int index);
00250
00252 void ClearIconTypes();
00253
00256 void SetIconAlignment(int alignment);
00257
00259
00260 void SetIconVisibility(bool b);
00261 bool GetIconVisibility();
00262 vtkBooleanMacro(IconVisibility, bool);
00264
00266
00267 void SetIconArrayName(const char* name);
00268 const char* GetIconArrayName();
00270
00272
00273 void SetGlyphType(int type);
00274 int GetGlyphType();
00276
00278
00279 virtual void SetVertexLabelFontSize(const int size);
00280 virtual int GetVertexLabelFontSize();
00282
00284
00285 virtual void SetEdgeLabelFontSize(const int size);
00286 virtual int GetEdgeLabelFontSize();
00288
00290
00291 void SetEdgeScalarBarVisibility(bool vis);
00292 bool GetEdgeScalarBarVisibility();
00294
00296
00297 void SetVertexScalarBarVisibility(bool vis);
00298 bool GetVertexScalarBarVisibility();
00300
00302 void ZoomToSelection();
00303
00307 virtual int IsLayoutComplete();
00308
00313 virtual void UpdateLayout();
00314
00315 protected:
00316 vtkGraphLayoutView();
00317 ~vtkGraphLayoutView();
00318
00320
00322 virtual vtkDataRepresentation* CreateDefaultRepresentation(vtkAlgorithmOutput* conn);
00323 virtual vtkRenderedGraphRepresentation* GetGraphRepresentation();
00324
00325 virtual void ProcessEvents(vtkObject* caller, unsigned long eventId, void* callData);
00327
00328 private:
00329 vtkGraphLayoutView(const vtkGraphLayoutView&);
00330 void operator=(const vtkGraphLayoutView&);
00331 bool VertexLabelsRequested;
00332 bool EdgeLabelsRequested;
00333 bool Interacting;
00334 };
00335
00336 #endif