VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkFeatureEdges.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 =========================================================================*/ 00040 #ifndef __vtkFeatureEdges_h 00041 #define __vtkFeatureEdges_h 00042 00043 #include "vtkPolyDataAlgorithm.h" 00044 00045 class vtkPointLocator; 00046 00047 class VTK_GRAPHICS_EXPORT vtkFeatureEdges : public vtkPolyDataAlgorithm 00048 { 00049 public: 00050 vtkTypeRevisionMacro(vtkFeatureEdges,vtkPolyDataAlgorithm); 00051 void PrintSelf(ostream& os, vtkIndent indent); 00052 00055 static vtkFeatureEdges *New(); 00056 00058 00059 vtkSetMacro(BoundaryEdges,int); 00060 vtkGetMacro(BoundaryEdges,int); 00061 vtkBooleanMacro(BoundaryEdges,int); 00063 00065 00066 vtkSetMacro(FeatureEdges,int); 00067 vtkGetMacro(FeatureEdges,int); 00068 vtkBooleanMacro(FeatureEdges,int); 00070 00072 00073 vtkSetClampMacro(FeatureAngle,double,0.0,180.0); 00074 vtkGetMacro(FeatureAngle,double); 00076 00078 00079 vtkSetMacro(NonManifoldEdges,int); 00080 vtkGetMacro(NonManifoldEdges,int); 00081 vtkBooleanMacro(NonManifoldEdges,int); 00083 00085 00086 vtkSetMacro(ManifoldEdges,int); 00087 vtkGetMacro(ManifoldEdges,int); 00088 vtkBooleanMacro(ManifoldEdges,int); 00090 00092 00093 vtkSetMacro(Coloring,int); 00094 vtkGetMacro(Coloring,int); 00095 vtkBooleanMacro(Coloring,int); 00097 00099 00101 void SetLocator(vtkPointLocator *locator); 00102 vtkGetObjectMacro(Locator,vtkPointLocator); 00104 00106 void CreateDefaultLocator(); 00107 00109 unsigned long GetMTime(); 00110 00111 protected: 00112 vtkFeatureEdges(); 00113 ~vtkFeatureEdges(); 00114 00115 // Usual data generation method 00116 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00117 int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00118 00119 double FeatureAngle; 00120 int BoundaryEdges; 00121 int FeatureEdges; 00122 int NonManifoldEdges; 00123 int ManifoldEdges; 00124 int Coloring; 00125 vtkPointLocator *Locator; 00126 private: 00127 vtkFeatureEdges(const vtkFeatureEdges&); // Not implemented. 00128 void operator=(const vtkFeatureEdges&); // Not implemented. 00129 }; 00130 00131 #endif 00132 00133