VTK  9.7.1
vtkGLTFWriter.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
30 #ifndef vtkGLTFWriter_h
31 #define vtkGLTFWriter_h
32 
33 #include "vtkIOGeometryModule.h" // For export macro
34 #include "vtkWriter.h"
35 
36 #include <string> // for std::string
37 
38 VTK_ABI_NAMESPACE_BEGIN
40 class VTKIOGEOMETRY_EXPORT vtkGLTFWriter : public vtkWriter
41 {
42 public:
43  static vtkGLTFWriter* New();
44  vtkTypeMacro(vtkGLTFWriter, vtkWriter);
45  void PrintSelf(ostream& os, vtkIndent indent) override;
46 
48 
51  vtkSetStringMacro(FileName);
52  vtkGetStringMacro(FileName);
54 
56 
59  vtkSetStringMacro(TextureBaseDirectory);
60  vtkGetStringMacro(TextureBaseDirectory);
62 
64 
71  vtkSetStringMacro(PropertyTextureFile);
72  vtkGetStringMacro(PropertyTextureFile);
74 
76 
80  vtkGetMacro(InlineData, bool);
81  vtkSetMacro(InlineData, bool);
82  vtkBooleanMacro(InlineData, bool);
84 
86 
92  vtkGetMacro(SaveNormal, bool);
93  vtkSetMacro(SaveNormal, bool);
94  vtkBooleanMacro(SaveNormal, bool);
96 
98 
108  vtkGetMacro(SaveBatchId, bool);
109  vtkSetMacro(SaveBatchId, bool);
110  vtkBooleanMacro(SaveBatchId, bool);
112 
114 
122  vtkGetMacro(SaveTextures, bool);
123  vtkSetMacro(SaveTextures, bool);
124  vtkBooleanMacro(SaveTextures, bool);
126 
128 
133  vtkGetMacro(CopyTextures, bool);
134  vtkSetMacro(CopyTextures, bool);
135  vtkBooleanMacro(CopyTextures, bool);
137 
139 
149  vtkGetMacro(SaveActivePointColor, bool);
150  vtkSetMacro(SaveActivePointColor, bool);
151  vtkBooleanMacro(SaveActivePointColor, bool);
153 
155 
165  vtkGetMacro(RelativeCoordinates, bool);
166  vtkSetMacro(RelativeCoordinates, bool);
167  vtkBooleanMacro(RelativeCoordinates, bool);
169 
171 
176  vtkGetMacro(Binary, bool);
178 
182  std::string WriteToString();
183 
187  void WriteToStream(ostream& out, vtkDataObject* in);
188 
194  VTK_DEPRECATED_IN_9_6_0("Use vtkPolyDataMaterial::GetField() instead.")
195  static std::vector<std::string> GetFieldAsStringVector(vtkDataObject* obj, const char* name);
196 
197 protected:
198  vtkGLTFWriter();
199  ~vtkGLTFWriter() override;
200 
201  bool WriteDataAndReturn() override;
202  int FillInputPortInformation(int port, vtkInformation* info) override;
203  void WriteToStreamMultiBlock(ostream& out, vtkMultiBlockDataSet* in);
204 
205  char* FileName;
206  char* TextureBaseDirectory;
207  char* PropertyTextureFile;
208  bool InlineData;
209  bool SaveNormal;
210  bool SaveBatchId;
211  bool SaveTextures;
212  bool RelativeCoordinates;
213  bool CopyTextures;
214  bool SaveActivePointColor;
215  bool Binary;
216 
217 private:
218  vtkGLTFWriter(const vtkGLTFWriter&) = delete;
219  void operator=(const vtkGLTFWriter&) = delete;
220 };
221 
222 VTK_ABI_NAMESPACE_END
223 #endif
export a scene into GLTF 2.0 format.
Definition: vtkGLTFWriter.h:40
Store vtkAlgorithm input/output information.
abstract class to write data to file(s)
Definition: vtkWriter.h:35
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
#define VTK_DEPRECATED_IN_9_6_0(reason)
a simple class to control print indentation
Definition: vtkIndent.h:28
Composite dataset that organizes datasets into blocks.
static vtkAlgorithm * New()
general representation of visualization data
Definition: vtkDataObject.h:55