00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkPlatonicSolidSource.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 =========================================================================*/ 00028 #ifndef __vtkPlatonicSolidSource_h 00029 #define __vtkPlatonicSolidSource_h 00030 00031 #include "vtkPolyDataAlgorithm.h" 00032 00033 #define VTK_SOLID_TETRAHEDRON 0 00034 #define VTK_SOLID_CUBE 1 00035 #define VTK_SOLID_OCTAHEDRON 2 00036 #define VTK_SOLID_ICOSAHEDRON 3 00037 #define VTK_SOLID_DODECAHEDRON 4 00038 00039 class VTK_GRAPHICS_EXPORT vtkPlatonicSolidSource : public vtkPolyDataAlgorithm 00040 { 00041 public: 00042 static vtkPlatonicSolidSource *New(); 00043 vtkTypeRevisionMacro(vtkPlatonicSolidSource,vtkPolyDataAlgorithm); 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00047 00048 vtkSetClampMacro(SolidType,int,VTK_SOLID_TETRAHEDRON,VTK_SOLID_DODECAHEDRON); 00049 vtkGetMacro(SolidType,int); 00050 void SetSolidTypeToTetrahedron() 00051 {this->SetSolidType(VTK_SOLID_TETRAHEDRON);} 00052 void SetSolidTypeToCube() 00053 {this->SetSolidType(VTK_SOLID_CUBE);} 00054 void SetSolidTypeToOctahedron() 00055 {this->SetSolidType(VTK_SOLID_OCTAHEDRON);} 00056 void SetSolidTypeToIcosahedron() 00057 {this->SetSolidType(VTK_SOLID_ICOSAHEDRON);} 00058 void SetSolidTypeToDodecahedron() 00059 {this->SetSolidType(VTK_SOLID_DODECAHEDRON);} 00061 00062 protected: 00063 vtkPlatonicSolidSource(); 00064 ~vtkPlatonicSolidSource() {} 00065 00066 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00067 int SolidType; 00068 00069 private: 00070 vtkPlatonicSolidSource(const vtkPlatonicSolidSource&); // Not implemented. 00071 void operator=(const vtkPlatonicSolidSource&); // Not implemented. 00072 00073 }; 00074 00075 #endif 00076 00077