Module #04.02.05.01 : Fill area and fill area set - individual attributes

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 individual fill area and fill
area set attributes.  These values control the appearance of fill
areas when they are under individual (as opposed to bundled)
control.

SEMANTIC REQUIREMENTS:

*** *** ***   Fill area attribute inquiry   *** *** ***


SR1. If current element is interior style, interior style index, interior colour index, edge flag, edgetype, edgewidth scale factor, edge colour index, pattern size, pattern reference point, or pattern reference point and vectors, then <inquire current element type and size> returns the appropriate element type and size.
#F 303
#D 7.3.2.6.1 7.3.2.6.2 7.3.2.6.3 7.3.2.6.4 7.3.2.6.5 7.3.2.6.6
#D 7.3.2.6.7 7.3.2.6.8 7.3.2.6.9 7.3.2.6.10
#S 4.4.4/29/5
#T P01/1 P01/3 P01/5 P01/7 P01/9 P01/11 P01/13 P01/15 P01/17 P01/19

SR2. If current element is interior style, interior style index, interior colour index, edge flag, edgetype, edgewidth scale factor, edge colour index, pattern size, pattern reference point, or pattern reference point and vectors, then <inquire current element content> returns the associated value for that element.
#F 304
#D 7.3.2.6.1 7.3.2.6.2 7.3.2.6.3 7.3.2.6.4 7.3.2.6.5 7.3.2.6.6
#D 7.3.2.6.7 7.3.2.6.8 7.3.2.6.9 7.3.2.6.10
#S 4.4.4/29/5
#T P01/2 P01/4 P01/6 P01/8 P01/10 P01/12 P01/14 P01/16 P01/18 P01/20
*** *** ***   Fill area attribute traversal binding   *** *** ***


SR3. Upon traversal of a "fill area" or "fill area 3" element, the current interior style, interior style index, interior colour index, pattern size, pattern reference point and pattern reference vectors in the PTSL are bound to the resulting primitive.
#F 50 51 52 57 58 59
#D 3.5.2 3.5.3 3.5.4 3.7.1 3.7.2 3.7.3 7.3.1.9 7.3.1.10
#S 4.5.2/38/3 4.5.2/41/3
#T P02/1 P02/2 P02/3 P02/4 P02/7 P02/8 P02/9 P02/10 P02/11 P04/1 P04/2
#T P04/3 P04/4 P04/5 P05/1 P05/2 P05/3 P05/4 P05/5 P05/6 P05/7 P05/8
#T P05/9

SR4. Upon traversal of a "fill area set" or "fill area set 3" element, the current interior style, interior style index, interior colour index, edge flag, edgetype, edgewidth scale factor, edge colour index, pattern size, pattern reference point and pattern reference vectors in the PTSL are bound to the resulting primitive.
#F 50 51 52 53 54 55 56 57 58 59
#D 3.5.2 3.5.3 3.5.4 3.6.2 3.6.3 3.6.4 3.6.5 3.7.1 3.7.2 3.7.3
#D 7.3.1.11 7.3.1.12
#S 4.5.2/38/3 4.5.2/41/4
#T P02/5 P02/8 P02/9 P02/10 P02/11 P03/1 P03/2 P03/3 P03/4 P03/5 P03/6
#T P03/8 P03/9 P03/10 P03/11 P03/12 P03/13 P04/1 P04/2 P04/3 P04/4
#T P04/5 P05/1 P05/2 P05/3 P05/4 P05/5 P05/6 P05/7 P05/8 P05/9 #C Fill area set uses the same interior and pattern attributes as
fill area.
*** ***   Interior style: element creation   *** ***


SR5. <Set interior style> creates a "set interior style" element (in the open structure), whose associated value is taken from the function's parameter.
#F 50
#D 7.3.2.6.1
#S 4.4.1/23/1 4.5.2/38/3
#T P01/1 P01/2 P02/1 P02/2 P02/3 P02/4 P02/5 P02/7 P02/8 P02/9

SR6. The only valid values for interior style are: HOLLOW, SOLID, PATTERN, HATCH, and EMPTY.
#F 50
#D 6.14.1.1 6.14.1.2
#S 4.5.8/58/3
#T P01/2 P02/1 P02/2 P02/3 P02/9
*** ***   Interior style: effect during traversal   *** ***


