VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkCutMaterial.h 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 =========================================================================*/ 00027 #ifndef __vtkCutMaterial_h 00028 #define __vtkCutMaterial_h 00029 00030 #include "vtkPolyDataAlgorithm.h" 00031 00032 class vtkPlane; 00033 00034 class VTK_PARALLEL_EXPORT vtkCutMaterial : public vtkPolyDataAlgorithm 00035 { 00036 public: 00037 void PrintSelf(ostream& os, vtkIndent indent); 00038 vtkTypeMacro(vtkCutMaterial,vtkPolyDataAlgorithm); 00039 static vtkCutMaterial *New(); 00040 00042 00043 vtkSetStringMacro(MaterialArrayName); 00044 vtkGetStringMacro(MaterialArrayName); 00046 00048 00049 vtkSetMacro(Material, int); 00050 vtkGetMacro(Material, int); 00052 00054 00055 vtkSetStringMacro(ArrayName); 00056 vtkGetStringMacro(ArrayName); 00058 00060 00061 vtkSetVector3Macro(UpVector, double); 00062 vtkGetVector3Macro(UpVector, double); 00064 00066 00068 vtkGetVector3Macro(MaximumPoint, double); 00069 vtkGetVector3Macro(CenterPoint, double); 00070 vtkGetVector3Macro(Normal, double); 00072 00073 protected: 00074 vtkCutMaterial(); 00075 ~vtkCutMaterial(); 00076 00077 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); //generate output data 00078 virtual int FillInputPortInformation(int port, vtkInformation *info); 00079 void ComputeMaximumPoint(vtkDataSet *input); 00080 void ComputeNormal(); 00081 00082 char *MaterialArrayName; 00083 int Material; 00084 char *ArrayName; 00085 double UpVector[3]; 00086 double MaximumPoint[3]; 00087 double CenterPoint[3]; 00088 double Normal[3]; 00089 00090 vtkPlane *PlaneFunction; 00091 00092 private: 00093 vtkCutMaterial(const vtkCutMaterial&); // Not implemented. 00094 void operator=(const vtkCutMaterial&); // Not implemented. 00095 }; 00096 00097 #endif