Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Graphics/vtkPolyDataNormals.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00060 #ifndef __vtkPolyDataNormals_h
00061 #define __vtkPolyDataNormals_h
00062
00063 #include "vtkPolyDataToPolyDataFilter.h"
00064
00065 class vtkFloatArray;
00066 class vtkIdList;
00067 class vtkPolyData;
00068
00069 class VTK_GRAPHICS_EXPORT vtkPolyDataNormals : public vtkPolyDataToPolyDataFilter
00070 {
00071 public:
00072 vtkTypeRevisionMacro(vtkPolyDataNormals,vtkPolyDataToPolyDataFilter);
00073 void PrintSelf(ostream& os, vtkIndent indent);
00074
00078 static vtkPolyDataNormals *New();
00079
00081
00084 vtkSetClampMacro(FeatureAngle,float,0.0,180.0);
00085 vtkGetMacro(FeatureAngle,float);
00087
00089
00090 vtkSetMacro(Splitting,int);
00091 vtkGetMacro(Splitting,int);
00092 vtkBooleanMacro(Splitting,int);
00094
00096
00097 vtkSetMacro(Consistency,int);
00098 vtkGetMacro(Consistency,int);
00099 vtkBooleanMacro(Consistency,int);
00101
00103
00104 vtkSetMacro(ComputePointNormals,int);
00105 vtkGetMacro(ComputePointNormals,int);
00106 vtkBooleanMacro(ComputePointNormals,int);
00108
00110
00111 vtkSetMacro(ComputeCellNormals,int);
00112 vtkGetMacro(ComputeCellNormals,int);
00113 vtkBooleanMacro(ComputeCellNormals,int);
00115
00117
00121 vtkSetMacro(FlipNormals,int);
00122 vtkGetMacro(FlipNormals,int);
00123 vtkBooleanMacro(FlipNormals,int);
00125
00127
00130 vtkSetMacro(NonManifoldTraversal,int);
00131 vtkGetMacro(NonManifoldTraversal,int);
00132 vtkBooleanMacro(NonManifoldTraversal,int);
00134
00135 protected:
00136 vtkPolyDataNormals();
00137 ~vtkPolyDataNormals() {};
00138
00139
00140 void Execute();
00141
00142 float FeatureAngle;
00143 int Splitting;
00144 int Consistency;
00145 int FlipNormals;
00146 int NonManifoldTraversal;
00147 int ComputePointNormals;
00148 int ComputeCellNormals;
00149 int NumFlips;
00150
00151 private:
00152 vtkIdList *Wave;
00153 vtkIdList *Wave2;
00154 vtkIdList *CellIds;
00155 vtkIdList *Map;
00156 vtkPolyData *OldMesh;
00157 vtkPolyData *NewMesh;
00158 int *Visited;
00159 vtkFloatArray *PolyNormals;
00160 float CosAngle;
00161
00162
00163
00164 void TraverseAndOrder(void);
00165
00166
00167
00168
00169 void MarkAndSplit(vtkIdType ptId);
00170
00171 private:
00172 vtkPolyDataNormals(const vtkPolyDataNormals&);
00173 void operator=(const vtkPolyDataNormals&);
00174 };
00175
00176 #endif