Module #04.02.01.01 : Polyline - 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 polyline
attributes.  These values control the appearance of polylines
when they are under individual (as opposed to bundled) control.

SEMANTIC REQUIREMENTS:

*** *** ***   Polyline attribute inquiry   *** *** ***


SR1. If current element is linetype, linewidth scale factor, or polyline colour index, then <inquire current element type and size> returns the appropriate element type and size.
#F 303
#D 7.3.2.2.1 7.3.2.2.2 7.3.2.2.3
#S 4.4.4/29/5
#T P01/1 P01/3 P01/5

SR2. If current element is linetype, linewidth scale factor, or polyline colour index, then <inquire current element content> returns the associated value for that element.
#F 304
#D 7.3.2.2.1 7.3.2.2.2 7.3.2.2.3
#S 4.4.4/29/5
#T P01/2 P01/4 P01/6
*** *** ***   Polyline attribute traversal binding   *** *** ***


SR3. Upon traversal of a "polyline" or "polyline 3" element, the current linetype, linewidth scale factor, and polyline colour index in the PTSL are bound to the resulting primitive.
#F 30 31 32
#D 3.1.2 3.1.3 3.1.4 7.3.1.1 7.3.1.2
#S 4.5.2/38/3 4.5.2/40/3
#T P02/1 P02/2 P02/3 P02/4 P02/6 P02/7 P02/8 P02/9 P02/10 P02/11 P03/1
#T P03/2 P03/3 P03/4 P03/5 P03/6 P03/7 P03/8 P03/9 P03/10 P04/1 P04/2
*** ***   Linetype: element creation   *** ***


SR4. <Set linetype> creates a "set linetype" element (in the open structure), whose associated value is taken from the function's parameter.
#F 30
#D 7.3.2.2.1
#S 4.4.1/23/1 4.5.2/38/3
#T P01/1 P01/2 P02/1 P02/2 P02/3 P02/4 P03/1 P03/2 P03/3 P03/4
*** ***   Linetype: effect during traversal   *** ***


SR5. Upon traversal of a "set linetype" element, the current linetype entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 30
#D 3.1.2 7.3.2.2.1
#S 4.5.2/38/3
#T P02/1 P02/2 P02/3 P02/4 P03/1 P03/2 P03/3 P03/4 P04/1

SR6. When a polyline is displayed, if its bound linetype is available on the workstation and its bound linetype ASF is INDIVIDUAL, then the appearance of the linetype agrees with the documented specifications.
#F 30 262
#D 3.1.2 3.1.5 6.10.1.1 6.10.1.2
#S 4.5.2/39/7 4.5.3/43/5
#T P02/1 P02/2 P02/3 P02/4 P03/1 P03/2 P03/3 P03/4 P04/1

SR7. When a polyline is displayed, if its bound linetype is not available on the workstation and its bound linetype ASF is INDIVIDUAL, then linetype 1 (solid) is used to display the polyline.
#F 30 262
#D 3.1.2 3.1.5 6.10.1.1 6.10.1.2
#S 4.5.2/39/7 4.5.2/43/3
#T P02/2 P03/2

SR8. When available on the workstation to which posted, linetypes 1 through 4 appear as solid, dashed, dotted, and dashed-dotted lines, respectively.
#F
#D 6.10.1.1 6.10.1.2
#S 4.5.3/43/5
#T P02/1 P02/2 P03/1 P03/2

SR9. When available on the workstation to which posted, linetypes greater than 4 appear as specified in the ISO register.
#F
#D 6.10.1.1 6.10.1.2
#S 4.1.2/15/2 4.5.3/43/5
#T P02/3 P03/3

SR10. When available on the workstation to which posted, linetypes less than 1 appear as specified in the implementor documentation.
#F
#D 6.10.1.1 6.10.1.2
#S 4.1.1/15/1 4.5.3/43/5
#T P02/4 P02/5 P03/4
*** ***   Linetype: network traversal   *** ***


SR11. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current linetype of the PTSL is set to 1.
#F
#D 2.10.2 3.1.2
#S 4.4.3/26/2 4.4.3/28/1 6.3/309/1
#T P04/1

SR12. As part of the PTSL, the current linetype 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.1.2
#S 4.4.3/28/1
#T P04/1
***   Linewidth scale factor: element creation   ***


SR13. <Set linewidth scale factor> creates a "set linewidth scale factor" element (in the open structure), whose associated value is taken from the function's parameter.
#F 31
#D 7.3.2.2.2
#S 4.4.1/23/1 4.5.2/38/3
#T P01/3 P01/4 P02/6 P02/7 P02/8 P02/9 P03/5 P03/6 P03/7 P03/8
*** ***   Linewidth scale factor: effect during traversal   *** ***


SR14. Upon traversal of a "set linewidth scale factor" element, the current linewidth scale factor entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 31
#D 3.1.3 7.3.2.2.2
#S 4.5.2/38/3
#T P02/6 P02/7 P02/8 P02/9 P03/5 P03/6 P03/7 P03/8 P04/1

