VTK
dox/Domains/Chemistry/vtkPeriodicTable.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkPeriodicTable.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 __vtkPeriodicTable_h
00029 #define __vtkPeriodicTable_h
00030 
00031 #include "vtkDomainsChemistryModule.h" // For export macro
00032 #include "vtkObject.h"
00033 #include "vtkNew.h"
00034 
00035 class vtkBlueObeliskData;
00036 class vtkColor3f;
00037 class vtkLookupTable;
00038 class vtkStdString;
00039 
00040 class VTKDOMAINSCHEMISTRY_EXPORT vtkPeriodicTable : public vtkObject
00041 {
00042 public:
00043   vtkTypeMacro(vtkPeriodicTable, vtkObject);
00044   void PrintSelf(ostream& os, vtkIndent indent);
00045   static vtkPeriodicTable * New();
00046 
00048 
00050   vtkGetNewMacro(BlueObeliskData, vtkBlueObeliskData);
00052 
00054   unsigned short GetNumberOfElements();
00055 
00058   const char * GetSymbol(const unsigned short atomicNum);
00059 
00061   const char * GetElementName(const unsigned short atomicNum);
00062 
00064 
00066   unsigned short GetAtomicNumber(const vtkStdString &str);
00067   unsigned short GetAtomicNumber(const char *str);
00069 
00071   float GetCovalentRadius(const unsigned short atomicNum);
00072 
00074   float GetVDWRadius(const unsigned short atomicNum);
00075 
00078   void GetDefaultLUT(vtkLookupTable *);
00079 
00082   void GetDefaultRGBTuple(unsigned short atomicNum, float rgb[3]);
00083 
00086   vtkColor3f GetDefaultRGBTuple(unsigned short atomicNum);
00087 
00088 protected:
00089   vtkPeriodicTable();
00090   ~vtkPeriodicTable();
00091 
00092   static vtkNew<vtkBlueObeliskData> BlueObeliskData;
00093 
00094 private:
00095   vtkPeriodicTable(const vtkPeriodicTable&);   // Not implemented
00096   void operator=(const vtkPeriodicTable&); // Not implemented
00097 };
00098 
00099 #endif