You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
220 lines
6.3 KiB
220 lines
6.3 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkTextProperty.h,v $
|
|
|
|
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 vtkTextProperty - represent text properties.
|
|
// .SECTION Description
|
|
// vtkTextProperty is an object that represents text properties.
|
|
// The primary properties that can be set are color, opacity, font size,
|
|
// font family horizontal and vertical justification, bold/italic/shadow
|
|
// styles.
|
|
// .SECTION See Also
|
|
// vtkTextMapper vtkTextActor vtkLegendBoxActor vtkCaptionActor2D
|
|
|
|
#ifndef __vtkTextProperty_h
|
|
#define __vtkTextProperty_h
|
|
|
|
#include "vtkObject.h"
|
|
|
|
class VTK_RENDERING_EXPORT vtkTextProperty : public vtkObject
|
|
{
|
|
public:
|
|
vtkTypeRevisionMacro(vtkTextProperty,vtkObject);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Creates a new text property with font size 12, bold off, italic off,
|
|
// and Arial font.
|
|
static vtkTextProperty *New();
|
|
|
|
// Description:
|
|
// Set the color of the text.
|
|
vtkSetVector3Macro(Color,double);
|
|
vtkGetVector3Macro(Color,double);
|
|
|
|
// Description:
|
|
// Set/Get the text's opacity. 1.0 is totally opaque and 0.0 is completely
|
|
// transparent.
|
|
vtkSetMacro(Opacity,double);
|
|
vtkGetMacro(Opacity,double);
|
|
|
|
// Description:
|
|
// Set/Get the font family. Three font types are allowed: Arial (VTK_ARIAL),
|
|
// Courier (VTK_COURIER), and Times (VTK_TIMES).
|
|
vtkSetClampMacro(FontFamily,int,VTK_ARIAL,VTK_TIMES);
|
|
vtkGetMacro(FontFamily, int);
|
|
void SetFontFamilyToArial() { this->SetFontFamily(VTK_ARIAL); };
|
|
void SetFontFamilyToCourier() { this->SetFontFamily(VTK_COURIER);};
|
|
void SetFontFamilyToTimes() { this->SetFontFamily(VTK_TIMES); };
|
|
char *GetFontFamilyAsString();
|
|
static char *GetFontFamilyAsString( int f );
|
|
|
|
// Description:
|
|
// Set/Get the font size (in points).
|
|
vtkSetClampMacro(FontSize,int,0,VTK_LARGE_INTEGER);
|
|
vtkGetMacro(FontSize, int);
|
|
|
|
// Description:
|
|
// Enable/disable text bolding.
|
|
vtkSetMacro(Bold, int);
|
|
vtkGetMacro(Bold, int);
|
|
vtkBooleanMacro(Bold, int);
|
|
|
|
// Description:
|
|
// Enable/disable text italic.
|
|
vtkSetMacro(Italic, int);
|
|
vtkGetMacro(Italic, int);
|
|
vtkBooleanMacro(Italic, int);
|
|
|
|
// Description:
|
|
// Enable/disable text shadow.
|
|
vtkSetMacro(Shadow, int);
|
|
vtkGetMacro(Shadow, int);
|
|
vtkBooleanMacro(Shadow, int);
|
|
|
|
// Description:
|
|
// Set/Get the shadow offset, i.e. the distance from the text to
|
|
// its shadow, in the same unit as FontSize.
|
|
vtkSetVector2Macro(ShadowOffset,int);
|
|
vtkGetVectorMacro(ShadowOffset,int,2);
|
|
|
|
// Description:
|
|
// Get the shadow color. It is computed from the Color ivar
|
|
void GetShadowColor(double color[3]);
|
|
|
|
// Description:
|
|
// Set/Get the horizontal justification to left (default), centered,
|
|
// or right.
|
|
vtkSetClampMacro(Justification,int,VTK_TEXT_LEFT,VTK_TEXT_RIGHT);
|
|
vtkGetMacro(Justification,int);
|
|
void SetJustificationToLeft()
|
|
{ this->SetJustification(VTK_TEXT_LEFT);};
|
|
void SetJustificationToCentered()
|
|
{ this->SetJustification(VTK_TEXT_CENTERED);};
|
|
void SetJustificationToRight()
|
|
{ this->SetJustification(VTK_TEXT_RIGHT);};
|
|
char *GetJustificationAsString();
|
|
|
|
// Description:
|
|
// Set/Get the vertical justification to bottom (default), middle,
|
|
// or top.
|
|
vtkSetClampMacro(VerticalJustification,int,VTK_TEXT_BOTTOM,VTK_TEXT_TOP);
|
|
vtkGetMacro(VerticalJustification,int);
|
|
void SetVerticalJustificationToBottom()
|
|
{this->SetVerticalJustification(VTK_TEXT_BOTTOM);};
|
|
void SetVerticalJustificationToCentered()
|
|
{this->SetVerticalJustification(VTK_TEXT_CENTERED);};
|
|
void SetVerticalJustificationToTop()
|
|
{this->SetVerticalJustification(VTK_TEXT_TOP);};
|
|
char *GetVerticalJustificationAsString();
|
|
|
|
// Description:
|
|
// Set/Get the text's orientation (in degrees).
|
|
vtkSetMacro(Orientation,double);
|
|
vtkGetMacro(Orientation,double);
|
|
|
|
// Description:
|
|
// Set/Get the (extra) spacing between lines,
|
|
// expressed as a text height multiplication factor.
|
|
vtkSetMacro(LineSpacing, double);
|
|
vtkGetMacro(LineSpacing, double);
|
|
|
|
// Description:
|
|
// Set/Get the vertical offset (measured in pixels).
|
|
vtkSetMacro(LineOffset, double);
|
|
vtkGetMacro(LineOffset, double);
|
|
|
|
// Description:
|
|
// Shallow copy of a text property.
|
|
void ShallowCopy(vtkTextProperty *tprop);
|
|
|
|
protected:
|
|
vtkTextProperty();
|
|
~vtkTextProperty() {};
|
|
|
|
double Color[3];
|
|
double Opacity;
|
|
int FontFamily;
|
|
int FontSize;
|
|
int Bold;
|
|
int Italic;
|
|
int Shadow;
|
|
int ShadowOffset[2];
|
|
int Justification;
|
|
int VerticalJustification;
|
|
double Orientation;
|
|
double LineOffset;
|
|
double LineSpacing;
|
|
|
|
private:
|
|
vtkTextProperty(const vtkTextProperty&); // Not implemented.
|
|
void operator=(const vtkTextProperty&); // Not implemented.
|
|
};
|
|
|
|
inline char *vtkTextProperty::GetFontFamilyAsString( int f )
|
|
{
|
|
if ( f == VTK_ARIAL )
|
|
{
|
|
return (char *)"Arial";
|
|
}
|
|
else if ( f == VTK_COURIER )
|
|
{
|
|
return (char *)"Courier";
|
|
}
|
|
else if ( f == VTK_TIMES )
|
|
{
|
|
return (char *)"Times";
|
|
}
|
|
return (char *)"Unknown";
|
|
}
|
|
|
|
inline char *vtkTextProperty::GetFontFamilyAsString(void)
|
|
{
|
|
return vtkTextProperty::GetFontFamilyAsString( this->GetFontFamily() );
|
|
}
|
|
|
|
inline char *vtkTextProperty::GetJustificationAsString(void)
|
|
{
|
|
if (this->Justification == VTK_TEXT_LEFT)
|
|
{
|
|
return (char *)"Left";
|
|
}
|
|
else if (this->Justification == VTK_TEXT_CENTERED)
|
|
{
|
|
return (char *)"Centered";
|
|
}
|
|
else if (this->Justification == VTK_TEXT_RIGHT)
|
|
{
|
|
return (char *)"Right";
|
|
}
|
|
return (char *)"Unknown";
|
|
}
|
|
|
|
inline char *vtkTextProperty::GetVerticalJustificationAsString(void)
|
|
{
|
|
if (this->VerticalJustification == VTK_TEXT_BOTTOM)
|
|
{
|
|
return (char *)"Bottom";
|
|
}
|
|
else if (this->VerticalJustification == VTK_TEXT_CENTERED)
|
|
{
|
|
return (char *)"Centered";
|
|
}
|
|
else if (this->VerticalJustification == VTK_TEXT_TOP)
|
|
{
|
|
return (char *)"Top";
|
|
}
|
|
return (char *)"Unknown";
|
|
}
|
|
|
|
#endif
|
|
|