SR7. Upon traversal of a "set interior style" element, the current interior style entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 50
#D 3.5.2 7.3.2.6.1
#S 4.5.2/38/3
#T P02/1 P02/2 P02/3 P02/4 P02/5 P02/7 P02/8 P02/9 P05/1

SR8. When a fill area or fill area set is displayed, if its bound interior style is available on the workstation and its bound interior style ASF is INDIVIDUAL, then that interior style is used for the interior of the primitive.
#F 50 270
#D 3.5.2 3.5.5 6.14.1.1 6.14.1.2
#S 4.5.2/39/7 4.5.8/58/3
#T P02/1 P02/3 P02/4 P02/5 P02/7 P02/8 P02/9 P05/1

SR9. When a fill area or fill area set is displayed, if its bound interior style is not available on the workstation and its bound interior style ASF is INDIVIDUAL, then interior style HOLLOW is used for the interior of the primitive.
#F 50 270
#D 3.5.2 3.5.5 6.14.1.1 6.14.1.2
#S 4.5.2/39/7
#T P02/2

SR10. For interior style HOLLOW, if the bound interior colour index ASF is INDIVIDUAL, then the interior of the area is not filled, but the bounding polyline is drawn with its colour dependent on the current interior colour index.
#F 50 52
#D 3.5.2 3.5.4 3.5.7
#S 4.5.1/34/1 4.5.2/39/7 4.5.8/58/3
#T P02/1 P02/2 P02/3 P02/10 P02/11 P03/2 #C If the interior colour index is defined on the workstation,
the colour of the bounding polyline will agree with the realized
colour for that indexed entry in the colour table; otherwise, the
realized colour for entry #1 is used. See SRs below for interior
colour index.

SR11. For interior style HOLLOW, the linetype and linewidth of the bounding polyline appear as specified in the implementor's documentation.
#F
#D 3.5.2
#S 4.1.1/15/1 4.5.8/58/3
#T P02/3

SR12. For interior style EMPTY, the interior of the fill area is not filled and no bounding polyline is drawn.
#F 50
#D 3.5.2
#S 4.5.8/58/3
#T P02/1 #C Fill area primitives displayed with interior style EMPTY are
not visible, nor are fill area sets without edges.

SR13. For interior style SOLID, if the bound interior colour index ASF is INDIVIDUAL, then the interior of the polygonal area is uniformally filled with its colour dependent on the current interior colour index.
#F 50 52
#D 3.5.2 3.5.4 3.5.7
#S 4.5.1/34/1 4.5.2/39/7 4.5.8/58/3
#T P02/1 P02/10 P02/11 #C If the interior colour index is defined on the workstation,
the colour of the interior will agree with the realized colour
for that indexed entry in the colour table; otherwise, the
realized colour for entry #1 is used. See SRs below on interior
colour index.

SR14. For interior style HATCH, if the bound interior colour index and interior style index ASFs are INDIVIDUAL, then the interior of the polygonal area is filled with a hatch style dependent on the current interior style index and its colour dependent on the current interior colour index.
#F 50 51 52
#D 3.5.2 3.5.3 3.5.4 3.5.6 3.5.7
#S 4.5.1/34/1 4.5.2/39/7 4.5.8/58/3
#T P02/1 P02/4 P02/5 P02/7 P02/10 P02/11 #C If the interior colour index and the interior style index are
defined on the workstation, the colour (style) of the hatches
will agree with the realized colour (style) for that indexed
entry in the colour (hatch) table; otherwise, the realized colour
(style) for entry #1 is used. See SRs below for interior colour
index and interior style index.

SR15. For interior style PATTERN, it the bound interior style index ASF is INDIVIDUAL, then the interior of the polygonal area is filled with a pattern dependent on the interior style index.
#F 50 51
#D 3.5.2 3.5.3 3.5.6
#S 4.5.1/34/1 4.5.2/39/7 4.5.8/58/3
#T P02/1 P02/8 P02/9
#X 04.02.05.04
#C See SRs for interior style index.  As usual, entry #1 is used
when the requested entry is unavailable.

*** ***   Interior style: network traversal   *** ***


SR16. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current interior style of the PTSL is set to HOLLOW.
#F
#D 2.14.2 3.5.2
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P05/1

SR17. As part of the PTSL, the current interior style 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.
#F 113
#D 3.5.2
#S 4.4.3/28/1
#T P05/1
*** ***   Interior style index: element creation   *** ***


