touchpad-edge-scrolling-state-machine.svg 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. <?xml version="1.0"?>
  2. <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1490px" height="1399px" version="1.1">
  3. <defs/>
  4. <g transform="translate(0.5,0.5)">
  5. <ellipse cx="261" cy="143" rx="63" ry="45.5" fill="#ccccff" stroke="#000000" stroke-width="2" pointer-events="none"/>
  6. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  7. <text x="261" y="126">NONE</text>
  8. <text x="261" y="140">on-entry:</text>
  9. <text x="261" y="154">edge = none</text>
  10. <text x="261" y="168">threshold = def</text>
  11. </g>
  12. <rect x="30" y="386" width="150" height="101" rx="6" ry="6" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
  13. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  14. <text x="105" y="419">EDGE_NEW</text>
  15. <text x="105" y="433">on-entry:</text>
  16. <text x="105" y="447">edge = get_edge()</text>
  17. <text x="105" y="461">set_timer()</text>
  18. </g>
  19. <rect x="348" y="386" width="130" height="100" rx="6" ry="6" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
  20. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  21. <text x="413" y="419">AREA</text>
  22. <text x="413" y="433">on-entry:</text>
  23. <text x="413" y="447">edge = none</text>
  24. <text x="413" y="461">set_pointer()</text>
  25. </g>
  26. <path d="M 237 7 C 239 4 243 2 246 2 L 275 2 C 278 2 282 4 284 7 L 301 30 C 301 31 301 33 301 34 L 284 57 C 282 60 278 62 275 62 L 246 62 C 243 62 239 60 237 57 L 220 34 C 220 33 220 31 220 30 L 237 7 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
  27. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  28. <text x="261" y="36">release</text>
  29. </g>
  30. <path d="M 237 222 C 239 219 243 217 246 217 L 276 217 C 279 217 283 219 285 222 L 303 245 C 303 246 303 248 303 249 L 285 272 C 283 275 279 277 276 277 L 246 277 C 243 277 239 275 237 272 L 219 249 C 219 248 219 246 219 245 L 237 222 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
  31. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  32. <text x="261" y="251">touch</text>
  33. </g>
  34. <path d="M 261 188 L 261 211" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  35. <path d="M 261 216 L 258 209 L 261 211 L 265 209 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  36. <path d="M 218 535 C 223 531 229 528 235 528 L 285 528 C 291 528 297 531 302 535 L 331 570 C 332 571 332 574 331 575 L 302 610 C 297 614 291 617 285 617 L 235 617 C 229 617 223 614 218 610 L 189 575 C 188 574 188 571 189 570 L 218 535 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
  37. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  38. <text x="260" y="563">touch,</text>
  39. <text x="260" y="577">edge &amp;= get_edge()</text>
  40. </g>
  41. <path d="M 220 526 L 158 487" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  42. <path d="M 224 529 L 217 528 L 220 526 L 220 522 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  43. <path d="M 105 617 L 105 650" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  44. <path d="M 105 656 L 101 649 L 105 650 L 108 649 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  45. <path d="M 478 436 L 498 436 Q 508 436 508 426 L 508 42 Q 508 32 498 32 L 307 32" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  46. <path d="M 302 32 L 309 29 L 307 32 L 309 36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  47. <path d="M 261 62 L 261 71 Q 261 80 261 85 L 261 91" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  48. <path d="M 261 96 L 257 89 L 261 91 L 264 89 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  49. <ellipse cx="1133" cy="67" rx="11" ry="11" fill="#000000" stroke="#ff0000" pointer-events="none"/>
  50. <path d="M 1133 82 L 1133 110 Q 1133 120 1133 130 L 1133 155" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  51. <path d="M 1129 147 L 1133 156 L 1138 147" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  52. <rect x="1083" y="12" width="100" height="40" fill="none" stroke="none" pointer-events="none"/>
  53. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  54. <text x="1133" y="36">tp_edge_scroll_post_events()</text>
  55. </g>
  56. <path d="M 1133 212 L 1193 242 L 1133 272 L 1073 242 Z" fill="#ffffc0" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  57. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  58. <text x="1133" y="246">dirty?</text>
  59. </g>
  60. <path d="M 1193 242 L 1278 242 Q 1288 242 1298 242 L 1456 242" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  61. <path d="M 1448 247 L 1457 242 L 1448 238" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  62. <g fill="#000000" font-family="Helvetica" font-size="11px">
  63. <rect fill="#ffffff" stroke="none" x="1225" y="223" width="18" height="18" stroke-width="0"/>
  64. <text x="1226" y="236">no</text>
  65. </g>
  66. <path d="M 1133 272 L 1133 285 Q 1133 295 1133 305 L 1133 316" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  67. <path d="M 1129 308 L 1133 317 L 1138 308" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  68. <g fill="#000000" font-family="Helvetica" font-size="11px">
  69. <rect fill="#ffffff" stroke="none" x="1150" y="292" width="24" height="18" stroke-width="0"/>
  70. <text x="1150" y="302">yes</text>
  71. </g>
  72. <ellipse cx="1473" cy="242" rx="11" ry="11" fill="#000000" stroke="#ff0000" pointer-events="none"/>
  73. <ellipse cx="1473" cy="242" rx="15" ry="15" fill="transparent" stroke="#ff0000" pointer-events="none"/>
  74. <rect x="1033" y="97" width="200" height="70" rx="28" ry="28" fill="#ffffc0" stroke="#ff0000" pointer-events="none"/>
  75. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  76. <text x="1133" y="115">current = buttons.state &amp; 0x01</text>
  77. <text x="1133" y="129">old = buttons.old_state &amp; 0x01</text>
  78. <text x="1133" y="143">button = 0</text>
  79. <text x="1133" y="157">is_top = 0</text>
  80. </g>
  81. <path d="M 1133 167 L 1133 180 Q 1133 190 1133 200 L 1133 210" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  82. <path d="M 1129 202 L 1133 211 L 1138 202" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  83. <rect x="1237" y="436" width="188" height="50" rx="20" ry="20" fill="#ffffc0" stroke="#ff0000" pointer-events="none"/>
  84. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  85. <text x="1331" y="458">notify_axis(last_axis, 0.0)</text>
  86. <text x="1331" y="472">last_axis = -1</text>
  87. </g>
  88. <path d="M 1134 516 L 1194 552 L 1134 587 L 1073 552 Z" fill="#ffffc0" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  89. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  90. <text x="1134" y="556">edge == right</text>
  91. </g>
  92. <path d="M 1194 552 L 1268 552 Q 1278 552 1278 553 L 1278 554 Q 1278 554 1268 554 L 1250 554" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  93. <path d="M 1258 550 L 1249 554 L 1258 559" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  94. <g fill="#000000" font-family="Helvetica" font-size="11px">
  95. <rect fill="#ffffff" stroke="none" x="1202" y="559" width="24" height="18" stroke-width="0"/>
  96. <text x="1203" y="569">yes</text>
  97. </g>
  98. <rect x="1248" y="534" width="160" height="40" rx="16" ry="16" fill="#ffffc0" stroke="#ff0000" pointer-events="none"/>
  99. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  100. <text x="1328" y="551">axis = scroll_vertical</text>
  101. <text x="1328" y="565">delta = dy</text>
  102. </g>
  103. <path d="M 1408 554 L 1468 554 Q 1478 554 1478 564 L 1478 952 Q 1478 962 1468 962 L 1233 962" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  104. <path d="M 1241 958 L 1232 962 L 1241 967" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  105. <path d="M 1133 318 L 1196 352 L 1133 387 L 1071 352 Z" fill="#ffffc0" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  106. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  107. <text x="1133" y="356">edge == none</text>
  108. </g>
  109. <path d="M 1134 386 L 1134 441 Q 1134 451 1134 461 L 1134 514" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  110. <path d="M 1129 506 L 1134 515 L 1138 506" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  111. <g fill="#000000" font-family="Helvetica" font-size="11px">
  112. <rect fill="#ffffff" stroke="none" x="1135" y="449" width="18" height="18" stroke-width="0"/>
  113. <text x="1136" y="458">no</text>
  114. </g>
  115. <path d="M 1133 657 L 1194 692 L 1133 727 L 1072 692 Z" fill="#ffffc0" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  116. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  117. <text x="1133" y="696">edge == bottom</text>
  118. </g>
  119. <path d="M 1194 692 L 1208 692 Q 1218 692 1228 692 L 1249 692" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  120. <path d="M 1241 697 L 1250 692 L 1241 688" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  121. <g fill="#000000" font-family="Helvetica" font-size="11px">
  122. <rect fill="#ffffff" stroke="none" x="1213" y="700" width="24" height="18" stroke-width="0"/>
  123. <text x="1214" y="709">yes</text>
  124. </g>
  125. <path d="M 1134 587 L 1133 587 Q 1133 587 1133 597 L 1133 647 Q 1133 657 1133 656 L 1133 655" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  126. <path d="M 1129 647 L 1133 656 L 1138 647" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  127. <g fill="#000000" font-family="Helvetica" font-size="11px">
  128. <rect fill="#ffffff" stroke="none" x="1135" y="607" width="18" height="18" stroke-width="0"/>
  129. <text x="1135" y="621">no</text>
  130. </g>
  131. <rect x="1251" y="672" width="160" height="40" rx="16" ry="16" fill="#ffffc0" stroke="#ff0000" pointer-events="none"/>
  132. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  133. <text x="1331" y="689">axis = scroll_horizontal</text>
  134. <text x="1331" y="703">delta = dx</text>
  135. </g>
  136. <path d="M 1133 727 L 1133 727 Q 1134 727 1134 737 L 1134 807 Q 1134 817 1134 816 L 1134 815" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  137. <path d="M 1129 807 L 1134 816 L 1138 807" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  138. <g fill="#000000" font-family="Helvetica" font-size="11px">
  139. <rect fill="#ffffff" stroke="none" x="1135" y="756" width="18" height="18" stroke-width="0"/>
  140. <text x="1136" y="770">no</text>
  141. </g>
  142. <rect x="1036" y="917" width="195" height="90" rx="36" ry="36" fill="#ffffc0" stroke="#ff0000" pointer-events="none"/>
  143. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  144. <text x="1134" y="966">get_delta()</text>
  145. </g>
  146. <path d="M 1134 1007 L 1134 1037 Q 1134 1047 1134 1057 L 1134 1070" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  147. <path d="M 1129 1062 L 1134 1071 L 1138 1062" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  148. <path d="M 1411 692 L 1468 692 Q 1478 692 1478 702 L 1478 952 Q 1478 962 1468 962 L 1233 962" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  149. <path d="M 1241 958 L 1232 962 L 1241 967" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  150. <rect x="1031" y="1197" width="205" height="90" rx="36" ry="36" fill="#ffffc0" stroke="#ff0000" pointer-events="none"/>
  151. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  152. <text x="1134" y="1232">notify_axis(axis, delta)</text>
  153. <text x="1134" y="1246">last_axis = axis</text>
  154. <text x="1134" y="1260">emit(scroll_event_posted)</text>
  155. </g>
  156. <path d="M 1134 1072 L 1200 1107 L 1134 1142 L 1067 1107 Z" fill="#ffffc0" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  157. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  158. <text x="1134" y="1111">delta &lt; threshold</text>
  159. </g>
  160. <path d="M 1200 1107 L 1318 1107 Q 1328 1107 1338 1107 L 1456 1107" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  161. <path d="M 1448 1112 L 1457 1107 L 1448 1103" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  162. <g fill="#000000" font-family="Helvetica" font-size="11px">
  163. <rect fill="#ffffff" stroke="none" x="1259" y="1118" width="24" height="18" stroke-width="0"/>
  164. <text x="1260" y="1131">yes</text>
  165. </g>
  166. <path d="M 1134 1142 L 1134 1160 Q 1134 1170 1134 1180 L 1134 1195" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  167. <path d="M 1129 1187 L 1134 1196 L 1138 1187" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  168. <g fill="#000000" font-family="Helvetica" font-size="11px">
  169. <rect fill="#ffffff" stroke="none" x="1135" y="1150" width="18" height="18" stroke-width="0"/>
  170. <text x="1136" y="1159">no</text>
  171. </g>
  172. <ellipse cx="1473" cy="1107" rx="11" ry="11" fill="#000000" stroke="#ff0000" pointer-events="none"/>
  173. <ellipse cx="1473" cy="1107" rx="15" ry="15" fill="transparent" stroke="#ff0000" pointer-events="none"/>
  174. <ellipse cx="1473" cy="352" rx="11" ry="11" fill="#000000" stroke="#ff0000" pointer-events="none"/>
  175. <ellipse cx="1473" cy="352" rx="15" ry="15" fill="transparent" stroke="#ff0000" pointer-events="none"/>
  176. <path d="M 1331 318 L 1394 352 L 1331 387 L 1269 352 Z" fill="#ffffc0" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  177. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  178. <text x="1331" y="356">last_axis != -1</text>
  179. </g>
  180. <rect x="30" y="657" width="150" height="101" rx="6" ry="6" fill="#ccffcc" stroke="#000000" stroke-width="2" pointer-events="none"/>
  181. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  182. <text x="105" y="697">EDGE</text>
  183. <text x="105" y="711">on-entry:</text>
  184. <text x="105" y="725">threshold = 0.01</text>
  185. </g>
  186. <path d="M 30 707 L 18 707 Q 8 707 8 697 L 8 42 Q 8 32 18 32 L 214 32" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  187. <path d="M 219 32 L 212 36 L 214 32 L 212 29 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  188. <path d="M 30 436 L 18 436 Q 8 436 8 426 L 8 42 Q 8 32 18 32 L 214 32" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  189. <path d="M 219 32 L 212 36 L 214 32 L 212 29 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  190. <path d="M 64 535 C 68 531 74 528 80 528 L 130 528 C 136 528 142 531 146 535 L 175 570 C 176 571 176 574 175 575 L 146 610 C 142 614 136 617 130 617 L 80 617 C 74 617 68 614 64 610 L 35 575 C 34 574 34 571 35 570 L 64 535 Z" fill="#ffd966" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/>
  191. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  192. <text x="105" y="563">timeout ||</text>
  193. <text x="105" y="577">scroll_event_posted</text>
  194. </g>
  195. <path d="M 105 487 L 105 522" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  196. <path d="M 105 527 L 102 520 L 105 522 L 109 520 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  197. <path d="M 260 528 L 261 472" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  198. <path d="M 261 467 L 264 474 L 261 472 L 257 474 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  199. <path d="M 1196 352 L 1222 352 Q 1232 352 1242 352 L 1266 352" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  200. <path d="M 1258 357 L 1267 352 L 1258 348" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  201. <g fill="#000000" font-family="Helvetica" font-size="11px">
  202. <rect fill="#ffffff" stroke="none" x="1224" y="360" width="24" height="18" stroke-width="0"/>
  203. <text x="1224" y="369">yes</text>
  204. </g>
  205. <path d="M 1331 387 L 1331 401 Q 1331 411 1331 421 L 1331 434" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  206. <path d="M 1327 426 L 1331 435 L 1336 426" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  207. <g fill="#000000" font-family="Helvetica" font-size="11px">
  208. <rect fill="#ffffff" stroke="none" x="1333" y="394" width="24" height="18" stroke-width="0"/>
  209. <text x="1333" y="403">yes</text>
  210. </g>
  211. <path d="M 1394 352 L 1408 352 Q 1418 352 1428 352 L 1456 352" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  212. <path d="M 1448 357 L 1457 352 L 1448 348" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  213. <g fill="#000000" font-family="Helvetica" font-size="11px">
  214. <rect fill="#ffffff" stroke="none" x="1417" y="360" width="18" height="18" stroke-width="0"/>
  215. <text x="1418" y="369">no</text>
  216. </g>
  217. <ellipse cx="1473" cy="461" rx="11" ry="11" fill="#000000" stroke="#ff0000" pointer-events="none"/>
  218. <ellipse cx="1473" cy="461" rx="15" ry="15" fill="transparent" stroke="#ff0000" pointer-events="none"/>
  219. <path d="M 1425 461 L 1438 461 Q 1448 461 1452 461 L 1456 461" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  220. <path d="M 1448 466 L 1457 461 L 1448 457" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  221. <ellipse cx="1134" cy="832" rx="11" ry="11" fill="#000000" stroke="#ff0000" pointer-events="none"/>
  222. <ellipse cx="1134" cy="832" rx="15" ry="15" fill="transparent" stroke="#ff0000" pointer-events="none"/>
  223. <ellipse cx="1134" cy="1382" rx="11" ry="11" fill="#000000" stroke="#ff0000" pointer-events="none"/>
  224. <ellipse cx="1134" cy="1382" rx="15" ry="15" fill="transparent" stroke="#ff0000" pointer-events="none"/>
  225. <path d="M 1134 1287 L 1134 1365" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  226. <path d="M 1130 1359 L 1134 1366 L 1137 1359" fill="none" stroke="#ff0000" stroke-miterlimit="10" pointer-events="none"/>
  227. <path d="M 261 277 L 261 299" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  228. <path d="M 261 304 L 258 297 L 261 299 L 265 297 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  229. <path d="M 208 337 L 115 337 Q 105 337 105 347 L 105 376 Q 105 386 105 382 L 105 378" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  230. <path d="M 105 385 L 100 376 L 105 378 L 109 376 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  231. <g fill="#000000" font-family="Helvetica" font-size="11px">
  232. <rect fill="#ffffff" stroke="none" x="174" y="345" width="24" height="18" stroke-width="0"/>
  233. <text x="175" y="354">yes</text>
  234. </g>
  235. <path d="M 314 337 L 403 337 Q 413 337 413 347 L 413 376 Q 413 386 413 382 L 413 378" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  236. <path d="M 413 385 L 408 376 L 413 378 L 417 376 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  237. <g fill="#000000" font-family="Helvetica" font-size="11px">
  238. <rect fill="#ffffff" stroke="none" x="350" y="345" width="18" height="18" stroke-width="0"/>
  239. <text x="350" y="354">no</text>
  240. </g>
  241. <path d="M 261 305 L 314 337 L 261 369 L 208 337 Z" fill="#ffd966" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  242. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  243. <text x="261" y="341">get_edge()</text>
  244. </g>
  245. <path d="M 261 406 L 309 436 L 261 466 L 213 436 Z" fill="#ffd966" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  246. <g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
  247. <text x="261" y="440">edge</text>
  248. </g>
  249. <path d="M 309 436 L 319 436 Q 328 436 334 436 L 340 436" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  250. <path d="M 347 436 L 338 441 L 340 436 L 338 432 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  251. <g fill="#000000" font-family="Helvetica" font-size="11px">
  252. <rect fill="#ffffff" stroke="none" x="311" y="444" width="18" height="18" stroke-width="0"/>
  253. <text x="311" y="453">no</text>
  254. </g>
  255. <path d="M 213 436 L 211 436 Q 208 436 198 436 L 188 436" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  256. <path d="M 181 436 L 190 432 L 188 436 L 190 441 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
  257. <g fill="#000000" font-family="Helvetica" font-size="11px">
  258. <rect fill="#ffffff" stroke="none" x="189" y="444" width="24" height="18" stroke-width="0"/>
  259. <text x="190" y="453">yes</text>
  260. </g>
  261. </g>
  262. </svg>