Module #04.02.04.01 : Annotation text - individual attributes

All PVT documentation can be found under PHIGS Validation Tests - Overview. You may also return to the hierarchical table of topics covered by the PVT. For an explanation of the format of the individual module documentation, please see section 2.5 of the User's Guide.


DESCRIPTION: This module tests the individual annotation text
attributes.  These values control the appearance of annotation
text relative primitives when they are under individual (as
opposed to bundled) control.  In order to explain clearly the
effect of annotation text relative aspects, some of the SRs are
worded in terms of the order of their application. E.g.
annotation text relative alignment and annotation text character
up vector are described as if applied in that order. It is only
the final appearance of the annotation text relative primitive,
however, which is subject to test.

SEMANTIC REQUIREMENTS:

*** *** ***   Text Local Coordinates   *** *** ***


SR1. The Text Local Coordinate (TLC) system represents an unscaled, unrotated shift within the Normalized Projection Coordinate (NPC) system, such that the TLC origin coincides with the NPC annotation point.
#F 15 16
#D 7.3.1.7 7.3.1.8
#S 4.5.1/35/1 4.5.6/55/1
#T P03/6 P06/2 P06/3 P06/4 P06/5 P08/1 P08/2 P08/3 P08/4 P09/1 P09/2
#T P10/2 P10/4 #C Since TLC is not rotated with respect to NPC, it follows that
the TLC text plane is parallel to the x-y plane in NPC space.

SR2. The NPC annotation point is the transformed (from MC to NPC) reference point plus the (NPC) annotation offset.
#F 15 16
#D 7.3.1.7 7.3.1.8
#S 4.5.6/55/1
#T P03/6 P06/2 P06/3 P06/4 P06/5 P08/1 P08/2 P08/3 P08/4 P09/1 P09/2
#T P10/2 P10/4
*** ***   Annotation text attribute inquiry   *** ***


SR3. If current element is annotation text character height, annotation text path, annotation text alignment, annotation text character up vector, or annotation style, then <inquire current element type and size> returns the appropriate element type and size.
#F 303
#D 7.3.2.5.1 7.3.2.5.2 7.3.2.5.3 7.3.2.5.4 7.3.2.5.5
#S 4.4.4/29/5
#T P01/1 P01/3 P01/5 P01/7 P01/9

SR4. If current element is annotation text character height, annotation text path, annotation text alignment, annotation text character up vector, or annotation style, then <inquire current element content> returns the associated value for that element.
#F 304
#D 7.3.2.5.1 7.3.2.5.2 7.3.2.5.3 7.3.2.5.4 7.3.2.5.5
#S 4.4.4/29/5
#T P01/2 P01/4 P01/6 P01/8 P01/10
***   Annotation text attribute traversal binding  ***


SR5. Upon traversal of a "annotation text relative" or "annotation text relative 3" element, the current text font, text precision, character expansion factor, character spacing, text colour index, annotation text character height, annotation text path, annotation text alignment, annotation text character up vector, and annotation style in the PTSL are bound to the resulting primitive.
#F 36 37 38 39 40 45 46 47 48 49
#D 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6
#D 3.4.1 3.4.2 3.4.5 3.4.6 3.4.7 3.4.8 7.3.1.7 7.3.1.8
#S 4.5.2/38/3 4.5.2/41/2
#T P02/1 P02/2 P02/3 P02/4 P02/5 P02/6 P03/1 P03/2 P03/3 P03/4 P03/5
#T P03/6 P03/8 P04/5 P05/1 P05/2 P05/3 P06/1 P06/2 P06/3 P06/4 P06/5
#T P07/1 P07/2 P08/1 P08/2 P08/3 P08/4 P09/1 P09/2 P10/2 P10/3 P10/4
#T P10/5 P10/6 P11/1 P11/2 P11/3 P11/4
***   text font: effect during traversal   ***


SR6. Upon traversal of a "set text font" element, the current text font entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 36
#D 3.3.2 7.3.2.4.1
#S 4.5.2/38/3
#T P02/1 P02/2 P02/3 P02/4 P02/5 P02/6 P03/1 P03/2 P03/3 P03/4 P03/5
#T P03/7 P03/8 P05/1

SR7. Text fonts 1 and 2 both contain all the ASCII characters, i.e. those defined within ANSI X3.4-1986.
#F
#D 2.7
#S 4.5.5/47/4 4.5.5/48/5
#T P02/1 P02/2 P02/3 P02/4 P03/6 P03/7 P04/5 P06/1

SR8. Text fonts 1 and 2 are visually distinguishable.
#F
#D
#S 4.5.5/47/4 4.5.5/48/5
#T P02/5 P03/8

