1 /*========================================================================= 2 3 Program: Visualization Toolkit 4 Module: vtkX3DExporterFIWriter.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 =========================================================================*/ 15 /** 16 * @class vtkX3DExporterFIWriter 17 * 18 */ 19 20 #ifndef vtkX3DExporterFIWriter_h 21 #define vtkX3DExporterFIWriter_h 22 23 #include "vtkIOExportModule.h" // For export macro 24 #include "vtkX3DExporterWriter.h" 25 26 class vtkX3DExporterFIByteWriter; 27 class vtkX3DExporterFINodeInfoStack; 28 class vtkZLibDataCompressor; 29 30 class VTKIOEXPORT_EXPORT vtkX3DExporterFIWriter : public vtkX3DExporterWriter 31 { 32 public: 33 static vtkX3DExporterFIWriter *New(); 34 vtkTypeMacro(vtkX3DExporterFIWriter, vtkX3DExporterWriter); 35 void PrintSelf(ostream& os, vtkIndent indent) override; 36 37 void CloseFile() override; 38 int OpenFile(const char* file) override; 39 int OpenStream() override; 40 41 //void Write(const char* str); 42 43 void Flush() override; 44 45 void StartDocument() override; 46 void EndDocument() override; 47 48 // Elements 49 void StartNode(int elementID) override; 50 void EndNode() override; 51 52 // Attributes 53 // SFString / MFString 54 //void SetField(int attributeID, const std::string &value); 55 void SetField(int attributeID, const char*, bool mfstring = false) override; 56 // SFInt32 57 void SetField(int attributeID, int) override; 58 // SFFloat 59 void SetField(int attributeID, float) override; 60 // SFDouble 61 void SetField(int attributeID, double) override; 62 // SFBool 63 void SetField(int attributeID, bool) override; 64 65 // For MFxxx attributes 66 void SetField(int attributeID, int type, const double* a) override; 67 void SetField(int attributeID, int type, vtkDataArray* a) override; 68 void SetField(int attributeID, const double* values, size_t size) override; 69 70 // MFInt32 71 void SetField(int attributeID, int type, vtkCellArray* a); 72 void SetField(int attributeID, const int* values, size_t size, bool image = false) override; 73 74 //@{ 75 /** 76 * Use fastest instead of best compression 77 */ 78 vtkSetClampMacro(Fastest, vtkTypeBool, 0, 1); 79 vtkBooleanMacro(Fastest, vtkTypeBool); 80 vtkGetMacro(Fastest, vtkTypeBool); 81 //@} 82 83 protected: 84 vtkX3DExporterFIWriter(); 85 ~vtkX3DExporterFIWriter() override; 86 87 private: 88 void StartAttribute(int attributeID, bool literal, bool addToTable = false); 89 void EndAttribute(); 90 91 void CheckNode(bool callerIsAttribute = true); 92 bool IsLineFeedEncodingOn; 93 94 //int Depth; 95 vtkX3DExporterFIByteWriter* Writer; 96 vtkX3DExporterFINodeInfoStack* InfoStack; 97 vtkZLibDataCompressor* Compressor; 98 99 vtkTypeBool Fastest; 100 101 vtkX3DExporterFIWriter(const vtkX3DExporterFIWriter&) = delete; 102 void operator=(const vtkX3DExporterFIWriter&) = delete; 103 104 }; 105 106 #endif 107 108