diff --git a/Draw-List.md b/Draw-List.md index 7bcda71..eb2a370 100644 --- a/Draw-List.md +++ b/Draw-List.md @@ -111,36 +111,35 @@ When switching from legacy AddLine() values to `AddLineV()`/`AddLineH()` you can If you have lines that form a continuous shape use the Path functions or `AddPolyline()` instead. They will handle the joins between the lines. They both support `ImDrawFlags_Closed` which will closes the shape by creating a segment automatically between first and last point. +![Line 0](drawlist/line_0.svg) + ``` -AddLine({ 1,2 }, { 5,2 }) +A, B) AddLine({ 1,2 }, { 5,2 }) ``` **Before**: 0.5px offset, no AA line ends. The start pixel is covered due to the rasterization filling rules, and the end pixel is not for same reason. -![Line 0](drawlist/line_0.svg) - **After**: Offset is removed so the line is centered around the input coordinates. Existing uses will appear blurred since the only half of the pixels are covered. ![Line 1](drawlist/line_1.svg) -**FIXME: Missing a "after" AddLine() example that looks correct, even if also suggesting to use AddLineH().** - ``` -AddLine({ 1.5,2.5 }, { 5.5,2.5 }) +C) AddLine({ 1.5,2.5 }, { 5.5,2.5 }) ``` **After**: If we were to add the 0.5px offset back, then then the line would look crisp as before, but the line ends were blurred, since the line covers only half a pixel on each end. -![Line 2](drawlist/line_2.svg) - - ``` -AddLineH( {1,5}, 2) +D) AddLine({ 1,2.5 }, { 5,2.5 }) ``` -**Migration**: Horizontal and vertical lines are recommended to be replaced with `AddLineH()` and `AddLineV()`. Other use cases might require tweaking. Some use cases we've had to fix already compensated for the 0.5px offset, which can now be removed. Stroke position `ImDrawFlags_StrokeLegacy` can be used in cases which are deemed too tricky to fix, and old behavior should be used. +**Migration**: The line should cover the pixel we want to fill fully. One way to do that is to draw horizontal lines offset by half the thickness. In this case the thickness is 1, so we offset by 0.5px. -![Line 3](drawlist/line_3.svg) +``` +E) AddLineH( {1,5}, 2) +``` + +**Migration**: Offsetting the lines can be tedious and a simpler way is to use the stroke offset. You can draw the line using “stroke position = inside”. Then the stroke is expanded to just one side of the line, which allows you to use nice round numbers for defining the geometry, and any integer thickness will look crisp. @@ -161,21 +160,18 @@ Optimized rendering is used, if the horizontal line is drawn on integer coordina `AddLineH()` used to be implemented similarly as `AddLine()` and had the same 0.5px offset and missing anti-aliased end caps. +![LineH 0](drawlist/lineh_0.svg) + ``` -AddLineH( {1,5}, 2) +A, B) AddLineH( {1,5}, 2) ``` **Before**: 0.5px offset, no AA line ends. The start pixel is covered due to the rasterization filling rules, and the end pixel is not for same reason. -![LineH 0](drawlist/lineh_0.svg) - - **After**: The default stroke position for `AddLineH()` is **Inside**, which means that 1px lines will look the same as before, and thicker lines will grow below the specified line. -![LineH 1](drawlist/lineh_1.svg) - ### `AddLineV(x, min_y, max_y, col, thickness, flags)` @@ -195,20 +191,18 @@ Optimized rendering is used, if the vertical line is drawn on integer coordinate `AddLineV()` used to have the same 0.5px offset as AddLine(). The offset was removed,. +![LineV 0](drawlist/linev_0.svg) + ``` -AddLineV(2, {1,5}) +A, B) AddLineV(2, {1,5}) ``` **Before**: 0.5px offset, no AA line ends The start pixel is covered due to the rasterization filling rules, and the end pixel is not for same reason. -![LineV 0](drawlist/linev_0.svg) - **After**: -The default stroke position for `AddLineV()` is "inside", which means that 1px lines will look the same as before, and thicker lines will grow below the specified line. - -![LineV 1](drawlist/linev_1.svg) +The default stroke position for `AddLineV()` is **Inside**, which means that 1px lines will look the same as before, and thicker lines will grow below the specified line. @@ -253,18 +247,18 @@ As the offset was fixed, thicker lines would still render with that half pixel o The 0.5px offset is now removed, and the user can use the stroke position to place the stroke inside, center, outside of the shape, inside being the default. +![Rect 0](drawlist/rect_0.svg) + ``` -AddRect({ 1,1 }, { 7,7 }, 1) -AddRect({ 2,2 }, { 6,6 }, 2) +A) AddRect({ 1,1 }, { 7,7 }, 1) +B) AddRect({ 2,2 }, { 6,6 }, 2) ``` **Before**: Fixed 0.5px offset on all thickness. This resulted blurred lines on even thicknesses. -![Rect 0](drawlist/rect_0.svg) ![Rect 1](drawlist/rect_1.svg) - ``` -AddRect({ 2,2 }, { 6,6 }, 2) +C) AddRect({ 2,2 }, { 6,6 }, 2) ``` **Migration**: @@ -272,8 +266,6 @@ By default, the stroke is placed inside the shape. The uses of `AddRect()` that use 1px thickness will work as before. Other uses of `AddRect()` should be reviewed to see if the intended use was to draw the stroke at center or inside of the shape. -![Rect 2](drawlist/rect_2.svg) - ### `AddRectFilled(p_min, p_max, col, rounding, flags)` @@ -289,20 +281,18 @@ Optimized rendering is used when the coordinates are integer, and rounding is sm `AddRectFilled()` used to always draw non-rounded rectangle without anti-aliasing. Now it renders with anti-aliasing. The optimized rendering case for integer coords matches the previous non-AA rendering. +![Rect Filled 0](drawlist/rect_filled_0.svg) + ``` -AddRectFilled({ 1,1 }, {7,4.5} ) +A,B) AddRectFilled({ 1,1 }, {7,4.5} ) ``` **Before**: Non-rounded rectangles did not have anti-aliasing. -![Rect Filled 0](drawlist/rect_filled_0.svg) - - **After**: Rectangles which are draw on non-integer coordinates are anti-aliased. -![Rect Filled 1](drawlist/rect_filled_1.svg) @@ -312,7 +302,9 @@ Rectangles which are draw on non-integer coordinates are anti-aliased. ![Circle](drawlist/circle_basics.svg) -Draws stroked circle at **center** using **radius**, with specified color and thickness. The default thickness is **1.0**, and default stroke position is **Inside**. Stroke Position flags can be used. +Draws stroked circle at **center** using **radius**, with specified color, segment count, and thickness. + +The default segment count is **0** (calculate count automatically based on radius), thickness is **1.0**, and default stroke position is **Inside**. Stroke Position flags can be used. The rendering code handles corners cases robustly, like stroke thickness that would completely cover the inside of the shape will fallback to rendering to filled circle instead. @@ -339,7 +331,7 @@ Draws filled circle at **center** using **radius**, with specified color. Draws stroked ellipse at **center** using **radius** (separate for x, y), with specified rotation, color, segment count and thickness. -The default rotation is *0*, segment count is *0* (calculate count automatically based on radius), default thickness is **1.0**, and default stroke position is **Inside**. Stroke Position flags can be used. +The default rotation is **0**, segment count is *0* (calculate count automatically based on radius), default thickness is **1.0**, and default stroke position is **Inside**. Stroke Position flags can be used. Stroked ellipse drawing is more complicated than other shapes and it does not handle all degenerate inputs, like thick thickness compared to ellipse size, as well as other shapes. @@ -362,7 +354,7 @@ Draws filled ellipse at **center** using **radius** (separate for x, y), with sp The default rotation is *0*, segment count is *0* (calculate count automatically based on radius). -## N-Gons +## Polygons ### `AddNgon(center, radius, col, num_segments, thickness, flags)` @@ -392,13 +384,52 @@ The 0.5px offset is now removed, and the user can use the stroke position to pla Draws filled regular polygon at **center** using circumcircle **radius**, with specified color, and segment count. +### `AddQuad(p1, p2, p3, p4, col, thickness, flags)` + +![Quad polygon](drawlist/quad_basics.svg) + +Draws arbitrary stroked quad (4 cornered closed polyline) described by **p1**, **p2**, **p3**, **p4**, with specified color, and thickness. + +The default thickness is **1.0**, and default stroke position is **Inside**. Stroke Position flags can be used. + +The points should be wound counter clockwise and should not self-intersect. Internally calls `AddPolyline()`, see the method for more information. + + +### `AddQuadFilled(p1, p2, p3, p4, col)` + +Draws arbitrary filled quad (4 cornered polygon) described by **p1**, **p2**, **p3**, **p4**, with specified color. + +The points should be wound counter clockwise and should not self-intersect. Internally calls `AddConvexPolyFilled()`, see the method for more information. + + +### `AddTriangle(p1, p2, p3, col, thickness, flags)` + +![Triangle polygon](drawlist/triangle_basics.svg) + +Draws arbitrary stroked triangle (3 cornered closed polyline) described by **p1**, **p2**, **p3**, with specified color, and thickness. + +The default thickness is **1.0**, and default stroke position is **Inside**. Stroke Position flags can be used. + +The points should be wound counter clockwise. Internally calls `AddPolyline()`, see the method for more information. + + +### `AddTriangleFilled(p1, p2, p3, col)` + +Draws arbitrary filled triangle (3 cornered polygon) described by **p1**, **p2**, **p3**, with specified color. + +The points should be wound counter clockwise. Internally calls `AddPolyline()`, see the method for more information. + + + ## General Polygons ### `AddPolyline(points, num_points, col, thickness, flags)` ![Polyline](drawlist/polyline_basics.svg) -Draws stroked polyline described by **points** and **num_points**, with specified color, and thickness. Stroke Position and Stroke Options flags can be used. +Draws stroked polyline described by **points** and **num_points**, with specified color, and thickness. + +The default thickness is **1.0**, and default stroke position is **Center**. Stroke Position and Stroke Options flags can be used. ![Polyline 0](drawlist/polyline_0.svg) @@ -442,7 +473,7 @@ Swapped the trailing parameters `flags` and `thickness`. See `AddRect()` section The algorithm to render lines got overhauled. -![Polyline 0](drawlist/polyline_0.svg) +![Polyline 0](drawlist/polyline_1.svg) Previous the polyline rendering would expand the stroke along the normal at each polyline vertex. This caused inconsistent line width, which very noticeable when the polyline has sharper corners. @@ -452,9 +483,11 @@ The line ends are now anti-aliased. This solves missing pixels at line ends and ### `AddConvexPolyFilled(points, num_points, col)` -Draws filled polygon described by **points** and **num_points**, with specified color. Stroke Options flags can be used. +![Convex poly](drawlist/convex_polygon_basics.svg) -The polygon must be wound in clock wise order. +Draws convex filled polygon described by **points** and **num_points**, with specified color. + +The polygon must be wound in clock wise order, the shape must be convex and does not have self-intersections. The rendering expands small faded fringe around the polygon for anti-aliasing. To keep the expansion robust, the polygon rendering bevels really sharp corners, and clamps long miters in inner corners. As the fringe is 1px wide, it can cause issues when trying to render long thin polygons whose smallest extent is less than 1px. @@ -471,77 +504,142 @@ The rendering of sharp corners was improved. Earlier there were issues with shar - ---- - ---- - ---- - - ### `AddConcavePolyFilled(points, num_points, col)` +![Concave poly](drawlist/concave_polygon_basics.svg) -### `AddQuad(p1, p2, p3, p4, col, thickness)` +Draws filled polygon described by **points** and **num_points**, with specified color. Stroke Options flags can be used. -![Quad polygon](drawlist/quad_basics.svg) +The polygon must be wound in clock wise order and does not have self-intersections. -Works as before. Support for stroke position was added. Fixes and improvements to `AddPolyline()` also apply. - -### `AddQuadFilled(p1, p2, p3, p4, col)`
`AddTriangleFilled(p1, p2, p3, col)` - -Works as before. Fixes and improvements to `AddConvexPolyFilled()` for sharp corners also apply. +The concave polygon fill is more expensive than convex one: it has O(N^2) complexity. Provided as a convenience for the user but not used by the main library. -### `AddTriangle(p1, p2, p3, col, thickness)` +## Curves -![Triangle polygon](drawlist/triangle_basics.svg) - -Works as before. Support for stroke position was added. Fixes and improvements to `AddPolyline()` also apply. - -### `AddTriangleFilled(p1, p2, p3, col)`
`AddTriangleFilled(p1, p2, p3, col)` - -Works as before. Fixes and improvements to `AddConvexPolyFilled()` for sharp corners also apply. - - -### `AddBezierCubic(p1, p2, p3, p4, col, thickness, num_segments)` +### `AddBezierCubic(p1, p2, p3, p4, col, thickness, num_segments, flags)` ![Cubic Bezier](drawlist/bezier_cubic_basics.svg) -Works as before. Support for stroke position was added. Fixes and improvements to `AddPolyline()` also apply. +Draws stroked cubic bezier curve described by **p1**, **p2**, **p3**, and **p4**, with specified color, thickness, and segment count. + +The default thickness is **1.0**, default segment count is **0** (automatic based on error tolerance), and default stroke position is **Center**. Stroke Position and Stroke Options flags can be used. -### `AddBezierQuadratic(p1, p2, p3, col, thickness, num_segments)` +### `AddBezierQuadratic(p1, p2, p3, col, thickness, num_segments, flags)` ![Quadratic Bezier](drawlist/bezier_quad_basics.svg) -Works as before. Support for stroke position was added. Fixes and improvements to `AddPolyline()` also apply. - +Draws stroked quadratic bezier curve described by **p1**, **p2**, and **p3**, with specified color, thickness, and segment count. + +The default thickness is **1.0**, default segment count is **0** (automatic based on error tolerance), and default stroke position is **Center**. Stroke Position and Stroke Options flags can be used. +## Images and Gradients ### `AddImageRounded(tex_ref, p_min, p_max, uv_min, uv_max, col, rounding, flags)` -Works as before. +Draws rectangle filled with image **ref_ref** from **p_min** (top-left) to **p_max** ( bottom-right), with specified input image UV-coordinates, color, and rounding. ### `AddImage(tex_ref, p_min, p_max, uv_min, uv_max, col)` + +Draws rectangle filled with image **ref_ref** from **p_min** (top-left) to **p_max** ( bottom-right), with specified input image UV-coordinates, and color. + +The default UV-coordinates are **(0,0) - (1,1)** (the whole input image). + +Note: The method renders the image without anti-aliasing. + + ### `AddImageQuad(tex_ref, p1, p2, p3, p4, uv1, uv2, uv3, uv4, col)` + +Draws quad (4 cornered polygon) filled with image **ref_ref** described by **p1**, **p2**, **p3**, **p4**, with specified input image UV-coordinates, and color. + +The points should be wound counter clockwise and should not self-intersect. + +Note: The method renders the image without anti-aliasing. + + ### `AddRectFilledMultiColor(p_min, p_max, col_upr_left, col_upr_right, col_bot_right, col_bot_left)` -Works as before. Note: does not support anti-aliasing when non-integer coordinates are passed. +Draws filled multi-colored rectangle **p_min** (top-left) to **p_max** ( bottom-right), with specified specified colors. + +Note: The method renders the image without anti-aliasing. + + +## Paths + +The path rendering has stateful API which allows to stage a path one part at a time, and methods that strokes or fills the currently staged path. + +**Important**: filled shapes must always use clockwise winding order! The anti-aliasing depends on it. Counter-clockwise shapes will have "inward" anti-aliasing. +So e.g. `PathArcTo(center, radius, PI * -0.5f, PI)` is ok, whereas `PathArcTo(center, radius, PI, PI * -0.5f)` won't have correct anti-aliasing when followed by `PathFillConvex()`. + + +### `PathClear()` + +Clears the currently staged path. + +### `PathLineTo(pos)` + +Adds point **pos** to the currently staged path. If called on empty path, defines the start of the path. + +### `PathLineToMergeDuplicate(pos)` + +Adds point **pos** to the currently staged path, if the point is different than the previous one or path is empty. + +### `PathArcTo(center, radius, a_min, a_max, num_segments)` + +Adds arc segment to the path, centered at **center**, using **radius**, sweeping from **a_min** to **a_max**, with specified number of segments. + +The angle is clockwise, 0 degrees at 3 o'clock. + +The default segment count is *0* (calculate count automatically based on radius). + +### `PathArcToFast(center, radius, a_min_of_12, a_max_of_12)` + +Adds arc segment to the path, centered at **center**, using **radius**, sweeping from **a_min_of_12** to **a_max_of_12**. + +The angle is clockwise, one of the 12 angles (0-360), 0 degrees at 3 o'clock. + +The function uses pre calculated angles, and does not call expensive sin/cos. The number of segments is calculated automatically based on radius. + +### `PathEllipticalArcTo(center, radius, rot, a_min, a_max, num_segments)` + +Adds elliptic arc segment at **center** using **radius** (separate for x, y), with rotation, sweeping from **a_min** to **a_max**, with specified number of segments.. + +The angle is clockwise, 0 degrees at 3 o'clock. + +The default segment count is *0* (calculate count automatically based on radius). + +### `PathBezierCubicCurveTo(p2, p3, p4, num_segments)` + +Adds cubic bezier curve described by *last path point*, **p2**, **p3**, and **p4**, with specified number of segments.. + +The default segment count is *0* (calculate count automatically based on curvature). + +### `PathBezierQuadraticCurveTo(p2, p3, num_segments)` + +Adds quadratic bezier curve described by *last path point*, **p2**, and **p3**, with specified number of segments.. + +The default segment count is *0* (calculate count automatically based on curvature). + +### `PathRect(rect_min, rect_max, rounding, flags)` + +Adds rectangle from **p_min** (top-left) to **p_max** ( bottom-right), rounding. + +The default rounding is **0.0**. Corner Rounding flags can be used. + +Corner rounding is clamped to fit inside the rectangle bounds. ### `PathStroke(col, thickness, flags)` -Works as before. Support for stroke position was added. Fixes and improvements to `AddPolyline()` also apply. - -### `PathFillConcave(col)` - -Works as before. +Strokes the staged path using `AddPolyline()` and clears the path. See `AddPolyline()` for more information. ### `PathFillConvex(col)` -Works as before. The general improvements to `AddConvexPolyFilled()` apply to the convex filled path too. +Fills the staged path using `AddConvexPolyFilled()` and clears the path. See `AddConvexPolyFilled()` for more information. +### `PathFillConcave(col)` +Fills the staged path using `AddConcavePolyFilled()` and clears the path. See `AddConcavePolyFilled()` for more information. diff --git a/drawlist/bezier_cubic_basics.svg b/drawlist/bezier_cubic_basics.svg index 143731a..ff0df17 100644 --- a/drawlist/bezier_cubic_basics.svg +++ b/drawlist/bezier_cubic_basics.svg @@ -1,15 +1,15 @@ - - +inside +outside - - - - +p1 +p2 +p3 +p4 diff --git a/drawlist/bezier_quad_basics.svg b/drawlist/bezier_quad_basics.svg index 67f7c45..c3861eb 100644 --- a/drawlist/bezier_quad_basics.svg +++ b/drawlist/bezier_quad_basics.svg @@ -1,13 +1,13 @@ - - +inside +outside - - - +p1 +p2 +p3 diff --git a/drawlist/circle_basics.svg b/drawlist/circle_basics.svg index 4a7c5d1..7a1ac4e 100644 --- a/drawlist/circle_basics.svg +++ b/drawlist/circle_basics.svg @@ -1,10 +1,10 @@ - - - - +inside +center +radius +outside diff --git a/drawlist/comcave_polygon_basics.svg b/drawlist/comcave_polygon_basics.svg new file mode 100644 index 0000000..c8e77d5 --- /dev/null +++ b/drawlist/comcave_polygon_basics.svg @@ -0,0 +1,18 @@ + + +points[3] +points[1] + +points[0] + + + + +points[4] +points[2] + + + + + + diff --git a/drawlist/concave_polygon_basics.svg b/drawlist/concave_polygon_basics.svg new file mode 100644 index 0000000..062a024 --- /dev/null +++ b/drawlist/concave_polygon_basics.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/drawlist/convex_polygon_basics.svg b/drawlist/convex_polygon_basics.svg new file mode 100644 index 0000000..9f652cd --- /dev/null +++ b/drawlist/convex_polygon_basics.svg @@ -0,0 +1,18 @@ + + + + + + + +points[0] +points[1] +points[2] +points[3] +points[4] + + + + + + diff --git a/drawlist/ellipse_basics.svg b/drawlist/ellipse_basics.svg index 30b8a9e..0b99546 100644 --- a/drawlist/ellipse_basics.svg +++ b/drawlist/ellipse_basics.svg @@ -2,12 +2,12 @@ - - +inside +outside - - - +center +radius.x +radius.y diff --git a/drawlist/line_0.svg b/drawlist/line_0.svg index f75e2a6..1545854 100644 --- a/drawlist/line_0.svg +++ b/drawlist/line_0.svg @@ -1,29 +1,61 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0 +0,0 +X +X +Y +Y + + + + + + + + + + + + + + +A +B diff --git a/drawlist/line_1.svg b/drawlist/line_1.svg index 32a9bd6..9e61768 100644 --- a/drawlist/line_1.svg +++ b/drawlist/line_1.svg @@ -1,33 +1,85 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0 +0,0 +0,0 +X +X +X +Y +Y +Y + + + + + + + + + + + + + + + + + + + + + +C +D +E diff --git a/drawlist/line_2.svg b/drawlist/line_2.svg deleted file mode 100644 index 576cad4..0000000 --- a/drawlist/line_2.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/drawlist/line_3.svg b/drawlist/line_3.svg deleted file mode 100644 index a917ffe..0000000 --- a/drawlist/line_3.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/drawlist/line_basics.svg b/drawlist/line_basics.svg index 550e7f5..055f724 100644 --- a/drawlist/line_basics.svg +++ b/drawlist/line_basics.svg @@ -3,8 +3,8 @@ - - - - +inside +outside +p1 +p2 diff --git a/drawlist/line_flags.svg b/drawlist/line_flags.svg index ed99e25..7fa0c1e 100644 --- a/drawlist/line_flags.svg +++ b/drawlist/line_flags.svg @@ -4,9 +4,9 @@ -Normal -SquareCap -NoAAEnds +Normal +SquareCap +NoAAEnds diff --git a/drawlist/lineh_0.svg b/drawlist/lineh_0.svg index 2ba79c1..c593c1c 100644 --- a/drawlist/lineh_0.svg +++ b/drawlist/lineh_0.svg @@ -1,5 +1,5 @@ - - + + @@ -16,9 +16,10 @@ - - - +0,0 +0,0 +X +Y @@ -26,4 +27,31 @@ + + + + + + + + + + + + + + + + +X +Y + + + + + + + +A +B diff --git a/drawlist/lineh_1.svg b/drawlist/lineh_1.svg deleted file mode 100644 index 9dd7dcc..0000000 --- a/drawlist/lineh_1.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/drawlist/lineh_basics.svg b/drawlist/lineh_basics.svg index f85b486..1319504 100644 --- a/drawlist/lineh_basics.svg +++ b/drawlist/lineh_basics.svg @@ -3,9 +3,9 @@ - - - - - +inside +y +min_x +max_x +outside diff --git a/drawlist/linev_0.svg b/drawlist/linev_0.svg index a84a84a..e45b3a1 100644 --- a/drawlist/linev_0.svg +++ b/drawlist/linev_0.svg @@ -1,5 +1,5 @@ - - + + @@ -17,9 +17,9 @@ - - - +0,0 +X +Y @@ -27,4 +27,33 @@ + + + + + + + + + + + + + + + + + +0,0 +X +Y + + + + + + + +A +B diff --git a/drawlist/linev_1.svg b/drawlist/linev_1.svg deleted file mode 100644 index c47adf8..0000000 --- a/drawlist/linev_1.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/drawlist/linev_basics.svg b/drawlist/linev_basics.svg index ee8bff0..29c3c4b 100644 --- a/drawlist/linev_basics.svg +++ b/drawlist/linev_basics.svg @@ -3,9 +3,9 @@ - - - - - +inside +x +min_y +max_y +outside diff --git a/drawlist/miter_only.svg b/drawlist/miter_only.svg index bccbea4..25dcf09 100644 --- a/drawlist/miter_only.svg +++ b/drawlist/miter_only.svg @@ -38,6 +38,6 @@ -MiterOnly -Default +MiterOnly +Default diff --git a/drawlist/ngon_basics.svg b/drawlist/ngon_basics.svg index ac59509..6595ba4 100644 --- a/drawlist/ngon_basics.svg +++ b/drawlist/ngon_basics.svg @@ -1,11 +1,11 @@ - - - - - + +inside +center +radius +outside diff --git a/drawlist/polyline_0.svg b/drawlist/polyline_0.svg index 86f6857..2d1feae 100644 --- a/drawlist/polyline_0.svg +++ b/drawlist/polyline_0.svg @@ -1,23 +1,15 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + +Miter join +Bevel join + +thickness +miter scale + diff --git a/drawlist/polyline_1.svg b/drawlist/polyline_1.svg new file mode 100644 index 0000000..2f5c96d --- /dev/null +++ b/drawlist/polyline_1.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + +Miter join +Old +Bevel join + +thickness +miter scale +thickness +thickness + + + diff --git a/drawlist/polyline_basics.svg b/drawlist/polyline_basics.svg index 9394725..85bb550 100644 --- a/drawlist/polyline_basics.svg +++ b/drawlist/polyline_basics.svg @@ -1,34 +1,34 @@ - + - - - - - - - +inside +points[0] +points[1] +points[2] +points[3] +points[4] +outside - + - - - - - - - - +inside +points[0] +Closed +points[1] +points[2] +points[3] +points[4] +outside diff --git a/drawlist/quad_basics.svg b/drawlist/quad_basics.svg index d3cda79..97a7c27 100644 --- a/drawlist/quad_basics.svg +++ b/drawlist/quad_basics.svg @@ -1,15 +1,15 @@ - + - - - - - - +inside +p1 +p2 +p3 +p4 +outside diff --git a/drawlist/rect_0.svg b/drawlist/rect_0.svg index 0b8240b..b3ec4e0 100644 --- a/drawlist/rect_0.svg +++ b/drawlist/rect_0.svg @@ -1,5 +1,5 @@ - - + + @@ -38,9 +38,9 @@ - - - +0,0 +X +Y @@ -48,4 +48,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0 +X +Y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0 +X +Y + + + + + + + +A +B +C diff --git a/drawlist/rect_1.svg b/drawlist/rect_1.svg deleted file mode 100644 index f3d85d1..0000000 --- a/drawlist/rect_1.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/drawlist/rect_2.svg b/drawlist/rect_2.svg deleted file mode 100644 index c861685..0000000 --- a/drawlist/rect_2.svg +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/drawlist/rect_basics.svg b/drawlist/rect_basics.svg index fcb469b..72f5357 100644 --- a/drawlist/rect_basics.svg +++ b/drawlist/rect_basics.svg @@ -2,9 +2,9 @@ - - - - +inside +p_min +p_max +outside diff --git a/drawlist/rect_filled_0.svg b/drawlist/rect_filled_0.svg index 51ec5e5..6e32364 100644 --- a/drawlist/rect_filled_0.svg +++ b/drawlist/rect_filled_0.svg @@ -1,5 +1,5 @@ - - + + @@ -34,12 +34,62 @@ - - - +0,0 +X +Y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0 +X +Y + + + + + +A +B diff --git a/drawlist/rect_filled_1.svg b/drawlist/rect_filled_1.svg deleted file mode 100644 index df472a1..0000000 --- a/drawlist/rect_filled_1.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/drawlist/triangle_basics.svg b/drawlist/triangle_basics.svg index 8b45ff8..3d725f0 100644 --- a/drawlist/triangle_basics.svg +++ b/drawlist/triangle_basics.svg @@ -1,13 +1,13 @@ - + - - - - - +inside +p1 +p2 +p3 +outside