Set Pen Pattern


Purpose

The Set Pen Pattern opcode is a rendition attribute. Using this opcode, the WHIP! data generating application can specify pensets or the pen pattern type to be used by the viewer application before drawing drawables. The WHIP! DATA specification lists 105 face patterns and 5 screening pensets, specified with a screening percentage value. Screening percentage values are not applied to face patterns. Syntax
 
Opcode format Opcode Operand Format Comments
Extended ASCII (PenPattern <ws><IPen pattern type><ws><UIScreening percentage value><ws><BColorMap flag><ws><ColorMap> -
Extended Binary 0x0164 <I'Pen pattern type><UI Screening percentage value><BColorMap flag><ColorMap>)+} -
Details
  • The Set Pen Pattern opcode also includes two optional color maps containing RGBAs for both transparency and opaque. The user application can configure pen attributes to be used in the context of one of two modes: either as an opaque foreground pattern with an opaque background, or as an opaque foreground with a transparent background. XOR mode is not supported for these patterns.
  • Get and Set methods are available for getting and setting pattern type and percentage values.
  • The pen pattern attribute is applied for wide and thick lines, filled solids, texts, polylines and polytriangles.
  • In the absence of a color map viewers should choose foreground and background colors from the rendition to represent an opaque pattern.
  • If this opcode comes with a two entry color map, the first entry will represent the background color and the second the foreground color to represent a transparency.
  • Notes Example
    ASCII format
    (PenPattern 1 50 1
    (ColorMap 2
     255,0,0,255 0,255,0,255) )

    Where 'Pen pattern type' could be any one of the values listed following.
     

    Pen Pattern Types
    Individual Screening Percentage Patterns (screening percentage value applied)
            Screening_Black
            Screening_Alternate
            Screening_Block
            Screening_Dots
            Screening_Big_Dots

    Non-Individual Screening Patterns (Face Patterns)
            Dots_Big
            Dots_Medium
            Dots_Small
            Slant_Left_32x32
            Slant_Right_32x32
            Screen_15
            Screen_25
            Screen_20
            Screen_75
            Screen_50,
            Screen_Thin_50
            Screen_Hatched_50
            Trellis
            ZigZag
            Diagonal
            Triangle
            Triangle_More
            Bricks,
            Bricks_Big
            Squares,
            Squares_3D
            Diamond_Plaid
            Ziggurat,
            Diagonal_Thatch
            Zipper
            Slants
            Slants_More
            Diags
            Diags_More
            Marks
            Marks_More
            Diamonds_Thick
            Diamonds_Thin

            Screening_Black_0
            Screening_Black_10
            Screening_Black_15
            Screening_Black_20
            Screening_Black_35
            Screening_Black_40
            Screening_Black_45
            Screening_Black_50
            Screening_Black_55
            Screening_Black_60
            Screening_Black_65
            Screening_Black_70
            Screening_Black_75
            Screening_Black_80
            Screening_Black_85
            Screening_Black_90
            Screening_Black_100

            Screening_Alternate_5
            Screening_Alternate_10
            Screening_Alternate_15
            Screening_Alternate_20
            Screening_Alternate_25
            Screening_Alternate_35
            Screening_Alternate_40
            Screening_Alternate_45
            Screening_Alternate_50
            Screening_Alternate_65
            Screening_Alternate_70
            Screening_Alternate_80
            Screening_Alternate_85
            Screening_Alternate_90
            Screening_Alternate_95

            Screening_Block_10
            Screening_Block_20
            Screening_Block_25
            Screening_Block_30
            Screening_Block_40
            Screening_Block_50
            Screening_Block_60
            Screening_Block_65
            Screening_Block_70
            Screening_Block_75
            Screening_Block_80
            Screening_Block_85
            Screening_Block_90
            Screening_Block_95

            Screening_Dots_5
            Screening_Dots_10
            Screening_Dots_15
            Screening_Dots_20
            Screening_Dots_25
            Screening_Dots_30
            Screening_Dots_40
            Screening_Dots_50
            Screening_Dots_60
            Screening_Dots_70
            Screening_Dots_75
            Screening_Dots_85
            Screening_Dots_90
            Screening_Dots_95

            Screening_Big_Dots_5
            Screening_Big_Dots_10
            Screening_Big_Dots_20
            Screening_Big_Dots_30
            Screening_Big_Dots_40
            Screening_Big_Dots_50
            Screening_Big_Dots_60
            Screening_Big_Dots_65
            Screening_Big_Dots_70
            Screening_Big_Dots_75
            Screening_Big_Dots_80
            Screening_Big_Dots_85
            Screening_Big_Dots_90
            Screening_Big_Dots_95
     

    See Also

        For more information on patterns, see the Set Fill Pattern, Set Fill Mode and Set Line Pattern opcodes.