Commit graph

6696 commits

Author SHA1 Message Date
Jürg Lehni
da78e837a1 Simplify Numerical.solveCubic() code by introducing evaluate() closure. 2016-07-09 13:54:02 +02:00
Jürg Lehni
9d6aab3802 Streamline handling of getNormalizationFactor() to share more code.
Based on comments by @hkrish in https://github.com/paperjs/paper.js/pull/1087#issuecomment-231529361
2016-07-09 13:28:50 +02:00
Jürg Lehni
2532f205a7 Prefer native Math.log2(), but support IE through internalized polyfill. 2016-07-09 12:54:17 +02:00
Jürg Lehni
7e3d18f5d4 Further cleanups in Numerical.solveQuadratic() 2016-07-09 01:10:55 +02:00
Jürg Lehni
02658c9e74 Clean-up code from PR #1087
Closes #1085
2016-07-09 01:01:19 +02:00
Jürg Lehni
1914e64e4b Fix boolean tests to compare with improved results.
Disovered thanks to @sapics' improved solveCubic() in #1087
2016-07-08 23:05:50 +02:00
Jürg Lehni
90bc4ffecb Merge pull request #1087 from sapics/improve-poly-solve
Improvements to solve polynomials in Numerical.js
2016-07-07 06:39:28 +02:00
Jürg Lehni
866dcb50dd Some tweaks to potentially support strict mode. 2016-07-07 06:21:20 +02:00
Jürg Lehni
f04dd14309 Remove jsdom legacy code. 2016-07-03 14:16:17 +02:00
Jürg Lehni
cb4ffc7945 Update to latest gulp-qunits. 2016-07-03 14:13:50 +02:00
Jürg Lehni
df8969f1c4 Switch to jsdom v9.4.0 with native DOMParser support.
Closes #1093
2016-07-03 13:39:05 +02:00
Jürg Lehni
45ffc6fb88 Improve Segment constructor to correctly handle undefined values.
Closes #1095
2016-07-03 13:30:56 +02:00
Jürg Lehni
cfa215051d Update to latest gulp-git-streamed and remove publish workaround code. 2016-07-03 12:17:37 +02:00
Jürg Lehni
c942239032 Merge pull request #1092 from iconexperience/patch-2
Accidental semicolon in var declaration
2016-06-29 10:05:57 +02:00
iconexperience
916a712737 Improved and simplified addWinding and getWinding 2016-06-23 07:54:27 +02:00
Jan
f94b4f969b Accidential semicolon in var declaration
I think this is a mistake
2016-06-22 13:10:02 +02:00
sapics
4fd120fab8 Minor optimization in Numerical.js 2016-06-21 08:47:42 +09:00
sapics
645e2c2af3 Revert EPSILON error in solveCubic 2016-06-20 17:27:08 +09:00
sapics
78f65c9fab Improve solveQuadratic and solveCubic by hkrish c-code 2016-06-20 17:13:09 +09:00
sapics
a9cc938967 Fix normalization in solveQuadratic 2016-06-20 13:53:39 +09:00
sapics
bb683c9291 Remove same value solution in solveCubic 2016-06-20 13:52:54 +09:00
Jürg Lehni
ab24f92373 Bring back accidentally removed hit-test optimization in event handling.
See comment.
2016-06-19 11:02:54 +02:00
Jürg Lehni
739788b67e Clean up Event#currentTarget handlig. 2016-06-19 10:55:04 +02:00
Jürg Lehni
cc55991b66 Fix new issue with Emitter unit tests. 2016-06-18 23:14:48 +02:00
Jürg Lehni
f133475405 Implement MouseEvent#currentTarget and document MouseEvent#target.
Relates to #995
2016-06-18 23:06:17 +02:00
Jürg Lehni
f97143d37d Fix jshint issue introduced by a03631f620 2016-06-17 00:50:06 +02:00
Jürg Lehni
a03631f620 Remove MouseEvent#target hitTest() getter magic again.
Relates to #995
2016-06-17 00:42:40 +02:00
Jürg Lehni
74b22266f7 Clean up code from #1082 & #1083 2016-06-16 14:16:48 +02:00
Jürg Lehni
fa0a474ec7 Merge pull request #1083 from iconexperience/solve-cubic
Add check of value range in Curve.solveCubic to improve performance
2016-06-16 14:02:48 +02:00
Jürg Lehni
388146be06 Merge pull request #1082 from iconexperience/add-bounds
Add rough bounds checking for _addBounds()
2016-06-16 14:00:22 +02:00
Jan
7009fc3ea0 Add check of value range in solveCubic
Performance of `Curve.solveCubic()` can be improved by first checking if the specified value is within the curve's value range. If it is outside the range, the expensive call to `Numerical.solveCubic()` is not necessary.
2016-06-16 13:13:16 +02:00
Jan
c217e963b8 Rough bounds checking for _addBounds()
Performance of `_addBounds()` can be improved significantly by performing a rough bounds checking first. This is a cheap way to check if the curve can extend the current min or max values at all. Only if the check is passed, further Only if the current bounds can be extended by the curve's bounds, further calculation needs to be done.
Also, if the values of a curve are sorted, the extrema are simply the start and end point.
2016-06-16 12:46:12 +02:00
Jürg Lehni
827abd21b8 More refactoring for a328f5b04b 2016-06-16 12:07:38 +02:00
Jürg Lehni
e80b2ff043 Some code-cleanup for a328f5b04b 2016-06-16 11:48:29 +02:00
Jürg Lehni
85c680820e No more need for #_getCurves() since it now does the same as #getCurves()
#getCurves() works both on Path and CompoundPath. Relates to #1073, #1075
2016-06-16 11:16:56 +02:00
Jürg Lehni
1a392bb5db Rename monoCurves -> curves where full curves are dealt with now.
For better clarity. Relates to #1073, #1075
2016-06-16 11:15:27 +02:00
iconexperience
a328f5b04b Revamp winding calculation so it can determine the winding in horizontal and vertical direction. Monotonic curves are new only created on demand. 2016-06-16 10:13:10 +02:00
Jürg Lehni
eb752a43cd Merge pull request #1081 from sapics/minor-fix
Fix to cover the case when Numerical.solveQuadratic return -1
2016-06-16 09:53:54 +02:00
sapics
ff6484ba8c Fix to cover the case when Numerical.solveQuadratic return -1 in Numerical.solveCubic 2016-06-16 14:53:32 +09:00
sapics
c5b4828ace Fix to cover the case when Numerical.solveQuadratic return -1 in path._getMonoCurves culculation 2016-06-16 13:51:44 +09:00
Jürg Lehni
2a668dd04e Merge pull request #1079 from iconexperience/patch-1
Make Numerical.solveQuadratic() optimizable for Chrome V8
2016-06-15 15:17:33 +02:00
Jan
262b9b388d Make Numerical.solveQuadratic() optimizable for Chrome V8
Little change to help Chrome's V( optimize `Numerical.solveQuadratic()`. In my use case this resulted in an overall performance improvement of about 1.5%. For details see #1078
2016-06-15 14:53:28 +02:00
Jürg Lehni
383e574368 Sync online examples back to repo, and some minor cleanups. 2016-06-14 17:22:54 +02:00
Jürg Lehni
643df2d46d Add Raster#loaded to reflect the loading state of its image. 2016-06-14 17:08:32 +02:00
Jürg Lehni
c378050783 Fix linting error. 2016-06-14 17:02:05 +02:00
Jürg Lehni
2a3945c4a5 Add additional explanation to fix for #995 2016-06-14 16:54:16 +02:00
Jürg Lehni
724bcb2e35 Make sure mouse events propagate to the view while their targets remain consistent.
Closes #995
2016-06-14 16:52:31 +02:00
Jürg Lehni
93e4d81645 Clean up previous fix for #1069 by better handling mouseenter / leave events. 2016-06-14 16:15:50 +02:00
Jürg Lehni
6b3d8ecdfd Add missing semi-colon. 2016-06-14 15:26:08 +02:00
Jürg Lehni
f6b77b7442 Do not change cashed decomposed matrix data when transforming content.
Just clear the cache and force new decomposition on next use, to avoid issues with nested applied transforms.

Closes #1004
2016-06-14 15:16:45 +02:00