/*========================================================================= Program: Visualization Toolkit Module: vtkGL2PSExporter.cxx Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #include "vtkGL2PSExporter.h" #include "vtkObjectFactory.h" #include "vtkProp.h" #include "vtkPropCollection.h" #include "vtk_gl2ps.h" #include vtkAbstractObjectFactoryNewMacro(vtkGL2PSExporter) vtkCxxSetObjectMacro(vtkGL2PSExporter, RasterExclusions, vtkPropCollection) vtkGL2PSExporter::vtkGL2PSExporter() { this->RasterExclusions = nullptr; this->FilePrefix = nullptr; this->BufferSize = 4194304; // 4MB this->Title = nullptr; this->FileFormat = EPS_FILE; this->Sort = SIMPLE_SORT; this->Compress = 1; this->DrawBackground = 1; this->SimpleLineOffset = 1; this->Silent = 0; this->BestRoot = 1; this->Text = 1; this->Landscape = 0; this->PS3Shading = 1; this->OcclusionCull = 1; this->Write3DPropsAsRasterImage = 0; this->TextAsPath = false; this->PointSizeFactor = 5.f / 7.f; this->LineWidthFactor = 5.f / 7.f; } vtkGL2PSExporter::~vtkGL2PSExporter() { this->SetRasterExclusions(nullptr); delete [] this->FilePrefix; delete [] this->Title; } int vtkGL2PSExporter::GetGL2PSOptions() { GLint options = GL2PS_NONE; if (this->Compress == 1) { options = options | GL2PS_COMPRESS; } if (this->DrawBackground == 1) { options = options | GL2PS_DRAW_BACKGROUND; } if (this->SimpleLineOffset == 1) { options = options | GL2PS_SIMPLE_LINE_OFFSET; } if (this->Silent == 1) { options = options | GL2PS_SILENT; } if (this->BestRoot == 1) { options = options | GL2PS_BEST_ROOT; } if (this->Text == 0) { options = options | GL2PS_NO_TEXT; } if (this->Landscape == 1) { options = options | GL2PS_LANDSCAPE; } if (this->PS3Shading == 0) { options = options | GL2PS_NO_PS3_SHADING; } if (this->OcclusionCull == 1) { options = options | GL2PS_OCCLUSION_CULL; } return static_cast(options); } int vtkGL2PSExporter::GetGL2PSSort() { switch (this->Sort) { default: vtkDebugMacro(<<"Invalid sort settings, using NO_SORT."); VTK_FALLTHROUGH; case NO_SORT: return GL2PS_NO_SORT; case SIMPLE_SORT: return GL2PS_SIMPLE_SORT; case BSP_SORT: return GL2PS_BSP_SORT; } } int vtkGL2PSExporter::GetGL2PSFormat() { switch (this->FileFormat) { default: vtkDebugMacro(<<"Invalid output format. Using postscript."); VTK_FALLTHROUGH; case PS_FILE: return GL2PS_PS; case EPS_FILE: return GL2PS_EPS; case PDF_FILE: return GL2PS_PDF; case TEX_FILE: return GL2PS_TEX; case SVG_FILE: return GL2PS_SVG; } } const char *vtkGL2PSExporter::GetFileExtension() { switch (this->FileFormat) { default: vtkDebugMacro(<<"Invalid output format. Using postscript."); VTK_FALLTHROUGH; case PS_FILE: return "ps"; case EPS_FILE: return "eps"; case PDF_FILE: return "pdf"; case TEX_FILE: return "tex"; case SVG_FILE: return "svg"; } } void vtkGL2PSExporter::PrintSelf(ostream& os, vtkIndent indent) { this->Superclass::PrintSelf(os,indent); if (this->FilePrefix) { os << indent << "FilePrefix: " << this->FilePrefix << "\n"; } else { os << indent << "FilePrefix: (null)\n"; } os << indent << "FileFormat: " << this->GetFileFormatAsString() << "\n"; os << indent << "Sort: " << this->GetSortAsString() << "\n"; os << indent << "Compress: " << (this->Compress ? "On\n" : "Off\n"); os << indent << "DrawBackground: " << (this->DrawBackground ? "On\n" : "Off\n"); os << indent << "SimpleLineOffset: " << (this->SimpleLineOffset ? "On\n" : "Off\n"); os << indent << "Silent: " << (this->Silent ? "On\n" : "Off\n"); os << indent << "BestRoot: " << (this->BestRoot ? "On\n" : "Off\n"); os << indent << "Text: " << (this->Text ? "On\n" : "Off\n"); os << indent << "Landscape: " << (this->Landscape ? "On\n" : "Off\n"); os << indent << "PS3Shading: " << (this->PS3Shading ? "On\n" : "Off\n"); os << indent << "OcclusionCull: " << (this->OcclusionCull ? "On\n" : "Off\n"); os << indent << "Write3DPropsAsRasterImage: " << (this->Write3DPropsAsRasterImage ? "On\n" : "Off\n"); if (this->RasterExclusions) { os << indent << "RasterExclusions:\n"; this->RasterExclusions->PrintSelf(os, indent.GetNextIndent()); } else { os << indent << "RasterExclusions: (null)\n"; } }