Commit graph

3915 commits

Author SHA1 Message Date
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
Jürg Lehni
c579433b3d Fix bug in Raster.onLoad()
It was executing in wrong scope on websites with multiple scopes.
2013-10-29 09:42:58 +01:00
Jürg Lehni
160fe25cd1 Improve documentation of #importSVG() methods. 2013-10-29 09:42:58 +01:00
hkrish
bec1a91812 Calculate correct parameter for Curve-Line intersections 2013-10-29 00:10:20 +01:00
Jonathan Puckey
61ecf44140 Fix spelling mistake in CanvasView#initialize. Closes #316. 2013-10-25 17:15:54 +02:00
Jürg Lehni
b4850b572a Improve variable naming. 2013-10-20 01:57:11 +02:00
Jürg Lehni
cc201655af Fix comment. 2013-10-20 01:54:53 +02:00
Jürg Lehni
e6ef5e7e17 Fix hit-test for compound paths again. 2013-10-20 01:54:20 +02:00
Jürg Lehni
ddeacb1763 More code clean up. 2013-10-20 01:41:31 +02:00
Jürg Lehni
caa50236dd Simplify winding algorithm by reusing orientation check. 2013-10-20 01:24:07 +02:00
Jürg Lehni
7c4518e4d0 Clean up some variable names. 2013-10-20 00:59:12 +02:00
Jürg Lehni
b4651a18c6 Implement #getItem() on Project and Item, similar to #getItems() but returning only the first match. 2013-10-19 13:02:53 +02:00
Jürg Lehni
1a645a1adb Implement function callbacks for item matching. 2013-10-19 12:38:36 +02:00
Jürg Lehni
4fb6a5d949 Implement #getItems(match) on Project and Item as a simple and efficient query interface. 2013-10-19 12:27:13 +02:00
Jürg Lehni
49a8ea24af No need for Object.getPrototypeOf().
Simply point _filtering directly at the original object.
2013-10-19 12:08:04 +02:00
Jürg Lehni
d59ed6d7c0 Implement a way to use fast _filtered inheritance trick and still use #hasOwnProperty() checks in Base#_set() 2013-10-19 12:05:53 +02:00
Jürg Lehni
0b7e128426 Only rely on _drawCount for drawing related things, and caching where it allows.
Project#selectedItems was out of sync until the next draw loop.
2013-10-18 21:52:22 +02:00
Jürg Lehni
5db6db3b76 Improve selection serialization to JSON and fix issue in deserialization. 2013-10-18 21:12:25 +02:00
Jürg Lehni
782f5c8f7e Fix issue with reading selected segment points from JSON when there are no handles.
The segment short form was misunderstood by the constructor.
2013-10-18 20:58:06 +02:00
Jürg Lehni
f7c21144a1 Improve handling of strokes in Path#hitTest().
Have it match stroke locations when option.stroke is set even when the path has no stroke.
2013-10-18 20:27:47 +02:00
Jürg Lehni
b91c8f93f8 Remove Curve. _getEdgeSum() again, and inline code in Path.isClockwise() 2013-10-18 19:51:54 +02:00
Jürg Lehni
1fc9f882ca Fix a minor bug in CompoundPath#contains(), improve comments and clean up code. 2013-10-18 19:49:05 +02:00
Jürg Lehni
304ecbc3be Define compoundChildren hitTest option to get matching children instead of parent. 2013-10-18 15:40:41 +02:00
Jürg Lehni
f8106ae18f Improve code handling special winding cases. 2013-10-18 15:20:32 +02:00
Jürg Lehni
75a209c002 Handle more special cases in winding algorithm. 2013-10-18 15:15:54 +02:00
Jürg Lehni
5d0fd8f970 Implement Style#windingRule and use it in Path#contains(). 2013-10-18 14:54:13 +02:00
Jürg Lehni
4f27be8f12 Include new, improved point in path algorithm based on winding number.
It's also possible to switch to using the canvas's native isPointInPath() through options.nativeContains
2013-10-18 14:22:59 +02:00
Jürg Lehni
eae526f38c Update Numerical.solveQuadratic() / solveCubic() to optionally filter results to be in a given range. 2013-10-18 13:52:01 +02:00
Jürg Lehni
523b9ea592 Fix syntax error. 2013-10-18 11:50:36 +02:00
Jürg Lehni
89704243b1 Simplify Numerical.solveQuadratic() 2013-10-18 11:48:23 +02:00
Jürg Lehni
a07538b205 Use same tolerance in Curve.isLinear() as in Curve#isLinear(). 2013-10-17 20:19:34 +02:00
Jürg Lehni
085fa3e1c6 Set named arguments at the end, since some depend on geometry to be defined (e.g. #clockwise). 2013-10-17 14:03:05 +02:00
Jürg Lehni
73d2c34088 Implement item-level #equals() method and clean up other equals methods. 2013-10-17 13:08:54 +02:00
Jürg Lehni
9976033655 Implement serialization of selection. 2013-10-17 12:04:11 +02:00
Jürg Lehni
3958d35f28 Change behavior of Path#fullySelected.
Setting it on empty paths does the same as Path#selected.
2013-10-17 12:03:46 +02:00
Jürg Lehni
c2a34d9f1f Implement an easier approach in serialization to handle the default value of leading. 2013-10-17 11:53:34 +02:00
Jürg Lehni
1eb6b49e8a Allow serialization values to mark themselves as _default.
Solves unnecessarily serialized leading values.
2013-10-17 11:47:46 +02:00
Jürg Lehni
efe8bab129 Revert previous Style change. 2013-10-17 11:40:44 +02:00
Jürg Lehni
2324fbc565 Define correct style default for leading. 2013-10-17 11:14:34 +02:00
Jürg Lehni
922f224cbd Finally remove the _gradientMatrix hack. 2013-10-16 23:47:21 +02:00
Jürg Lehni
9956a6ff51 Implement Shape#toPath(), analogue to Path#toShape().
This way is much simpler though.
2013-10-16 23:44:50 +02:00
Jürg Lehni
51cf1cfec6 Clean up Path#toShape(). 2013-10-16 23:35:50 +02:00
Jürg Lehni
772f8175e4 Remove path to shape guess-work from SVGExport. 2013-10-16 23:21:29 +02:00
Jürg Lehni
c4c7a37993 Implement Path#toShape(), Segment#isColinear(), Segment#isOrthogonal() and Segment#isArc(). 2013-10-16 23:10:03 +02:00
Jürg Lehni
751dfe52ea SVG: Define additional orthogonal check when determining shape type.
Closes #283.
2013-10-16 17:06:29 +02:00
Jürg Lehni
be5a73a61d SVG: Implement support for Shape. 2013-10-16 16:47:00 +02:00
Jürg Lehni
8ab6c61b0d Rename Shape#type to Shape#shape, to avoid clash with Item#type. 2013-10-16 16:46:22 +02:00
Jürg Lehni
3c0d1f26db Replace accidental semi-colon. 2013-10-16 16:14:37 +02:00
Jürg Lehni
953bba4c7b SVG: Use Shape instead of Path constructors for primitive shapes. 2013-10-16 16:12:46 +02:00
Jürg Lehni
392cef3961 Add missing colon. 2013-10-16 16:11:08 +02:00
Jürg Lehni
b581c84d8b Move CompoundPath#reduce() to Item#reduce(). 2013-10-16 16:10:28 +02:00
Jürg Lehni
c0c5695b5a Fix indentation. 2013-10-16 16:09:34 +02:00
Jürg Lehni
fb6ff59218 Improve ProxyContext: Use JSON.stringify() for rendering values correctly, and streamline code. 2013-10-16 16:09:11 +02:00
Jürg Lehni
d45ba19914 SVG: Use new Path.Ellipse constructor. 2013-10-16 15:28:59 +02:00
Jürg Lehni
01a0920c92 SVG: Fix faulty parsing of matrix values. 2013-10-16 15:27:49 +02:00
Jürg Lehni
f63cb40723 Fix SVG error in importing transformed gradients with highlights. 2013-10-16 15:09:23 +02:00
Jürg Lehni
1decf451b4 Implement efficient filtering of already consumed values in argument reading from object literals. 2013-10-16 15:08:44 +02:00
Jürg Lehni
9eb1c104da Implement Shape#clone() 2013-10-16 15:04:50 +02:00
Jürg Lehni
b35296ef3e Improve Shape.Ellipse to support center & radius parameters, and update documentation. 2013-10-16 15:04:37 +02:00
Jürg Lehni
b325aebc77 Docs: More smaller fixes. 2013-10-16 15:03:29 +02:00
Jürg Lehni
543609c0c6 Have Path.Ellipse constructor support negative radius values correctly. 2013-10-16 14:25:14 +02:00
Jürg Lehni
c945bf7908 Docs: Various smaller clean ups. 2013-10-16 14:20:13 +02:00
Jürg Lehni
3af179e2cf Docs: Improve Path constructors. 2013-10-16 14:19:25 +02:00
Jürg Lehni
41d6650666 Add support for named center & radius arguments to Path.Ellipse. 2013-10-16 13:32:40 +02:00
Jürg Lehni
4b636dd31c Clean up Path constructors code. 2013-10-16 13:26:08 +02:00
Jürg Lehni
8fdcbce5ac Improve argument reading in Segment. 2013-10-16 13:15:08 +02:00
Jürg Lehni
ac5c45906f Update to latest straps.js, with changed Base.create() method. 2013-10-14 23:37:43 +02:00
Jürg Lehni
2263afea59 Start implementing rounded rectangles in Shape.Rectangle. 2013-10-14 19:57:28 +02:00
Jürg Lehni
7285ec636a Improve CanvasView constructor.
Support canvas / size arguments, but not both together, and throw exception if both fail.
2013-10-14 16:06:30 +02:00
Jürg Lehni
a3d0e0d462 Clean up throw statements.
Never throw plain strings.
2013-10-14 16:05:50 +02:00
Jürg Lehni
b9ba2364fe Move Shape#isEmpty() to right place. 2013-10-14 09:15:34 +02:00
Jürg Lehni
198305b75c Remove doc comment since Item#isEmpty() is already documented, and move it to an inline comment. 2013-10-14 09:14:59 +02:00
Oliver Jones
df7f1fe874 Override default isEmpty method for Shape
Fixes (new Group([new Shape.Rectangle(...)])).bounds throwing ReferenceError when using Item's isEmpty
2013-10-12 19:28:45 +01:00
hkrish
e20ff3b0a1 Calculate correct parameter for linear segments 2013-10-11 22:03:07 +02:00
hkrish
f0434548c6 Fix regression issues with Curve-Line intersection code 2013-10-11 20:48:34 +02:00
Jürg Lehni
dfa1687a90 Adapt to new bower_components directory. 2013-10-11 00:20:30 +02:00
Jürg Lehni
60732e8456 No need for default parameter. 2013-10-10 23:09:18 +02:00
Jürg Lehni
c68a7d33da Switch from options.browser and options.node to options.environment 2013-10-10 23:09:00 +02:00
Jürg Lehni
6b45a9382c Replace typeof x !== 'undefined' checks with typeof x === 'object'. 2013-10-10 20:36:33 +02:00
Jürg Lehni
94fac965ec Minor improvement in Base.equals() 2013-10-10 20:15:56 +02:00
Jürg Lehni
c5e43778bc Allow the minification of the undefined variable by defining it as a local parameter inside the paper scope. 2013-10-10 20:15:32 +02:00
Jürg Lehni
d158056899 Optimise DomElement.getPrefixValue() 2013-10-10 16:40:46 +02:00
Jürg Lehni
22e13df102 Implement support for Hi-DPI canvas on Retina screens. 2013-10-10 16:31:24 +02:00
Jürg Lehni
03efd56df7 Fix strange issue on iOS 7 where a simple regular expression appears to cause a complete browser crash.
Closes #306.
2013-10-10 14:47:27 +02:00
Jürg Lehni
24e46bee60 Merge branch 'refs/heads/boolean-fix' 2013-10-08 20:50:47 +02:00
Jürg Lehni
0860cdd941 Clean up code a bit. 2013-10-08 20:49:24 +02:00
Jürg Lehni
367aa8ea28 Do not allow numeric values for Item#name.
Closes #298.
2013-10-08 20:38:16 +02:00
Jürg Lehni
921a68e4a2 Rename _removeFromNamed to _removeNamed. 2013-10-08 20:25:26 +02:00
Jürg Lehni
9103c19e6f Fix issues with #dashOffset when emulating native dashes.
Closes #303.
2013-10-08 10:50:59 +02:00
Jürg Lehni
9c98ef8316 Have paper.install() override existing definitions.
And include a warning about this approach in the documentation.
2013-09-23 11:49:23 -07:00
Jürg Lehni
1ee6bb7e79 Use isZero() when checking for straight curves in Curve.getLength() 2013-09-23 08:13:32 -07:00
Jürg Lehni
509ac48951 Fix indentation levels. 2013-09-22 18:18:22 -07:00
Jürg Lehni
cae4520665 Simplify addCurveLineIntersections() code. 2013-09-22 18:18:03 -07:00
Jürg Lehni
5f8c00fe8d Start implementing Item#globalToLocal() and #localToGlobal() 2013-09-22 18:04:27 -07:00
hkrish
8434b4bebe Fix: Syntax error! 2013-09-22 17:49:10 +02:00
hkrish
f9b4321a56 Boolean -fix: Interpolate to find the parameter of intersection in linear curve segments 2013-09-21 17:26:14 +02:00
hkrish
0a22211393 Conform to paperjs coding style. 2013-09-21 15:26:14 +02:00
hkrish
4f54ac1f4c Boolean -fix: Correctly perform boolean operations regardless of the input paths' winding direction 2013-09-17 19:50:13 +02:00
hkrish
669fb1638a Boolean -fix: Preserve the order of intersections found (Curve-Line) according to the PathItem they belong to. 2013-09-13 02:44:51 +02:00
Jürg Lehni
5a45260740 Docs: Fix shadow example. 2013-09-12 15:30:07 -07:00
hkrish
abe0e5e059 Boolean -fix: CurveLocation now keeps track of the correct segment at intersections 2013-09-13 00:08:43 +02:00
Jürg Lehni
cc29cab671 Fix issue with importing SVG document nodes.
Closes #276.
2013-08-26 16:35:15 -07:00
Jürg Lehni
19c7788617 Fix documentation irregularities. 2013-08-23 19:45:28 -07:00
Jürg Lehni
cd74aaf5a3 Remove caching of inverse transform.
View#matrix can be directly modified, and we don't have change tracking on matrices yet.
2013-08-23 19:29:28 -07:00
Jürg Lehni
19f50be897 No need to pass false for allowNull as it's the default. 2013-08-16 19:20:35 -07:00
Jürg Lehni
40f2547e5f Correctly detect image size on all browsers.
Closes #268.
2013-08-15 11:32:47 -07:00
Jürg Lehni
cb6833176c Use named module AMD syntax for defining paper.
Closes #261.
2013-08-14 14:26:23 -07:00
Jürg Lehni
590c89840c Merge Raster#setImage() and #setCanvas(). 2013-08-14 12:29:56 -07:00
Jürg Lehni
cc565b3fe2 Rename Raster#getSubImage() to #getSubCanvas(), and use insert: false combined with #insertAbove() to correctly insert newly created rasters. 2013-08-14 12:21:47 -07:00
Jürg Lehni
5981ddf89f Implement Raster#getSubRaster() and document both #getSubImage() and #getSubRaster(). 2013-08-14 12:14:28 -07:00
Jürg Lehni
1a1c2674fd Take Item#matrix into account when drawing gradients.
Closes #267.
2013-08-14 11:27:04 -07:00
Jürg Lehni
720dd1b35d Do not apply operator overloading in situations where UpdateExpressions happen inside other contexts that would cause a change of behavior, e.g. array[i++], or if (i++ < 1).
Closes #260.
2013-08-09 10:58:29 -07:00
Jürg Lehni
1120b6012c Merge pull request #262 from huochunpeng/fix_typo_in_matrix
fix typo "Concatentates".
2013-08-08 17:24:40 -07:00
Jürg Lehni
46f6261d38 Merge pull request #265 from duckmaestro/master
Fix to #263: _children undefined inside call to myShape.isEmpty().
2013-08-08 17:24:10 -07:00
Jürg Lehni
6b19f25f4b Fix typos in comments. 2013-08-08 15:21:35 -07:00
Clifford Champion
2d3200c8d7 Fix to #263: _children undefined inside call to myShape.isEmpty(). 2013-07-27 23:47:49 -07:00
Chunpeng Huo
4904a1df1f fix typo "Concatentates". 2013-07-26 15:22:37 +10:00
Jürg Lehni
5e8ec2066b Clean up comment. 2013-07-21 16:52:18 -07:00
Jürg Lehni
16735e23af Simplify code for #insertAbove/Below(), by introducing a private helper.
Making overriding in Layer simpler.
2013-07-21 16:41:45 -07:00
Jürg Lehni
5e210c583a Switch to returning items instead of booleans in #insertAbove/Below() and adjust documentation accordingly. 2013-07-21 16:29:13 -07:00
Jürg Lehni
edfb3a51ab Improve documentation of insertion methods. 2013-07-21 16:26:16 -07:00
Jürg Lehni
e68563af53 Have #insertAbove/Below() return a boolean. 2013-07-21 16:26:03 -07:00
Jürg Lehni
e0809d26f2 Merge code for Item#insertAbove() / #insertBelow() and fix issue with wrong indices.
The previous code was faulty when item was not already in the children list.
2013-07-21 16:22:16 -07:00
Jürg Lehni
949752556b Fix avoiding of name clashes in cloning. 2013-07-21 15:54:03 -07:00
Jürg Lehni
aa4d990c90 Move and unify handling of Item#_set(props) to new Item#_initialize(), and add support for props.insert = false. 2013-07-21 15:45:22 -07:00
Jürg Lehni
5e2654b490 Allow Item#_changed() to function before #_project is set. 2013-07-21 15:44:18 -07:00
Jürg Lehni
86a8f85874 Allow Base#_set() to exclude properties. 2013-07-21 15:43:20 -07:00
Jürg Lehni
93c90d0cd8 Do not insert boolean operation clones into DOM. 2013-07-19 18:46:28 -07:00
Jürg Lehni
6af59f7adf Filter out the insert parameter in _set for now, to prevent issues with cloning().
Work in progress.
2013-07-19 18:45:59 -07:00
Jürg Lehni
b7aea1e527 Use insert: false option in creation of all clones.
Still needs implementing in Item constructor.
2013-07-19 18:42:13 -07:00
Jürg Lehni
20a17f2939 Implement insert parameter in Item#clone() to control DOM insertion.
Defaults to true. Also insert in the right place now, above the original.
2013-07-19 18:27:00 -07:00
Jürg Lehni
588abe7189 Only test for fill in Item#_hitTest() if options.fill is set. 2013-07-19 17:55:31 -07:00
Jürg Lehni
f466473bfb Add support for shadows.
Closes #36.
2013-07-19 17:48:29 -07:00
Jürg Lehni
ec121ca04c Separate requesting and handling of animation frames.
Closes #176.
2013-07-19 17:33:32 -07:00
Jürg Lehni
cd40bd2c9d Fix faulty comment about _handleFrameItems. 2013-07-19 15:49:51 -07:00
Jürg Lehni
3224876e6f Use fire('frame') instead of onFrame(), to correctly handle frame events on Node. 2013-07-19 15:49:16 -07:00
Jürg Lehni
ec4f194b84 Avoid use of 'window' for Node, and pass on reference to root scope instead. 2013-07-19 15:48:50 -07:00
Jürg Lehni
94c192495a Add support for canvas compositing modes to Item#blendMode.
Closes #159.
2013-07-19 15:23:16 -07:00
Jürg Lehni
175091a69f Allow combinations of blendMode and opacity.
Closes #259.
2013-07-19 11:46:13 -07:00
Jürg Lehni
47768779b7 Fix blurriness in Item#rasterize().
Closes #258.
2013-07-18 20:06:22 -07:00
Jürg Lehni
6e1c89234d Define PaperScope#activate()
Closes #256.
2013-07-18 19:21:57 -07:00
Jürg Lehni
098f3e84cc Include Acorn / Esprima only into local PaperScript scope, and locally deactivate AMD.
Closes #255.
2013-07-18 09:49:30 -07:00
Jürg Lehni
85d7237c0f Avoid endless recursion in ToolEvent#middlePoint.
Closes #257.
2013-07-17 16:01:36 -07:00
Jürg Lehni
ef4eee1064 Pass true for isParameter in Curve#divide() calls.
Closes #252.
2013-07-04 19:39:55 -07:00
Jürg Lehni
b874a642ab Merge pull request #251 from amithalb/master
Fix importSVG
2013-07-04 11:23:06 -07:00
Jürg Lehni
affb44e0dd Prevent double execution of onLoad event on Raster. 2013-07-03 19:02:29 -07:00
Jürg Lehni
e87307af41 Fix issue with Image.onLoad() events.
naturalWidth/Height seems unreliable.
2013-07-03 18:49:05 -07:00
Jürg Lehni
f68f1ad518 Docs: Fix some faulty object parameters. 2013-07-02 12:22:45 -07:00
Jürg Lehni
8ee52d2983 Export legacy Color constructors. 2013-07-01 06:50:20 -07:00
Amit Halberstam
96b0603b9c correct reference to document in importSVG 2013-06-30 13:23:38 +03:00
Jürg Lehni
d369984196 Allow math operands larger than 1 when multiplying and dividing colors. 2013-06-28 07:59:33 -07:00
Jürg Lehni
e8765d18d5 Make argument reading more flexible by introducing options object for readNull and clone, and passing it on to the constructor through this.__options for additional values. 2013-06-28 07:37:03 -07:00
Jürg Lehni
2c578d0558 Start implementing math operators for Color. 2013-06-28 07:19:53 -07:00
Jürg Lehni
22df17c192 Docs: Minor cleanups. 2013-06-28 06:41:36 -07:00
Jürg Lehni
b588f3234c Docs: Improve documentation for Color constructors. 2013-06-28 06:41:21 -07:00
Jürg Lehni
16ff78a8ba Import Base into PaperScript scope. 2013-06-28 06:39:00 -07:00
Jürg Lehni
8f254202e8 Use new @operator tag to mark math operator methods. 2013-06-28 05:59:07 -07:00
Jürg Lehni
5b574877e9 Make PaperScript math operator methods 'hidden' and use aliases to visible methods.
Avoids Path#add() being misinterpreted as an operator, and console.log(path + ' hi'); causing weird issues.
2013-06-28 05:15:49 -07:00
Jürg Lehni
5e7209a7bb Clean up math function injection in Point and Size. 2013-06-28 04:58:57 -07:00
Jürg Lehni
6833e9d8e0 Fix {@default 0.5} values in documentation. 2013-06-27 18:15:10 -07:00
Jürg Lehni
fdfb7abe58 Update exportSVG() documentation. 2013-06-27 18:14:51 -07:00
Jürg Lehni
8e153beb36 Implement exportSVG() options parameter.
Supporting asString and precision so far.
2013-06-27 18:14:35 -07:00
Jürg Lehni
09f04a597f Write documentation for Shape constructors. 2013-06-27 18:04:02 -07:00
Jürg Lehni
41746d2d25 Docs: Write documentation for #import/export JSON/SVG, for both Item and Project. 2013-06-27 18:03:49 -07:00
Jürg Lehni
e63edba0b5 Clean up various documentations a bit. 2013-06-27 18:03:03 -07:00
Jürg Lehni
7ade053dea Move Path.Circle constructor above Path.Rectangle. 2013-06-27 17:54:00 -07:00
Jürg Lehni
0bf19d02bd Add asString parameter to exportSVG() methods. 2013-06-27 17:43:24 -07:00
Jürg Lehni
f9925a71ea Improve documentation for Path#split(), Curve#divide() and Curve#split().
Closes #189.
2013-06-27 17:18:57 -07:00
Jürg Lehni
9f5b543ab5 Fix getCurveAt() signature. 2013-06-27 17:13:00 -07:00
Jürg Lehni
38db18c2e1 Remove isParameter from Curve.evaluate() 2013-06-27 17:12:35 -07:00
Jürg Lehni
c123468d7a Clean up Path#join() code. 2013-06-27 16:06:24 -07:00
Jürg Lehni
0c9914285f Return Raster#size as a LinkedSize. 2013-06-27 16:06:11 -07:00
Jürg Lehni
9311b38894 Define Shape#size and #radius. 2013-06-27 16:05:44 -07:00
Jürg Lehni
2b236a3da8 In Path#join, add first segment of second path again at the end after joining, if it was closed.
Closes #249.
2013-06-27 15:43:26 -07:00
Jürg Lehni
fdfdf96357 Make load.sh work for Node.js too 2013-06-27 14:41:25 -07:00
Jürg Lehni
899ec1d360 Make built version of paper.js for node work and work towards using that in NPM. 2013-06-27 14:31:03 -07:00
Jürg Lehni
5245a30930 Improve PaperScript extension code for Node.js 2013-06-27 13:52:30 -07:00
Jürg Lehni
4f5dac8567 Improved PrePro to be able to dynamically load Node.js code too, and improve load.js to handle both environments.
Also moved PaperScript .pjs extension code to PaperScript, and DOM related Node.js code to dom/node.js
2013-06-27 13:49:04 -07:00
Jürg Lehni
94ce1f1312 Fix include statements.
They're not to be indented.
2013-06-27 04:46:20 -07:00
Jürg Lehni
77c27f8a36 Switch to using dependencies as bower components. 2013-06-27 04:21:06 -07:00
Jürg Lehni
f572ad9c0a Improve handling of Stats.
Don't bail out if the library is not loaded.
2013-06-27 04:11:50 -07:00
Jürg Lehni
37f0c7dcd6 Add missing Key class to exports. 2013-06-27 03:58:14 -07:00
Jürg Lehni
214db84b84 Improve src/load.js to directly load the library through PrePro's load.js 2013-06-26 19:14:54 -07:00
Jürg Lehni
4e173a7d35 Switch to the NPM version of PrePro's load.js 2013-06-26 18:57:46 -07:00
Jürg Lehni
a908556956 Fix blend mode detection syntax. 2013-06-26 15:05:43 -07:00
Jürg Lehni
1126c699d2 Improve tests for native blend modes.
Each mode needs to be tested separately, since some browsers implement only a subset (WebKit).
2013-06-26 14:59:07 -07:00
Jürg Lehni
b8d773e129 Rename blendMode parameter to mode. 2013-06-26 14:37:41 -07:00
Jürg Lehni
6d38401f0c Use faster direct Curve constructor instead of Base.create(). 2013-06-25 09:58:18 -07:00
Jürg Lehni
9c5416360c Use direct constructor instead of #initialize(). 2013-06-25 09:56:34 -07:00
Jürg Lehni
52c889428b Remove Curve.create() in favor of direct constructor. 2013-06-25 09:54:13 -07:00
Jürg Lehni
772c83596f Replace Base.create() calls in favor of faster direct constructors. 2013-06-25 09:50:14 -07:00
Jürg Lehni
7e24de7c74 Replace SegmentPoint.create() in favor of normal constructor. 2013-06-25 09:48:51 -07:00
Jürg Lehni
3d5ae373a8 Remove static create() methods from LinkedPoint/Size/Rectangle, and give them initialize() methods instead that also name the classes in debugging. 2013-06-25 09:41:55 -07:00
Jürg Lehni
c6e50375df Expose nativeBlendModes and amend BlendModes example with information about the use of native modes. 2013-06-24 15:55:15 -07:00
Jürg Lehni
1866e4ff15 Remove need for all special arguments in minification, and restructure code to avoid warnings. 2013-06-24 10:15:54 -07:00
Jürg Lehni
7975232ee7 Remove workaround for obscure WebKit bug.
It wasn't fully working either. Solution:
https://bugs.webkit.org/show_bug.cgi?id=109961
2013-06-24 09:37:25 -07:00
Jürg Lehni
b989892c24 Update copyright note about straps.js 2013-06-24 09:12:45 -07:00
Jürg Lehni
78a3e87ca1 Prevent separate View file in docs. 2013-06-24 09:10:26 -07:00
Jürg Lehni
f56794bad4 Remove global variable leakage. 2013-06-24 04:52:13 -07:00
Jürg Lehni
e6bed426d7 Make inclusion of PaperScript optional and build a core version of the library without it. 2013-06-24 04:49:45 -07:00
Jürg Lehni
eef736f3d8 Move define() statement to export.js and remove define hack in PaperScript. 2013-06-24 04:40:35 -07:00
Jürg Lehni
4b53d558f1 Refactor PaperScript code so it can be moved outside of main paper scope.
Allowing for better minifaction and the potential use of strict mode due to absence of with() statements inside the main paper scope.
2013-06-24 04:40:07 -07:00
Jürg Lehni
fa3f91a754 Move PaperScript.get/setAttribute() to PaperScope. 2013-06-24 04:23:34 -07:00
Jürg Lehni
75c1225d4f Prevent overriding exported classes by inheriting classes with same _class value. 2013-06-24 04:22:43 -07:00
Jürg Lehni
a4535edbb9 Bring back _class names, since code minification breaks reliance on constructor.name.
Closes #248.
2013-06-23 20:18:32 -07:00
Jürg Lehni
dff39dff78 Use local bounds for hit-testing.
Fixes issue #247.
2013-06-23 19:49:36 -07:00
Jürg Lehni
9f7167a47f Clean up Item#hitTest() code. 2013-06-23 19:01:48 -07:00
Jürg Lehni
58f697abfc Fix hit-testing for guides. 2013-06-23 19:01:36 -07:00
Jürg Lehni
76426c4cb3 Take #visible state into account when hit-testing.
Closes #243.
2013-06-23 17:55:14 -07:00
Jürg Lehni
1e81176cf1 Merge branch 'master' of github.com:paperjs/paper.js 2013-06-23 17:22:30 -07:00
Jürg Lehni
4b62949318 Fix tests for #246.
This is actually the right behavior: Setting length to negative values should flip around defined vectors.
2013-06-23 17:22:13 -07:00
Chris Barmonde
68626ca62b Fix project.clear() so it removes all layers properly. 2013-06-20 20:14:47 -06:00
Jürg Lehni
ca0513b1b2 Fix namespace for images in SVGExport. 2013-06-19 08:22:20 -07:00
Jürg Lehni
719b9d5e24 Move logic that determines if item can be directly composited into separate per-item #_canComposite() method. 2013-06-19 08:22:08 -07:00
Jürg Lehni
258c404b98 Move curvature calculations into Curve.evaluate(), and define unit tests for it. 2013-06-18 19:00:05 -07:00
Jürg Lehni
619a8f88f8 Clean up code a bit in Curve#getCurvatureAt(). 2013-06-18 18:29:44 -07:00
Jürg Lehni
3d78e3729d Fix issue with PaperScript and array[i++] expressions. 2013-06-18 18:18:39 -07:00
Jürg Lehni
4bda878f5f Fix accidental code removal. 2013-06-18 17:35:49 -07:00
Jürg Lehni
2241329321 Fix id clash in SVGExport. 2013-06-18 17:29:00 -07:00
Jürg Lehni
742ae16de1 Add support for SVG mix-blend-mode attribute.
Browsers have yet to support it though.
2013-06-18 17:19:31 -07:00
Jürg Lehni
278a9771ba Minor clean-ups. 2013-06-18 17:02:02 -07:00
Jürg Lehni
785381b148 No need to set default color anymore due to detection of CSS style changes on any level. 2013-06-18 16:59:47 -07:00
Jürg Lehni
30c96dc9c1 Remove access to _style since we're using getters / setters on items directly now for SVGStyles. 2013-06-18 16:58:28 -07:00
Jürg Lehni
6e91d2ac9b Rearrange exporter sequence. 2013-06-18 16:57:09 -07:00
Jürg Lehni
7c1e10e35e Move Item#opacity support to SVGStyles. 2013-06-18 16:54:48 -07:00
Jürg Lehni
938433c51f Move Style#font support to SVGStyles. 2013-06-18 16:49:58 -07:00
Jürg Lehni
ad034fbb56 Allow for better minification. 2013-06-18 16:18:13 -07:00
Jürg Lehni
f48ef4d1a0 Move more styles to SVGStyles and make them work on export too.
SVGExport now supports text justification.
2013-06-18 16:14:47 -07:00
Jürg Lehni
b532390d9c Remove Clip class again.
Group can handle that.
2013-06-18 15:58:58 -07:00
Jürg Lehni
177229f99f Define Group#transformContent as a boolean to control #applyMatrix() behavior.
And use it for SVG Import.
2013-06-18 15:57:30 -07:00
Jürg Lehni
f758fb306b Rename #_applyMatrix to #_transformContent.
And swap names with private function...
2013-06-18 15:50:11 -07:00
Jürg Lehni
d7d6da0af8 Pass right value for dontNotify. 2013-06-18 15:47:14 -07:00
Jürg Lehni
691b2f8094 Fix issues with SVG Import and matrices on groups. 2013-06-18 15:46:49 -07:00
Jürg Lehni
f433423789 Respect _applyMatrix setting when calling #applyMatrix() in Group#_changed.
Required for Clip to work correctly.
2013-06-18 15:39:46 -07:00
Jürg Lehni
9633384122 Fix issue with colliding id ranges in SVG Export. 2013-06-18 15:01:18 -07:00
Jürg Lehni
db49718015 No need for white-space in CSS color format. 2013-06-18 14:33:50 -07:00
Jürg Lehni
75acdf1025 Add support for direct drawing of native blendModes for items that allow it.
Bypassing compositing into separate canvases completely.
2013-06-18 14:18:57 -07:00
Jürg Lehni
ad6124cf98 Take strokeWidth into account in Item#hasStroke() 2013-06-18 14:08:48 -07:00
Jürg Lehni
f4f97cda88 Fix a bug with wrong offsets when rendering nested clips and blend-modes.
And streamline blend-mode and opacity rendering code.
2013-06-18 12:35:57 -07:00
Jürg Lehni
414ac1d092 Fix offset in direct blitting of nested Clip items. 2013-06-18 12:20:21 -07:00
Jürg Lehni
a2cc7e11b3 Clean up blend-mode code a bit. 2013-06-18 11:26:58 -07:00
Jürg Lehni
deebd15f05 Improve comments. 2013-06-18 11:19:56 -07:00
Jürg Lehni
c48ab03050 Add support for native blend-modes.
Already works on Firefox 21.0 and will soon land on other major browsers!
2013-06-18 11:17:15 -07:00
Jürg Lehni
8cf09c08d9 Merge branch 'master' of github.com:paperjs/paper.js 2013-06-18 08:02:22 -07:00
Jürg Lehni
b133d8fe2e Restructure BlendMode code, fix issues with color-dodge and color-burn, and create BlendModes.html example.
All modes should be implemented according to specs now.
2013-06-18 08:02:04 -07:00
Jürg Lehni
1b42822c2d Remove trailing comma. 2013-06-17 16:35:28 -07:00
Jürg Lehni
f350f34eb4 Apply clipping fix not only to blend modes but any operation that draws into a separate canvas. 2013-06-17 16:22:23 -07:00
Jürg Lehni
ab2bfe2d40 Rename nativeDash to dash. 2013-06-17 15:52:16 -07:00
Jürg Lehni
a51745447b Restructure CanvasProvider code and call save() and restore() upon retrieval / release. 2013-06-17 15:24:57 -07:00
Jürg Lehni
d98a9f40cb Correctly fix Line#length documentation. 2013-06-17 15:16:48 -07:00
hkrish
d4d2075040 Fix: Use absolute coordinates from #Curve.getValues() directly while calculating the curvature 2013-06-17 22:27:20 +05:30
Jürg Lehni
8a726f22b2 Clean up comments. 2013-06-17 08:57:30 -07:00
Jürg Lehni
b072df0486 Put isEnd value directly into conditional. 2013-06-17 08:56:42 -07:00
Jürg Lehni
ccd0bf8f6b Simply delegate to Point#getLength() as we already have it. 2013-06-17 08:28:37 -07:00
Jürg Lehni
9463f0078a Fix documentation since Line#vector will be documented as a simple accessor. 2013-06-17 08:28:02 -07:00
Jürg Lehni
18ad8a235d Clean up code to follow Paper.js coding conventions. 2013-06-17 08:26:51 -07:00
Jürg Lehni
be6bbb802d Move calculations of values to where they are needed. 2013-06-17 08:22:28 -07:00
Jürg Lehni
5ff990a84a Fix global variable leakage, and join sequential variable definitions. 2013-06-17 08:10:57 -07:00
hkrish
2693516844 Implement correct method for calculating curvature on a Path 2013-06-17 15:16:11 +05:30
Jürg Lehni
f8367bb0dd More clean-ups. 2013-06-15 05:24:34 -07:00
Jürg Lehni
79785afa2a Minor clean-ups and optimizations of stroke hit-test code. 2013-06-15 05:21:17 -07:00
Jürg Lehni
8c09d19f7c Fix wrong calculation of rough bounds for square caps.
And add some comments to stroke hit-testing code.
2013-06-15 05:15:48 -07:00
Jürg Lehni
26971672b2 Only check segments for miters that are within the limit. 2013-06-15 05:08:12 -07:00
Jürg Lehni
be1098e006 Further improve stroke hit-testing.
Properly detect all miter joins.
2013-06-15 05:06:09 -07:00
Jürg Lehni
d318057897 Implement Segment#getLocation() 2013-06-15 05:05:10 -07:00
Jürg Lehni
1cab9aad90 Improve stroke hit-testing. 2013-06-15 03:12:57 -07:00
Jürg Lehni
eb32bad57e Fix imprecision in #getNearestLocation() 2013-06-15 03:12:29 -07:00
Jürg Lehni
38f832a888 Remove console.log() 2013-06-15 02:25:44 -07:00
Jürg Lehni
8b9fb3741d Implement proper stroke hit-testing for all variations of joins and caps. 2013-06-15 02:24:59 -07:00
Jürg Lehni
e4ba0d80b6 Simple code improvement in #isClockwise(). 2013-06-14 23:18:29 -07:00
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