SR9. For all text fonts, a character body in TLC, before application of annotation text character up vector, is a rectangle generally surrounding the character, aligned such that the top, cap, half, base, and bottom lines are all parallel to the TLC x-axis and the left, centre, and right lines are all parallel to the TLC y-axis.
#F
#D
#S 4.5.5/48/6 4.5.5/48/7
#T P02/6 P03/5 P03/6 P04/4 P08/1 P08/2 P08/3 P08/4 P09/1 P09/2 #C A small part of a kerned character may lie slightly outside
its character body.

SR10. All text fonts are either monospaced or proportionately spaced. All character bodies within a monospaced font have the same font nominal height and the same font nominal width. All character bodies within a proportionately spaced font have the same font nominal height.
#F
#D
#S 4.5.5/48/6
#T P02/6 P03/5 P03/6 #C In monospaced fonts, the nominal height need not equal the
nominal width. Font nominal height and width is the size, in
TLC, of the character bodies of a given font as set by the
annotation text character height and width aspects, before the
application of other annotation text relative aspects and before
the effect of the workstation transformation.

SR11. Text font 1 is monospaced.
#F
#D
#S 4.5.5/48/5 4.14/113/3
#T P02/6 P06/2 P06/3 P06/4 P06/5

SR12. A text font identifier denotes the same text font for all workstation types within a PHIGS implementation.
#F
#D 2.2 6.12.1.1 6.12.1.2
#S 4.5.5/48/5
#T P03/1 P03/2 P03/3 P03/4 #C While the same text font, such as Helvetica or Cyrillic, must
appear on all workstations, the aspect ratios of corresponding
characters may differ somewhat, according to 4.5.7/56/7.

SR13. If a requested character in an annotation text relative primitive is not available within the font, an implementation dependent representation is generated to so indicate.
#F
#D
#S 4.5.5/47/4
#T P03/7

SR14. When an annotation text relative primitive is displayed, if its bound text font and text precision are available on the workstation and its bound text font and text precision ASFs are INDIVIDUAL, then the appearance of the text font agrees with the implementor documentation and, if the text font is greater than 2, with the ISO register.
#F 36 266
#D 3.3.2 3.3.3 3.3.7 3.3.8 6.12.1.1 6.12.1.2
#S 4.1.1/15/1 4.1.2/15/2 4.5.2/39/7 4.5.5/44/10 4.5.5/47/4
#T P02/1 P02/2 P02/3 P02/4 P02/5 P03/1 P03/2 P03/3 P03/4 P05/1 #S 4.5.5/48/6 4.5.6/55/3
#C For registered fonts, the details of character shapes may be
set by the implementor, even though the basic character set is
specified.

SR15. When an annotation text relative primitive is displayed, if its bound text font and text precision are not both available on the workstation and its bound text font and text precision ASFs are INDIVIDUAL, then text font 1 (as documented by the implementor) and text precision STRING are used to display the primitive.
#F 36 266
#D 3.3.2 3.3.3 3.3.7 3.3.8 6.12.1.1 6.12.1.2
#S 4.5.2/39/7 4.5.2/43/3 4.5.5/44/10 4.5.6/55/3
#T P03/8
*** *** ***    text font: network traversal   *** *** ***


SR16. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current text font of the PTSL is set to 1.
#F
#D 2.12.2 3.3.2
#S 4.4.3/26/2 4.4.3/28/1 6.3/309/1
#T P05/1

SR17. As part of the PTSL, the current text font is saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.3.2
#S 4.4.3/28/1
#T P05/1
***   Text precision   ***


SR18. The valid values for text precision in <set text precision> are STRING, CHAR, and STROKE.
#F 37
#D 7.3.2.4.2
#S 4.5.5/47/5
#T P02/1 P02/2 P02/3 P02/4 P02/5
***   Text precision: effect during traversal   ***


SR19. Upon traversal of a "set text precision" element, the current text precision entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 37
#D 3.3.3 7.3.2.4.2
#S 4.5.2/38/3
#T P02/1 P02/2 P02/3 P02/4 P02/5 P03/8 P05/1 P06/5 P08/1 P08/2 P08/3
#T P08/4 P09/1 P09/2

SR20. When an annotation text relative primitive is displayed, if its bound text font and text precision are available on the workstation and its bound text font and text precision ASFs are INDIVIDUAL, then the appearance of the annotation text relative primitive meets or exceeds the requirements of the bound text precision.
#F 37 266
#D 3.3.2 3.3.3 3.3.7 3.3.8 6.12.1.1 6.12.1.2
#S 4.5.2/39/7 4.5.5/44/10 4.5.5/48/5 4.5.6/55/3
#T P04/4 P05/1 #C A workstation may use a higher text precision for displaying
annotation text relative than the one requested. SR16 above
describes the effect of an unavailable font or precision.

