Module #04.02.02.02 : Polymarker - workstation support

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 bundled entries and other
workstation facilities for polymarker.  These entries control the
appearance of polymarkers when they are under bundled (as opposed
to individual) control.

SEMANTIC REQUIREMENTS:

*** *** ***   Polymarker index inquiry   *** *** ***


SR1. If current element is polymarker index, then <inquire current element type and size> returns the element type as polymarker index and the appropriate element size.
#F 303
#D 7.3.2.1.2
#S 4.4.4/29/5
#T P01/1

SR2. If current element is polymarker index, then <inquire current element content> returns the appropriate data for polymarker index.
#F 304
#D 7.3.2.1.2
#S 4.4.4/29/5
#T P01/2
*** *** ***   Polymarker index traversal binding   *** *** ***


SR3. Upon traversal of a "polymarker" or "polymarker 3" element, the current polymarker index in the PTSL is bound to the resulting primitive.
#F 26
#D 3.2.1 7.3.1.3 7.3.1.4
#S 4.5.2/38/3 4.5.2/40/3
#T P09/1 P09/2 P09/3 P10/1 P10/2 P11/1 P11/2 P11/3 P11/4 P11/5 P11/6
#T P11/7 P11/8 P11/9 P11/10 P12/1
*** ***   Polymarker index element creation   *** ***


SR4. <Set polymarker index> creates a "set polymarker index" element (in the open structure), whose associated value is taken from the function's parameter.
#F 26
#D 7.3.2.1.2
#S 4.4.1/23/1 4.5.2/38/3
#T P01/1 P01/2 P10/1 P10/2 P11/1 P11/2 P11/3 P11/4 P11/5 P11/6 P11/7
#T P11/8 P11/9 P11/10
*** ***   Polymarker index: effect during traversal   *** ***


SR5. Upon traversal of a "set polymarker index" element, the current polymarker index entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 26
#D 3.2.1 7.3.2.1.2
#S 4.4.1/23/1 4.5.2/38/3
#T P10/1 P10/2 P11/1 P11/2 P11/3 P11/4 P11/5 P11/6 P11/7 P11/8 P11/9
#T P11/10 P12/1

SR6. When a polymarker is displayed, if its bound polymarker index is defined on the workstation, then the indicated bundle is the source for the bundled aspects of that polymarker.
#F 26
#D 3.2.1 5.10.1 5.10.2
#S 4.5.2/38/7 4.5.2/39/7 4.5.4/43/7
#T P09/1 P09/2 P09/3 P10/1 P11/1 P11/2 P11/3 P11/4 P11/5 P11/6 P11/7
#T P11/8 P11/9 P11/10 P12/1

SR7. When a polymarker is displayed, if its bound polymarker index is undefined on the workstation, then the bundle number 1 in the polymarker bundle table is the source for the bundled aspects of that polymarker.
#F 26
#D 3.2.1 5.10.1 5.10.2
#S 4.5.2/38/7 4.5.2/39/7 4.5.2/43/3 4.5.4/43/7
#T P10/2
*** ***   Polymarker index: network traversal   *** ***


SR8. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current polymarker index of the PTSL is set to 1.
#F
#D 2.11.1 3.2.1
#S 4.4.3/26/2 4.4.3/28/1 6.3/309/1
#T P12/1

SR9. As part of the PTSL, the current polymarker 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.1
#S 4.4.3/28/1
#T P12/1
*** *** ***   Polymarker representation   *** *** ***


SR10. <Set polymarker representation> causes an entry to be defined.
#F 64
#D 5.10.1 5.10.2.1
#S 4.5.2/42/3 4.5.2/43/2
#T P02/2 P02/3 P02/6 P02/7 P02/9 P02/10

SR11. <Set polymarker representation> sets polymarker bundle's marker type, marker size scale factor, and colour index.
#F 64
#D 5.10.2
#S 4.5.2/43/2 4.5.2/42/3
#T P01/3 P02/4 P02/8 P02/11 P07/5 P07/6 P07/7 P07/8 P07/9 P07/10

SR12. <Inquire list of polymarker indices> returns the list of all defined polymarker indices.
#F 224
#D 5.10.1 5.10.2.1
#S
#T P02/1 P02/2 P02/3 P02/5 P02/6 P02/7 P02/9 P02/10 P02/12

