Commit graph

3286 commits

Author SHA1 Message Date
Jürg Lehni
4ffcdc3971 Clean up code. 2013-06-14 23:13:54 -07:00
Jürg Lehni
1ae7832ab3 Move calculation of square joins and caps to static methods.
These will be of use when correctly implementing hit-testing of strokes.
2013-06-14 23:11:50 -07:00
Jürg Lehni
ca0e931498 Clean up and simplify getStrokeBounds() code.
Handling of bevel and miter joins can be merged nicely.
2013-06-14 22:57:14 -07:00
Jürg Lehni
1dee05900f Move getArea code to other statics block. 2013-06-13 23:16:44 -07:00
Jürg Lehni
610e396d94 Make Curve#_getCrossings() a static method and have it work on curve values directly. 2013-06-13 23:16:00 -07:00
Jürg Lehni
d6db007765 Fix documentation warning. 2013-06-13 15:57:12 -07:00
Jürg Lehni
01e48b3322 Improve and clean up fat-line bug fix. 2013-06-13 15:53:28 -07:00
Jürg Lehni
38f31be6b2 Clean up and simplify Path#_hitTest() code. 2013-06-13 14:30:52 -07:00
Jürg Lehni
ae474131cc Implement stroke hittesting for Shape.Rectangle. 2013-06-13 10:40:54 -07:00
Jürg Lehni
48fa889e0d Start implementing proper hit-testing for Shapes with strokes.
Support for Shape.Rectangle is still missing.
2013-06-13 10:31:21 -07:00
Jürg Lehni
40dbe7ec74 Fix drawing of Shape.Ellipse items. 2013-06-13 10:30:54 -07:00
Jürg Lehni
d67ce8a103 Fix syntax. 2013-06-13 09:13:42 -07:00
Jürg Lehni
d87937dc03 Fix issue on IE occuring when nodes are removed from DOM. 2013-06-13 09:08:11 -07:00
Jürg Lehni
7f6ac3d8af Changing HIERARCHY also changes GEOMETRY.
Fixes #237.
2013-06-13 08:47:45 -07:00
Jürg Lehni
5250281ab1 Fully support object literal arguments in Shape constructors. 2013-06-12 20:13:39 -07:00
Jürg Lehni
95ecab8a6f Improve handling of merged CompoundPath style through #getStyle().
Only access _style directly in core code if you really know what you're doing!
2013-06-12 20:12:08 -07:00
Jürg Lehni
33eb750586 Simplify Path#hasFill() and implement #hasStroke() as well. 2013-06-12 19:57:05 -07:00
Jürg Lehni
fe10c99d1b Implement standard behavior of #_hitTest() for items without children, based on #_contains().
This should cover the minimum of what's needed for PointText.
2013-06-12 19:30:23 -07:00
Jürg Lehni
463a00bd1e Fix negative bounds height on PointText. 2013-06-12 19:21:46 -07:00
Jürg Lehni
2196ef2a74 Streamline various #equals() methods. 2013-06-12 18:57:12 -07:00
Jürg Lehni
4a8469b740 Define Base.isPlainValue() and use it to implement more flexible #equals() for Color and Rectangle. 2013-06-12 18:55:14 -07:00
Jürg Lehni
294bfc9c9a Improve IE Function#name fix and move it to straps.js, since constructor.name is used there too.
Cache result and improve RegExp.
2013-06-12 18:36:18 -07:00
Jürg Lehni
6fe60cff9d Fix trailing comas. 2013-06-12 17:42:38 -07:00
Jürg Lehni
34ad9045cc Fix wrong default fillColor on TextItems. 2013-06-12 17:30:35 -07:00
Jürg Lehni
cb0dcf1719 Fix accidental global leakage. 2013-06-12 17:27:20 -07:00
Jürg Lehni
d1932124d7 Implement #equals() in Point, Size and Rectangle without argument reading.
Closes #235
2013-06-12 15:28:29 -07:00
Jürg Lehni
1394c36907 Find an elegant way to implement all variations of Rectangle(object) constructors. 2013-06-12 15:08:22 -07:00
Jürg Lehni
7c5478cd93 Define first solution for correctly handling Rectangle(object) constructors.
Work in progress.
2013-06-12 14:57:47 -07:00
Jürg Lehni
b581f8b33e Implement Style#selectedColor and Item#selectedColor as a way to control appearance of selections.
Closes #219.
2013-06-12 14:17:34 -07:00
Jürg Lehni
9977ec5c28 Rename #toCss() to #toCSS() 2013-06-12 14:04:59 -07:00
Jürg Lehni
8c596927fb Store _removeSets per project, not globally. 2013-06-12 13:50:05 -07:00
Jürg Lehni
f59882b757 Handle Tool._removeSets also when there is no corresponding event handler installed.
Closes #204.
2013-06-12 13:46:14 -07:00
Jürg Lehni
f8c36b8276 Adopt Function#name regular expression to accommodate different scenarios of white-spaces. 2013-06-12 08:49:15 -07:00
Jürg Lehni
7a2f577b75 Implement Path#contains() correctly for open paths. 2013-06-12 00:35:34 -07:00
Jürg Lehni
f45a66d2ee Filter out curves with zero length in Path#contains() algorithm.
Fixes #227
2013-06-12 00:19:54 -07:00
Jürg Lehni
3d99b5e931 Fix ADM support to avoid error messages. 2013-06-12 00:07:56 -07:00
Jürg Lehni
b99d54f8c3 Add support for AMD (e.g. require.js)
Fixes #223.
2013-06-11 23:50:59 -07:00
Jürg Lehni
94e07e77f0 Redraw clipItem when drawing into separate canvas for blend-modes.
Closes #228.
2013-06-11 20:41:20 -07:00
Jürg Lehni
20f7c567aa Use Base objects for drawing params, so we can use param.extend() on them for easier overriding. 2013-06-11 20:40:44 -07:00
Jürg Lehni
a7750c3e67 Support null arguments in Point#equals(). 2013-06-11 20:14:45 -07:00
Jürg Lehni
ce7d584c05 Revert readNull and clone parameter sequence in arguments reading code. 2013-06-11 19:49:35 -07:00
Jürg Lehni
2e565dcfce Fix Function#name on browsers that don't support it.
Closes #236.
2013-06-11 19:07:25 -07:00
Jürg Lehni
18383875eb Fix global variable leakage. 2013-06-11 17:46:50 -07:00
Jürg Lehni
375156059d Do not use pathData in JSON for CompoundPaths. 2013-06-11 15:27:04 -07:00
Jürg Lehni
03a7503789 Fix issue in getPathData() with closed CompoundPaths. 2013-06-11 15:26:44 -07:00
Jürg Lehni
f2bb5d07df Let's not go too far with optimizations. 2013-06-11 15:10:02 -07:00
Jürg Lehni
875a766d19 Implement clipPath support in SVGExporter. 2013-06-11 14:50:13 -07:00
Jürg Lehni
35f17979df Improve Node.js XMLSerializer workaround for lowercased tagNames. 2013-06-11 14:39:34 -07:00
Jürg Lehni
d41f79598e Change exportDefinitions() to create an actual <defs> container for definitions. 2013-06-11 14:26:04 -07:00
Jürg Lehni
470cfae9f1 Clean up export code. 2013-06-11 14:15:54 -07:00
Jürg Lehni
a1cab3592b No need to explicitly set fill to 'none' anymore since comparing style with parent handles this for us automatically now. 2013-06-11 14:15:43 -07:00
Jürg Lehni
72082bdcff Fix new failing test. 2013-06-11 13:57:28 -07:00
Jürg Lehni
b4ff0d347e Optimize SVG import for clipped groups. 2013-06-11 12:57:03 -07:00
Jürg Lehni
7faf2a9e70 Clean-up @hkrish's changes a bit. 2013-06-09 18:37:08 -07:00
hkrish
d8498b6418 Remove invalid code and unnecessary comments 2013-06-09 22:02:50 +05:30
hkrish
8758b232f4 Merge branch 'master' into fatline
* master:
  Fix regression in importing SVG viewBox.
  Minor code clean ups.
  Properly fix exporting of classes into Base.exports.
  Switch to HTML5 meta charset tags.
  Fix issues with uglifyjs.
  Include stats.js in distribution so all examples can work.
