DESCRIPTION: This module tests the bundled entries and other workstation facilities for polyline. These entries control the appearance of polylines when they are under bundled (as opposed to individual) control. SEMANTIC REQUIREMENTS: *** *** *** *** Polyline index inquiry *** *** *** ***#F 303
SR1. If current element is polyline index then <inquire current element type and size> returns the element type as polyline index and the appropriate element size.
#F 304
SR2. If current element is polyline index then <inquire current element content> returns the appropriate data for polyline index.
*** *** *** Polyline index traversal binding *** *** ***#F 25
SR3. Upon traversal of a "polyline" or "polyline 3" element, the current polyline index in the PTSL is bound to the resulting primitive.
*** *** *** Polyline index: element creation *** *** ***#F 25
SR4. <Set polyline index> creates a "set polyline index" element, (in the open structure), whose associated value is taken from the function's parameter.
*** *** Polyline index: effect during traversal *** ***#F 25
SR5. Upon traversal of a "set polyline index" element, the current polyline index entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 25
SR6. When a polyline is displayed, if its bound polyline index is defined on the workstation, then the indicated bundle is the source for the bundled aspects of that polyline.
#F 25
SR7. When a polyline is displayed, if its bound polyline index is undefined on the workstation, then bundle number 1 in the polyline bundle table is the source for the bundled aspects of that polyline.
*** *** *** Polyline index: network traversal *** *** ***#F
SR8. At the start of a top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current polyline index of the PTSL is set to 1.
#F 113
SR9. As part of the PTSL, the current polyline 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.
*** *** *** Polyline Representation *** *** ***#F 63
SR10. <Set polyline representation> causes an entry to be defined.
#F 63
SR11. <Set polyline representation> sets the polyline bundle's linetype, linewidth scale factor, and colour index.
#F 222
SR12. <Inquire list of polyline indices> returns the list of all defined polyline indices.
#F 222 223
SR13. <Inquire polyline representation> works for all defined entries.
#F 223
SR14. <Inquire polyline representation> returns the polyline bundle's linetype, linewidth scale factor, and colour index as set, when type of returned values specified as SET.
#F 223
SR15. <Inquire polyline representation> returns the polyline bundle's linetype, linewidth scale factor, and colour index as realized, when type of returned values specified as REALIZED.
#F 222 223
SR16. <Inquire polyline representation> returns 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 polyline bundle table.
#F 63 285
SR18. There must be at least 20 settable entries available in the polyline bundle table.
*** *** *** Predefined bundle facilities *** *** ***#F 262
SR19. <Inquire polyline facilities> returns the number of predefined polyline bundle entries.
#F 263
SR20. <Inquire predefined polyline representation> returns the linetype, linewidth scale factor, and polyline colour index for a predefined polyline bundle.
#F 262 263
SR21. Every workstation must have at least 5 predefined polyline bundles.
#F 263
SR22. No two of the first 5 predefined polyline bundles have identical sets of attributes.
#F 263
SR23. The n predefined polyline bundles in the Workstation Description Table (WDT) are indexed as 1-n.
#F 222 223 263 3
SR24. Immediately after <open workstation>, for each WDT predefined polyline entry there exists a Workstation State List (WSL) polyline entry with the same attributes, including the same polyline index.
#F 222 223 262 3
SR25. Immediately after <open workstation>, the polyline bundle table contains nothing but the entries initialized from the WDT predefined polyline bundle table.
*** *** *** Validity of predefined bundles *** *** ***#F 262 263
SR26. Each predefined polyline bundle has a linetype within the list of available linetypes.
#F 262 263
SR27. Each predefined polyline bundle has a linewidth scale factor which generates a linewidth within the minimum and maximum linewidths.
#F 263 277
SR28. Each predefined polyline bundle has a colour index within range of the predefined colour indices.
*** *** *** linetype support *** *** ***#F 262
SR29. The absolute value of the number of available linetypes returned from <inquire polyline facilities> indicates the length of the list of available linetypes.
#F 262
SR30. The list of available linetypes contains all registered types, and includes 1-4.
#F 262
SR31. If the number of available linetypes is positive, the list of available linetypes contains any implementation-dependent types.
#F 262
SR32. If the number of available linetypes is negative, the list of available linetypes does not contain any implementation dependent types.
#F 63 262
SR33. All the linetypes in the list of available linetypes are valid and realizable for the workstation.
#F 63 262
SR34. Positive linetypes are standard or registered; non-positive linetypes are implementation-dependent.
#F 25 62 63
SR35. When a polyline is displayed, if its linetype ASF is bundled, then its linetype aspect is taken from the polyline bundle determined by the polyline index.
#F
SR36. When available on the workstation to which posted, linetypes 1 through 4 appear as solid, dashed, dotted, and dashed-dotted lines, respectively.
#F
SR37. When available on the workstation to which posted, linetypes greater than 4 appear as specified in the ISO register.
#F
SR38. When available on the workstation to which posted, linetypes less than 1 appear as specified in the implementor documentation.
*** *** *** linewidth scale factor support *** *** ***#F 262
SR39. <Inquire polyline facilities> describes the realizable linewidths for a workstation type, via the number of available linewidths, nominal linewidth, minimum linewidth, and maximum linewidth.
#F 262
SR40. The nominal linewidth, minimum linewidth, and maximum linewidth are all positive.
#F 63 262
SR41. Workstations must support at least one linewidth.
#F 63
SR42. Any linewidth scale factor, whether or not resulting in a valid linewidth for that workstation, may be specified for a polyline bundle when invoking <set polyline representation>.
#F 25 62 63
SR43. When a polyline is displayed, if its linewidth scale factor ASF is bundled, then its logical linewidth is equal to the linewidth scale factor determined by the polyline index times the workstation's nominal linewidth.
#F 25 62 63
SR44. When a polyline is displayed, if its logical linewidth is available on the workstation, then the actual linewidth agrees with the logical linewidth.
#F 25 62 63
SR45. When a polyline is displayed, if its logical linewidth is not available on the workstation, then the actual linewidth is the nearest available to the logical linewidth.
*** *** *** polyline colour index support *** *** ***#F 63
SR46. Any non-negative polyline colour index, whether or not defined for that workstation, may be specified for a polyline bundle when invoking <set polyline representation>.
#F 25 62 63
SR47. When a polyline is displayed, if its polyline colour index ASF is bundled, then its polyline colour index is taken from the polyline bundle determined by the polyline index.
#F 223 235
SR48. When a polyline is displayed, if its polyline colour index is available on the workstation, then the polyline colour index is realized as itself.
#F 223 235
SR49. When a polyline is displayed, if its polyline colour index is undefined, then the polyline colour index is realized as colour index 1.
LOCAL DICTIONARY:
Functions --- 003: popwk <open workstation> 025: pspli <set polyline index> 062: psiasf <set individual asf> 063: psplr <set polyline representation> 113: pexst <execute structure> 222: pqepli <inquire list of polyline indices> 223: pqplr <inquire polyline representation> 235: pqeci <inquire list of colour indices> 262: pqplf <inquire polyline facilities> 263: pqpplr <inquire predefined polyline 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.10 ... default_polyline_attributes 2.10.1 ... default_polyline_index 3 ... phigs_traversal_state_list 3.1 ... current_polyline_attributes 3.1.1 ... current_polyline_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.9 ... polyline_entry 5.9.1 ... number_of_polyline_bundle_table_entries 5.9.2 ... polyline_bundle_table 5.9.2.1 ... polyline_index 5.9.2.2 ... linetype 5.9.2.3 ... linewidth_scale_factor 5.9.2.4 ... polyline_colour_index 5.15 ... colour_entry 5.15.3 ... colour_table 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 6.10.1.7 ... number_of_predefined_polyline_indices 6.10.2 ... predefined_polyline_bundle_table 6.10.2.1 ... linetype 6.10.2.2 ... linewidth_scale_factor 6.10.2.3 ... polyline_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.1 ... maximum_number_of_polyline_bundle_table_entries 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.1 ... bundle_index_attributes 7.3.2.1.1 ... polyline_index LOCAL SUBROUTINES: DISPLB selects a specified number of predefined bundles at random from the polyline bundle table which are distinct in all their attributes. If there are not enough completely distinct bundles, DISPLB tries to maximize the number of different attributes. DRWPLB draws a set of actual polylines using the specified bundle values, and a set of expected polylines, using the attribute values returned by <inquire predefined polyline representation>. It draws the expected polyline incorrectly at a specified position. SHPLBW tests the rendering of a given linewidth, and returns the pass/fail result.
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.