Commit graph

3704 commits

Author SHA1 Message Date
Jürg Lehni
0fc4b9f28d Remove intersection caching code. 2013-05-05 16:38:18 -07:00
Jürg Lehni
83b68cdb8e Restore full validation check for resulting paths. 2013-05-05 16:36:25 -07:00
Jürg Lehni
c006b081f6 Fix issue that broke "Maximum possible intersections between 2 cubic bezier curve segments - 9" test. 2013-05-05 16:23:41 -07:00
Jürg Lehni
d9e2d2a94a Fix console logging. 2013-05-04 14:27:53 -07:00
Jürg Lehni
eb8ebca097 Run BooleanOperations.html code asynchronously for immediate feedback. 2013-05-04 14:26:29 -07:00
Jürg Lehni
6da97b894f Improve code comments a bit. 2013-05-04 11:13:38 -07:00
Jürg Lehni
d911c7b12a Write documentation for boolean path operations. 2013-05-04 10:58:50 -07:00
Jürg Lehni
cc0a6e7c3a Add Harikrishnan Gopalakrishnan to the contributors list.
Thanks Hari!
2013-05-04 10:36:28 -07:00
Jürg Lehni
f704b00e00 Implement static Line.intersect() and use it to speed up Curve.getIntersections()
Unfortunately doesn't seem to have any impact!
2013-05-04 10:22:10 -07:00
Jürg Lehni
4eff5bf45e Use variable names that better reflec functionality and original naming. 2013-05-04 09:58:46 -07:00
Jürg Lehni
3ab20ea3e9 Some more minor tweaks. 2013-05-04 03:38:19 -07:00
Jürg Lehni
1e8947af63 Further clean up.
Instead of removing temporary data structure, clone Segment.
2013-05-04 03:33:44 -07:00
Jürg Lehni
31a45bad97 Improve comments. 2013-05-04 03:20:53 -07:00
Jürg Lehni
e1ef69f23a Fix accidental variable leakage. 2013-05-04 03:13:57 -07:00
Jürg Lehni
469d3129a6 One last optimization in computeBoolean(). 2013-05-04 03:08:43 -07:00
Jürg Lehni
7fdaa3e699 more optimizations in computeBoolean().
I think this is done now!
2013-05-04 03:00:31 -07:00
Jürg Lehni
9aafb46e6c Remove need for __segment property and further simplify computeBoolean() code. 2013-05-04 02:50:18 -07:00
Jürg Lehni
a5d00e64cf Merge loops in reorientPath(). 2013-05-03 23:25:26 -07:00
Jürg Lehni
37300455a8 Minor cleanup. 2013-05-03 23:08:00 -07:00
Jürg Lehni
4a9e3924c6 More computeBoolean() optimizations and clean up. 2013-05-03 23:03:00 -07:00
Jürg Lehni
1031f4ecfb Clean up computeBoolean().
Work in progress.
2013-05-03 22:38:29 -07:00
Jürg Lehni
d014ed3c68 Clean up reorientCompoundPath(). 2013-05-03 22:09:56 -07:00
Jürg Lehni
25e5582a35 Define CompoundPath#reverse() and #clockwise, and replace reversePath() with it. 2013-05-03 21:41:22 -07:00
Jürg Lehni
bd3031cdff Move fix for faulty _curves list after calls to Path#reverse() to the right place. 2013-05-03 21:33:17 -07:00
Jürg Lehni
f03283804b Improve testOnCurve() code. 2013-05-03 21:24:02 -07:00
Jürg Lehni
99cf8ae9d4 Move private functions into private injection scope. 2013-05-03 21:21:53 -07:00
Jürg Lehni
990e8b4599 Remove names from boolean operator functions and use parameter instead. 2013-05-03 21:16:36 -07:00
Jürg Lehni
fb8effe088 Rewrite PathItem#_splitPath() to use Curve#divide().
Leading to faster code, due to less loop passes.
2013-05-03 21:05:44 -07:00
Jürg Lehni
85de8a0b7d Clean up Curve#divide() code. 2013-05-03 21:00:46 -07:00
Jürg Lehni
3101989974 Adjust precision of Curve#isFlatEnough() to cover rare edge cases. 2013-05-03 21:00:37 -07:00
Jürg Lehni
af51edda34 More work on PathItem#__splitPath() 2013-05-03 18:52:03 -07:00
Jürg Lehni
af84bb9988 Allow better code compression by reducing property lookup. 2013-05-03 17:38:15 -07:00
Jürg Lehni
72a27d9732 Clean up and simplify PathItem#_splitPath() code.
- Follow Paper.js variable scoping conventions (pretend we have Java-style variable scopes for better readability of code)
- Break lines at 80 chars
- Merge some duplicate code in segment handling.
2013-05-03 17:30:59 -07:00
Jürg Lehni
b8fcc9b105 Simplify PathItem#exclude() and #divide() 2013-05-03 16:56:00 -07:00
Jürg Lehni
c11967c81c Revert return strategy of boolean operators for simpler code, simplify operator logic and inline functions. 2013-05-03 16:52:37 -07:00
Jürg Lehni
ee8a79449b Include BooleanOperations.html 2013-05-03 16:31:36 -07:00
Jürg Lehni
1fe83a482f Start converting boolean code to Paper.js conventions.
- Tabs instead of white-space
- Different rules about spaces before / after parenthesis
2013-05-03 16:21:44 -07:00
Jürg Lehni
26cb5791bc Remove separate boolean folder now. 2013-05-03 16:17:32 -07:00
Jürg Lehni
90e3dd201a Move boolean code into its own file, and add information comments again. 2013-05-03 16:16:52 -07:00
Jürg Lehni
639ff7f03f Add 'boolean/' from commit '26c48786c8c1dd9f99f8c0abc24700197c443539'
git-subtree-dir: boolean
git-subtree-mainline: 7d54bb36b1
git-subtree-split: 26c48786c8
2013-05-03 15:23:17 -07:00
Jürg Lehni
857155bb4a Merge pull request #211 from hkrish/master
Merge in the possibly smallest Boolean Operations code ever written = )
2013-05-03 15:16:23 -07:00
hkrish
e75cc32a3b Merge branch 'master' of https://github.com/paperjs/paper.js
* 'master' of https://github.com/paperjs/paper.js:
  Undo recent change to Curve#getIntersection() since it breaks some boolean operations.

€ý5:q
2013-05-03 19:24:03 +02:00
Jürg Lehni
840e879ba8 Undo recent change to Curve#getIntersection() since it breaks some boolean operations. 2013-05-02 11:32:24 -07:00
hkrish
427ba628e1 Merge branch 'master' of https://github.com/hkrish/paper.js
* 'master' of https://github.com/hkrish/paper.js:

€ý5q:q:qq
:q
:q
2013-05-02 14:29:35 +02:00
hkrish
10553c1bd8 Merge upstream 2013-05-02 14:18:24 +02:00
hkrish
a52c030f37 Merge upstream 2013-05-02 14:03:16 +02:00
hkrish
73b018f006 Updated boolean operation methods.
The algorithm is based on paperjs' native segment and curve objects
rather than the generic Node and Link objects.
Also this is much smaller and faster! :)
2013-05-02 13:49:07 +02:00
Jürg Lehni
e8fed1bdf0 Improve Curve#getIntersections() by avoiding further subdivision of flat curves. 2013-05-01 18:40:57 -07:00
Jürg Lehni
c61e8d57b9 Fix issue with recursive call of Curve.getIntersections(). 2013-05-01 18:24:54 -07:00
hkrish
26c48786c8 Remove the proxy paths used for boolean 2013-05-01 23:32:25 +02:00