SR18. <Set interior style index> creates a "set interior style index" element (in the open structure), whose associated value is taken from the function's parameter.
#F 51
#D 7.3.2.6.2
#S 4.4.1/23/1 4.5.2/38/3
#T P01/3 P01/4 P02/4 P02/5 P02/7 P02/8 P02/9
*** ***   Interior style index: effect during traversal   *** ***


SR19. Upon traversal of a "set interior style index" element, the current interior style index entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 51
#D 3.5.3 7.3.2.6.2
#S 4.5.2/38/3
#T P02/4 P02/5 P02/7 P02/8 P02/9 P05/2 P05/3

SR20. When a fill area or fill area set is displayed, if its bound interior style index is available on the workstation and its bound interior style index ASF is INDIVIDUAL, then that interior style index is used.
#F 51 232 233 270
#D 3.5.3 3.5.6 5.14.2.1 6.14.1.3 6.14.1.4
#S 4.5.2/39/7 4.5.8/58/3 4.5.8/61/3
#T P02/4 P02/5 P02/8 P05/2 P05/3
#X 04.02.05.04
#C Interior style index only applies to HATCH and PATTERN
interior styles.


SR21. When a fill area or fill area set is displayed, if its bound interior style index is not available on the workstation and its bound interior style index ASF is INDIVIDUAL, then interior style index entry number 1 is used when present on the workstation.
#F 51 232 270
#D 3.5.3 3.5.6 5.14.2 6.14.1.3 6.14.1.4
#S 4.5.2/39/7 4.5.2/43/3
#T P02/7 P02/9
#X 04.02.05.04
#C Pattern index #1 is always present, but hatch style #1 may not
be. Effect requesting unavailable hatch style is workstation
dependent when hatch style #1 is not supported.


SR22. When available on the workstation to which posted, the hatch styles identified by indices greater than 0 appear as specified in the ISO register.
#F
#D 6.14.1.3 6.14.1.4
#S 4.1.2/15/2 4.5.8/58/3 4.5.8/61/3 6.7/322/1
#T P02/4

SR23. When available on the workstation to which posted, the hatch styles identified by indices less than 1 appear as specified in the implementor documentation.
#F
#D 6.14.1.3 6.14.1.4
#S 4.1.1/15/1 4.5.8/58/3 4.5.8/62/1 6.7/322/1
#T P02/5 P02/6
*** ***   Interior style index: network traversal   *** ***


SR24. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current interior style index of the PTSL is set 1.
#F
#D 2.14.3 3.5.3
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P05/2 P05/3

SR25. As part of the PTSL, the current interior style index is saved (but not changed) by execute structure and then, upon completion ofthe sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.5.3
#S 4.4.3/28/1
#T P05/2 P05/3
***   Interior colour index: element creation   ***


SR26. <Set interior colour index> creates a "set interior colour index" element (in the open structure), whose associated value is taken from the function's parameter.
#F 52
#D 7.3.2.6.3
#S 4.4.1/23/1 4.5.2/38/3
#T P01/5 P01/6 P02/10 P02/11
*** ***   Interior colour index: effect during traversal   *** ***


SR27. Upon traversal of a "set interior colour index" element, the current interior colour index entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 52
#D 3.5.4 7.3.2.6.3
#S 4.5.2/38/3
#T P02/10 P02/11 P05/8

SR28. When a fill area or fill area set is displayed, if its bound interior colour index is defined on the workstation and its bound interior colour index ASF is INDIVIDUAL, then the interior colour index is realized as itself.
#F 52
#D 3.5.4 3.5.7 5.15.3.1 5.15.3.2
#S 4.5.2/39/7 4.5.12/63/4
#T P02/10 P05/8

SR29. When a fill area or fill area set is displayed, if its bound interior colour index is not defined on the workstation and its bound interior colour index ASF is INDIVIDUAL, then the interior colour index is realized as number 1.
#F 52
#D 3.5.4 3.5.7 5.15.3.1 5.15.3.2
#S 4.5.2/39/7 4.5.2/43/3
#T P02/11
*** ***   Interior colour index: network traversal   *** ***


SR30. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current interior colour index of the PTSL is set to 1.
#F
#D 2.14.4 3.5.4
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P05/8

SR31. As part of the PTSL, the current interior 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.
#F 113
#D 3.5.4
#S 4.4.3/28/1
#T P05/8
***   Edge flag: element creation   ***