SR21. For text precision = STRING and CHAR, the annotation text relative string is displayed with the appropriate text font and the nearest DC annotation text character height and character expansion factor available on the workstation.
#F 37
#D 6.13.1.1 6.13.1.2 6.13.1.3 6.12.1.6 6.12.1.7 6.12.1.8
#S 4.5.5/47/5 4.5.5/49/5 4.5.6/55/3
#T P03/2 P03/4 P04/4 #C In the case where STRING is used as a result of coercion from
an unavailable font and precision, then the actual font (1) may
differ from the requested font. See SRs below for details of
coercion of annotation text character height and expansion
factor. Since there is no perspective effect, all characters are
of the same height, and there is no distinction between the
effect of STRING and CHAR.

SR22. For text precision = CHAR, character spacing and annotation text alignment aspects are applied exactly.
#F 37
#D
#S 4.5.5/47/5 4.5.5/49/5 4.5.6/55/3
#T P04/4 #C See SRs below for details of coercion of annotation text
character height and expansion factor.

SR23. For text precision = STROKE, annotation text relative is displayed with all annotation text relative aspects applied exactly.
#F 37
#D
#S 4.5.5/48/1 4.5.5/49/5 4.5.6/55/3
#T P02/6 P03/5 P03/6 P06/1 P06/2 P06/3 P06/4 P06/5 P08/1 P08/2 P08/3
#T P08/4 P09/1 P09/2
***   Text precision: network traversal   ***


SR24. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current text precision of the PTSL is set to STRING.
#F
#D 2.12.3 3.3.3
#S 4.4.3/26/2 4.4.3/28/1 6.3/309/1
#T P05/1

SR25. As part of the PTSL, the current text precision is saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.3.3
#S 4.4.3/28/1
#T P05/1
*** ***   Character expansion: effect during traversal   *** ***


SR26. Upon traversal of a "set character expansion factor" element, the current character expansion factor entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 38
#D 3.3.4 7.3.2.4.3
#S 4.5.2/38/3
#T P04/5 P05/2 P06/2 P06/3 P06/4 P06/5

SR27. The magnitude of the character expansion factor attribute specifies the amount by which the font nominal width/height ratio of individual TLC character bodies is multiplied to yield the actual TLC width/height ratio.
#F 269
#D
#S 4.5.5/45/2 4.5.5/45/4 4.5.6/55/3 5.4.2/138/6
#T P02/6 P03/5 P04/4 P04/5 P05/2 P06/2 P06/3 P06/4 P06/5

SR28. The requested DC character expansion factor equals the requested TLC character expansion factor.
#F
#D
#S 4.5.6/55/1 4.7.6/90/6 4.7.6/91/9
#T P04/4 P06/2 P06/3 P06/4 #C True because TLC -> NPC and NPC -> DC are both transformations
with uniform scaling.

SR29. When an annotation text relative primitive is displayed, if its bound character expansion factor ASF is INDIVIDUAL, then the actual DC character expansion factor used when displaying the annotation text relative is the nearest available to the requested DC character expansion factor.
#F 38 266
#D 3.3.4 3.3.9 6.12.1.6 6.12.1.7 6.12.1.8
#S 4.5.2/39/7 4.5.5/44/10 4.5.5/47/5 4.5.5/49/2 4.5.5/49/4
#T P04/4 P06/5 #S 4.5.6/55/3 5.4.2/138/6
#C Character expansion factor may be approximated only for STRING
or CHAR text precision; STROKE precision implies exact
realization. See the SRs on text precision, above. Of course,
by the above rule, if a requested expansion factor is available
on the workstation, then the result is exact for any precision.
*** ***   Character expansion: network traversal   *** ***


SR30. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current character expansion factor of the PTSL is set to 1.0.
#F
#D 2.12.4 3.3.4
#S 4.4.3/26/2 4.4.3/28/1 6.3/309/1
#T P05/2

SR31. As part of the PTSL, the current character expansion factor is saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.3.4
#S 4.4.3/28/1
#T P05/2
*** ***   Character spacing: effect during traversal   *** ***


SR32. Upon traversal of a "set character spacing" element, the current character spacing entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 39
#D 3.3.5 7.3.2.4.4
#S 4.5.2/38/3
#T P05/2 P06/2 P06/3 P06/4 P06/5

SR33. Character spacing specifies the TLC distance (positive) or overlap (negative) between adjacent character bodies, expressed in units of the font nominal annotation text character height.
#F 269
#D
#S 4.5.5/45/3 4.5.6/55/3
#T P02/6 P03/5 P05/2 P06/2 P06/3 P06/4 P06/5

