Module #04.03.04.01 : Namesets

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 ability of the programmer to
control a nameset in the CSS and also tests that the provided
facilities meet the minimum simulation requirements.  Namesets
affect the eligibility of a primitive for highlighting,
invisibility, pickability, and incremental spatial search.

SEMANTIC REQUIREMENTS:

*** *** *** *** ***   Namesets *** *** *** *** ***


SR1. <Add names to set> creates an `add names to set' element in the CSS.
#F 60
#D 7.3.2.7.1
#S 4.4.1/23/1 4.5.15/64/7
#T P01/1 P01/2 P02/2 P03/1 P03/2 P03/3 P03/4 P03/5 P03/6 P03/7 P04/1

SR2. If current element is `add names to set' then <inquire current element type and size> returns the element type as `add names to set' and the appropriate element size.
#F 303
#D 7.3.2.7.1
#S 4.4.4/29/5
#T P01/1

SR3. If current element is `add names to set' then <inquire current element content> returns the appropriate data for `add names to set'.
#F 304
#D 7.3.2.7.1
#S 4.4.4/29/5
#T P01/2 P02/2

SR4. <Remove names from set> creates a `remove names from set' element in the CSS.
#F 61
#D 7.3.2.7.2
#S 4.4.1/23/1 4.5.15/64/7
#T P01/3 P01/4 P02/3 P03/1 P03/2 P03/3 P03/4 P03/5 P03/6 P03/8 P04/1

SR5. If current element is `remove names from set' then <inquire current element type and size> returns the element type as `remove names from set' and the appropriate element size.
#F 303
#D 7.3.2.7.2
#S 4.4.4/29/5
#T P01/3

SR6. If current element is `remove names from set' then <inquire current element content> returns the appropriate data for `remove names from set'.
#F 304
#D 7.3.2.7.2
#S 4.4.4/29/5
#T P01/4 P02/3

SR7. <Inquire PHIGS facilities> returns the number of available names for namesets.
#F 205
#D 2.5
#S 4.5.15/65/4
#T P02/1

SR8. The number of available names for namesets is at least 64.
#F 205
#D 2.5
#S 4.5.15/65/4
#T P02/1 P02/3

SR9. The range of accessible names for use by <add names to set> and <remove names from set> is at least 0-63.
#F 60 61
#D 7.3.2.7.1 7.3.2.7.2 2.5
#S 4.5.15/65/4
#T P01/2 P01/4

SR10. The range of valid names for use by <add names to set> and <remove names from set> consists of the consecutive integers from 0 to the implementation dependent `number of available names for namesets' - 1.
#F 60 61
#D 7.3.2.7.1 7.3.2.7.2 2.5
#S
#T P02/2 P02/3 P03/7 P03/8 #C See defect 9592-1/0025 and FORTRAN BINDING: section 5, description
of NM data type.

SR11. At the start of a top-level traversal of a structure network (not a sub-traversal initiated by `execute structure'), the `current name set' of the PTSL is set to the null set.
#F
#D 2.22 3.11
#S 6.3/310/1 6.4/313/1
#T P03/1 P03/2 P03/3 P03/4 P03/5 P03/6 P03/7 P03/8 P04/1

SR12. During traversal, an `add names to set' element changes the `current name set' to become the union of its former value and the specified valid names.
#F 60
#D 3.11 7.3.2.7.1
#S 4.5.15/64/7 4.5.15/65/2
#T P03/2 P03/3 P03/4 P03/5 P03/6 P03/7 P04/1

SR13. During traversal, a `remove names from set' element changes the `current name set' to become the set difference of its former value minus the specified valid names.
#F 61
#D 3.11 7.3.2.7.2
#S 4.5.15/64/7 4.5.15/65/2
#T P03/2 P03/3 P03/4 P03/5 P03/6 P03/8 P04/1

SR14. As part of the PHIGS traversal state list, the `current name set' is saved by `execute structure' and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.11
#S 4.4.3/28/1
#T P03/5 P03/6 P04/1

SR15. Upon traversal of any element that generates an output primitive, the `current name set' of the PTSL is bound to the resulting primitive.
#F 9-24 60 61
#D 3.11 7.3.1.1
#S 4.5.2/38/3 4.5.2/40/3
#T P03/1 P03/2 P03/3 P03/4 P03/5 P03/6 P03/7 P03/8 P04/1

SR16. During traversal, invalid names specified by an `add names to set' or `remove names from set' element are ignored.
#F 60 61
#D 3.11 7.3.2.7.1 7.3.2.7.2
#S 4.5.15/64/7 4.5.15/65/2
#T P03/7 P03/8 #C See defect 9592-1/0025.

LOCAL DICTIONARY:

  Functions ---
  009: ppl3    <polyline 3>
  010: ppl     <polyline>
  011: ppm3    <polymarker 3>
  012: ppm     <polymarker>
  013: ptx3    <text 3>
  014: ptx     <text>
  015: patr3   <annotation text relative 3>
  016: patr    <annotation text relative>
  017: pfa3    <fill area 3>
  018: pfa     <fill area>
  019: pfas3   <fill area set 3>
  020: pfas    <fill area set>
  021: pca3    <cell array 3>
  022: pca     <cell array>
  023: pgdp3   <generalized drawing primitive 3>
  024: pgdp    <generalized drawing primitive>
  060: pads    <add names to set>
  061: pres    <remove names from set>
  113: pexst   <execute structure>
  205: pqphf   <inquire phigs facilities>
  303: pqcets  <inquire current element type and size>
  304: pqceco  <inquire current element content>
 
  Data Structures ---
  2  ...  phigs_description_table
  2.5  ...  number_of_available_names_for_name_sets
  2.22  ...  default_name_set
  3  ...  phigs_traversal_state_list
  3.11 ...  current_name_set
  7  ...  structure_state_list
  7.3  ...  list_of_structure_elements
  7.3.1  ...  graphical_primitives
  7.3.1.1  ...  polyline_3
  7.3.2  ...  primitive_attributes
  7.3.2.7  ...  nameset_attributes
  7.3.2.7.1  ...  add_names_to_set
  7.3.2.7.2  ...  remove_names_from_set
 
SEMANTIC CROSS-REFERENCES:
  02.03.03/SR20

LOCAL SUBROUTINES:
CURNMS checks the current nameset by performing a conceptual
traversal with <incremental spatial search>, and setting its
filters so as to accept only the expected value.



PROGRAM 1: Simple setting and inquiring

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


PROGRAM 2: Nameset facilities

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


PROGRAM 3: Current nameset during conceptual traversal

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


PROGRAM 4: Network inheritance and initialization

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

End of documentation for 04.03.04.01