VTK  9.7.1
vtkPLYWriter.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
29 #ifndef vtkPLYWriter_h
30 #define vtkPLYWriter_h
31 
32 #include "vtkIOPLYModule.h" // For export macro
33 #include "vtkSmartPointer.h" // For protected ivars
34 #include "vtkWriter.h"
35 
36 #include <string> // For string parameter
37 
38 VTK_ABI_NAMESPACE_BEGIN
40 class vtkPolyData;
41 class vtkScalarsToColors;
42 class vtkStringArray;
44 
45 #define VTK_LITTLE_ENDIAN 0
46 #define VTK_BIG_ENDIAN 1
47 
48 #define VTK_COLOR_MODE_DEFAULT 0
49 #define VTK_COLOR_MODE_UNIFORM_CELL_COLOR 1
50 #define VTK_COLOR_MODE_UNIFORM_POINT_COLOR 2
51 #define VTK_COLOR_MODE_UNIFORM_COLOR 3
52 #define VTK_COLOR_MODE_OFF 4
53 
54 #define VTK_TEXTURECOORDS_UV 0
55 #define VTK_TEXTURECOORDS_TEXTUREUV 1
56 #define VTK_TEXTURECOORDS_ST 2
57 
58 class VTKIOPLY_EXPORT vtkPLYWriter : public vtkWriter
59 {
60 public:
61  static vtkPLYWriter* New();
62  vtkTypeMacro(vtkPLYWriter, vtkWriter);
63  void PrintSelf(ostream& os, vtkIndent indent) override;
64 
66 
70  vtkSetClampMacro(DataByteOrder, int, VTK_LITTLE_ENDIAN, VTK_BIG_ENDIAN);
71  vtkGetMacro(DataByteOrder, int);
72  void SetDataByteOrderToBigEndian() { this->SetDataByteOrder(VTK_BIG_ENDIAN); }
73  void SetDataByteOrderToLittleEndian() { this->SetDataByteOrder(VTK_LITTLE_ENDIAN); }
75 
77 
85  vtkSetMacro(WriteToOutputString, bool);
86  vtkGetMacro(WriteToOutputString, bool);
87  vtkBooleanMacro(WriteToOutputString, bool);
88  const std::string& GetOutputString() const { return this->OutputString; }
90 
92 
96  vtkSetMacro(WriteObjectInformation, bool);
97  vtkGetMacro(WriteObjectInformation, bool);
98  vtkBooleanMacro(WriteObjectInformation, bool);
100 
102 
119  vtkSetMacro(ColorMode, int);
120  vtkGetMacro(ColorMode, int);
121  void SetColorModeToDefault() { this->SetColorMode(VTK_COLOR_MODE_DEFAULT); }
124  void SetColorModeToUniformColor() // both cells and points are colored
125  {
126  this->SetColorMode(VTK_COLOR_MODE_UNIFORM_COLOR);
127  }
128  void SetColorModeToOff() // No color information is written
129  {
130  this->SetColorMode(VTK_COLOR_MODE_OFF);
131  }
133 
135 
139  vtkSetMacro(EnableAlpha, bool);
140  vtkGetMacro(EnableAlpha, bool);
141  vtkBooleanMacro(EnableAlpha, bool);
143 
145 
148  vtkSetStringMacro(ArrayName);
149  vtkGetStringMacro(ArrayName);
151 
153 
156  vtkSetClampMacro(Component, int, 0, VTK_INT_MAX);
157  vtkGetMacro(Component, int);
159 
161 
165  virtual void SetLookupTable(vtkScalarsToColors*);
166  vtkGetObjectMacro(LookupTable, vtkScalarsToColors);
168 
170 
176  vtkSetVector3Macro(Color, unsigned char);
177  vtkGetVector3Macro(Color, unsigned char);
179 
181 
184  vtkSetMacro(Alpha, unsigned char);
185  vtkGetMacro(Alpha, unsigned char);
187 
189 
193  vtkPolyData* GetInput(int port);
195 
197 
200  vtkSetFilePathMacro(FileName);
201  vtkGetFilePathMacro(FileName);
203 
205 
208  vtkSetClampMacro(FileType, int, VTK_ASCII, VTK_BINARY);
209  vtkGetMacro(FileType, int);
210  void SetFileTypeToASCII() { this->SetFileType(VTK_ASCII); }
211  void SetFileTypeToBinary() { this->SetFileType(VTK_BINARY); }
213 
215 
221  vtkSetClampMacro(TextureCoordinatesName, int, VTK_TEXTURECOORDS_UV, VTK_TEXTURECOORDS_ST);
222  vtkGetMacro(TextureCoordinatesName, int);
223  void SetTextureCoordinatesNameToUV() { this->SetTextureCoordinatesName(VTK_TEXTURECOORDS_UV); }
225  {
226  this->SetTextureCoordinatesName(VTK_TEXTURECOORDS_TEXTUREUV);
227  }
228  void SetTextureCoordinatesNameToST() { this->SetTextureCoordinatesName(VTK_TEXTURECOORDS_ST); }
230 
234  void AddComment(const std::string& comment);
235 
236 protected:
237  vtkPLYWriter();
238  ~vtkPLYWriter() override;
239 
240  bool WriteDataAndReturn() override;
242  const float* GetTextureCoordinates(vtkIdType num, vtkDataSetAttributes* dsa);
243  const float* GetNormals(vtkIdType num, vtkDataSetAttributes* dsa);
244 
246  char* ArrayName;
250  unsigned char Color[3];
251 
253  unsigned char Alpha;
254 
255  char* FileName;
256 
257  int FileType;
259 
261 
262  // Whether this object is writing to a string or a file.
263  // Default is 0: write to file.
265 
267 
268  // The output string.
270 
271  int FillInputPortInformation(int port, vtkInformation* info) override;
272 
273 private:
274  vtkPLYWriter(const vtkPLYWriter&) = delete;
275  void operator=(const vtkPLYWriter&) = delete;
276 };
277 
278 VTK_ABI_NAMESPACE_END
279 #endif
vtkScalarsToColors * LookupTable
Definition: vtkPLYWriter.h:249
#define VTK_COLOR_MODE_OFF
Definition: vtkPLYWriter.h:52
void SetTextureCoordinatesNameToTextureUV()
Choose the name used for the texture coordinates.
Definition: vtkPLYWriter.h:224
void SetTextureCoordinatesNameToST()
Choose the name used for the texture coordinates.
Definition: vtkPLYWriter.h:228
Store vtkAlgorithm input/output information.
void SetFileTypeToBinary()
Specify file type (ASCII or BINARY) for vtk data file.
Definition: vtkPLYWriter.h:211
bool WriteObjectInformation
Definition: vtkPLYWriter.h:266
#define VTK_INT_MAX
Definition: vtkType.h:192
void SetDataByteOrderToBigEndian()
If the file type is binary, then the user can specify which byte order to use (little versus big endi...
Definition: vtkPLYWriter.h:72
write Stanford PLY file format
Definition: vtkPLYWriter.h:58
a vtkAbstractArray subclass for strings
int vtkIdType
Definition: vtkType.h:363
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:71
#define VTK_ASCII
Definition: vtkWriter.h:32
#define VTK_COLOR_MODE_UNIFORM_POINT_COLOR
Definition: vtkPLYWriter.h:50
std::string OutputString
Definition: vtkPLYWriter.h:269
int TextureCoordinatesName
Definition: vtkPLYWriter.h:258
vtkSmartPointer< vtkStringArray > HeaderComments
Definition: vtkPLYWriter.h:260
Superclass for mapping scalar values to colors.
void SetTextureCoordinatesNameToUV()
Choose the name used for the texture coordinates.
Definition: vtkPLYWriter.h:223
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.
const std::string & GetOutputString() const
Enable writing to an OutputString instead of the default, a file.
Definition: vtkPLYWriter.h:88
#define VTK_BIG_ENDIAN
Definition: vtkPLYWriter.h:46
unsigned char Alpha
Definition: vtkPLYWriter.h:253
a simple class to control print indentation
Definition: vtkIndent.h:28
vtkDataObject * GetInput()
void SetColorModeToOff()
These methods enable the user to control how to add color into the PLY output file.
Definition: vtkPLYWriter.h:128
void SetFileTypeToASCII()
Specify file type (ASCII or BINARY) for vtk data file.
Definition: vtkPLYWriter.h:210
#define VTK_BINARY
Definition: vtkWriter.h:33
#define VTK_COLOR_MODE_UNIFORM_COLOR
Definition: vtkPLYWriter.h:51
represent and manipulate attribute data in a dataset
void SetColorModeToUniformPointColor()
These methods enable the user to control how to add color into the PLY output file.
Definition: vtkPLYWriter.h:123
#define VTK_TEXTURECOORDS_UV
Definition: vtkPLYWriter.h:54
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
#define VTK_TEXTURECOORDS_ST
Definition: vtkPLYWriter.h:56
bool WriteToOutputString
Definition: vtkPLYWriter.h:264
dynamic, self-adjusting array of unsigned char
#define VTK_LITTLE_ENDIAN
Definition: vtkPLYWriter.h:45
void SetColorModeToUniformCellColor()
These methods enable the user to control how to add color into the PLY output file.
Definition: vtkPLYWriter.h:122
char * FileName
Definition: vtkPLYWriter.h:255
#define VTK_COLOR_MODE_DEFAULT
Definition: vtkPLYWriter.h:48
void SetDataByteOrderToLittleEndian()
If the file type is binary, then the user can specify which byte order to use (little versus big endi...
Definition: vtkPLYWriter.h:73
#define VTK_TEXTURECOORDS_TEXTUREUV
Definition: vtkPLYWriter.h:55
void SetColorModeToUniformColor()
These methods enable the user to control how to add color into the PLY output file.
Definition: vtkPLYWriter.h:124
static vtkAlgorithm * New()
virtual bool WriteDataAndReturn()
void SetColorModeToDefault()
These methods enable the user to control how to add color into the PLY output file.
Definition: vtkPLYWriter.h:121
#define VTK_COLOR_MODE_UNIFORM_CELL_COLOR
Definition: vtkPLYWriter.h:49
char * ArrayName
Definition: vtkPLYWriter.h:246