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
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