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 *** *** ***#F 303
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 304
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.
*** *** *** Polymarker attribute traversal binding *** *** ***#F 33 34 35
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.
*** *** Marker type: element creation *** ***#F 33
SR4. <Set marker type> creates a "set marker type" element (in the open structure), whose associated value is taken from the function's parameter.
*** *** Marker type: effect during traversal *** ***#F 33
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 264
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
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
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
SR9. When available on the workstation to which posted, marker types greater than 5 appear as specified in the ISO register.
#F
SR10. When available on the workstation to which posted, marker types less than 1 appear as specified in the implementor documentation.
*** *** Marker type: network traversal *** ***#F
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 113
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.
*** Marker size scale factor: element creation ***#F 34
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.
*** *** Marker size scale factor: effect during traversal *** ***#F 34
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 264
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
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 33 34
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.
*** *** Marker size scale factor: network traversal *** ***#F
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 113
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.
*** Polymarker colour index: element creation ***#F 35
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.
*** *** Polymarker colour index: effect during traversal *** ***#F 35
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
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
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.
*** *** Polymarker colour index: network traversal *** ***#F
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 113
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.
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.
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.