SR32. <Set edge flag> creates a "set edge flag" element (in the open structure), whose associated value is taken from the function's parameter.
#F 53
#D 7.3.2.6.4
#S 4.4.1/23/1 4.5.2/38/3
#T P01/13 P01/14 P03/1 P03/2

SR33. The valid values for edge flag in <set edge flag> are: OFF or ON.
#F 53
#D 7.3.2.6.4
#S 4.5.9/62/5
#T P01/14 P03/1
*** ***   Edge flag: effect during traversal   *** ***


SR34. Upon traversal of a "set edge flag" element, the current edge flag entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 53
#D 3.6.2 7.3.2.6.4
#S 4.5.2/38/3
#T P03/1 P03/2 P05/4

SR35. When a fill area set is displayed, if its bound edge flag ASF is INDIVIDUAL, then the bound edge flag is used when displaying the edges of fill area sets.
#F 53
#D 3.6.2 3.6.6
#S 4.5.2/39/7 4.5.9/62/5
#T P03/1 P03/2 P05/4

SR36. If the edge flag aspect is ON, then the edges of fill area sets are drawn; otherwise, they are not.
#F 53
#D 3.6.2
#S 4.5.9/62/5
#T P03/1 P03/2 P03/3 P03/4 P03/5 P03/6 P03/8 P03/9 P03/10 P03/11 P03/12
#T P03/13 P05/4

SR37. The edges of fill area sets are drawn on top of the interior.
#F
#D
#S 4.5.9/62/6 4.5.9/62/9
#T P03/2 #C Conceptually, the edges and interior are disjoint; however, in
practice they may overlap. For HOLLOW interior style, the
bounding polyline may be visible between gaps of non-solid
edgetypes or around the rendering of the edge.
*** ***   Edge flag : network traversal   *** ***


SR38. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current edge flag of the PTSL is set to OFF.
#F
#D 2.15.2 3.6.2
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P05/4

SR39. As part of the PTSL, the current edge flag 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.
#F 113
#D 3.6.2
#S 4.4.3/28/1
#T P05/4
*** ***   Edgetype: element creation   *** ***


SR40. <Set edgetype> creates a "set edgetype" element (in the open structure), whose associated value is taken from the function's parameter.
#F 54
#D 7.3.2.6.5
#S 4.4.1/23/1 4.5.2/38/3
#T P01/15 P01/16 P03/3 P03/4 P03/5 P03/6
*** ***   Edgetype: effect during traversal   *** ***


SR41. Upon traversal of a "set edgetype" element, the current edgetype entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 54
#D 3.6.3 7.3.2.6.5
#S 4.5.2/38/3
#T P03/3 P03/4 P03/5 P03/6 P05/5

SR42. When a fill area set is displayed, if its bound edgetype is available on the workstation and its bound edgetype ASF is INDIVIDUAL, then the appearance of the edgetype agrees with the documented specifications.
#F 54 272
#D 3.6.3 3.6.7 6.15.1.1 6.15.1.2
#S 4.5.2/39/7 4.5.9/62/7
#T P03/3 P03/4 P03/5 P03/6 P05/5

SR43. When a fill area set is displayed, if its bound edgetype is not available on the workstation and its bound edgetype ASF is INDIVIDUAL, then edgetype 1 (solid) is used to display the edge.
#F 54 272
#D 3.6.3 3.6.7 6.15.1.1 6.15.1.2
#S 4.5.2/39/7 4.5.9/62/7
#T P03/4

SR44. When available on the workstation to which posted, edgetypes 1 through 4 appear as solid, dashed, dotted, and dashed-dotted, respectively.
#F
#D 6.15.1.1 6.15.1.2
#S 4.5.9/62/7
#T P03/3 P03/4
#X 04.02.01.01
#C Edgetypes are drawn from the identical set of values with the
same meanings as linetypes.


SR45. When available on the workstation to which posted, edgetypes greater than 4 appear as specified in the ISO register.
#F
#D 6.15.1.1 6.15.1.2
#S 4.1.2/15/2 4.5.9/62/7
#T P03/5
#X 04.02.01.01
#C Edgetypes are drawn from the identical set of values with the
same meanings as linetypes.


SR46. When available on the workstation to which posted, edgetypes less than 1 appear as specified in the implementor documentation.
#F
#D 6.15.1.1 6.15.1.2
#S 4.1.1/15/1 4.5.9/62/7
#T P03/6 P03/7
#X 04.02.01.01
#C Edgetypes are drawn from the identical set of values with the
same meanings as linetypes.

