LinePattern

class HPS::LinePattern

The LinePattern class is a concept class for line-pattern-related enum classes.

Public Types

enum Cap

Enumerates the predefined cap types that can be used at the ends of line segments within a line pattern.

Values:

enumerator Butt

Line segments will end with a flat cap perpendicular to the line segment vector. This cap will occur immediately at the end of the line segment and will not extend its length.

enumerator Square

Line segments will end with half of a filled square cap whose side is perpendicular to the line segment vector. This cap will extend the length of a line segment, but otherwise will appear the same as the ButtCap.

enumerator Round

Line segments will end with half of a filled circle cap whose diameter is perpendicular to the line segment vector. This cap will extend the length of a line segment.

enumerator Mitre

Line segments will end with a filled triangle cap whose base is perpendicular to the line segment vector. This cap will extend the length of a line segment.

enum Default

Enumerates the predefined line patterns in Visualize. These can be accessed via the LinePatternKit::GetDefault function and their appearance can be seen here. Hardware acceleration for line patterns is available when the following conditions are met:

  • You are using the DirectX11 or OpenGL2 driver

  • You are using Visualize 2015 or later

  • Segment-level display lists are active

  • The line weight is 1

The following line patterns can be hardware accelerated: Dashed, Dotted, DashDot, Dash2Dot, Dash3Dot, LongDash, FineDot. The pattern does not continue along adjacent edges. The pattern is restarted for each edge.

Values:

enumerator Solid

A solid unbroked line pattern.

enumerator DashDot

A repeating pattern of 18 solid pixels, 5 blank pixels, 4 solid pixels, and 5 blank pixels.

enumerator Dashed

A repeating pattern of 10 solid pixels and 6 blank pixels.

enumerator Dotted

A repeating pattern of 5 solid pixels and 3 blank pixels.

enumerator Dash2Dot

A repeating pattern of 15 solid pixels, 4 blank pixels, 3 solid pixels, 3 blank pixels, 3 solid pixels, and 4 blank pixels.

enumerator Dash3Dot

A repeating pattern of 15 solid pixels, 2 blank pixels, 3 solid pixels, 2 blank pixels, 3 solid pixels, 2 blank pixels, 3 solid pixels, and 2 blank pixels.

enumerator LongDash

A repeating pattern of 26 solid pixels and 6 blank pixels.

enumerator LongDashShortDash

A repeating pattern of 100 solid pixels, 10 blank pixels, 20 solid pixels, and 10 blank pixels.

enumerator LongDash2ShortDash

A repeating pattern of 86 solid pixels, 8 blank pixels, 15 solid pixels, 8 blank pixels, 15 solid pixels, and 8 blank pixels.

enumerator FineDot

A repeating pattern of 1 solid pixel and 3 blank pixels.

enum InsetBehavior

Enumerates how glyphs interact with other line pattern elements within a line pattern.

Values:

enumerator Overlap

Glyphs will overlap with surrounding line pattern elements. Line pattern elements adjacent to glyphs will not be trimmed.

enumerator Trim

Glyphs will overlap with surrounding line pattern elements. Line pattern elements adjacent to glyphs will be trimmed.

enumerator Inline

Glyphs will not overlap with surrounding line pattern elements, and adjacent line pattern elements will not be trimmed.

enum Join

Enumerates the types of join to use for a line pattern. Joins will always be mitred at the half angle for the smaller angle defined by two line segments. This enumeration defines what the join will look like for the larger angle defined by two line segments.

Values:

enumerator Mitre

The join for the larger angle will be mitred, i.e., the segments will meet at a point at the half angle of the larger angle.

enumerator Round

The join for the larger angle will be rounded, i.e., there will be a circle that subtends the larger angle.

enumerator Bevel

The join for the larger angle will be beveled, i.e., there will be a line that subtends the larger angle.

enum Justification

Enumerates the justfication modes for a line pattern. These are used to attempt to make the line pattern appear evenly spaced between end points of a line.

Values:

enumerator Center

Attempts to ensure that the first element of the line pattern appears at both the beginning and the end of the line. This will give the best results if the first element in a line pattern makes up at least half the total length of the elements for the line pattern body.

enumerator Stretch

Stretches the pattern and modifies the size of the line pattern elements to ensure even spacing.

enum Modifier

Enumerates the types of joins, start caps, and end caps that can be set when a line pattern attribute is set.

Values:

enumerator GlyphName

A glyph was set for the cap or join. The glyph name is valid.

enumerator Enumerated

A predefined (enumerated) cap or join was set. The enumeration type is valid.

enum SizeUnits

Enumerates the units used when specifying length, weight and offsets for line patterns.

Values:

enumerator ObjectSpace

Object space units ignoring any scaling components in modelling matrices.

enumerator SubscreenRelative

Fraction of the height of the outermost window.

enumerator WindowRelative

Fraction of the height of the local window.

enumerator WorldSpace

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

enumerator Points

Points units typically used for text size. 1 point corresponds to 1/72 inch.

enumerator Pixels

Number of pixels.

enumerator ScaleFactor

Fraction of the default line width. A value of 1 corresponds to 0.1 percent of the screen size.