Hoops Visualize HPS  version 2018-SP2
Hoops Visualize HPS 3D Rendering Engine
Looking for a senior C++ dev?
I'm looking for work. Hire me!
HPS::Text Class Reference

The Text class is a concept class for text-related enum classes. More...

#include <hps.h>

Public Types

enum  Alignment : uint32_t {
  Alignment::TopLeft,
  Alignment::CenterLeft,
  Alignment::BottomLeft,
  Alignment::TopCenter,
  Alignment::Center,
  Alignment::BottomCenter,
  Alignment::TopRight,
  Alignment::CenterRight,
  Alignment::BottomRight
}
 Enumeration of the alignments used for text string. More...
 
enum  ReferenceFrame : uint32_t {
  ReferenceFrame::WorldAligned,
  ReferenceFrame::PathAligned
}
 Enumeration of the reference frames for text alignment and justification. More...
 
enum  Justification : uint32_t {
  Justification::Left,
  Justification::Right,
  Justification::Center
}
 Enumerates the justifications used for multiline text strings. More...
 
enum  Transform : uint32_t {
  Transform::Transformable,
  Transform::NonTransformable,
  Transform::CharacterPositionOnly,
  Transform::CharacterPositionAdjusted,
  Transform::NonScalingTransformable
}
 Enumerates the transform behaviors for text strings. More...
 
enum  Renderer : uint32_t {
  Renderer::Default,
  Renderer::Driver,
  Renderer::Truetype
}
 Enumerates the renderers for text strings. More...
 
enum  Preference : uint32_t {
  Preference::Default,
  Preference::Vector,
  Preference::Raster,
  Preference::Exterior
}
 Enumerates the font type preferences for text strings. More...
 
enum  Rotation : uint32_t {
  Rotation::None,
  Rotation::Rotate,
  Rotation::FollowPath
}
 
enum  SizeUnits : uint32_t {
  SizeUnits::ObjectSpace,
  SizeUnits::SubscreenRelative,
  SizeUnits::WindowRelative,
  SizeUnits::WorldSpace,
  SizeUnits::Points,
  SizeUnits::Pixels
}
 Enumerates the units for font sizes. More...
 
enum  SizeToleranceUnits : uint32_t {
  SizeToleranceUnits::ObjectSpace,
  SizeToleranceUnits::SubscreenRelative,
  SizeToleranceUnits::WindowRelative,
  SizeToleranceUnits::WorldSpace,
  SizeToleranceUnits::Points,
  SizeToleranceUnits::Pixels,
  SizeToleranceUnits::Percent
}
 Enumerates the units for size tolerances. More...
 
enum  MarginUnits : uint32_t {
  MarginUnits::ObjectSpace,
  MarginUnits::SubscreenRelative,
  MarginUnits::WindowRelative,
  MarginUnits::WorldSpace,
  MarginUnits::Points,
  MarginUnits::Pixels,
  MarginUnits::Percent
}
 Enumerates the units for background margins. More...
 
enum  GreekingUnits : uint32_t {
  GreekingUnits::ObjectSpace,
  GreekingUnits::SubscreenRelative,
  GreekingUnits::WindowRelative,
  GreekingUnits::WorldSpace,
  GreekingUnits::Points,
  GreekingUnits::Pixels
}
 Enumerates the units for greeking limits. More...
 
enum  GreekingMode : uint32_t {
  GreekingMode::Nothing,
  GreekingMode::Lines,
  GreekingMode::Box
}
 Enumerates the greeking modes. More...
 
enum  RegionAlignment : uint32_t {
  RegionAlignment::Top,
  RegionAlignment::Center,
  RegionAlignment::Bottom
}
 Enumerates the alignments for text regions. More...
 
enum  LeaderLineSpace : uint32_t {
  LeaderLineSpace::Object,
  LeaderLineSpace::World
}
 Enumerates the spaces in which leader lines can be defined. More...
 