*** ***   Edgetype: network traversal   *** ***


SR47. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current edgetype of the PTSL is set to 1.
#F
#D 2.15.3 3.6.3
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P05/5

SR48. As part of the PTSL, the current edgetype 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.
#F 113
#D 3.6.3
#S 4.4.3/28/1
#T P05/5
***   Edgewidth scale factor: element creation   ***


SR49. <Set edgewidth scale factor> creates a "set edgewidth scale factor" element (in the open structure), whose associated value is taken from the function's parameter.
#F 55
#D 7.3.2.6.6
#S 4.4.1/23/1 4.5.2/38/3
#T P01/17 P01/18 P03/8 P03/9 P03/10 P03/11
*** ***   Edgewidth scale factor: effect during traversal   *** ***


SR50. Upon traversal of a "set edgewidth scale factor" element, the current edgewidth scale factor entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 55
#D 3.6.4 7.3.2.6.6
#S 4.5.2/38/3
#T P03/8 P03/9 P03/10 P03/11 P05/5

SR51. When a fill area set is displayed, if its logical edgewidth (= its bound edgewidth scale factor times the workstation's nominal edgewidth) is available on the workstation and its bound edgewidth scale factor ASF is INDIVIDUAL, then the actual edgewidth agrees with the logical edgewidth.
#F 55 272
#D 3.6.4 3.6.8 6.15.1.3 6.15.1.4 6.15.1.5 6.15.1.6
#S 4.5.2/39/7 4.5.9/62/8
#T P03/8 P05/5

SR52. When a fill area set is displayed, if its logical edgewidth is not available on the workstation and its bound edgewidth scale factor ASF is INDIVIDUAL, then the actual edgewidth is the nearest available to the logical edgewidth.
#F 55 272
#D 3.6.4 3.6.8 6.15.1.3 6.15.1.4 6.15.1.5 6.15.1.6
#S 4.5.2/39/7 4.5.9/62/8
#T P03/9 P03/10 P03/11 P05/5
*** ***   Edgewidth scale factor: network traversal   *** ***


SR53. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current edgewidth scale factor of the PTSL is set to 1.0.
#F
#D 2.15.4 3.6.4
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P05/5

SR54. As part of the PTSL, the current edgewidth 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.
#F 113
#D 3.6.4
#S 4.4.3/28/1
#T P05/5
***   Edge colour index: element creation   ***


SR55. <Set edge colour index> creates a "set edge colour index" element (in the open structure), whose associated value is taken from the function's parameter.
#F 56
#D 7.3.2.6.7
#S 4.4.1/23/1 4.5.2/38/3
#T P01/19 P01/20 P03/12 P03/13
*** ***   Edge colour index: effect during traversal   *** ***


SR56. Upon traversal of a "set edge colour index" element, the current edge colour index entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 56
#D 3.6.5 7.3.2.6.7
#S 4.5.2/38/3
#T P03/12 P03/13 P05/9

SR57. When a fill area set is displayed, if its bound edge colour index is defined on the workstation and its bound edge colour index ASF is INDIVIDUAL, then the edge colour index is realized as itself.
#F 56
#D 3.6.5 3.6.9 5.15.3.1 5.15.3.2
#S 4.5.2/39/7 4.5.12/63/4
#T P03/12 P05/9

SR58. When a fill area set is displayed, if its bound edge colour index is not defined on the workstation and its bound edge colour index ASF is INDIVIDUAL, then the edge colour index is realized as number 1.
#F 56
#D 3.6.5 3.6.9 5.15.3.1 5.15.3.2
#S 4.5.2/39/7 4.5.2/43/3
#T P03/13
*** ***   Edge colour index: network traversal   *** ***


SR59. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current edge colour index of the PTSL is set to 1.
#F
#D 2.15.5 3.6.5
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P05/9

SR60. As part of the PTSL, the current edge 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.
#F 113
#D 3.6.5
#S 4.4.3/28/1
#T P05/9
*** *** ***   Pattern size: element creation   *** *** ***


SR61. <Set pattern size> creates a "set pattern size" element (in the open structure), whose associated value is taken from the function's parameter.
#F 57
#D 7.3.2.6.8
#S 4.4.1/23/1 4.5.2/38/3
#T P01/7 P01/8 P04/1 P04/2
*** ***   Pattern size: effect during traversal   *** ***


SR62. Upon traversal of a non-degenerate "set pattern size" element, the current set pattern size entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 57
#D 3.7.1 7.3.2.6.8
#S 4.5.2/38/3
#T P04/1 P05/6

SR63. Upon traversal of a "set pattern size" element, if the absolute value of either pattern size components is zero (degenerate), then the element is ignored.
#F 57
#D 3.7.1 7.3.2.6.8
#S
#T P04/2 #C Consequently, the value of the pattern size entry in the PTSL
is unchanged.
*** ***   Pattern size: network traversal  *** *** ***


SR64. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current pattern size of the PTSL is set to (1.0,1.0).
#F
#D 2.16.1 3.7.1
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P05/6

SR65. As part of the PTSL, the current pattern size 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.
#F 113
#D 3.7.1
#S 4.4.3/28/1
#T P05/6
***   Pattern reference point and vectors: element creation   ***


SR66. <Set pattern reference point and vectors> creates a "set pattern reference point and vectors" element (in the open structure), whose associated value is taken from the function's parameter.
#F 58
#D 7.3.2.6.9
#S 4.4.1/23/1 4.5.2/38/3
#T P01/9 P01/10 P04/4 P04/5

SR67. <Set pattern reference point> creates a "set pattern reference point" element (in the open structure), whose associated value is taken from the function's parameter.
#F 59
#D 7.3.2.6.10
#S 4.4.1/23/1 4.5.2/38/3
#T P01/11 P01/12 P04/3
***   Pattern reference point and vectors: effect during traversal


SR68. Upon traversal of a non-degenerate "set pattern reference point and vectors" element, the current pattern reference point and current pattern reference vectors entries in the PHIGS traversal state list (PTSL) are set to the element's associated values.
#F 58
#D 3.7.2 3.7.3 7.3.2.6.9
#S 4.5.2/38/3
#T P04/4 P04/5 P05/7

SR69. Upon traversal of a "set pattern reference point" element, the current pattern reference point entry in the PHIGS traversal state list (PTSL) is set to the element's associated value with the z-coordinate value equal to 0 and the current reference vectors entry in the PTSL is set to (1,0,0) and (0,1,0).
#F 59
#D 3.7.2 3.7.3 7.3.2.6.10
#S 4.5.2/38/3
#T P04/3

SR70. Upon traversal of a "set pattern reference point and vectors" element, if the vectors are degenerate, that is parallel or have zero length, then the element is ignored.
#F 58
#D 3.7.2 3.7.3 7.3.2.6.9
#S
#T P04/5 #C Consequently, the values of the current pattern reference
point and current pattern reference vectors entries in the PTSL
are unchanged.
*** *** ***   Rendering of geometric attributes   *** *** ***


SR71. A non-degenerate pattern box for a fill area is a parallelogram within the MC fill area plane, defined by a base corner and adjacent 1st and 2nd corners which are distinct from the base corner and each other.
#F 57 58 59
#D 3.7.1 3.7.2 3.7.3
#S 4.5.8/59/1 4.5.8/60/1 4.5.8/60/2
#T P04/1 P04/2 P04/3 P04/4 P04/5 P05/7

SR72. The base corner of the pattern box is the normal projection of the pattern reference point onto the fill area plane.
#F 58 59
#D 3.7.2
#S 4.5.8/59/1
#T P04/1 P04/2 P04/3 P04/4 P04/5 P05/7

SR73. The pattern width vector is a directed line segment from the base corner to the 1st corner such that its direction is parallel to the normal projection of the first pattern reference vector onto the fill area plane, and its length equals the magnitude of the 1st component of the pattern size.
#F 57 58 59
#D 3.7.1 3.7.2 3.7.3
#S 4.5.8/59/1
#T P04/1 P04/2 P04/3 P04/4 P04/5 P05/6 P05/7

SR74. The pattern height vector is a directed line segment from the base corner to the 2nd corner such that its direction is parallel to the normal projection of the second pattern reference vector onto the fill area plane, and its length equals the magnitude of the 2nd component of the pattern size.
#F 57 58 59
#D 3.7.1 3.7.2 3.7.3
#S 4.5.8/60/1
#T P04/1 P04/2 P04/3 P04/4 P04/5 P05/6 P05/7

SR75. The pattern representation is a 2D array of color indexes, numbered from 1 to DX in first dimension and 1 to DY in second dimension.
#F 68
#D 5.14.2.2
#S 4.5.8/59/1 4.5.8/60/2
#T P04/1 P04/2 P04/3 P04/4 P04/5 P05/7
#X 04.02.05.04


SR76. Mapping a pattern representation into a pattern box subdivides the box into a 2D array of DX (along the pattern width vector) times DY (along the pattern height vector) colored cells of identical size and shape (in MC), with sides parallel to those of the pattern box.
#F 57 58 59 68
#D 3.7.1 3.7.2 3.7.3 5.14.2.2
#S 4.5.8/59/1 4.5.8/60/2
#T P04/1 P04/2 P04/3 P04/4 P04/5 P05/7
#X 04.02.05.04


SR77. The pattern representation is mapped into the cells of a non-degenerate pattern box such that 1) element (1,DY) is associated with the cell adjacent to the base corner; 2) elements with increasing first dimension indexes are associated with successive cells in the direction of the pattern width vector; and 3) elements with decreasing second dimension indexes are associated with successive cells in the direction of the pattern height vector.
#F 57 58 59 68
#D 3.7.1 3.7.2 3.7.3 5.14.2.2
#S 4.5.8/60/2
#T P04/1 P04/2 P04/3 P04/4 P04/5 P05/7
#X 04.02.05.04


