Module #04.02.02.01 : Polymarker - 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 polymarker
attributes.  These values control the appearance of polymarkers
when they are under individual (as opposed to bundled) control.

SEMANTIC REQUIREMENTS:

*** *** ***   Polymarker attribute inquiry   *** *** ***


SR1. If current element is marker type, marker size scale factor, or polymarker colour index, then <inquire current element type and size> returns the appropriate element type and size.
#F 303
#D 7.3.2.3.1 7.3.2.3.2 7.3.2.3.3
#S 4.4.4/29/5
#T P01/1 P01/3 P01/5

SR2. If current element is marker type, marker size scale factor, or polymarker colour index, then <inquire current element content> returns the associated value for that element.
#F 304
#D 7.3.2.3.1 7.3.2.3.2 7.3.2.3.3
#S 4.4.4/29/5
#T P01/2 P01/4 P01/6
*** *** ***   Polymarker attribute traversal binding   *** *** ***


SR3. Upon traversal of a "polymarker" or "polymarker 3" element, the current marker type, marker size scale factor, and polymarker colour index in the PTSL are bound to the resulting primitive.
#F 33 34 35
#D 3.2.2 3.2.3 3.2.4 7.3.1.3 7.3.1.4
#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 P02/12
#T P03/1 P03/2 P03/3 P03/4 P03/5 P03/6 P03/7 P03/8 P03/9 P03/10 P04/1
#T P04/2
*** ***   Marker type: element creation   *** ***


SR4. <Set marker type> creates a "set marker type" element (in the open structure), whose associated value is taken from the function's parameter.
#F 33
#D 7.3.2.3.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 P02/10 P03/1 P03/2 P03/3 P03/4
*** ***   Marker type: effect during traversal   *** ***


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

SR6. When a polymarker is displayed, if its bound marker type is available on the workstation and its bound marker type ASF is INDIVIDUAL, then the appearance of the marker type agrees with the documented specifications.
#F 33 264
#D 3.2.2 3.2.5 6.11.1.1 6.11.1.2
#S 4.5.2/39/7 4.5.4/44/2
#T P02/1 P02/2 P02/3 P02/4 P03/1 P03/2 P03/3 P03/4 P04/1

SR7. When a polymarker is displayed, if its bound marker type is not available on the workstation and its bound marker type ASF is INDIVIDUAL, then marker type 3 (asterisk) is used to display the polymarker.
#F 33 264
#D 3.2.2 3.2.5 6.11.1.1 6.11.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, marker types 1 through 5 appear as dot, plus sign, asterisk, circle, and diagonal cross, respectively.
#F
#D 6.11.1.1 6.11.1.2
#S 4.5.4/44/2
#T P02/1 P02/2 P03/1 P03/2

SR9. When available on the workstation to which posted, marker types greater than 5 appear as specified in the ISO register.
#F
#D 6.11.1.1 6.11.1.2
#S 4.1.2/15/2 4.5.4/44/2
#T P02/3 P03/3

SR10. When available on the workstation to which posted, marker types less than 1 appear as specified in the implementor documentation.
#F
#D 6.11.1.1 6.11.1.2
#S 4.1.1/15/1 4.5.4/44/2
#T P02/4 P02/5 P03/4
*** ***   Marker type: 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 marker type of the PTSL is set to 3.
#F
#D 2.11.2 3.2.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 marker type 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.2.2
#S 4.4.3/28/1
#T P04/1
***   Marker size scale factor: element creation   ***


SR13. <Set marker size scale factor> creates a "set marker size scale factor" element (in the open structure), whose associated value is taken from the function's parameter.
#F 34
#D 7.3.2.3.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 P02/10 P03/5 P03/6 P03/7 P03/8
*** ***   Marker size scale factor: effect during traversal   *** ***


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

