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

Hybrid/vtkVRMLImporter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkVRMLImporter.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 =========================================================================*/
00066 #ifndef __vtkVRMLImporter_h
00067 #define __vtkVRMLImporter_h
00068 
00069 // Includes for the yacc/lex parser
00070 #include "vtkImporter.h"
00071 
00072 class vtkActor;
00073 class vtkProperty;
00074 class vtkCamera;
00075 class vtkLight;
00076 class vtkTransform;
00077 class vtkSource;
00078 class vtkLookupTable;
00079 class vtkFloatArray;
00080 class vtkPolyDataMapper;
00081 class vtkPoints;
00082 class vtkIdTypeArray;
00083 class vtkVRMLImporterInternal;
00084 
00085 class VTK_HYBRID_EXPORT vtkVRMLImporter : public vtkImporter
00086 {
00087 public:
00088   static vtkVRMLImporter *New();
00089 
00090   vtkTypeRevisionMacro(vtkVRMLImporter,vtkImporter);
00091   void PrintSelf(ostream& os, vtkIndent indent);
00092 
00098   vtkObject *GetVRMLDEFObject(const char *name);
00099 
00101 
00102   void enterNode(const char *);
00103   void exitNode();
00104   void enterField(const char *);
00105   void exitField();
00106   void useNode(const char *);
00108 
00110 
00111   vtkSetStringMacro(FileName);
00112   vtkGetStringMacro(FileName);
00114 
00116   FILE *GetFileFD() {return this->FileFD;};
00117 
00118 //BTX
00119 
00120   friend int yylex ( vtkVRMLImporter* );
00121 
00122 //ETX
00123 
00124 protected:
00125   vtkVRMLImporter();
00126   ~vtkVRMLImporter();
00127 
00128   virtual int ImportBegin ();
00129   virtual void ImportEnd ();
00130   virtual void ImportActors (vtkRenderer *) {};
00131   virtual void ImportCameras (vtkRenderer *) {};
00132   virtual void ImportLights (vtkRenderer *) {};
00133   virtual void ImportProperties (vtkRenderer *) {};
00134 
00135   int OpenImportFile();
00136   char *FileName;
00137   FILE *FileFD;
00138 
00139 private:
00140   vtkActor             *CurrentActor;
00141   vtkProperty          *CurrentProperty;
00142   vtkCamera            *CurrentCamera;
00143   vtkLight             *CurrentLight;
00144   vtkTransform         *CurrentTransform;
00145   vtkSource            *CurrentSource;
00146   vtkPoints            *CurrentPoints;
00147   vtkFloatArray         *CurrentNormals;
00148   vtkLookupTable       *CurrentLut;
00149   vtkFloatArray        *CurrentScalars;
00150   vtkPolyDataMapper    *CurrentMapper;
00151 
00152   vtkPoints* PointsNew();
00153   vtkIdTypeArray* IdTypeArrayNew();
00154 
00155   void DeleteObject(vtkObject*);
00156 
00157   vtkVRMLImporterInternal* Internal;
00158 
00159 private:
00160   vtkVRMLImporter(const vtkVRMLImporter&);  // Not implemented.
00161   void operator=(const vtkVRMLImporter&);  // Not implemented.
00162 };
00163 
00164 #endif
00165