vtkTensorGlyphSameEigensystem.h
Go to the documentation of this file.
1 // This file is part of the MercuryDPM project (https://www.mercurydpm.org).
2 // Copyright (c), The MercuryDPM Developers Team. All rights reserved.
3 // License: BSD 3-Clause License; see the LICENSE file in the root directory.
4 
5 /*=========================================================================
6 
7  Program: Visualization Toolkit
8  Module: vtkTensorGlyphSameEigensystem.h
9 
10  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
11  All rights reserved.
12  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
13 
14  This software is distributed WITHOUT ANY WARRANTY; without even
15  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16  PURPOSE. See the above copyright notice for more information.
17 
18 =========================================================================*/
19 // .NAME vtkTensorGlyphSameEigensystem - scale and orient a single glyph according to tensor eigenvalues and eigenvectors
20 // .SECTION Description
21 // vtkTensorGlyphSameEigensystem is a filter that copies a geometric representation
22 // (specified as polygonal data) to all its input points and uses the solution
23 // of the same eigenvalue problem to orient and scale them. The differences
24 // compared to its superclass vtkTensorGlyph are threefold: First, the fact
25 // that only a single eigenvalue problem is involved, not a eigenvalue problem
26 // in every point. Second, the possibility to pass the single solution of the
27 // eigenvalue equation and skip solving it. Third, the fact that it names the
28 // data array it creates such that ParaView will be able to use them directly
29 // for coloring and further processing.
30 
31 // .SECTION Thanks
32 // Class has been developed and contributed by Sven Buijssen, TU Dortmund,
33 // Germany.
34 
35 // .SECTION See Also
36 // vtkTensorGlyph vtkGlyph3D vtkPointLoad vtkHyperStreamline
37 
38 #ifndef __vtkTensorGlyphSameEigensystem_h
39 #define __vtkTensorGlyphSameEigensystem_h
40 
41 #include "vtkTensorGlyph.h"
42 
43 // Windows specific stuff------------------------------------------
44 #if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__)
45 # if defined(VTK_BUILD_SHARED_LIBS)
46 # define VTK_SUPERQUADRICTENSORGLYPH_EXPORT __declspec( dllexport )
47 # else
48 # define VTK_SUPERQUADRICTENSORGLYPH_EXPORT
49 # endif
50 #else
51 # define VTK_SUPERQUADRICTENSORGLYPH_EXPORT
52 #endif
53 
54 
56 {
57 public:
59 
60  // Description
61  // Construct object with scaling on and scale factor 1.0. Eigenvalues are
62  // extracted, glyphs are colored with input scalar data, and logarithmic
63  // scaling is turned off.
65 
66  void SetEigenvectorsEigenValues(double **ev, double *ew);
67 
68 protected:
71 
72  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override;
73 // int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
74 
75 //BTX
76  int HaveEigenvalues; // Boolean controls whether eigenfunction extraction is required
77  double Eigenvalues[3];
78  double EigenvectorsX[3], EigenvectorsY[3], EigenvectorsZ[3];
79 //ETX
80 
81 
82 private:
84  void operator=(const vtkTensorGlyphSameEigensystem&); // Not implemented.
85 };
86 
87 #endif
Definition: vtkTensorGlyphSameEigensystem.h:56
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
vtkTypeMacro(vtkTensorGlyphSameEigensystem, vtkTensorGlyph)
void SetEigenvectorsEigenValues(double **ev, double *ew)
int HaveEigenvalues
Definition: vtkTensorGlyphSameEigensystem.h:76
vtkTensorGlyphSameEigensystem(const vtkTensorGlyphSameEigensystem &)
void operator=(const vtkTensorGlyphSameEigensystem &)
static vtkTensorGlyphSameEigensystem * New()
#define VTK_SUPERQUADRICTENSORGLYPH_EXPORT
Definition: vtkTensorGlyphSameEigensystem.h:51