Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199403.adf » Disk1Mar94 » !AWMar94/Goodies/Basic/!PathLib/Library/OS_units/Styles
!AWMar94/Goodies/Basic/!PathLib/Library/OS_units/Styles
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Recent acquisitions » Acorn ADFS disks » adfs_ArchimedesWorld_199403.adf » Disk1Mar94 |
Filename: | !AWMar94/Goodies/Basic/!PathLib/Library/OS_units/Styles |
Read OK: | ✔ |
File size: | 20ED bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
1REM > PathLib:OS_units.Styles 2REM ********************************************************** 3REM ********************************************************** 4REM 5REM PROCEDURES FOR CONTROLLING THE STYLE OF LINE DRAWING 6REM 7REM Reserved variables: 8REM 9REM line_style% 10REM 11REM ********************************************************** 12REM ********************************************************** 13 14 15DEF FNPath_CreateLineStyle(thickness%) 16 REM ----------------------------- 17 REM 18 REM Creates line style byte array 19 REM (Default: Bevel joins) 20 REM 21 REM The thickness of the line is 22 REM given in OS units 23 REM 24 REM 5 words 25 REM ----------------------------- 26 LOCAL i% : DIM line_style% 20 27 FOR i%=0 TO 12 STEP 4 : line_style%!i%=0 : NEXT 28 line_style%?0=2 29 line_style%!16=thickness%<<8 30 =line_style% 31 32DEF PROCPath_LineThickness(thickness%) 33 line_style%!16=thickness%<<8 34 ENDPROC 35 36REM *************************** 37REM *************************** 38REM 39REM JOIN STYLES 40REM 41REM I.e. How lines are joined 42REM 43REM *************************** 44REM *************************** 45 46DEF PROCPath_RoundJoins 47 line_style%?0=1 48 ENDPROC 49 50DEF PROCPath_BevelJoins 51 line_style%?0=2 52 ENDPROC 53 54DEF PROCPath_MitreJoins(mitre_limit) 55 REM ----------------------------------------- 56 REM 57 REM Joins are Mitred i.e. flattened 58 REM 59 REM If Mitre_length > mitre_limit * Line_width 60 REM then joins are bevelled 61 REM 62 REM ---------------------------------------- 63 line_style%?0=0 64 line_style%?7=INT(mitre_limit)DIV256 : line_style%?6=INT(mitre_limit)MOD256 65 mitrelimit=INT((INT(mitre_limit)-mitre_limit)*256*256) 66 line_style%?5=INT(mitre_limit)DIV256 : line_style%?4=INT(mitre_limit)MOD256 67 ENDPROC 68 69REM *************************** 70REM *************************** 71REM 72REM CAP STYLES 73REM 74REM I.e. How lines are ended 75REM 76REM *************************** 77REM *************************** 78 79DEF PROCPath_ButtLeadingCaps 80 line_style%?1=0 81 ENDPROC 82 83DEF PROCPath_ButtTrailingCaps 84 line_style%?2=0 85 ENDPROC 86 87DEF PROCPath_RoundLeadingCaps 88 line_style%?1=1 89 ENDPROC 90 91DEF PROCPath_RoundTrailingCaps 92 line_style%?2=1 93 ENDPROC 94 95DEF PROCPath_SquareLeadingCaps 96 line_style%?1=2 97 ENDPROC 98 99DEF PROCPath_SquareTrailingCaps 100 line_style%?2=2 101 ENDPROC 102 103DEF PROCPath_TriangularLeadingCaps(width,pointforward) 104 REM -------------------------------------- 105 REM 106 REM Draws triangular caps. 107 REM 108 REM N.B. "width" and "pointforward" are 109 REM measured in terms of line width. 110 REM 111 REM 112 REM |\ 113 REM ===| > 114 REM |/ 115 REM 116 REM 117 REM E.g. width=3 means that the cap will 118 REM be 3 line widths on either side 119 REM 120 REM -------------------------------------- 121 line_style%?1=3 122 line_style%?9=INT(width) : line_style%?8=(width-INT(width))<<8 123 line_style%?11=INT(pointforward) 124 line_style%?8=(pointforward-INT(pointforward))<<8 125 ENDPROC 126 127DEF PROCPath_TriangularTrailingCaps(width,pointbackward) 128 REM -------------------------------------- 129 REM 130 REM Draws triangular caps. 131 REM 132 REM N.B. "width" and "pointbackward" are 133 REM measured in terms of line width. 134 REM 135 REM 136 REM /| 137 REM < |=== 138 REM \| 139 REM 140 REM 141 REM 142 REM E.g. width=3 means that the cap will 143 REM be 3 line widths on either side 144 REM 145 REM --------------------------------------- 146 line_style%?2=3 147 line_style%?13=INT(width) : line_style%?12=(width-INT(width))<<8 148 line_style%?15=INT(pointbackward) 149 line_style%?14=(pointbackward-INT(pointbackward))<<8 150 ENDPROC 151 152REM *************************** 153REM *************************** 154REM 155REM DASH PATTERNS 156REM 157REM I.e. Drawing dashed lines 158REM 159REM *************************** 160REM *************************** 161 162 163DEF FNPath_EquidistantDashPattern(length%) 164 REM ----------------------------- 165 REM 166 REM Equidistant Dash Pattern 167 REM 168 REM - - - - - - - - 169 REM 170 REM Each dash and space of length 171 REM length% in OS units 172 REM 173 REM ----------------------------- 174 DIM dash% 12 175 dash%!0=0 : dash%!4=1 : dash%!8=length%<<8 176 =dash% 177 178DEF FNPath_DashPattern(stroke_length%,move_length%) 179 REM ----------------------------- 180 REM 181 REM Non-equidistant Dash Pattern 182 REM 183 REM -- -- -- -- -- -- -- -- -- 184 REM 185 REM Arguments in OS units 186 REM 187 REM ----------------------------- 188 DIM dash% 16 189 dash%!0=0 : dash%!4=2 190 dash%!8=stroke_length%<<8 : dash%!12=move_length%<<8 191 =dash% 192 193DEF FNPath_DotDashPattern(stroke_length%) 194 REM ----------------------------- 195 REM 196 REM Non-equidistant Dash Pattern 197 REM 198 REM -- - -- - -- - -- - -- - 199 REM 200 REM Arguments in OS units 201 REM 202 REM ----------------------------- 203 DIM dash% 24 204 dash%!0=0 : dash%!4=4 205 dash%!8=stroke_length%<<8 : dash%!12=(stroke_length%DIV2)<<8 206 dash%!16=(stroke_length%DIV2)<<8 : dash%!20=(stroke_length%DIV2)<<8 207 =dash% 208 209 210 211 212REM ******************* 213REM ******************* 214REM *** 215REM *** Drawing 216REM *** ------- 217REM *** 218REM ******************* 219REM ******************* 220 221DEF PROCPath_LineDraw(path%,colour%) 222 REM --------------------------------------------------------- 223 REM 224 REM Draws to the VDU screen the path object contained in the 225 REM byte array path% 226 REM 227 REM N.B. 228 REM 229 REM All coordinates in path% are in Draw units (OS<<8) 230 REM 231 REM 232 REM -------------------------------------------------------- 233 GCOL colour% 234 SYS "Draw_Stroke",path% 235ENDPROC 236 237 238DEF PROCPath_LineDrawWithStyle(path%,colour%,style%,dash%) 239 REM --------------------------------------------------------- 240 REM 241 REM Draws to the VDU screen the path object contained in the 242 REM byte array path% 243 REM 244 REM N.B. 245 REM 246 REM All coordinates in path% are in Draw units (OS<<8) 247 REM 248 REM The arguments are as follows: 249 REM 250 REM 1) style% (pointer to 4 word byte array) 251 REM 2) dash% (ponter to dash pattern array) 252 REM 253 REM -------------------------------------------------------- 254 LOCAL thickness% 255 GCOL colour% 256 thickness%=style%!16 257 SYS "Draw_Stroke",path%,,,,thickness%,style%,dash% 258ENDPROC 259 260 261DEF PROCPath_SmoothDraw(path%,colour%) 262 REM --------------------------------------------------------- 263 REM 264 REM Draws to the VDU screen the path object contained in the 265 REM byte array path% . The assumption is that path% contains 266 REM line segments which are Bezier curves which need to be 267 REM drawn "smoothly" 268 REM 269 REM N.B. 270 REM 271 REM All coordinates in path% are in Draw units (OS<<8) 272 REM 273 REM -------------------------------------------------------- 274 GCOL colour% 275 SYS "Draw_Stroke",path%,,,128 276ENDPROC 277 278DEF PROCPath_SmoothDrawWithStyle(path%,colour%,style%,dash%) 279 REM --------------------------------------------------------- 280 REM 281 REM Draws to the VDU screen the path object contained in the 282 REM byte array path% . The assumption is that path% contains 283 REM line segments which are Bezier curves which need to be 284 REM drawn "smoothly" 285 REM 286 REM N.B. 287 REM 288 REM All coordinates in path% are in Draw units (OS<<8) 289 REM 290 REM 291 REM The arguments are as follows: 292 REM 293 REM 1) style% (pointer to 5 word byte array) 294 REM 2) dash% (ponter to dash pattern array) 295 REM 296 REM -------------------------------------------------------- 297 LOCAL thickness% 298 thickness%=style%!16 299 GCOL colour% 300 SYS "Draw_Stroke",path%,,,128,thickness%,style%,dash% 301ENDPROC 302 303REM ******************* 304REM ******************* 305REM *** 306REM *** Fill_Styles 307REM *** ----------- 308REM *** 309REM ******************* 310REM ******************* 311 312DEF FNPath_FillEvenOdd 313 REM ----------------------------- 314 REM 315 REM Fills using even-odd rule to 316 REM halfway through boundary 317 REM 318 REM ----------------------------- 319=&32 320 321DEF FNPath_FillPositive 322 REM ----------------------------- 323 REM 324 REM Fills using positive rule to 325 REM halfway through boundary 326 REM 327 REM ----------------------------- 328=&33 329 330DEF FNPath_FillNegative 331 REM ----------------------------- 332 REM 333 REM Fills using negative rule to 334 REM halfway through boundary 335 REM 336 REM ----------------------------- 337=&31
� > PathLib:OS_units.Styles @� ********************************************************** @� ********************************************************** � :� PROCEDURES FOR CONTROLLING THE STYLE OF LINE DRAWING � � Reserved variables: � $� line_style% � @� ********************************************************** @� ********************************************************** '� �Path_CreateLineStyle(thickness%) $ � ----------------------------- � $ � Creates line style byte array � (Default: Bevel joins) � # � The thickness of the line is � given in OS units � � 5 words $ � ----------------------------- � i% : � line_style% 20 + � i%=0 � 12 � 4 : line_style%!i%=0 : � line_style%?0=2 ! line_style%!16=thickness%<<8 =line_style% %� �Path_LineThickness(thickness%) !" line_style%!16=thickness%<<8 " � # $!� *************************** %!� *************************** &� '� JOIN STYLES (� )"� I.e. How lines are joined *� +!� *************************** ,!� *************************** - .� �Path_RoundJoins / line_style%?0=1 0 � 1 2� �Path_BevelJoins 3 line_style%?0=2 4 � 5 6#� �Path_MitreJoins(mitre_limit) 70 � ----------------------------------------- 8 � 9, � Joins are Mitred i.e. flattened : � ;1 � If Mitre_length > mitre_limit * Line_width < � then joins are bevelled = � >/ � ---------------------------------------- ? line_style%?0=0 @H line_style%?7=�(mitre_limit)�256 : line_style%?6=�(mitre_limit)�256 A7 mitrelimit=�((�(mitre_limit)-mitre_limit)*256*256) BH line_style%?5=�(mitre_limit)�256 : line_style%?4=�(mitre_limit)�256 C � D E!� *************************** F!� *************************** G� H� CAP STYLES I� J!� I.e. How lines are ended K� L!� *************************** M!� *************************** N O� �Path_ButtLeadingCaps P line_style%?1=0 Q � R S� �Path_ButtTrailingCaps T line_style%?2=0 U � V W� �Path_RoundLeadingCaps X line_style%?1=1 Y � Z [� �Path_RoundTrailingCaps \ line_style%?2=1 ] � ^ _� �Path_SquareLeadingCaps ` line_style%?1=2 a � b c� �Path_SquareTrailingCaps d line_style%?2=2 e � f g5� �Path_TriangularLeadingCaps(width,pointforward) h- � -------------------------------------- i � j � Draws triangular caps. k � l+ � N.B. "width" and "pointforward" are m- � measured in terms of line width. n � o � p! � |\ q! � ===| > r � |/ s � t � u, � E.g. width=3 means that the cap will v, � be 3 line widths on either side w � x- � -------------------------------------- y line_style%?1=3 z? line_style%?9=�(width) : line_style%?8=(width-�(width))<<8 {# line_style%?11=�(pointforward) |5 line_style%?8=(pointforward-�(pointforward))<<8 } � ~ 7� �Path_TriangularTrailingCaps(width,pointbackward) �- � -------------------------------------- � � � � Draws triangular caps. � � �, � N.B. "width" and "pointbackward" are �- � measured in terms of line width. � � � � � � /| � � < |=== � � \| � � � � � � �, � E.g. width=3 means that the cap will �, � be 3 line widths on either side � � �> � --------------------------------------- � line_style%?2=3 �A line_style%?13=�(width) : line_style%?12=(width-�(width))<<8 �$ line_style%?15=�(pointbackward) �8 line_style%?14=(pointbackward-�(pointbackward))<<8 � � � �!� *************************** �!� *************************** �� �� DASH PATTERNS �� �"� I.e. Drawing dashed lines �� �!� *************************** �!� *************************** � � �+� �Path_EquidistantDashPattern(length%) �$ � ----------------------------- � � � � Equidistant Dash Pattern � � � � - - - - - - - - � � �$ � Each dash and space of length � � length% in OS units � � �$ � ----------------------------- � � dash% 12 �/ dash%!0=0 : dash%!4=1 : dash%!8=length%<<8 � =dash% � �4� �Path_DashPattern(stroke_length%,move_length%) �$ � ----------------------------- � � �# � Non-equidistant Dash Pattern � � �" � -- -- -- -- -- -- -- -- -- � � � � Arguments in OS units � � �$ � ----------------------------- � � dash% 16 � dash%!0=0 : dash%!4=2 �9 dash%!8=stroke_length%<<8 : dash%!12=move_length%<<8 � =dash% � �*� �Path_DotDashPattern(stroke_length%) �$ � ----------------------------- � � �# � Non-equidistant Dash Pattern � � � � -- - -- - -- - -- - -- - � � � � Arguments in OS units � � �$ � ----------------------------- � � dash% 24 � dash%!0=0 : dash%!4=4 �F dash%!8=stroke_length%<<8 : dash%!12=(stroke_length%�2)<<8 �E dash%!16=(stroke_length%�2)<<8 : dash%!20=(stroke_length%�2)<<8 � =dash% � � � � �� ******************* �� ******************* �� *** �� *** Drawing �� *** ------- �� *** �� ******************* �� ******************* � �#� �Path_LineDraw(path%,colour%) �@ � --------------------------------------------------------- � � �? � Draws to the VDU screen the path object contained in the � � byte array path% � � � � N.B. � � �= � All coordinates in path% are in Draw units (OS<<8) � � � � �? � -------------------------------------------------------- � � colour% � ș "Draw_Stroke",path% �� � � �9� �Path_LineDrawWithStyle(path%,colour%,style%,dash%) �@ � --------------------------------------------------------- � � �? � Draws to the VDU screen the path object contained in the � � byte array path% � � � � N.B. � � �= � All coordinates in path% are in Draw units (OS<<8) � � �$ � The arguments are as follows: � � �7 � 1) style% (pointer to 4 word byte array) �7 � 2) dash% (ponter to dash pattern array) � � �? � -------------------------------------------------------- � � thickness% � � colour% thickness%=style%!16 : ș "Draw_Stroke",path%,,,,thickness%,style%,dash% � %� �Path_SmoothDraw(path%,colour%) @ � --------------------------------------------------------- � ? � Draws to the VDU screen the path object contained in the ? � byte array path% . The assumption is that path% contains = � line segments which are Bezier curves which need to be � drawn "smoothly" � � N.B. � = � All coordinates in path% are in Draw units (OS<<8) � ? � -------------------------------------------------------- � colour% % ș "Draw_Stroke",path%,,,128 � ;� �Path_SmoothDrawWithStyle(path%,colour%,style%,dash%) @ � --------------------------------------------------------- � ? � Draws to the VDU screen the path object contained in the ? � byte array path% . The assumption is that path% contains = � line segments which are Bezier curves which need to be � drawn "smoothly" � � N.B. � = � All coordinates in path% are in Draw units (OS<<8) ! � " � #$ � The arguments are as follows: $ � %7 � 1) style% (pointer to 5 word byte array) &7 � 2) dash% (ponter to dash pattern array) ' � (? � -------------------------------------------------------- ) � thickness% * thickness%=style%!16 + � colour% ,= ș "Draw_Stroke",path%,,,128,thickness%,style%,dash% -� . /� ******************* 0� ******************* 1� *** 2� *** Fill_Styles 3� *** ----------- 4� *** 5� ******************* 6� ******************* 7 8� �Path_FillEvenOdd 9$ � ----------------------------- : � ;# � Fills using even-odd rule to < � halfway through boundary = � >$ � ----------------------------- ?=&32 @ A� �Path_FillPositive B$ � ----------------------------- C � D# � Fills using positive rule to E � halfway through boundary F � G$ � ----------------------------- H=&33 I J� �Path_FillNegative K$ � ----------------------------- L � M# � Fills using negative rule to N � halfway through boundary O � P$ � ----------------------------- Q=&31 �
00000000 0d 00 01 1f f4 20 3e 20 50 61 74 68 4c 69 62 3a |..... > PathLib:| 00000010 4f 53 5f 75 6e 69 74 73 2e 53 74 79 6c 65 73 0d |OS_units.Styles.| 00000020 00 02 40 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |..@. ***********| 00000030 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000050 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 00000060 00 03 40 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |..@. ***********| 00000070 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000090 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 000000a0 00 04 05 f4 0d 00 05 3a f4 20 50 52 4f 43 45 44 |.......:. PROCED| 000000b0 55 52 45 53 20 46 4f 52 20 43 4f 4e 54 52 4f 4c |URES FOR CONTROL| 000000c0 4c 49 4e 47 20 54 48 45 20 53 54 59 4c 45 20 4f |LING THE STYLE O| 000000d0 46 20 4c 49 4e 45 20 44 52 41 57 49 4e 47 0d 00 |F LINE DRAWING..| 000000e0 06 05 f4 0d 00 07 19 f4 20 52 65 73 65 72 76 65 |........ Reserve| 000000f0 64 20 76 61 72 69 61 62 6c 65 73 3a 0d 00 08 06 |d variables:....| 00000100 f4 20 0d 00 09 24 f4 20 20 20 20 20 20 20 20 20 |. ...$. | 00000110 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 5f | line_| 00000120 73 74 79 6c 65 25 0d 00 0a 05 f4 0d 00 0b 40 f4 |style%........@.| 00000130 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ***************| 00000140 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000160 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 0c 40 f4 |***********...@.| 00000170 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ***************| 00000180 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000001a0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 0d 04 0d |***********.....| 000001b0 00 0e 04 0d 00 0f 27 dd 20 a4 50 61 74 68 5f 43 |......'. .Path_C| 000001c0 72 65 61 74 65 4c 69 6e 65 53 74 79 6c 65 28 74 |reateLineStyle(t| 000001d0 68 69 63 6b 6e 65 73 73 25 29 0d 00 10 24 20 f4 |hickness%)...$ .| 000001e0 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------------| 000001f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 |--------------..| 00000200 11 06 20 f4 0d 00 12 24 20 f4 20 43 72 65 61 74 |.. ....$ . Creat| 00000210 65 73 20 6c 69 6e 65 20 73 74 79 6c 65 20 62 79 |es line style by| 00000220 74 65 20 61 72 72 61 79 0d 00 13 1d 20 f4 20 28 |te array.... . (| 00000230 44 65 66 61 75 6c 74 3a 20 42 65 76 65 6c 20 6a |Default: Bevel j| 00000240 6f 69 6e 73 29 0d 00 14 06 20 f4 0d 00 15 23 20 |oins).... ....# | 00000250 f4 20 54 68 65 20 74 68 69 63 6b 6e 65 73 73 20 |. The thickness | 00000260 6f 66 20 74 68 65 20 6c 69 6e 65 20 69 73 0d 00 |of the line is..| 00000270 16 18 20 f4 20 67 69 76 65 6e 20 69 6e 20 4f 53 |.. . given in OS| 00000280 20 75 6e 69 74 73 0d 00 17 06 20 f4 0d 00 18 0e | units.... .....| 00000290 20 f4 20 35 20 77 6f 72 64 73 0d 00 19 24 20 f4 | . 5 words...$ .| 000002a0 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------------| 000002b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 |--------------..| 000002c0 1a 1c 20 ea 20 69 25 20 3a 20 de 20 6c 69 6e 65 |.. . i% : . line| 000002d0 5f 73 74 79 6c 65 25 20 32 30 0d 00 1b 2b 20 e3 |_style% 20...+ .| 000002e0 20 69 25 3d 30 20 b8 20 31 32 20 88 20 34 20 3a | i%=0 . 12 . 4 :| 000002f0 20 6c 69 6e 65 5f 73 74 79 6c 65 25 21 69 25 3d | line_style%!i%=| 00000300 30 20 3a 20 ed 0d 00 1c 14 20 6c 69 6e 65 5f 73 |0 : ..... line_s| 00000310 74 79 6c 65 25 3f 30 3d 32 0d 00 1d 21 20 6c 69 |tyle%?0=2...! li| 00000320 6e 65 5f 73 74 79 6c 65 25 21 31 36 3d 74 68 69 |ne_style%!16=thi| 00000330 63 6b 6e 65 73 73 25 3c 3c 38 0d 00 1e 11 20 3d |ckness%<<8.... =| 00000340 6c 69 6e 65 5f 73 74 79 6c 65 25 0d 00 1f 04 0d |line_style%.....| 00000350 00 20 25 dd 20 f2 50 61 74 68 5f 4c 69 6e 65 54 |. %. .Path_LineT| 00000360 68 69 63 6b 6e 65 73 73 28 74 68 69 63 6b 6e 65 |hickness(thickne| 00000370 73 73 25 29 0d 00 21 22 20 20 6c 69 6e 65 5f 73 |ss%)..!" line_s| 00000380 74 79 6c 65 25 21 31 36 3d 74 68 69 63 6b 6e 65 |tyle%!16=thickne| 00000390 73 73 25 3c 3c 38 0d 00 22 07 20 20 e1 0d 00 23 |ss%<<8..". ...#| 000003a0 04 0d 00 24 21 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a |...$!. *********| 000003b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 000003c0 2a 2a 0d 00 25 21 f4 20 2a 2a 2a 2a 2a 2a 2a 2a |**..%!. ********| 000003d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 000003e0 2a 2a 2a 0d 00 26 06 f4 20 0d 00 27 14 f4 20 20 |***..&.. ..'.. | 000003f0 20 4a 4f 49 4e 20 53 54 59 4c 45 53 20 0d 00 28 | JOIN STYLES ..(| 00000400 05 f4 0d 00 29 22 f4 20 20 20 49 2e 65 2e 20 48 |....)". I.e. H| 00000410 6f 77 20 6c 69 6e 65 73 20 61 72 65 20 6a 6f 69 |ow lines are joi| 00000420 6e 65 64 20 0d 00 2a 06 f4 20 0d 00 2b 21 f4 20 |ned ..*.. ..+!. | 00000430 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000440 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 2c 21 f4 |***********..,!.| 00000450 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ***************| 00000460 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 2d 04 |************..-.| 00000470 0d 00 2e 16 dd 20 f2 50 61 74 68 5f 52 6f 75 6e |..... .Path_Roun| 00000480 64 4a 6f 69 6e 73 0d 00 2f 14 20 6c 69 6e 65 5f |dJoins../. line_| 00000490 73 74 79 6c 65 25 3f 30 3d 31 0d 00 30 06 20 e1 |style%?0=1..0. .| 000004a0 0d 00 31 04 0d 00 32 16 dd 20 f2 50 61 74 68 5f |..1...2.. .Path_| 000004b0 42 65 76 65 6c 4a 6f 69 6e 73 0d 00 33 14 20 6c |BevelJoins..3. l| 000004c0 69 6e 65 5f 73 74 79 6c 65 25 3f 30 3d 32 0d 00 |ine_style%?0=2..| 000004d0 34 06 20 e1 0d 00 35 04 0d 00 36 23 dd 20 f2 50 |4. ...5...6#. .P| 000004e0 61 74 68 5f 4d 69 74 72 65 4a 6f 69 6e 73 28 6d |ath_MitreJoins(m| 000004f0 69 74 72 65 5f 6c 69 6d 69 74 29 0d 00 37 30 20 |itre_limit)..70 | 00000500 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |. --------------| 00000510 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000520 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 38 06 20 |-----------..8. | 00000530 f4 0d 00 39 2c 20 f4 20 4a 6f 69 6e 73 20 61 72 |...9, . Joins ar| 00000540 65 20 4d 69 74 72 65 64 20 20 20 20 69 2e 65 2e |e Mitred i.e.| 00000550 20 66 6c 61 74 74 65 6e 65 64 20 20 20 0d 00 3a | flattened ..:| 00000560 06 20 f4 0d 00 3b 31 20 f4 20 49 66 20 4d 69 74 |. ...;1 . If Mit| 00000570 72 65 5f 6c 65 6e 67 74 68 20 3e 20 6d 69 74 72 |re_length > mitr| 00000580 65 5f 6c 69 6d 69 74 20 2a 20 4c 69 6e 65 5f 77 |e_limit * Line_w| 00000590 69 64 74 68 0d 00 3c 1e 20 f4 20 74 68 65 6e 20 |idth..<. . then | 000005a0 6a 6f 69 6e 73 20 61 72 65 20 62 65 76 65 6c 6c |joins are bevell| 000005b0 65 64 0d 00 3d 06 20 f4 0d 00 3e 2f 20 f4 20 2d |ed..=. ...>/ . -| 000005c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000005e0 2d 2d 2d 2d 2d 2d 2d 0d 00 3f 14 20 6c 69 6e 65 |-------..?. line| 000005f0 5f 73 74 79 6c 65 25 3f 30 3d 30 0d 00 40 48 20 |_style%?0=0..@H | 00000600 6c 69 6e 65 5f 73 74 79 6c 65 25 3f 37 3d a8 28 |line_style%?7=.(| 00000610 6d 69 74 72 65 5f 6c 69 6d 69 74 29 81 32 35 36 |mitre_limit).256| 00000620 20 3a 20 6c 69 6e 65 5f 73 74 79 6c 65 25 3f 36 | : line_style%?6| 00000630 3d a8 28 6d 69 74 72 65 5f 6c 69 6d 69 74 29 83 |=.(mitre_limit).| 00000640 32 35 36 0d 00 41 37 20 6d 69 74 72 65 6c 69 6d |256..A7 mitrelim| 00000650 69 74 3d a8 28 28 a8 28 6d 69 74 72 65 5f 6c 69 |it=.((.(mitre_li| 00000660 6d 69 74 29 2d 6d 69 74 72 65 5f 6c 69 6d 69 74 |mit)-mitre_limit| 00000670 29 2a 32 35 36 2a 32 35 36 29 0d 00 42 48 20 6c |)*256*256)..BH l| 00000680 69 6e 65 5f 73 74 79 6c 65 25 3f 35 3d a8 28 6d |ine_style%?5=.(m| 00000690 69 74 72 65 5f 6c 69 6d 69 74 29 81 32 35 36 20 |itre_limit).256 | 000006a0 3a 20 6c 69 6e 65 5f 73 74 79 6c 65 25 3f 34 3d |: line_style%?4=| 000006b0 a8 28 6d 69 74 72 65 5f 6c 69 6d 69 74 29 83 32 |.(mitre_limit).2| 000006c0 35 36 0d 00 43 06 20 e1 0d 00 44 04 0d 00 45 21 |56..C. ...D...E!| 000006d0 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |. **************| 000006e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 46 |*************..F| 000006f0 21 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |!. *************| 00000700 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 |**************..| 00000710 47 06 f4 20 0d 00 48 13 f4 20 20 20 43 41 50 20 |G.. ..H.. CAP | 00000720 53 54 59 4c 45 53 20 0d 00 49 05 f4 0d 00 4a 21 |STYLES ..I....J!| 00000730 f4 20 20 20 49 2e 65 2e 20 48 6f 77 20 6c 69 6e |. I.e. How lin| 00000740 65 73 20 61 72 65 20 65 6e 64 65 64 20 0d 00 4b |es are ended ..K| 00000750 06 f4 20 0d 00 4c 21 f4 20 2a 2a 2a 2a 2a 2a 2a |.. ..L!. *******| 00000760 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000770 2a 2a 2a 2a 0d 00 4d 21 f4 20 2a 2a 2a 2a 2a 2a |****..M!. ******| 00000780 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000790 2a 2a 2a 2a 2a 0d 00 4e 04 0d 00 4f 1b dd 20 f2 |*****..N...O.. .| 000007a0 50 61 74 68 5f 42 75 74 74 4c 65 61 64 69 6e 67 |Path_ButtLeading| 000007b0 43 61 70 73 0d 00 50 14 20 6c 69 6e 65 5f 73 74 |Caps..P. line_st| 000007c0 79 6c 65 25 3f 31 3d 30 0d 00 51 06 20 e1 0d 00 |yle%?1=0..Q. ...| 000007d0 52 04 0d 00 53 1c dd 20 f2 50 61 74 68 5f 42 75 |R...S.. .Path_Bu| 000007e0 74 74 54 72 61 69 6c 69 6e 67 43 61 70 73 0d 00 |ttTrailingCaps..| 000007f0 54 14 20 6c 69 6e 65 5f 73 74 79 6c 65 25 3f 32 |T. line_style%?2| 00000800 3d 30 0d 00 55 06 20 e1 0d 00 56 05 20 0d 00 57 |=0..U. ...V. ..W| 00000810 1c dd 20 f2 50 61 74 68 5f 52 6f 75 6e 64 4c 65 |.. .Path_RoundLe| 00000820 61 64 69 6e 67 43 61 70 73 0d 00 58 14 20 6c 69 |adingCaps..X. li| 00000830 6e 65 5f 73 74 79 6c 65 25 3f 31 3d 31 0d 00 59 |ne_style%?1=1..Y| 00000840 06 20 e1 0d 00 5a 04 0d 00 5b 1d dd 20 f2 50 61 |. ...Z...[.. .Pa| 00000850 74 68 5f 52 6f 75 6e 64 54 72 61 69 6c 69 6e 67 |th_RoundTrailing| 00000860 43 61 70 73 0d 00 5c 14 20 6c 69 6e 65 5f 73 74 |Caps..\. line_st| 00000870 79 6c 65 25 3f 32 3d 31 0d 00 5d 06 20 e1 0d 00 |yle%?2=1..]. ...| 00000880 5e 04 0d 00 5f 1d dd 20 f2 50 61 74 68 5f 53 71 |^..._.. .Path_Sq| 00000890 75 61 72 65 4c 65 61 64 69 6e 67 43 61 70 73 0d |uareLeadingCaps.| 000008a0 00 60 14 20 6c 69 6e 65 5f 73 74 79 6c 65 25 3f |.`. line_style%?| 000008b0 31 3d 32 0d 00 61 06 20 e1 0d 00 62 04 0d 00 63 |1=2..a. ...b...c| 000008c0 1e dd 20 f2 50 61 74 68 5f 53 71 75 61 72 65 54 |.. .Path_SquareT| 000008d0 72 61 69 6c 69 6e 67 43 61 70 73 0d 00 64 14 20 |railingCaps..d. | 000008e0 6c 69 6e 65 5f 73 74 79 6c 65 25 3f 32 3d 32 0d |line_style%?2=2.| 000008f0 00 65 06 20 e1 0d 00 66 05 20 0d 00 67 35 dd 20 |.e. ...f. ..g5. | 00000900 f2 50 61 74 68 5f 54 72 69 61 6e 67 75 6c 61 72 |.Path_Triangular| 00000910 4c 65 61 64 69 6e 67 43 61 70 73 28 77 69 64 74 |LeadingCaps(widt| 00000920 68 2c 70 6f 69 6e 74 66 6f 72 77 61 72 64 29 0d |h,pointforward).| 00000930 00 68 2d 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |.h- . ----------| 00000940 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000950 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 69 06 |------------..i.| 00000960 20 f4 0d 00 6a 1d 20 f4 20 44 72 61 77 73 20 74 | ...j. . Draws t| 00000970 72 69 61 6e 67 75 6c 61 72 20 63 61 70 73 2e 0d |riangular caps..| 00000980 00 6b 06 20 f4 0d 00 6c 2b 20 f4 20 4e 2e 42 2e |.k. ...l+ . N.B.| 00000990 20 20 22 77 69 64 74 68 22 20 61 6e 64 20 22 70 | "width" and "p| 000009a0 6f 69 6e 74 66 6f 72 77 61 72 64 22 20 61 72 65 |ointforward" are| 000009b0 0d 00 6d 2d 20 f4 20 20 20 20 20 20 20 6d 65 61 |..m- . mea| 000009c0 73 75 72 65 64 20 69 6e 20 74 65 72 6d 73 20 6f |sured in terms o| 000009d0 66 20 6c 69 6e 65 20 77 69 64 74 68 2e 0d 00 6e |f line width...n| 000009e0 06 20 f4 0d 00 6f 06 20 f4 0d 00 70 21 20 f4 20 |. ...o. ...p! . | 000009f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000a00 20 20 20 20 7c 5c 20 20 20 20 0d 00 71 21 20 f4 | |\ ..q! .| 00000a10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000a20 20 20 3d 3d 3d 7c 20 3e 20 20 20 0d 00 72 1d 20 | ===| > ..r. | 00000a30 f4 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00000a40 20 20 20 20 20 20 7c 2f 0d 00 73 06 20 f4 0d 00 | |/..s. ...| 00000a50 74 06 20 f4 0d 00 75 2c 20 f4 20 45 2e 67 2e 20 |t. ...u, . E.g. | 00000a60 20 77 69 64 74 68 3d 33 20 6d 65 61 6e 73 20 74 | width=3 means t| 00000a70 68 61 74 20 74 68 65 20 63 61 70 20 77 69 6c 6c |hat the cap will| 00000a80 0d 00 76 2c 20 f4 20 20 20 20 20 20 20 62 65 20 |..v, . be | 00000a90 33 20 6c 69 6e 65 20 77 69 64 74 68 73 20 6f 6e |3 line widths on| 00000aa0 20 65 69 74 68 65 72 20 73 69 64 65 0d 00 77 17 | either side..w.| 00000ab0 20 f4 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | . | 00000ac0 20 20 20 0d 00 78 2d 20 f4 20 2d 2d 2d 2d 2d 2d | ..x- . ------| 00000ad0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000af0 0d 00 79 14 20 6c 69 6e 65 5f 73 74 79 6c 65 25 |..y. line_style%| 00000b00 3f 31 3d 33 0d 00 7a 3f 20 6c 69 6e 65 5f 73 74 |?1=3..z? line_st| 00000b10 79 6c 65 25 3f 39 3d a8 28 77 69 64 74 68 29 20 |yle%?9=.(width) | 00000b20 3a 20 6c 69 6e 65 5f 73 74 79 6c 65 25 3f 38 3d |: line_style%?8=| 00000b30 28 77 69 64 74 68 2d a8 28 77 69 64 74 68 29 29 |(width-.(width))| 00000b40 3c 3c 38 0d 00 7b 23 20 6c 69 6e 65 5f 73 74 79 |<<8..{# line_sty| 00000b50 6c 65 25 3f 31 31 3d a8 28 70 6f 69 6e 74 66 6f |le%?11=.(pointfo| 00000b60 72 77 61 72 64 29 0d 00 7c 35 20 6c 69 6e 65 5f |rward)..|5 line_| 00000b70 73 74 79 6c 65 25 3f 38 3d 28 70 6f 69 6e 74 66 |style%?8=(pointf| 00000b80 6f 72 77 61 72 64 2d a8 28 70 6f 69 6e 74 66 6f |orward-.(pointfo| 00000b90 72 77 61 72 64 29 29 3c 3c 38 20 0d 00 7d 06 20 |rward))<<8 ..}. | 00000ba0 e1 0d 00 7e 04 0d 00 7f 37 dd 20 f2 50 61 74 68 |...~....7. .Path| 00000bb0 5f 54 72 69 61 6e 67 75 6c 61 72 54 72 61 69 6c |_TriangularTrail| 00000bc0 69 6e 67 43 61 70 73 28 77 69 64 74 68 2c 70 6f |ingCaps(width,po| 00000bd0 69 6e 74 62 61 63 6b 77 61 72 64 29 0d 00 80 2d |intbackward)...-| 00000be0 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | . -------------| 00000bf0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000c00 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 81 06 20 f4 0d |---------.... ..| 00000c10 00 82 1d 20 f4 20 44 72 61 77 73 20 74 72 69 61 |... . Draws tria| 00000c20 6e 67 75 6c 61 72 20 63 61 70 73 2e 0d 00 83 06 |ngular caps.....| 00000c30 20 f4 0d 00 84 2c 20 f4 20 4e 2e 42 2e 20 20 22 | ...., . N.B. "| 00000c40 77 69 64 74 68 22 20 61 6e 64 20 22 70 6f 69 6e |width" and "poin| 00000c50 74 62 61 63 6b 77 61 72 64 22 20 61 72 65 0d 00 |tbackward" are..| 00000c60 85 2d 20 f4 20 20 20 20 20 20 20 6d 65 61 73 75 |.- . measu| 00000c70 72 65 64 20 69 6e 20 74 65 72 6d 73 20 6f 66 20 |red in terms of | 00000c80 6c 69 6e 65 20 77 69 64 74 68 2e 0d 00 86 06 20 |line width..... | 00000c90 f4 0d 00 87 06 20 f4 0d 00 88 1f 20 f4 20 20 20 |..... ..... . | 00000ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 7c | /|| 00000cb0 20 20 20 20 20 20 0d 00 89 1f 20 f4 20 20 20 20 | .... . | 00000cc0 20 20 20 20 20 20 20 20 20 20 20 20 3c 20 7c 3d | < |=| 00000cd0 3d 3d 20 20 20 0d 00 8a 19 20 f4 20 20 20 20 20 |== .... . | 00000ce0 20 20 20 20 20 20 20 20 20 20 20 20 5c 7c 0d 00 | \|..| 00000cf0 8b 06 20 f4 0d 00 8c 06 20 f4 0d 00 8d 06 20 f4 |.. ..... ..... .| 00000d00 0d 00 8e 2c 20 f4 20 45 2e 67 2e 20 20 77 69 64 |..., . E.g. wid| 00000d10 74 68 3d 33 20 6d 65 61 6e 73 20 74 68 61 74 20 |th=3 means that | 00000d20 74 68 65 20 63 61 70 20 77 69 6c 6c 0d 00 8f 2c |the cap will...,| 00000d30 20 f4 20 20 20 20 20 20 20 62 65 20 33 20 6c 69 | . be 3 li| 00000d40 6e 65 20 77 69 64 74 68 73 20 6f 6e 20 65 69 74 |ne widths on eit| 00000d50 68 65 72 20 73 69 64 65 0d 00 90 06 20 f4 0d 00 |her side.... ...| 00000d60 91 3e 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |.> . -----------| 00000d70 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000d80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 20 20 20 |------------ | 00000d90 20 20 20 20 20 20 20 20 20 20 20 20 0d 00 92 14 | ....| 00000da0 20 6c 69 6e 65 5f 73 74 79 6c 65 25 3f 32 3d 33 | line_style%?2=3| 00000db0 0d 00 93 41 20 6c 69 6e 65 5f 73 74 79 6c 65 25 |...A line_style%| 00000dc0 3f 31 33 3d a8 28 77 69 64 74 68 29 20 3a 20 6c |?13=.(width) : l| 00000dd0 69 6e 65 5f 73 74 79 6c 65 25 3f 31 32 3d 28 77 |ine_style%?12=(w| 00000de0 69 64 74 68 2d a8 28 77 69 64 74 68 29 29 3c 3c |idth-.(width))<<| 00000df0 38 0d 00 94 24 20 6c 69 6e 65 5f 73 74 79 6c 65 |8...$ line_style| 00000e00 25 3f 31 35 3d a8 28 70 6f 69 6e 74 62 61 63 6b |%?15=.(pointback| 00000e10 77 61 72 64 29 0d 00 95 38 20 6c 69 6e 65 5f 73 |ward)...8 line_s| 00000e20 74 79 6c 65 25 3f 31 34 3d 28 70 6f 69 6e 74 62 |tyle%?14=(pointb| 00000e30 61 63 6b 77 61 72 64 2d a8 28 70 6f 69 6e 74 62 |ackward-.(pointb| 00000e40 61 63 6b 77 61 72 64 29 29 3c 3c 38 20 0d 00 96 |ackward))<<8 ...| 00000e50 06 20 e1 0d 00 97 04 0d 00 98 21 f4 20 2a 2a 2a |. ........!. ***| 00000e60 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000e70 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 99 21 f4 20 2a 2a |********...!. **| 00000e80 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000e90 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 9a 06 f4 20 0d |*********..... .| 00000ea0 00 9b 16 f4 20 20 20 44 41 53 48 20 50 41 54 54 |.... DASH PATT| 00000eb0 45 52 4e 53 20 0d 00 9c 05 f4 0d 00 9d 22 f4 20 |ERNS ........". | 00000ec0 20 20 49 2e 65 2e 20 44 72 61 77 69 6e 67 20 64 | I.e. Drawing d| 00000ed0 61 73 68 65 64 20 6c 69 6e 65 73 20 0d 00 9e 06 |ashed lines ....| 00000ee0 f4 20 0d 00 9f 21 f4 20 2a 2a 2a 2a 2a 2a 2a 2a |. ...!. ********| 00000ef0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000f00 2a 2a 2a 0d 00 a0 21 f4 20 2a 2a 2a 2a 2a 2a 2a |***...!. *******| 00000f10 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00000f20 2a 2a 2a 2a 0d 00 a1 04 0d 00 a2 04 0d 00 a3 2b |****...........+| 00000f30 dd 20 a4 50 61 74 68 5f 45 71 75 69 64 69 73 74 |. .Path_Equidist| 00000f40 61 6e 74 44 61 73 68 50 61 74 74 65 72 6e 28 6c |antDashPattern(l| 00000f50 65 6e 67 74 68 25 29 0d 00 a4 24 20 f4 20 2d 2d |ength%)...$ . --| 00000f60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000f70 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 a5 06 20 |-----------.... | 00000f80 f4 0d 00 a6 1f 20 f4 20 45 71 75 69 64 69 73 74 |..... . Equidist| 00000f90 61 6e 74 20 44 61 73 68 20 50 61 74 74 65 72 6e |ant Dash Pattern| 00000fa0 0d 00 a7 08 20 f4 20 20 0d 00 a8 1f 20 f4 20 20 |.... . .... . | 00000fb0 20 20 20 20 20 20 20 20 2d 20 2d 20 2d 20 2d 20 | - - - - | 00000fc0 2d 20 2d 20 2d 20 2d 0d 00 a9 06 20 f4 0d 00 aa |- - - -.... ....| 00000fd0 24 20 f4 20 45 61 63 68 20 64 61 73 68 20 61 6e |$ . Each dash an| 00000fe0 64 20 73 70 61 63 65 20 6f 66 20 6c 65 6e 67 74 |d space of lengt| 00000ff0 68 0d 00 ab 1a 20 f4 20 6c 65 6e 67 74 68 25 20 |h.... . length% | 00001000 69 6e 20 4f 53 20 75 6e 69 74 73 0d 00 ac 06 20 |in OS units.... | 00001010 f4 0d 00 ad 24 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d |....$ . --------| 00001020 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001030 2d 2d 2d 2d 2d 0d 00 ae 0f 20 de 20 64 61 73 68 |-----.... . dash| 00001040 25 20 31 32 0d 00 af 2f 20 64 61 73 68 25 21 30 |% 12.../ dash%!0| 00001050 3d 30 20 3a 20 64 61 73 68 25 21 34 3d 31 20 3a |=0 : dash%!4=1 :| 00001060 20 64 61 73 68 25 21 38 3d 6c 65 6e 67 74 68 25 | dash%!8=length%| 00001070 3c 3c 38 0d 00 b0 0b 20 3d 64 61 73 68 25 0d 00 |<<8.... =dash%..| 00001080 b1 04 0d 00 b2 34 dd 20 a4 50 61 74 68 5f 44 61 |.....4. .Path_Da| 00001090 73 68 50 61 74 74 65 72 6e 28 73 74 72 6f 6b 65 |shPattern(stroke| 000010a0 5f 6c 65 6e 67 74 68 25 2c 6d 6f 76 65 5f 6c 65 |_length%,move_le| 000010b0 6e 67 74 68 25 29 0d 00 b3 24 20 f4 20 2d 2d 2d |ngth%)...$ . ---| 000010c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000010d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 b4 06 20 f4 |----------.... .| 000010e0 0d 00 b5 23 20 f4 20 4e 6f 6e 2d 65 71 75 69 64 |...# . Non-equid| 000010f0 69 73 74 61 6e 74 20 44 61 73 68 20 50 61 74 74 |istant Dash Patt| 00001100 65 72 6e 0d 00 b6 08 20 f4 20 20 0d 00 b7 22 20 |ern.... . ..." | 00001110 f4 20 20 2d 2d 20 2d 2d 20 2d 2d 20 2d 2d 20 2d |. -- -- -- -- -| 00001120 2d 20 2d 2d 20 2d 2d 20 2d 2d 20 2d 2d 0d 00 b8 |- -- -- -- --...| 00001130 06 20 f4 0d 00 b9 1c 20 f4 20 41 72 67 75 6d 65 |. ..... . Argume| 00001140 6e 74 73 20 69 6e 20 4f 53 20 75 6e 69 74 73 0d |nts in OS units.| 00001150 00 ba 06 20 f4 0d 00 bb 24 20 f4 20 2d 2d 2d 2d |... ....$ . ----| 00001160 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001170 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 bc 0f 20 de 20 |---------.... . | 00001180 64 61 73 68 25 20 31 36 0d 00 bd 1a 20 64 61 73 |dash% 16.... das| 00001190 68 25 21 30 3d 30 20 3a 20 64 61 73 68 25 21 34 |h%!0=0 : dash%!4| 000011a0 3d 32 0d 00 be 39 20 64 61 73 68 25 21 38 3d 73 |=2...9 dash%!8=s| 000011b0 74 72 6f 6b 65 5f 6c 65 6e 67 74 68 25 3c 3c 38 |troke_length%<<8| 000011c0 20 3a 20 64 61 73 68 25 21 31 32 3d 6d 6f 76 65 | : dash%!12=move| 000011d0 5f 6c 65 6e 67 74 68 25 3c 3c 38 0d 00 bf 0b 20 |_length%<<8.... | 000011e0 3d 64 61 73 68 25 0d 00 c0 04 0d 00 c1 2a dd 20 |=dash%.......*. | 000011f0 a4 50 61 74 68 5f 44 6f 74 44 61 73 68 50 61 74 |.Path_DotDashPat| 00001200 74 65 72 6e 28 73 74 72 6f 6b 65 5f 6c 65 6e 67 |tern(stroke_leng| 00001210 74 68 25 29 0d 00 c2 24 20 f4 20 2d 2d 2d 2d 2d |th%)...$ . -----| 00001220 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001230 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 c3 06 20 f4 0d 00 |--------.... ...| 00001240 c4 23 20 f4 20 4e 6f 6e 2d 65 71 75 69 64 69 73 |.# . Non-equidis| 00001250 74 61 6e 74 20 44 61 73 68 20 50 61 74 74 65 72 |tant Dash Patter| 00001260 6e 0d 00 c5 08 20 f4 20 20 0d 00 c6 20 20 f4 20 |n.... . ... . | 00001270 20 2d 2d 20 2d 20 2d 2d 20 2d 20 2d 2d 20 2d 20 | -- - -- - -- - | 00001280 2d 2d 20 2d 20 2d 2d 20 2d 0d 00 c7 06 20 f4 0d |-- - -- -.... ..| 00001290 00 c8 1c 20 f4 20 41 72 67 75 6d 65 6e 74 73 20 |... . Arguments | 000012a0 69 6e 20 4f 53 20 75 6e 69 74 73 0d 00 c9 06 20 |in OS units.... | 000012b0 f4 0d 00 ca 24 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d |....$ . --------| 000012c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000012d0 2d 2d 2d 2d 2d 0d 00 cb 0f 20 de 20 64 61 73 68 |-----.... . dash| 000012e0 25 20 32 34 0d 00 cc 1a 20 64 61 73 68 25 21 30 |% 24.... dash%!0| 000012f0 3d 30 20 3a 20 64 61 73 68 25 21 34 3d 34 0d 00 |=0 : dash%!4=4..| 00001300 cd 46 20 64 61 73 68 25 21 38 3d 73 74 72 6f 6b |.F dash%!8=strok| 00001310 65 5f 6c 65 6e 67 74 68 25 3c 3c 38 20 20 20 20 |e_length%<<8 | 00001320 20 20 20 20 3a 20 64 61 73 68 25 21 31 32 3d 28 | : dash%!12=(| 00001330 73 74 72 6f 6b 65 5f 6c 65 6e 67 74 68 25 81 32 |stroke_length%.2| 00001340 29 3c 3c 38 0d 00 ce 45 20 64 61 73 68 25 21 31 |)<<8...E dash%!1| 00001350 36 3d 28 73 74 72 6f 6b 65 5f 6c 65 6e 67 74 68 |6=(stroke_length| 00001360 25 81 32 29 3c 3c 38 20 3a 20 64 61 73 68 25 21 |%.2)<<8 : dash%!| 00001370 32 30 3d 28 73 74 72 6f 6b 65 5f 6c 65 6e 67 74 |20=(stroke_lengt| 00001380 68 25 81 32 29 3c 3c 38 20 0d 00 cf 0b 20 3d 64 |h%.2)<<8 .... =d| 00001390 61 73 68 25 0d 00 d0 05 20 0d 00 d1 04 0d 00 d2 |ash%.... .......| 000013a0 04 0d 00 d3 07 20 20 20 0d 00 d4 19 f4 20 2a 2a |..... ..... **| 000013b0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 000013c0 2a 0d 00 d5 19 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a |*..... *********| 000013d0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 d6 19 f4 20 |**********..... | 000013e0 2a 2a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 |*** | 000013f0 20 20 20 0d 00 d7 19 f4 20 2a 2a 2a 20 20 44 72 | ..... *** Dr| 00001400 61 77 69 6e 67 20 20 20 20 20 20 20 0d 00 d8 19 |awing ....| 00001410 f4 20 2a 2a 2a 20 20 2d 2d 2d 2d 2d 2d 2d 20 20 |. *** ------- | 00001420 20 20 20 20 20 0d 00 d9 1a f4 20 2a 2a 2a 20 20 | ..... *** | 00001430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d | .| 00001440 00 da 19 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.... ***********| 00001450 2a 2a 2a 2a 2a 2a 2a 2a 0d 00 db 19 f4 20 2a 2a |********..... **| 00001460 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00001470 2a 0d 00 dc 04 0d 00 dd 23 dd 20 f2 50 61 74 68 |*.......#. .Path| 00001480 5f 4c 69 6e 65 44 72 61 77 28 70 61 74 68 25 2c |_LineDraw(path%,| 00001490 63 6f 6c 6f 75 72 25 29 0d 00 de 40 20 f4 20 2d |colour%)...@ . -| 000014a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000014d0 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 df 06 20 f4 0d 00 |--------.... ...| 000014e0 e0 3f 20 f4 20 44 72 61 77 73 20 74 6f 20 74 68 |.? . Draws to th| 000014f0 65 20 56 44 55 20 73 63 72 65 65 6e 20 74 68 65 |e VDU screen the| 00001500 20 70 61 74 68 20 6f 62 6a 65 63 74 20 63 6f 6e | path object con| 00001510 74 61 69 6e 65 64 20 69 6e 20 74 68 65 0d 00 e1 |tained in the...| 00001520 17 20 f4 20 62 79 74 65 20 61 72 72 61 79 20 70 |. . byte array p| 00001530 61 74 68 25 0d 00 e2 06 20 f4 0d 00 e3 0c 20 f4 |ath%.... ..... .| 00001540 20 20 4e 2e 42 2e 0d 00 e4 07 20 f4 20 0d 00 e5 | N.B..... . ...| 00001550 3d 20 f4 20 20 20 20 41 6c 6c 20 63 6f 6f 72 64 |= . All coord| 00001560 69 6e 61 74 65 73 20 69 6e 20 70 61 74 68 25 20 |inates in path% | 00001570 61 72 65 20 69 6e 20 44 72 61 77 20 75 6e 69 74 |are in Draw unit| 00001580 73 20 28 4f 53 3c 3c 38 29 20 0d 00 e6 06 20 f4 |s (OS<<8) .... .| 00001590 0d 00 e7 07 20 f4 20 0d 00 e8 3f 20 f4 20 2d 2d |.... . ...? . --| 000015a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000015d0 2d 2d 2d 2d 2d 2d 0d 00 e9 12 20 20 20 20 20 e6 |------.... .| 000015e0 20 63 6f 6c 6f 75 72 25 0d 00 ea 1f 20 20 20 20 | colour%.... | 000015f0 20 c8 99 20 22 44 72 61 77 5f 53 74 72 6f 6b 65 | .. "Draw_Stroke| 00001600 22 2c 70 61 74 68 25 0d 00 eb 05 e1 0d 00 ec 04 |",path%.........| 00001610 0d 00 ed 04 0d 00 ee 39 dd 20 f2 50 61 74 68 5f |.......9. .Path_| 00001620 4c 69 6e 65 44 72 61 77 57 69 74 68 53 74 79 6c |LineDrawWithStyl| 00001630 65 28 70 61 74 68 25 2c 63 6f 6c 6f 75 72 25 2c |e(path%,colour%,| 00001640 73 74 79 6c 65 25 2c 64 61 73 68 25 29 0d 00 ef |style%,dash%)...| 00001650 40 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |@ . ------------| 00001660 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00001680 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 00 f0 |-------------...| 00001690 06 20 f4 0d 00 f1 3f 20 f4 20 44 72 61 77 73 20 |. ....? . Draws | 000016a0 74 6f 20 74 68 65 20 56 44 55 20 73 63 72 65 65 |to the VDU scree| 000016b0 6e 20 74 68 65 20 70 61 74 68 20 6f 62 6a 65 63 |n the path objec| 000016c0 74 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 74 |t contained in t| 000016d0 68 65 0d 00 f2 17 20 f4 20 62 79 74 65 20 61 72 |he.... . byte ar| 000016e0 72 61 79 20 70 61 74 68 25 0d 00 f3 06 20 f4 0d |ray path%.... ..| 000016f0 00 f4 0c 20 f4 20 20 4e 2e 42 2e 0d 00 f5 07 20 |... . N.B..... | 00001700 f4 20 0d 00 f6 3d 20 f4 20 20 20 20 41 6c 6c 20 |. ...= . All | 00001710 63 6f 6f 72 64 69 6e 61 74 65 73 20 69 6e 20 70 |coordinates in p| 00001720 61 74 68 25 20 61 72 65 20 69 6e 20 44 72 61 77 |ath% are in Draw| 00001730 20 75 6e 69 74 73 20 28 4f 53 3c 3c 38 29 20 0d | units (OS<<8) .| 00001740 00 f7 07 20 f4 20 0d 00 f8 24 20 f4 20 54 68 65 |... . ...$ . The| 00001750 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 61 | arguments are a| 00001760 73 20 66 6f 6c 6c 6f 77 73 3a 0d 00 f9 06 20 f4 |s follows:.... .| 00001770 0d 00 fa 37 20 f4 20 20 20 20 31 29 20 73 74 79 |...7 . 1) sty| 00001780 6c 65 25 20 20 20 20 20 20 28 70 6f 69 6e 74 65 |le% (pointe| 00001790 72 20 74 6f 20 34 20 77 6f 72 64 20 62 79 74 65 |r to 4 word byte| 000017a0 20 61 72 72 61 79 29 0d 00 fb 37 20 f4 20 20 20 | array)...7 . | 000017b0 20 32 29 20 64 61 73 68 25 20 20 20 20 20 20 20 | 2) dash% | 000017c0 28 70 6f 6e 74 65 72 20 74 6f 20 64 61 73 68 20 |(ponter to dash | 000017d0 70 61 74 74 65 72 6e 20 61 72 72 61 79 29 0d 00 |pattern array)..| 000017e0 fc 07 20 f4 20 0d 00 fd 3f 20 f4 20 2d 2d 2d 2d |.. . ...? . ----| 000017f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00001820 2d 2d 2d 2d 0d 00 fe 15 20 20 20 20 20 ea 20 74 |----.... . t| 00001830 68 69 63 6b 6e 65 73 73 25 0d 00 ff 12 20 20 20 |hickness%.... | 00001840 20 20 e6 20 63 6f 6c 6f 75 72 25 0d 01 00 1d 20 | . colour%.... | 00001850 20 20 20 20 74 68 69 63 6b 6e 65 73 73 25 3d 73 | thickness%=s| 00001860 74 79 6c 65 25 21 31 36 0d 01 01 3a 20 20 20 20 |tyle%!16...: | 00001870 20 c8 99 20 22 44 72 61 77 5f 53 74 72 6f 6b 65 | .. "Draw_Stroke| 00001880 22 2c 70 61 74 68 25 2c 2c 2c 2c 74 68 69 63 6b |",path%,,,,thick| 00001890 6e 65 73 73 25 2c 73 74 79 6c 65 25 2c 64 61 73 |ness%,style%,das| 000018a0 68 25 0d 01 02 05 e1 0d 01 03 04 0d 01 04 04 0d |h%..............| 000018b0 01 05 25 dd 20 f2 50 61 74 68 5f 53 6d 6f 6f 74 |..%. .Path_Smoot| 000018c0 68 44 72 61 77 28 70 61 74 68 25 2c 63 6f 6c 6f |hDraw(path%,colo| 000018d0 75 72 25 29 0d 01 06 40 20 f4 20 2d 2d 2d 2d 2d |ur%)...@ . -----| 000018e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00001910 2d 2d 2d 2d 0d 01 07 06 20 f4 0d 01 08 3f 20 f4 |----.... ....? .| 00001920 20 44 72 61 77 73 20 74 6f 20 74 68 65 20 56 44 | Draws to the VD| 00001930 55 20 73 63 72 65 65 6e 20 74 68 65 20 70 61 74 |U screen the pat| 00001940 68 20 6f 62 6a 65 63 74 20 63 6f 6e 74 61 69 6e |h object contain| 00001950 65 64 20 69 6e 20 74 68 65 0d 01 09 3f 20 f4 20 |ed in the...? . | 00001960 62 79 74 65 20 61 72 72 61 79 20 70 61 74 68 25 |byte array path%| 00001970 20 2e 20 54 68 65 20 61 73 73 75 6d 70 74 69 6f | . The assumptio| 00001980 6e 20 69 73 20 74 68 61 74 20 70 61 74 68 25 20 |n is that path% | 00001990 63 6f 6e 74 61 69 6e 73 0d 01 0a 3d 20 f4 20 6c |contains...= . l| 000019a0 69 6e 65 20 73 65 67 6d 65 6e 74 73 20 77 68 69 |ine segments whi| 000019b0 63 68 20 61 72 65 20 42 65 7a 69 65 72 20 63 75 |ch are Bezier cu| 000019c0 72 76 65 73 20 77 68 69 63 68 20 6e 65 65 64 20 |rves which need | 000019d0 74 6f 20 62 65 0d 01 0b 17 20 f4 20 64 72 61 77 |to be.... . draw| 000019e0 6e 20 22 73 6d 6f 6f 74 68 6c 79 22 0d 01 0c 06 |n "smoothly"....| 000019f0 20 f4 0d 01 0d 0c 20 f4 20 20 4e 2e 42 2e 0d 01 | ..... . N.B...| 00001a00 0e 07 20 f4 20 0d 01 0f 3d 20 f4 20 20 20 20 41 |.. . ...= . A| 00001a10 6c 6c 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 69 |ll coordinates i| 00001a20 6e 20 70 61 74 68 25 20 61 72 65 20 69 6e 20 44 |n path% are in D| 00001a30 72 61 77 20 75 6e 69 74 73 20 28 4f 53 3c 3c 38 |raw units (OS<<8| 00001a40 29 20 0d 01 10 07 20 f4 20 0d 01 11 3f 20 f4 20 |) .... . ...? . | 00001a50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00001a80 2d 2d 2d 2d 2d 2d 2d 2d 0d 01 12 12 20 20 20 20 |--------.... | 00001a90 20 e6 20 63 6f 6c 6f 75 72 25 0d 01 13 25 20 20 | . colour%...% | 00001aa0 20 20 20 c8 99 20 22 44 72 61 77 5f 53 74 72 6f | .. "Draw_Stro| 00001ab0 6b 65 22 2c 70 61 74 68 25 2c 2c 2c 31 32 38 0d |ke",path%,,,128.| 00001ac0 01 14 05 e1 0d 01 15 04 0d 01 16 3b dd 20 f2 50 |...........;. .P| 00001ad0 61 74 68 5f 53 6d 6f 6f 74 68 44 72 61 77 57 69 |ath_SmoothDrawWi| 00001ae0 74 68 53 74 79 6c 65 28 70 61 74 68 25 2c 63 6f |thStyle(path%,co| 00001af0 6c 6f 75 72 25 2c 73 74 79 6c 65 25 2c 64 61 73 |lour%,style%,das| 00001b00 68 25 29 0d 01 17 40 20 f4 20 2d 2d 2d 2d 2d 2d |h%)...@ . ------| 00001b10 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00001b40 2d 2d 2d 0d 01 18 06 20 f4 0d 01 19 3f 20 f4 20 |---.... ....? . | 00001b50 44 72 61 77 73 20 74 6f 20 74 68 65 20 56 44 55 |Draws to the VDU| 00001b60 20 73 63 72 65 65 6e 20 74 68 65 20 70 61 74 68 | screen the path| 00001b70 20 6f 62 6a 65 63 74 20 63 6f 6e 74 61 69 6e 65 | object containe| 00001b80 64 20 69 6e 20 74 68 65 0d 01 1a 3f 20 f4 20 62 |d in the...? . b| 00001b90 79 74 65 20 61 72 72 61 79 20 70 61 74 68 25 20 |yte array path% | 00001ba0 2e 20 54 68 65 20 61 73 73 75 6d 70 74 69 6f 6e |. The assumption| 00001bb0 20 69 73 20 74 68 61 74 20 70 61 74 68 25 20 63 | is that path% c| 00001bc0 6f 6e 74 61 69 6e 73 0d 01 1b 3d 20 f4 20 6c 69 |ontains...= . li| 00001bd0 6e 65 20 73 65 67 6d 65 6e 74 73 20 77 68 69 63 |ne segments whic| 00001be0 68 20 61 72 65 20 42 65 7a 69 65 72 20 63 75 72 |h are Bezier cur| 00001bf0 76 65 73 20 77 68 69 63 68 20 6e 65 65 64 20 74 |ves which need t| 00001c00 6f 20 62 65 0d 01 1c 17 20 f4 20 64 72 61 77 6e |o be.... . drawn| 00001c10 20 22 73 6d 6f 6f 74 68 6c 79 22 0d 01 1d 06 20 | "smoothly".... | 00001c20 f4 0d 01 1e 0c 20 f4 20 20 4e 2e 42 2e 0d 01 1f |..... . N.B....| 00001c30 07 20 f4 20 0d 01 20 3d 20 f4 20 20 20 20 41 6c |. . .. = . Al| 00001c40 6c 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 69 6e |l coordinates in| 00001c50 20 70 61 74 68 25 20 61 72 65 20 69 6e 20 44 72 | path% are in Dr| 00001c60 61 77 20 75 6e 69 74 73 20 28 4f 53 3c 3c 38 29 |aw units (OS<<8)| 00001c70 20 0d 01 21 06 20 f4 0d 01 22 07 20 f4 20 0d 01 | ..!. ...". . ..| 00001c80 23 24 20 f4 20 54 68 65 20 61 72 67 75 6d 65 6e |#$ . The argumen| 00001c90 74 73 20 61 72 65 20 61 73 20 66 6f 6c 6c 6f 77 |ts are as follow| 00001ca0 73 3a 0d 01 24 06 20 f4 0d 01 25 37 20 f4 20 20 |s:..$. ...%7 . | 00001cb0 20 20 31 29 20 73 74 79 6c 65 25 20 20 20 20 20 | 1) style% | 00001cc0 20 28 70 6f 69 6e 74 65 72 20 74 6f 20 35 20 77 | (pointer to 5 w| 00001cd0 6f 72 64 20 62 79 74 65 20 61 72 72 61 79 29 0d |ord byte array).| 00001ce0 01 26 37 20 f4 20 20 20 20 32 29 20 64 61 73 68 |.&7 . 2) dash| 00001cf0 25 20 20 20 20 20 20 20 28 70 6f 6e 74 65 72 20 |% (ponter | 00001d00 74 6f 20 64 61 73 68 20 70 61 74 74 65 72 6e 20 |to dash pattern | 00001d10 61 72 72 61 79 29 0d 01 27 08 20 f4 20 20 0d 01 |array)..'. . ..| 00001d20 28 3f 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |(? . -----------| 00001d30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00001d50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 01 29 |-------------..)| 00001d60 15 20 20 20 20 20 ea 20 74 68 69 63 6b 6e 65 73 |. . thicknes| 00001d70 73 25 0d 01 2a 1d 20 20 20 20 20 74 68 69 63 6b |s%..*. thick| 00001d80 6e 65 73 73 25 3d 73 74 79 6c 65 25 21 31 36 0d |ness%=style%!16.| 00001d90 01 2b 12 20 20 20 20 20 e6 20 63 6f 6c 6f 75 72 |.+. . colour| 00001da0 25 0d 01 2c 3d 20 20 20 20 20 c8 99 20 22 44 72 |%..,= .. "Dr| 00001db0 61 77 5f 53 74 72 6f 6b 65 22 2c 70 61 74 68 25 |aw_Stroke",path%| 00001dc0 2c 2c 2c 31 32 38 2c 74 68 69 63 6b 6e 65 73 73 |,,,128,thickness| 00001dd0 25 2c 73 74 79 6c 65 25 2c 64 61 73 68 25 0d 01 |%,style%,dash%..| 00001de0 2d 05 e1 0d 01 2e 04 0d 01 2f 19 f4 20 2a 2a 2a |-......../.. ***| 00001df0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| 00001e00 0d 01 30 19 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |..0.. **********| 00001e10 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 01 31 19 f4 20 2a |*********..1.. *| 00001e20 2a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |** | 00001e30 20 20 0d 01 32 1d f4 20 2a 2a 2a 20 20 46 69 6c | ..2.. *** Fil| 00001e40 6c 5f 53 74 79 6c 65 73 20 20 20 20 20 20 20 0d |l_Styles .| 00001e50 01 33 1d f4 20 2a 2a 2a 20 20 2d 2d 2d 2d 2d 2d |.3.. *** ------| 00001e60 2d 2d 2d 2d 2d 20 20 20 20 20 20 20 0d 01 34 1a |----- ..4.| 00001e70 f4 20 2a 2a 2a 20 20 20 20 20 20 20 20 20 20 20 |. *** | 00001e80 20 20 20 20 20 20 0d 01 35 19 f4 20 2a 2a 2a 2a | ..5.. ****| 00001e90 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 00001ea0 01 36 19 f4 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |.6.. ***********| 00001eb0 2a 2a 2a 2a 2a 2a 2a 2a 0d 01 37 04 0d 01 38 17 |********..7...8.| 00001ec0 dd 20 a4 50 61 74 68 5f 46 69 6c 6c 45 76 65 6e |. .Path_FillEven| 00001ed0 4f 64 64 0d 01 39 24 20 f4 20 2d 2d 2d 2d 2d 2d |Odd..9$ . ------| 00001ee0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001ef0 2d 2d 2d 2d 2d 2d 2d 0d 01 3a 06 20 f4 0d 01 3b |-------..:. ...;| 00001f00 23 20 f4 20 46 69 6c 6c 73 20 75 73 69 6e 67 20 |# . Fills using | 00001f10 65 76 65 6e 2d 6f 64 64 20 72 75 6c 65 20 74 6f |even-odd rule to| 00001f20 0d 01 3c 1f 20 f4 20 68 61 6c 66 77 61 79 20 74 |..<. . halfway t| 00001f30 68 72 6f 75 67 68 20 62 6f 75 6e 64 61 72 79 0d |hrough boundary.| 00001f40 01 3d 08 20 f4 20 20 0d 01 3e 24 20 f4 20 2d 2d |.=. . ..>$ . --| 00001f50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001f60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 01 3f 08 3d |-----------..?.=| 00001f70 26 33 32 0d 01 40 04 0d 01 41 18 dd 20 a4 50 61 |&32..@...A.. .Pa| 00001f80 74 68 5f 46 69 6c 6c 50 6f 73 69 74 69 76 65 0d |th_FillPositive.| 00001f90 01 42 24 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |.B$ . ----------| 00001fa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001fb0 2d 2d 2d 0d 01 43 06 20 f4 0d 01 44 23 20 f4 20 |---..C. ...D# . | 00001fc0 46 69 6c 6c 73 20 75 73 69 6e 67 20 70 6f 73 69 |Fills using posi| 00001fd0 74 69 76 65 20 72 75 6c 65 20 74 6f 0d 01 45 1f |tive rule to..E.| 00001fe0 20 f4 20 68 61 6c 66 77 61 79 20 74 68 72 6f 75 | . halfway throu| 00001ff0 67 68 20 62 6f 75 6e 64 61 72 79 0d 01 46 08 20 |gh boundary..F. | 00002000 f4 20 20 0d 01 47 24 20 f4 20 2d 2d 2d 2d 2d 2d |. ..G$ . ------| 00002010 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00002020 2d 2d 2d 2d 2d 2d 2d 0d 01 48 08 3d 26 33 33 0d |-------..H.=&33.| 00002030 01 49 04 0d 01 4a 18 dd 20 a4 50 61 74 68 5f 46 |.I...J.. .Path_F| 00002040 69 6c 6c 4e 65 67 61 74 69 76 65 0d 01 4b 24 20 |illNegative..K$ | 00002050 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |. --------------| 00002060 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d |---------------.| 00002070 01 4c 06 20 f4 0d 01 4d 23 20 f4 20 46 69 6c 6c |.L. ...M# . Fill| 00002080 73 20 75 73 69 6e 67 20 6e 65 67 61 74 69 76 65 |s using negative| 00002090 20 72 75 6c 65 20 74 6f 0d 01 4e 1f 20 f4 20 68 | rule to..N. . h| 000020a0 61 6c 66 77 61 79 20 74 68 72 6f 75 67 68 20 62 |alfway through b| 000020b0 6f 75 6e 64 61 72 79 0d 01 4f 08 20 f4 20 20 0d |oundary..O. . .| 000020c0 01 50 24 20 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |.P$ . ----------| 000020d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000020e0 2d 2d 2d 0d 01 51 08 3d 26 33 31 0d ff |---..Q.=&31..| 000020ed