/usr/include/vtk-7.1/vtkLabelRenderStrategy.h is in libvtk7-dev 7.1.1+dfsg1-2.
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 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkLabelRenderStrategy.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.
=========================================================================*/
/**
* @class vtkLabelRenderStrategy
* @brief Superclass for label rendering implementations.
*
*
* These methods should only be called within a mapper.
*/
#ifndef vtkLabelRenderStrategy_h
#define vtkLabelRenderStrategy_h
#include "vtkRenderingLabelModule.h" // For export macro
#include "vtkObject.h"
#include "vtkStdString.h" // For string support
#include "vtkUnicodeString.h" // For unicode string support
class vtkRenderer;
class vtkWindow;
class vtkTextProperty;
class VTKRENDERINGLABEL_EXPORT vtkLabelRenderStrategy : public vtkObject
{
public:
void PrintSelf(ostream& os, vtkIndent indent);
vtkTypeMacro(vtkLabelRenderStrategy, vtkObject);
/**
* Whether the text rendering strategy supports rotation.
* The superclass returns true. Subclasses should override this to
* return the appropriate value.
*/
virtual bool SupportsRotation()
{ return true; }
/**
* Whether the text rendering strategy supports bounded size.
* The superclass returns true. Subclasses should override this to
* return the appropriate value. Subclasses that return true
* from this method should implement the version of RenderLabel()
* that takes a maximum size (see RenderLabel()).
*/
virtual bool SupportsBoundedSize()
{ return true; }
//@{
/**
* Set the renderer associated with this strategy.
*/
virtual void SetRenderer(vtkRenderer* ren);
vtkGetObjectMacro(Renderer, vtkRenderer);
//@}
//@{
/**
* Set the default text property for the strategy.
*/
virtual void SetDefaultTextProperty(vtkTextProperty* tprop);
vtkGetObjectMacro(DefaultTextProperty, vtkTextProperty);
//@}
/**
* Compute the bounds of a label. Must be performed after the renderer is set.
* Only the unicode string version must be implemented in subclasses.
*/
virtual void ComputeLabelBounds(vtkTextProperty* tprop, vtkStdString label,
double bds[4])
{ this->ComputeLabelBounds(tprop, vtkUnicodeString::from_utf8(label.c_str()),
bds); }
virtual void ComputeLabelBounds(vtkTextProperty* tprop, vtkUnicodeString label,
double bds[4]) = 0;
/**
* Render a label at a location in display coordinates.
* Must be performed between StartFrame() and EndFrame() calls.
* Only the unicode string version must be implemented in subclasses.
* The optional final parameter maxWidth specifies a maximum width for the label.
* Longer labels can be shorted with an ellipsis (...). Only renderer strategies
* that return true from SupportsBoundedSize must implement this version of th
* method.
*/
virtual void RenderLabel(int x[2], vtkTextProperty* tprop, vtkStdString label)
{ this->RenderLabel(x, tprop, vtkUnicodeString::from_utf8(label)); }
virtual void RenderLabel(int x[2], vtkTextProperty* tprop, vtkStdString label,
int maxWidth)
{ this->RenderLabel(x, tprop, vtkUnicodeString::from_utf8(label), maxWidth); }
virtual void RenderLabel(int x[2], vtkTextProperty* tprop,
vtkUnicodeString label) = 0;
virtual void RenderLabel(int x[2], vtkTextProperty* tprop,
vtkUnicodeString label, int vtkNotUsed(maxWidth))
{ this->RenderLabel(x, tprop, label); }
/**
* Start a rendering frame. Renderer must be set.
*/
virtual void StartFrame() { }
/**
* End a rendering frame.
*/
virtual void EndFrame() { }
/**
* Release any graphics resources that are being consumed by this strategy.
* The parameter window could be used to determine which graphic
* resources to release.
*/
virtual void ReleaseGraphicsResources(vtkWindow *) { }
protected:
vtkLabelRenderStrategy();
~vtkLabelRenderStrategy();
vtkRenderer* Renderer;
vtkTextProperty* DefaultTextProperty;
private:
vtkLabelRenderStrategy(const vtkLabelRenderStrategy&) VTK_DELETE_FUNCTION;
void operator=(const vtkLabelRenderStrategy&) VTK_DELETE_FUNCTION;
};
#endif
|