SR34. When an annotation text relative primitive is displayed and its bound character spacing ASF is INDIVIDUAL, then the bound character spacing is used when displaying the annotation text relative.
#F 39
#D 3.3.5 3.3.10
#S 4.5.2/39/7 4.5.5/44/10 4.5.6/55/3
#T P06/2 P06/3 P06/4 P06/5 #C Character spacing may be approximated only for STRING
annotation text relative precision; CHAR or STROKE precision
implies exact realization. See the SRs on text precision, above.
*** ***   Character spacing: network traversal   *** ***


SR35. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current character spacing of the PTSL is set to 0.0.
#F
#D 2.12.5 3.3.5
#S 4.4.3/26/2 4.4.3/28/1 6.3/309/1
#T P05/2

SR36. As part of the PTSL, the current character spacing is saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.3.5
#S 4.4.3/28/1
#T P05/2
***   Text colour index: effect during traversal   ***


SR37. Upon traversal of a "set text colour index" element, the current text colour index entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 40
#D 3.3.6 7.3.2.4.5
#S 4.5.2/38/3
#T P05/3 P07/1 P07/2

SR38. When annotation text relative is displayed, if its bound text colour index is defined on the workstation and its bound text colour index ASF is INDIVIDUAL, then the text colour index is realized as itself.
#F 40
#D 3.3.6 3.3.11 5.15.3.1 5.15.3.2
#S 4.5.2/39/7 4.5.5/44/10 4.5.6/55/3 4.5.12/63/4
#T P05/3 P07/1

SR39. When annotation text relative is displayed, if its bound text colour index is not defined on the workstation and its bound text colour index ASF is INDIVIDUAL, then the text colour index is realized as number 1.
#F 40
#D 3.3.6 3.3.11 5.15.3.1 5.15.3.2
#S 4.5.2/39/7 4.5.2/43/3 4.5.5/44/10 4.5.6/55/3
#T P07/2
***   Text colour index: network traversal   ***


SR40. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current text colour index of the PTSL is set to 1.
#F
#D 2.12.6 3.3.6
#S 4.4.3/26/2 4.4.3/28/1 6.3/309/1
#T P05/3

SR41. As part of the PTSL, the current text colour index is saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.3.6
#S 4.4.3/28/1
#T P05/3
***   Annotation text character height: element creation   ***


SR42. <Set annotation text character height> creates a "set annotation text character height" element (in the open structure), whose associated value is taken from the function's parameter.
#F 45
#D 7.3.2.5.1
#S 4.4.1/23/1 4.5.2/38/3
#T P01/1 P01/2 P04/5
*** ***   Annotation text Character Height Support   *** ***


SR43. <Inquire annotation facilities> describes the realizable annotation text character heights for a specified workstation type, via the number of available character heights, minimum character height and maximum character height.
#F 268
#D 6.13.1.1 6.13.1.2 6.13.1.3
#S
#T P04/1 P04/2 P04/3

SR44. The minimum and maximum annotation text character height are both positive.
#F 268
#D 6.13.1.2 6.13.1.3
#S 6.7/322/1
#T P04/2

SR45. All workstation types support at least one annotation text character height for STRING and CHAR precisions.
#F 268
#D 6.13.1.1
#S 4.14/114/2 6.7/322/1
#T P04/3

SR46. The range of character heights returned by <Inquire annotation facilities> is for font 1.
#F 268
#D 6.13.1.2 6.13.1.3
#S
#T P04/4

SR47. The workstation supports a continuous range of character heights for CHAR and STRING precision, if the number of available character heights is 0.
#F 268
#D 6.13.1.1
#S 6.7/322/1
#T P04/3 P04/4
*** Annotation text character height: effect during traversal ***


SR48. Upon traversal of a "set annotation text character height" element, the current annotation text character height entry in the PHIGS traversal state list (PTSL) is set to magnitude of the element's associated value.
#F 45
#D 3.4.1 7.3.2.5.1
#S 4.5.2/38/3
#T P03/6 P04/5 P06/2 P06/3 P06/4 P06/5 P11/1

SR49. The magnitude of the annotation text character height attribute specifies, in TLC, the font nominal height (from baseline to capline) of a capital letter.
#F 269
#D
#S 4.5.5/45/2 4.5.5/46/1 4.5.5/48/7 4.5.6/55/4 5.4.2/142/1
#T P02/6 P03/5 P03/6 P04/4 P04/5 P06/2 P06/3 P06/4 P06/5 #C Annotation text character height is measured in TLC, along the
annotation text character up vector. Since TLC is unscaled from
NPC, the magnitude of annotation text character height may also
be treated as if in NPC.