2013-06-09 18:08:31 +05:30
hkrish
ca2bfb8cab Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Fix regression in importing SVG viewBox.
2013-06-09 18:03:19 +05:30
Jürg Lehni
48651d5fb1 Fix regression in importing SVG viewBox. 2013-06-08 13:44:50 -07:00
hkrish
d6ed9890b8 Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Minor code clean ups.
  Properly fix exporting of classes into Base.exports.
  Switch to HTML5 meta charset tags.
  Fix issues with uglifyjs.
  Include stats.js in distribution so all examples can work.
2013-06-08 23:26:45 +05:30
hkrish
d3405115c1 Use parameter on both curves in CurveLocation objects instead of Point in #getIntersection() 2013-06-08 21:37:43 +05:30
Jürg Lehni
75eddbcdba Minor code clean ups. 2013-06-02 16:18:40 -07:00
Jürg Lehni
b896a98b1e Properly fix exporting of classes into Base.exports. 2013-06-02 16:17:54 -07:00
hkrish
1e86aa4e97 Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Explicitly use bash to avoid build problems on linux.
  Bump version number to 0.9.2
  Fix exporting of Base, Numerical and PaperScript into PaperScope.
2013-05-31 17:21:46 +02:00
Jürg Lehni
a81fdc2758 Fix exporting of Base, Numerical and PaperScript into PaperScope. 2013-05-30 14:37:04 -07:00
hkrish
8d1e5ea144 Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Bump version number to 0.9.1
  Fix issue with local paper variable shielding global one.
  Reset transformation matrix when blitting off-screen canvas.
2013-05-30 23:21:05 +02:00
Jürg Lehni
178b09caa7 Fix issue with local paper variable shielding global one.
We need a cleaner fix for this on the long run.
2013-05-30 11:26:47 -07:00
Jürg Lehni
d76d573eb2 Reset transformation matrix when blitting off-screen canvas.
Closes #233.
2013-05-29 13:52:47 -07:00
hkrish
cdaab794f2 Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js: (56 commits)
  Fix regressions in Raster caused by faulty merge.
  Store data in _data rather than on the image itself.
  Clean up @trankek's fix for node a bit.
  Explain compact = true in Project#_serialize()
  Properly fix issue with Project#exportJSON() creating separate projects on import.
  Update straps.js to version 1.1.0
  Rename options.server to options.node
  Remove all create() constructors for basic types since new constructors are now faster.
  Make sure project we import into is active.
  Unbox project data in Project#importJSON(), as we don't want to create a new project object.
  Remove need for _needsRedraw() calls by replacing it with a boolean flag.
  Apply "pending" matrix in group when it receives content.
  Move main Item insertion code from #insertChild() to #insertChildren().
  Fix documentation warning.
  Handle exporting of Numerical and PaperScript in export.js
  Update straps.js to latest version.
  Accessors cannot define the writable property.
  Properly export Numerical and PaperScript again.
  Only reset matrices in Groups when it could actually be applied to the content.
  Set options.stats = false for build.sh and Node.js
  ...
2013-05-29 19:09:07 +02:00
Jürg Lehni
0e2ae48b02 Fix regressions in Raster caused by faulty merge. 2013-05-28 13:54:47 -07:00
Jürg Lehni
73351cbda7 Store data in _data rather than on the image itself. 2013-05-28 08:10:51 -07:00
Jürg Lehni
a952e6f5ad Merge branch 'master' of github.com:paperjs/paper.js 2013-05-28 08:07:26 -07:00
Jürg Lehni
277f7aabae Merge branch 'refs/heads/tranek-master' 2013-05-28 08:06:06 -07:00
Jürg Lehni
c75a98c406 Clean up @trankek's fix for node a bit.
Fix prepro.js conditionals.
2013-05-28 08:05:40 -07:00
Jürg Lehni
e0856a0d31 Merge branch 'master' of https://github.com/tranek/paper.js into tranek-master
Conflicts:
	src/item/Raster.js