SR13. <Inquire polymarker representation> works for all defined entries.
#F 224 225
#D 5.10.1 5.10.2.1
#S
#T P02/12

SR14. <Inquire polymarker representation> returns the polymarker bundle's marker type, marker size scale factor, and colour index as set, when type of returned values specified as SET.
#F 225
#D 5.10.2
#S 4.11/108/1
#T P01/3 P02/4 P02/8 P02/11

SR15. <Inquire polymarker representation> returns the polymarker bundle's marker type, marker size scale factor, and colour index as realized, when type of returned values specified as REALIZED.
#F 225
#D 5.10.2
#S 4.11/108/1
#T P02/5 P04/5 P06/5 P07/5 P07/6 P07/7 P07/8 P07/9 P07/10 P08/1 P08/3

SR16. <Inquire polymarker representation> returns the representation for bundle number 1, if type of returned values is REALIZED, and bundle index is undefined.
#F 224 225
#D 5.10.2
#S
#T P02/5
*** *** ***   Maximum size of bundle table   *** *** ***


SR17. <Inquire workstation state table lengths> returns the maximum size of polymarker bundle table.
#F 285
#D 6.21.2
#S
#T P03/1 P03/2

SR18. There must be at least 20 settable entries available in the polymarker bundle table.
#F 64 285
#D 5.10 6.21.2
#S 4.14/114/2 6.7/324/1
#T P03/1
*** *** ***   Predefined bundle facilities   *** *** ***


SR19. <Inquire polymarker facilities> returns the number of predefined polymarker bundle entries.
#F 264
#D 6.11.1.7
#S
#T P04/1 P04/6

SR20. <Inquire predefined polymarker representation> returns the marker type, marker size scale factor, and polymarker colour index for a predefined polymarker bundle.
#F 265
#D 6.11.2
#S
#T P04/1 P04/2 P04/3 P04/4 P04/7 P05/2 P09/1 P09/2 P09/3

SR21. Every workstation must have at least 5 predefined polymarker bundles.
#F 264 265
#D 6.11.1.7 6.11.2
#S 4.14/113/3 4.14/114/2 6.7/321/1
#T P04/6

SR22. No two of the first 5 predefined polymarker bundles have identical sets of attributes.
#F 265
#D 6.11.2
#S 4.5.2/42/3 4.14/113/3 4.14/114/2 6.7/321/1
#T P04/7

SR23. The n predefined polymarker bundles in the Workstation Description Table (WDT) are indexed as 1-n.
#F 265
#D 6.11.2
#S 6.7/321/1
#T P04/1 P05/2 #C The standard presumes this because in section 6.7 the
predefined bundles in the WDT do not mention index as a data
item, nor is there a way to get a list of these indices (<inquire
polymarker facilities> gives the number of predefined bundles,
but not a list thereof).

SR24. Immediately after <open workstation>, for each WDT predefined polymarker entry there exists a Workstation State List (WSL) polymarker entry with the same attributes, including the same polymarker index.
#F 224 225 265 3
#D 5.10.2 6.11.2
#S 4.5.2/42/3 6.6/317/1 6.7/321/1
#T P05/1 P05/2 P09/1 P09/2

SR25. Immediately after <open workstation>, the polymarker bundle table contains nothing but the entries initialized from the WDT predefined polymarker bundle table.
#F 224 225 264 3
#D 5.10.2 6.11.2
#S 4.5.2/42/3 6.6/317/1 6.7/321/1
#T P05/1
*** *** ***   Validity of predefined bundles   *** *** ***


SR26. Each predefined polymarker bundle has a marker type within the list of available marker types.
#F 264 265
#D 6.11.1.2 6.11.2.1
#S 5.12.1/232/2
#T P04/2 P04/5

SR27. Each predefined polymarker bundle has a marker size scale factor which generates a marker size within the minimum and maximum marker sizes.
#F 264 265
#D 6.11.1.4 6.11.1.5 6.11.1.6 6.11.2.2
#S 5.12.1/232/2
#T P04/3 P04/5

SR28. Each predefined polymarker bundle has a colour index within range of the predefined colour indices.
#F 265 277
#D 6.11.2.3 6.17.2.4
#S 6.7/321/1
#T P04/4 P04/5
*** *** ***   marker type support   *** *** ***