enum  RegionFitting : uint32_t {
  RegionFitting::Left,
  RegionFitting::Center,
  RegionFitting::Right,
  RegionFitting::Spacing,
  RegionFitting::Width,
  RegionFitting::Auto
}
 Enumerates how text is arranged within a region. More...
 

Private Member Functions

 Text ()
 

Detailed Description

The Text class is a concept class for text-related enum classes.

Member Enumeration Documentation

◆ Alignment

enum HPS::Text::Alignment : uint32_t
strong

Enumeration of the alignments used for text string.

These define what the insertion point for a text string is measured with respect to.

Enumerator
TopLeft 

Insertion point is the top left corner of the text string.

CenterLeft 

Insertion point is the center of the left side of the text string.

BottomLeft 

Insertion point is the bottom left corner of the text string.

TopCenter 

Insertion point is the center of the top side of the text string.

Center 

Insertion point is the vertical and horizontal center of the text string.

BottomCenter 

Insertion point is the center of the bottom side of the text string.

TopRight 

Insertion point is the top right corner of the text string.

CenterRight 

Insertion point is the center of the right side of the text string.

BottomRight 

Insertion point is the bottom right corner of the text string.

◆ GreekingMode

enum HPS::Text::GreekingMode : uint32_t
strong

Enumerates the greeking modes.

These define what to draw in place of characters once they fall below the greeking limit.

Enumerator
Nothing 

Nothing will be drawn for characters below the greeking limit.

Lines 

A grid of lines will be drawn in place of characters below the greeking limit.

Box 

A filled box will be drawn in place of characters below the greeking limit.

◆ GreekingUnits

enum HPS::Text::GreekingUnits : uint32_t
strong

Enumerates the units for greeking limits.

Enumerator
ObjectSpace 

Object space units ignoring any scaling components in modelling matrices.

SubscreenRelative 

Fraction of the height of the outermost window.

WindowRelative 

Fraction of the height of the local window.

WorldSpace 

Object space units including any scaling components in modelling matrices and cameras.

Points 

Points units typically used for text size.

1 point corresponds to 1/72 inch.

Pixels 

Number of pixels.

◆ Justification

enum HPS::Text::Justification : uint32_t
strong

Enumerates the justifications used for multiline text strings.

Enumerator
Left 

Multiline strings will be left justified.

Right 

Multiline strings will be right justified.

Center 

Multiline strings will be center justified.

◆ LeaderLineSpace

enum HPS::Text::LeaderLineSpace : uint32_t
strong

Enumerates the spaces in which leader lines can be defined.

Enumerator
Object 

The leader line position is supplied in Object Space.

World 

The leader line position is supplied in World Space.

◆ MarginUnits

enum HPS::Text::MarginUnits : uint32_t
strong

Enumerates the units for background margins.

Enumerator
ObjectSpace 

Object space units ignoring any scaling components in modelling matrices.

SubscreenRelative 

Fraction of the height of the outermost window.

WindowRelative 

Fraction of the height of the local window.

WorldSpace 

Object space units including any scaling components in modelling matrices and cameras.

Points 

Points units typically used for text size.

1 point corresponds to 1/72 inch.

Pixels 

Number of pixels.

Percent 

Percentage of the requested font height.

◆ Preference

enum HPS::Text::Preference : uint32_t
strong

Enumerates the font type preferences for text strings.

These define the types of fonts Visualize will use.

Enumerator
Default 

Use the default font type for the current driver.

Vector 

Use vector fonts.

Raster 

Use raster or bitmap fonts.

Exterior 

Use the font outline (characters will be unfilled).

◆ ReferenceFrame

enum HPS::Text::ReferenceFrame : uint32_t
strong

Enumeration of the reference frames for text alignment and justification.

Enumerator
WorldAligned 

Alignment and justification will be defined relative to a screen-facing box around the text.

PathAligned 

Alignment and justification will be defined relative to a text-path-aligned box around the text.

◆ RegionAlignment

enum HPS::Text::RegionAlignment : uint32_t
strong

Enumerates the alignments for text regions.