2013-05-28 08:00:01 -07:00
Jürg Lehni
f0f7a7f35c Explain compact = true in Project#_serialize() 2013-05-28 07:57:35 -07:00
Jürg Lehni
dd38e4aae6 Merge pull request #231 from NorthNick/master
Path.arcBy bug fix
2013-05-28 07:53:58 -07:00
Jürg Lehni
0b4bc678bc Properly fix issue with Project#exportJSON() creating separate projects on import. 2013-05-28 07:42:38 -07:00
Jürg Lehni
6fa6c022c9 Rename options.server to options.node 2013-05-28 00:01:55 -07:00
Jürg Lehni
cd7db56249 Remove all create() constructors for basic types since new constructors are now faster.
Woop!
2013-05-27 23:57:31 -07:00
Jürg Lehni
0f74c01f75 Make sure project we import into is active. 2013-05-27 23:48:16 -07:00
Jürg Lehni
85920bbdb8 Unbox project data in Project#importJSON(), as we don't want to create a new project object. 2013-05-27 23:43:24 -07:00
Jürg Lehni
4e6f52c20c Remove need for _needsRedraw() calls by replacing it with a boolean flag. 2013-05-27 23:40:23 -07:00
Jürg Lehni
fd3f698fe9 Apply "pending" matrix in group when it receives content. 2013-05-27 23:13:20 -07:00
Jürg Lehni
9b0d32651f Move main Item insertion code from #insertChild() to #insertChildren().
Handles insertion and change notification much more efficiently.
2013-05-27 20:06:30 -07:00
Jürg Lehni
73388d6f9c Fix documentation warning. 2013-05-27 18:30:57 -07:00
Jürg Lehni
961451b271 Handle exporting of Numerical and PaperScript in export.js
Allowing build.sh to work again.
2013-05-27 18:28:35 -07:00
Jürg Lehni
70d6050900 Accessors cannot define the writable property. 2013-05-27 18:12:25 -07:00
Jürg Lehni
5592bb57e0 Properly export Numerical and PaperScript again. 2013-05-27 15:55:44 -07:00
Jürg Lehni
e516e6f651 Only reset matrices in Groups when it could actually be applied to the content.
That way, empty groups in SVGImport still keep their transformation state.
2013-05-27 15:42:16 -07:00
Jürg Lehni
b92be7ecf3 Set options.stats = false for build.sh and Node.js 2013-05-27 15:33:28 -07:00
Jürg Lehni
d577b1bf48 Share one options.js file describing Paper.js options for Node.js, build.sh and the dev version. 2013-05-27 15:11:32 -07:00
Jürg Lehni
6ac5463630 Switch to using common string format for paper.version (major.minor.build) 2013-05-27 14:27:05 -07:00
Jürg Lehni
fef22f25e8 Remove node.js specific version of Base.isPlainObject(), since straps.js can handle it now. 2013-05-27 14:10:38 -07:00
Jürg Lehni
10d5de3ed6 Implement a better way to name and export class constructors.
This change also simplified the way classes are exported to PaperScope objects.
2013-05-27 12:48:58 -07:00
Jürg Lehni
15b1ea7af0 Solve issue with SVG gradients on Firefox. 2013-05-27 10:12:23 -07:00
Jürg Lehni
c533dda7b5 Finally found a better and faster alternative for this.base() calls, by setting base on the function object instead.
base can be accessed on named functions very easily, leading to another measurable speed increase. Finally all performance reasons against straps.js are eliminated!
2013-05-27 10:04:05 -07:00
Jürg Lehni
369b329b23 Change straps.js to directly use initialize() as constructor function rather than redirecting calls to it.
Should yield some interesting performance improvements.
2013-05-27 09:11:50 -07:00
Jürg Lehni
094e35f2e5 No need for separate injection object for Item.extend() 2013-05-27 08:16:34 -07:00
Jürg Lehni
f9267e7f5c Some more code clean up and variable renaming. 2013-05-26 17:59:01 -07:00
Jürg Lehni
14962b5c45 Clean up code a bit more. 2013-05-26 17:52:05 -07:00
Jürg Lehni
32709a176b Fix some comments. 2013-05-26 17:48:36 -07:00
Jürg Lehni
7050edd6e4 Fix point sequence. 2013-05-26 17:40:40 -07:00
Jürg Lehni
90f0679700 Further simplify getConvexHull() by using p0 … p3 point objects. 2013-05-26 17:39:13 -07:00
Jürg Lehni
487c4c4aef Further simplify getConvexHull() by inlining cross product calculations. 2013-05-26 17:32:44 -07:00
Jürg Lehni
9edab9c3aa Simplify convex hull algorithm by returning lists of points rather than lines.
We can avoid some data redundancy that way at no performance cost.
2013-05-26 17:18:54 -07:00
Jürg Lehni
9540b7f6a9 Use addLineIntersection() in subdivision algorithm as well. 2013-05-26 17:10:29 -07:00
Jürg Lehni
20737c6664 Rename various intersection methods. 2013-05-26 17:06:23 -07:00
Jürg Lehni
da8898abd2 Fix newly introduced bug in Line.getSide() through variable renaming. 2013-05-26 17:05:10 -07:00
Jürg Lehni
5d7cc2fb40 Use new Line.getSignedDistance(). 2013-05-26 16:58:49 -07:00
Jürg Lehni
f771233d37 Speed up Line class by removing internal dependance on Point. 2013-05-26 16:58:34 -07:00
Jürg Lehni
80f9f6061c Change the way the Line class handles direction vectors and infinite lines.
The beginning of performance improvements in the Line class.
2013-05-26 15:44:52 -07:00
NickNorth
3e520efe5f arcBy recursively calls itself rather than arcTo. 2013-05-26 20:09:26 +01:00
Jürg Lehni
1fb0a3a13c Always provide t parameter for CurveLocations if we know it. 2013-05-25 11:23:59 -07:00
hkrish
46a324722a Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js: (90 commits)
  Start merging fat-line clipping code into Curve class.
  Fix white-spaces.
  Merge handling of flat curves.
  More getConvexHull() clean up.
  Remove unused variable dqmin.
  Further clean up clipFatLine()
  Some clean up in clipFatLine()
  Merge the two convergence checks to one.
  Simplify convergence checks.
  Rename p\d to part\d
  Rename v\dt to range\d
  Simplify handling of ranges and curve parts.
  Switch to using arrays rather than objects for parameter ranges.
  Reverse logic of v1t / _v1t naming and switch to using Numerical constants.
  Re-implement Curve.getLocation2() as "hub" for all the different intersection methods.
  Use break; instead of return; and untangle unnecessarily nested conditionals.
  Define private addLocation() to reduce code redundancy.
  Correctly handle calculation of CurveLocation point in getCurveIntersections().
  Move Curve.getIntersection2 to private function and better name other private functions.
  Always use parameter in getCurveLineIntersection() by flipping curve1 / 2 values as well.
  ...
2013-05-25 11:37:33 +02:00
Jürg Lehni
502c76dbce Start merging fat-line clipping code into Curve class.
And add a prepro option for now.
2013-05-24 22:30:13 -07:00
Jürg Lehni
7f00ef8f05 Fix white-spaces. 2013-05-24 22:25:22 -07:00
Jürg Lehni
7e5f846190 Remove debugging code. 2013-05-24 17:57:13 -07:00
tranek
1637127e09 Fixed data URLs src disappearing 2013-05-24 20:55:59 -04:00
Jürg Lehni
bd3ac02bbe Use Curve instead of this.
Compresses better and allows passing on function as callback.
2013-05-24 17:52:05 -07:00
Jürg Lehni
e359dd038c Add explaining comment. 2013-05-24 17:14:39 -07:00
tranek
cd7938e363 Fixed string equals in Raster data URL for Node.js 2013-05-24 16:41:02 -04:00
tranek
269b93e888 Added data URLs for Rasters in Node.js 2013-05-24 16:38:43 -04:00
hkrish
cfbe6d8312 Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Remove Item#applyMatrix boolean, go back to previous way of directly applying transformations to children in Group and Layer, and introduce new Clip class for non-transformed nested matrices.
  Make sure the Base class is exposed in Node.js
