Commit graph

3705 commits

Author SHA1 Message Date
Jürg Lehni
e9d2c6cfd4 Further simplify code a bit. 2013-12-16 21:45:06 +01:00
Jürg Lehni
d984a2cd87 Use correct value for tolerance in non-fatline code again. 2013-12-16 21:41:46 +01:00
Jürg Lehni
a59a42376a Clean up coding style a bit. 2013-12-16 21:40:40 +01:00
hkrish
5fe092672e Fatline clipping: fix c-hull corner case. 2013-12-14 00:31:42 +01:00
Jürg Lehni
a51f8d4ee8 Rename Item#anchor -> Item#pivot 2013-12-13 20:50:58 +01:00
hkrish
a0013da7f8 Merge branch 'master' into fatline
* master: (71 commits)
  Define the default value for Color#alpha.
  Some minor changes in Satie example.
  Include point property in stroke hit-results.
  Clean up code and comments in various places.
  Use Point.read() for center parameter in Item#rotate
  Make hit-tests work again with projects that don't have a view.
  Write documentation for Item#anchor.
  Keep support for Item#registration for now as well, since there are some scripts on the mailing list that use it.
  Rename Item#registration to Item#anchor
  No need to run Radial Rainbows in HiDPI mode.
  Include Satie Sound Analysis Example.
  Only start dragging if none of the mosedown events have stopped propagation.
  Fix item-level mousedrag events again.
  Allow layers to select children again, since it breaks examples otherwise.
  Fix documentation issues in TextItem.
  Make hit-test tolerance dependent of view#matrix
  Implement options.selected for hit-testing segments and handles.
  Fix typo in new segment / handle hit-testing code.
  Use same stroke tolerance approach for hit-testing joins and caps as well.
  Do not factor in view matrix into Item#globalMatrix.
  ...
