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
Jürg Lehni
e2b48ebf33
Allow layers to select children again, since it breaks examples otherwise.
2013-12-10 23:55:41 +01:00
Jürg Lehni
cf2c1ca04b
Fix documentation issues in TextItem.
2013-12-10 23:03:10 +01:00
Jürg Lehni
9501fd1924
Make hit-test tolerance dependent of view#matrix
2013-12-10 22:53:03 +01:00
hkrish
ef66b6dbe6
Fatline clipping: fix convergence check to be more strict
2013-12-10 20:45:25 +01:00
Jürg Lehni
68bce5b062
Implement options.selected for hit-testing segments and handles.
2013-12-10 19:34:25 +01:00
Jürg Lehni
52891830e4
Fix typo in new segment / handle hit-testing code.
2013-12-10 18:59:04 +01:00
Jürg Lehni
9177bac125
Use same stroke tolerance approach for hit-testing joins and caps as well.
2013-12-10 14:23:05 +01:00
Jürg Lehni
7c28c7e9e3
Do not factor in view matrix into Item#globalMatrix.
...
Instead concatenate it when drawing selections.
2013-12-10 13:18:21 +01:00
Jürg Lehni
48c8946f9e
Implement correct hit-testing tolerance using transformed 2D stroke padding rather than unscaled numerical tolerance.
...
But we still need to factor in the View zoom as well...
2013-12-10 12:52:42 +01:00
Jürg Lehni
3d868ae400
Fix issue with cached internal bounds and #transformContent == true.
2013-12-10 12:51:49 +01:00
Jürg Lehni
d65ede7df8
Correctly take strokePadding and transformation matrices into account in roughBounds, through new Path._getPenPadding()
2013-12-10 11:43:05 +01:00
Jürg Lehni
48b7b740ad
Allow the creation of internally used items with no ids.
2013-12-10 11:07:14 +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
Jürg Lehni
642111a7a2
Fix error in #getGlobalMatrix()
2013-12-09 19:33:50 +01:00
Jürg Lehni
b7943239eb
Implement cached getInternalRoughBounds as well.
2013-12-09 19:33:34 +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
Jürg Lehni
7278ee4374
Make JSON serialization work for Shapes.
2013-12-09 17:27:41 +01:00
Jürg Lehni
407a7fcde7
Support Size and Point arguments in Rectangle#expand()
2013-12-09 16:21:37 +01:00
Jürg Lehni
1e9fc61644
Fix issues with deserializing selection states.
2013-12-09 15:18:43 +01:00
Jürg Lehni
007b780763
Make font properties disappear in JSON.
2013-12-09 15:15:10 +01:00
Jürg Lehni
94d5a09b7b
Do not inherit selection behavior from Group in Layer.
2013-12-09 15:10:09 +01:00
Jürg Lehni
44e913201d
Switch back to instanceof checks.
...
As people are started to subclass Paper.js classes...
2013-12-09 15:04:44 +01:00
Jürg Lehni
e238d23194
Implement caching of internal, untransformed bounds.
2013-12-09 10:53:19 +01:00
Jürg Lehni
5197dd81c5
Fix #fontWeight examples and documentation.
2013-12-09 10:17:10 +01:00
Jürg Lehni
81fe98d1bb
Make cachedBounds mechanism work for Symbols.
2013-12-09 09:05:29 +01:00
Jürg Lehni
f8f60ec603
Fix slow-down in bounds caching.
2013-12-09 08:58:37 +01:00
Jürg Lehni
2cd3de8188
Improve versioning of _globalMatrix
2013-12-09 07:51:28 +01:00
Jürg Lehni
663836ae41
Correctly handle mousemove events when switching between canvases or leaving the document.
...
Closes #250 .
2013-12-08 23:57:46 +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
17e4078e3b
Fix a newly introduced bug in drawSegments()
2013-12-08 22:16:27 +01:00
Jürg Lehni
064d632d65
More matrix related clean-ups.
2013-12-08 22:12:36 +01:00
Jürg Lehni
238f577e6f
Clean up _getCachedBounds() code.
2013-12-08 22:06:32 +01:00
Jürg Lehni
8cec512cc2
Take matrices into account in PathItem#getIntersections()
2013-12-08 22:00:40 +01:00
Jürg Lehni
516b9d040f
Apply matrices before calculating boolean path operations.
2013-12-08 21:39:56 +01:00
Jürg Lehni
3cd141170a
Implement Style#fontFamily and #fontWeight as a replacement for #font.
...
Closes #60 .
2013-12-08 21:12:51 +01:00
Jürg Lehni
24ce35cc6e
Make sure items removed from DOM remove all their events and reinstall them again when reinserted.
...
Closes #254 .
2013-12-08 20:40:30 +01:00
Jürg Lehni
97fcd6ff38
Implement Item#getGlobalMatrix(), #globalToLocal() and #localToGlobal()
...
Closes #270 .
2013-12-08 20:04:10 +01:00
Jürg Lehni
696b5f29b9
Implement View#pause() and View#play() to start and stop animation.
2013-12-08 19:35:20 +01:00
Jürg Lehni
6e5d8939d5
Rename View#draw() -> View#update() and remove checkRedraw argument.
...
We always check for changes, since change propagation should work reliably.
2013-12-08 19:15:58 +01:00
hkrish
6c5e18ae45
New clip convex-hull routine
2013-12-08 19:09:59 +01:00
Jürg Lehni
c75d48cf98
Fix comments.
2013-12-08 18:45:11 +01:00