VTK
vtkVRMLImporter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkVRMLImporter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
57 #ifndef vtkVRMLImporter_h
58 #define vtkVRMLImporter_h
59 
60 #include "vtkIOImportModule.h" // For export macro
61 #include "vtkImporter.h"
62 
63 class vtkActor;
64 class vtkAlgorithm;
65 class vtkProperty;
66 class vtkLight;
67 class vtkTransform;
68 class vtkLookupTable;
69 class vtkFloatArray;
70 class vtkPolyDataMapper;
71 class vtkPoints;
72 class vtkIdTypeArray;
73 class vtkVRMLImporterInternal;
74 class vtkVRMLYaccData;
75 class vtkCellArray;
76 
77 class VTKIOIMPORT_EXPORT vtkVRMLImporter : public vtkImporter
78 {
79 public:
80  static vtkVRMLImporter *New();
81 
82  vtkTypeMacro(vtkVRMLImporter, vtkImporter);
83  void PrintSelf(ostream& os, vtkIndent indent);
84 
86 
89  vtkSetStringMacro(FileName);
90  vtkGetStringMacro(FileName);
92 
94 
98  vtkSetMacro(ShapeResolution, int);
99  vtkGetMacro(ShapeResolution, int);
101 
111 
112 protected:
115 
117  virtual int ImportBegin();
118  virtual void ImportEnd();
119  virtual void ImportActors(vtkRenderer*) {}
120  virtual void ImportCameras(vtkRenderer*) {}
121  virtual void ImportLights(vtkRenderer*) {}
122  virtual void ImportProperties(vtkRenderer*) {}
123 
125 
128  virtual void enterNode(const char*);
129  virtual void exitNode();
130  virtual void enterField(const char*);
131  virtual void exitField();
132  virtual void useNode(const char*);
134 
138  FILE *GetFileFD() { return this->FileFD; }
139 
140  char *FileName;
141  FILE *FileFD;
143 
144  friend class vtkVRMLYaccData;
145 
146 private:
147  vtkPoints* PointsNew();
148  vtkFloatArray* FloatArrayNew();
149  vtkIdTypeArray* IdTypeArrayNew();
150 
151  void DeleteObject(vtkObject*);
152 
153  vtkVRMLImporterInternal* Internal;
154  vtkVRMLYaccData* Parser;
155  vtkActor* CurrentActor;
156  vtkProperty* CurrentProperty;
157  vtkLight* CurrentLight;
158  vtkTransform* CurrentTransform;
159  vtkAlgorithm* CurrentSource;
160  vtkPoints* CurrentPoints;
161  vtkFloatArray* CurrentNormals;
162  vtkCellArray* CurrentNormalCells;
163  vtkFloatArray* CurrentTCoords;
164  vtkCellArray* CurrentTCoordCells;
165  vtkLookupTable* CurrentLut;
166  vtkFloatArray* CurrentScalars;
167  vtkPolyDataMapper* CurrentMapper;
168 
169 private:
170  vtkVRMLImporter(const vtkVRMLImporter&) VTK_DELETE_FUNCTION;
171  void operator=(const vtkVRMLImporter&) VTK_DELETE_FUNCTION;
172 };
173 
174 #endif
vtkPolyDataMapper
map vtkPolyData to graphics primitives
Definition: vtkPolyDataMapper.h:43
vtkPoints
represent and manipulate 3D points
Definition: vtkPoints.h:40
vtkVRMLImporter::ImportLights
virtual void ImportLights(vtkRenderer *)
Definition: vtkVRMLImporter.h:121
vtkVRMLImporter::vtkVRMLImporter
vtkVRMLImporter()
vtkVRMLImporter::GetFileFD
FILE * GetFileFD()
Return the file pointer to the open file.
Definition: vtkVRMLImporter.h:138
vtkImporter
importer abstract class
Definition: vtkImporter.h:55
vtkLight
a virtual light for 3D rendering
Definition: vtkLight.h:62
vtkImporter.h
vtkFloatArray
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:42
vtkAlgorithm
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:60
vtkVRMLImporter::FileFD
FILE * FileFD
Definition: vtkVRMLImporter.h:141
vtkVRMLImporter::ImportCameras
virtual void ImportCameras(vtkRenderer *)
Definition: vtkVRMLImporter.h:120
vtkVRMLImporter::enterNode
virtual void enterNode(const char *)
Needed by the yacc/lex grammar used.
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:60
vtkVRMLImporter::enterField
virtual void enterField(const char *)
vtkVRMLImporter::ImportProperties
virtual void ImportProperties(vtkRenderer *)
Definition: vtkVRMLImporter.h:122
vtkVRMLImporter::ShapeResolution
int ShapeResolution
Definition: vtkVRMLImporter.h:142
vtkTransform
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:61
vtkVRMLImporter::ImportActors
virtual void ImportActors(vtkRenderer *)
Definition: vtkVRMLImporter.h:119
vtkVRMLImporter::OpenImportFile
int OpenImportFile()
vtkVRMLImporter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:40
vtkCellArray
object to represent cell connectivity
Definition: vtkCellArray.h:51
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
vtkVRMLImporter::exitNode
virtual void exitNode()
vtkVRMLImporter::exitField
virtual void exitField()
vtkX3D::name
@ name
Definition: vtkX3D.h:219
vtkVRMLImporter::FileName
char * FileName
Definition: vtkVRMLImporter.h:140
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkLookupTable
map scalar values into colors via a lookup table
Definition: vtkLookupTable.h:75
vtkVRMLImporter::useNode
virtual void useNode(const char *)
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:42
vtkVRMLImporter::New
static vtkVRMLImporter * New()
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkVRMLImporter::GetVRMLDEFObject
vtkObject * GetVRMLDEFObject(const char *name)
In the VRML spec you can DEF and USE nodes (name them), This routine will return the associated VTK o...
vtkProperty
represent surface properties of a geometric object
Definition: vtkProperty.h:65
vtkVRMLImporter::ImportBegin
virtual int ImportBegin()
vtkVRMLImporter
imports VRML 2.0 files.
Definition: vtkVRMLImporter.h:78
vtkVRMLImporter::ImportEnd
virtual void ImportEnd()
vtkVRMLImporter::~vtkVRMLImporter
~vtkVRMLImporter()
vtkVRMLYaccData
Definition: vtkVRMLImporter_Yacc.h:119