/usr/include/vtk-6.3/vtkGL2PSUtilities.h is in libvtk6-dev 6.3.0+dfsg1-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkGL2PSUtilities.h
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.
=========================================================================*/
// .NAME vtkGL2PSUtilities - Helper functions for using GL2PS within VTK
// .SECTION Description
// vtkGL2PSUtilities implements some static helper function that simplify
// calling GL2PS routines on VTK objects. This class is meant for internal use
// only and is subject to change.
#ifndef vtkGL2PSUtilities_h
#define vtkGL2PSUtilities_h
#include "vtkObject.h"
#include "vtkRenderingGL2PSModule.h" // For export macro
class vtkImageData;
class vtkMatrix4x4;
class vtkPath;
class vtkPoints;
class vtkRenderWindow;
class vtkTextProperty;
class VTKRENDERINGGL2PS_EXPORT vtkGL2PSUtilities : public vtkObject
{
public:
static vtkGL2PSUtilities *New();
vtkTypeMacro(vtkGL2PSUtilities, vtkObject)
void PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os, indent);
}
// Description:
// Format the text in str according to tprop and instruct GL2PS to draw it at
// world coordinate pos. Background depth is the z value for the background
// quad, and should be in NDC space.
static void DrawString(const char *str, vtkTextProperty *tprop, double pos[3],
double backgroundDepth);
// Description:
// Translate the tprop's fontname into a Postscript font name.
static const char * TextPropertyToPSFontName(vtkTextProperty *tprop);
// Description:
// Convert the alignment hint in tprop to a GL2PS text alignment constant.
static int TextPropertyToGL2PSAlignment(vtkTextProperty *tprop);
// Description:
// Get the current RenderWindow that is being exported
static vtkRenderWindow *GetRenderWindow()
{
return vtkGL2PSUtilities::RenderWindow;
}
// Description:
// Transform the path using the actor's matrix and current GL state, then
// draw it to GL2PS. The label string is inserted into the GL2PS output at the
// beginning of the path specification as a comment on supported backends.
static void Draw3DPath(vtkPath *path, vtkMatrix4x4 *actorMatrix,
double rasterPos[3], unsigned char actorColor[4],
const char *label = NULL);
// Description:
// Generate PS, EPS, or SVG markup from a vtkPath object, and then inject it
// into the output using the gl2psSpecial command. The path is translated
// uniformly in the scene by windowPos. It is scaled by scale and rotated
// counter-clockwise by rotateAngle. The rasterPos is in world coordinates
// and determines clipping and depth. If scale is NULL, no scaling is done.
// If strokeWidth is positive, the path will be stroked with the indicated
// width. If zero or negative, the path will be filled (default).
// The label string is inserted into the GL2PS output at the beginning of the
// path specification as a comment on supported backends.
static void DrawPath(vtkPath *path, double rasterPos[3], double windowPos[2],
unsigned char rgba[4], double scale[2] = NULL,
double rotateAngle = 0.0, float strokeWidth = -1,
const char *label = NULL);
// Description:
// Get whether all text will be exported as paths.
static bool GetTextAsPath()
{
return vtkGL2PSUtilities::TextAsPath;
}
// Description:
// Get a scaling factor for the point size or line width used by GL2PS.
// Default value: 5/7.
static float GetPointSizeFactor()
{ return vtkGL2PSUtilities::PointSizeFactor; }
static float GetLineWidthFactor()
{ return vtkGL2PSUtilities::LineWidthFactor; }
protected:
friend class vtkGL2PSExporter;
static void StartExport();
static void FinishExport();
static void SetPointSizeFactor(float f)
{ vtkGL2PSUtilities::PointSizeFactor = f; }
static void SetLineWidthFactor(float f)
{ vtkGL2PSUtilities::LineWidthFactor = f; }
static void SetTextAsPath(bool b)
{
vtkGL2PSUtilities::TextAsPath = b;
}
static void SetRenderWindow(vtkRenderWindow *renWin)
{
vtkGL2PSUtilities::RenderWindow = renWin;
}
static void DrawPathPS(vtkPath *path, double rasterPos[3],
double windowPos[2], unsigned char rgba[4],
double scale[2] = NULL, double rotateAngle = 0.0,
float strokeWidth = -1, const char *label = NULL);
static void DrawPathPDF(vtkPath *path, double rasterPos[3],
double windowPos[2], unsigned char rgba[4],
double scale[2] = NULL, double rotateAngle = 0.0,
float strokeWidth = -1, const char *label = NULL);
static void DrawPathSVG(vtkPath *path, double rasterPos[3],
double windowPos[2], unsigned char rgba[4],
double scale[2] = NULL, double rotateAngle = 0.0,
float strokeWidth = -1, const char *label = NULL);
vtkGL2PSUtilities() {}
~vtkGL2PSUtilities() {}
private:
vtkGL2PSUtilities(const vtkGL2PSUtilities &); // Not implemented
void operator=(const vtkGL2PSUtilities&); // Not implemented
static vtkRenderWindow *RenderWindow;
static bool TextAsPath;
static float PointSizeFactor;
static float LineWidthFactor;
// Description:
// Project the point from world coordinates into device coordinates.
static void ProjectPoint(double point[3], vtkMatrix4x4 *actorMatrix = NULL);
static void ProjectPoint(double point[4], vtkMatrix4x4 * transformMatrix,
double viewportOrigin[2], double halfWidth,
double halfHeight, double zfact1, double zfact2);
static void ProjectPoints(vtkPoints *points,
vtkMatrix4x4 *actorMatrix = NULL);
// Description:
// Unproject the point from device coordinates into world coordinates.
// Input Z coordinate should be in NDC space.
static void UnprojectPoint(double point[4], vtkMatrix4x4 *invTransformMatrix,
double viewportOrigin[2], double halfWidth,
double halfHeight, double zfact1, double zfact2);
static void UnprojectPoints(double *points3D, vtkIdType numPoints,
vtkMatrix4x4 *actorMatrix = NULL);
};
#endif
|