2013-12-13 20:04:43 +01:00
hkrish
5fb75593c2 Remove enpoint fix from curve-line intersections, since it's already handled 2013-12-13 20:01:58 +01:00
Jürg Lehni
d60e99c608 Minor documentation fixes. 2013-12-13 16:21:57 +01:00
Jürg Lehni
5482f2e5f7 Define the default value for Color#alpha. 2013-12-13 15:50:08 +01:00
Jürg Lehni
d176acfc53 Include point property in stroke hit-results. 2013-12-11 17:10:32 +01:00
Jürg Lehni
25d8b1f0d2 Clean up code and comments in various places. 2013-12-11 17:10:09 +01:00
Jürg Lehni
3ff4a6d801 Use Point.read() for center parameter in Item#rotate 2013-12-11 17:09:03 +01:00
Jürg Lehni
da427e969b Make hit-tests work again with projects that don't have a view.
Fixes broken tests.
2013-12-11 17:08:36 +01:00
Jürg Lehni
97f7204eab Write documentation for Item#anchor. 2013-12-11 16:23:30 +01:00
Jürg Lehni
42788a5bf7 Keep support for Item#registration for now as well, since there are some scripts on the mailing list that use it. 2013-12-11 15:08:56 +01:00
Jürg Lehni
78a2685324 Rename Item#registration to Item#anchor 2013-12-11 14:59:51 +01:00
Jürg Lehni
f003cc05d7 Only start dragging if none of the mosedown events have stopped propagation. 2013-12-11 02:15:17 +01:00
Jürg Lehni
45f9fcd830 Fix item-level mousedrag events again. 2013-12-11 00:10:03 +01:00
Jürg Lehni
e2b48ebf33 Allow layers to select children again, since it breaks examples otherwise. 2013-12-10 23:55:41 +01:00
Jürg Lehni
cf2c1ca04b Fix documentation issues in TextItem. 2013-12-10 23:03:10 +01:00
Jürg Lehni
9501fd1924 Make hit-test tolerance dependent of view#matrix 2013-12-10 22:53:03 +01:00
hkrish
ef66b6dbe6 Fatline clipping: fix convergence check to be more strict 2013-12-10 20:45:25 +01:00
Jürg Lehni
68bce5b062 Implement options.selected for hit-testing segments and handles. 2013-12-10 19:34:25 +01:00
Jürg Lehni
52891830e4 Fix typo in new segment / handle hit-testing code. 2013-12-10 18:59:04 +01:00
Jürg Lehni
9177bac125 Use same stroke tolerance approach for hit-testing joins and caps as well. 2013-12-10 14:23:05 +01:00
Jürg Lehni
7c28c7e9e3 Do not factor in view matrix into Item#globalMatrix.
Instead concatenate it when drawing selections.
2013-12-10 13:18:21 +01:00
Jürg Lehni
48c8946f9e Implement correct hit-testing tolerance using transformed 2D stroke padding rather than unscaled numerical tolerance.
But we still need to factor in the View zoom as well...
2013-12-10 12:52:42 +01:00
Jürg Lehni
3d868ae400 Fix issue with cached internal bounds and #transformContent == true. 2013-12-10 12:51:49 +01:00
Jürg Lehni
d65ede7df8 Correctly take strokePadding and transformation matrices into account in roughBounds, through new Path._getPenPadding() 2013-12-10 11:43:05 +01:00
Jürg Lehni
48b7b740ad Allow the creation of internally used items with no ids. 2013-12-10 11:07:14 +01:00
hkrish
ac41f0d3c1 Fatline clipping: fix issue where one of the curves has been converged completely and other hasn't. 2013-12-09 23:27:26 +01:00
hkrish
0598afd77b Fatline clipping: remove old #curveIntersection method 2013-12-09 19:36:14 +01:00
Jürg Lehni
642111a7a2 Fix error in #getGlobalMatrix() 2013-12-09 19:33:50 +01:00
Jürg Lehni
b7943239eb Implement cached getInternalRoughBounds as well. 2013-12-09 19:33:34 +01:00
hkrish
2fa5e3d417 Remove debug helpers 2013-12-09 19:31:58 +01:00
hkrish
82ab532885 Fatline clipping: clipConvexHull method handles only the clipping part 2013-12-09 19:31:04 +01:00
hkrish
35acebb91d Fatline clipping: remove old fatline code. This is handled by the CurveIntersections method now 2013-12-09 19:30:03 +01:00
hkrish
6041b2b09d Fatline clipping: new #CurveIntersections method 2013-12-09 19:28:56 +01:00
Jürg Lehni
7278ee4374 Make JSON serialization work for Shapes. 2013-12-09 17:27:41 +01:00
Jürg Lehni
407a7fcde7 Support Size and Point arguments in Rectangle#expand() 2013-12-09 16:21:37 +01:00
Jürg Lehni
1e9fc61644 Fix issues with deserializing selection states. 2013-12-09 15:18:43 +01:00
Jürg Lehni
007b780763 Make font properties disappear in JSON. 2013-12-09 15:15:10 +01:00
Jürg Lehni
94d5a09b7b Do not inherit selection behavior from Group in Layer. 2013-12-09 15:10:09 +01:00
Jürg Lehni
44e913201d Switch back to instanceof checks.
As people are started to subclass Paper.js classes...
2013-12-09 15:04:44 +01:00
Jürg Lehni
e238d23194 Implement caching of internal, untransformed bounds. 2013-12-09 10:53:19 +01:00
Jürg Lehni
5197dd81c5 Fix #fontWeight examples and documentation. 2013-12-09 10:17:10 +01:00
Jürg Lehni
81fe98d1bb Make cachedBounds mechanism work for Symbols. 2013-12-09 09:05:29 +01:00
Jürg Lehni
f8f60ec603 Fix slow-down in bounds caching. 2013-12-09 08:58:37 +01:00
Jürg Lehni
2cd3de8188 Improve versioning of _globalMatrix 2013-12-09 07:51:28 +01:00
Jürg Lehni
663836ae41 Correctly handle mousemove events when switching between canvases or leaving the document.
Closes #250.
2013-12-08 23:57:46 +01:00
hkrish
b471b90229 Fatline clipping: Iterate to find intersections 2013-12-08 23:29:38 +01:00
hkrish
68b9adac95 Modify old clipFatline code to a much cleaner version 2013-12-08 23:15:18 +01:00
hkrish
45e35aad83 New CurveCurveINtersections code; doing the fatline clip inplace. 2013-12-08 23:14:13 +01:00
Jürg Lehni
17e4078e3b Fix a newly introduced bug in drawSegments() 2013-12-08 22:16:27 +01:00
Jürg Lehni
064d632d65 More matrix related clean-ups. 2013-12-08 22:12:36 +01:00
Jürg Lehni
238f577e6f Clean up _getCachedBounds() code. 2013-12-08 22:06:32 +01:00
Jürg Lehni
8cec512cc2 Take matrices into account in PathItem#getIntersections() 2013-12-08 22:00:40 +01:00
Jürg Lehni
516b9d040f Apply matrices before calculating boolean path operations. 2013-12-08 21:39:56 +01:00
Jürg Lehni
3cd141170a Implement Style#fontFamily and #fontWeight as a replacement for #font.
Closes #60.
2013-12-08 21:12:51 +01:00
Jürg Lehni
24ce35cc6e Make sure items removed from DOM remove all their events and reinstall them again when reinserted.
Closes #254.
2013-12-08 20:40:30 +01:00
Jürg Lehni
97fcd6ff38 Implement Item#getGlobalMatrix(), #globalToLocal() and #localToGlobal()
Closes #270.
2013-12-08 20:04:10 +01:00
Jürg Lehni
696b5f29b9 Implement View#pause() and View#play() to start and stop animation. 2013-12-08 19:35:20 +01:00
Jürg Lehni
6e5d8939d5 Rename View#draw() -> View#update() and remove checkRedraw argument.
We always check for changes, since change propagation should work reliably.
2013-12-08 19:15:58 +01:00
hkrish
6c5e18ae45 New clip convex-hull routine 2013-12-08 19:09:59 +01:00
Jürg Lehni
c75d48cf98 Fix comments. 2013-12-08 18:45:11 +01:00
Jürg Lehni
fc4e88c039 Change the way segments, points and handles are selected and deselected.
There is no interdependency anymore, except for selecting a segment selects the point and both handles, and selecting a curve selects both points and handles.

