VTK
dox/Rendering/Core/vtkXMLMaterial.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkXMLMaterial.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 =========================================================================*/
00026 #ifndef __vtkXMLMaterial_h
00027 #define __vtkXMLMaterial_h
00028 
00029 #include "vtkRenderingCoreModule.h" // For export macro
00030 #include "vtkObject.h"
00031 
00032 class vtkXMLDataElement;
00033 class vtkXMLMaterialInternals;
00034 class vtkXMLShader;
00035 
00036 class VTKRENDERINGCORE_EXPORT vtkXMLMaterial : public vtkObject
00037 {
00038 public:
00039   static vtkXMLMaterial* New();
00040   vtkTypeMacro(vtkXMLMaterial, vtkObject);
00041   void PrintSelf(ostream& os, vtkIndent indent);
00042 
00047   static vtkXMLMaterial* CreateInstance(const char* name);
00048 
00050   int GetNumberOfProperties();
00051 
00053   int GetNumberOfTextures();
00054 
00056   int GetNumberOfVertexShaders();
00057 
00059   int GetNumberOfFragmentShaders();
00060 
00062   vtkXMLDataElement* GetProperty(int id=0);
00063 
00065   vtkXMLDataElement* GetTexture(int id=0);
00066 
00068   vtkXMLShader* GetVertexShader(int id=0);
00069 
00071   vtkXMLShader* GetFragmentShader(int id=0);
00072 
00074 
00075   vtkGetObjectMacro(RootElement, vtkXMLDataElement);
00076   void SetRootElement(vtkXMLDataElement*);
00078 
00081   int GetShaderLanguage();
00082 
00084   int GetShaderStyle();
00085 
00086 protected:
00087   vtkXMLMaterial();
00088   ~vtkXMLMaterial();
00089 
00090   vtkXMLDataElement* RootElement;
00091   vtkXMLMaterialInternals* Internals;
00092 private:
00093   vtkXMLMaterial(const vtkXMLMaterial&); // Not implemented.
00094   void operator=(const vtkXMLMaterial&); // Not implemented.
00095 };
00096 
00097 #endif
00098