Commit graph

95 commits

Author SHA1 Message Date
hkrish
b1fca8d3dc Merge branch 'master' into bool-cleanup
* master: (36 commits)
  Avoid dividing with zero while splitting curves
  Implement propper support for pointer events and MSPointer events.
  Clean up white-space.
  WinGums: Some more code clean-up.
  WineGum example: Untangle the offset calculation code a bit.
  WineGum example: Some more style changes.
  Some more simplifications and style changes.
  Convert to cleaner OOP style.
  Precalculate side points again for better performance.
  Optimise WineGums example.
  Change title of WineGums example.
  Optimise WineGums example.
  Add WineGums example by kynd.info.
  Fix newly introduced issue in CompoundPath#moveTo() / #lineTo()
  Optimize and fix code that draws selections and handles.
  Minor clean-up in the way Base.exports are handled.
  Better handle Path#moveTo() / #closePath() edge cases in SVG data.
  Fix SVG issues with reflected control points in the commands 'SsTt'
  Prevent accidental transformation of selection bounds in TextItem.
  Fix importPoly() on Node.js
  ...
2014-03-13 19:32:51 +01:00
hkrish
066d47dbf7 Avoid dividing with zero while splitting curves 2014-03-12 13:34:43 +01:00
Jürg Lehni
7911d8b42a Change code sequence in tracePaths() to only calculate tangents and winding values if they are required. 2014-03-02 21:39:54 +01:00
Jürg Lehni
21bd4628f2 Merge branch 'refs/heads/bool-cleanup' 2014-03-02 21:19:47 +01:00
Jürg Lehni
d7be443119 Simplify path filtering code in tracePaths() a bit, and improve documentation. 2014-03-02 21:19:31 +01:00
hkrish
cb810c73bd Fix self-intersection resolution on a single bezier curve 2014-02-28 16:51:28 +01:00
Jürg Lehni
ccfd51a65a Improve performance of Path constructors and handling of { insert: false } Item creation. 2014-02-26 16:15:51 +01:00
Jürg Lehni
14df7b5d5a Shorten new edge case code in getWinding() a bit. 2014-02-24 20:29:44 +01:00
hkrish
cac86627be Correct winding number calculation when horizontal curves are involved. 2014-02-24 19:11:32 +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
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
5dd26f5b9f Explain about self-intersection handling in getIntersections() 2014-02-20 20:49:36 +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
4ec3daf4d1 Merge PathItem#getIntersections() and #getSelfIntersections() 2014-02-20 16:26:47 +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
4e5644f264 Simplify intersection sort function. 2014-02-20 00:32:15 +01:00
Jürg Lehni
56bf87ce84 Rename _getMonotoneCurves() to _getMonoCurves()
Shorter is better...
2014-02-20 00:24:09 +01:00
Jürg Lehni
1a0eead28c Various code and comment clean-ups in new bool-op code. 2014-02-19 23:18:14 +01:00
Jürg Lehni
19d84a8a8d Rename Path._getWindingNumber to _getWinding (to reflect the naming of the existing Path#_getWinding). 2014-02-19 22:18:51 +01:00
Jürg Lehni
74a153dd88 Some code clean-up.
More to come.
2014-02-17 20:59:38 +01:00
hkrish
92c13ae48b Resolve selfIntersections if both operands to a boolean op is the same path 2014-02-16 19:02:07 +01:00
hkrish
87ded4dcff Merge master 2014-02-15 00:02:02 +01:00
hkrish
cc2e1921f9 Remove checks from boolean path operations 2014-02-14 22:51:34 +01:00
hkrish
acaf637f26 Keep exclude as a compound boolean operator for now. 2014-01-27 21:32:25 +01:00
hkrish
85736d4e84 Remove debug helpers 2014-01-26 05:44:55 +01:00
hkrish
aea9a5cd6c Minor Fixes 2014-01-26 05:39:51 +01:00
hkrish
24cbf3b079 Correct winding contribution calculation for horizontal curves 2014-01-16 20:02:26 +01:00
hkrish
df7e8e43b2 More explanation and indentation fixes 2014-01-05 15:59:21 +01:00
hkrish
bcdec37b1a Do a much simpler but thorough check for winding contribution, instead of trying to be clever :) 2014-01-05 14:38:15 +01:00
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
e22fa3a664 Update copyright notice. 2014-01-04 01:47:16 +01:00
Jürg Lehni
35890383d8 Merge branch 'refs/heads/paperscript-refactoring' into v8-optimizations 2013-12-29 15:54:54 +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
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
451ff4fd03 Docs: Add group title to boolean path operations. 2013-12-28 20:56:30 +01:00