These define how text strings will be positioned relative to the line defining the text region.

Enumerator
Top 

Text will be drawn below the region line.

Center 

Text will be drawn such that the region line passes through its center.

Bottom 

Text will be drawn above the region line.

◆ RegionFitting

enum HPS::Text::RegionFitting : uint32_t
strong

Enumerates how text is arranged within a region.

Enumerator
Left 

Text will be left-justified on the region line.

Center 

Text will be centered-justified on the region line.

Right 

Text will be right-justified on the region line.

Spacing 

Text will be stretched or squeezed to fill the region line and character width will not change (characters may overlap).

Width 

Text will be stretched or squeezed to fill the region line and character width will change (narrowing or widening as necessary).

Auto 

Text will be stretched or squeezed to fill the region line.

This will behave as Width when the text needs to be squeezed, or as Spacing when the text needs to be stretched.

◆ Renderer

enum HPS::Text::Renderer : uint32_t
strong

Enumerates the renderers for text strings.

These define the font-handling subsystems Visualize uses to find and render fonts.

Enumerator
Default 

All font-handling subsystems will be used.

Driver 

Only driver fonts will be used.

If a non-driver font is requested, the stroked font will be used instead.

Truetype 

Only TrueType fonts will be used.

If a non-TrueType font is requested, the stroked font will be used instead.

◆ Rotation

enum HPS::Text::Rotation : uint32_t
strong
Enumerator
None 

Characters are not rotated.

Rotate 

Characters are rotated clockwise by a specified angle.

FollowPath 

Characters are rotated such that they will be perpendicular to the text path.

◆ SizeToleranceUnits

enum HPS::Text::SizeToleranceUnits : uint32_t
strong

Enumerates the units for size tolerances.

Enumerator
ObjectSpace 

Object space units ignoring any scaling components in modelling matrices.

SubscreenRelative 

Fraction of the height of the outermost window.

WindowRelative 

Fraction of the height of the local window.

WorldSpace 

Object space units including any scaling components in modelling matrices and cameras.

Points 

Points units typically used for text size.

1 point corresponds to 1/72 inch.

Pixels 

Number of pixels.

Percent 

Percentage of the requested font size defining the lower limit on the smallest font size that can be substituted in the requested's place.

◆ SizeUnits

enum HPS::Text::SizeUnits : uint32_t
strong

Enumerates the units for font sizes.

Enumerator
ObjectSpace 

Object space units ignoring any scaling components in modelling matrices.

SubscreenRelative 

Fraction of the height of the outermost window.

WindowRelative 

Fraction of the height of the local window.

WorldSpace 

Object space units including any scaling components in modelling matrices and cameras.

Points 

Points units typically used for text size.

1 point corresponds to 1/72 inch.

Pixels 

Number of pixels.

◆ Transform

enum HPS::Text::Transform : uint32_t
strong

Enumerates the transform behaviors for text strings.

These define how the entire string will be positioned within 3D space.

Enumerator
Transformable 

Text will be subject to all modelling and projection matrices, essentially acting as a textured quad.

Text paths will be act as transformations in 3D space.

NonTransformable 

Only the text insertion point (see also Text::Alignment) will be subject to modelling and projection matrices.

Text will always be drawn in screen space. Text paths will act as transformations in screen space.

CharacterPositionOnly 

Text will be subject to all modelling and projection matrices, however characters will always be drawn in screen space.

CharacterPositionAdjusted 

Equivalent to CharacterPositionOnly, but additionally will draw text upright when it would otherwise appear upside down based on the camera.

To get this behavior Text::ReferenceFrame::PathAligned and Text::Rotation::FollowPath must be set, otherwise this will be equivalent to CharacterPositionOnly.

NonScalingTransformable 

Text will be subject to all modelling and projection matrices except for size changes, otherwise acting as a textured quad.

Text paths will be act as transformations in 3D space.

Constructor & Destructor Documentation

◆ Text()

HPS::Text::Text ( )
inlineprivate

The documentation for this class was generated from the following file: