Commit graph

1422 commits

Author SHA1 Message Date
Jürg Lehni
fa9786b344 Switch to new simpler convention for control of beans creation in straps.js 2014-04-02 20:53:18 +02:00
Jürg Lehni
4d52867b4a Fix spelling mistakes and white-spaces. 2014-04-02 20:52:13 +02:00
Jürg Lehni
4108e9487b Add optional joining behavior to PathItem#closePath() again and use it in #setPathData(). 2014-03-31 19:33:38 +02:00
Jürg Lehni
17fb1fb862 Some Straps.js related code changes. 2014-03-31 19:27:04 +02:00
Jürg Lehni
7c447c8c5a Move segment merging logic from Path#closePath() to Path#join()
Closes #435
2014-03-31 18:14:58 +02:00
Jürg Lehni
a81063a994 Replace all unsupported Curve#getLength(from, to) calls with #getPartLength(from, to) 2014-03-30 14:17:02 +02:00
Jürg Lehni
c464f9ce1b Make sure Segment#getLocation() always determines the right value for CurveLocation#parameter
Half the solution for #437.
2014-03-30 14:16:03 +02:00
Jürg Lehni
4ca43ef2c3 Some documentation fixes. 2014-03-29 10:21:57 +01:00
Jonathan Puckey
400bc69159 Remove unnecessary commas.
Found using jscritic.com.
2014-03-28 14:02:39 +01:00
Jonathan Puckey
01dbfe705c Fix accidental leaking of variables to the global scope.
Found using jscritic.com
2014-03-28 13:46:51 +01:00
Jürg Lehni
e453b90ad2 Remove unused variable. 2014-03-20 17:26:22 +01:00
Jürg Lehni
833d71f7ea Remove Item#type and replace it with Item#className, the non-hyphenated version of #type. 2014-03-18 11:42:38 +01:00
Jürg Lehni
2a3f0646f0 Fix exception in _getMonoCurves() when path is empty.
Closes #427.
2014-03-17 14:58:40 +01:00
Jürg Lehni
438de7013a Correctly handle groups as clipping masks.
Closes #370.
2014-03-17 14:51:47 +01:00
Jürg Lehni
0fe52a7d39 Implement an optimization in _changed() notifications where not all curves need to updated if only segments change that already have told their curves about the change. 2014-03-17 14:35:33 +01:00
Jürg Lehni
72ba453ba2 Define Path#reorient() and simplify preparePath() 2014-03-17 10:04:09 +01:00
Jürg Lehni
e04946e250 Simplify CompoundPath#reorient() code. 2014-03-17 10:03:49 +01:00
Jürg Lehni
7372c14f0c Expose reorientPath() functionality as Path#getInteriorPoint() and CompoundPath#reorient() 2014-03-17 09:48:00 +01:00
Jürg Lehni
6d47824a69 Merge remote-tracking branch 'origin/master' into bool-cleanup
Conflicts:
	src/path/PathItem.Boolean.js
