Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound 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 =========================================================================*/
00098 #ifndef __vtkTensorGlyph_h
00099 #define __vtkTensorGlyph_h
00100 
00101 #include "vtkDataSetToPolyDataFilter.h"
00102 
00103 class VTK_GRAPHICS_EXPORT vtkTensorGlyph : public vtkDataSetToPolyDataFilter
00104 {
00105 public:
00106   vtkTypeRevisionMacro(vtkTensorGlyph,vtkDataSetToPolyDataFilter);
00107   void PrintSelf(ostream& os, vtkIndent indent);
00108 
00112   static vtkTensorGlyph *New();
00113 
00115 
00116   void SetSource(vtkPolyData *source);
00117   vtkPolyData *GetSource();
00119 
00121 
00122   vtkSetMacro(Scaling,int);
00123   vtkGetMacro(Scaling,int);
00124   vtkBooleanMacro(Scaling,int);
00126 
00128 
00130   vtkSetMacro(ScaleFactor,float);
00131   vtkGetMacro(ScaleFactor,float);
00133 
00135 
00136   vtkSetMacro(ThreeGlyphs,int);
00137   vtkGetMacro(ThreeGlyphs,int);
00138   vtkBooleanMacro(ThreeGlyphs,int);
00140 
00142 
00143   vtkSetMacro(Symmetric,int);
00144   vtkGetMacro(Symmetric,int);
00145   vtkBooleanMacro(Symmetric,int);
00147 
00149 
00151   vtkSetMacro(Length,float);
00152   vtkGetMacro(Length,float);
00154 
00156 
00157   vtkSetMacro(ExtractEigenvalues,int);
00158   vtkBooleanMacro(ExtractEigenvalues,int);
00159   vtkGetMacro(ExtractEigenvalues,int);
00161 
00163 
00166   vtkSetMacro(ColorGlyphs,int);
00167   vtkGetMacro(ColorGlyphs,int);
00168   vtkBooleanMacro(ColorGlyphs,int);
00170 
00171 //BTX
00172   enum
00173   {
00174       COLOR_BY_SCALARS,
00175       COLOR_BY_EIGENVALUES
00176   };
00177 //ETX
00178 
00180 
00187   vtkSetClampMacro(ColorMode, int, COLOR_BY_SCALARS, COLOR_BY_EIGENVALUES);
00188   vtkGetMacro(ColorMode, int);
00189   void SetColorModeToScalars()
00190     {this->SetColorMode(COLOR_BY_SCALARS);};
00191   void SetColorModeToEigenvalues()
00192     {this->SetColorMode(COLOR_BY_EIGENVALUES);};  
00194 
00196 
00199   vtkSetMacro(ClampScaling,int);
00200   vtkGetMacro(ClampScaling,int);
00201   vtkBooleanMacro(ClampScaling,int);
00203 
00205 
00209   vtkSetMacro(MaxScaleFactor,float);
00210   vtkGetMacro(MaxScaleFactor,float);
00212 
00213 protected:
00214   vtkTensorGlyph();
00215   ~vtkTensorGlyph();
00216 
00217   void Execute();
00218 
00219   int Scaling; // Determine whether scaling of geometry is performed
00220   float ScaleFactor; // Scale factor to use to scale geometry
00221   int ExtractEigenvalues; // Boolean controls eigenfunction extraction
00222   int ColorGlyphs; // Boolean controls coloring with input scalar data
00223   int ColorMode; // The coloring mode to use for the glyphs.
00224   int ClampScaling; // Boolean controls whether scaling is clamped.
00225   float MaxScaleFactor; // Maximum scale factor (ScaleFactor*eigenvalue)
00226   int ThreeGlyphs; // Boolean controls drawing 1 or 3 glyphs
00227   int Symmetric; // Boolean controls drawing a "mirror" of each glyph
00228   float Length; // Distance, in x, from the origin to the end of the glyph
00229 private:
00230   vtkTensorGlyph(const vtkTensorGlyph&);  // Not implemented.
00231   void operator=(const vtkTensorGlyph&);  // Not implemented.
00232 };
00233 
00234 #endif