SR78. A fill area or fill area set with interior style PATTERN is filled by replicating the pattern box or portions thereof in directions parallel to its sides until the entire area is filled.
#F
#D
#S 4.5.8/60/2
#T P04/1 P04/2 P04/3 P04/4 P04/5
#X 04.02.05.04
#C The original pattern box need not be within, or even overlap,
the area to be filled; its location, however, determines where
the derived pattern boxes will be located within the fill area.


SR79. Workstations which support transformable patterns render pattern-filled area primitives by applying the usual transformations to the MC model described above to generate the primitive in DC space.
#F
#D 3.7 3.12 5.4.2.3 5.6.3 5.6.5 5.14.2.2
#S 4.5.8/60/2
#T P04/1 P04/2 P04/3 P04/4 P04/5 #C There are no requirements for the rendering of patterns on
workstations which do not support transformable patterns.
***  Pattern reference point and vectors: network traversal  ***


SR80. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current pattern reference point of the PTSL is set to (0,0,0).
#F
#D 2.16.2 3.7.2
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P05/7

SR81. As part of the PTSL, the current pattern reference point 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.
#F 113
#D 3.7.2
#S 4.4.3/28/1
#T P05/7

SR82. At the start of the top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current pattern reference vectors of the PTSL are set to (1,0,0) (0,1,0).
#F
#D 2.16.3 3.7.3
#S 4.4.3/26/2 4.4.3/28/1 6.3/310/1
#T P05/7

