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
c63f9516b3
Remove Project#options.
...
The deprecated getter now redirects to PaperScope#settings.
2014-03-13 01:23:55 +01:00
Jürg Lehni
d622d648c1
Merge branch 'refs/heads/master' into apply-matrix
2014-03-13 01:19:52 +01:00
Jürg Lehni
4e20a5594e
Fix failing test.
2014-03-13 01:15:36 +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
0bca1656ac
Avoid CompoundPath#reduce() in SVG path import by improving regular expression that identifies the need for CompoundPath.
2014-03-13 01:01:26 +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
86c5894822
No need to use parseFloat() in color parsing, a + does enough.
2014-03-12 23:06:13 +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
Jürg Lehni
0ea5416a54
Deactivate dragstart events on view too.
2014-03-12 15:39:08 +01:00
hkrish
066d47dbf7
Avoid dividing with zero while splitting curves
2014-03-12 13:34:43 +01:00
Jürg Lehni
9c552b1739
Implement propper support for pointer events and MSPointer events.
...
Closes #406 and #336 .
2014-03-12 13:22:41 +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
73ef269f0f
Bake in matrix changes if owner has #applyMatrix set.
2014-03-04 09:36:00 +01:00
Jürg Lehni
d594b4264d
Define settings.applyMatrix and inherit at Item creation time.
2014-03-04 09:30:04 +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
dad17ba28e
Minor clean-up in the way Base.exports are handled.
2014-03-03 22:53:00 +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
36e3cbddf2
Remove inheritance of Item#applyMatrix setting again.
...
Implementation cannot be solved well, since hierarchy is not known at creation time of item.
2014-03-02 21:00:08 +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
6fdb9f60bd
Merge branch 'refs/heads/master' into apply-matrix
2014-03-02 01:27:50 +01:00
Jürg Lehni
2f61d11a3b
Prevent accidental transformation of selection bounds in TextItem.
...
Closes #386 .
2014-03-02 01:07:36 +01:00
Jürg Lehni
7bf9cc88e4
Merge pull request #387 from mgrabovsky/master
...
Fix typo in comment
2014-03-02 01:05:21 +01:00
Jürg Lehni
ac2161c6d9
Fix importPoly() on Node.js
...
Closes #390
2014-03-02 01:02:33 +01:00
Jürg Lehni
0ba58431e5
Merge branch 'refs/heads/master' into apply-matrix
2014-03-01 23:41:24 +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
4ba17127aa
Make sure that #transformContent can only be set to true on items that actually support it.
2014-03-01 23:24:33 +01:00
Jürg Lehni
1a836a168f
Merge branch 'refs/heads/master' into apply-matrix
...
Conflicts:
src/item/Item.js
2014-03-01 22:55:54 +01:00
Jürg Lehni
a8578326ea
Inherit #transformContent setting from parent, if not explicitely defined.
2014-03-01 22:52:00 +01:00
Jürg Lehni
dad7821ee9
Include Item#transformContent in serialization and cloning.
2014-03-01 22:51:01 +01:00
Jürg Lehni
7cf4591a1e
Define Item#style before calling #addChild() in #initialize(), to avoid issues with layers.
2014-03-01 22:49:46 +01:00
Jürg Lehni
a3114e5c28
Do not preserve matrix transformations in empty groups when applied to inexisting content.
2014-03-01 22:48:44 +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
Jürg Lehni
fe146c5ec0
Fix issues in Point#isOrthogonal() and Point#isColinear()
2014-02-28 17:57:09 +01:00
hkrish
cb810c73bd
Fix self-intersection resolution on a single bezier curve
2014-02-28 16:51:28 +01:00
Jürg Lehni
c1ccdf6cb7
Take into account the view's resolution in Item#rasterize()
2014-02-26 16:20:19 +01:00
Jürg Lehni
ec0877962b
Expose the view's pixel-ratio and resolution through View#pixelRatio and View#resolution
2014-02-26 16:19:48 +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
bf50bd649a
Fix issue in Item#rasterize() when resolution is not 72 DPI.
...
Closes #412 .
2014-02-26 11:54:14 +01:00
Jürg Lehni
2c16bd9eb1
Convert to standard paper.js loop format.
2014-02-26 01:24:00 +01:00
patrickheeney
aa2102ecb9
Fix event handlers for paperjs/paper.js#409
2014-02-25 13:02:53 -07: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
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
Jürg Lehni
56bf87ce84
Rename _getMonotoneCurves() to _getMonoCurves()
...
Shorter is better...
2014-02-20 00:24:09 +01:00
Jürg Lehni
36394c4c56
Simplify and clean-up PathItem._getWinding() code.
2014-02-20 00:19:44 +01:00
Jürg Lehni
6af639946b
Simplify and streamline Path._getMonotoneCurves() code.
2014-02-19 23:55:56 +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
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
8726a3f082
Reformat documentation comments and change wording to follow existing documentation convention.
2014-02-19 23:17:59 +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
093aae0836
Merge remote-tracking branch 'origin/master' into bool-new-2
2014-02-19 14:35:52 +01:00
Jürg Lehni
ea89498e48
Remove debug logging.
2014-02-19 14:31:32 +01:00
Jürg Lehni
9de4189233
Minor simplification.
2014-02-19 14:28:35 +01:00
Jürg Lehni
74a153dd88
Some code clean-up.
...
More to come.
2014-02-17 20:59:38 +01:00
Jürg Lehni
73627346c0
Remove unnecessary paper namespace prefixes inside the library.
2014-02-17 20:36:41 +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
e88ae54a22
_tracePaths: support self-intersections
2014-02-16 18:47:11 +01:00
hkrish
a62a54d7c1
Simplify the horizontal curve case in _getWinding method
2014-02-16 18:46:31 +01:00
Jürg Lehni
ad801fa786
Use parameter tolerances in Path#slipt()
...
Required because CurveLocation objects as returned by Path#getLocationAt() have some imprecision in their #parameter values. Fixes #401 .
2014-02-15 23:37:41 +01:00
hkrish
16ecbbafad
Remove debug notes and helpers
2014-02-15 23:19:27 +01:00
hkrish
83eaf70ee4
Fix regression: getLength has been split to getLength and getPartLength in master branch
2014-02-15 00:04:05 +01:00
hkrish
87ded4dcff
Merge master
2014-02-15 00:02:02 +01:00
hkrish
a798b553a2
Remove old tracePaths method
2014-02-14 22:52:32 +01:00
hkrish
cc2e1921f9
Remove checks from boolean path operations
2014-02-14 22:51:34 +01:00
hkrish
ea29e65e6b
_tracePaths: Switch contours only if necessary
2014-02-14 22:50:55 +01:00
Jürg Lehni
2010fefcbe
Include importSVG() fix for Opera browser.
2014-02-12 09:47:43 +01:00
Jürg Lehni
568bb06853
Add comments about missing #importSVG() documentation.
2014-02-12 09:39:34 +01:00
hkrish
26ef85930d
_tracePaths: Calculate correct entry&exit tangents.
2014-02-11 19:18:54 +01:00
hkrish
099f2d411e
_tracePaths: Optimize contour selection a bit.
2014-02-10 22:13:03 +01:00
hkrish
2121b564d0
_tracePaths: Avoid traversing to visited segments
2014-02-10 22:12:32 +01:00
hkrish
dfd1c97a4f
Bug fixes in the tracePath method to work with self-Intersection resolution
2014-02-10 22:12:13 +01:00
hkrish
f8f31349d9
Modified tracePath method for supporting self-intersection resolution and offset curves
2014-02-10 22:11:43 +01:00
hkrish
ccb9f518b8
Fix monotoneCurve calculation for open paths
2014-02-10 22:11:29 +01:00
hkrish
de0cfb7e3d
Refactor code common to getIntersections and getSelfIntersections.
...
Conflicts:
src/path/PathItem.js
2014-02-10 22:10:55 +01:00
hkrish
74c4df9b8c
Fix winding contribution case for horizontal curves
2014-01-28 18:04:09 +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
758cf67f6e
Move sorting and expansion of intersections to the getIntersections method
2014-01-26 05:39:00 +01:00
hkrish
c5ddbf19da
Remove duplicate intersections in #getIntersections
2014-01-26 05:38:09 +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
hkrish
24cbf3b079
Correct winding contribution calculation for horizontal curves
2014-01-16 20:02:26 +01:00
Matěj Grabovský
890eda9197
Fix typo in comment
2014-01-15 18:04:51 +01:00
Jürg Lehni
5a131930fb
Add _dontNotify parameter to Matrix#reset() and use it in Item#applyMatrix()
2014-01-06 00:18:40 +01:00
Jürg Lehni
4a95f6e4a6
Some more optimizations for JS minifier and V8.
2014-01-05 21:07:11 +01:00
Jürg Lehni
1bf7107918
Fix issue in Point#getDirectedAngle()
2014-01-05 20:54:19 +01:00
Jürg Lehni
51eff78919
Minor PaperScript clean-ups.
2014-01-05 20:53:18 +01:00
Jürg Lehni
7291956155
Prevent unnecessary beans from being created.
2014-01-05 20:42:28 +01:00
Jürg Lehni
dd37704f2c
Use the same filtering for UpdateExpression and AssignmentExpression.
2014-01-05 20:23:11 +01:00
Jürg Lehni
cd7604952c
Filter out loop statements in operator overloading code, to optimize loop execution speed.
2014-01-05 20:15:57 +01:00
Jürg Lehni
6ad2105110
Replace delete in favor of setting to undefined to prevent V8 deoptimization.
2014-01-05 19:16:48 +01:00
Jürg Lehni
132f6df6c8
Prevent overriding of global variables with undefined values during development.
2014-01-05 18:57:36 +01:00
Jürg Lehni
73f857170d
Remove unused arguments._read value and rename _index to __index.
2014-01-05 18:34:08 +01:00
Jürg Lehni
706fe2c77d
Rearrange Base.read argument sequence.
...
options are used more often than length.
2014-01-05 18:31:24 +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
b66c41e1c9
Remove need for arguments[1] in Item#transform()
2014-01-05 18:05:47 +01:00
Jürg Lehni
8d08d3c014
Remove the need for arguments[0] in bounds getters.
2014-01-05 18:01:38 +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
1d37944c89
Fix alpha support in new Color#toCSS() code.
2014-01-05 17:42:46 +01:00
Jürg Lehni
1ee5b2c126
Fix references to Bootstrap.js in comments.
2014-01-05 17:41:38 +01:00
Jürg Lehni
6cb25fafe3
Use changes in latest Straps.js to remove as many hidden parameters as possible.
...
Hidden parameters through arguments[] are bad news for JS optimizer engines.
2014-01-05 17:40:54 +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
6ed264a775
No need to clamp colors in conversions, just make sure hue stays within 360°
2014-01-05 05:10:42 +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
22e62a0527
Only expose globals if they are in use in the PaperScript code.
2014-01-04 22:22:19 +01:00
Jürg Lehni
227d511fc0
Only include the global handlers in the return statement that actually seem to be defined.
2014-01-04 22:10:16 +01:00
Jürg Lehni
4302682c1c
Implement a better way of handling exceptions in PaperScript on Firefox and Chrome.
...
Use dynamically inserted script tag rather than compiled function since Firefox reports correct line numbers there.
2014-01-04 21:57:29 +01:00
Jürg Lehni
9dea3f3b74
Implement Color component clamping for color conversion.
2014-01-04 19:10:52 +01:00
Jürg Lehni
42bed58624
Fix scoping issues in PaperScript code.
2014-01-04 19:01:17 +01:00
Jürg Lehni
0dddd897ab
Remove internal clamping of color values to facilitate proper mathematical calculations with colors.
...
Clamp only when producing CSS values. Closes #271 .
2014-01-04 18:16:52 +01:00
Jürg Lehni
bd4f48ca1a
Fix bounds check for mousemove events.
...
Closes #369
2014-01-04 17:33:20 +01:00
Jürg Lehni
e22fa3a664
Update copyright notice.
2014-01-04 01:47:16 +01:00
Jürg Lehni
4594b66fd6
Fix comments.
2014-01-03 19:45:00 +01:00
Jürg Lehni
de939ab939
Clean up code and comments.
2014-01-03 18:31:07 +01:00
Jürg Lehni
57f1763abe
Merge branch 'refs/heads/paperscript-refactoring'
...
Conflicts:
src/core/PaperScope.js
2014-01-03 12:34:07 +01:00
Jürg Lehni
541ac6acce
Shorten code a bit.
2014-01-02 21:47:20 +01:00
Jürg Lehni
ad34bbf7aa
Bail out of Item#transform() immediately if there is nothing to do.
2014-01-02 21:47:00 +01:00
Jürg Lehni
c197f531a4
Implement options.asString for Item#exportJSON()
2013-12-30 23:34:19 +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
6654dca6bf
Improve precision of Numerical.findRoot()
2013-12-30 14:18:33 +01:00
Jürg Lehni
f97056e4b7
Change the way PaperScripts are executed in Node.js
...
Requiring a PaperScript returns an initialize method which receives the Canvas argument.
2013-12-29 16:36:23 +01:00
Jürg Lehni
35890383d8
Merge branch 'refs/heads/paperscript-refactoring' into v8-optimizations
2013-12-29 15:54:54 +01:00
Jürg Lehni
8395541298
Clean up docs and fix spelling mistakes.
2013-12-29 15:44:26 +01:00
Jürg Lehni
976b24b34c
Execute PaperScript using new Function() rather than eval() and with() {}
...
This results in some impressive speeding improvements, as modern JS engines are finally able to optimize the resulting code.
2013-12-29 15:32:23 +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
hkrish
3f6562d5b3
Method for tracing a set of connected segments and producing paths; used in boolean ops and path offsetting methods.
2013-12-29 13:29:54 +01:00
hkrish
7c75dcee97
New Split path method
2013-12-29 13:25:48 +01:00
hkrish
1be669396e
First cut at a new winding number calculation algorithm
2013-12-29 13:21:08 +01:00
hkrish
a88d7f5eae
Rudimentary self-intersection calculation
2013-12-29 13:06:25 +01:00
hkrish
1bacbc32e9
Link previous & next curves while returning monotone curves
2013-12-29 13:03:39 +01:00
hkrish
0b4da28c1e
Optimize handling of horizontal curves in Curve#_getWinding
2013-12-29 12:38:59 +01:00
Jürg Lehni
5f466bbc7e
Move documentation for PaperScope#tools to the right place.
2013-12-28 22:48:50 +01:00
Jürg Lehni
10aa8d7b4a
Fix accidental documentation leakage into global scope.
2013-12-28 22:34:00 +01:00
Jürg Lehni
8143144e87
Remove trailing comma.
2013-12-28 21:21:26 +01:00
Jürg Lehni
c0ed227cbc
Add sorted argument to PathItem#getIntersections()
2013-12-28 21:06:35 +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
8711fcf500
Remove hidden unused squared argument in Point#getLength()
2013-12-28 20:58:16 +01:00
Jürg Lehni
38d67d843d
Move Path#getStyle() to better location and simplify code.
2013-12-28 20:56:44 +01:00
Jürg Lehni
451ff4fd03
Docs: Add group title to boolean path operations.
2013-12-28 20:56:30 +01:00
hkrish
a8a4a6fd03
Return horizontal curves as well, with monotonic curves
2013-12-26 18:03:23 +01:00
hkrish
4562b104f2
Winding number calculation for a given point
2013-12-25 20:46:13 +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
0134596f66
_getMonotoneCurves method which returns and caches curves that are monotonic in Y direction
2013-12-25 20:38:48 +01:00
hkrish
b4c7bcae5e
Indent with Tabs like rest of paperjs code.
2013-12-25 20:33:51 +01:00
hkrish
70070c14d2
Avoid creating proxy array objects
2013-12-24 19:00:33 +01:00
hkrish
f23303e371
Merge branch 'master' into bool-new
...
* master:
Share code that handles bounds in roots between solveQuadratic() and solveCubic()
Inline EPSILON and TOLERANCE for better performance in Numerical.
Clean up code a bit.
Filter out insert property in Item#set()
Typo Paelette -> Palette
Rename Item#anchor -> Item#pivot
Minor documentation fixes.
2013-12-24 00:02:15 +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
99d7b5cfdb
Merge branch 'refs/heads/fatline'
2013-12-17 22:07:34 +01:00
Jürg Lehni
a6b3a3a2ec
Share code that handles bounds in roots between solveQuadratic() and solveCubic()
2013-12-17 15:38:22 +01:00
Jürg Lehni
76ea7ef066
Inline EPSILON and TOLERANCE for better performance in Numerical.
2013-12-17 15:27:55 +01:00
Jürg Lehni
6b4917f4a8
Clean up code a bit.
2013-12-17 15:23:07 +01:00
Jürg Lehni
e2b06b8e54
Filter out insert property in Item#set()
2013-12-16 22:03:33 +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
Jürg Lehni
a51f8d4ee8
Rename Item#anchor -> Item#pivot
2013-12-13 20:50:58 +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
Jürg Lehni
d60e99c608
Minor documentation fixes.
2013-12-13 16:21:57 +01:00
Jürg Lehni
5482f2e5f7
Define the default value for Color#alpha.
2013-12-13 15:50:08 +01:00
Jürg Lehni
d176acfc53
Include point property in stroke hit-results.
2013-12-11 17:10:32 +01:00
Jürg Lehni
25d8b1f0d2
Clean up code and comments in various places.
2013-12-11 17:10:09 +01:00
Jürg Lehni
3ff4a6d801
Use Point.read() for center parameter in Item#rotate
2013-12-11 17:09:03 +01:00
Jürg Lehni
da427e969b
Make hit-tests work again with projects that don't have a view.
...
Fixes broken tests.
2013-12-11 17:08:36 +01:00
Jürg Lehni
97f7204eab
Write documentation for Item#anchor.
2013-12-11 16:23:30 +01:00
Jürg Lehni
42788a5bf7
Keep support for Item#registration for now as well, since there are some scripts on the mailing list that use it.
2013-12-11 15:08:56 +01:00
Jürg Lehni
78a2685324
Rename Item#registration to Item#anchor
2013-12-11 14:59:51 +01:00
Jürg Lehni
f003cc05d7
Only start dragging if none of the mosedown events have stopped propagation.
2013-12-11 02:15:17 +01:00
Jürg Lehni
45f9fcd830
Fix item-level mousedrag events again.
2013-12-11 00:10:03 +01:00