SR50. The font nominal width in TLC of a character within an annotation text relative primitive is given by the font's intrinsic width to height ratio for that character times the magnitude of the annotation text character height.
#F
#D
#S 4.5.5/44/9 4.5.5/45/2 4.5.6/55/4 5.4.2/142/1
#T P02/6 P04/4 P06/2 P06/3 P06/4 P06/5 #C Since <set annotation text character height> also sets the
character width attribute, annotation text character height is in
effect a scaling factor for the entire character.

SR51. The requested DC annotation text character height for a character within a displayed annotation text relative string equals the TLC character height as transformed by the workstation transformation.
#F 45
#D 3.4.1
#S 4.5.5/48/7 4.5.5/49/5 4.5.6/55/1 4.5.6/55/4 4.7.6/90/6
#T P04/4 P06/2 P06/3 P06/4 #S 4.7.6/91/9
#C Since TLC -> NPC is unscaled, and NPC -> DC (workstation
transformation) does uniform scaling, only the latter affects the
DC size of the characters.

SR52. When an annotation text relative primitive is displayed, the actual DC annotation text character height is the nearest available to the requested DC annotation text character height resulting from its TLC bound annotation text character height (after undergoing the workstation transformation).
#F 45 266
#D 3.4.1 6.13.1.1 6.13.1.2 6.13.1.3
#S 4.5.5/45/2 4.5.5/47/5 4.5.5/49/2 4.5.6/55/4 5.4.2/142/1
#T P04/4 P06/2 P06/3 P06/4 P06/5 #C See SRs above for derivation of requested DC annotation text
character height and width. Annotation text character height may
be approximated only for STRING or CHAR text precision; STROKE
precision implies exact realization, as stated in the SRs on text
precision, above. Of course, by the above rule, if a requested
height is available on the workstation, then the result is exact
for any precision.
***   Annotation text character height: network traversal   ***


SR53. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current annotation text character height and width of the PTSL are set to 0.01.
#F
#D 2.13.1 3.4.1
#S 4.4.3/26/2 4.4.3/28/1 4.5.5/47/2 6.3/309/1
#T P11/1

SR54. As part of the PTSL, the current annotation text character height and width are saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.4.1
#S 4.4.3/28/1
#T P11/1
*** ***   Annotation text path: element creation   *** ***


SR55. <Set annotation text path> creates a "set annotation text path" element (in the open structure), whose associated value is taken from the function's parameter.
#F 47
#D 7.3.2.5.3
#S 4.4.1/23/1 4.5.2/38/3
#T P01/5 P01/6 P06/1

SR56. The valid values for annotation text path in <set annotation text path> are RIGHT, LEFT, UP, and DOWN.
#F 47
#D 7.3.2.5.3
#S 4.5.5/45/2 4.5.6/55/4
#T P01/6 P06/1 P08/1 P08/3
***   Annotation text path: effect during traversal   ***


SR57. Upon traversal of a "set annotation text path" element, the current annotation text path entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 47
#D 3.4.5 7.3.2.5.3
#S 4.5.2/38/3
#T P06/1 P06/2 P06/3 P06/4 P06/5 P08/1 P08/2 P08/3 P08/4 P09/1 P09/2
#T P11/3

SR58. The annotation text path specifies the writing direction within the TLC x-y plane for the annotation text relative string before application of the annotation text character up vector attribute (i.e. the direction in which successive characters are appended) as follows: RIGHT: positive x-axis, LEFT: negative x-axis, UP: positive y-axis, DOWN: negative x-axis.
#F 47
#D
#S 4.5.5/45/2 4.5.6/55/4
#T P06/1 P06/2 P06/3 P06/4 P06/5 P08/1 P08/2 P08/3 P08/4 P09/1 P09/2
#T P11/3 #C Only STROKE precision implies exact realization of annotation
text path. See the SRs on text precision, above.

SR59. For vertical annotation text paths (UP or DOWN), the centrelines of the character bodies are aligned vertically within the annotation text relative string before application of the annotation text character up vector attribute.
#F 47
#D
#S 4.5.5/45/2 4.5.6/55/4
#T P06/3 P06/5 P09/2

SR60. For horizontal annotation text paths (LEFT or RIGHT), the baselines of the character bodies are aligned horizontally within the annotation text relative string before application of the annotation text character up vector attribute.
#F 47
#D
#S 4.5.5/45/2 4.5.6/55/4
#T P06/2 P06/4 P09/1
*** ***   Annotation text path: network traversal   *** ***


SR61. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current annotation text path of the PTSL is set to RIGHT.
#F
#D 2.13.5 3.4.5
#S 4.4.3/26/2 4.4.3/28/1 4.5.5/47/2 6.3/310/1
#T P11/3

SR62. As part of the PTSL, the current annotation text path is saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.4.5
#S 4.4.3/28/1
#T P11/3
*** ***   Annotation text alignment: element creation   *** ***


