00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkCutMaterial.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 =========================================================================*/ 00042 #ifndef __vtkCutMaterial_h 00043 #define __vtkCutMaterial_h 00044 00045 #include "vtkDataSetToPolyDataFilter.h" 00046 00047 class vtkPlane; 00048 00049 class VTK_PARALLEL_EXPORT vtkCutMaterial : public vtkDataSetToPolyDataFilter 00050 { 00051 public: 00052 void PrintSelf(ostream& os, vtkIndent indent); 00053 vtkTypeRevisionMacro(vtkCutMaterial,vtkDataSetToPolyDataFilter); 00054 static vtkCutMaterial *New(); 00055 00057 00058 vtkSetStringMacro(MaterialArrayName); 00059 vtkGetStringMacro(MaterialArrayName); 00061 00063 00064 vtkSetMacro(Material, int); 00065 vtkGetMacro(Material, int); 00067 00069 00070 vtkSetStringMacro(ArrayName); 00071 vtkGetStringMacro(ArrayName); 00073 00075 00076 vtkSetVector3Macro(UpVector, float); 00077 vtkGetVector3Macro(UpVector, float); 00079 00081 00083 vtkGetVector3Macro(MaximumPoint, float); 00084 vtkGetVector3Macro(CenterPoint, float); 00085 vtkGetVector3Macro(Normal, float); 00087 00088 protected: 00089 vtkCutMaterial(); 00090 ~vtkCutMaterial(); 00091 00092 void Execute(); //generate output data 00093 void ComputeMaximumPoint(vtkDataSet *input); 00094 void ComputeNormal(); 00095 00096 char *MaterialArrayName; 00097 int Material; 00098 char *ArrayName; 00099 float UpVector[3]; 00100 float MaximumPoint[3]; 00101 float CenterPoint[3]; 00102 float Normal[3]; 00103 00104 vtkPlane *PlaneFunction; 00105 00106 private: 00107 vtkCutMaterial(const vtkCutMaterial&); // Not implemented. 00108 void operator=(const vtkCutMaterial&); // Not implemented. 00109 }; 00110 00111 #endif