2014-03-16 22:48:08 +01:00
Jürg Lehni
2a08a88461 Avoid calling #moveTo() twice in SVG 'zm' path data sequence. 2014-03-16 22:44:46 +01:00
hkrish
b193cf0fe8 More precise handling of islands and holes in reorient path 2014-03-15 16:15:55 +01:00
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
Jürg Lehni
c84c019990 Add TODO and DOC for new #arcTo(to, radius, rotation, clockwise, large) 2014-03-13 17:46:31 +01:00
Jürg Lehni
42558fa057 Changes to new #arcTo(): Rename sweep -> clockwise and change argument sequence, as clockwise is more often used than large. 2014-03-13 16:35:56 +01:00
Jürg Lehni
6c7c4d0798 Close previous paths if followed by a new M command. 2014-03-13 03:28:46 +01:00
Jürg Lehni
d58f24157e Merge branch 'refs/heads/master' into apply-matrix 2014-03-13 01:05:09 +01:00
Jürg Lehni
10c28a301e Fix compare statements. 2014-03-13 01:04:31 +01:00
Jürg Lehni
3c257dcae0 Merge branch 'refs/heads/master' into apply-matrix 2014-03-13 00:54:05 +01:00
Jürg Lehni
e80991658b Fix issue with relative commands after Z.
Closes #413.
2014-03-13 00:52:24 +01:00
Jürg Lehni
afcabea1a7 Fix issue with Z in the middle of SVG path data, not followed by a M command.
Closes #413.
2014-03-12 23:24:09 +01:00
Jürg Lehni
326ecfca0e Rename angle parameter to rotation. 2014-03-12 23:05:54 +01:00
Jürg Lehni
56335ae5f5 Implement SVG-style #arcTo() version.
This should fix the arc related part of issue #413.
2014-03-12 23:00:47 +01:00
Jürg Lehni
7ace275da8 Implement Segment#transform() 2014-03-12 22:58:12 +01:00
Jürg Lehni
847060e146 Improve handling of _changed() events in Segment. 2014-03-12 22:58:00 +01:00
Jürg Lehni
dc76ef144e Remove accidentally committed console.log() 2014-03-12 21:34:52 +01:00
Jürg Lehni
6a58679593 Stick to 80 char line length. 2014-03-12 15:40:22 +01:00
hkrish
066d47dbf7 Avoid dividing with zero while splitting curves 2014-03-12 13:34:43 +01:00
Jürg Lehni
550044e476 Merge branch 'refs/heads/master' into apply-matrix 2014-03-04 09:55:20 +01:00
Jürg Lehni
b08cc68ffe Fix newly introduced issue in CompoundPath#moveTo() / #lineTo() 2014-03-04 09:48:41 +01:00
Jürg Lehni
7dbf6ceaff Move Project#options to PaperScope#settings and define reasonable defaults. 2014-03-04 09:29:28 +01:00
Jürg Lehni
5b49fdf3ff Merge branch 'refs/heads/master' into apply-matrix 2014-03-04 09:27:55 +01:00
Jürg Lehni
763fd5b6a3 Optimize and fix code that draws selections and handles. 2014-03-04 09:26:55 +01:00
Jürg Lehni
30b11e5968 Better handle Path#moveTo() / #closePath() edge cases in SVG data.
Relates to issue #413
2014-03-03 17:27:47 +01:00
Jürg Lehni
2f5a9bb70d Fix SVG issues with reflected control points in the commands 'SsTt'
Relates to issue #413
2014-03-03 08:57:33 +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
Jürg Lehni
80a725d08a Rename Item#transformContent to the more correct Item#applyMatrix 2014-03-02 16:04:17 +01:00
Jürg Lehni
fb1420eee0 Internalize Item#applyMatrix() code in #transform() and add short-cut method to it in Matrix#apply() 2014-03-02 15:50:45 +01:00
Jürg Lehni
7dd3bfa2ec Fix issue in recent Path.Line constructor optimization.
Line paths should not be closed.
2014-03-01 23:40:38 +01:00
Jürg Lehni
4129231504 Rename Path. _addSquareJoin() to more suitable _addBevelJoin() 2014-02-28 18:10:58 +01:00
Jürg Lehni
bd59be8629 Fix issue with strokeBounds affecting corners with miter limit and both handles set. 2014-02-28 18:01:50 +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
737466d15c Fix all faulty {@true} doc statements. 2014-02-26 15:39:00 +01:00
Jürg Lehni
49801e4b8b Improve performance of Path.Line() constructor.
Passing an array is much faster than using arguments directly.
2014-02-26 14:55:43 +01:00
Jürg Lehni
4c048dbc94 Rename fatline option to more explicit fatlineClipping. 2014-02-24 21:54:47 +01:00
Jürg Lehni
2fb1522c76 Minor code cleanup. 2014-02-24 21:33:35 +01:00
Jürg Lehni
f4baf690f8 Fix issue introduced in 0ce89fa47c 2014-02-24 21:30:12 +01:00
Jürg Lehni
3e49e3a5f1 Find better names for constants that represent almost 0 and almost 1. 2014-02-24 20:30:20 +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
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
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
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
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
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