SR63. <Set annotation text alignment> creates a "set annotation text alignment" element (in the open structure), whose associated value is taken from the function's parameter.
#F 48
#D 7.3.2.5.4
#S 4.4.1/23/1 4.5.2/38/3
#T P01/7 P01/8 P08/1 P08/2 P08/3 P08/4

SR64. The valid values in <set annotation text alignment> for horizontal annotation text alignment are NORMAL, LEFT, CENTRE, and RIGHT; for vertical annotation text alignment, NORMAL, TOP, CAP, HALF, BASE, and BOTTOM.
#F 48
#D 7.3.2.5.4
#S 4.5.5/45/6 4.5.5/46/1 4.5.6/55/4
#T P01/8 P08/1 P08/2 P08/3 P08/4
***   Annotation text alignment: effect during traversal   ***


SR65. Upon traversal of a "set annotation text alignment" element, the current annotation text alignment entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 48
#D 3.4.6 3.4.7 7.3.2.5.4
#S 4.5.2/38/3
#T P08/1 P08/2 P08/3 P08/4 P09/1 P09/2 P11/2

SR66. The annotation text alignment specifies which horizontal and vertical location within the annotation text relative rectangle is to coincide with the TLC origin by shifting the rectangle within the annotation text relative plane. For all annotation text paths, alignments LEFT, RIGHT, BOTTOM, and TOP refer to the left, right, bottom, and top edges of the rectangle, and CENTRE refers to the horizontal location midway between the left and right edges. For horizontal annotation text paths, CAP, HALF, and BASE refer to the capline, halfline, and baseline of the whole annotation text relative string. For vertical annotation text paths, CAP refers to the capline of the topmost character, BASE refers to the baseline of the bottommost character, and HALF refers to the vertical location midway between the halflines of the topmost and bottommost characters.
#F 48
#D
#S 4.5.5/45/4 4.5.5/45/6 4.5.5/46/1 4.5.6/55/4
#T P03/6 P08/1 P08/2 P08/3 P08/4 P09/1 P09/2 P11/2 #C Only CHAR and STROKE precision imply exact realization of
annotation text relative alignment. See the SRs on text
precision, above. Recall that the TLC origin is the annotation
point in NPC. Also, note the implication that for a given font
the relative placement of the baseline, halfline, and capline of
the same for all character bodies.

SR67. The effect of NORMAL as the horizontal or vertical component of annotation text alignment is equivalent to one of the other defined values for annotation text alignment and depends on annotation text path as follows: annotation text path | (horizontal, vertical) ----------------------+------------------------ RIGHT | (LEFT, BASE) LEFT | (RIGHT, BASE) UP | (CENTRE, BASE) DOWN | (CENTRE, TOP)
#F 48
#D
#S 4.5.5/46/3 4.5.5/47/1 4.5.6/55/4
#T P08/2 P08/4
***   Annotation text alignment: network traversal   ***


SR68. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current annotation text alignment of the PTSL is set to (NORMAL, NORMAL).
#F
#D 2.13.6 2.13.7 3.4.6 3.4.7
#S 4.4.3/26/2 4.4.3/28/1 4.5.5/47/2 4.5.6/55/4 6.3/310/1
#T P11/2

SR69. As part of the PTSL, the current annotation text alignment is saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.4.6 3.4.7
#S 4.4.3/28/1
#T P11/2
***   Annotation text character up vector: element creation   ***


SR70. <Set annotation text character up vector> creates a "set annotation text character up vector" element (in the open structure), whose associated value is taken from the function's parameter.
#F 46
#D 7.3.2.5.2
#S 4.4.1/23/1 4.5.2/38/3
#T P01/3 P01/4 P06/1
*** *** ***   Annotation text character up vector:   *** *** ***
*** *** ***   effect during traversal                *** *** ***


SR71. Upon traversal of a "set annotation text character up vector" element, the current annotation text character up vector entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 46
#D 3.4.2 7.3.2.5.2
#S 4.5.2/38/3
#T P06/1 P09/1 P09/2 P11/3

SR72. The annotation text character up vector aspect (specified in TLC) causes the annotation text relative rectangle that has been formed in the annotation text relative plane by application of text font, annotation text character height, character expansion factor, character spacing, annotation text path, and annotation text alignment to be rotated within the text plane about the TLC origin such that the up direction of the characters is the same as that of the vector.
#F 46
#D
#S 4.5.5/45/2 4.5.5/45/5 4.5.6/55/4
#T P06/1 P09/1 P09/2 P11/3 #C Only STROKE precision implies exact realization of annotation
text character up vector. See the SRs on text precision, above.
***  Annotation text character up vector: network traversal  ***