2013-05-16 20:33:13 +02:00
Jürg Lehni
ae416f821c Explain the booolean argument in color getter calls, and put _matrix in local variable for better minification. 2013-05-13 19:31:41 -07:00
Jürg Lehni
7c2e57e105 Remove Item#applyMatrix boolean, go back to previous way of directly applying transformations to children in Group and Layer, and introduce new Clip class for non-transformed nested matrices. 2013-05-13 18:57:17 -07:00
Jürg Lehni
c70b985911 Make sure the Base class is exposed in Node.js 2013-05-12 14:29:21 -07:00
hkrish
158001c154 Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Fix: #initialize() to correctly convert #getValue() array back to Curve object.
  Handle allowNull correctly again in SVGImport.
  Simplify SVGImport attribute parsing and correctly handle failing tests with invalid coordinates.
  Further refine Node.js integration.
  Improve the Node version of Base.isPlainObject()
2013-05-11 14:42:56 +02:00
Harikrishnan Gopalakrishnan
ce600f4ea4 Fix: #initialize() to correctly convert #getValue() array back to Curve object. 2013-05-11 00:59:30 +03:00
Jürg Lehni
2b4dddbb1f Handle allowNull correctly again in SVGImport. 2013-05-09 16:16:48 -07:00
Jürg Lehni
a4e875cf29 Simplify SVGImport attribute parsing and correctly handle failing tests with invalid coordinates. 2013-05-09 16:08:38 -07:00
Jürg Lehni
dd96d67fe1 Further refine Node.js integration. 2013-05-09 16:06:45 -07:00
Jürg Lehni
82b9cb3dbf Improve the Node version of Base.isPlainObject() 2013-05-09 15:30:18 -07:00
hkrish
fce29e4b75 merge upstream 2013-05-09 14:30:28 +02:00
Jürg Lehni
093f4cf7ba Fix issue with SVG transformations not being applied to gradient fills. 2013-05-09 02:37:48 -07:00
Jürg Lehni
04f2f19a43 Minor fix in Matrix#shear() 2013-05-09 02:31:26 -07:00
Jürg Lehni
9e5b47c1ac Implement SVG transform attribute parser, to completely remove dependency on baseVal. 2013-05-09 02:31:10 -07:00
Jürg Lehni
8cc74820a8 Handel issue in node-canvas where color stop offsets cannot be strings. 2013-05-09 01:57:07 -07:00
Jürg Lehni
e2f4eb5a56 Improve Node's Base.isPlainObject() to rule out arrays. 2013-05-09 01:56:47 -07:00
Jürg Lehni
e9fb78aa08 Start removing dependencies on SVG baseVal. 2013-05-09 01:46:13 -07:00
Jürg Lehni
8cd57743c8 Switch to handling SVG tagNames case-insensitively across the whole codebase.
Since Node's jsdom doesn't provide case-sensitive tagNames.
2013-05-09 01:45:38 -07:00
Jürg Lehni
0174f7e2e5 Remove debug logging. 2013-05-09 00:26:41 -07:00
Jürg Lehni
aa757e1d7b Use DOMParser to handle SVG strings. 2013-05-09 00:22:42 -07:00
Jürg Lehni
ee3fa3b00f Implement DOMParser emulation based on jsdom. 2013-05-09 00:22:20 -07:00
Jürg Lehni
ecbde1af14 Rename browser subfolder to dom, since we'll be using it on Node too. 2013-05-09 00:21:58 -07:00
Jürg Lehni
7644016d66 Export paper version in node. 2013-05-08 20:59:54 -07:00
Jürg Lehni
c5627d141e Fix PaperScript support in node. 2013-05-08 20:38:23 -07:00
Jürg Lehni
6f347c98b3 Fix formatting. 2013-05-08 20:29:37 -07:00
Jürg Lehni
731a873884 Check for radial property as well when predicting gradient color type. 2013-05-08 20:19:40 -07:00
Jürg Lehni
67aacb9552 Implement dontLink parameters for View getters. 2013-05-08 20:19:22 -07:00
Jürg Lehni
3fb22f0380 Implement XMLSerializer for node. 2013-05-08 20:18:46 -07:00
Jürg Lehni
892640172b Fix issue with unshared core prototypes along different node scopes. 2013-05-08 20:18:17 -07:00
Jürg Lehni
b3d7f5aff6 Export view size and set svg attributes in project.exportSVG() 2013-05-08 20:16:53 -07:00
Jürg Lehni
041f3a6c4d jsdom uses uppercase values for nodeName with SVG too. 2013-05-08 18:18:47 -07:00
Jürg Lehni
8dbe1f4927 Fix issues with running paper.js in node.
We need to export the Object and Array definition into new context, to make Base.isPlainObject() work. See http://nodejs.org/api/vm.html#vm_globals
2013-05-08 18:17:23 -07:00
Jürg Lehni
219ccd2fdd Start making exportSVG() work for node, using jsdom. 2013-05-08 01:30:14 -07:00
Jürg Lehni
bc090dcf66 Switch from bootstrap.js to the renamed straps.js 2013-05-08 00:13:02 -07:00
Jürg Lehni
fcb697264f Make sure alpha channel is included in serialization of Color.
Fixes #215.
2013-05-07 22:51:23 -07:00
Jürg Lehni
9cca6d8a00 Move the node.js folder into src. 2013-05-07 22:07:12 -07:00
Jürg Lehni
7b8e27ddd9 Further simplify getNearestPoint() algorithm. 2013-05-07 00:07:18 -07:00
Jürg Lehni
f34fe102a4 Use new alias notation for deprecated functions, wherever we can. 2013-05-06 21:01:04 -07:00
Jürg Lehni
8e53829e9c Define Callback#once() 2013-05-06 20:57:08 -07:00
Jürg Lehni
b59a98f7ce Add jQuery style aliases to Callback and use #on() in the examples rather than #attach(). 2013-05-06 20:56:58 -07:00
Jürg Lehni
d70c9b0464 Minor syntax fixes. 2013-05-05 23:19:22 -07:00
Jürg Lehni
3a7547a255 Bring back accidentally removed static functions on Curve. 2013-05-05 23:14:49 -07:00
Jürg Lehni
db42dfdfc1 Implement simpler strategy to iteratively find nearest points on paths.
Idea based on method described on http://pomax.github.io/bezierinfo/
2013-05-05 23:05:57 -07:00
Jürg Lehni
acb3d6f5f9 Update package.json for publishing to NPM. 2013-05-05 19:22:13 -07:00
Jürg Lehni
0fc4b9f28d Remove intersection caching code. 2013-05-05 16:38:18 -07:00
Jürg Lehni
83b68cdb8e Restore full validation check for resulting paths. 2013-05-05 16:36:25 -07:00
Jürg Lehni
c006b081f6 Fix issue that broke "Maximum possible intersections between 2 cubic bezier curve segments - 9" test. 2013-05-05 16:23:41 -07:00
Jürg Lehni
364f6dcd36 Improve code comments a bit. 2013-05-04 11:13:38 -07:00
Jürg Lehni
6da97b894f Improve code comments a bit. 2013-05-04 11:13:38 -07:00
Jürg Lehni
656300ffb1 Write documentation for boolean path operations. 2013-05-04 10:58:50 -07:00
Jürg Lehni
d911c7b12a Write documentation for boolean path operations. 2013-05-04 10:58:50 -07:00
Jürg Lehni
26b3beed5c Implement static Line.intersect() and use it to speed up Curve.getIntersections()
Unfortunately doesn't seem to have any impact!
2013-05-04 10:22:10 -07:00
Jürg Lehni
f704b00e00 Implement static Line.intersect() and use it to speed up Curve.getIntersections()
Unfortunately doesn't seem to have any impact!
2013-05-04 10:22:10 -07:00
Jürg Lehni
86a26db2a2 Use variable names that better reflec functionality and original naming. 2013-05-04 09:58:46 -07:00
Jürg Lehni
4eff5bf45e Use variable names that better reflec functionality and original naming. 2013-05-04 09:58:46 -07:00
Jürg Lehni
f58f58e406 Some more minor tweaks. 2013-05-04 03:38:19 -07:00
Jürg Lehni
3ab20ea3e9 Some more minor tweaks. 2013-05-04 03:38:19 -07:00
Jürg Lehni
023f768817 Further clean up.
Instead of removing temporary data structure, clone Segment.
2013-05-04 03:33:44 -07:00
Jürg Lehni
1e8947af63 Further clean up.
Instead of removing temporary data structure, clone Segment.
2013-05-04 03:33:44 -07:00
Jürg Lehni
cb66f6f2e2 Improve comments. 2013-05-04 03:20:53 -07:00
Jürg Lehni
31a45bad97 Improve comments. 2013-05-04 03:20:53 -07:00
Jürg Lehni
cbde2ea526 Fix accidental variable leakage. 2013-05-04 03:13:57 -07:00
Jürg Lehni
e1ef69f23a Fix accidental variable leakage. 2013-05-04 03:13:57 -07:00
Jürg Lehni
b5abfcb515 One last optimization in computeBoolean(). 2013-05-04 03:08:43 -07:00
Jürg Lehni
469d3129a6 One last optimization in computeBoolean(). 2013-05-04 03:08:43 -07:00
Jürg Lehni
3ee10c1765 more optimizations in computeBoolean().
I think this is done now!
2013-05-04 03:00:31 -07:00
Jürg Lehni
7fdaa3e699 more optimizations in computeBoolean().
I think this is done now!
2013-05-04 03:00:31 -07:00
Jürg Lehni
9fb7340aac Remove need for __segment property and further simplify computeBoolean() code. 2013-05-04 02:50:18 -07:00
Jürg Lehni
9aafb46e6c Remove need for __segment property and further simplify computeBoolean() code. 2013-05-04 02:50:18 -07:00
Jürg Lehni
43b7afb961 Merge loops in reorientPath(). 2013-05-03 23:25:26 -07:00
Jürg Lehni
a5d00e64cf Merge loops in reorientPath(). 2013-05-03 23:25:26 -07:00
Jürg Lehni
aab41752b4 Minor cleanup. 2013-05-03 23:08:00 -07:00
Jürg Lehni
37300455a8 Minor cleanup. 2013-05-03 23:08:00 -07:00
Jürg Lehni
737c2c36fe More computeBoolean() optimizations and clean up. 2013-05-03 23:03:00 -07:00
Jürg Lehni
4a9e3924c6 More computeBoolean() optimizations and clean up. 2013-05-03 23:03:00 -07:00
Jürg Lehni
55c799dc2c Clean up computeBoolean().
Work in progress.
2013-05-03 22:38:29 -07:00
Jürg Lehni
1031f4ecfb Clean up computeBoolean().
Work in progress.
2013-05-03 22:38:29 -07:00
Jürg Lehni
f15deec334 Clean up reorientCompoundPath(). 2013-05-03 22:09:56 -07:00
Jürg Lehni
d014ed3c68 Clean up reorientCompoundPath(). 2013-05-03 22:09:56 -07:00
Jürg Lehni
d5543842e9 Define CompoundPath#reverse() and #clockwise, and replace reversePath() with it. 2013-05-03 21:41:22 -07:00
Jürg Lehni
25e5582a35 Define CompoundPath#reverse() and #clockwise, and replace reversePath() with it. 2013-05-03 21:41:22 -07:00
Jürg Lehni
3515574f65 Move fix for faulty _curves list after calls to Path#reverse() to the right place. 2013-05-03 21:33:17 -07:00
Jürg Lehni
bd3031cdff Move fix for faulty _curves list after calls to Path#reverse() to the right place. 2013-05-03 21:33:17 -07:00
Jürg Lehni
81b4136775 Improve testOnCurve() code. 2013-05-03 21:24:02 -07:00
Jürg Lehni
f03283804b Improve testOnCurve() code. 2013-05-03 21:24:02 -07:00
Jürg Lehni
98efa2f66b Move private functions into private injection scope. 2013-05-03 21:21:53 -07:00
Jürg Lehni
99cf8ae9d4 Move private functions into private injection scope. 2013-05-03 21:21:53 -07:00
Jürg Lehni
d268c68ae5 Remove names from boolean operator functions and use parameter instead. 2013-05-03 21:16:36 -07:00
Jürg Lehni
990e8b4599 Remove names from boolean operator functions and use parameter instead. 2013-05-03 21:16:36 -07:00
Jürg Lehni
9a4c8bde19 Rewrite PathItem#_splitPath() to use Curve#divide().
Leading to faster code, due to less loop passes.
2013-05-03 21:05:44 -07:00
Jürg Lehni
fb8effe088 Rewrite PathItem#_splitPath() to use Curve#divide().
Leading to faster code, due to less loop passes.
2013-05-03 21:05:44 -07:00
Jürg Lehni
7e6519349a Clean up Curve#divide() code. 2013-05-03 21:00:46 -07:00
Jürg Lehni
85de8a0b7d Clean up Curve#divide() code. 2013-05-03 21:00:46 -07:00
Jürg Lehni
5f0feeb31f Adjust precision of Curve#isFlatEnough() to cover rare edge cases. 2013-05-03 21:00:37 -07:00
Jürg Lehni
3101989974 Adjust precision of Curve#isFlatEnough() to cover rare edge cases. 2013-05-03 21:00:37 -07:00
Jürg Lehni
b07e52d361 More work on PathItem#__splitPath() 2013-05-03 18:52:03 -07:00
Jürg Lehni
af51edda34 More work on PathItem#__splitPath() 2013-05-03 18:52:03 -07:00
Jürg Lehni
f054f4a7e0 Allow better code compression by reducing property lookup. 2013-05-03 17:38:15 -07:00
Jürg Lehni
af84bb9988 Allow better code compression by reducing property lookup. 2013-05-03 17:38:15 -07:00
Jürg Lehni
8f7de47bb9 Clean up and simplify PathItem#_splitPath() code.
- Follow Paper.js variable scoping conventions (pretend we have Java-style variable scopes for better readability of code)
- Break lines at 80 chars
- Merge some duplicate code in segment handling.
2013-05-03 17:30:59 -07:00
Jürg Lehni
72a27d9732 Clean up and simplify PathItem#_splitPath() code.
- Follow Paper.js variable scoping conventions (pretend we have Java-style variable scopes for better readability of code)
- Break lines at 80 chars
- Merge some duplicate code in segment handling.
2013-05-03 17:30:59 -07:00
Jürg Lehni
410ceb8ff1 Simplify PathItem#exclude() and #divide() 2013-05-03 16:56:00 -07:00
Jürg Lehni
b8fcc9b105 Simplify PathItem#exclude() and #divide() 2013-05-03 16:56:00 -07:00
Jürg Lehni
1d55372ed4 Revert return strategy of boolean operators for simpler code, simplify operator logic and inline functions. 2013-05-03 16:52:37 -07:00
Jürg Lehni
c11967c81c Revert return strategy of boolean operators for simpler code, simplify operator logic and inline functions. 2013-05-03 16:52:37 -07:00
Jürg Lehni
3fc200973e Include BooleanOperations.html 2013-05-03 16:31:36 -07:00
Jürg Lehni
ee8a79449b Include BooleanOperations.html 2013-05-03 16:31:36 -07:00
Jürg Lehni
68d67fcdcf Start converting boolean code to Paper.js conventions.
- Tabs instead of white-space
- Different rules about spaces before / after parenthesis
2013-05-03 16:21:44 -07:00
Jürg Lehni
1fe83a482f Start converting boolean code to Paper.js conventions.
- Tabs instead of white-space
- Different rules about spaces before / after parenthesis
2013-05-03 16:21:44 -07:00
Jürg Lehni
7ec53f74d1 Move boolean code into its own file, and add information comments again. 2013-05-03 16:16:52 -07:00
Jürg Lehni
90e3dd201a Move boolean code into its own file, and add information comments again. 2013-05-03 16:16:52 -07:00
hkrish
d9d86f4ff7 Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Undo recent change to Curve#getIntersection() since it breaks some boolean operations.

