[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

DASH (0x44415348)       /* Line dash pattern for edges */

This chunk describes the on-off dash pattern associated with a line.

    struct DASHstruct {
        ULONG       ID;
        ULONG       Size;
        USHORT      DashID;             /* ID of the dash pattern */
        USHORT      NumDashes;          /* Should always be even */
        IEEE        Dashes[NumDashes];  /* On-off pattern */
    };

DashID is the number assigned to this specific dash pattern. References to
this dash pattern by other DR2D chunks are made using this number.

The Dashes[] array contains the actual dash pattern.  The first number in
the array (element 0) is the length of the ``on'' portion of the pattern.
The second number (element 1) specifies the ``off'' portion of the
pattern.  If there are more entries in the Dashes array, the pattern will
continue.  Even-index elements specify the length of an ``on'' span, while
odd-index elements specify the length of an ``off'' span.  There must be
an even number of entries.  These lengths are not in the same units as
specified in the PPRF chunk, but are multiples of the line width, so a
line of width 2.5 and a dash pattern of 1.0, 2.0 would have an ``on'' span
of length 1.0 x 2.5 = 2.5 followed by an ``off'' span of length 2.0 x 2.5
= 5.  The following figure shows several dash pattern examples.  Notice
that for lines longer than the dash pattern, the pattern repeats.

 figure 1 - dash patterns 

By convention, DashID 0 is reserved to mean `No line pattern at all', i.e.
the edges are invisible.  This DASH pattern should not be defined by a
DR2D DASH chunk.  Again by convention, a NumDashes of 0 means that the
line is solid.