SR83. As part of the PTSL, the current pattern reference vectors are saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
#F 113
#D 3.7.3
#S 4.4.3/28/1
#T P05/7



LOCAL DICTIONARY:

  Functions ---
  050: psis    <set interior style>
  051: psisi   <set interior style index>
  052: psici   <set interior colour index>
  053: psedfg  <set edge flag>
  054: psedt   <set edgetype>
  055: psewsc  <set edgewidth scale factor>
  056: psedci  <set edge colour index>
  057: pspa    <set pattern size>
  058: psprpv  <set pattern reference point and vectors>
  059: psparf  <set pattern reference point>
  068: pspar   <set pattern representation>
  113: pexst   <execute structure>
  232: pqepai  <inquire list of pattern indices>
  233: pqpar   <inquire pattern representation>
  270: pqif    <inquire interior facilities>
  272: pqedf   <inquire edge facilities>
  303: pqcets  <inquire current element type and size>
  304: pqceco  <inquire current element content>
 
  Data Structures ---
  2  ...  phigs_description_table
  2.14  ...  default_interior_attributes
  2.14.2  ...  default_interior_style
  2.14.3  ...  default_interior_style_index
  2.14.4  ...  default_interior_colour_index
  2.15  ...  default_edge_attributes
  2.15.2  ...  default_edge_flag
  2.15.3  ...  default_edgetype
  2.15.4  ...  default_edgewidth_scale_factor
  2.15.5  ...  default_edge_colour_index
  2.16  ...  default_pattern_attributes
  2.16.1  ...  default_pattern_size
  2.16.2  ...  default_pattern_reference_point
  2.16.3  ...  default_pattern_reference_vectors
  3  ...  phigs_traversal_state_list
  3.5  ...  current_interior_attributes
  3.5.2  ...  current_interior_style
  3.5.3  ...  current_interior_style_index
  3.5.4  ...  current_interior_colour_index
  3.5.5  ...  current_interior_style_asf
  3.5.6  ...  current_interior_style_index_asf
  3.5.7  ...  current_interior_colour_index_asf
  3.6  ...  current_edge_attributes
  3.6.2  ...  current_edge_flag
  3.6.3  ...  current_edgetype
  3.6.4  ...  current_edgewidth_scale_factor
  3.6.5  ...  current_edge_colour_index
  3.6.6  ...  current_edge_flag_asf
  3.6.7  ...  current_edgetype_asf
  3.6.8  ...  current_edgewidth_scale_factor_asf
  3.6.9  ...  current_edge_colour_index_asf
  3.7  ...  current_pattern_attributes
  3.7.1  ...  current_pattern_size
  3.7.2  ...  current_pattern_reference_point
  3.7.3  ...  current_pattern_reference_vectors
  3.12 ...  current_modelling_attributes
  5  ...  workstation_state_list
  5.4  ...  view_table
  5.4.2  ...  view_table_ordered_by_input_priority
  5.4.2.3  ...  current_view
  5.6  ...  workstation_transformation_entry
  5.6.3  ...  current_workstation_window
  5.6.5  ...  current_workstation_viewport
  5.14  ...  pattern_entry
  5.14.2  ...  pattern_table
  5.14.2.1  ...  pattern_index
  5.14.2.2  ...  pattern_colour_index_array
  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.14  ...  interior_entry
  6.14.1  ...  interior_facilities
  6.14.1.1  ...  number_of_available_interior_styles
  6.14.1.2  ...  list_of_available_interior_styles
  6.14.1.3  ...  number_of_available_hatch_styles
  6.14.1.4  ...  list_of_available_hatch_styles
  6.15  ...  edge_entry
  6.15.1  ...  edge_facilities
  6.15.1.1  ...  number_of_available_edgetypes
  6.15.1.2  ...  list_of_available_edgetypes
  6.15.1.3  ...  number_of_available_edgewidths
  6.15.1.4  ...  nominal_edgewidth
  6.15.1.5  ...  minimum_edgewidth
  6.15.1.6  ...  maximum_edgewidth
  7  ...  structure_state_list
  7.3  ...  list_of_structure_elements
  7.3.1  ...  graphical_primitives
  7.3.1.9  ...  fill_area_3
  7.3.1.10 ...  fill_area
  7.3.1.11 ...  fill_area_set_3
  7.3.1.12 ...  fill_area_set
  7.3.2  ...  primitive_attributes
  7.3.2.6  ...  fill_area_attributes
  7.3.2.6.1  ...  interior_style
  7.3.2.6.2  ...  interior_style_index
  7.3.2.6.3  ...  interior_colour_index
  7.3.2.6.4  ...  edge_flag
  7.3.2.6.5  ...  edgetype
  7.3.2.6.6  ...  edgewidth_scale_factor
  7.3.2.6.7  ...  edge_colour_index
  7.3.2.6.8  ...  pattern_size
  7.3.2.6.9  ...  pattern_reference_point_and_vectors
  7.3.2.6.10 ...  pattern_reference_point
 
SEMANTIC CROSS-REFERENCES:
  04.02.05.04/SR02

LOCAL SUBROUTINES:

SHOWEW tests the rendering of a given edgewidth, and returns the
pass/fail result or an abort signal if the requested edge is too
wide to be tested.

PARPT accepts a reference point and 2 vectors and computes a
corner of the smallest parallelogram containing a specified
rectangle. The corner is found in the direction specified by
parity.

PARLIN accepts a reference point and 2 vectors and computes a
side of the smallest parallelogram containing a specified
rectangle.  The side is found in the direction specified by
parity.

CLDIAG accepts the x-y coordinates of 2 MC points, the
coefficients of a fill area plane, and a transformation from MC
to WC, and draws the resulting (slightly shrunken) 3D line
segment.



PROGRAM 1: Simple setting and inquiring

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


PROGRAM 2: Appearance of individual interior attributes

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


PROGRAM 3: Appearance of individual edge attributes

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


PROGRAM 4: Appearance of individual geometric attributes

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


PROGRAM 5: Network inheritance and initialization

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

End of documentation for 04.02.05.01