00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00032 #ifndef __vtkGraphMapper_h
00033 #define __vtkGraphMapper_h
00034
00035 #include "vtkMapper.h"
00036
00037 #include "vtkSmartPointer.h"
00038
00039 class vtkActor2D;
00040 class vtkArrayMap;
00041 class vtkCamera;
00042 class vtkFollower;
00043 class vtkGraph;
00044 class vtkGlyph3D;
00045 class vtkGraphToPolyData;
00046 class vtkIconGlyphFilter;
00047 class vtkCellCenters;
00048 class vtkPolyData;
00049 class vtkPolyDataMapper;
00050 class vtkPolyDataMapper2D;
00051 class vtkLookupTable;
00052 class vtkTransformCoordinateSystems;
00053 class vtkTexture;
00054 class vtkTexturedActor2D;
00055 class vtkVertexGlyphFilter;
00056 class vtkViewTheme;
00057
00058
00059
00060 class VTK_INFOVIS_EXPORT vtkGraphMapper : public vtkMapper
00061 {
00062 public:
00063 static vtkGraphMapper *New();
00064 vtkTypeRevisionMacro(vtkGraphMapper,vtkMapper);
00065 void PrintSelf(ostream& os, vtkIndent indent);
00066 void Render(vtkRenderer *ren, vtkActor *act);
00067
00069
00070 void SetVertexColorArrayName(const char* name);
00071 const char* GetVertexColorArrayName();
00073
00075
00076 void SetColorVertices(bool vis);
00077 bool GetColorVertices();
00078 void ColorVerticesOn();
00079 void ColorVerticesOff();
00081
00083
00087 void SetScaledGlyphs(bool arg);
00088 vtkGetMacro(ScaledGlyphs,bool);
00089 vtkBooleanMacro(ScaledGlyphs, bool);
00091
00093
00094 vtkSetStringMacro(ScalingArrayName);
00095 vtkGetStringMacro(ScalingArrayName);
00097
00099
00100 void SetEdgeVisibility(bool vis);
00101 bool GetEdgeVisibility();
00102 vtkBooleanMacro(EdgeVisibility, bool);
00104
00106
00107 void SetEdgeColorArrayName(const char* name);
00108 const char* GetEdgeColorArrayName();
00110
00112
00113 void SetColorEdges(bool vis);
00114 bool GetColorEdges();
00115 void ColorEdgesOn();
00116 void ColorEdgesOff();
00118
00120
00121 void SetIconArrayName(const char* name);
00122 const char* GetIconArrayName();
00124
00128 void AddIconType(char *type, int index);
00129
00131 void ClearIconTypes();
00132
00134
00136 void SetIconSize(int *size);
00137 int *GetIconSize();
00139
00142 void SetIconAlignment(int alignment);
00143
00145
00146 vtkTexture *GetIconTexture();
00147 void SetIconTexture(vtkTexture *texture);
00149
00151
00152 void SetIconVisibility(bool vis);
00153 bool GetIconVisibility();
00154 vtkBooleanMacro(IconVisibility, bool);
00156
00158
00159 vtkGetMacro(VertexPointSize,float);
00160 void SetVertexPointSize(float size);
00162
00164
00165 vtkGetMacro(EdgeLineWidth,float);
00166 void SetEdgeLineWidth(float width);
00168
00170 virtual void ApplyViewTheme(vtkViewTheme* theme);
00171
00175 void ReleaseGraphicsResources(vtkWindow *);
00176
00178 unsigned long GetMTime();
00179
00181
00182 void SetInput(vtkGraph *input);
00183 vtkGraph *GetInput();
00185
00187
00189 virtual double *GetBounds();
00190 virtual void GetBounds(double* bounds)
00191 { Superclass::GetBounds(bounds); }
00193
00194 protected:
00195 vtkGraphMapper();
00196 ~vtkGraphMapper();
00197
00199
00200 vtkGetStringMacro(VertexColorArrayNameInternal);
00201 vtkSetStringMacro(VertexColorArrayNameInternal);
00202 vtkGetStringMacro(EdgeColorArrayNameInternal);
00203 vtkSetStringMacro(EdgeColorArrayNameInternal);
00204 char* VertexColorArrayNameInternal;
00205 char* EdgeColorArrayNameInternal;
00207
00208 vtkGetStringMacro(IconArrayNameInternal);
00209 vtkSetStringMacro(IconArrayNameInternal);
00210 char* IconArrayNameInternal;
00211
00212
00213 vtkSmartPointer<vtkGlyph3D> CircleGlyph;
00214 vtkSmartPointer<vtkGlyph3D> CircleOutlineGlyph;
00215
00216 vtkSmartPointer<vtkGraphToPolyData> GraphToPoly;
00217 vtkSmartPointer<vtkVertexGlyphFilter> VertexGlyph;
00218 vtkSmartPointer<vtkIconGlyphFilter> IconGlyph;
00219 vtkSmartPointer<vtkArrayMap> IconTypeToIndex;
00220 vtkSmartPointer<vtkTransformCoordinateSystems> IconTransform;
00221
00222 vtkSmartPointer<vtkPolyDataMapper> EdgeMapper;
00223 vtkSmartPointer<vtkPolyDataMapper> VertexMapper;
00224 vtkSmartPointer<vtkPolyDataMapper> OutlineMapper;
00225 vtkSmartPointer<vtkPolyDataMapper2D> IconMapper;
00226
00227 vtkSmartPointer<vtkActor> EdgeActor;
00228 vtkSmartPointer<vtkActor> VertexActor;
00229 vtkSmartPointer<vtkActor> OutlineActor;
00230 vtkSmartPointer<vtkTexturedActor2D> IconActor;
00231
00232
00233 vtkSmartPointer<vtkLookupTable> EdgeLookupTable;
00234 vtkSmartPointer<vtkLookupTable> VertexLookupTable;
00235
00236
00237 virtual void ReportReferences(vtkGarbageCollector*);
00238
00239
00240 virtual int FillInputPortInformation(int port, vtkInformation* info);
00241
00242 private:
00243 vtkGraphMapper(const vtkGraphMapper&);
00244 void operator=(const vtkGraphMapper&);
00245
00246
00247 vtkPolyData* CreateCircle(bool filled);
00248
00249 float VertexPointSize;
00250 float EdgeLineWidth;
00251 bool ScaledGlyphs;
00252 char* ScalingArrayName;
00253 };
00254
00255 #endif
00256
00257