Jürg Lehni
ea63d4c288
Merge branch 'refs/heads/master' into v8-optimizations
...
Conflicts:
src/core/Base.js
src/style/Color.js
2014-01-05 05:01:13 +01:00
Jürg Lehni
22e62a0527
Only expose globals if they are in use in the PaperScript code.
2014-01-04 22:22:19 +01:00
Jürg Lehni
227d511fc0
Only include the global handlers in the return statement that actually seem to be defined.
2014-01-04 22:10:16 +01:00
Jürg Lehni
4302682c1c
Implement a better way of handling exceptions in PaperScript on Firefox and Chrome.
...
Use dynamically inserted script tag rather than compiled function since Firefox reports correct line numbers there.
2014-01-04 21:57:29 +01:00
Jürg Lehni
9dea3f3b74
Implement Color component clamping for color conversion.
2014-01-04 19:10:52 +01:00
Jürg Lehni
42bed58624
Fix scoping issues in PaperScript code.
2014-01-04 19:01:17 +01:00
Jürg Lehni
0dddd897ab
Remove internal clamping of color values to facilitate proper mathematical calculations with colors.
...
Clamp only when producing CSS values. Closes #271 .
2014-01-04 18:16:52 +01:00
Jürg Lehni
bd4f48ca1a
Fix bounds check for mousemove events.
...
Closes #369
2014-01-04 17:33:20 +01:00
Jürg Lehni
e22fa3a664
Update copyright notice.
2014-01-04 01:47:16 +01:00
Jürg Lehni
4594b66fd6
Fix comments.
2014-01-03 19:45:00 +01:00
Jürg Lehni
de939ab939
Clean up code and comments.
2014-01-03 18:31:07 +01:00
Jürg Lehni
57f1763abe
Merge branch 'refs/heads/paperscript-refactoring'
...
Conflicts:
src/core/PaperScope.js
2014-01-03 12:34:07 +01:00
Jürg Lehni
541ac6acce
Shorten code a bit.
2014-01-02 21:47:20 +01:00
Jürg Lehni
ad34bbf7aa
Bail out of Item#transform() immediately if there is nothing to do.
2014-01-02 21:47:00 +01:00
Jürg Lehni
c197f531a4
Implement options.asString for Item#exportJSON()
2013-12-30 23:34:19 +01:00
Jürg Lehni
6a11547942
Fix issue in Curve.getLength() for linear curves with sub-ranges.
...
Closes #376 .
2013-12-30 14:20:05 +01:00
Jürg Lehni
6654dca6bf
Improve precision of Numerical.findRoot()
2013-12-30 14:18:33 +01:00
Jürg Lehni
f97056e4b7
Change the way PaperScripts are executed in Node.js
...
Requiring a PaperScript returns an initialize method which receives the Canvas argument.
2013-12-29 16:36:23 +01:00
Jürg Lehni
35890383d8
Merge branch 'refs/heads/paperscript-refactoring' into v8-optimizations
2013-12-29 15:54:54 +01:00
Jürg Lehni
8395541298
Clean up docs and fix spelling mistakes.
2013-12-29 15:44:26 +01:00
Jürg Lehni
976b24b34c
Execute PaperScript using new Function() rather than eval() and with() {}
...
This results in some impressive speeding improvements, as modern JS engines are finally able to optimize the resulting code.
2013-12-29 15:32:23 +01:00
hkrish
f2168b48cb
new Boolean operator functions
2013-12-29 13:40:22 +01:00
hkrish
3b85d3d990
Remove TestOnCurve method
2013-12-29 13:38:33 +01:00
hkrish
9831720c9c
New computeBooleean method
2013-12-29 13:38:04 +01:00
hkrish
7af091ca5b
Dont alter the winding direction for paths within compoundPaths if they are not completely contained
2013-12-29 13:36:43 +01:00
hkrish
d02e0dcecf
Remove old SplitPath method
2013-12-29 13:32:12 +01:00
hkrish
3f6562d5b3
Method for tracing a set of connected segments and producing paths; used in boolean ops and path offsetting methods.
2013-12-29 13:29:54 +01:00
hkrish
7c75dcee97
New Split path method
2013-12-29 13:25:48 +01:00
hkrish
1be669396e
First cut at a new winding number calculation algorithm
2013-12-29 13:21:08 +01:00
hkrish
a88d7f5eae
Rudimentary self-intersection calculation
2013-12-29 13:06:25 +01:00
hkrish
1bacbc32e9
Link previous & next curves while returning monotone curves
2013-12-29 13:03:39 +01:00
hkrish
0b4da28c1e
Optimize handling of horizontal curves in Curve#_getWinding
2013-12-29 12:38:59 +01:00
Jürg Lehni
5f466bbc7e
Move documentation for PaperScope#tools to the right place.
2013-12-28 22:48:50 +01:00
Jürg Lehni
10aa8d7b4a
Fix accidental documentation leakage into global scope.
2013-12-28 22:34:00 +01:00
Jürg Lehni
8143144e87
Remove trailing comma.
2013-12-28 21:21:26 +01:00
Jürg Lehni
c0ed227cbc
Add sorted argument to PathItem#getIntersections()
2013-12-28 21:06:35 +01:00
Jürg Lehni
58bd3aa444
Sorting CurveLocation by path index produces the correct sequence in compound paths too.
2013-12-28 21:01:44 +01:00
Jürg Lehni
8711fcf500
Remove hidden unused squared argument in Point#getLength()
2013-12-28 20:58:16 +01:00
Jürg Lehni
38d67d843d
Move Path#getStyle() to better location and simplify code.
2013-12-28 20:56:44 +01:00
Jürg Lehni
451ff4fd03
Docs: Add group title to boolean path operations.
2013-12-28 20:56:30 +01:00
hkrish
a8a4a6fd03
Return horizontal curves as well, with monotonic curves
2013-12-26 18:03:23 +01:00
hkrish
4562b104f2
Winding number calculation for a given point
2013-12-25 20:46:13 +01:00
hkrish
39c52f326e
New _getWinding method in Curve. This method return the winding contribution of this curve w.r.t. the resulting PathItem
2013-12-25 20:41:19 +01:00
hkrish
0134596f66
_getMonotoneCurves method which returns and caches curves that are monotonic in Y direction
2013-12-25 20:38:48 +01:00
hkrish
b4c7bcae5e
Indent with Tabs like rest of paperjs code.
2013-12-25 20:33:51 +01:00
hkrish
70070c14d2
Avoid creating proxy array objects
2013-12-24 19:00:33 +01:00
hkrish
f23303e371
Merge branch 'master' into bool-new
...
* master:
Share code that handles bounds in roots between solveQuadratic() and solveCubic()
Inline EPSILON and TOLERANCE for better performance in Numerical.
Clean up code a bit.
Filter out insert property in Item#set()
Typo Paelette -> Palette
Rename Item#anchor -> Item#pivot
Minor documentation fixes.
2013-12-24 00:02:15 +01:00
hkrish
3b013c0720
Add an optional ignoreLinear parameter to Curve#divide, so that new segments on linear curves will keep their correct bezier handles.
2013-12-23 23:38:12 +01:00
hkrish
20b6d699db
Consistently return curve parameter on Line intersections as well, so that sorting intersections wouldn't fail.
2013-12-23 23:34:26 +01:00
hkrish
20fbdcffda
Subdivide only if tDiff on both curves have failed to converge more than 80%
2013-12-23 23:27:23 +01:00
Jürg Lehni
81651a7379
Prevent V8 "assignment to parameter in arguments object" deoptimizations.
...
Some getter-like functions still need fixing, but this might require a fix in Straps.js first.
2013-12-17 23:28:55 +01:00
Jürg Lehni
3dbad9c477
Replace delete in favor of setting to undefined to prevent V8 deoptimization.
2013-12-17 23:27:48 +01:00
Jürg Lehni
99d7b5cfdb
Merge branch 'refs/heads/fatline'
2013-12-17 22:07:34 +01:00
Jürg Lehni
a6b3a3a2ec
Share code that handles bounds in roots between solveQuadratic() and solveCubic()
2013-12-17 15:38:22 +01:00
Jürg Lehni
76ea7ef066
Inline EPSILON and TOLERANCE for better performance in Numerical.
2013-12-17 15:27:55 +01:00
Jürg Lehni
6b4917f4a8
Clean up code a bit.
2013-12-17 15:23:07 +01:00
Jürg Lehni
e2b06b8e54
Filter out insert property in Item#set()
2013-12-16 22:03:33 +01:00
Jürg Lehni
45ed406aa3
Remove unnecessary exports.
2013-12-16 21:58:32 +01:00
Jürg Lehni
94b27e933a
Some more variable renaming.
2013-12-16 21:56:41 +01:00
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