VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkPlatonicSolidSource.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 =========================================================================*/ 00028 #ifndef vtkPlatonicSolidSource_h 00029 #define vtkPlatonicSolidSource_h 00030 00031 #include "vtkFiltersSourcesModule.h" // For export macro 00032 #include "vtkPolyDataAlgorithm.h" 00033 00034 #define VTK_SOLID_TETRAHEDRON 0 00035 #define VTK_SOLID_CUBE 1 00036 #define VTK_SOLID_OCTAHEDRON 2 00037 #define VTK_SOLID_ICOSAHEDRON 3 00038 #define VTK_SOLID_DODECAHEDRON 4 00039 00040 class VTKFILTERSSOURCES_EXPORT vtkPlatonicSolidSource : public vtkPolyDataAlgorithm 00041 { 00042 public: 00043 static vtkPlatonicSolidSource *New(); 00044 vtkTypeMacro(vtkPlatonicSolidSource,vtkPolyDataAlgorithm); 00045 void PrintSelf(ostream& os, vtkIndent indent); 00046 00048 00049 vtkSetClampMacro(SolidType,int,VTK_SOLID_TETRAHEDRON,VTK_SOLID_DODECAHEDRON); 00050 vtkGetMacro(SolidType,int); 00051 void SetSolidTypeToTetrahedron() 00052 {this->SetSolidType(VTK_SOLID_TETRAHEDRON);} 00053 void SetSolidTypeToCube() 00054 {this->SetSolidType(VTK_SOLID_CUBE);} 00055 void SetSolidTypeToOctahedron() 00056 {this->SetSolidType(VTK_SOLID_OCTAHEDRON);} 00057 void SetSolidTypeToIcosahedron() 00058 {this->SetSolidType(VTK_SOLID_ICOSAHEDRON);} 00059 void SetSolidTypeToDodecahedron() 00060 {this->SetSolidType(VTK_SOLID_DODECAHEDRON);} 00062 00064 00068 vtkSetMacro(OutputPointsPrecision,int); 00069 vtkGetMacro(OutputPointsPrecision,int); 00071 00072 protected: 00073 vtkPlatonicSolidSource(); 00074 ~vtkPlatonicSolidSource() {} 00075 00076 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00077 int SolidType; 00078 int OutputPointsPrecision; 00079 00080 private: 00081 vtkPlatonicSolidSource(const vtkPlatonicSolidSource&); // Not implemented. 00082 void operator=(const vtkPlatonicSolidSource&); // Not implemented. 00083 00084 }; 00085 00086 #endif 00087 00088