Jürg Lehni
|
538eac6dc7
|
Use smaller tolerances in winding code, to address edge cases.
Closes #559
|
2015-01-02 23:47:26 +01:00 |
|
Jürg Lehni
|
70e34ef705
|
Merge remote-tracking branch 'origin/master' into boolean-operations
Conflicts:
src/path/Curve.js
src/util/Numerical.js
|
2015-01-02 22:41:38 +01:00 |
|
Jürg Lehni
|
477527f8ec
|
Implement more intuitive version of clipConvexHull(), outlined in #570 by @iconexperience
Code further shortened using a sub-routine.
|
2015-01-02 22:36:04 +01:00 |
|
Jürg Lehni
|
232739fae9
|
Add comments to fat-line clipping code linking to issues #568 and #571.
|
2015-01-02 22:34:09 +01:00 |
|
Jürg Lehni
|
a2208f218c
|
Merge branch 'refs/heads/master' into boolean-operations
Conflicts:
src/util/Numerical.js
|
2015-01-02 21:46:28 +01:00 |
|
Jürg Lehni
|
51739e6e27
|
Merge remote-tracking branch 'origin/master' into solve-cubic
Conflicts:
src/path/PathItem.Boolean.js
|
2015-01-02 21:26:04 +01:00 |
|
Jürg Lehni
|
8ad067ec6c
|
Use tolerance when comparing curve locations by parameter.
|
2015-01-02 21:20:28 +01:00 |
|
Jürg Lehni
|
4ed9ef54f2
|
Fix bug in Curve.filterIntersections() and clean up code a bit.
|
2015-01-02 21:19:18 +01:00 |
|
Jürg Lehni
|
b2261fd512
|
Introduce Curve.filterIntersections() and use it both in PathItems#getIntersections() and Curve#getIntersections()
|
2015-01-02 21:00:05 +01:00 |
|
Jürg Lehni
|
3302a7dff5
|
Increase recursion threshold to 4 when checking for fatline convergence.
|
2015-01-02 20:49:09 +01:00 |
|
Jürg Lehni
|
fbd026ea0d
|
Bring back code removed by @hkrish in commit 5fb75593c2
Relates to issue #570, still required to figure out why it is still needed.
|
2015-01-02 20:02:45 +01:00 |
|
Jürg Lehni
|
74844d8a2b
|
Use hullEpsilon in all comparisons of curve time values in fat-line clipping code.
Addresses first half of issue #568
|
2015-01-02 17:33:04 +01:00 |
|
Jürg Lehni
|
41c0584f35
|
Merge remote-tracking branch 'origin/master' into solve-cubic
|
2015-01-02 16:37:50 +01:00 |
|
Jürg Lehni
|
e3e3d13fa5
|
Add comment regarding issue #565
|
2015-01-02 16:33:15 +01:00 |
|
Jürg Lehni
|
b75def3f3a
|
Implement optimal values in fat line clipping code for maximum recursion and curve time difference, as determined by @iconexperience.
Closes #565
|
2015-01-02 16:29:12 +01:00 |
|
Jürg Lehni
|
91865be8a3
|
Merge remote-tracking branch 'origin/master' into solve-cubic
Conflicts:
src/basic/Line.js
src/path/Curve.js
src/path/PathItem.Boolean.js
src/util/Numerical.js
|
2015-01-02 16:21:18 +01:00 |
|
Jürg Lehni
|
45c86a3035
|
Switch to suggested new implementation of Line.getSignedDistance() by @iconexperience
Closes #554
|
2015-01-02 16:17:19 +01:00 |
|
Jürg Lehni
|
878be7962e
|
Merge branch 'refs/heads/master' into solve-cubic
Conflicts:
src/path/Curve.js
src/path/PathItem.Boolean.js
src/util/Numerical.js
|
2015-01-02 15:33:23 +01:00 |
|
Jürg Lehni
|
1de750bc77
|
Check for Path#closed in Path#equals()
|
2014-12-28 18:10:14 +01:00 |
|
Jürg Lehni
|
28538d8a43
|
Clean up code from #597 a bit.
|
2014-12-26 06:42:46 +01:00 |
|
louisremi
|
a9bf0b097e
|
Handle closed path in PathFitter
|
2014-12-15 14:56:25 +01:00 |
|
Jürg Lehni
|
318209e9e9
|
Replace compareNumbers() with equals() and improve numerical tolerance handling in test helpers.
|
2014-11-30 11:27:14 -08:00 |
|
Jürg Lehni
|
ebdc63fbfa
|
Use correct formula in Curve#getTangentAt() for end-points when there is no handle.
Closes #553.
|
2014-11-08 17:16:22 -08:00 |
|
Jürg Lehni
|
782bde238c
|
Find a more general implementation for Item#intersects(item).
|
2014-10-20 18:00:07 +02:00 |
|
Jürg Lehni
|
5ddbc5b07f
|
Implement Item#intersects(item)
|
2014-10-20 17:00:18 +02:00 |
|
Jürg Lehni
|
b3c7be67fc
|
Support optional hidden matrix argument in #getIntersections()
...in order to provide an alternative matrix for the passed path to check against.
|
2014-10-20 16:53:49 +02:00 |
|
Jürg Lehni
|
0894e625b0
|
Fix documentation issues with Path#get*At()
Closes #537.
|
2014-10-15 13:00:50 +02:00 |
|
Jürg Lehni
|
e5714584ff
|
Fix return type of #getCurvatureAt() methods.
Closes #535 properly this time.
|
2014-10-15 12:02:21 +02:00 |
|
Jürg Lehni
|
b71e2c69d6
|
Fix documentation of Curve#getCurvatureAt(), as well as Path#getCurvatureAt() & co.
Closes #535
|
2014-10-14 13:52:57 +02:00 |
|
Jürg Lehni
|
6a11532322
|
Clean up and simplify code a bit further.
|
2014-09-28 11:49:46 +02:00 |
|
Jürg Lehni
|
7462fe0b70
|
Fix Curve.getParameterAt() for negative values of offset, and implement unit test.
Closes #524.
|
2014-09-28 11:44:38 +02:00 |
|
Jürg Lehni
|
2dce6c4efa
|
Some code clean-up in Segment#_changed()
|
2014-09-27 22:09:25 +02:00 |
|
Jürg Lehni
|
cc8b23894c
|
Some clean up related to hidden _uncached parameter.
|
2014-09-27 22:03:54 +02:00 |
|
Jürg Lehni
|
b8530935a7
|
Streamline CurveLocation#getTangent/Normal/Curvature getter definitions to align with definitions in Curve, Path and PathIterator.
|
2014-09-27 22:03:20 +02:00 |
|
Jürg Lehni
|
dd99db8d2d
|
Allow 'false' as well as 'off' for hidpi attribute, since that's what's in use for other attributes as well.
|
2014-09-26 18:03:37 +02:00 |
|
Jürg Lehni
|
5046a6a64c
|
Fix naming of PathIterator#get*At functions.
|
2014-09-24 12:32:07 +02:00 |
|
Jürg Lehni
|
4adab91a18
|
Remove unused argument.
|
2014-09-23 17:51:29 +02:00 |
|
Jürg Lehni
|
ee27fe820f
|
Check for valid parameter range in Curve#getLocationAt() and delegate to it in #getLocationOf()
|
2014-09-20 11:09:09 +02:00 |
|
Jürg Lehni
|
c94fb3038f
|
Use valid parameter range [0,1] in calls to Curve.solveCubic().
|
2014-09-20 11:08:20 +02:00 |
|
Jürg Lehni
|
c2465b60fa
|
Transform the correct amount of points in Curve.getValues() when a matrix is provided.
|
2014-09-20 11:06:25 +02:00 |
|
Jürg Lehni
|
52dd24097f
|
Define PathIterator#getPoint(), #getTangent(), #getNormal() and #getCurvature().
|
2014-09-11 16:06:00 +02:00 |
|
Jürg Lehni
|
67d30f0042
|
Actually use maxRecursion and tolerance arguments in PathIterator, and increase precision in #flatten() a bit.
|
2014-09-11 15:20:04 +02:00 |
|
Jürg Lehni
|
73765e6654
|
Produce Path#getPointAt(), #getTangentAt(), #getNormalAt() & #getCurvature() in a loop, just like for Curve.
|
2014-09-10 11:21:06 +02:00 |
|
Jürg Lehni
|
50c5c6736c
|
Rename PathFlattener to PathIterator and include the class in exports.
|
2014-09-10 02:20:00 +02:00 |
|
Jürg Lehni
|
1db4fb4064
|
Refactor PathFlattener code and add maxRecursion and tolerance arguments to constructor.
|
2014-09-09 18:32:41 +02:00 |
|
Jürg Lehni
|
7d69ef1864
|
Fix documentation of bean properties that are not read-only.
@bean can only be used when the property is read-only or both getters and setters are present in the scope.
|
2014-08-26 10:01:30 +02:00 |
|
Jürg Lehni
|
a564480522
|
Forgotten in previous commit.
|
2014-08-25 12:53:13 +02:00 |
|
Jürg Lehni
|
797a393c9a
|
Remove various double white-spaces.
|
2014-08-25 12:49:14 +02:00 |
|
Jürg Lehni
|
48cb05a181
|
Replace tabs with 4 white-spaces.
|
2014-08-16 19:24:54 +02:00 |
|
Jürg Lehni
|
4d4a39c752
|
Implement Curve#getOffsetOf(point) / Path#getOffsetOf(point)
Closes #463.
|
2014-07-31 19:01:37 +02:00 |
|
Jürg Lehni
|
da22161d28
|
Correctly clear Curve length cache when segments change.
Closes #497
|
2014-07-31 17:00:52 +02:00 |
|
Jürg Lehni
|
652dbe1e86
|
Use loop to produce CurveLocation getters, and add CurveLocation#curvature.
|
2014-07-25 20:05:44 +02:00 |
|
Jürg Lehni
|
3093a8ec43
|
Introduce matrix.chain(mx) as a shortcut to Matrix.clone().concatenate(mx)
Simplifies quite a few lines of code.
|
2014-07-08 15:43:17 +02:00 |
|
hkrish
|
ccbf4579fd
|
Don't remove the only intersection.
The previous code wrongly compared an intersection with itself while checking for duplicates.
|
2014-06-21 10:31:07 +02:00 |
|
hkrish
|
6c6ad76c94
|
Handle overlapping intercepts in getIntersection,
In a more robust way. Restricting ranges in parameter is not a nice way
to handle endpoint intersections.
|
2014-05-17 13:43:46 +02:00 |
|
Jürg Lehni
|
9d7ec13724
|
Update prepro.js to version that can evaluate whole expressions, and fix a newly introduced issue with it.
|
2014-05-14 15:14:03 +02:00 |
|
hkrish
|
e5e2a8d7d4
|
Revert "Correct boolean condition in getWinding."
This reverts commit fcc2e93daf .
|
2014-05-13 20:41:48 +02:00 |
|
hkrish
|
fcc2e93daf
|
Correct boolean condition in getWinding.
Also clarify the condition using braces
|
2014-05-13 20:14:53 +02:00 |
|
Jürg Lehni
|
846c806034
|
Implement non-scaling strokes through Style#strokeScaling.
Closes #418.
|
2014-05-13 13:38:51 +02:00 |
|
Jürg Lehni
|
4464950301
|
Correctly take Item#matrix into account in #getPathData().
|
2014-05-13 13:21:59 +02:00 |
|
Jürg Lehni
|
e1ed7f3294
|
Prevent drawing selected compound path children twice.
|
2014-05-12 18:57:09 +02:00 |
|
Jürg Lehni
|
ea8518c3a5
|
Use the correct change notification when reversing paths.
|
2014-05-12 16:44:48 +02:00 |
|
Jürg Lehni
|
8560a71312
|
Remove srcOffset and dstOffset parameters from Matrix#_transformCoordinates().
|
2014-05-08 13:54:05 +01:00 |
|
Jürg Lehni
|
c64f177583
|
Simplify linearHandles code changes a bit.
|
2014-05-08 10:48:22 +01:00 |
|
hkrish
|
4cc2deb3f8
|
Remove the debug code in curve#solveCubic
The cubic and quadratic solver has been tested with > 2 million
equations as of now. We need more rigorous tests however.
|
2014-05-05 18:48:30 +02:00 |
|
hkrish
|
1c9d1de380
|
Boolean: handle linear segments correctly.
Earlier implementation was unfinished and did not reset some handles to
linear, this caused the winding to be miscalculated.
|
2014-05-05 18:46:39 +02:00 |
|
Jürg Lehni
|
8317aacc1b
|
Split Item#hitTest() into separate private function that does need to do arguments reading, for improved performance also when iterating over children.
|
2014-04-29 20:06:48 +02:00 |
|
Jürg Lehni
|
0168e41be0
|
Add old cubic solver code for comparison, and use console.log() in Curve.solveCubic() to log values with different results.
|
2014-04-29 00:11:13 +02:00 |
|
Jonathan Puckey
|
04e90ec3f4
|
Improve PathItem#getIntersections(path, sorted) docs.
|
2014-04-28 18:58:19 +02:00 |
|
Jonathan Puckey
|
2b712959f2
|
Path: Improve docs of the 'Positions on Paths and Curves' group.
|
2014-04-28 18:12:44 +02:00 |
|
Jürg Lehni
|
a9618b50f8
|
Small fix in Segment#linear.
|
2014-04-28 16:43:11 +02:00 |
|
Jürg Lehni
|
364c31b0f6
|
Remove TODOs for already implemented functions.
|
2014-04-28 14:25:15 +02:00 |
|
Jürg Lehni
|
42945825e8
|
Fix all argument assignment TODOs.
|
2014-04-28 14:22:50 +02:00 |
|
Jürg Lehni
|
19630d6229
|
Fix spelling mistakes.
|
2014-04-24 19:34:49 +02:00 |
|
Jürg Lehni
|
9ccba17fbe
|
Clean up white-space, comments and jshint errors.
|
2014-04-14 18:29:26 +02:00 |
|
Jürg Lehni
|
397c81e060
|
Switch from options.type to options.class in Item#hitTest(), to reflect recent change in Item#getItems().
|
2014-04-13 16:43:20 +02:00 |
|
Jürg Lehni
|
a931a2530c
|
Implement options.curves option for hit-testing curves regardless of stroke settings.
|
2014-04-11 14:57:58 +02:00 |
|
Jürg Lehni
|
d12607dd44
|
Use a Base object for PaperScope#settings and update straps.js to version that offers Base#set().
|
2014-04-11 13:32:06 +02:00 |
|
Jürg Lehni
|
86277f0578
|
Reversing path direction needs to trigger a GEOMETRY change.
|
2014-04-10 22:37:11 +02:00 |
|
Jürg Lehni
|
eea4e533a4
|
Support type: Class filters in hit-testing code too.
|
2014-04-10 22:27:03 +02:00 |
|
Jürg Lehni
|
60f6eca6c4
|
Do not keep the view's matrix baked into _globalMatrix, since we might allow multiple views soon.
|
2014-04-07 17:35:17 +02:00 |
|
Jürg Lehni
|
66b1087d33
|
Have boolean operation result inherit styles from the left-hand item in the operation.
Closes #445.
|
2014-04-07 12:18:04 +02:00 |
|
Jürg Lehni
|
f953331edb
|
Implement correct selection drawing for CompoundPath.
Closes #402.
|
2014-04-07 11:22:25 +02:00 |
|
Jürg Lehni
|
f002c633a7
|
Remove trailing white spaces and ensure newlines at the end.
|
2014-04-06 13:48:03 +02:00 |
|
Jürg Lehni
|
09d0f5f389
|
Correctly handle paths with only one segment in hit-testing code.
Closes #430.
|
2014-04-04 12:08:20 +02:00 |
|
Jürg Lehni
|
59da291d54
|
Remove tabs in examples in favor of 4 spaces.
To remove all these annoying JSHint complaints.
|
2014-04-02 21:03:35 +02:00 |
|
Jürg Lehni
|
fa9786b344
|
Switch to new simpler convention for control of beans creation in straps.js
|
2014-04-02 20:53:18 +02:00 |
|
Jürg Lehni
|
4d52867b4a
|
Fix spelling mistakes and white-spaces.
|
2014-04-02 20:52:13 +02:00 |
|
Jürg Lehni
|
4108e9487b
|
Add optional joining behavior to PathItem#closePath() again and use it in #setPathData().
|
2014-03-31 19:33:38 +02:00 |
|
Jürg Lehni
|
17fb1fb862
|
Some Straps.js related code changes.
|
2014-03-31 19:27:04 +02:00 |
|
Jürg Lehni
|
7c447c8c5a
|
Move segment merging logic from Path#closePath() to Path#join()
Closes #435
|
2014-03-31 18:14:58 +02:00 |
|
Jürg Lehni
|
a81063a994
|
Replace all unsupported Curve#getLength(from, to) calls with #getPartLength(from, to)
|
2014-03-30 14:17:02 +02:00 |
|
Jürg Lehni
|
c464f9ce1b
|
Make sure Segment#getLocation() always determines the right value for CurveLocation#parameter
Half the solution for #437.
|
2014-03-30 14:16:03 +02:00 |
|
Jürg Lehni
|
4ca43ef2c3
|
Some documentation fixes.
|
2014-03-29 10:21:57 +01:00 |
|
Jonathan Puckey
|
400bc69159
|
Remove unnecessary commas.
Found using jscritic.com.
|
2014-03-28 14:02:39 +01:00 |
|
Jonathan Puckey
|
01dbfe705c
|
Fix accidental leaking of variables to the global scope.
Found using jscritic.com
|
2014-03-28 13:46:51 +01:00 |
|
Jürg Lehni
|
e453b90ad2
|
Remove unused variable.
|
2014-03-20 17:26:22 +01:00 |
|
Jürg Lehni
|
833d71f7ea
|
Remove Item#type and replace it with Item#className, the non-hyphenated version of #type.
|
2014-03-18 11:42:38 +01:00 |
|
Jürg Lehni
|
2a3f0646f0
|
Fix exception in _getMonoCurves() when path is empty.
Closes #427.
|
2014-03-17 14:58:40 +01:00 |
|
Jürg Lehni
|
438de7013a
|
Correctly handle groups as clipping masks.
Closes #370.
|
2014-03-17 14:51:47 +01:00 |
|