Commit graph

315 commits

Author SHA1 Message Date
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
e6b7e9b2eb Remove unused Curve#_getWinding() and commented out CompoundPath#_getWinding() code. 2014-02-19 23:51:21 +01:00
Jürg Lehni
cc0f088a11 Improve evaluation of tangents and normals at t == 0 and 1. 2014-02-19 23:49:34 +01:00
hkrish
a62a54d7c1 Simplify the horizontal curve case in _getWinding method 2014-02-16 18:46:31 +01:00
hkrish
16ecbbafad Remove debug notes and helpers 2014-02-15 23:19:27 +01:00
hkrish
87ded4dcff Merge master 2014-02-15 00:02:02 +01:00
hkrish
cf9aec9233 Remove addLocation helper. We have to remove duplicates once we have all the intersections. 2014-01-25 23:50:29 +01:00
Jürg Lehni
cd6bfa0b77 Move Curve#getLength(from, to) to Curve#getPartLength(from, to).
Clears up the Curve#getLength() getter and removes the need for accessing arguments[]
2014-01-05 18:06:45 +01:00
Jürg Lehni
e3f3a9c9d2 Merge branch 'refs/heads/master' into v8-optimizations 2014-01-05 17:42:59 +01:00
Jürg Lehni
1ee5b2c126 Fix references to Bootstrap.js in comments. 2014-01-05 17:41:38 +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
6a11547942 Fix issue in Curve.getLength() for linear curves with sub-ranges.
Closes #376.
2013-12-30 14:20:05 +01:00
Jürg Lehni
8395541298 Clean up docs and fix spelling mistakes. 2013-12-29 15:44:26 +01:00
hkrish
0b4da28c1e Optimize handling of horizontal curves in Curve#_getWinding 2013-12-29 12:38:59 +01:00
hkrish
39c52f326e New _getWinding method in Curve. This method return the winding contribution of this curve w.r.t. the resulting PathItem 2013-12-25 20:41:19 +01:00
hkrish
b4c7bcae5e Indent with Tabs like rest of paperjs code. 2013-12-25 20:33:51 +01:00
hkrish
3b013c0720 Add an optional ignoreLinear parameter to Curve#divide, so that new segments on linear curves will keep their correct bezier handles. 2013-12-23 23:38:12 +01:00
hkrish
20b6d699db Consistently return curve parameter on Line intersections as well, so that sorting intersections wouldn't fail. 2013-12-23 23:34:26 +01:00
hkrish
20fbdcffda Subdivide only if tDiff on both curves have failed to converge more than 80% 2013-12-23 23:27:23 +01:00
Jürg Lehni
81651a7379 Prevent V8 "assignment to parameter in arguments object" deoptimizations.
Some getter-like functions still need fixing, but this might require a fix in Straps.js first.
2013-12-17 23:28:55 +01:00
Jürg Lehni
3dbad9c477 Replace delete in favor of setting to undefined to prevent V8 deoptimization. 2013-12-17 23:27:48 +01:00
Jürg Lehni
45ed406aa3 Remove unnecessary exports. 2013-12-16 21:58:32 +01:00
Jürg Lehni
94b27e933a Some more variable renaming. 2013-12-16 21:56:41 +01:00
Jürg Lehni
e9d2c6cfd4 Further simplify code a bit. 2013-12-16 21:45:06 +01:00
Jürg Lehni
d984a2cd87 Use correct value for tolerance in non-fatline code again. 2013-12-16 21:41:46 +01:00
Jürg Lehni
a59a42376a Clean up coding style a bit. 2013-12-16 21:40:40 +01:00
hkrish
5fe092672e Fatline clipping: fix c-hull corner case. 2013-12-14 00:31:42 +01:00
hkrish
a0013da7f8 Merge branch 'master' into fatline
* master: (71 commits)
  Define the default value for Color#alpha.
  Some minor changes in Satie example.
  Include point property in stroke hit-results.
  Clean up code and comments in various places.
  Use Point.read() for center parameter in Item#rotate
  Make hit-tests work again with projects that don't have a view.
  Write documentation for Item#anchor.
  Keep support for Item#registration for now as well, since there are some scripts on the mailing list that use it.
  Rename Item#registration to Item#anchor
  No need to run Radial Rainbows in HiDPI mode.
  Include Satie Sound Analysis Example.
  Only start dragging if none of the mosedown events have stopped propagation.
  Fix item-level mousedrag events again.
  Allow layers to select children again, since it breaks examples otherwise.
  Fix documentation issues in TextItem.
  Make hit-test tolerance dependent of view#matrix
  Implement options.selected for hit-testing segments and handles.
  Fix typo in new segment / handle hit-testing code.
  Use same stroke tolerance approach for hit-testing joins and caps as well.
  Do not factor in view matrix into Item#globalMatrix.
  ...