SR15. When a polyline is displayed, if its logical linewidth (= its bound linewidth scale factor times the workstation's nominal linewidth) is available on the workstation and its bound linewidth scale factor ASF is INDIVIDUAL, then the actual linewidth agrees with the logical linewidth.
#F 31 262
#D 3.1.3 3.1.6 6.10.1.3 6.10.1.4 6.10.1.5 6.10.1.6
#S 4.5.2/39/7 4.5.3/43/6
#T P02/6 P03/5 P04/1

SR16. When a polyline is displayed, if its logical linewidth is not available on the workstation and its bound linewidth scale factor ASF is INDIVIDUAL, then the actual linewidth is the nearest available to the logical linewidth.
#F 31 262
#D 3.1.3 3.1.6 6.10.1.3 6.10.1.4 6.10.1.5 6.10.1.6
#S 4.5.2/39/7 4.5.3/43/6
#T P02/7 P02/8 P02/9 P03/6 P03/7 P03/8
*** ***   Linewidth scale factor: network traversal   *** ***


SR17. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current linewidth scale factor of the PTSL is set to 1.0.
#F
#D 2.10.3 3.1.3
#S 4.4.3/26/2 4.4.3/28/1 6.3/309/1
#T P04/1

SR18. As part of the PTSL, the current linewidth scale 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.1.3
#S 4.4.3/28/1
#T P04/1
***   Polyline colour index: element creation   ***


SR19. <Set polyline colour index> creates a "set polyline colour index" element (in the open structure), whose associated value is taken from the function's parameter.
#F 32
#D 7.3.2.2.3
#S 4.4.1/23/1 4.5.2/38/3
#T P01/5 P01/6 P02/10 P02/11 P03/9 P03/10
*** ***   Polyline colour index: effect during traversal   *** ***


SR20. Upon traversal of a "set polyline colour index" element, the current polyline colour index entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 32
#D 3.1.4 7.3.2.2.3
#S 4.5.2/38/3
#T P02/10 P02/11 P03/9 P03/10 P04/2

SR21. When a polyline is displayed, if its bound polyline colour index is defined on the workstation and its bound polyline colour index ASF is INDIVIDUAL, then the polyline colour index is realized as itself.
#F 32
#D 3.1.4 3.1.7 5.15.3.1 5.15.3.2
#S 4.5.2/39/7 4.5.12/63/4
#T P02/10 P03/9 P04/2

SR22. When a polyline is displayed, if its bound polyline colour index is not defined on the workstation and its bound polyline colour index ASF is INDIVIDUAL, then the polyline colour index is realized as number 1.
#F 32
#D 3.1.4 3.1.7 5.15.3.1 5.15.3.2
#S 4.5.2/39/7 4.5.2/43/3
#T P02/11 P03/10
*** ***   Polyline colour index: network traversal   *** ***


SR23. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current polyline colour index of the PTSL is set to 1.
#F
#D 2.10.4 3.1.4
#S 4.4.3/26/2 4.4.3/28/1 6.3/309/1
#T P04/2

SR24. As part of the PTSL, the current polyline 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.1.4
#S 4.4.3/28/1
#T P04/2

LOCAL DICTIONARY:

  Functions ---
  030: psln    <set linetype>
  031: pslwsc  <set linewidth scale factor>
  032: psplci  <set polyline colour index>
  113: pexst   <execute structure>
  262: pqplf   <inquire polyline facilities>
  303: pqcets  <inquire current element type and size>
  304: pqceco  <inquire current element content>
 
  Data Structures ---
  2  ...  phigs_description_table
  2.10 ...  default_polyline_attributes
  2.10.2  ...  default_linetype
  2.10.3  ...  default_linewidth_scale_factor
  2.10.4  ...  default_polyline_colour_index
  3  ...  phigs_traversal_state_list
  3.1  ...  current_polyline_attributes
  3.1.2  ...  current_linetype
  3.1.3  ...  current_linewidth_scale_factor
  3.1.4  ...  current_polyline_colour_index
  3.1.5  ...  current_linetype_asf
  3.1.6  ...  current_linewidth_scale_factor_asf
  3.1.7  ...  current_polyline_colour_index_asf
  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.10 ...  polyline_entry
  6.10.1  ...  polyline_facilities
  6.10.1.1  ...  number_of_available_linetypes
  6.10.1.2  ...  list_of_available_linetypes
  6.10.1.3  ...  number_of_available_linewidths
  6.10.1.4  ...  nominal_linewidth
  6.10.1.5  ...  minimum_linewidth
  6.10.1.6  ...  maximum_linewidth
  7  ...  structure_state_list
  7.3  ...  list_of_structure_elements
  7.3.1  ...  graphical_primitives
  7.3.1.1  ...  polyline_3
  7.3.1.2  ...  polyline
  7.3.2  ...  primitive_attributes
  7.3.2.2  ...  polyline_attributes
  7.3.2.2.1  ...  linetype
  7.3.2.2.2  ...  linewidth_scale_factor
  7.3.2.2.3  ...  polyline_colour_index
 
SEMANTIC CROSS-REFERENCES:
  04.02.05.01/SR44 04.02.05.01/SR45 04.02.05.01/SR46

LOCAL SUBROUTINES:

PLATTR tests polyline attributes, either individually, using the
default values for the other attributes, or in combination, using
non-default values for the others.  It forms the body of P02 and
P03, since these are very similar except for varying the
attributes individually or in combination.

NDLW attempts to set linewidth to a requested value, but not near
the default.

SHOWLW tests the rendering of a given linewidth, and returns the
pass/fail result.  The actual line is drawn using the indicated
linetype and color.  The expected linewidth is simulated with
polylines of the thinnest available linewidth.

RANLST chooses a linetype at random from the three lists of
available linetypes.

EXPPPL draws a polyline with the expected linestyle and linewidth.

PLYXF returns the appropriate y-coordinate in WC for the
ordered polylines.



PROGRAM 1: Element creation and inquiring

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


PROGRAM 2: Appearance of individual attributes

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


PROGRAM 3: Combinations of individual attributes

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


PROGRAM 4: Network inheritance and initialization

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

End of documentation for 04.02.01.01