Closes #355
2013-12-08 18:06:31 +01:00
Jürg Lehni
afe00add32 Implement option.type filtering in #hitTest() functions. 2013-12-08 16:32:42 +01:00
Jürg Lehni
2884894d0f Implement hit-testing tolerance for fill tests.
Closes #278.
2013-12-08 12:15:10 +01:00
hkrish
834c8d17a9 Declutter getConvexHull code. 2013-12-08 00:18:47 +01:00
hkrish
baa189bb19 getConvexHull returns upper and lower part of the c-hull seperately 2013-12-08 00:11:13 +01:00
Jürg Lehni
61f2f5c978 Put constructors into separate ctor variables when handling dontLink parameters before creating objects.
This hopefully solves the mysterious issue #360 on Chrome.
2013-12-07 20:03:23 +01:00
Jürg Lehni
acc0e80d78 Implement registration point for all items.
Allowing any item to use another point than the center as its anchor point for item.position.
2013-12-07 19:46:12 +01:00
Jürg Lehni
7800e5f84e Clean up strange constructor notation that causes linting issue. 2013-12-07 19:45:10 +01:00
Jürg Lehni
2401b38b03 Fix issue with group.position not updating when content changes. 2013-12-07 19:17:59 +01:00
Jürg Lehni
054356c78d Fix drawing of closed path with only one segment. 2013-12-07 16:16:04 +01:00
Jürg Lehni
f166b08257 Simplify addCap() function. 2013-12-07 16:11:02 +01:00
Jürg Lehni
eb1f62b908 Improve strokeBounds fix for paths with only one segment. 2013-12-07 16:07:51 +01:00
msand
e431154e0e Fix indent. 2013-12-07 16:09:50 +02:00
msand
73b1b9843a Wrote failing test for strokeBounds on paths with a single segment and strokeColor. Implemented fix for failing test. 2013-12-07 15:59:45 +02:00
Jürg Lehni
758c9b6146 Improve caching of decomposed transformation values. 2013-12-07 12:47:16 +01:00
Jürg Lehni
9ca92165ee Expose rotation and scaling transformations through Item#rotation and Item#scaling properties, by moving the setters from Matrix to Item. 2013-12-07 12:16:11 +01:00
Jürg Lehni
3ea5c2d728 Improve documentation of Matrix properties. 2013-12-07 12:14:20 +01:00
Jürg Lehni
3d94ff6968 Only decompose matrix if there are bounds to be reused. 2013-12-07 05:50:08 +01:00
Jürg Lehni
43e0ac5124 Add missing break statement. 2013-12-07 05:27:23 +01:00
Jürg Lehni
f62e4d43ba Implement Matrix#skew() calls for SVG skewX / skewY correctly. 2013-12-07 05:26:12 +01:00
Jürg Lehni
e12ab846bd Fix decomposed transformation sequence. 2013-12-07 05:23:39 +01:00
Jürg Lehni
4b5b62cfef Use new Matrix#skew() in SVGImport. 2013-12-07 05:22:14 +01:00
Jürg Lehni
1ba77f9d40 Implement Item#skew() and clean up Item transformation functions documentation. 2013-12-07 05:21:27 +01:00
Jürg Lehni
cb3cc84dae Implement Matrix#skew() 2013-12-07 05:20:55 +01:00
Jürg Lehni
268ecad00b Clean up Matrix documentation. 2013-12-07 05:20:38 +01:00
Jürg Lehni
2d307f0e7c Only preserve bounds if there is no shearing in the transformation.
Closes #358.
2013-12-07 05:19:49 +01:00
Jürg Lehni
3263b91708 Start implementing mouse events on view.
Work in progress...
2013-12-06 22:26:48 +01:00
Jürg Lehni
0bf863d1fa Remove ill-named Matrix properties and replace with standardized a, c, b, d, tx, ty. 2013-12-06 22:26:21 +01:00
Jürg Lehni
2cfa329fa6 Completely rework event handling on view and tools.
Fixes multiple issues on iOS:
- mousedown events were sometimes fired twice.,
- the presence of mousedown handlers broke scrolling.
Closes #266.
2013-12-06 21:49:44 +01:00
Jürg Lehni
0797202b22 Fix and improve Color documentation. 2013-12-06 20:18:47 +01:00
Jürg Lehni
fb493959d0 Fix faulty Color documentation. 2013-12-06 19:50:51 +01:00
Jürg Lehni
a50adb1020 Implement constructors for Path and CompoundPath that can handle SVG-style path-data. 2013-12-06 18:09:44 +01:00
Jürg Lehni
41fa3b24e7 Only allow the installation of one onEventType handler at a time.
For more, use #attach() / #detach()
2013-12-06 14:04:03 +01:00
Jürg Lehni
7e9989c6b9 Improve comment about globalMatrix.isInvertible() check. 2013-12-06 13:41:57 +01:00
Jürg Lehni
92590b160c Implement Canvas Path caching again using Context#currentPath. 2013-12-06 12:49:46 +01:00
Jürg Lehni
1e57031811 Do not set insert: false for the root of the imported JSON. 2013-12-06 03:16:06 +01:00
Jürg Lehni
ee7fd8cdbe Use double underscores to avoid clashes between math operators and 'private' methods.
Path already defines a #_add() method...
2013-12-05 21:11:12 +01:00
Jürg Lehni
6d5e4329c1 Remove legacy browser code since we're not supporting IE8 and below. 2013-12-04 21:04:46 +01:00
Jürg Lehni
550749d057 Avoid issues with _matrix being undefined when items are created and added in a certain sequence.
Closes #279.
2013-12-03 23:14:34 +01:00
Jürg Lehni
fc02c58ddb Implement asynchronously loading Rasters from disk and remote locations for Node.js
Closes #328.
2013-12-03 23:07:54 +01:00
Jürg Lehni
c423fcda39 Only handle and fire mousemove events when the user's either dragging or moving the mouse within the view.
Fixes #352.
2013-12-03 22:25:04 +01:00
Jürg Lehni
5f24bf8da5 Implement Rectangle#getArea() and use it in reorientPath() 2013-12-03 21:54:36 +01:00
Jürg Lehni
4926e2c8da Fix Array#sort() call in reorientPath(path) for IE.
IE expects integer values in the compare function, not boolean. Closes #350 again.
2013-12-03 21:49:49 +01:00
Jürg Lehni
88a4c64172 No need for generics in Base. 2013-12-02 14:42:27 +01:00
Jürg Lehni
b5b75dfce4 Clean-up Numerical code. 2013-12-01 23:54:52 +01:00
Jürg Lehni
448d8d9b99 Clean-up bool-fix code. 2013-12-01 23:48:59 +01:00
Jürg Lehni
971268cd72 Merge remote-tracking branch 'origin/master' into bool-fix 2013-12-01 23:28:29 +01:00
Jürg Lehni
6b448ad320 Fix more edge cases in #contains().
This should fix issue #346 for good.
2013-12-01 23:13:11 +01:00
Jürg Lehni
09bc8805a2 Fix #353 properly this time. 2013-11-30 22:11:12 +01:00
hkrish
b625ec5b6d Merge branch 'master' into bool-fix
* master: (127 commits)
  Fix edge cases in Curve._getWinding()
  Copy over parent style in Item#reduce().
  Fire key-up events for all currently pressed keys.
  Improve and streamline key-handling logic.
  Use renamed __options object in build script too.
  Correctly apply matrices to Raster items in #importSVG()
  Support passing DOM element IDs in calls to #importSVG()
  Update to latest Prepro.js and switch from global options object to __options, to avoid name clashes.
  Make directly setting view.onFrame work again.
  Update to latest Straps.js and remove unnecessary isArray argument in Base.each()
  Add missing DOCS comments.
  Fix issue where exceptions in onFrame handlers block future animations.
  Fix issue with JSON import.
  Add Node JSONtoPDF example.
  Implement Item#data cloning.
  Remove unnecessary Color#clone() since it's doing the same as Base#clone() now.
  Remove Base.merge() and use a new Straps.js feature instead.
  Improve build script to include dist file in paperjs.org website.
  Bump version to v0.9.14
  Fix setting #radius on Shape.Circle.
  ...