2013-12-13 20:04:43 +01:00
hkrish
5fb75593c2 Remove enpoint fix from curve-line intersections, since it's already handled 2013-12-13 20:01:58 +01:00
hkrish
ef66b6dbe6 Fatline clipping: fix convergence check to be more strict 2013-12-10 20:45:25 +01:00
hkrish
ac41f0d3c1 Fatline clipping: fix issue where one of the curves has been converged completely and other hasn't. 2013-12-09 23:27:26 +01:00
hkrish
0598afd77b Fatline clipping: remove old #curveIntersection method 2013-12-09 19:36:14 +01:00
hkrish
2fa5e3d417 Remove debug helpers 2013-12-09 19:31:58 +01:00
hkrish
82ab532885 Fatline clipping: clipConvexHull method handles only the clipping part 2013-12-09 19:31:04 +01:00
hkrish
35acebb91d Fatline clipping: remove old fatline code. This is handled by the CurveIntersections method now 2013-12-09 19:30:03 +01:00
hkrish
6041b2b09d Fatline clipping: new #CurveIntersections method 2013-12-09 19:28:56 +01:00
hkrish
b471b90229 Fatline clipping: Iterate to find intersections 2013-12-08 23:29:38 +01:00
hkrish
68b9adac95 Modify old clipFatline code to a much cleaner version 2013-12-08 23:15:18 +01:00
hkrish
45e35aad83 New CurveCurveINtersections code; doing the fatline clip inplace. 2013-12-08 23:14:13 +01:00
Jürg Lehni
8cec512cc2 Take matrices into account in PathItem#getIntersections() 2013-12-08 22:00:40 +01:00
hkrish
6c5e18ae45 New clip convex-hull routine 2013-12-08 19:09:59 +01:00
Jürg Lehni
fc4e88c039 Change the way segments, points and handles are selected and deselected.
There is no interdependency anymore, except for selecting a segment selects the point and both handles, and selecting a curve selects both points and handles.

Closes #355
2013-12-08 18:06:31 +01:00
hkrish
834c8d17a9 Declutter getConvexHull code. 2013-12-08 00:18:47 +01:00
hkrish
baa189bb19 getConvexHull returns upper and lower part of the c-hull seperately 2013-12-08 00:11:13 +01:00
Jürg Lehni
448d8d9b99 Clean-up bool-fix code. 2013-12-01 23:48:59 +01:00
Jürg Lehni
971268cd72 Merge remote-tracking branch 'origin/master' into bool-fix 2013-12-01 23:28:29 +01:00
Jürg Lehni
6b448ad320 Fix more edge cases in #contains().
This should fix issue #346 for good.
2013-12-01 23:13:11 +01:00
hkrish
b625ec5b6d Merge branch 'master' into bool-fix
* master: (127 commits)
  Fix edge cases in Curve._getWinding()
  Copy over parent style in Item#reduce().
  Fire key-up events for all currently pressed keys.
  Improve and streamline key-handling logic.
  Use renamed __options object in build script too.
  Correctly apply matrices to Raster items in #importSVG()
  Support passing DOM element IDs in calls to #importSVG()
  Update to latest Prepro.js and switch from global options object to __options, to avoid name clashes.
  Make directly setting view.onFrame work again.
  Update to latest Straps.js and remove unnecessary isArray argument in Base.each()
  Add missing DOCS comments.
  Fix issue where exceptions in onFrame handlers block future animations.
  Fix issue with JSON import.
  Add Node JSONtoPDF example.
  Implement Item#data cloning.
  Remove unnecessary Color#clone() since it's doing the same as Base#clone() now.
  Remove Base.merge() and use a new Straps.js feature instead.
  Improve build script to include dist file in paperjs.org website.
  Bump version to v0.9.14
  Fix setting #radius on Shape.Circle.
  ...
2013-11-30 14:50:18 +01:00
Jürg Lehni
dfc0886a8b Fix edge cases in Curve._getWinding()
Use same rules for lines as for curves, exclude end points of lines. Closes #346.
2013-11-30 14:21:47 +01:00