DESCRIPTION: This module tests the manipulation and inquiry of the entries in the view table of the WSL and also the effect of the predefined view table in the WDT. SEMANTIC REQUIREMENTS: *** *** *** *** *** Setting view index *** *** *** *** ***#F 83
SR1. <Set view index> creates a `view index' element in the CSS for any non-negative index.
#F 303
SR2. If current element is `view index' then <inquire current element type and size> returns the element type as `view index' and the appropriate size.
#F 304
SR3. If current element is `view index' then <inquire current element content> returns the appropriate data for `view index'.
*** *** *** *** Initialization of view table *** *** *** ***#F 257
SR4. <Inquire viewing facilities> returns the number of predefined view entries.
#F 257
SR5. The number of predefined viewing entries is at least 6.
#F 258
SR6. <Inquire predefined view representation> returns the specified entry in the predefined view table.
#F 258
SR7. Entry number 0 of the WDT predefined viewing table has the following contents: the view orientation matrix and view mapping matrix are both 4x4 identity matrices; the view clipping limits are [0,1] in all three dimensions (x,y,z); and the three clipping indicators (x-y, front, and back) are all set to CLIP.
#F 217
SR8. The set of view indices in the view table of the WSL are always numbered by the integers between 0 and N-1, where N is the number of entries.
#F 3 218 258
SR9. <Open workstation> causes each requested and current entry in the WSL view table to be initialized from the corresponding entry, if one exists, in the WDT predefined view table.
#F 3 218
SR10. <Open workstation> causes each requested and current entry in the WSL view table, up to the maximum table size, for which there is no corresponding entry in the WDT predefined view table, to be initialized to the same values as entry number 0.
#F 3 218
SR11. <Open workstation> causes the `view transformation update state' for each entry in the WSL view table to be set to NOTPENDING.
*** *** *** *** Setting view representation *** *** *** ***#F 285
SR12. <Inquire workstation state table lengths> returns the maximum size of the view table.
#F 285
SR13. The maximum size of the view table is at least 6.
#F 84 85
SR14. <Set view representation 3> and <set view representation> can re-set a requested entry, other than number 0, which has been initialized by default.
#F 84 85
SR15. <Set view representation 3> and <set view representation> can re-set a user-defined requested entry.
#F 85
SR16. When <set view representation> is used to set a requested entry, the following default values are stored: a) the 3x3 matrices specified are expanded to 4x4 as follows: | a b 0 c | | a b c | | d e 0 f | replaces | d e f | | 0 0 1 0 | | g h i | | g h 0 i | b) ZMIN and ZMAX are set to 0 and 1, respectively, and c) the front and back clipping indicators are set to CLIP.
#F 218
SR17. <Inquire view representation> returns the specified current and requested entry in the view table.
*** *** *** *** Order of view table *** *** *** ***#F 217
SR18. <Inquire list of view indices> returns the ordered list of defined entries in the view table.
#F 3 217
SR19. Immediately after <open workstation> the entries in the view table are in ascending index order (0,1,2,..,N-1).
#F 217
SR20. The order of entries in the view table is the same as the order of their input priority (highest priority first).
#F 86
SR21. <Set view transformation input priority> sets the specified view entry to the next higher or lower (as specified) priority relative to the reference view entry, when these are distinct.
#F 86
SR22. <Set view transformation input priority> has no effect when the specified view entry is the same as the reference view entry.
*** *** *** *** Update control of view table *** *** *** ***#F 84 85
SR23. The requested values of the entries in the view table are those most recently set.
#F 218
SR24. <Inquire view representation> returns the `view transformation update state' of a specified entry in the view table as PENDING or NOTPENDING.
#F 218
SR25. The `view transformation update state' of an entry is PENDING if and only if the current values of that entry in the view table have not yet been copied from the requested values.
#F 218
SR26. The `view transformation update state' of an entry is NOTPENDING if and only if the current values of that entry in the view table have been copied from the requested values.
#F 218 221
SR27. If the `view transformation update state' of an entry is PENDING, then the `state of visual representation' for that workstation is DEFERRED.
#F 218 221
SR28. If the `state of visual representation' for a workstation is CORRECT, then the `view transformation update state' of all entries is NOTPENDING.
#F 218
SR29. For workstations of category INPUT, the `view transformation update state' of all entries is NOTPENDING.
LOCAL DICTIONARY:
Functions --- 003: popwk <open workstation> 083: psvwi <set view index> 084: psvwr3 <set view representation 3> 085: psvwr <set view representation> 086: psvtip <set view transformation input priority> 217: pqevwi <inquire list of view indices> 218: pqvwr <inquire view representation> 221: pqdus <inquire display update state> 257: pqvwf <inquire view facilities> 258: pqpvwr <inquire predefined view representation> 285: pqwksl <inquire workstation state table lengths> 303: pqcets <inquire current element type and size> 304: pqceco <inquire current element content> Data Structures --- 5 ... workstation_state_list 5.4 ... view_table 5.4.1 ... number_of_view_table_entries 5.4.2 ... view_table_ordered_by_input_priority 5.4.2.1 ... view_index 5.4.2.2 ... view_transformation_update_state 5.4.2.3 ... current_view 5.4.2.4 ... requested_view 5.4.2.4.1 ... requested_view_orientation_matrix 5.4.2.4.2 ... requested_view_mapping_matrix 5.4.2.4.3 ... requested_view_clipping_limits 5.4.2.4.4 ... requested_x_y_clipping_indicator 5.4.2.4.5 ... requested_back_clipping_indicator 5.4.2.4.6 ... requested_front_clipping_indicator 5.8 ... update_status 5.8.4 ... state_of_visual_representation 6 ... workstation_description_table 6.6 ... predefined_view_table 6.6.1 ... number_of_predefined_view_indices 6.6.2 ... table_of_predefined_view_representations 6.6.2.1 ... view_orientation_matrix 6.6.2.2 ... view_mapping_matrix 6.6.2.3 ... view_clipping_limits 6.6.2.4 ... x_y_clipping_indicator 6.6.2.5 ... back_clipping_indicator 6.6.2.6 ... front_clipping_indicator 6.21 ... maximum_table_lengths 6.21.8 ... maximum_number_of_view_table_indices 7 ... structure_state_list 7.3 ... list_of_structure_elements 7.3.2 ... primitive_attributes 7.3.2.10 ... view_index LOCAL SUBROUTINES: TSTVIP is used to compute the expected result from <set view transformation input priority> and compare this with the actual results.
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.