// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen // SPDX-FileCopyrightText: Copyright (c) 2006 Atamai, Inc. // SPDX-License-Identifier: BSD-3-Clause #include "vtkMNIObjectWriter.h" #include "vtkObjectFactory.h" #include "vtkArrayDispatch.h" #include "vtkCellArray.h" #include "vtkCellData.h" #include "vtkDataArrayRange.h" #include "vtkErrorCode.h" #include "vtkFloatArray.h" #include "vtkInformation.h" #include "vtkIntArray.h" #include "vtkLookupTable.h" #include "vtkMapper.h" #include "vtkMath.h" #include "vtkPointData.h" #include "vtkPoints.h" #include "vtkPolyData.h" #include "vtkPolygon.h" #include "vtkProperty.h" #include "vtkUnsignedCharArray.h" #include "vtksys/FStream.hxx" #include #include #if !defined(_WIN32) || defined(__CYGWIN__) #include /* unlink */ #else #include /* unlink */ #endif //------------------------------------------------------------------------------ VTK_ABI_NAMESPACE_BEGIN vtkStandardNewMacro(vtkMNIObjectWriter); vtkCxxSetObjectMacro(vtkMNIObjectWriter, Property, vtkProperty); vtkCxxSetObjectMacro(vtkMNIObjectWriter, Mapper, vtkMapper); vtkCxxSetObjectMacro(vtkMNIObjectWriter, LookupTable, vtkLookupTable); //------------------------------------------------------------------------------ vtkMNIObjectWriter::vtkMNIObjectWriter() { this->Property = nullptr; this->Mapper = nullptr; this->LookupTable = nullptr; this->FileName = nullptr; // Whether file is binary or ASCII this->FileType = VTK_ASCII; this->OutputStream = nullptr; } //------------------------------------------------------------------------------ vtkMNIObjectWriter::~vtkMNIObjectWriter() { if (this->Property) { this->Property->Delete(); } if (this->Mapper) { this->Mapper->Delete(); } if (this->LookupTable) { this->LookupTable->Delete(); } delete[] this->FileName; } //------------------------------------------------------------------------------ void vtkMNIObjectWriter::PrintSelf(ostream& os, vtkIndent indent) { this->Superclass::PrintSelf(os, indent); os << indent << "Property: " << this->Property << "\n"; os << indent << "Mapper: " << this->Mapper << "\n"; os << indent << "LookupTable: " << this->LookupTable << "\n"; } //------------------------------------------------------------------------------ int vtkMNIObjectWriter::WriteObjectType(int objType) { if (this->FileType == VTK_ASCII) { this->OutputStream->put(char(objType)); } else { this->OutputStream->put(char(tolower(objType))); } return 1; } //------------------------------------------------------------------------------ // Write floating-point values into a vtkFloatArray. struct vtkMNIObjectWriterFunctor { int Result; template