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   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00085 #ifndef __vtkTensorGlyph_h
00086 #define __vtkTensorGlyph_h
00087 
00088 #include "vtkDataSetToPolyDataFilter.h"
00089 
00090 class VTK_GRAPHICS_EXPORT vtkTensorGlyph : public vtkDataSetToPolyDataFilter
00091 {
00092 public:
00093   vtkTypeRevisionMacro(vtkTensorGlyph,vtkDataSetToPolyDataFilter);
00094   void PrintSelf(ostream& os, vtkIndent indent);
00095 
00099   static vtkTensorGlyph *New();
00100 
00102 
00103   void SetSource(vtkPolyData *source);
00104   vtkPolyData *GetSource();
00106 
00108 
00109   vtkSetMacro(Scaling,int);
00110   vtkGetMacro(Scaling,int);
00111   vtkBooleanMacro(Scaling,int);
00113 
00115 
00117   vtkSetMacro(ScaleFactor,float);
00118   vtkGetMacro(ScaleFactor,float);
00120 
00122 
00123   vtkSetMacro(ThreeGlyphs,int);
00124   vtkGetMacro(ThreeGlyphs,int);
00125   vtkBooleanMacro(ThreeGlyphs,int);
00127 
00129 
00130   vtkSetMacro(Symmetric,int);
00131   vtkGetMacro(Symmetric,int);
00132   vtkBooleanMacro(Symmetric,int);
00134 
00136 
00138   vtkSetMacro(Length,float);
00139   vtkGetMacro(Length,float);
00141 
00143 
00144   vtkSetMacro(ExtractEigenvalues,int);
00145   vtkBooleanMacro(ExtractEigenvalues,int);
00146   vtkGetMacro(ExtractEigenvalues,int);
00148 
00150 
00153   vtkSetMacro(ColorGlyphs,int);
00154   vtkGetMacro(ColorGlyphs,int);
00155   vtkBooleanMacro(ColorGlyphs,int);
00157 
00158 //BTX
00159   enum
00160   {
00161       COLOR_BY_SCALARS,
00162       COLOR_BY_EIGENVALUES
00163   };
00164 //ETX
00165 
00167 
00174   vtkSetClampMacro(ColorMode, int, COLOR_BY_SCALARS, COLOR_BY_EIGENVALUES);
00175   vtkGetMacro(ColorMode, int);
00176   void SetColorModeToScalars()
00177     {this->SetColorMode(COLOR_BY_SCALARS);};
00178   void SetColorModeToEigenvalues()
00179     {this->SetColorMode(COLOR_BY_EIGENVALUES);};  
00181 
00183 
00186   vtkSetMacro(ClampScaling,int);
00187   vtkGetMacro(ClampScaling,int);
00188   vtkBooleanMacro(ClampScaling,int);
00190 
00192 
00196   vtkSetMacro(MaxScaleFactor,float);
00197   vtkGetMacro(MaxScaleFactor,float);
00199 
00200 protected:
00201   vtkTensorGlyph();
00202   ~vtkTensorGlyph();
00203 
00204   void Execute();
00205 
00206   int Scaling; // Determine whether scaling of geometry is performed
00207   float ScaleFactor; // Scale factor to use to scale geometry
00208   int ExtractEigenvalues; // Boolean controls eigenfunction extraction
00209   int ColorGlyphs; // Boolean controls coloring with input scalar data
00210   int ColorMode; // The coloring mode to use for the glyphs.
00211   int ClampScaling; // Boolean controls whether scaling is clamped.
00212   float MaxScaleFactor; // Maximum scale factor (ScaleFactor*eigenvalue)
00213   int ThreeGlyphs; // Boolean controls drawing 1 or 3 glyphs
00214   int Symmetric; // Boolean controls drawing a "mirror" of each glyph
00215   float Length; // Distance, in x, from the origin to the end of the glyph
00216 private:
00217   vtkTensorGlyph(const vtkTensorGlyph&);  // Not implemented.
00218   void operator=(const vtkTensorGlyph&);  // Not implemented.
00219 };
00220 
00221 #endif