feature: add IEC gates #11
| @@ -3,40 +3,20 @@ | |||||||
| #import "../element.typ" | #import "../element.typ" | ||||||
|  |  | ||||||
| #let default-draw-shape(id, tl, tr, br, bl, fill, stroke, symbol) = { | #let default-draw-shape(id, tl, tr, br, bl, fill, stroke, symbol) = { | ||||||
| 
					
					bono marked this conversation as resolved
					
				 | |||||||
|   let (x, y) = bl |   let shapes = draw.rect( | ||||||
|   let (width, height) = (tr.at(0) - x, tr.at(1) - y) |     inset: 0.5em, | ||||||
|  |     fill: fill, | ||||||
|   let t = (x + width / 2, y + height) |     stroke: stroke, | ||||||
|   let b = (x + width / 2, y) |  | ||||||
|  |  | ||||||
|   let f = draw.group( |  | ||||||
|     name: id, |     name: id, | ||||||
|     { |     bl, tr | ||||||
|       draw.merge-path( |  | ||||||
|         inset: 0.5em, |  | ||||||
|         fill: fill, |  | ||||||
|         stroke: stroke, |  | ||||||
|         name: id + "-path", |  | ||||||
|         close: true, |  | ||||||
|         { |  | ||||||
|           draw.line(bl, tl, tr, br) |  | ||||||
|         }, |  | ||||||
|       ) |  | ||||||
|  |  | ||||||
|       draw.content( |  | ||||||
|         (x + width / 2, y + height / 2), |  | ||||||
|         padding: 0.5em, |  | ||||||
|         align(center)[*$ symbol $*], |  | ||||||
|       ) |  | ||||||
|  |  | ||||||
|       draw.anchor("north", t)  |  | ||||||
|       draw.anchor("south", b) |  | ||||||
|     }, |  | ||||||
|   ) |   ) | ||||||
|   return (f, tl, tr, br, bl) |   shapes += draw.content( | ||||||
|  |     id + ".center", | ||||||
|  |     [*$ symbol $*] | ||||||
|  |   ) | ||||||
|  |   return (shapes, tl, tr, br, bl) | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| /// Draws a logic gate. This function is also available as `element.iec-gate()` | /// Draws a logic gate. This function is also available as `element.iec-gate()` | ||||||
| /// | /// | ||||||
| /// - draw-shape (function): see #doc-ref("element.elmt") | /// - draw-shape (function): see #doc-ref("element.elmt") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	
Here you can simplify this function greatly by just drawing a rectangle: