Commit graph

4892 commits

Author SHA1 Message Date
hkrish
9e8dbc7c3e Fix false negative and positive in the PathItem_Contains test file. 2014-02-24 19:11:32 +01:00
hkrish
cac86627be Correct winding number calculation when horizontal curves are involved. 2014-02-24 19:11:32 +01:00
Jürg Lehni
81137ce7fc Merge branch 'refs/heads/master' into bool-cleanup 2014-02-24 12:19:26 +01:00
Jürg Lehni
a6b1767b2b Apply Matrix test fix from ea0147fe85 in all tests. 2014-02-24 12:19:03 +01:00
Jürg Lehni
94090d144f Merge remote-tracking branch 'origin/master' into bool-cleanup
Conflicts:
	src/options.js
2014-02-24 12:15:38 +01:00
hkrish
9e799d09eb Self-Intersections: Restore the logic issues while cleaning up 2014-02-23 16:44:07 +01:00
hkrish
49ddfafe4d Handle stationary points in #getWinding method. 2014-02-22 18:56:19 +01:00
hkrish
b4d8315484 Reject monotone curves which doesn't contribute to the winding, early. 2014-02-22 18:54:26 +01:00
Jürg Lehni
f95982c365 Use native method for #contains() until the new winding code is ready.
Providing a temporary fix for #400.
2014-02-22 13:10:03 +01:00
Jürg Lehni
ea0147fe85 Handle slight imprecisions in Matrix tests. 2014-02-22 13:09:26 +01:00
Jürg Lehni
cf4d72f141 Improve data-structure for monotonic curves. 2014-02-21 10:07:27 +01:00
Jürg Lehni
4973ea9845 Minor clean up in getWinding() code. 2014-02-21 00:40:24 +01:00
Jürg Lehni
b4bc16330a Remove redundant comment. 2014-02-20 20:59:54 +01:00
Jürg Lehni
daa4c12b46 Revert bdcfb60a9a
Since it broke the last example of BooleanOperations.html
2014-02-20 20:58:39 +01:00
Jürg Lehni
5dd26f5b9f Explain about self-intersection handling in getIntersections() 2014-02-20 20:49:36 +01:00
Jürg Lehni
e2c87a6666 Remove fatline sub-folder. 2014-02-20 20:49:17 +01:00
Jürg Lehni
84e1f208fb Revert change in d730b75073
As highlighted by @hari in the comments.
2014-02-20 20:44:15 +01:00
Jürg Lehni
31498fa6b7 Capitalized all localized constants. 2014-02-20 20:43:25 +01:00
Jürg Lehni
c88dc8e2aa Minor changes. 2014-02-20 20:26:40 +01:00
Jürg Lehni
5a3ca88224 Restructure boolean code to use one big private scope again. 2014-02-20 20:24:16 +01:00
Jürg Lehni
3d2b53789c Move _getMonoCurves() definitions to PathItem.Boolean.js 2014-02-20 20:00:46 +01:00
Jürg Lehni
9c09be90f3 Fix white-space mix-up. 2014-02-20 19:52:09 +01:00
Jürg Lehni
64fa328f65 Move all winding related code to PathItem.Boolean and introduce __options.booleanOperations switch.
Fall back to __options.nativeContains if __options.booleanOperations is not included.
2014-02-20 19:50:37 +01:00
Jürg Lehni
81b3b756c9 Remove need for private scope in boolean operations code. 2014-02-20 19:35:11 +01:00
Jürg Lehni
2a4696b865 More clean-up in computeBoolean() code. 2014-02-20 19:10:46 +01:00
Jürg Lehni
ec621eef81 Cleanup computeBoolean() code. 2014-02-20 18:44:38 +01:00
Jürg Lehni
c6329e89bb Implement Curve#isHorizontal() 2014-02-20 18:44:23 +01:00
Jürg Lehni
b48321e78d Some more code and comments clean-up. 2014-02-20 18:00:56 +01:00
Jürg Lehni
bdcfb60a9a Improve handling of tMin and tMax in self-intersection code in PathItem#getIntersections() 2014-02-20 17:55:39 +01:00
Jürg Lehni
f782abd0d7 Some more clean-up in PathItem#getIntersections() 2014-02-20 17:49:19 +01:00
Jürg Lehni
5d2ff7e9ff Merge PathItem#getIntersections() and PathItem. _filterIntersections() 2014-02-20 17:03:18 +01:00
Jürg Lehni
0ce89fa47c Simplify self-intersecting code in PathItem#getIntersections() by passing on tMin, tMax, uMin & uMax to Curve#getIntersections(). 2014-02-20 17:02:32 +01:00
Jürg Lehni
4ec3daf4d1 Merge PathItem#getIntersections() and #getSelfIntersections() 2014-02-20 16:26:47 +01:00
Jürg Lehni
e11b6138bd Rename PathItem. _conditionIntersections() to _filterIntersections() and clean up code. 2014-02-20 15:38:31 +01:00
Jürg Lehni
f1765d1cbf Implement CurveLocation#equals() 2014-02-20 15:37:49 +01:00
Jürg Lehni
d9efb888bc Clean up Point#equals() code. 2014-02-20 15:37:38 +01:00
Jürg Lehni
5e7b15c64e Remove need for sorted list of intersection curves, use variables instead. 2014-02-20 15:17:39 +01:00
Jürg Lehni
b960cbc07b Further simplifications in PathItem._tracePaths() 2014-02-20 15:17:08 +01:00
Jürg Lehni
abb2b0dec9 Simplify and merge conditions for path removal in _tracePaths() 2014-02-20 14:16:04 +01:00
Jürg Lehni
50433400f0 More clean-up and some variable renaming. 2014-02-20 14:13:43 +01:00
Jürg Lehni
de6650a6ca More simplifications in PathItem._getWinding() 2014-02-20 13:46:10 +01:00
Jürg Lehni
a2941472b5 More PathItem._tracePaths() streamlining.
Work in progress.
2014-02-20 10:16:00 +01:00
Jürg Lehni
2a58828e81 Fix issue with curve tangents in rare edge-cases.
We should fix Curve.evaluate() for these instead.
2014-02-20 03:22:38 +01:00
Jürg Lehni
b89fc84789 Start simplifying PathItem#_tracePaths() code by using improved Curve#evaluate() and relying on Path#reduce(). 2014-02-20 02:52:20 +01:00
Jürg Lehni
f790ede7a8 Use Path#reduce() to make sure there are no curves with zero length in boolean code. 2014-02-20 02:51:35 +01:00
Jürg Lehni
e54691214a Only preserve angle in Point#normalize() if direction doesn't change. 2014-02-20 02:51:02 +01:00
Jürg Lehni
86e4d2a6b9 Implement Curve#remove() and Path#reduce().
Also have Item#reduce() recursively call #reduce() on reduced children.
2014-02-20 02:50:39 +01:00
Jürg Lehni
4453f68cfa Revert handling of linear segment reseting, as it broke some rare boolean tests. 2014-02-20 02:13:55 +01:00
Jürg Lehni
d730b75073 Simplify and clean-up PathItem._splitPath() code. 2014-02-20 01:56:49 +01:00
Jürg Lehni
4e5644f264 Simplify intersection sort function. 2014-02-20 00:32:15 +01:00