MercuryDPM  Trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vtkTensorGlyphSameEigensystem.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkTensorGlyphSameEigensystem.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 =========================================================================*/
15 // .NAME vtkTensorGlyphSameEigensystem - scale and orient a single glyph according to tensor eigenvalues and eigenvectors
16 // .SECTION Description
17 // vtkTensorGlyphSameEigensystem is a filter that copies a geometric representation
18 // (specified as polygonal data) to all its input points and uses the solution
19 // of the same eigenvalue problem to orient and scale them. The differences
20 // compared to its superclass vtkTensorGlyph are threefold: First, the fact
21 // that only a single eigenvalue problem is involved, not a eigenvalue problem
22 // in every point. Second, the possibility to pass the single solution of the
23 // eigenvalue equation and skip solving it. Third, the fact that it names the
24 // data array it creates such that ParaView will be able to use them directly
25 // for coloring and further processing.
26 
27 // .SECTION Thanks
28 // Class has been developed and contributed by Sven Buijssen, TU Dortmund,
29 // Germany.
30 
31 // .SECTION See Also
32 // vtkTensorGlyph vtkGlyph3D vtkPointLoad vtkHyperStreamline
33 
34 #ifndef __vtkTensorGlyphSameEigensystem_h
35 #define __vtkTensorGlyphSameEigensystem_h
36 
37 #include "vtkTensorGlyph.h"
38 
39 // Windows specific stuff------------------------------------------
40 #if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__)
41 # if defined(VTK_BUILD_SHARED_LIBS)
42 # define VTK_SUPERQUADRICTENSORGLYPH_EXPORT __declspec( dllexport )
43 # else
44 # define VTK_SUPERQUADRICTENSORGLYPH_EXPORT
45 # endif
46 #else
47 # define VTK_SUPERQUADRICTENSORGLYPH_EXPORT
48 #endif
49 
50 
52 {
53 public:
55 
56  // Description
57  // Construct object with scaling on and scale factor 1.0. Eigenvalues are
58  // extracted, glyphs are colored with input scalar data, and logarithmic
59  // scaling is turned off.
60  static vtkTensorGlyphSameEigensystem *New();
61 
62  void SetEigenvectorsEigenValues(double **ev, double *ew);
63 
64 protected:
67 
68  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override;
69 // int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
70 
71 //BTX
72  int HaveEigenvalues; // Boolean controls whether eigenfunction extraction is required
73  double Eigenvalues[3];
74  double EigenvectorsX[3], EigenvectorsY[3], EigenvectorsZ[3];
75 //ETX
76 
77 
78 private:
80  void operator=(const vtkTensorGlyphSameEigensystem&); // Not implemented.
81 };
82 
83 #endif
#define VTK_SUPERQUADRICTENSORGLYPH_EXPORT