Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

Hybrid/vtkRIBExporter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkRIBExporter.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00068 #ifndef __vtkRIBExporter_h
00069 #define __vtkRIBExporter_h
00070 
00071 #include "vtkExporter.h"
00072 
00073 class vtkActor;
00074 class vtkCamera;
00075 class vtkLight;
00076 class vtkPolyData;
00077 class vtkProperty;
00078 class vtkRenderer;
00079 class vtkTexture;
00080 class vtkUnsignedCharArray;
00081 
00082 class VTK_HYBRID_EXPORT vtkRIBExporter : public vtkExporter
00083 {
00084 public:
00085   static vtkRIBExporter *New();
00086   vtkTypeRevisionMacro(vtkRIBExporter,vtkExporter);
00087   void PrintSelf(ostream& os, vtkIndent indent);
00088 
00090 
00092   vtkSetVector2Macro(Size,int);
00093   vtkGetVectorMacro(Size,int,2);
00095 
00097 
00098   vtkSetVector2Macro(PixelSamples,int);
00099   vtkGetVectorMacro(PixelSamples,int,2);
00101 
00103 
00105   vtkSetStringMacro(FilePrefix);
00106   vtkGetStringMacro(FilePrefix);
00108 
00110 
00111   vtkSetStringMacro(TexturePrefix);
00112   vtkGetStringMacro(TexturePrefix);
00114 
00116 
00130   vtkSetMacro(Background,int);
00131   vtkGetMacro(Background,int);
00132   vtkBooleanMacro(Background,int);
00134 
00136 
00139   vtkSetClampMacro(ExportArrays, int, 0, 1);
00140   vtkBooleanMacro(ExportArrays, int);
00141   vtkGetMacro(ExportArrays, int);
00143 
00144 protected:
00145   vtkRIBExporter();
00146   ~vtkRIBExporter();
00147 
00148   int Background;
00149   int Size[2];
00150   int PixelSamples[2];
00151 
00153   int ExportArrays;
00154 
00156 
00157   void WriteHeader (vtkRenderer *aRen);
00158   void WriteTrailer ();
00159   void WriteTexture (vtkTexture *aTexture);
00160   void WriteViewport (vtkRenderer *aRenderer, int size[2]);
00161   void WriteCamera (vtkCamera *aCamera);
00162   void WriteLight (vtkLight *aLight, int count);
00163   void WriteAmbientLight (int count);
00164   void WriteProperty (vtkProperty *aProperty, vtkTexture *aTexture);
00165   void WritePolygons (vtkPolyData *pd, vtkUnsignedCharArray *colors, 
00166                       vtkProperty *aProperty);
00167   void WriteStrips (vtkPolyData *pd, vtkUnsignedCharArray *colors, 
00168                     vtkProperty *aProperty);
00170 
00171   void WriteData();
00172   void WriteActor(vtkActor *anActor);
00173   
00178   void ModifyArrayName(char *newname, const char* name);
00179 
00180   char *GetTextureName (vtkTexture *aTexture);
00181   char *GetTIFFName (vtkTexture *aTexture);
00182   char *FilePrefix;
00183   FILE *FilePtr;
00184   char *TexturePrefix;
00185 private:
00186   vtkRIBExporter(const vtkRIBExporter&);  // Not implemented.
00187   void operator=(const vtkRIBExporter&);  // Not implemented.
00188 };
00189 
00190 #endif
00191