Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Graphics/vtkTensorGlyph.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkTensorGlyph.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00081 #ifndef __vtkTensorGlyph_h
00082 #define __vtkTensorGlyph_h
00083 
00084 #include "vtkDataSetToPolyDataFilter.h"
00085 
00086 class VTK_GRAPHICS_EXPORT vtkTensorGlyph : public vtkDataSetToPolyDataFilter
00087 {
00088 public:
00089   vtkTypeRevisionMacro(vtkTensorGlyph,vtkDataSetToPolyDataFilter);
00090   void PrintSelf(ostream& os, vtkIndent indent);
00091 
00095   static vtkTensorGlyph *New();
00096 
00098 
00099   void SetSource(vtkPolyData *source);
00100   vtkPolyData *GetSource();
00102 
00104 
00105   vtkSetMacro(Scaling,int);
00106   vtkGetMacro(Scaling,int);
00107   vtkBooleanMacro(Scaling,int);
00109 
00111 
00113   vtkSetMacro(ScaleFactor,double);
00114   vtkGetMacro(ScaleFactor,double);
00116 
00118 
00119   vtkSetMacro(ThreeGlyphs,int);
00120   vtkGetMacro(ThreeGlyphs,int);
00121   vtkBooleanMacro(ThreeGlyphs,int);
00123 
00125 
00126   vtkSetMacro(Symmetric,int);
00127   vtkGetMacro(Symmetric,int);
00128   vtkBooleanMacro(Symmetric,int);
00130 
00132 
00134   vtkSetMacro(Length,double);
00135   vtkGetMacro(Length,double);
00137 
00139 
00140   vtkSetMacro(ExtractEigenvalues,int);
00141   vtkBooleanMacro(ExtractEigenvalues,int);
00142   vtkGetMacro(ExtractEigenvalues,int);
00144 
00146 
00149   vtkSetMacro(ColorGlyphs,int);
00150   vtkGetMacro(ColorGlyphs,int);
00151   vtkBooleanMacro(ColorGlyphs,int);
00153 
00154 //BTX
00155   enum
00156   {
00157       COLOR_BY_SCALARS,
00158       COLOR_BY_EIGENVALUES
00159   };
00160 //ETX
00161 
00163 
00170   vtkSetClampMacro(ColorMode, int, COLOR_BY_SCALARS, COLOR_BY_EIGENVALUES);
00171   vtkGetMacro(ColorMode, int);
00172   void SetColorModeToScalars()
00173     {this->SetColorMode(COLOR_BY_SCALARS);};
00174   void SetColorModeToEigenvalues()
00175     {this->SetColorMode(COLOR_BY_EIGENVALUES);};  
00177 
00179 
00182   vtkSetMacro(ClampScaling,int);
00183   vtkGetMacro(ClampScaling,int);
00184   vtkBooleanMacro(ClampScaling,int);
00186 
00188 
00192   vtkSetMacro(MaxScaleFactor,double);
00193   vtkGetMacro(MaxScaleFactor,double);
00195 
00196 protected:
00197   vtkTensorGlyph();
00198   ~vtkTensorGlyph();
00199 
00200   void Execute();
00201 
00202   int Scaling; // Determine whether scaling of geometry is performed
00203   double ScaleFactor; // Scale factor to use to scale geometry
00204   int ExtractEigenvalues; // Boolean controls eigenfunction extraction
00205   int ColorGlyphs; // Boolean controls coloring with input scalar data
00206   int ColorMode; // The coloring mode to use for the glyphs.
00207   int ClampScaling; // Boolean controls whether scaling is clamped.
00208   double MaxScaleFactor; // Maximum scale factor (ScaleFactor*eigenvalue)
00209   int ThreeGlyphs; // Boolean controls drawing 1 or 3 glyphs
00210   int Symmetric; // Boolean controls drawing a "mirror" of each glyph
00211   double Length; // Distance, in x, from the origin to the end of the glyph
00212 private:
00213   vtkTensorGlyph(const vtkTensorGlyph&);  // Not implemented.
00214   void operator=(const vtkTensorGlyph&);  // Not implemented.
00215 };
00216 
00217 #endif