Cloned library of VTK-5.0.0 with extra build files for internal package management.
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

/*=========================================================================
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