Commit graph

859 commits

Author SHA1 Message Date
Jonathan Puckey
e3760afecd Fix handling of param.clip in CompoundPath#draw. 2013-03-17 22:27:20 +01:00
Jonathan Puckey
e5c32b9520 Actually fix handling of param.clip in Path#draw. 2013-03-17 21:59:07 +01:00
Jonathan Puckey
4c4258d2e1 Fix Raster#getAverageColor by having Path#draw clip the context, when param.clip is true. 2013-03-17 21:41:46 +01:00
Jonathan Puckey
4b87860b30 Add documentation of Path#getLocationOf 2013-03-16 18:39:53 +01:00
Jonathan Puckey
6f490d8b34 Add documentation for Path#split. 2013-03-16 17:59:31 +01:00
Jonathan Puckey
2d9b0b2e8e Improve Path documentation. 2013-03-10 19:48:46 +01:00
Jonathan Puckey
4292b90bd4 Improve Segment documentation. 2013-03-10 19:48:28 +01:00
Jonathan Puckey
38b9b327ae Add Path.Constructor examples. 2013-03-10 19:09:09 +01:00
Jonathan Puckey
177f799bde Rename Path.Star parameter from numPoints to points. 2013-03-10 18:09:05 +01:00
Jonathan Puckey
097a9c958f Rename Path.RegularPolygon parameter from numSides to sides. 2013-03-10 18:02:16 +01:00
Jürg Lehni
97e85d66db Fix issue with object literal properties being accidentally misread as path segments.
Closes #177.
2013-03-05 00:28:21 -08:00
Jonathan Puckey
2666e60f28 Fix Path#getTangentAt example. 2013-03-04 12:37:55 +01:00
Jonathan Puckey
2d103dd792 Improve and fix example documentation. 2013-03-04 12:09:58 +01:00
Jürg Lehni
849d3efc2e Have PathItem#setPathData() clear the previous content. 2013-03-03 16:56:48 -08:00
Jürg Lehni
8a69fcd1e5 Actually use precision setting in Path#getPathData(). 2013-03-03 16:51:31 -08:00
Jürg Lehni
7b7168feb1 Fix reading of rectangle in Path.Constructor.
And all tests are green again.
2013-03-03 15:29:15 -08:00
Jonathan Puckey
7643085378 Path example documentation. 2013-03-03 20:48:03 +01:00
Jonathan Puckey
fa861f2047 Improve example documentation. 2013-03-03 20:10:25 +01:00
Jonathan Puckey
801eb0f2a8 Add example to Segment#selected docs. 2013-03-03 20:09:41 +01:00
Jonathan Puckey
3cdb11fe36 GradientStop & PathItem example documentation. 2013-03-03 19:47:32 +01:00
Jonathan Puckey
09e4bd0bb4 Improve Path.Constructors example documentation. 2013-03-03 18:34:39 +01:00
Jürg Lehni
1bfafee0ca Use a default precision of three digits for exporting path data. 2013-03-02 08:14:17 -08:00
Jürg Lehni
67b1a602c4 Fix hit-testing of open filled Paths when they are part of a CompoundPath. 2013-03-01 21:47:13 -08:00
Jürg Lehni
936b1bccbb Get curves uncached in CurveLocation#split() and #divide(). 2013-03-01 20:26:03 -08:00
Jürg Lehni
03521796ef Setting Path#selected to false should deselect all handles too. 2013-03-01 20:25:09 -08:00
Jürg Lehni
dfe1a7efab Define setter for Segment#linear. 2013-03-01 20:24:46 -08:00
Jürg Lehni
2230c2888d Fix issue with Curve#divide() where the wrong curve reference is returned. 2013-03-01 20:19:44 -08:00
Jürg Lehni
532176ac62 Fix drawing of selected handles. 2013-03-01 18:32:55 -08:00
Jürg Lehni
c543704115 Define Project#options as a way to configure things.
For now, only options.handleSize is in use.
2013-03-01 18:28:22 -08:00
Jürg Lehni
f0593c1fb9 Fix error with #getPathData() and empty paths. 2013-03-01 17:46:55 -08:00
Jürg Lehni
3f5d0a6925 Merge constructor._name with _type and use CamelCase for Item types. 2013-03-01 17:13:22 -08:00
Jürg Lehni
7553712e35 Simplify code for readRectangle() in Path.Constructors. 2013-03-01 14:39:26 -08:00
Jürg Lehni
3f85dcdb77 Use #_set() in Rectangle#initialize() to simplify code and increase flexibility. 2013-03-01 14:37:27 -08:00
Jürg Lehni
8d2c2f5fda Fix an issue with PathFitter where path with only one segment would throw an error.
Closes #175.
2013-03-01 14:28:32 -08:00
Jürg Lehni
7405858f32 Simplify code for reading of named arguments, removing the need for filtering arguments by using 'in' checks instead for the presence of properties / setters. 2013-03-01 14:06:04 -08:00
Jürg Lehni
06e33ba412 Improve flexibility of reading rectangles in Path.Constructor.
We can now define the rectangle by any property that it has setters for.
2013-03-01 13:52:11 -08:00
Jürg Lehni
12d4d563d9 Further shorten path data code. 2013-03-01 01:18:42 -08:00
Jürg Lehni
13a567bcaa Fix handling of multiple h / v commands in path data. 2013-03-01 01:18:27 -08:00
Jürg Lehni
b649240696 Use correct defaults for #pathData serialization. 2013-02-28 19:55:18 -08:00
Jürg Lehni
cef30f9dd1 Switch to #pathData for JSON serialization of Path and CompoundPath. 2013-02-28 19:41:13 -08:00
Jürg Lehni
5fbc6e939d Fix small SVG path-data parser issue. 2013-02-28 19:33:08 -08:00
Jürg Lehni
82cefa9846 Fix typo. 2013-02-28 19:29:44 -08:00
Jürg Lehni
0f140e391d Minor clean ups. 2013-02-28 19:21:46 -08:00
Jürg Lehni
78b3621cf6 Implement PathItem#pathData getter and setter for SVG style path data.
And use it fro SvgImport too.
2013-02-28 19:14:06 -08:00
Jürg Lehni
9d8cddbe42 Implement new private Format object that handles formatting of number, point, size and rectangle. 2013-02-28 19:14:05 -08:00
Jürg Lehni
79e836373d Clean up hitTest code a little. 2013-02-25 15:41:31 -08:00
Jürg Lehni
cd9184a6f0 Fix CompoundPath hit-testing. 2013-02-24 19:01:29 -08:00
Jürg Lehni
6b7c6b6c4c Implement Item#bounds.selected to control drawing of selected item bounds. 2013-02-24 15:41:31 -08:00
Jürg Lehni
0a81787c7e Fix a bug in CompoundPath#hitTest().
Results from Path#hitTest() were not passed through.
2013-02-24 14:56:28 -08:00
Jürg Lehni
119e5acbf9 Move #_setProperties() and #set() from Item to Base, rename it to #_set and use it for Tool too. 2013-02-15 18:28:49 -08:00
Jürg Lehni
23b51915eb Implement CompoundPath#firstSegment, #lastSegment, #firstCurve and #lastCurve. 2013-02-15 18:05:16 -08:00
Jürg Lehni
d3ccec2256 Use the code from Group#isEmpty() and CompoundPath#isEmpty() for Item#isEmpty(), since any item that does not have children overrides it. 2013-02-15 18:01:23 -08:00
Jürg Lehni
24d467e292 Implement support for native dash strokes, through both setLineDash() and mozDash. 2013-02-12 15:32:21 -08:00
Jürg Lehni
fdd15e675f Add options argument to #toJson() methods, and use to implement optional fractional digit precision control. 2013-02-12 14:57:54 -08:00
Jürg Lehni
489a785171 Override Item.extend() to merge the subclass' _serializeFields with the parent class' _serializeFields.
And have style fields always serialized in non-compact form for Color.
2013-02-11 17:08:23 -08:00
Jürg Lehni
b10454a83c Rename Matrix#createInverse() to #inverted() and #createShiftless() to #shiftless(). 2013-02-09 12:18:40 -08:00
Jürg Lehni
bc5826d324 Clean up code. 2013-02-08 18:46:22 -08:00
Jürg Lehni
dc35fdbd02 Move named inner functions out of nested scopes, to prepare for 'use strict;' transition. 2013-02-08 18:23:33 -08:00
Jürg Lehni
1ee29d56ac Improve comment about JavaScriptCore bug. 2013-02-08 16:35:33 -08:00
Jürg Lehni
b6d2d83af5 Fix the strangest JavaScriptCore bug that I've encountered in ages.
Closes #168. Read comment for more details.
2013-02-08 16:32:47 -08:00
Jürg Lehni
02ca95eb46 Avoid accidental global leakage. 2013-02-08 16:12:57 -08:00
Jürg Lehni
6c9c16ad3d Update copyright information comments, and year. 2013-01-28 18:03:27 -08:00
Jürg Lehni
b0deda9445 Add missing documentation for various location related functions on Curve. 2013-01-28 16:47:45 -08:00
Jürg Lehni
c7d8aebb9e Swap Curve's bounds scope with point evaluation scope, for proximity to bounds related methods in scope before. 2013-01-28 16:32:04 -08:00
Jürg Lehni
1a438b8b9b Change Curve#[getPoint / getTangent / getNormal](t) to #[getPoint / getTangent / getNormal](offset, isParamter).
Keep deprecated versions around for now.
2013-01-28 16:30:28 -08:00
Jürg Lehni
e75ee18de1 Restructure code a bit. 2013-01-22 14:58:34 -08:00
Jürg Lehni
a5bfa9e5d3 Remove debug logging for Segment / Curve insertion, deletion and splitting. 2013-01-22 14:54:19 -08:00
Jürg Lehni
f09bc84a12 Implement correct handling of Curves / Segments synchronization, improve CurveLocation linking to Curves through their linked Segments, and preserve Curves in Path#split() calls. 2013-01-22 14:46:49 -08:00
Jürg Lehni
e4d98f7865 Add internal _cloning parameter to all insertion methods. 2013-01-20 16:14:30 -08:00
Jürg Lehni
677ea374c5 Only change #clockwise on closed Paths when inserting into CompoundPaths. 2013-01-20 15:48:06 -08:00
Jürg Lehni
c5ede2e955 Add support for _setProperties() to CompoundPath constructor. 2013-01-20 15:20:10 -08:00
Jürg Lehni
ba5aa86411 Include Roger Willcocks in the thanks regarding isSufficentlyFlat. 2013-01-20 14:28:02 -08:00
Jürg Lehni
4346563fe4 No need to merge Path#_serializeFields, simply keep in sync with Item#_serializeFields (excluding #children). 2013-01-20 14:01:43 -08:00
Jürg Lehni
b05a21d6c9 Fix bug in Curve#getLocationOf(). 2013-01-20 14:01:42 -08:00
Jürg Lehni
49c8f8b6b5 A couple of improvements on Path#split(). 2013-01-20 14:01:42 -08:00
Jürg Lehni
b04eb2b98f Implement Path#split() and Curve#split(). 2012-12-31 22:28:41 +01:00
Jürg Lehni
d2b799f4db Fix various issues with Path#curves synchronization. 2012-12-31 22:21:50 +01:00
Jürg Lehni
f0038465cc Fix clearing of removed segments. 2012-12-31 21:45:30 +01:00
Jürg Lehni
a10e44d601 Minor code clean-up. 2012-12-31 21:43:43 +01:00
Jürg Lehni
8cea919dbd Calculate CurveLocation#parameter uncached when dealing with dividing or splitting, since these commands alter the underlying Path. 2012-12-31 21:42:55 +01:00
Jürg Lehni
5a2be6d545 No need for chainable functions on Item types. 2012-12-31 21:42:14 +01:00
Jürg Lehni
d509f86e1a Fix issue where removing segments from open paths would correct curves wrongly. 2012-12-31 21:19:55 +01:00
Jürg Lehni
5da4e89672 Return 'this' in more places to facilitate chained calls inside the library. 2012-12-31 20:07:28 +01:00
Jürg Lehni
8ec8af4dc5 Define CurveLocation#divide(). 2012-12-30 19:53:09 +01:00
Jürg Lehni
e066db4577 Implement Curve#divide(). 2012-12-30 19:49:17 +01:00
Jürg Lehni
4185b63d99 Und recent renaming of #getNearest*() methods. 2012-12-30 19:43:35 +01:00
Jürg Lehni
4ab9a942b0 Clean up Path.Constructor code. 2012-12-30 18:33:46 +01:00
Jürg Lehni
a1fc86b19e Add forgotten passing on of arguments._filtered. 2012-12-30 18:29:01 +01:00
Jürg Lehni
4e20a5794f Remove debug logging. 2012-12-30 18:27:42 +01:00
Jürg Lehni
8bed8cb15d Define mechanism for flexible reading of named arguments through Base.readNamed() and Base.hasNamed(), and use it to implement property object literal versions of Path.Constructor code. 2012-12-30 18:24:33 +01:00
Jürg Lehni
2abefee336 Merge Base.readValue() with Base.read() and rename Base.peekValue() to Base.peek().
When called directly on Base, read() reads values, otherwise the specific type of the subclass it is called on.
2012-12-30 16:07:20 +01:00
Jürg Lehni
1b539301ad Find a better naming convention for the various getLocation* methods (*At for offsets / parameters, *Of for points), implement the missing methods on Curve and use them in Path. 2012-12-27 21:08:03 +01:00
Jürg Lehni
231369fa01 Shorten code a bit, using loops. 2012-12-27 20:46:12 +01:00
Jürg Lehni
cb8f3291d3 Clean up some comments. 2012-12-27 20:19:23 +01:00
Jürg Lehni
5b9d33f32e Fix imprecision in intersection code by re-introducing tolerance parameter in Curve#isFlatEnough(). 2012-12-27 20:13:45 +01:00
Jürg Lehni
3c4978eb04 Rename Curve#getParameter(point) to Curve#getParameterOf(point), to better distinguish from Curve#getParameterAt(length). 2012-12-27 20:09:21 +01:00
Jürg Lehni
00898908d3 Write documentation for PathItem#getIntersections(). 2012-12-27 19:26:40 +01:00
Jürg Lehni
68ad4bb5ba Implement PathItem#getIntersections(path) and Curve#getIntersections(curve) using divide-and-conquer approach, and new Curve.getBounds(). 2012-12-27 19:23:03 +01:00
Jürg Lehni
03b5d58e79 Merge branch 'refs/heads/master' into intersection 2012-12-27 18:43:43 +01:00
Jürg Lehni
75596e1d03 Move a part of Path.getBounds() code into Curve._addBounds(), and use it to also define Curve.getBounds(). 2012-12-27 18:38:55 +01:00