2013-11-30 14:50:18 +01:00
Jürg Lehni
dfc0886a8b Fix edge cases in Curve._getWinding()
Use same rules for lines as for curves, exclude end points of lines. Closes #346.
2013-11-30 14:21:47 +01:00
Jürg Lehni
dcad9d44ed Copy over parent style in Item#reduce().
Only really needed for CompoundPath...
2013-11-30 14:02:54 +01:00
Jürg Lehni
fe1035da41 Fire key-up events for all currently pressed keys.
Closes #353.
2013-11-29 23:44:27 +01:00
Jürg Lehni
3c22d37650 Improve and streamline key-handling logic.
Moving most logic into the private handleKey() function.
2013-11-29 23:43:40 +01:00
Jürg Lehni
3a10974612 Correctly apply matrices to Raster items in #importSVG()
Closes #337.
2013-11-29 23:06:04 +01:00
Jürg Lehni
0440adb575 Support passing DOM element IDs in calls to #importSVG() 2013-11-29 23:04:05 +01:00
Jürg Lehni
93d10983ee Update to latest Prepro.js and switch from global options object to __options, to avoid name clashes. 2013-11-29 20:26:38 +01:00
Jürg Lehni
aec19b9494 Make directly setting view.onFrame work again. 2013-11-29 20:03:52 +01:00
Jürg Lehni
79caf66a23 Update to latest Straps.js and remove unnecessary isArray argument in Base.each() 2013-11-29 19:53:48 +01:00
Jürg Lehni
1149399690 Add missing DOCS comments. 2013-11-29 18:50:04 +01:00
Jürg Lehni
0e5483c03f Fix issue where exceptions in onFrame handlers block future animations. 2013-11-29 18:49:51 +01:00
Jürg Lehni
5f7dbfb1ab Fix issue with JSON import. 2013-11-29 12:18:55 +01:00
Jürg Lehni
7e65426158 Implement Item#data cloning.
Closes #340.
2013-11-28 22:27:14 +01:00
Jürg Lehni
91a5bb9f88 Remove unnecessary Color#clone() since it's doing the same as Base#clone() now. 2013-11-28 22:24:29 +01:00
Jürg Lehni
593e0d8d7f Remove Base.merge() and use a new Straps.js feature instead.
A more clever Base() constructor that allows merging.
2013-11-28 22:20:00 +01:00
Jürg Lehni
c0e8285c07 Fix setting #radius on Shape.Circle. 2013-11-28 18:03:41 +01:00
Jürg Lehni
bfd65fe75d Fix issue with keydown for space.
KeyEvent#character contained the wrong charCode (0)
2013-11-28 16:49:05 +01:00
Jürg Lehni
d9eaa3f631 Fix issue with starting and stopping item based animations. 2013-11-28 15:48:43 +01:00
Jürg Lehni
57227b9ff6 Fix newly introduce bug in Callback#fire() 2013-11-28 15:48:28 +01:00
Jürg Lehni
ed8de613c4 Improve error handling of PaperScripts on Firefox. 2013-11-27 19:07:02 +01:00
Jürg Lehni
ff538870e0 Fix error lineNumbers in PaperScript code for Firefox and Chrome. 2013-11-27 16:41:39 +01:00
Jürg Lehni
e87bf817de Do not use Base.each() loops where it's not necessary. 2013-11-27 16:02:24 +01:00
Jürg Lehni
18db7c0d56 Fix issue with items with frame events never being removed from _frameItems list. 2013-11-27 12:38:56 +01:00
Jürg Lehni
cbefaf0dd1 Fix handling of internally cached _angle in Point.
Closes #344.
2013-11-27 00:03:03 +01:00
Jürg Lehni
ca3993fe8e Solve variable scoping issue differently by using Base.each() to provide a local closure scope. 2013-11-26 23:46:53 +01:00
Jürg Lehni
c18a5e6ffb Remove Node.js specific bug-fix by msand again, since code won't be executed on Node anymore. 2013-11-26 23:41:24 +01:00
Jürg Lehni
f224bb3e86 Merge github.com:msand/paper.js into msand-master 2013-11-26 23:38:40 +01:00
Jürg Lehni
5beb0f17ed Fix hit-testing on paths with a matrix that is not the identity. 2013-11-26 23:13:11 +01:00
Jürg Lehni
97d94e8401 Allow Path#transformContent to be set to false too. 2013-11-26 23:12:55 +01:00
Jürg Lehni
f3832e0780 Implement setters for Matrix#translation, #rotation and #scaling.
Propagating the changes down to the owning Item too.
2013-11-26 19:28:18 +01:00
Jürg Lehni
b96f9ff57b Rearrange method sequence in Item. 2013-11-26 19:27:09 +01:00
Jürg Lehni
56f25e8742 Implement change propagation in matrices. 2013-11-26 19:03:58 +01:00
Jürg Lehni
8e44049f42 Clean up smooth() code. 2013-11-26 17:32:52 +01:00
Jürg Lehni
78e4f3e1b2 Fix recently introduced issue with Node.js 2013-11-26 17:32:41 +01:00
Jürg Lehni
adac126e6c Rename Ast -> AST 2013-11-25 19:34:39 +01:00
Jürg Lehni
d079e179ac Fix Path#arcBy(to, boolean) 2013-11-25 01:04:51 +01:00
Jürg Lehni
02f46b7ac2 Prevent issues with repeated PaperScript execution on same canvas and HiDPI related scaling. 2013-11-24 23:08:08 +01:00
Jürg Lehni
da9e1f8de7 Define Project#isEmpty() 2013-11-24 22:53:41 +01:00
hkrish
d64df44a78 Correct tolrance check (±EPSILON) in numerical solving methods. 2013-11-24 21:40:22 +01:00
Jürg Lehni
ea62b570f3 Handle _dontFire for all component types. 2013-11-24 16:43:07 +01:00
msand
22a918190d Fix indent. 2013-11-24 17:36:35 +02:00
msand
3b22f185ce Fix to make sure that attribute methods exists before calling. Check of hidpi attribute in canvas was crashing in Node.js, as the getAttribute method is undefined in node-canvas. 2013-11-24 17:26:09 +02:00
Jürg Lehni
af4410953f Various clean-ups regarding the handling of activeLayer, JSON deserialization, DOM insertion and and layer reusing.
JSON deserialization does no longer insert items into DOM twice now, and should therefore be faster.
2013-11-24 16:25:13 +01:00
msand
900cea3123 Fix async loading of PaperScript to use correct scope. 2013-11-24 17:19:45 +02:00
Jürg Lehni
42ec121c0a Optimize Base#merge() to not use Base#each() 2013-11-24 15:03:51 +01:00
hkrish
274f1a4b55 Sort sub-paths before 'reorienting' during boolean calculations 2013-11-24 13:32:01 +01:00
Jürg Lehni
f7a473a598 Make sure color objects are passed to change events also on color components. 2013-11-24 00:53:12 +01:00
Jürg Lehni
8f66f8ac61 Add support for color components. 2013-11-24 00:46:04 +01:00
Jürg Lehni
d56e5552b0 Handle RGB alpha correctly. 2013-11-24 00:29:13 +01:00
Jürg Lehni
b8b02417a0 Implement proper parsing of rgb / rgba CSS strings. 2013-11-24 00:23:32 +01:00
Jürg Lehni
847529eca7 Add support for hex output to Color#toCSS() 2013-11-23 23:51:59 +01:00
Jürg Lehni
baa022237c Expose Palette#components and #values. 2013-11-23 23:00:19 +01:00
Jürg Lehni
8f4b70a7d3 Minor clean up. 2013-11-14 14:42:28 +01:00
hkrish
492e78df7d Handle intersection special case, when two curves' start and end points overlap 2013-11-11 21:20:32 +01:00
Jürg Lehni
1f98d72c5b Switch HiDPI on by default.
Allow deactivation by setting the hidpi attribute to "off" on the canvas.
2013-11-06 15:32:08 +01:00
Jürg Lehni
5439f6ba45 We need to take pixel ratio into account when directly blitting blend-modes onto canvas. 2013-11-06 13:11:54 +01:00
Jürg Lehni
1049214126 Remove ctx.currentPath caching again, since it has the current affine transformation factored in and is thus useless to us. 2013-11-06 12:53:10 +01:00
Jürg Lehni
8d7fc43de2 Implement proper support for HiDPI screens.
For performance reason optional for now, activated by setting the hidpi attribute on the canvas element.
2013-11-06 11:54:05 +01:00
Jürg Lehni
b514d04f58 Export Http so the separate PaperScript scope can reach it. 2013-11-06 02:22:24 +01:00
Jürg Lehni
5630b7e415 Implement caching of drawn Canvas Path objects for better performance.
Already supported on recent Chrome and Safari.
2013-11-04 11:46:20 +01:00
Jürg Lehni
d6be004ee6 Setting a matrix on an item with #transformContent = true should immediately apply it. 2013-11-04 11:43:17 +01:00
Jürg Lehni
73fe0899ae Improve exception when passing an invalid canvas. 2013-11-04 11:42:41 +01:00
Jürg Lehni
67d969ba56 Fix issue with displaying Stats. 2013-11-04 11:42:25 +01:00
Jürg Lehni
dba5a8a9e7 Deactivate Hi-DPI support for now. 2013-11-03 13:29:13 +01:00
Jürg Lehni
893f8fb2cc Fix issues with importing full SVG documents where default styles would not be detected. 2013-11-03 13:20:51 +01:00
Jürg Lehni
1301aea47d Fix issues with importing Ghostscript Tiger. 2013-11-03 12:52:00 +01:00
Jürg Lehni
4320ef76ff Merge #document handling code into importGroup() 2013-11-03 12:36:43 +01:00
Jürg Lehni
7430c3f159 Fix #document importing for all browsers.
Safari doesn't know document.children...
2013-11-03 12:30:49 +01:00
Jürg Lehni
c5262e02bd Make importing SVG documents work for documents with doctypes and comments in the beginning. 2013-11-03 12:23:20 +01:00
Jürg Lehni
1637a31ad7 Allow #importSVG() to import from File objects too. 2013-11-03 12:10:19 +01:00
Jürg Lehni
20253e58a7 Avoid multiple onLoad calls when remote SVG cannot be loaded. 2013-11-03 00:00:46 +01:00
Jürg Lehni
af1c6830e0 Small variable name change. 2013-11-02 21:26:32 +01:00
Jürg Lehni
056dcceacc Implement #importSVG() from external URL. 2013-11-02 21:17:11 +01:00
Jürg Lehni
b8ab0f36f9 Remove unused local variable and comment. 2013-11-02 20:37:23 +01:00
Jürg Lehni
c797f2f0ad Keep the native animation loop running as long as there are unprocessed callbacks. 2013-11-02 20:26:06 +01:00
Jürg Lehni
a6c175c82c Improve DomEvent.requestAnimationFrame() code to only handle canvases that are actually visible. 2013-11-02 20:10:35 +01:00
Jürg Lehni
7e660b05e3 Avoid using the wrong PaperScope in keyboard events. 2013-11-02 14:36:44 +01:00
Jürg Lehni
4f32cc2eea No need for RegExp group in match statement. 2013-11-02 13:25:03 +01:00
Jürg Lehni
7b1f118aed Use same command sequence as in switch statement. 2013-11-02 09:45:11 +01:00
Jürg Lehni
97a29e6ada Improve SVG path data parser. 2013-11-02 09:30:40 +01:00
Jürg Lehni
c99d13178b Consider a Point or Size null if one of the components is null. 2013-11-01 19:25:41 +01:00
Jürg Lehni
4b97d3a6e0 Make sure that the default SVG settings are not lost on import. 2013-11-01 19:00:37 +01:00
Jürg Lehni
9b75362f3e Always respect options.asString 2013-11-01 18:27:20 +01:00
Jürg Lehni
29c00584be Fix SVG parsing issues with multiple concatenated coordinate values
e.g. "1.5.5", is to be read as "1.5" and ".5"
2013-11-01 17:56:16 +01:00
Jürg Lehni
ac862f9bc4 Some minor code clean up and variable renaming. 2013-11-01 17:55:06 +01:00
Jürg Lehni
132f54d362 Define Item#clear() as an alias for Item#removeChildren(), or Path#removeSegments() for paths. 2013-11-01 17:52:27 +01:00
Jürg Lehni
df80eb2f23 Define PaperScope#paper as a reference to the local scope.
And use it to fix Raster JSON example.
2013-11-01 11:46:31 +01:00
Jürg Lehni
c76dae5b06 Implement a new strategy for importing JSON, where it is imported into the item itself, not its children list, if the class match. 2013-11-01 11:26:11 +01:00
Jürg Lehni
70ae7486e9 Clean up white-space. 2013-10-31 12:17:34 +01:00
Jürg Lehni
2a9fe48cc9 Add options.matchShapes support to #exportSVG and improve documentation of various import / export functions. 2013-10-30 16:18:59 +01:00
Jürg Lehni
5d7c7a2409 Improve documentation of #hitTest() 2013-10-30 16:18:15 +01:00
Jürg Lehni
dc732da8d8 Clean up documentation for event handler functions on View and Tool. 2013-10-30 15:38:08 +01:00
Jürg Lehni
0ded3ae0ba Implement PathItem#cubicCurveBy() and #quadraticCurveBy()
Closes #284.
2013-10-30 01:43:55 +01:00
Jürg Lehni
71a7781bdd Fix comment. 2013-10-30 01:27:07 +01:00
Jürg Lehni
cabe253dea Remove unused argument. 2013-10-30 01:26:05 +01:00
Jürg Lehni
2a88042315 Handle importing of SVG gradients for shapes, and drawing of canvas gradients correctly.
Closes #312.
2013-10-30 01:25:13 +01:00
Jürg Lehni
4869376c41 Fix issue with cloning gradient colors. 2013-10-30 00:41:14 +01:00
Jürg Lehni
eecf68b7c3 Clear ctx.shadowColor after ctx.fill() to avoid application to both fill and stroke.
Closes #314.
2013-10-30 00:00:04 +01:00
Jürg Lehni
db882748b1 Fix documentation of Point#angle.
Closes #320.
2013-10-29 23:37:05 +01:00
Jürg Lehni
dec7efc939 Remove unused variable center. 2013-10-29 22:02:29 +01:00
Jürg Lehni
6335393541 Remove unused function argument. 2013-10-29 22:01:49 +01:00
Jürg Lehni
f211c20e77 Make Palette code optional and only include id in paper-full.js 2013-10-29 21:56:00 +01:00
Jürg Lehni
4042d4fc2c Only fire change events if values actually change. 2013-10-29 21:52:42 +01:00
Jürg Lehni
54a24d97b1 Fix typo. 2013-10-29 21:34:51 +01:00
Jürg Lehni
a3ec26dace Improve handling of change events in Palette. 2013-10-29 21:34:12 +01:00
Jürg Lehni
4e34a27da4 Some more work on comments. 2013-10-29 21:20:19 +01:00
Jürg Lehni
1871e2f7c4 Improve comments. 2013-10-29 21:18:09 +01:00
Jürg Lehni
fd96447ac1 Share ellipse reading code between Shape.Ellipse and Path.Ellipse. 2013-10-29 21:15:28 +01:00
Jürg Lehni
aca9968164 Simplify Shape#_contains() code. 2013-10-29 21:09:11 +01:00
Jürg Lehni
4333334014 Simplify Shape#hitTest() code. 2013-10-29 21:06:58 +01:00
Jürg Lehni
6fba727600 Add DOCS comments. 2013-10-29 21:00:24 +01:00
Jürg Lehni
f8d960d834 option.tolerance should always be defined in _hitTest() 2013-10-29 21:00:17 +01:00
Jürg Lehni
ae4ddaeae5 Implement correct hit-tests for rounded rectangle Shape items. 2013-10-29 20:58:30 +01:00
Jürg Lehni
c43752dc3e Use #hasFill() and #hasStroke() more broadly and avoid drawing strokes when strokeWidth is set to 0. 2013-10-29 20:05:39 +01:00
Jürg Lehni
94623f6d3f Keep radius and size in sync in Path.Rectangle. 2013-10-29 19:42:33 +01:00
Jürg Lehni
b86b66d43d Improve documentation. 2013-10-29 19:25:10 +01:00
Jürg Lehni
7f8d9d9e90 Support options.tolerance in Shape#hitTest() 2013-10-29 19:17:42 +01:00
Jürg Lehni
9d60662a28 Check for the occurrence of 'radius' rather than 'center' when deciding to read a center / radius pair for ellipses. 2013-10-29 18:53:55 +01:00
Jürg Lehni
c3aed5277d Use center and radius in all ellipse code, rather than bounding rect.
Simplifies things.
2013-10-29 18:10:30 +01:00
Jürg Lehni
fc9cad009f Implement CompoundPath#_getWindings() and move #_contains() code for both Path and CompoundPath to PathItem. 2013-10-29 17:57:25 +01:00
Jürg Lehni
04286bc1e0 Fix issue with param.trackTransforms
We can only pop() if we push()
2013-10-29 17:56:43 +01:00
Jürg Lehni
b2188be567 Make sure _globalMatrix is not set to false values in Item#rasterize(). 2013-10-29 17:37:45 +01:00
Jürg Lehni
c765e26a08 Implement SVGImport options support.
For now only options.expandShapes, which expands 	Shape items to Path items.
2013-10-29 16:47:02 +01:00
Jürg Lehni
d649b1bb21 Define insert argument for Path#toShape() and Shape#toPath() 2013-10-29 16:45:50 +01:00
Jürg Lehni
77b142bec4 Allow the SVGExport code to assume that the option object is always defined. 2013-10-29 16:41:16 +01:00
Jürg Lehni
dc3bd30ee3 Rename some variables and clean up code a bit more. 2013-10-29 16:19:39 +01:00
Jürg Lehni
de01ef1c21 Clean up code from previous merge. 2013-10-29 16:09:35 +01:00
Jürg Lehni
ef972949c8 Merge branch 'refs/heads/intersect-fix'
Conflicts:
	src/path/Curve.js
2013-10-29 16:06:02 +01:00
hkrish
ac04029f6e Curve-line intersection fix 2013-10-29 15:52:46 +01:00
Jürg Lehni
63e4bd5db2 Do not use the point of the rotated curve to evaluate the parameter of the line.
Use the non-rotated curve instead.
2013-10-29 15:46:20 +01:00
Jürg Lehni
f20e8240cd Use new range feature of solveCubic() 2013-10-29 15:44:42 +01:00
Jürg Lehni
979428b6dc Merge branch 'refs/heads/intersect-fix'
Conflicts:
	src/path/Curve.js
2013-10-29 15:15:59 +01:00
Jürg Lehni
fb27f92ede Clean up intersection-fix code. 2013-10-29 10:16:20 +01:00
Jürg Lehni
8ae1105236 Merge branch 'refs/heads/intersection-fix' 2013-10-29 10:03:26 +01:00
Jürg Lehni
5a462f42b7 Improve some comments / docs. 2013-10-29 09:42:59 +01:00