00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkHedgeHog.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 =========================================================================*/ 00047 #ifndef __vtkHedgeHog_h 00048 #define __vtkHedgeHog_h 00049 00050 #include "vtkDataSetToPolyDataFilter.h" 00051 00052 #define VTK_USE_VECTOR 0 00053 #define VTK_USE_NORMAL 1 00054 00055 class VTK_GRAPHICS_EXPORT vtkHedgeHog : public vtkDataSetToPolyDataFilter 00056 { 00057 public: 00058 static vtkHedgeHog *New(); 00059 vtkTypeRevisionMacro(vtkHedgeHog,vtkDataSetToPolyDataFilter); 00060 void PrintSelf(ostream& os, vtkIndent indent); 00061 00063 00064 vtkSetMacro(ScaleFactor,float); 00065 vtkGetMacro(ScaleFactor,float); 00067 00069 00070 vtkSetMacro(VectorMode,int); 00071 vtkGetMacro(VectorMode,int); 00072 void SetVectorModeToUseVector() {this->SetVectorMode(VTK_USE_VECTOR);}; 00073 void SetVectorModeToUseNormal() {this->SetVectorMode(VTK_USE_NORMAL);}; 00074 const char *GetVectorModeAsString(); 00076 00077 protected: 00078 vtkHedgeHog(); 00079 ~vtkHedgeHog() {}; 00080 00081 void Execute(); 00082 float ScaleFactor; 00083 int VectorMode; // Orient/scale via normal or via vector data 00084 00085 private: 00086 vtkHedgeHog(const vtkHedgeHog&); // Not implemented. 00087 void operator=(const vtkHedgeHog&); // Not implemented. 00088 }; 00089 00091 inline const char *vtkHedgeHog::GetVectorModeAsString(void) 00092 { 00093 if ( this->VectorMode == VTK_USE_VECTOR) 00094 { 00095 return "UseVector"; 00096 } 00097 else if ( this->VectorMode == VTK_USE_NORMAL) 00098 { 00099 return "UseNormal"; 00100 } 00101 else 00102 { 00103 return "Unknown"; 00104 } 00105 } 00106 #endif 00107 00108