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
|
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
|
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
|
6b7c6b6c4c
|
Implement Item#bounds.selected to control drawing of selected item bounds.
|
2013-02-24 15:41:31 -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
|
24d467e292
|
Implement support for native dash strokes, through both setLineDash() and mozDash.
|
2013-02-12 15:32:21 -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
|
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
|
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
|
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
|
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
|
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
|
4185b63d99
|
Und recent renaming of #getNearest*() methods.
|
2012-12-30 19:43:35 +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
|
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
|
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
|
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 |
|
Jürg Lehni
|
050ca1dcb1
|
Further clean up Path.getBounds() code.
|
2012-12-27 17:43:21 +01:00 |
|
Jürg Lehni
|
3a1f2eec3f
|
Restructure Path#getBounds() code so Curve bounds calculations can be moved to Curve.
|
2012-12-27 15:19:42 +01:00 |
|
Jürg Lehni
|
2673991620
|
Have Path#_serializeFields inherit from Item#_serializeFields.
|
2012-12-27 13:04:38 +01:00 |
|
Jürg Lehni
|
f45c04a359
|
Remove overridden Path#matrix getters and setters, since we now control behavior through #applyMatrix.
|
2012-12-27 13:04:07 +01:00 |
|
Jürg Lehni
|
4f83e0eee6
|
Commit first version of serialization / deserialization mechanism.
It appears to work fine already for Paths and Groups.
|
2012-12-27 12:45:55 +01:00 |
|
Jürg Lehni
|
ae4e5d4be5
|
Rename Item#setProperties() to hidden #_setProperties() and add public Item#set() to use same functionality from outside.
|
2012-12-27 00:52:09 +01:00 |
|
Jürg Lehni
|
3ac039bd66
|
Implement properties object literal initialization for all Item constructors.
|
2012-12-25 22:12:25 +01:00 |
|
Jürg Lehni
|
947afe85f0
|
Simplify Path#initialize() code.
|
2012-12-25 16:59:05 +01:00 |
|
Jürg Lehni
|
8f093f6dd7
|
Remove all PORT comments, since we won't port back features to Scriptographer.
|
2012-12-25 16:07:48 +01:00 |
|
Jürg Lehni
|
b54bdadaff
|
Rename Item#transformContent to #applyMatrix.
|
2012-12-24 17:39:24 +01:00 |
|
Jürg Lehni
|
d6fceb928f
|
Implement Item#transformContent property, which controls wether Item#transform() directly applies transformations to contents, or simply stores them in Item#matrix.
|
2012-12-24 00:39:42 +01:00 |
|
Jürg Lehni
|
e21ea457a7
|
Remove Item#apply() and clean up #applyMatrix() and simplify handling.
|
2012-12-24 00:29:09 +01:00 |
|
Jürg Lehni
|
734cc1cc61
|
Undo commit 4445376c0204cb5a2e408c64b77a5b6fa09305ba since it clashes with magnification.
|
2012-12-21 16:41:57 +01:00 |
|
Jürg Lehni
|
e10ef4dba3
|
Fix comment.
|
2012-12-19 03:22:57 +01:00 |
|
Jürg Lehni
|
4de5f30f72
|
Improve documentation.
|
2012-12-18 14:19:22 +01:00 |
|
Jürg Lehni
|
b535d9f843
|
Implement new Bootstrap feature that allows hiding of getter parameters to make sure beans are produced, and use it across the library.
|
2012-12-15 19:51:31 +01:00 |
|
Jürg Lehni
|
5a316c244b
|
Directly expose bounds methods as statics rather than using a private scope.
|
2012-12-15 08:27:37 -08:00 |
|
Jürg Lehni
|
0d2ed108e2
|
Refactor getBounds code so that functionality can be exposed as static methods on Path.
|
2012-12-15 08:19:10 -08:00 |
|
Jürg Lehni
|
021009abbc
|
Shorten Path#getBounds() code by using Numerical.solveQuadratic().
|
2012-12-15 07:58:20 -08:00 |
|
Jürg Lehni
|
9a7f72e163
|
Clean up getBounds code a bit, by using less local variables and more explicit variable names.
|
2012-12-14 21:40:25 -08:00 |
|
Jürg Lehni
|
2061cb0517
|
Fix Path#contains() for unclosed paths that have a fill color.
|
2012-12-14 21:39:47 -08:00 |
|
Jürg Lehni
|
9d8bf12028
|
Never return null from #getBounds.
|
2012-12-09 18:00:23 -08:00 |
|
Jürg Lehni
|
d16155f4fe
|
Fix CompoundPath#clone() so that it does not alter the #clockwise state on its children.
|
2012-12-01 11:31:03 -08:00 |
|
Jürg Lehni
|
ace1d0f441
|
No need to set _clockwise since #reverse() already does so.
|
2012-12-01 11:10:59 -08:00 |
|
Jürg Lehni
|
d0cc8b6c16
|
Fix issue with hit-testing filled paths that are not closed.
|
2012-11-28 22:13:31 -08:00 |
|
Jürg Lehni
|
4d51173881
|
Keep Path#curves in sync properly when removing the last segment of an open path.
Closes #138.
|
2012-11-23 13:58:13 -08:00 |
|
Jürg Lehni
|
61b6026361
|
Rename CompoundPath#flatten() to #reduce(), to avoid clash with Path#flatten().
|
2012-11-23 01:16:21 -08:00 |
|
Ben Firshman
|
8ca26f650a
|
Fixed leaky _handle2
|
2012-11-20 15:53:31 +00:00 |
|
Jürg Lehni
|
1cb6a7fc3c
|
Clean up Path#smooth() code a bit.
|
2012-11-06 20:18:59 -08:00 |
|
Jürg Lehni
|
f110038104
|
Improve clipping mask drawing, and remove some unneeded ctx.save() / ctx.restore() calls.
|
2012-11-06 20:14:21 -08:00 |
|
Jürg Lehni
|
fd8fe9c08e
|
Rename CompoundPath#simplify() to #flatten() to avoid clashes with Path#simplify(), and add Path#flatten(), returning itself.
|
2012-11-06 10:16:03 -08:00 |
|
Jürg Lehni
|
6e0f29bf4a
|
Rename Path#closed getter to #isClosed() instead of #getClosed().
|
2012-11-05 21:06:47 -08:00 |
|
Jürg Lehni
|
35568c15f2
|
Implement transparent constant-substitution in prepro.js to shave of some extra bytes of final distribution file.
|
2012-11-05 18:11:44 -08:00 |
|
Jürg Lehni
|
1050e3314e
|
Implement Segment#isLinear() and Path#isPolygon().
|
2012-11-04 00:03:49 -07:00 |
|
Jürg Lehni
|
19d145f281
|
Introduce Item#type, returning a simple item type string identifier.
|
2012-11-03 23:43:18 -07:00 |
|
Jürg Lehni
|
07c0b6ce6a
|
Improve Path#moveTo behavior()
Allowing it to be called multiple times before any other drawing commands.
|
2012-11-03 19:45:02 -07:00 |
|
Jürg Lehni
|
b22ff5ecca
|
Revert a recent change in selection handling.
|
2012-11-02 16:27:59 -07:00 |
|
Jürg Lehni
|
f73717a7e7
|
Fix issues in Numerical.solveQuadratic(), solveCubic() and Path#contains().
Closes #71.
|
2012-10-22 18:21:33 -04:00 |
|
Jürg Lehni
|
317fcf5432
|
Only include strokeWidth in roughBounds if a strokeColor is actually set.
|
2012-10-20 16:01:53 -04:00 |
|
Jürg Lehni
|
f87eadecda
|
Correct default value for clockwise in arcTo().
|
2012-10-19 09:18:10 -04:00 |
|
Jürg Lehni
|
6441a682a8
|
Fix new error in quadraticCurveTo().
We don't seem to have test-cases for these yet.
|
2012-10-18 14:29:53 -07:00 |
|
Jürg Lehni
|
30374ae3b4
|
Implement proper index independent argument list reading of basic types.
Implemented for Point, Size, Rectangle and Color.
|
2012-10-18 14:24:15 -07:00 |
|
Jürg Lehni
|
e17e94b50b
|
Implement Item#isEmpty() for the various types.
And use it to tell #getBounds() when to ignore items.
|
2012-10-10 20:11:11 -07:00 |
|
Jürg Lehni
|
ef59ad2875
|
Improve selection handling and drawing for Path item.
In a way that makes more sense when building tools.
|
2012-10-10 19:33:42 -07:00 |
|
Jürg Lehni
|
6b08d96c45
|
Fix issue where out handle was compared to the wrong segment point when drawing.
This should fix #106 but needs to be verified before we can close the bug.
|
2012-10-05 19:08:31 -07:00 |
|
Jonathan Puckey
|
d20fb61c7c
|
Cleanup code.
|
2012-04-25 20:47:53 +02:00 |
|
Oliver Beattie
|
3c7563a3bf
|
When a path is transformed, the _length cache of its Curves should be invalidated
|
2012-03-17 17:09:54 +00:00 |
|
Jonathan Puckey
|
c339ffca35
|
Close closed paths when drawing using Context#closePath(). Fixes #72
|
2012-03-01 23:25:00 +01:00 |
|
Jonathan Puckey
|
7093b73d31
|
Cleanup last merged pull request.
|
2012-03-01 17:06:39 +01:00 |
|
Alex Buchanan
|
f1a6357a05
|
Path.reverse() should adjust segment indices
|
2012-02-18 15:13:23 -08:00 |
|
Jürg Lehni
|
96f7d140a7
|
Use faster Point.create(x, y) internally.
|
2011-12-27 20:39:28 +01:00 |
|
Jürg Lehni
|
ad2abfb71f
|
Inline drawDashes() code.
|
2011-12-27 20:18:02 +01:00 |
|
Jürg Lehni
|
28806fe977
|
Ue the faster Matrix#_transformPoint().
And reuse Point objects if possible.
|
2011-12-26 11:06:36 +01:00 |
|
Jürg Lehni
|
7af06502bc
|
Fix Path#transform() to also return a reference to 'this'.
|
2011-12-25 16:39:08 +01:00 |
|
Jürg Lehni
|
783d2782c0
|
Fix wrong HitResult type when hitting Segment#point.
|
2011-12-25 16:38:43 +01:00 |
|
Jürg Lehni
|
1e690a68e0
|
Add TODO about HitResult points requiring transformations.
|
2011-12-25 12:39:10 +01:00 |
|
Jürg Lehni
|
3b0b1184a3
|
Implement checkSegment() without relying on #_transformCoordinates().
|
2011-12-25 12:34:51 +01:00 |
|
Jürg Lehni
|
c30ff47930
|
Remove matrix argument from all hit-testing related methods.
We better inverse-transform the point and save the code!
|
2011-12-25 00:19:01 +01:00 |
|
Jürg Lehni
|
98c82856ea
|
Override #matrix accessors in Path to do nothing.
For the same reasons as described in the previous commit.
|
2011-12-23 22:46:53 +01:00 |
|
Jürg Lehni
|
627961627e
|
Have Path always directly apply any transformation to its Segments.
This is required so the coordinates of its bounds, length and SegmentPoints are always in the same space.
|
2011-12-23 22:43:27 +01:00 |
|
Jürg Lehni
|
97b66582f8
|
Rename Item#applyMatrix() to shorter #apply().
|
2011-12-23 22:41:05 +01:00 |
|
Jürg Lehni
|
93ede28f3b
|
Implement new selection drawing mechanism.
Using the new Item#globalMatrix.
|
2011-12-20 11:42:00 +01:00 |
|
Jürg Lehni
|
daca14efb8
|
Add optional matrix in Path drawing code.
Required for new selection drawing mechanism to be implemented.
|
2011-12-20 11:40:31 +01:00 |
|
Jürg Lehni
|
42087071e7
|
Fix #strokeBounds for square caps.
Calculate the right points at both ends of paths.
|
2011-12-19 23:30:02 +01:00 |
|
Jürg Lehni
|
1e768e6c83
|
Fix #strokeBounds for strokes scaled using #matrix.
Gotta do the right thing, not the same buggy thing as Illustrator.
|
2011-12-19 23:21:13 +01:00 |
|