Commit graph

351 commits

Author SHA1 Message Date
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
Jürg Lehni
cc26fdc5d1 Optimise handling and setting of fill and stroke styles.
Handle setting of fillColor and strokeColor in Item#_setStyles() instead of the various #draw() methods, directly access internal styles instead of using accessor calls and fix PointText#draw().
2011-12-19 22:40:14 +01:00
Jürg Lehni
f5c1125709 Move Path#_setStyles() to Item, so it can be used in PointText too. 2011-12-19 21:25:39 +01:00
Jürg Lehni
466857659c Unroll loop in Path#_setStyles(). 2011-12-19 21:23:28 +01:00
Jürg Lehni
12dbb11ec3 Optimise and simplify ellipse code. 2011-12-19 13:51:26 +01:00
Jürg Lehni
3ccb4a6ebe Fix strokeBounds calculation when a rotation matrix is in use.
The bounding box of the rotated pen ellipse was calculated wrongly.
2011-12-19 13:47:30 +01:00
Jürg Lehni
9e5eb17264 Improve Item#transform() and implement #applyMatrix() to support nested matrices. Work in progress. 2011-12-18 16:54:21 +01:00
Jürg Lehni
3ece08bea1 Fix handling of recursion in Item#setSelected() / #setFullySelected(). 2011-11-30 17:16:52 +01:00
Jürg Lehni
b51cf064b0 Make baseItem to last optional parameter of _getBounds. 2011-11-26 11:55:19 +01:00
Jürg Lehni
f799c85e76 Switch to using 'this' in private getBounds methods to point to path item rather than 'that'. 2011-11-26 11:48:08 +01:00
Jürg Lehni
a0ad81b576 Pass on the baseItem of a getBounds call, required to implement proper caching later. 2011-11-26 11:24:48 +01:00
Jürg Lehni
569c415b2f Start implementing bounds caching the new way.
Work in progress still.
2011-11-24 15:37:44 +01:00
Jürg Lehni
c989d3ee3f Restructure code a bit for easier reading. 2011-11-24 15:18:57 +01:00
Jürg Lehni
ea87be166e Part one of big refactoring of bouding box handling. Functional, but caching is broken right now. 2011-11-24 15:13:21 +01:00
Jürg Lehni
b96cd4e1c8 Add comments about possible optimization of accessing of style properties. 2011-11-24 14:53:38 +01:00
Jürg Lehni
3f5e68aa76 Document the private getPendPadding() function. 2011-11-24 10:21:12 +01:00
Jürg Lehni
29aaf38320 Improve comments. 2011-11-24 10:17:31 +01:00
Jürg Lehni
cd1810e6a3 Fix arguments check in Path#getHandleBounds(). 2011-11-23 18:13:05 +01:00
Jürg Lehni
b9f6c99dcd Add comments and clean up code. 2011-11-17 19:28:05 +01:00
Jürg Lehni
c8e1a9c959 Merge remote-tracking branch 'origin/master' 2011-11-12 23:57:39 +01:00
Jürg Lehni
4ba752d42a Add note and TODO about Path#contains() only working correctly for no-zero winding rule, which is not used by Canvas... 2011-11-12 19:49:12 +01:00
Jürg Lehni
ddf7c6534b Fix Path#hitTest() to only consider strokeWidth if a strokeColor is provided too. 2011-11-12 19:48:39 +01:00
Jonathan Puckey
52385451f6 Resolve a few documentation todos. 2011-11-12 18:30:21 +01:00
Jürg Lehni
af9df0e1b8 Provide point of hit handles and segments too in HitResult. 2011-11-11 14:47:03 +01:00
Jürg Lehni
571ca31dbf Move ctx.restore() to same level as ctx.save(). Closes #51. 2011-09-18 10:56:04 +02:00
Jürg Lehni
7e0307dd6a Correct comments. 2011-08-16 13:36:58 +02:00
Jürg Lehni
a8c08b3301 Docs: Document Path#getNearestLocation() and #getNearestPoint(). 2011-08-01 11:48:27 +01:00
Jonathan Puckey
53a602fb56 Path#_hitTest: check that a stroke hit test was requested. 2011-07-15 14:50:42 +02:00
Jonathan Puckey
91ab38ffd1 Path#getHandleBounds: remove optimization as it leads to problems when hit testing handles. 2011-07-15 12:58:34 +02:00
Jürg Lehni
254aee47f8 Implement Path#getLocation(point) 2011-07-09 17:12:27 +02:00
Jürg Lehni
ebd3bfc092 Introduce faster versions of Rectangle#contains() that do not perform checks. 2011-07-09 11:07:12 +02:00
Jürg Lehni
833d4968ce Change root solvers to not produce new arrays each time but fill a passed one that can be reused. Yields io impressive performance improvements. 2011-07-09 10:50:47 +02:00
Jürg Lehni
23f38c6e5b Fix Path#flatten(), where we don't want to add last segment again for closed paths. 2011-07-09 09:51:06 +02:00
Jürg Lehni
74b23c1882 Use #roughBounds rather than #bounds in #contains() check. 2011-07-09 09:27:54 +02:00