VTK  9.0.2
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 =========================================================================*/
38 #ifndef vtkPLYWriter_h
39 #define vtkPLYWriter_h
40 
41 #include "vtkIOPLYModule.h" // For export macro
42 #include "vtkSmartPointer.h" // For protected ivars
43 #include "vtkWriter.h"
44 
45 #include <string> // For string parameter
46 
48 class vtkPolyData;
49 class vtkScalarsToColors;
50 class vtkStringArray;
52 
53 #define VTK_LITTLE_ENDIAN 0
54 #define VTK_BIG_ENDIAN 1
55 
56 #define VTK_COLOR_MODE_DEFAULT 0
57 #define VTK_COLOR_MODE_UNIFORM_CELL_COLOR 1
58 #define VTK_COLOR_MODE_UNIFORM_POINT_COLOR 2
59 #define VTK_COLOR_MODE_UNIFORM_COLOR 3
60 #define VTK_COLOR_MODE_OFF 4
61 
62 #define VTK_TEXTURECOORDS_UV 0
63 #define VTK_TEXTURECOORDS_TEXTUREUV 1
64 
65 class VTKIOPLY_EXPORT vtkPLYWriter : public vtkWriter
66 {
67 public:
68  static vtkPLYWriter* New();
69  vtkTypeMacro(vtkPLYWriter, vtkWriter);
70  void PrintSelf(ostream& os, vtkIndent indent) override;
71 
73 
77  vtkSetClampMacro(DataByteOrder, int, VTK_LITTLE_ENDIAN, VTK_BIG_ENDIAN);
78  vtkGetMacro(DataByteOrder, int);
79  void SetDataByteOrderToBigEndian() { this->SetDataByteOrder(VTK_BIG_ENDIAN); }
80  void SetDataByteOrderToLittleEndian() { this->SetDataByteOrder(VTK_LITTLE_ENDIAN); }
82 
84 
92  vtkSetMacro(WriteToOutputString, bool);
93  vtkGetMacro(WriteToOutputString, bool);
94  vtkBooleanMacro(WriteToOutputString, bool);
95  const std::string& GetOutputString() const { return this->OutputString; }
97 
99 
116  vtkSetMacro(ColorMode, int);
117  vtkGetMacro(ColorMode, int);
118  void SetColorModeToDefault() { this->SetColorMode(VTK_COLOR_MODE_DEFAULT); }
121  void SetColorModeToUniformColor() // both cells and points are colored
122  {
123  this->SetColorMode(VTK_COLOR_MODE_UNIFORM_COLOR);
124  }
125  void SetColorModeToOff() // No color information is written
126  {
127  this->SetColorMode(VTK_COLOR_MODE_OFF);
128  }
130 
132 
136  vtkSetMacro(EnableAlpha, bool);
137  vtkGetMacro(EnableAlpha, bool);
138  vtkBooleanMacro(EnableAlpha, bool);
140 
142 
145  vtkSetStringMacro(ArrayName);
146  vtkGetStringMacro(ArrayName);
148 
150 
153  vtkSetClampMacro(Component, int, 0, VTK_INT_MAX);
154  vtkGetMacro(Component, int);
156 
158 
163  vtkGetObjectMacro(LookupTable, vtkScalarsToColors);
165 
167 
173  vtkSetVector3Macro(Color, unsigned char);
174  vtkGetVector3Macro(Color, unsigned char);
176 
178 
181  vtkSetMacro(Alpha, unsigned char);
182  vtkGetMacro(Alpha, unsigned char);
184 
186 
192 
194 
197  vtkSetStringMacro(FileName);
198  vtkGetStringMacro(FileName);
200 
202 
205  vtkSetClampMacro(FileType, int, VTK_ASCII, VTK_BINARY);
206  vtkGetMacro(FileType, int);
207  void SetFileTypeToASCII() { this->SetFileType(VTK_ASCII); }
208  void SetFileTypeToBinary() { this->SetFileType(VTK_BINARY); }
210 
212 
216  vtkSetClampMacro(TextureCoordinatesName, int, VTK_TEXTURECOORDS_UV, VTK_TEXTURECOORDS_TEXTUREUV);
217  vtkGetMacro(TextureCoordinatesName, int);
218  void SetTextureCoordinatesNameToUV() { this->SetTextureCoordinatesName(VTK_TEXTURECOORDS_UV); }
220  {
221  this->SetTextureCoordinatesName(VTK_TEXTURECOORDS_TEXTUREUV);
222  }
224 
228  void AddComment(const std::string& comment);
229 
230 protected:
232  ~vtkPLYWriter() override;
233 
234  void WriteData() override;
237 
239  char* ArrayName;
243  unsigned char Color[3];
244 
246  unsigned char Alpha;
247 
248  char* FileName;
249 
250  int FileType;
252 
254 
255  // Whether this object is writing to a string or a file.
256  // Default is 0: write to file.
258 
259  // The output string.
261 
263 
264 private:
265  vtkPLYWriter(const vtkPLYWriter&) = delete;
266  void operator=(const vtkPLYWriter&) = delete;
267 };
268 
269 #endif
represent and manipulate attribute data in a dataset
a simple class to control print indentation
Definition: vtkIndent.h:34
Store vtkAlgorithm input/output information.
write Stanford PLY file format
Definition: vtkPLYWriter.h:66
char * FileName
Definition: vtkPLYWriter.h:248
void SetDataByteOrderToLittleEndian()
Definition: vtkPLYWriter.h:80
const std::string & GetOutputString() const
Definition: vtkPLYWriter.h:95
void SetColorModeToUniformCellColor()
Definition: vtkPLYWriter.h:119
void SetFileTypeToASCII()
Definition: vtkPLYWriter.h:207
void SetColorModeToUniformColor()
Definition: vtkPLYWriter.h:121
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
void SetFileTypeToBinary()
Definition: vtkPLYWriter.h:208
void SetDataByteOrderToBigEndian()
Definition: vtkPLYWriter.h:79
void AddComment(const std::string &comment)
Add a comment in the header part.
char * ArrayName
Definition: vtkPLYWriter.h:239
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkScalarsToColors * LookupTable
Definition: vtkPLYWriter.h:242
unsigned char Alpha
Definition: vtkPLYWriter.h:246
std::string OutputString
Definition: vtkPLYWriter.h:260
vtkSmartPointer< vtkUnsignedCharArray > GetColors(vtkIdType num, vtkDataSetAttributes *dsa)
~vtkPLYWriter() override
void SetTextureCoordinatesNameToUV()
Definition: vtkPLYWriter.h:218
void SetColorModeToDefault()
Definition: vtkPLYWriter.h:118
void SetColorModeToUniformPointColor()
Definition: vtkPLYWriter.h:120
static vtkPLYWriter * New()
bool WriteToOutputString
Definition: vtkPLYWriter.h:257
void WriteData() override
vtkPolyData * GetInput(int port)
int TextureCoordinatesName
Definition: vtkPLYWriter.h:251
virtual void SetLookupTable(vtkScalarsToColors *)
A lookup table can be specified in order to convert data arrays to RGBA colors.
void SetTextureCoordinatesNameToTextureUV()
Definition: vtkPLYWriter.h:219
vtkSmartPointer< vtkStringArray > HeaderComments
Definition: vtkPLYWriter.h:253
vtkPolyData * GetInput()
Get the input to this writer.
void SetColorModeToOff()
Definition: vtkPLYWriter.h:125
const float * GetTextureCoordinates(vtkIdType num, vtkDataSetAttributes *dsa)
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:85
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:53
#define VTK_COLOR_MODE_DEFAULT
Definition: vtkPLYWriter.h:56
#define VTK_COLOR_MODE_OFF
Definition: vtkPLYWriter.h:60
#define VTK_COLOR_MODE_UNIFORM_POINT_COLOR
Definition: vtkPLYWriter.h:58
#define VTK_TEXTURECOORDS_UV
Definition: vtkPLYWriter.h:62
#define VTK_COLOR_MODE_UNIFORM_COLOR
Definition: vtkPLYWriter.h:59
#define VTK_BIG_ENDIAN
Definition: vtkPLYWriter.h:54
#define VTK_COLOR_MODE_UNIFORM_CELL_COLOR
Definition: vtkPLYWriter.h:57
#define VTK_TEXTURECOORDS_TEXTUREUV
Definition: vtkPLYWriter.h:63
int vtkIdType
Definition: vtkType.h:338
#define VTK_INT_MAX
Definition: vtkType.h:155
#define VTK_BINARY
Definition: vtkWriter.h:43
#define VTK_ASCII
Definition: vtkWriter.h:42