VTK  9.3.1
vtkVRMLImporter.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
45 #ifndef vtkVRMLImporter_h
46 #define vtkVRMLImporter_h
47 
48 #include "vtkIOImportModule.h" // For export macro
49 #include "vtkImporter.h"
50 
51 VTK_ABI_NAMESPACE_BEGIN
52 class vtkActor;
53 class vtkAlgorithm;
54 class vtkProperty;
55 class vtkLight;
56 class vtkTransform;
57 class vtkLookupTable;
58 class vtkFloatArray;
59 class vtkPolyDataMapper;
60 class vtkPoints;
61 class vtkIdTypeArray;
62 class vtkVRMLImporterInternal;
63 class vtkVRMLYaccData;
64 class vtkCellArray;
65 
66 class VTKIOIMPORT_EXPORT vtkVRMLImporter : public vtkImporter
67 {
68 public:
69  static vtkVRMLImporter* New();
70 
71  vtkTypeMacro(vtkVRMLImporter, vtkImporter);
72  void PrintSelf(ostream& os, vtkIndent indent) override;
73 
75 
78  vtkSetFilePathMacro(FileName);
79  vtkGetFilePathMacro(FileName);
81 
83 
87  vtkSetMacro(ShapeResolution, int);
88  vtkGetMacro(ShapeResolution, int);
90 
99  vtkObject* GetVRMLDEFObject(const char* name);
100 
105 
106 protected:
107  vtkVRMLImporter();
108  ~vtkVRMLImporter() override;
109 
110  int OpenImportFile();
111  int ImportBegin() override;
112  void ImportEnd() override;
113  void ImportActors(vtkRenderer*) override {}
114  void ImportCameras(vtkRenderer*) override {}
115  void ImportLights(vtkRenderer*) override {}
116  void ImportProperties(vtkRenderer*) override {}
117 
119 
122  virtual void enterNode(const char*);
123  virtual void exitNode();
124  virtual void enterField(const char*);
125  virtual void exitField();
126  virtual void useNode(const char*);
128 
132  FILE* GetFileFD() { return this->FileFD; }
133 
134  char* FileName;
135  FILE* FileFD;
137 
138  friend class vtkVRMLYaccData;
139 
140 private:
141  vtkPoints* PointsNew();
142  vtkFloatArray* FloatArrayNew();
143  vtkIdTypeArray* IdTypeArrayNew();
144 
145  void DeleteObject(vtkObject*);
146 
147  vtkVRMLImporterInternal* Internal;
148  vtkVRMLYaccData* Parser;
149  vtkActor* CurrentActor;
150  vtkProperty* CurrentProperty;
151  vtkLight* CurrentLight;
152  vtkTransform* CurrentTransform;
153  vtkAlgorithm* CurrentSource;
154  vtkPoints* CurrentPoints;
155  vtkFloatArray* CurrentNormals;
156  vtkCellArray* CurrentNormalCells;
157  vtkFloatArray* CurrentTCoords;
158  vtkCellArray* CurrentTCoordCells;
159  vtkLookupTable* CurrentLut;
160  vtkFloatArray* CurrentScalars;
161  vtkPolyDataMapper* CurrentMapper;
162 
163  vtkVRMLImporter(const vtkVRMLImporter&) = delete;
164  void operator=(const vtkVRMLImporter&) = delete;
165 };
166 
167 VTK_ABI_NAMESPACE_END
168 #endif
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:40
void ImportActors(vtkRenderer *) override
abstract base class for most VTK objects
Definition: vtkObject.h:51
represent surface properties of a geometric object
Definition: vtkProperty.h:56
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
FILE * GetFileFD()
Return the file pointer to the open file.
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:30
map scalar values into colors via a lookup table
void ImportLights(vtkRenderer *) override
abstract specification for renderers
Definition: vtkRenderer.h:61
describes linear transformations via a 4x4 matrix
Definition: vtkTransform.h:49
dynamic, self-adjusting array of vtkIdType
importer abstract class
Definition: vtkImporter.h:48
virtual void ImportEnd()
Definition: vtkImporter.h:153
virtual int ImportBegin()
Definition: vtkImporter.h:152
void ImportProperties(vtkRenderer *) override
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:51
a simple class to control print indentation
Definition: vtkIndent.h:28
a virtual light for 3D rendering
Definition: vtkLight.h:48
virtual std::string GetOutputsDescription()
Recover a printable string that let importer implementation Describe their outputs.
Definition: vtkImporter.h:87
void ImportCameras(vtkRenderer *) override
map vtkPolyData to graphics primitives
object to represent cell connectivity
Definition: vtkCellArray.h:175
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
imports VRML 2.0 files.
represent and manipulate 3D points
Definition: vtkPoints.h:28