/usr/include/vtk-6.2/vtkVRMLImporter.h is in libvtk6-dev 6.2.0+dfsg1-10build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkVRMLImporter.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkVRMLImporter - imports VRML 2.0 files.
// .SECTION Description
//
// vtkVRMLImporter imports VRML 2.0 files into VTK.
// .SECTION Caveats
//
// These nodes are currently supported:
// Appearance IndexedFaceSet
// Box IndexedLineSet
// Color Material
// Cone Shape
// Coordinate Sphere
// Cylinder Transform
// DirectionalLight
//
// As you can see this implementation focuses on getting the geometry
// translated. The routes and scripting nodes are ignored since they deal
// with directly accessing a nodes internal structure based on the VRML
// spec. Since this is a translation the internal data structures differ
// greatly from the VRML spec and the External Authoring Interface (see the
// VRML spec). The DEF/USE mechanism does allow the VTK user to extract
// objects from the scene and directly manipulate them using the native
// language (Tcl, Python, Java, or whatever language VTK is wrapped
// in). This, in a way, removes the need for the route and script mechanism
// (not completely though).
// Texture coordinates are attached to the mesh is available but
// image textures are not loaded.
// Viewpoints (camera presets) are not imported.
//
// .SECTION Thanks
// Thanks to Russ Coucher of Areva for numerous bug fixes and a new test.
//
// .SECTION See Also
// vtkImporter
/* ======================================================================
Importer based on BNF Yacc and Lex parser definition from:
**************************************************
* VRML 2.0 Parser
* Copyright (C) 1996 Silicon Graphics, Inc.
*
* Author(s) : Gavin Bell
* Daniel Woods (first port)
**************************************************
Ported to VTK By: Thomas D. Citriniti
Rensselaer Polytechnic Institute
citrit@rpi.edu
=======================================================================*/
#ifndef vtkVRMLImporter_h
#define vtkVRMLImporter_h
#include "vtkIOImportModule.h" // For export macro
#include "vtkImporter.h"
class vtkActor;
class vtkAlgorithm;
class vtkProperty;
class vtkLight;
class vtkTransform;
class vtkLookupTable;
class vtkFloatArray;
class vtkPolyDataMapper;
class vtkPoints;
class vtkIdTypeArray;
class vtkVRMLImporterInternal;
class vtkVRMLYaccData;
class vtkCellArray;
class VTKIOIMPORT_EXPORT vtkVRMLImporter : public vtkImporter
{
public:
static vtkVRMLImporter *New();
vtkTypeMacro(vtkVRMLImporter, vtkImporter);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Specify the name of the file to read.
vtkSetStringMacro(FileName);
vtkGetStringMacro(FileName);
// Description:
// Specify the resolution for Sphere, Cone and Cylinder shape sources.
// Default is 12.
vtkSetMacro(ShapeResolution, int);
vtkGetMacro(ShapeResolution, int);
// Description:
// In the VRML spec you can DEF and USE nodes (name them),
// This routine will return the associated VTK object which
// was created as a result of the DEF mechanism
// Send in the name from the VRML file, get the VTK object.
// You will have to check and correctly cast the object since
// this only returns vtkObjects.
vtkObject* GetVRMLDEFObject(const char *name);
protected:
vtkVRMLImporter();
~vtkVRMLImporter();
int OpenImportFile();
virtual int ImportBegin();
virtual void ImportEnd();
virtual void ImportActors(vtkRenderer*) {}
virtual void ImportCameras(vtkRenderer*) {}
virtual void ImportLights(vtkRenderer*) {}
virtual void ImportProperties(vtkRenderer*) {}
// Description:
// Needed by the yacc/lex grammar used
virtual void enterNode(const char*);
virtual void exitNode();
virtual void enterField(const char*);
virtual void exitField();
virtual void useNode(const char*);
// Description:
// Return the file pointer to the open file.
FILE *GetFileFD() { return this->FileFD; }
char *FileName;
FILE *FileFD;
int ShapeResolution;
friend class vtkVRMLYaccData;
private:
vtkPoints* PointsNew();
vtkFloatArray* FloatArrayNew();
vtkIdTypeArray* IdTypeArrayNew();
void DeleteObject(vtkObject*);
vtkVRMLImporterInternal* Internal;
vtkVRMLYaccData* Parser;
vtkActor* CurrentActor;
vtkProperty* CurrentProperty;
vtkLight* CurrentLight;
vtkTransform* CurrentTransform;
vtkAlgorithm* CurrentSource;
vtkPoints* CurrentPoints;
vtkFloatArray* CurrentNormals;
vtkCellArray* CurrentNormalCells;
vtkFloatArray* CurrentTCoords;
vtkCellArray* CurrentTCoordCells;
vtkLookupTable* CurrentLut;
vtkFloatArray* CurrentScalars;
vtkPolyDataMapper* CurrentMapper;
private:
vtkVRMLImporter(const vtkVRMLImporter&); // Not implemented.
void operator=(const vtkVRMLImporter&); // Not implemented.
};
#endif
|