SR29. The absolute value of the number of available marker types returned from <inquire polymarker facilities> indicates the length of the list of available marker types.
#F 264
#D 6.11.1.1 6.11.1.2
#S 6.7/321/1
#T P06/1

SR30. The list of available marker types contains all registered types, and includes 1-5.
#F 264
#D 6.11.1.2
#S 4.5.4/44/2 4.14/113/3 4.14/114/2 6.7/321/1
#T P06/2

SR31. If the number of available marker types is positive, the list of available marker types contains any implementation dependent types.
#F 264
#D 6.11.1.1 6.11.1.2
#S
#T P06/3

SR32. If the number of available marker types is negative, the list of available marker types does not contain any implementation dependent types.
#F 264
#D 6.11.1.1 6.11.1.2
#S
#T P06/4

SR33. All the marker types in the list of available marker types are valid and realizable for the workstation.
#F 64 264
#D 5.10.2.2 6.11.1.1 6.11.1.2
#S
#T P06/5

SR34. Positive marker types are standard or registered; non-positive marker types are implementation-dependent.
#F 64 264
#D 5.10.2.2 6.11.1.2
#S 4.5.4/44/2
#T P06/3 P06/4

SR35. When a polymarker is displayed, if its marker type ASF is bundled, then its marker type aspect is taken from the polymarker bundle determined by the polymarker index.
#F 26 62 64
#D 3.2.1 3.2.5 5.10.2.1 5.10.2.2
#S 4.5.2/39/7 4.5.4/43/7
#T P11/1 P11/2 P11/3

SR36. 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 P11/1

SR37. 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 P11/2

SR38. 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 P11/3
*** ***   marker size scale factor support   *** ***


SR39. <Inquire polymarker facilities> describes the realizable marker sizes for a workstation type, via the number of available marker sizes, nominal marker size, minimum marker size, and maximum marker size.
#F 264
#D 6.11.1.3 6.11.1.4 6.11.1.5 6.11.1.6
#S
#T P07/1 P07/5 P07/6 P07/7 P07/8 P07/9 P07/10

SR40. The nominal marker size, minimum marker size, and maximum marker size are all positive.
#F 264
#D 6.11.1.4 6.11.1.5 6.11.1.6
#S 6.7/321/1
#T P07/2

SR41. Workstations must support at least one marker size.
#F 64 264
#D 5.10.2.3 6.11.1.3 6.11.1.4 6.11.1.5 6.11.1.6
#S 4.14/114/2 6.7/321/1
#T P07/3

SR42. Any marker size scale factor, whether or not resulting in a valid marker size for that workstation, may be specified for a polymarker bundle when invoking <set polymarker representation>.
#F 64
#D 5.10.2.3
#S
#T P07/4 P11/4 P11/5 P11/6 P11/7 P11/8

SR43. When a polymarker is displayed, if its marker size scale factor ASF is bundled, then its logical marker size is equal to the marker size scale factor determined by the polymarker index times the workstation's nominal marker size.
#F 26 62 64
#D 3.2.1 3.2.6 5.10.2.1 5.10.2.3
#S 4.5.2/39/7 4.5.4/43/7
#T P11/4 P11/5 P11/6 P11/7 P11/8

SR44. Except for marker type 1, when a polymarker is displayed, if its logical marker size is available on the workstation, then the actual marker size agrees with the logical marker size.
#F 26 62 64
#D 5.10.2.1 5.10.2.3 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/43/7 4.5.4/44/3
#T P11/4

SR45. Except for marker type 1, when a polymarker is displayed, if its logical marker size is not available on the workstation, then the actual marker size is the nearest available to the logical marker size.
#F 26 62 64
#D 5.10.2.1 5.10.2.3 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/43/7 4.5.4/44/3
#T P11/5 P11/6 P11/7

SR46. 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 26 62 64
#D 6.11.1.4 6.11.1.5 6.11.1.6
#S 4.5.4/44/3
#T P11/8
*** ***   polymarker colour index support   *** ***


SR47. Any non-negative polymarker colour index, whether or not defined for that workstation, may be specified for a polymarker bundle when invoking <set polymarker representation>.
#F 64
#D 5.10.2.4
#S
#T P08/2 P11/9 P11/10

