VTK
vtkTensorGlyph.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkTensorGlyph.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
82 #ifndef vtkTensorGlyph_h
83 #define vtkTensorGlyph_h
84 
85 #include "vtkFiltersCoreModule.h" // For export macro
86 #include "vtkPolyDataAlgorithm.h"
87 
88 class VTKFILTERSCORE_EXPORT vtkTensorGlyph : public vtkPolyDataAlgorithm
89 {
90 public:
92  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
93 
99  static vtkTensorGlyph *New();
100 
102 
108  void SetSourceData(vtkPolyData *source);
109  vtkPolyData *GetSource();
111 
113 
118  void SetSourceConnection(int id, vtkAlgorithmOutput* algOutput);
120  {
121  this->SetSourceConnection(0, algOutput);
122  }
124 
126 
129  vtkSetMacro(Scaling,int);
130  vtkGetMacro(Scaling,int);
131  vtkBooleanMacro(Scaling,int);
133 
135 
139  vtkSetMacro(ScaleFactor,double);
140  vtkGetMacro(ScaleFactor,double);
142 
144 
147  vtkSetMacro(ThreeGlyphs,int);
148  vtkGetMacro(ThreeGlyphs,int);
149  vtkBooleanMacro(ThreeGlyphs,int);
151 
153 
156  vtkSetMacro(Symmetric,int);
157  vtkGetMacro(Symmetric,int);
158  vtkBooleanMacro(Symmetric,int);
160 
162 
166  vtkSetMacro(Length,double);
167  vtkGetMacro(Length,double);
169 
171 
174  vtkSetMacro(ExtractEigenvalues,int);
175  vtkBooleanMacro(ExtractEigenvalues,int);
176  vtkGetMacro(ExtractEigenvalues,int);
178 
180 
185  vtkSetMacro(ColorGlyphs,int);
186  vtkGetMacro(ColorGlyphs,int);
187  vtkBooleanMacro(ColorGlyphs,int);
189 
190  enum
191  {
193  COLOR_BY_EIGENVALUES
194  };
195 
197 
207  vtkSetClampMacro(ColorMode, int, COLOR_BY_SCALARS, COLOR_BY_EIGENVALUES);
208  vtkGetMacro(ColorMode, int);
210  {this->SetColorMode(COLOR_BY_SCALARS);};
212  {this->SetColorMode(COLOR_BY_EIGENVALUES);};
214 
216 
221  vtkSetMacro(ClampScaling,int);
222  vtkGetMacro(ClampScaling,int);
223  vtkBooleanMacro(ClampScaling,int);
225 
227 
233  vtkSetMacro(MaxScaleFactor,double);
234  vtkGetMacro(MaxScaleFactor,double);
236 
237 protected:
238  vtkTensorGlyph();
239  ~vtkTensorGlyph() VTK_OVERRIDE;
240 
241  int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
242  int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
243  int FillInputPortInformation(int port, vtkInformation *info) VTK_OVERRIDE;
244 
245  int Scaling; // Determine whether scaling of geometry is performed
246  double ScaleFactor; // Scale factor to use to scale geometry
247  int ExtractEigenvalues; // Boolean controls eigenfunction extraction
248  int ColorGlyphs; // Boolean controls coloring with input scalar data
249  int ColorMode; // The coloring mode to use for the glyphs.
250  int ClampScaling; // Boolean controls whether scaling is clamped.
251  double MaxScaleFactor; // Maximum scale factor (ScaleFactor*eigenvalue)
252  int ThreeGlyphs; // Boolean controls drawing 1 or 3 glyphs
253  int Symmetric; // Boolean controls drawing a "mirror" of each glyph
254  double Length; // Distance, in x, from the origin to the end of the glyph
255 private:
256  vtkTensorGlyph(const vtkTensorGlyph&) VTK_DELETE_FUNCTION;
257  void operator=(const vtkTensorGlyph&) VTK_DELETE_FUNCTION;
258 };
259 
260 #endif
vtkTensorGlyph
scale and orient glyph(s) according to tensor eigenvalues and eigenvectors
Definition: vtkTensorGlyph.h:88
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkTensorGlyph::SetColorModeToScalars
void SetColorModeToScalars()
Definition: vtkTensorGlyph.h:209
vtkPolyDataAlgorithm::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkPolyDataAlgorithm.h
source
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Definition: vtkBoostGraphAdapter.h:822
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkTensorGlyph::SetColorModeToEigenvalues
void SetColorModeToEigenvalues()
Definition: vtkTensorGlyph.h:211
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkTensorGlyph::SetSourceConnection
void SetSourceConnection(vtkAlgorithmOutput *algOutput)
Definition: vtkTensorGlyph.h:119
vtkAlgorithmOutput
Proxy object to connect input/output ports.
Definition: vtkAlgorithmOutput.h:39
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
vtkTensorGlyph::COLOR_BY_SCALARS
@ COLOR_BY_SCALARS
Definition: vtkTensorGlyph.h:192
vtkPolyDataAlgorithm::New
static vtkPolyDataAlgorithm * New()
vtkPolyDataAlgorithm
Superclass for algorithms that produce only polydata as output.
Definition: vtkPolyDataAlgorithm.h:44