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 *** *** ***#F 303
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 304
SR2. If current element is polymarker index, then <inquire current element content> returns the appropriate data for polymarker index.
*** *** *** Polymarker index traversal binding *** *** ***#F 26
SR3. Upon traversal of a "polymarker" or "polymarker 3" element, the current polymarker index in the PTSL is bound to the resulting primitive.
*** *** Polymarker index element creation *** ***#F 26
SR4. <Set polymarker index> creates a "set polymarker index" element (in the open structure), whose associated value is taken from the function's parameter.
*** *** Polymarker index: effect during traversal *** ***#F 26
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
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
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.
*** *** Polymarker index: network traversal *** ***#F
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 113
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.
*** *** *** Polymarker representation *** *** ***#F 64
SR10. <Set polymarker representation> causes an entry to be defined.
#F 64
SR11. <Set polymarker representation> sets polymarker bundle's marker type, marker size scale factor, and colour index.
#F 224
SR12. <Inquire list of polymarker indices> returns the list of all defined polymarker indices.
#F 224 225
SR13. <Inquire polymarker representation> works for all defined entries.
#F 225
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
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 224 225
SR16. <Inquire polymarker representation> returns the representation for bundle number 1, if type of returned values is REALIZED, and bundle index is undefined.
*** *** *** Maximum size of bundle table *** *** ***#F 285
SR17. <Inquire workstation state table lengths> returns the maximum size of polymarker bundle table.
#F 64 285
SR18. There must be at least 20 settable entries available in the polymarker bundle table.
*** *** *** Predefined bundle facilities *** *** ***#F 264
SR19. <Inquire polymarker facilities> returns the number of predefined polymarker bundle entries.
#F 265
SR20. <Inquire predefined polymarker representation> returns the marker type, marker size scale factor, and polymarker colour index for a predefined polymarker bundle.
#F 264 265
SR21. Every workstation must have at least 5 predefined polymarker bundles.
#F 265
SR22. No two of the first 5 predefined polymarker bundles have identical sets of attributes.
#F 265
SR23. The n predefined polymarker bundles in the Workstation Description Table (WDT) are indexed as 1-n.
#F 224 225 265 3
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 264 3
SR25. Immediately after <open workstation>, the polymarker bundle table contains nothing but the entries initialized from the WDT predefined polymarker bundle table.
*** *** *** Validity of predefined bundles *** *** ***#F 264 265
SR26. Each predefined polymarker bundle has a marker type within the list of available marker types.
#F 264 265
SR27. Each predefined polymarker bundle has a marker size scale factor which generates a marker size within the minimum and maximum marker sizes.
#F 265 277
SR28. Each predefined polymarker bundle has a colour index within range of the predefined colour indices.
*** *** *** marker type support *** *** ***#F 264
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
SR30. The list of available marker types contains all registered types, and includes 1-5.
#F 264
SR31. If the number of available marker types is positive, the list of available marker types contains any implementation dependent types.
#F 264
SR32. If the number of available marker types is negative, the list of available marker types does not contain any implementation dependent types.
#F 64 264
SR33. All the marker types in the list of available marker types are valid and realizable for the workstation.
#F 64 264
SR34. Positive marker types are standard or registered; non-positive marker types are implementation-dependent.
#F 26 62 64
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
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
SR37. When available on the workstation to which posted, marker types greater than 5 appear as specified in the ISO register.
#F
SR38. When available on the workstation to which posted, marker types less than 1 appear as specified in the implementor documentation.
*** *** marker size scale factor support *** ***#F 264
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
SR40. The nominal marker size, minimum marker size, and maximum marker size are all positive.
#F 64 264
SR41. Workstations must support at least one marker size.
#F 64
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 26 62 64
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
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
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
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.
*** *** polymarker colour index support *** ***#F 64
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 26 62 64
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 225 235
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
SR50. When a polymarker is displayed, if its polymarker colour index is undefined, then the polymarker colour index is realized as colour index 1.
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.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.