VTK  9.2.5
vtkPLYWriter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkPLYWriter.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 =========================================================================*/
70 #ifndef vtkPLYWriter_h
71 #define vtkPLYWriter_h
72 
73 #include "vtkIOPLYModule.h" // For export macro
74 #include "vtkSmartPointer.h" // For protected ivars
75 #include "vtkWriter.h"
76 
77 #include <string> // For string parameter
78 
80 class vtkPolyData;
81 class vtkScalarsToColors;
82 class vtkStringArray;
84 
85 #define VTK_LITTLE_ENDIAN 0
86 #define VTK_BIG_ENDIAN 1
87 
88 #define VTK_COLOR_MODE_DEFAULT 0
89 #define VTK_COLOR_MODE_UNIFORM_CELL_COLOR 1
90 #define VTK_COLOR_MODE_UNIFORM_POINT_COLOR 2
91 #define VTK_COLOR_MODE_UNIFORM_COLOR 3
92 #define VTK_COLOR_MODE_OFF 4
93 
94 #define VTK_TEXTURECOORDS_UV 0
95 #define VTK_TEXTURECOORDS_TEXTUREUV 1
96 
97 class VTKIOPLY_EXPORT vtkPLYWriter : public vtkWriter
98 {
99 public:
100  static vtkPLYWriter* New();
101  vtkTypeMacro(vtkPLYWriter, vtkWriter);
102  void PrintSelf(ostream& os, vtkIndent indent) override;
103 
105 
109  vtkSetClampMacro(DataByteOrder, int, VTK_LITTLE_ENDIAN, VTK_BIG_ENDIAN);
110  vtkGetMacro(DataByteOrder, int);
111  void SetDataByteOrderToBigEndian() { this->SetDataByteOrder(VTK_BIG_ENDIAN); }
112  void SetDataByteOrderToLittleEndian() { this->SetDataByteOrder(VTK_LITTLE_ENDIAN); }
114 
116 
124  vtkSetMacro(WriteToOutputString, bool);
125  vtkGetMacro(WriteToOutputString, bool);
126  vtkBooleanMacro(WriteToOutputString, bool);
127  const std::string& GetOutputString() const { return this->OutputString; }
129 
131 
148  vtkSetMacro(ColorMode, int);
149  vtkGetMacro(ColorMode, int);
150  void SetColorModeToDefault() { this->SetColorMode(VTK_COLOR_MODE_DEFAULT); }
153  void SetColorModeToUniformColor() // both cells and points are colored
154  {
155  this->SetColorMode(VTK_COLOR_MODE_UNIFORM_COLOR);
156  }
157  void SetColorModeToOff() // No color information is written
158  {
159  this->SetColorMode(VTK_COLOR_MODE_OFF);
160  }
162 
164 
168  vtkSetMacro(EnableAlpha, bool);
169  vtkGetMacro(EnableAlpha, bool);
170  vtkBooleanMacro(EnableAlpha, bool);
172 
174 
177  vtkSetStringMacro(ArrayName);
178  vtkGetStringMacro(ArrayName);
180 
182 
185  vtkSetClampMacro(Component, int, 0, VTK_INT_MAX);
186  vtkGetMacro(Component, int);
188 
190 
195  vtkGetObjectMacro(LookupTable, vtkScalarsToColors);
197 
199 
205  vtkSetVector3Macro(Color, unsigned char);
206  vtkGetVector3Macro(Color, unsigned char);
208 
210 
213  vtkSetMacro(Alpha, unsigned char);
214  vtkGetMacro(Alpha, unsigned char);
216 
218 
224 
226 
232 
234 
237  vtkSetClampMacro(FileType, int, VTK_ASCII, VTK_BINARY);
238  vtkGetMacro(FileType, int);
239  void SetFileTypeToASCII() { this->SetFileType(VTK_ASCII); }
240  void SetFileTypeToBinary() { this->SetFileType(VTK_BINARY); }
242 
244 
248  vtkSetClampMacro(TextureCoordinatesName, int, VTK_TEXTURECOORDS_UV, VTK_TEXTURECOORDS_TEXTUREUV);
249  vtkGetMacro(TextureCoordinatesName, int);
250  void SetTextureCoordinatesNameToUV() { this->SetTextureCoordinatesName(VTK_TEXTURECOORDS_UV); }
252  {
253  this->SetTextureCoordinatesName(VTK_TEXTURECOORDS_TEXTUREUV);
254  }
256 
260  void AddComment(const std::string& comment);
261 
262 protected:
264  ~vtkPLYWriter() override;
265 
266  void WriteData() override;
269  const float* GetNormals(vtkIdType num, vtkDataSetAttributes* dsa);
270 
272  char* ArrayName;
276  unsigned char Color[3];
277 
279  unsigned char Alpha;
280 
281  char* FileName;
282 
283  int FileType;
285 
287 
288  // Whether this object is writing to a string or a file.
289  // Default is 0: write to file.
291 
292  // The output string.
294 
296 
297 private:
298  vtkPLYWriter(const vtkPLYWriter&) = delete;
299  void operator=(const vtkPLYWriter&) = delete;
300 };
301 
302 #endif
represent and manipulate attribute data in a dataset
a simple class to control print indentation
Definition: vtkIndent.h:119
Store vtkAlgorithm input/output information.
write Stanford PLY file format
Definition: vtkPLYWriter.h:98
char * FileName
Definition: vtkPLYWriter.h:281
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:112
vtkSetFilePathMacro(FileName)
Specify file name of vtk polygon data file to write.
const std::string & GetOutputString() const
Enable writing to an OutputString instead of the default, a file.
Definition: vtkPLYWriter.h:127
void SetColorModeToUniformCellColor()
These methods enable the user to control how to add color into the PLY output file.
Definition: vtkPLYWriter.h:151
void SetFileTypeToASCII()
Specify file type (ASCII or BINARY) for vtk data file.
Definition: vtkPLYWriter.h:239
void SetColorModeToUniformColor()
These methods enable the user to control how to add color into the PLY output file.
Definition: vtkPLYWriter.h:153
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetFileTypeToBinary()
Specify file type (ASCII or BINARY) for vtk data file.
Definition: vtkPLYWriter.h:240
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:111
vtkGetFilePathMacro(FileName)
Specify file name of vtk polygon data file to write.
void AddComment(const std::string &comment)
Add a comment in the header part.
char * ArrayName
Definition: vtkPLYWriter.h:272
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkScalarsToColors * LookupTable
Definition: vtkPLYWriter.h:275
unsigned char Alpha
Definition: vtkPLYWriter.h:279
std::string OutputString
Definition: vtkPLYWriter.h:293
vtkSmartPointer< vtkUnsignedCharArray > GetColors(vtkIdType num, vtkDataSetAttributes *dsa)
~vtkPLYWriter() override
void SetTextureCoordinatesNameToUV()
Choose the name used for the texture coordinates.
Definition: vtkPLYWriter.h:250
void SetColorModeToDefault()
These methods enable the user to control how to add color into the PLY output file.
Definition: vtkPLYWriter.h:150
void SetColorModeToUniformPointColor()
These methods enable the user to control how to add color into the PLY output file.
Definition: vtkPLYWriter.h:152
static vtkPLYWriter * New()
bool WriteToOutputString
Definition: vtkPLYWriter.h:290
void WriteData() override
vtkPolyData * GetInput(int port)
Get the input to this writer.
const float * GetNormals(vtkIdType num, vtkDataSetAttributes *dsa)
int TextureCoordinatesName
Definition: vtkPLYWriter.h:284
virtual void SetLookupTable(vtkScalarsToColors *)
A lookup table can be specified in order to convert data arrays to RGBA colors.
void SetTextureCoordinatesNameToTextureUV()
Choose the name used for the texture coordinates.
Definition: vtkPLYWriter.h:251
vtkSmartPointer< vtkStringArray > HeaderComments
Definition: vtkPLYWriter.h:286
vtkPolyData * GetInput()
Get the input to this writer.
void SetColorModeToOff()
These methods enable the user to control how to add color into the PLY output file.
Definition: vtkPLYWriter.h:157
const float * GetTextureCoordinates(vtkIdType num, vtkDataSetAttributes *dsa)
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:200
Superclass for mapping scalar values to colors.
a vtkAbstractArray subclass for strings
dynamic, self-adjusting array of unsigned char
abstract class to write data to file(s)
Definition: vtkWriter.h:46
@ Color
Definition: vtkX3D.h:52
@ info
Definition: vtkX3D.h:382
@ port
Definition: vtkX3D.h:453
@ string
Definition: vtkX3D.h:496
#define VTK_LITTLE_ENDIAN
Definition: vtkPLYWriter.h:85
#define VTK_COLOR_MODE_DEFAULT
Definition: vtkPLYWriter.h:88
#define VTK_COLOR_MODE_OFF
Definition: vtkPLYWriter.h:92
#define VTK_COLOR_MODE_UNIFORM_POINT_COLOR
Definition: vtkPLYWriter.h:90
#define VTK_TEXTURECOORDS_UV
Definition: vtkPLYWriter.h:94
#define VTK_COLOR_MODE_UNIFORM_COLOR
Definition: vtkPLYWriter.h:91
#define VTK_BIG_ENDIAN
Definition: vtkPLYWriter.h:86
#define VTK_COLOR_MODE_UNIFORM_CELL_COLOR
Definition: vtkPLYWriter.h:89
#define VTK_TEXTURECOORDS_TEXTUREUV
Definition: vtkPLYWriter.h:95
int vtkIdType
Definition: vtkType.h:332
#define VTK_INT_MAX
Definition: vtkType.h:155
#define VTK_BINARY
Definition: vtkWriter.h:43
#define VTK_ASCII
Definition: vtkWriter.h:42