SR73. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current annotation text character up vector of the PTSL is set to (0,1).
#F
#D 2.13.2 3.4.2
#S 4.4.3/26/2 4.4.3/28/1 4.5.5/47/2 4.5.6/55/4 6.3/309/1
#T P11/3

SR74. As part of the PTSL, the current annotation text character up vector is saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.4.2
#S 4.4.3/28/1
#T P11/3
*** *** ***   Annotation style: element creation   *** *** ***


SR75. <Set annotation style> creates a "set annotation style" element (in the open structure), whose associated value is taken from the function's parameter.
#F 49
#D 7.3.2.5.5
#S 4.4.1/23/1 4.5.2/38/3
#T P01/9 P01/10 P10/2 P10/3 P10/4 P10/5 P10/6
*** ***   Annotation style: effect during traversal   *** ***


SR76. Upon traversal of a "set annotation style" element, the current annotation style entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 49
#D 3.4.8 7.3.2.5.5
#S 4.5.2/38/3
#T P10/2 P10/3 P10/4 P10/5 P10/6 P11/4

SR77. The list of available annotation styles returned by <inquire annotation facilities> includes styles number 1 and 2 for all workstation types.
#F 268
#D 6.13.1.4 6.13.1.5
#S 4.14/113/3
#T P10/1

SR78. When an annotation text relative is displayed, if its bound annotation style is available on the workstation, then the appearance of the annotation style agrees with the documented specifications.
#F 49 268
#D 3.4.8 6.13.1.4 6.13.1.5
#S 4.5.6/55/5
#T P10/2 P10/3 P10/4 P10/5 P10/6

SR79. When an annotation text relative is displayed, if its bound annotation style is not available on the workstation, then annotation style 1 (unconnected) is used to display the annotation text relative.
#F 49 268
#D 3.4.8 6.13.1.4 6.13.1.5
#S 4.5.2/43/3
#T P10/3

SR80. Annotation style #1 adds no visual effect to the appearance of the annotation text relative primitive itself; annotation style #2 causes a polyline to be drawn between the annotation point and the reference point, using the current polyline attributes.
#F 49 268
#D
#S 4.5.6/55/5
#T P10/2 P10/3 P10/4

SR81. When available on the workstation to which posted, annotation styles greater than 2 appear as specified in the ISO register.
#F 49 268
#D 6.13.1.4 6.13.1.5
#S 4.1.2/15/2 4.5.6/55/5
#T P10/5

SR82. When available on the workstation to which posted, annotation styles less than 1 appear as specified in the implementor documentation.
#F 49 268
#D 6.13.1.4 6.13.1.5
#S 4.1.1/15/1 4.5.6/55/5
#T P10/6 P10/7
*** ***   Annotation style: network traversal   *** ***


SR83. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current annotation style of the PTSL is set to 1.
#F
#D 2.13.8 3.4.8
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P11/4

SR84. As part of the PTSL, the current annotation style is saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.4.8
#S 4.4.3/28/1
#T P11/4