SR15. Except for marker type 1, when a polymarker is displayed, if its logical marker size (= its bound marker size scale factor times the workstation's nominal marker size) is available on the workstation and its bound marker size scale factor ASF is INDIVIDUAL, then the actual marker size agrees with the logical marker size.
#F 34 264
#D 3.2.3 3.2.6 6.11.1.3 6.11.1.4 6.11.1.5 6.11.1.6
#S 4.5.2/39/7 4.5.4/44/3
#T P02/6 P03/5 P04/1

SR16. Except for marker type 1, when a polymarker is displayed, if its logical marker size is not available on the workstation and its bound marker size scale factor ASF is INDIVIDUAL, then the actual marker size is the nearest available to the logical marker size.
#F 34 264
#D 3.2.3 3.2.6 6.11.1.3 6.11.1.4 6.11.1.5 6.11.1.6
#S 4.5.2/39/7 4.5.4/44/3
#T P02/7 P02/8 P02/9 P03/6 P03/7 P03/8

SR17. For marker type 1, when a polymarker is displayed, its logical marker size is ignored and the polymarker is displayed as the smallest displayable dot.
#F 33 34
#D 6.11.1.4 6.11.1.5 6.11.1.6
#S 4.5.4/44/3
#T P02/10
*** ***   Marker size scale factor: network traversal   *** ***


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

SR19. As part of the PTSL, the current marker size 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.2.3
#S 4.4.3/28/1
#T P04/1
***   Polymarker colour index: element creation   ***


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


SR21. Upon traversal of a "set polymarker colour index" element, the current polymarker colour index entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 35
#D 3.2.4 7.3.2.3.3
#S 4.5.2/38/3
#T P02/11 P02/12 P03/9 P03/10 P04/2

SR22. When a polymarker is displayed, if its bound polymarker colour index is defined on the workstation and its bound polymarker colour index ASF is INDIVIDUAL, then the polymarker colour index is realized as itself.
#F 35
#D 3.2.4 3.2.7 5.15.3.1 5.15.3.2
#S 4.5.2/39/7 4.5.12/63/4
#T P02/11 P03/9 P04/2

SR23. When a polymarker is displayed, if its bound polymarker colour index is not defined on the workstation and its bound polymarker colour index ASF is INDIVIDUAL, then the polymarker colour index is realized as number 1.
#F 35
#D 3.2.4 3.2.7 5.15.3.1 5.15.3.2
#S 4.5.2/39/7 4.5.2/43/3
#T P02/12 P03/10
*** ***   Polymarker colour index: 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 polymarker colour index of the PTSL is set to 1.
#F
#D 2.11.4 3.2.4
#S 4.4.3/26/2 4.4.3/28/1 6.3/309/1
#T P04/2

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

LOCAL DICTIONARY:

  Functions ---
  033: psmk    <set marker type>
  034: psmksc  <set marker size scale factor>
  035: pspmci  <set polymarker colour index>
  113: pexst   <execute structure>
  264: pqpmf   <inquire polymarker facilities>
  303: pqcets  <inquire current element type and size>
  304: pqceco  <inquire current element content>
 
  Data Structures ---
  2  ...  phigs_description_table
  2.11 ...  default_polymarker_attributes
  2.11.2  ...  default_marker_type
  2.11.3  ...  default_marker_size_scale_factor
  2.11.4  ...  default_polymarker_colour_index
  3  ...  phigs_traversal_state_list
  3.2  ...  current_polymarker_attributes
  3.2.2  ...  current_marker_type
  3.2.3  ...  current_marker_size_scale_factor
  3.2.4  ...  current_polymarker_colour_index
  3.2.5  ...  current_marker_type_asf
  3.2.6  ...  current_marker_size_scale_factor_asf
  3.2.7  ...  current_polymarker_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.11  ...  polymarker_entry
  6.11.1  ...  polymarker_facilities
  6.11.1.1  ...  number_of_available_marker_types
  6.11.1.2  ...  list_of_available_marker_types
  6.11.1.3  ...  number_of_available_marker_sizes
  6.11.1.4  ...  nominal_marker_size
  6.11.1.5  ...  minimum_marker_size
  6.11.1.6  ...  maximum_marker_size
  7  ...  structure_state_list
  7.3  ...  list_of_structure_elements
  7.3.1  ...  graphical_primitives
  7.3.1.3  ...  polymarker_3
  7.3.1.4  ...  polymarker
  7.3.2  ...  primitive_attributes
  7.3.2.3  ...  polymarker_attributes
  7.3.2.3.1  ...  marker_type
  7.3.2.3.2  ...  marker_size_scale_factor
  7.3.2.3.3  ...  polymarker_colour_index
 
LOCAL SUBROUTINES:

PMATTR tests polymarker 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.

NDMW attempts to set marker size to a requested value, but not
near the default.

SHOWMW tests the rendering of a given marker size, and returns
the pass/fail result.  The actual marker is drawn using the
indicated marker type and color.  A polymarker of the expected
size is simulated with polyline.

RANMKT chooses a marker type at random from the three lists of
available marker types.

EXPPPM draws a polymarker with the expected marker type and
marker size.

LOCPPM draws a polymarker at the real y-location corresponding to
the integer index given in YLOC.

PMYXF returns the appropriate y-coordinate in WC for the ordered
polymarkers.



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.02.01