VTK  9.1.0
vtkJSONSceneExporter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkJSONSceneExporter.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 =========================================================================*/
25 #ifndef vtkJSONSceneExporter_h
26 #define vtkJSONSceneExporter_h
27 
28 #include "vtkExporter.h"
29 #include "vtkIOExportModule.h" // For export macro
30 #include "vtkSmartPointer.h" // For vtkSmartPointer
31 
32 #include <map> // For member variables
33 #include <string> // For string parameter
34 #include <vector> // For member variables
35 
36 class vtkActor;
38 class vtkDataObject;
39 class vtkDataSet;
41 class vtkPolyData;
42 class vtkPropCollection;
43 class vtkScalarsToColors;
44 class vtkTexture;
45 class vtkVolume;
47 
48 class VTKIOEXPORT_EXPORT vtkJSONSceneExporter : public vtkExporter
49 {
50 public:
53  void PrintSelf(ostream& os, vtkIndent indent) override;
54 
56 
63 
65 
70  vtkSetMacro(WriteTextures, bool);
71  vtkGetMacro(WriteTextures, bool);
73 
75 
84  vtkSetMacro(WriteTextureLODs, bool);
85  vtkGetMacro(WriteTextureLODs, bool);
87 
89 
94  vtkSetMacro(TextureLODsBaseSize, size_t);
95  vtkGetMacro(TextureLODsBaseSize, size_t);
97 
99 
103  vtkSetStringMacro(TextureLODsBaseUrl);
104  vtkGetStringMacro(TextureLODsBaseUrl);
106 
108 
122  vtkSetMacro(WritePolyLODs, bool);
123  vtkGetMacro(WritePolyLODs, bool);
125 
127 
134  vtkSetMacro(PolyLODsBaseSize, size_t);
135  vtkGetMacro(PolyLODsBaseSize, size_t);
137 
139 
143  vtkSetStringMacro(PolyLODsBaseUrl);
144  vtkGetStringMacro(PolyLODsBaseUrl);
146 
147 protected:
150 
151  void WritePropCollection(vtkPropCollection* collection, std::ostream& sceneComponents);
152  void WriteVolumeCollection(vtkVolumeCollection* volumeCollection, std::ostream& sceneComponents);
153 
154  void WriteDataObject(ostream& os, vtkDataObject* dataObject, vtkActor* actor, vtkVolume* volume);
159  std::string WriteDataSet(vtkDataSet* dataset, const char* addOnMeta);
160  void WriteLookupTable(const char* name, vtkScalarsToColors* lookupTable);
161 
162  void WriteData() override;
163 
165 
168 
169  // The returned pointer is the smallest poly LOD, intended to be
170  // written out in the vtkjs file.
172 
173  char* FileName;
182  std::map<std::string, std::string> LookupTables;
183  std::map<vtkTexture*, std::string> TextureStrings;
184  std::map<vtkTexture*, std::string> TextureLODStrings;
185 
186  // Files that subclasses should zip
187  std::vector<std::string> FilesToZip;
188 
189 private:
191  void operator=(const vtkJSONSceneExporter&) = delete;
192 };
193 
194 #endif
vtkVolumeCollection
an ordered list of volumes
Definition: vtkVolumeCollection.h:36
vtkJSONSceneExporter::WriteData
void WriteData() override
vtkVolume
represents a volume (data & properties) in a rendered scene
Definition: vtkVolume.h:134
vtkJSONSceneExporter::TextureLODsBaseUrl
char * TextureLODsBaseUrl
Definition: vtkJSONSceneExporter.h:177
vtkJSONSceneExporter::~vtkJSONSceneExporter
~vtkJSONSceneExporter() override
vtkJSONSceneExporter::TextureLODStrings
std::map< vtkTexture *, std::string > TextureLODStrings
Definition: vtkJSONSceneExporter.h:184
vtkJSONSceneExporter::vtkJSONSceneExporter
vtkJSONSceneExporter()
vtkJSONSceneExporter::PolyLODsBaseSize
size_t PolyLODsBaseSize
Definition: vtkJSONSceneExporter.h:179
vtkJSONSceneExporter::TextureStrings
std::map< vtkTexture *, std::string > TextureStrings
Definition: vtkJSONSceneExporter.h:183
vtkJSONSceneExporter::DatasetCount
int DatasetCount
Definition: vtkJSONSceneExporter.h:181
vtkJSONSceneExporter::ExtractPiecewiseFunctionSetup
std::string ExtractPiecewiseFunctionSetup(vtkPiecewiseFunction *pwf)
vtkJSONSceneExporter::ExtractActorRenderingSetup
std::string ExtractActorRenderingSetup(vtkActor *actor)
vtkSmartPointer< vtkPolyData >
vtkJSONSceneExporter::TextureLODsBaseSize
size_t TextureLODsBaseSize
Definition: vtkJSONSceneExporter.h:176
vtkJSONSceneExporter::vtkSetFilePathMacro
vtkSetFilePathMacro(FileName)
Specify file name of vtk data file to write.
vtkJSONSceneExporter::WritePropCollection
void WritePropCollection(vtkPropCollection *collection, std::ostream &sceneComponents)
vtkColorTransferFunction
Defines a transfer function for mapping a property to an RGB color value.
Definition: vtkColorTransferFunction.h:164
vtkJSONSceneExporter::ExtractVolumeRenderingSetup
std::string ExtractVolumeRenderingSetup(vtkVolume *volume)
vtkJSONSceneExporter::ExtractColorTransferFunctionSetup
std::string ExtractColorTransferFunctionSetup(vtkColorTransferFunction *volume)
vtkJSONSceneExporter::CurrentDataSetPath
std::string CurrentDataSetPath() const
vtkTexture
handles properties associated with a texture map
Definition: vtkTexture.h:175
vtkJSONSceneExporter::WritePolyLODSeries
vtkSmartPointer< vtkPolyData > WritePolyLODSeries(vtkPolyData *polys, std::string &config)
vtkJSONSceneExporter::WriteDataObject
void WriteDataObject(ostream &os, vtkDataObject *dataObject, vtkActor *actor, vtkVolume *volume)
vtkActor
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:155
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkSmartPointer.h
vtkJSONSceneExporter::WriteTextures
bool WriteTextures
Definition: vtkJSONSceneExporter.h:174
vtkJSONSceneExporter::LookupTables
std::map< std::string, std::string > LookupTables
Definition: vtkJSONSceneExporter.h:182
vtkJSONSceneExporter::WriteLookupTable
void WriteLookupTable(const char *name, vtkScalarsToColors *lookupTable)
vtkScalarsToColors
Superclass for mapping scalar values to colors.
Definition: vtkScalarsToColors.h:109
vtkX3D::name
@ name
Definition: vtkX3D.h:225
vtkJSONSceneExporter
Export the content of a vtkRenderWindow into a directory with a JSON meta file describing the scene a...
Definition: vtkJSONSceneExporter.h:49
vtkPiecewiseFunction
Defines a 1D piecewise function.
Definition: vtkPiecewiseFunction.h:145
vtkJSONSceneExporter::FileName
char * FileName
Definition: vtkJSONSceneExporter.h:173
vtkJSONSceneExporter::FilesToZip
std::vector< std::string > FilesToZip
Definition: vtkJSONSceneExporter.h:187
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:166
vtkX3D::string
@ string
Definition: vtkX3D.h:496
vtkJSONSceneExporter::WriteTexture
std::string WriteTexture(vtkTexture *texture)
vtkJSONSceneExporter::New
static vtkJSONSceneExporter * New()
vtkJSONSceneExporter::WriteDataSet
std::string WriteDataSet(vtkDataSet *dataset, const char *addOnMeta)
vtkJSONSceneExporter::PolyLODsBaseUrl
char * PolyLODsBaseUrl
Definition: vtkJSONSceneExporter.h:180
vtkExporter
abstract class to write a scene to a file
Definition: vtkExporter.h:48
vtkJSONSceneExporter::vtkGetFilePathMacro
vtkGetFilePathMacro(FileName)
Specify file name of vtk data file to write.
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:195
vtkExporter.h
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:169
vtkPropCollection
an ordered list of Props
Definition: vtkPropCollection.h:85
vtkJSONSceneExporter::WriteTextureLODs
bool WriteTextureLODs
Definition: vtkJSONSceneExporter.h:175
vtkJSONSceneExporter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkJSONSceneExporter::WriteVolumeCollection
void WriteVolumeCollection(vtkVolumeCollection *volumeCollection, std::ostream &sceneComponents)
vtkJSONSceneExporter::WriteTextureLODSeries
std::string WriteTextureLODSeries(vtkTexture *texture)
vtkJSONSceneExporter::WritePolyLODs
bool WritePolyLODs
Definition: vtkJSONSceneExporter.h:178