LOCAL DICTIONARY:

  Functions ---
  015: patr3   <annotation text relative 3>
  016: patr    <annotation text relative>
  036: pstxfn  <set text font>
  037: pstxpr  <set text precision>
  038: pschxp  <set character expansion factor>
  039: pschsp  <set character spacing>
  040: pstxci  <set text colour index>
  045: psatch  <set annotation text character height>
  046: psatcu  <set annotation text character up vector>
  047: psatp   <set annotation text path>
  048: psatal  <set annotation text alignment>
  049: psans   <set annotation style>
  113: pexst   <execute structure>
  266: pqtxf   <inquire text facilities>
  268: pqanf   <inquire annotation facilities>
  269: pqtxx   <inquire text extent>
  303: pqcets  <inquire current element type and size>
  304: pqceco  <inquire current element content>
 
  Data Structures ---
  2  ...  phigs_description_table
  2.2  ...  list_of_available_workstation_types
  2.7  ...  list_of_available_character_sets
  2.12 ...  default_text_attributes
  2.12.2  ...  default_text_font
  2.12.3  ...  default_text_precision
  2.12.4  ...  default_character_expansion_factor
  2.12.5  ...  default_character_spacing
  2.12.6  ...  default_text_colour_index
  2.13  ...  default_annotation_text_attributes
  2.13.1  ...  default_annotation_text_character_height
  2.13.2  ...  default_annotation_text_character_up_vector
  2.13.5  ...  default_annotation_text_path
  2.13.6  ...  default_annotation_text_alignment_horizontal
  2.13.7  ...  default_annotation_text_alignment_vertical
  2.13.8  ...  default_annotation_style
  3  ...  phigs_traversal_state_list
  3.3  ...  current_text_attributes
  3.3.2  ...  current_text_font
  3.3.3  ...  current_text_precision
  3.3.4  ...  current_character_expansion_factor
  3.3.5  ...  current_character_spacing
  3.3.6  ...  current_text_colour_index
  3.3.7  ...  current_text_font_asf
  3.3.8  ...  current_text_precision_asf
  3.3.9  ...  current_character_expansion_factor_asf
  3.3.10 ...  current_character_spacing_asf
  3.3.11 ...  current_text_colour_index_asf
  3.4  ...  current_annotation_text_attributes
  3.4.1  ...  current_annotation_text_character_height
  3.4.2  ...  current_annotation_text_character_up_vector
  3.4.5  ...  current_annotation_text_path
  3.4.6  ...  current_annotation_text_alignment_horizontal
  3.4.7  ...  current_annotation_text_alignment_vertical
  3.4.8  ...  current_annotation_style
  5  ...  workstation_state_list
  5.15  ...  colour_entry
  5.15.3  ...  colour_table
  5.15.3.1  ...  colour_index
  5.15.3.2  ...  colour_specification
  6  ...  workstation_description_table
  6.12  ...  text_entry
  6.12.1  ...  text_facilities
  6.12.1.1  ...  number_of_text_font_and_precision_pairs
  6.12.1.2  ...  list_of_text_font_and_precision_pairs
  6.12.1.6  ...  number_of_available_character_expansion_factors
  6.12.1.7  ...  minimum_character_expansion_factor
  6.12.1.8  ...  maximum_character_expansion_factor
  6.13  ...  annotation_entry
  6.13.1  ...  annotation_facilities
  6.13.1.1  ...  number_of_available_annotation_text_character_heights
  6.13.1.2  ...  minimum_annotation_text_character_height
  6.13.1.3  ...  maximum_annotation_text_character_height
  6.13.1.4  ...  number_of_available_annotation_styles
  6.13.1.5  ...  list_of_available_annotation_styles
  7  ...  structure_state_list
  7.3  ...  list_of_structure_elements
  7.3.1  ...  graphical_primitives
  7.3.1.7  ...  annotation_text_relative_3
  7.3.1.8  ...  annotation_text_relative
  7.3.2  ...  primitive_attributes
  7.3.2.4  ...  text_attributes
  7.3.2.4.1  ...  text_font
  7.3.2.4.2  ...  text_precision
  7.3.2.4.3  ...  character_expansion_factor
  7.3.2.4.4  ...  character_spacing
  7.3.2.4.5  ...  text_colour_index
  7.3.2.5  ...  annotation_text_attributes
  7.3.2.5.1  ...  annotation_text_character_height
  7.3.2.5.2  ...  annotation_text_character_up_vector
  7.3.2.5.3  ...  annotation_text_path
  7.3.2.5.4  ...  annotation_text_alignment
  7.3.2.5.5  ...  annotation_style
 
SEMANTIC CROSS-REFERENCES:
  04.01.04/SR07 04.01.04/SR08

LOCAL SUBROUTINES:

LOCATX draws an annotation text primitive at the real y-location
corresponding to the integer index given in YLOC.

LOCAT2 draws an annotation text string at the real y-location
corresponding to the integer index given in YLOC, and puts a
polymarker at the text position.

LOCANS draws an annotation text primitive with a distinct
annotation point and reference point, at the real y-location
corresponding to the integer index given in YLOC.

TSANUP draws an annotation text string with various values for
character up and for annotation text alignment.  The annotation
text strings are displayed along radii of a circle and are
enclosed by a text extent rectangle (except for one which is
deliberately drawn incorrectly).  TSANUP assumes that default
character height has been set to 1.0.

DSANST accepts a list of annotation styles and displays at most
eight (8) of them.



PROGRAM 1: Element creation and inquiring

You may inspect either the design or code for this program.


PROGRAM 2: Appearance of text fonts 1 and 2

You may inspect either the design or code for this program.


PROGRAM 3: Appearance of all text fonts

You may inspect either the design or code for this program.


PROGRAM 4: Character height and expansion factor

You may inspect either the design or code for this program.


PROGRAM 5: Network inheritance and initialization for non-geometric annotation text attributes

You may inspect either the design or code for this program.


PROGRAM 6: Annotation text path, character height, expansion factor, spacing, and up vector

You may inspect either the design or code for this program.


PROGRAM 7: Annotation text color index

You may inspect either the design or code for this program.


PROGRAM 8: Annotation text alignment

You may inspect either the design or code for this program.


PROGRAM 9: Annotation text character up vector

You may inspect either the design or code for this program.


PROGRAM 10: Annotation style

You may inspect either the design or code for this program.


PROGRAM 11: Network inheritance and initialization for geometric annotation text attributes

You may inspect either the design or code for this program.

End of documentation for 04.02.04.01