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 =========================================================================*/
83 #ifndef vtkTensorGlyph_h
84 #define vtkTensorGlyph_h
85 
86 #include "vtkFiltersCoreModule.h" // For export macro
87 #include "vtkPolyDataAlgorithm.h"
88 
89 class VTKFILTERSCORE_EXPORT vtkTensorGlyph : public vtkPolyDataAlgorithm
90 {
91 public:
93  void PrintSelf(ostream& os, vtkIndent indent) override;
94 
100  static vtkTensorGlyph *New();
101 
103 
109  void SetSourceData(vtkPolyData *source);
110  vtkPolyData *GetSource();
112 
114 
119  void SetSourceConnection(int id, vtkAlgorithmOutput* algOutput);
121  {
122  this->SetSourceConnection(0, algOutput);
123  }
125 
127 
130  vtkSetMacro(Scaling,vtkTypeBool);
131  vtkGetMacro(Scaling,vtkTypeBool);
132  vtkBooleanMacro(Scaling,vtkTypeBool);
134 
136 
140  vtkSetMacro(ScaleFactor,double);
141  vtkGetMacro(ScaleFactor,double);
143 
145 
148  vtkSetMacro(ThreeGlyphs,vtkTypeBool);
149  vtkGetMacro(ThreeGlyphs,vtkTypeBool);
150  vtkBooleanMacro(ThreeGlyphs,vtkTypeBool);
152 
154 
157  vtkSetMacro(Symmetric,vtkTypeBool);
158  vtkGetMacro(Symmetric,vtkTypeBool);
159  vtkBooleanMacro(Symmetric,vtkTypeBool);
161 
163 
167  vtkSetMacro(Length,double);
168  vtkGetMacro(Length,double);
170 
172 
175  vtkSetMacro(ExtractEigenvalues,vtkTypeBool);
176  vtkBooleanMacro(ExtractEigenvalues,vtkTypeBool);
177  vtkGetMacro(ExtractEigenvalues,vtkTypeBool);
179 
181 
186  vtkSetMacro(ColorGlyphs,vtkTypeBool);
187  vtkGetMacro(ColorGlyphs,vtkTypeBool);
188  vtkBooleanMacro(ColorGlyphs,vtkTypeBool);
190 
191  enum
192  {
194  COLOR_BY_EIGENVALUES
195  };
196 
198 
208  vtkSetClampMacro(ColorMode, int, COLOR_BY_SCALARS, COLOR_BY_EIGENVALUES);
209  vtkGetMacro(ColorMode, int);
211  {this->SetColorMode(COLOR_BY_SCALARS);};
213  {this->SetColorMode(COLOR_BY_EIGENVALUES);};
215 
217 
222  vtkSetMacro(ClampScaling,vtkTypeBool);
223  vtkGetMacro(ClampScaling,vtkTypeBool);
224  vtkBooleanMacro(ClampScaling,vtkTypeBool);
226 
228 
234  vtkSetMacro(MaxScaleFactor,double);
235  vtkGetMacro(MaxScaleFactor,double);
237 
238 protected:
239  vtkTensorGlyph();
240  ~vtkTensorGlyph() override;
241 
244  int FillInputPortInformation(int port, vtkInformation *info) override;
245 
246  vtkTypeBool Scaling; // Determine whether scaling of geometry is performed
247  double ScaleFactor; // Scale factor to use to scale geometry
248  vtkTypeBool ExtractEigenvalues; // Boolean controls eigenfunction extraction
249  vtkTypeBool ColorGlyphs; // Boolean controls coloring with input scalar data
250  int ColorMode; // The coloring mode to use for the glyphs.
251  vtkTypeBool ClampScaling; // Boolean controls whether scaling is clamped.
252  double MaxScaleFactor; // Maximum scale factor (ScaleFactor*eigenvalue)
253  vtkTypeBool ThreeGlyphs; // Boolean controls drawing 1 or 3 glyphs
254  vtkTypeBool Symmetric; // Boolean controls drawing a "mirror" of each glyph
255  double Length; // Distance, in x, from the origin to the end of the glyph
256 private:
257  vtkTensorGlyph(const vtkTensorGlyph&) = delete;
258  void operator=(const vtkTensorGlyph&) = delete;
259 };
260 
261 #endif
Store vtkAlgorithm input/output information.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
This is called by the superclass.
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
vtkTypeBool ColorGlyphs
vtkTypeBool Scaling
vtkTypeBool ExtractEigenvalues
Proxy object to connect input/output ports.
void SetColorModeToScalars()
Set the color mode to be used for the glyphs.
static vtkPolyDataAlgorithm * New()
int vtkTypeBool
Definition: vtkABI.h:69
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
vtkTypeBool ThreeGlyphs
void SetSourceConnection(vtkAlgorithmOutput *algOutput)
Specify a source object at a specified table location.
Superclass for algorithms that produce only polydata as output.
vtkTypeBool ClampScaling
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkTypeBool Symmetric
boost::graph_traits< vtkGraph *>::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
void SetColorModeToEigenvalues()
Set the color mode to be used for the glyphs.
scale and orient glyph(s) according to eigenvalues and eigenvectors of symmetrical part of tensor ...
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
Store zero or more vtkInformation instances.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.