Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class 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 =========================================================================*/
00054 #ifndef __vtkVRMLImporter_h
00055 #define __vtkVRMLImporter_h
00056 
00057 // Includes for the yacc/lex parser
00058 #include "vtkImporter.h"
00059 
00060 class vtkActor;
00061 class vtkProperty;
00062 class vtkCamera;
00063 class vtkLight;
00064 class vtkTransform;
00065 class vtkSource;
00066 class vtkLookupTable;
00067 class vtkFloatArray;
00068 class vtkPolyDataMapper;
00069 class vtkPoints;
00070 class vtkIdTypeArray;
00071 class vtkVRMLImporterInternal;
00072 
00073 class VTK_HYBRID_EXPORT vtkVRMLImporter : public vtkImporter
00074 {
00075 public:
00076   static vtkVRMLImporter *New();
00077 
00078   vtkTypeRevisionMacro(vtkVRMLImporter,vtkImporter);
00079   void PrintSelf(ostream& os, vtkIndent indent);
00080 
00086   vtkObject *GetVRMLDEFObject(const char *name);
00087 
00089 
00090   void enterNode(const char *);
00091   void exitNode();
00092   void enterField(const char *);
00093   void exitField();
00094   void useNode(const char *);
00096 
00098 
00099   vtkSetStringMacro(FileName);
00100   vtkGetStringMacro(FileName);
00102 
00104   FILE *GetFileFD() {return this->FileFD;};
00105 
00106 //BTX
00107 
00108   friend int yylex ( vtkVRMLImporter* );
00109 
00110 //ETX
00111 
00112 protected:
00113   vtkVRMLImporter();
00114   ~vtkVRMLImporter();
00115 
00116   virtual int ImportBegin ();
00117   virtual void ImportEnd ();
00118   virtual void ImportActors (vtkRenderer *) {};
00119   virtual void ImportCameras (vtkRenderer *) {};
00120   virtual void ImportLights (vtkRenderer *) {};
00121   virtual void ImportProperties (vtkRenderer *) {};
00122 
00123   int OpenImportFile();
00124   char *FileName;
00125   FILE *FileFD;
00126 
00127 private:
00128   vtkActor             *CurrentActor;
00129   vtkProperty          *CurrentProperty;
00130   vtkCamera            *CurrentCamera;
00131   vtkLight             *CurrentLight;
00132   vtkTransform         *CurrentTransform;
00133   vtkSource            *CurrentSource;
00134   vtkPoints            *CurrentPoints;
00135   vtkFloatArray         *CurrentNormals;
00136   vtkLookupTable       *CurrentLut;
00137   vtkFloatArray        *CurrentScalars;
00138   vtkPolyDataMapper    *CurrentMapper;
00139 
00140   vtkPoints* PointsNew();
00141   vtkIdTypeArray* IdTypeArrayNew();
00142 
00143   void DeleteObject(vtkObject*);
00144 
00145   vtkVRMLImporterInternal* Internal;
00146 
00147 private:
00148   vtkVRMLImporter(const vtkVRMLImporter&);  // Not implemented.
00149   void operator=(const vtkVRMLImporter&);  // Not implemented.
00150 };
00151 
00152 #endif
00153