€ý5:q
2013-05-03 19:24:03 +02:00
hkrish
e75cc32a3b Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Undo recent change to Curve#getIntersection() since it breaks some boolean operations.

€ý5:q
2013-05-03 19:24:03 +02:00
Jürg Lehni
9e3b7eef50 Undo recent change to Curve#getIntersection() since it breaks some boolean operations. 2013-05-02 11:32:24 -07:00
Jürg Lehni
840e879ba8 Undo recent change to Curve#getIntersection() since it breaks some boolean operations. 2013-05-02 11:32:24 -07:00
hkrish
debce28bc4 Merge upstream 2013-05-02 14:18:24 +02:00
hkrish
10553c1bd8 Merge upstream 2013-05-02 14:18:24 +02:00
hkrish
381ee98cbc Updated boolean operation methods.
The algorithm is based on paperjs' native segment and curve objects
rather than the generic Node and Link objects.
Also this is much smaller and faster! :)
2013-05-02 13:49:07 +02:00
hkrish
73b018f006 Updated boolean operation methods.
The algorithm is based on paperjs' native segment and curve objects
rather than the generic Node and Link objects.
Also this is much smaller and faster! :)
2013-05-02 13:49:07 +02:00
Jürg Lehni
f425c931a8 Improve Curve#getIntersections() by avoiding further subdivision of flat curves. 2013-05-01 18:40:57 -07:00
Jürg Lehni
e8fed1bdf0 Improve Curve#getIntersections() by avoiding further subdivision of flat curves. 2013-05-01 18:40:57 -07:00
Jürg Lehni
023c8b0432 Fix issue with recursive call of Curve.getIntersections(). 2013-05-01 18:24:54 -07:00
Jürg Lehni
c61e8d57b9 Fix issue with recursive call of Curve.getIntersections(). 2013-05-01 18:24:54 -07:00
hkrish
934ec8df7e Fix: Update the getIntersections method signature in recursive calls 2013-05-01 13:29:02 +02:00
hkrish
f239a3980d Fix: Update the getIntersections method signature in recursive calls 2013-05-01 13:29:02 +02:00
hkrish
d8dc762826 Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Define CurveLocation#intersection as a way to retrieve the CurveLocation on the intersecting path when using Path#getIntersections().