SR48. When a polymarker is displayed, if its polymarker colour index ASF is bundled, then its polymarker colour index is taken from the polymarker bundle determined by the polymarker index.
#F 26 62 64
#D 3.2.1 3.2.7 5.10.2.1 5.10.2.4
#S 4.5.2/39/7 4.5.4/43/7
#T P08/1 P08/3 P11/9 P11/10

SR49. When a polymarker is displayed, if its polymarker colour index is available on the workstation, then the polymarker colour index is realized as itself.
#F 225 235
#D 5.10.2.1 5.10.2.4 5.15.3
#S 4.5.2/39/7 4.5.2/43/3 4.5.4/43/7 4.5.12/63/4
#T P08/1 P11/9

SR50. When a polymarker is displayed, if its polymarker colour index is undefined, then the polymarker colour index is realized as colour index 1.
#F 225 235
#D 5.10.2.1 5.10.2.4 5.15.3
#S 4.5.2/39/7 4.5.2/43/3 4.5.4/43/7 4.5.12/63/4
#T P08/3 P11/10

LOCAL DICTIONARY:

  Functions ---
  003: popwk   <open workstation>
  026: pspmi   <set polymarker index>
  062: psiasf  <set individual asf>
  064: pspmr   <set polymarker representation>
  113: pexst   <execute structure>
  224: pqepmi  <inquire list of polymarker indices>
  225: pqpmr   <inquire polymarker representation>
  235: pqeci   <inquire list of colour indices>
  264: pqpmf   <inquire polymarker facilities>
  265: pqppmr  <inquire predefined polymarker representation>
  277: pqcf    <inquire colour facilities>
  285: pqwksl  <inquire workstation state table lengths>
  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.1  ...  default_polymarker_index
  3  ...  phigs_traversal_state_list
  3.2  ...  current_polymarker_attributes
  3.2.1  ...  current_polymarker_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.10 ...  polymarker_entry
  5.10.1  ...  number_of_polymarker_bundle_table_entries
  5.10.2  ...  polymarker_bundle_table
  5.10.2.1  ...  polymarker_index
  5.10.2.2  ...  marker_type
  5.10.2.3  ...  marker_size_scale_factor
  5.10.2.4  ...  polymarker_colour_index
  5.15  ...  colour_entry
  5.15.3  ...  colour_table
  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
  6.11.1.7  ...  number_of_predefined_polymarker_indices
  6.11.2  ...  predefined_polymarker_bundle_table
  6.11.2.1  ...  marker_type
  6.11.2.2  ...  marker_size_scale_factor
  6.11.2.3  ...  polymarker_colour_index
  6.17  ...  colour_entry
  6.17.2  ...  colour_facilities
  6.17.2.4  ...  number_of_predefined_colour_indices
  6.21  ...  maximum_table_lengths
  6.21.2  ...  maximum_number_of_polymarker_bundle_table_entries
  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.1  ...  bundle_index_attributes
  7.3.2.1.2  ...  polymarker_index
 
LOCAL SUBROUTINES:

DISPMB selects a specified number of predefined bundles at random
from the polymarker bundle table which are distinct in all their
attributes.  If there are not enough completely distinct bundles,
DISPMB tries to maximize the number of different attributes.

DRWPMB draws a set of actual polymarkers using the specified bundle
values, and a set of expected polymarkers, using the attribute
values returned by <inquire predefined polymarker representation>.
It draws the expected polymarker incorrectly at a specified
position.

SHPMBW tests the rendering of a given markerwidth, and returns the
pass/fail result.

LOCPMI draws a polymarker at specified y-location.



PROGRAM 1: Simple setting and inquiring

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


PROGRAM 2: Setting entries of various kinds

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


PROGRAM 3: Polymarker bundle table length

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


PROGRAM 4: Validity of predefined polymarker bundles

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


PROGRAM 5: WSL polymarker bundles initialized properly

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


PROGRAM 6: Marker type facilities

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


PROGRAM 7: Marker size facilities

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


PROGRAM 8: Polymarker color index

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


PROGRAM 9: Appearance of predefined polymarker bundles

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


PROGRAM 10: Polymarker bundle index

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


PROGRAM 11: Appearance of bundled attributes

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


PROGRAM 12: Network inheritance and initialization of polymarker index

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

End of documentation for 04.02.02.02