Design: 04.01.02/P02

This is an abstract, language-independent design. Grim details may be found in the corresponding source code. You may return to the documentation for the module containing this program design, or to the entire hierarchical table of topics covered by the PVT.


PROGRAM 2: Appearance of polymarkers

CHARACTERISTICS: ynny

OPERATOR SCRIPT:

GEOMETRY OF 3D POLYMARKERS: All the squares should contain a
polymarker with multiple asterisk markers.  All but one should
have their vertices accurately circled by a polymarker.  Identify
the polymarker which is not accurately marked.

GEOMETRY OF 2D POLYMARKERS: Same as GEOMETRY OF 3D POLYMARKERS,
above.

DESIGN:

set polymarker scale factor to reasonable size = 0.02 in WC

Divide screen up into 6 square labelled areas for all tests

sider = list of 6 sides from which cube may be viewed =
  front,back,left,right,top,bottom

Throughout, use asterisk for actual polymarker, circle for
expected position.

TEST: #SR 1 4 7
      "The appearance of a <polymarker 3> primitive should reflect
       its 3D geometry after being transformed."

ngsq = no-good square = random integer from 1 to 6
generate 3D list of points, visually distinct from any side for
  3D polymarker

for ix = 1 to 6
   rotate to view from sider(ix)
   display the 3D polymarker in square #ix
   calculate expected position of vertices
   if (ix = ngsq) then
      distort expected vertices
   endif
   use 2D circle polymarker to mark expected vertices
next ix

OPQA/GEOMETRY OF 3D POLYMARKERS: Which polymarker does NOT have
   all its asterisk vertices circled?
pass/fail depending on:
   (operator identifies square #ngsq)

TEST: #SR 1 4 7
      "The appearance of a <polymarker> primitive should reflect
       its 2D geometry after being transformed."

ngsq = no-good square = random integer from 1 to 6
generate non-linear 2D list of points distinct from any side for
  2D polymarker

for ix = 1 to 6
   rotate 45 degrees around x and y axis into unit cube to show
      z-values
   rotate to view from sider(ix)
   display the 2D polymarker in square #ix
   calculate expected position of vertices
   if (ix = ngsq) then
      distort expected vertices
   endif
   use 2D circle polymarker to mark expected vertices
next ix

OPQA/GEOMETRY OF 2D POLYMARKERS: Which polymarker does NOT have
   all its asterisk vertices circled?
pass/fail depending on:
   (operator identifies square #ngsq)

END PROGRAM 2