€ý5€ý`q€kb:q
2013-05-01 12:39:04 +02:00
hkrish
88b720be76 Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Define CurveLocation#intersection as a way to retrieve the CurveLocation on the intersecting path when using Path#getIntersections().

€ý5€ý`q€kb:q
2013-05-01 12:39:04 +02:00
Jürg Lehni
69f8bdc560 Define CurveLocation#intersection as a way to retrieve the CurveLocation on the intersecting path when using Path#getIntersections(). 2013-04-30 18:41:26 -07:00
Jürg Lehni
883e3ad563 Define CurveLocation#intersection as a way to retrieve the CurveLocation on the intersecting path when using Path#getIntersections(). 2013-04-30 18:41:26 -07:00
hkrish
30d9e322e8 Boolean Operations.
This is probably a crude integration. Need to resolve some issues,
such as finding the right place for constants, private classes etc.
2013-04-29 21:36:12 +02:00
hkrish
b4dd16bbfb Boolean Operations.
This is probably a crude integration. Need to resolve some issues,
such as finding the right place for constants, private classes etc.
2013-04-29 21:36:12 +02:00
Jürg Lehni
c7ab32c501 Rearrange linear curve conditions. 2013-04-26 14:37:37 -07:00
Jürg Lehni
c513a24f46 Handle intersection between linear curves without recursive subdivision.
Closes #207.
2013-04-26 14:31:42 -07:00
Jürg Lehni
06ffd8089d Fix issue in Path#removeSegments() where curves are removed wrongly when start index is 0.
Closes #200.
2013-04-26 08:46:57 -07:00
Jürg Lehni
74f6a93b33 Optimize Curve.getArea(). 2013-04-25 17:47:11 -07:00
Jürg Lehni
898e216668 Implement Path#getArea() and CompoundPath#getArea(). 2013-04-25 17:37:19 -07:00
Jürg Lehni
80a1129eab Consistently use 'this' rather than 'Curve'. 2013-04-25 17:19:00 -07:00
Jürg Lehni
1b5ca4dec9 Rename Curve._addIntersections() to Curve.getIntersections() 2013-04-25 17:17:53 -07:00
Jürg Lehni
eaa6e3bb6b Improve Curve#getCrossings() documentation and code. 2013-04-25 11:08:50 -07:00
Jürg Lehni
d7e075d316 Handle contour edge cases in Path#contains().
Closes #208.
2013-04-25 11:03:49 -07:00
Jürg Lehni
edfd8f53de Remove accidentally committed debugging code. 2013-04-24 19:28:46 -07:00
Jürg Lehni
c70b9e7d7d Fix issue with Path#strokeBounds with #strokeJoin == 'miter' and clockwise orientation.
Closes #206.
2013-04-24 19:27:31 -07:00
Jürg Lehni
420fb49230 Speed up Raster#getPixel(). 2013-04-24 18:09:58 -07:00
Jürg Lehni
ead3646581 Handle alpha channels correctly in Raster#get/setPixel.
Closes #209.
2013-04-24 16:29:28 -07:00
Jürg Lehni
69512ac396 Simplify and document Segment#_serialize(). 2013-04-23 07:39:31 -07:00
Jürg Lehni
6029f59494 More uppercase changes. 2013-04-23 07:29:30 -07:00
Jürg Lehni
96d9b6730f Rename Svg acronyms in API to SVG. 2013-04-23 07:19:08 -07:00
Jürg Lehni
cebeb11301 Rename Json acronyms in API to JSON. 2013-04-23 07:13:51 -07:00
Jürg Lehni
faecb7e78a Allow creation of items when project has no layers. 2013-04-22 23:25:34 -07:00
Jürg Lehni
1b61e4333c Implement Project#clear(). 2013-04-22 22:48:36 -07:00
Jürg Lehni
885d75296d Fix Layer#isInserted() for nested Layers. 2013-04-22 22:47:48 -07:00
Jürg Lehni
0c114883e1 Add unique ids to CurveLocation. 2013-04-22 19:11:42 -07:00
Jürg Lehni
6800a6d534 Use separate id ranges for different classes. 2013-04-22 19:09:59 -07:00
Jürg Lehni
2a53dbe60f Restructure Color constructor to remove need for Color.create(). 2013-04-22 19:07:38 -07:00
Jürg Lehni
dc9a9c42d2 Cleanup solveCubic() further. 2013-04-21 08:44:41 -07:00
Jürg Lehni
2fc4ff10ee Implement Item#_contains() with local coordinates, and have Item#contains() take Item#matrix into account. 2013-04-21 08:43:05 -07:00
Jonathan Puckey
b8085c330f Rename properties to object in Rectangle constructor docs. 2013-04-21 16:07:54 +02:00
Jonathan Puckey
3136480e5e Clean up Segment object constructor example. 2013-04-21 16:02:26 +02:00
Jonathan Puckey
3517493f76 Improve PointText constructor examples. 2013-04-21 15:59:51 +02:00
Jonathan Puckey
52e7c39567 Improve Curve documentation. 2013-04-21 15:43:57 +02:00
Jonathan Puckey
e4203c2e36 Improve Color documentation. 2013-04-21 15:36:20 +02:00
Jonathan Puckey
d4d1a0fdae Improve Style example code. 2013-04-21 15:36:03 +02:00
Jonathan Puckey
191213f362 Improve GradientStop example code. 2013-04-21 15:35:45 +02:00
Jonathan Puckey
fbc3985bbf Add Gradient class examples. 2013-04-21 15:35:31 +02:00
Jonathan Puckey
fdd367e1c2 Add titles to Path.Constructors documentation examples. 2013-04-21 13:58:22 +02:00
Jonathan Puckey
a5997dcc24 Add example to Item#contains(point) docs. 2013-04-21 13:56:29 +02:00
Jonathan Puckey
daf8d0f881 Rename 'properties' constructor parameter to 'object' in docs. 2013-04-21 13:54:31 +02:00
Jonathan Puckey
0369f5aea9 Fix mistake in example code. 2013-04-21 13:53:13 +02:00
Jürg Lehni
4b24690207 Implement Shape#contains() and define unit tests for it. 2013-04-20 20:54:06 -07:00
Jürg Lehni
2793709935 Fix wrong Shape.Circle size. 2013-04-20 20:53:40 -07:00
Jürg Lehni
db7eb65bd7 Implement Item#contains() and use it for hit-testing Rasters. 2013-04-20 20:41:52 -07:00
Jürg Lehni
bb03c72ce8 Implement Item#hasFill(). 2013-04-20 20:40:20 -07:00
Jürg Lehni
acd3236989 Optimize Shape constructors by passing along point. 2013-04-20 20:24:16 -07:00
Jürg Lehni
e8695dee9b Replace solveCubic() code with version that does not use cbrt() calls. 2013-04-20 20:04:23 -07:00
Jürg Lehni
6fc2d50939 Remove cbrt() since we don't use it anymore. 2013-04-20 20:00:11 -07:00
Jürg Lehni
c45ad26b67 Remove tolerance parameter from solveCubic() / solveQuadratic() since we should always use EPSILON. 2013-04-20 19:58:42 -07:00
Jürg Lehni
14aa8e5dea Improve precision of Numerical.solveCubic() and fix issues in Curve.getCrossings().
Closes #202.
2013-04-20 19:14:19 -07:00
Jürg Lehni
461def5383 Fix issue with imprecise tangents / normals to curves at t = 0, 1. 2013-04-20 17:40:19 -07:00
Jürg Lehni
1952e3dc7d Implement Curve#getCurvatureAt(). 2013-04-20 17:26:51 -07:00
Jürg Lehni
bcb10a222f Add SvgImport example for Inkscape and fix issue with multiple SVG path commands.
Closes #203.
2013-04-20 14:54:21 -07:00
Jürg Lehni
3025c63179 Simplify Style creation. 2013-04-19 20:00:30 -07:00
Jürg Lehni
41a58acb8c Document new approach to styles. 2013-04-19 19:51:04 -07:00
Jürg Lehni
f51dc65cca Use Color object for default. 2013-04-19 19:39:05 -07:00
Jürg Lehni
53dac53ca0 Restructure code organization by separating canvas related utility classes into separate canvas folder, and move inclusion of utilities classes to beginning.
Was needed because Numerical.KAPPA is accessed at compile time.
2013-04-19 19:38:48 -07:00
Jürg Lehni
e1807214f4 Large refactoring of Style handling for notable speed improvements. 2013-04-19 19:31:29 -07:00
Jürg Lehni
98f7c020bd Use Item#type instead of instanceof checks for better performance. 2013-04-19 19:27:02 -07:00
Jürg Lehni
bf9acd4499 Correct Numerical.KAPPA value. 2013-04-19 18:57:31 -07:00
Jürg Lehni
9da392a99c Commit initial support for Shape class.
Hit testing is still missing.
2013-04-19 17:25:50 -07:00
Jürg Lehni
90f2614d52 Export Numerical object and move KAPPA constant there. 2013-04-19 17:03:41 -07:00
Jürg Lehni
9cc0822477 Move PlacedItem#_hitTest() to PlacedSymbol#_hitTest() since it was written for symbols, and remove PlacedItem as it's an empty class now. 2013-04-19 16:40:30 -07:00
Jürg Lehni
67203e753c Move #applyMatrix setting to PathItem. 2013-04-19 13:16:00 -07:00
Jürg Lehni
8d99aa5f95 Handle color transformation in Item#transform() rather than Path#_applyMatrix().
Fixes an issue with BoucingBalls.html, now that CompoundPath#applyMatrix is true.
2013-04-19 13:13:54 -07:00
Jürg Lehni
bb546decae Various improvements to Color caching mechanisms. 2013-04-19 12:51:53 -07:00
Jürg Lehni
9efbc288a1 Merge Path.Rectangle and Path.RoundRectangle. 2013-04-19 12:36:49 -07:00
Jürg Lehni
922b9b5bd0 Rename _cloning parameter to _preserve. 2013-04-19 11:54:16 -07:00
Jürg Lehni
2e265693ff Make #drawSelected() protected. 2013-04-18 17:50:53 -07:00
Jürg Lehni
517b2ee27f Inline Item.drawSelectedBounds() code. 2013-04-18 17:07:32 -07:00
Jürg Lehni
9ee8590a4d Move Item.draw() to Item#draw().
Makes more sense this way.
2013-04-18 17:04:06 -07:00
Jürg Lehni
d23e21edd7 Make Item#draw() protected, so we know to not directly call it. 2013-04-18 16:58:35 -07:00
Jürg Lehni
d1c6b7134f Fix Raster#getAverageColor() to work with new transforms history code. 2013-04-18 16:50:18 -07:00
Jürg Lehni
c50b940ff3 Fix Item#rasterize() to work with new matrices history code. 2013-04-18 16:23:27 -07:00
Jürg Lehni
1333f59d54 Have CompoundPath always apply transformations by default. 2013-04-18 16:22:21 -07:00
Jürg Lehni
d2b43b043a Fix comment. 2013-04-16 19:41:45 -07:00
Jürg Lehni
96b886ae8d Avoid endless recursion when changing view from onFrame handler.
Closes #184.
2013-04-09 22:38:23 -07:00
Jürg Lehni
9fe1ff951a Clean up code. 2013-04-09 20:36:38 -07:00
Jürg Lehni
7f245974e6 Implement a faster method to filter out beginnings of intersected curves. 2013-04-09 20:35:31 -07:00
Jürg Lehni
a9a0857ba4 Find a better strategy to avoid duplicate solutions in PathItem#getIntersections().
Closes #197.
2013-04-09 20:27:55 -07:00
Jürg Lehni
2c3e8a32ab Handle nested matrices correctly when drawing blend modes or transparency.
Closes #194.
2013-04-09 20:01:10 -07:00
Jürg Lehni
f79e561512 Handle bounds correctly for groups with only empty children. 2013-04-09 19:24:41 -07:00
Jürg Lehni
0f19e72733 Minor tweaks. 2013-04-09 19:12:47 -07:00
Jürg Lehni
b55d89acda Move handling of clipping outside of draw function, so canvas context can correctly be saved and restored for clipping paths too. 2013-04-09 19:08:41 -07:00
Jürg Lehni
90cc10cc4b Calculate _globalMatrix for all drawn items and use it for the drawing of selections. 2013-04-09 18:52:47 -07:00
Jürg Lehni
e9aad895ae Import and export Item#data in SVG as well.
Closes #188.
2013-04-09 17:53:26 -07:00
Jürg Lehni
e2a118e43e Make sure color components cannot be anything else than numbers. 2013-04-09 17:43:18 -07:00
Jürg Lehni
fbe8a558bd Refactor Format literal to Formatter class that keeps precision stored. 2013-04-09 17:32:19 -07:00
Jürg Lehni
8da8f116d1 Restructure style related class organization. 2013-04-09 17:08:09 -07:00
Jürg Lehni
2d3f9c36eb Update JSDoc and fix documentation issues. 2013-04-09 17:07:41 -07:00
Jürg Lehni
b3b0fa649b Minor Style refactoring clean-ups. 2013-04-09 16:51:57 -07:00
Jürg Lehni
b4a99415d0 Merge PathStyle, CharacterStyle and ParagraphStyle into Style.
Closes #130.
2013-04-09 16:46:20 -07:00
Jürg Lehni
a4f36a59a6 Minor code simplification. 2013-04-09 14:04:25 -07:00
Jürg Lehni
8feb510ea1 Make sure highlight remains an optional component. 2013-04-09 09:34:39 -07:00
Jürg Lehni
9d0b9dc4c6 Allow implicit Gradient declaration in Color object literals. 2013-04-09 09:27:46 -07:00
Jürg Lehni
0d125e1a12 Make sure Gradient#stops and #radial are alway set. 2013-04-09 09:23:08 -07:00
Jürg Lehni
26efbdb451 Implement argument reading for Gradient objects. 2013-04-09 09:20:32 -07:00
Jürg Lehni
b9532f6a1a Rename Color#hilite -> Color#highlight. 2013-04-09 08:51:14 -07:00
Jürg Lehni
10c0a44940 Make sure _components are always defined before parsers are called. 2013-04-09 08:40:09 -07:00
Jürg Lehni
da7b32a18e Clean up code references to GradientColor. 2013-04-09 08:36:17 -07:00
Jürg Lehni
bf21e32082 Implement calling of _removeOwner() for gradients. 2013-04-09 08:36:02 -07:00