VTK
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);
80  {this->SetDataByteOrder(VTK_BIG_ENDIAN);}
82  {this->SetDataByteOrder(VTK_LITTLE_ENDIAN);}
84 
86 
103  vtkSetMacro(ColorMode,int);
104  vtkGetMacro(ColorMode,int);
106  {this->SetColorMode(VTK_COLOR_MODE_DEFAULT);}
108  {this->SetColorMode(VTK_COLOR_MODE_UNIFORM_CELL_COLOR);}
110  {this->SetColorMode(VTK_COLOR_MODE_UNIFORM_POINT_COLOR);}
111  void SetColorModeToUniformColor() //both cells and points are colored
112  {this->SetColorMode(VTK_COLOR_MODE_UNIFORM_COLOR);}
113  void SetColorModeToOff() //No color information is written
114  {this->SetColorMode(VTK_COLOR_MODE_OFF);}
116 
118 
122  vtkSetMacro(EnableAlpha, bool);
123  vtkGetMacro(EnableAlpha, bool);
124  vtkBooleanMacro(EnableAlpha, bool);
126 
128 
131  vtkSetStringMacro(ArrayName);
132  vtkGetStringMacro(ArrayName);
134 
136 
139  vtkSetClampMacro(Component, int, 0, VTK_INT_MAX);
140  vtkGetMacro(Component, int);
142 
144 
148  virtual void SetLookupTable(vtkScalarsToColors*);
149  vtkGetObjectMacro(LookupTable, vtkScalarsToColors);
151 
153 
159  vtkSetVector3Macro(Color, unsigned char);
160  vtkGetVector3Macro(Color, unsigned char);
162 
164 
167  vtkSetMacro(Alpha, unsigned char);
168  vtkGetMacro(Alpha, unsigned char);
170 
172 
176  vtkPolyData* GetInput(int port);
178 
180 
183  vtkSetStringMacro(FileName);
184  vtkGetStringMacro(FileName);
186 
188 
191  vtkSetClampMacro(FileType, int, VTK_ASCII, VTK_BINARY);
192  vtkGetMacro(FileType, int);
193  void SetFileTypeToASCII() { this->SetFileType(VTK_ASCII); };
194  void SetFileTypeToBinary() { this->SetFileType(VTK_BINARY); };
196 
198 
202  vtkSetClampMacro(
203  TextureCoordinatesName, int, VTK_TEXTURECOORDS_UV, VTK_TEXTURECOORDS_TEXTUREUV);
204  vtkGetMacro(TextureCoordinatesName, int);
205  void SetTextureCoordinatesNameToUV() { this->SetTextureCoordinatesName(VTK_TEXTURECOORDS_UV); }
207  {this->SetTextureCoordinatesName(VTK_TEXTURECOORDS_TEXTUREUV);}
209 
213  void AddComment(const std::string &comment);
214 
215 protected:
216  vtkPLYWriter();
217  ~vtkPLYWriter() override;
218 
219  void WriteData() override;
221  const float *GetTextureCoordinates(vtkIdType num, vtkDataSetAttributes *dsa);
222 
224  char *ArrayName;
228  unsigned char Color[3];
229 
231  unsigned char Alpha;
232 
233  char* FileName;
234 
235  int FileType;
237 
239 
240  int FillInputPortInformation(int port, vtkInformation *info) override;
241 
242 private:
243  vtkPLYWriter(const vtkPLYWriter&) = delete;
244  void operator=(const vtkPLYWriter&) = delete;
245 };
246 
247 #endif
248 
vtkPLYWriter::SetDataByteOrderToBigEndian
void SetDataByteOrderToBigEndian()
Definition: vtkPLYWriter.h:79
vtkPLYWriter::SetColorModeToUniformColor
void SetColorModeToUniformColor()
Definition: vtkPLYWriter.h:111
VTK_INT_MAX
#define VTK_INT_MAX
Definition: vtkType.h:159
VTK_BIG_ENDIAN
#define VTK_BIG_ENDIAN
Definition: vtkPLYWriter.h:54
vtkPLYWriter::SetColorModeToDefault
void SetColorModeToDefault()
Definition: vtkPLYWriter.h:105
vtkPLYWriter::Component
int Component
Definition: vtkPLYWriter.h:225
vtkIdType
int vtkIdType
Definition: vtkType.h:347
vtkDataSetAttributes
represent and manipulate attribute data in a dataset
Definition: vtkDataSetAttributes.h:53
vtkAlgorithm::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
Fill the input port information objects for this algorithm.
vtkWriter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkUnsignedCharArray
dynamic, self-adjusting array of unsigned char
Definition: vtkUnsignedCharArray.h:35
vtkX3D::Color
Definition: vtkX3D.h:46
vtkPLYWriter::HeaderComments
vtkSmartPointer< vtkStringArray > HeaderComments
Definition: vtkPLYWriter.h:238
vtkSmartPointer< vtkUnsignedCharArray >
vtkPLYWriter::LookupTable
vtkScalarsToColors * LookupTable
Definition: vtkPLYWriter.h:227
VTK_COLOR_MODE_UNIFORM_POINT_COLOR
#define VTK_COLOR_MODE_UNIFORM_POINT_COLOR
Definition: vtkPLYWriter.h:58
vtkPLYWriter
write Stanford PLY file format
Definition: vtkPLYWriter.h:65
vtkPLYWriter::DataByteOrder
int DataByteOrder
Definition: vtkPLYWriter.h:223
vtkX3D::port
Definition: vtkX3D.h:447
VTK_COLOR_MODE_OFF
#define VTK_COLOR_MODE_OFF
Definition: vtkPLYWriter.h:60
vtkPLYWriter::SetColorModeToUniformCellColor
void SetColorModeToUniformCellColor()
Definition: vtkPLYWriter.h:107
vtkPLYWriter::SetColorModeToUniformPointColor
void SetColorModeToUniformPointColor()
Definition: vtkPLYWriter.h:109
vtkWriter::WriteData
virtual void WriteData()=0
VTK_COLOR_MODE_UNIFORM_CELL_COLOR
#define VTK_COLOR_MODE_UNIFORM_CELL_COLOR
Definition: vtkPLYWriter.h:57
vtkWriter::GetInput
vtkDataObject * GetInput()
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
VTK_TEXTURECOORDS_UV
#define VTK_TEXTURECOORDS_UV
Definition: vtkPLYWriter.h:62
VTK_TEXTURECOORDS_TEXTUREUV
#define VTK_TEXTURECOORDS_TEXTUREUV
Definition: vtkPLYWriter.h:63
vtkPLYWriter::SetTextureCoordinatesNameToUV
void SetTextureCoordinatesNameToUV()
Definition: vtkPLYWriter.h:205
vtkWriter
abstract class to write data to file(s)
Definition: vtkWriter.h:42
VTK_COLOR_MODE_DEFAULT
#define VTK_COLOR_MODE_DEFAULT
Definition: vtkPLYWriter.h:56
vtkSmartPointer.h
VTK_ASCII
#define VTK_ASCII
Definition: vtkWriter.h:39
vtkPLYWriter::TextureCoordinatesName
int TextureCoordinatesName
Definition: vtkPLYWriter.h:236
VTK_COLOR_MODE_UNIFORM_COLOR
#define VTK_COLOR_MODE_UNIFORM_COLOR
Definition: vtkPLYWriter.h:59
vtkPLYWriter::EnableAlpha
bool EnableAlpha
Definition: vtkPLYWriter.h:230
vtkScalarsToColors
Superclass for mapping scalar values to colors.
Definition: vtkScalarsToColors.h:60
vtkPLYWriter::Alpha
unsigned char Alpha
Definition: vtkPLYWriter.h:231
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:80
vtkX3D::info
Definition: vtkX3D.h:376
vtkAlgorithm::New
static vtkAlgorithm * New()
vtkX3D::string
Definition: vtkX3D.h:490
vtkWriter.h
vtkPLYWriter::SetColorModeToOff
void SetColorModeToOff()
Definition: vtkPLYWriter.h:113
vtkPLYWriter::ArrayName
char * ArrayName
Definition: vtkPLYWriter.h:224
vtkPLYWriter::SetFileTypeToASCII
void SetFileTypeToASCII()
Definition: vtkPLYWriter.h:193
vtkPLYWriter::ColorMode
int ColorMode
Definition: vtkPLYWriter.h:226
VTK_LITTLE_ENDIAN
#define VTK_LITTLE_ENDIAN
Definition: vtkPLYWriter.h:53
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:79
vtkStringArray
a vtkAbstractArray subclass for strings
Definition: vtkStringArray.h:36
vtkPLYWriter::FileName
char * FileName
Definition: vtkPLYWriter.h:233
vtkPLYWriter::FileType
int FileType
Definition: vtkPLYWriter.h:235
VTK_BINARY
#define VTK_BINARY
Definition: vtkWriter.h:40
vtkPLYWriter::SetDataByteOrderToLittleEndian
void SetDataByteOrderToLittleEndian()
Definition: vtkPLYWriter.h:81
vtkPLYWriter::SetTextureCoordinatesNameToTextureUV
void SetTextureCoordinatesNameToTextureUV()
Definition: vtkPLYWriter.h:206
vtkPLYWriter::SetFileTypeToBinary
void SetFileTypeToBinary()
Definition: vtkPLYWriter.h:194