Jürg Lehni
26761f17a1
Some minor clean-ups for 55cf0bc1c7
.
2016-01-03 01:13:03 +01:00
Jürg Lehni
55cf0bc1c7
Improve and simplify handling of start segments.
...
Removing findStartSegment() and merging functionality into findBestIntersection() leads to simpler code and solves some remaining issue, e.g. https://github.com/paperjs/paper.js/issues/784#issuecomment-153282113
2016-01-03 01:08:11 +01:00
Jürg Lehni
9404c5a0e3
Restructure code from #883 a bit
...
- Use === instead of == for strict numeric comparisons
- Merge the two return statements to one
- Address some imprecisions in previously added comments
2016-01-02 23:39:13 +01:00
iconexperience
ebaccf6e2d
Add break condition for exactly collinear curves to prevent a very time consuming clipping process that cannot have a result.
2016-01-02 19:08:42 +01:00
Jürg Lehni
3234975e46
Include comment about methods produced on the fly.
...
For easier searching.
2015-12-31 18:32:56 +01:00
Jürg Lehni
fa15b083b0
Go back to matching curve beginnings / ends with GEOMETRIC_EPSILON.
...
This is possible because we're handling the special line case separately before already.
2015-12-31 14:23:16 +01:00
Jürg Lehni
f8791f2be5
Perform bounding box checkes with GEOMETRIC_EPSILON
...
Closes #878
2015-12-31 10:21:38 +01:00
Jürg Lehni
df24de0fdf
Optimize fat-line clipping code a bit further.
...
We don't need to calculate v1Clip and tDiff if oldTDiff > 0.5 && tDiff > 0.5.
2015-12-30 23:19:58 +01:00
Jürg Lehni
f19bdf9834
Remove unrequired testContains parameter.
2015-12-30 21:55:22 +01:00
Jürg Lehni
92904e95c2
Address proposal by @iconexperience in #869 and shorten code.
...
Closes #877
2015-12-30 21:55:22 +01:00
Jürg Lehni
943c4bba91
Improve horizontal check for sampling points in propagateWinding()
...
Relates to #875 , needs more testing.
2015-12-30 21:55:21 +01:00
Jürg Lehni
62a23662fa
Unify handling of insert
parameters.
2015-12-30 21:55:21 +01:00
Jürg Lehni
44f98ee094
Replace all mention of DOM in the documentation with scene graph.
2015-12-30 21:55:21 +01:00
Jürg Lehni
c0a2e0ec63
Support insert parameter again in #toShape() / #toPath()
2015-12-30 21:55:21 +01:00
Jürg Lehni
060ab5e7f9
Only mark overlap segments as visited during #intersect().
2015-12-30 21:55:21 +01:00
Jürg Lehni
f4f46fa985
Implement optimization suggested by @iconexperience in #869
2015-12-30 21:55:20 +01:00
Jürg Lehni
0e427c16a2
Fix some white-spaces in comments and HTML.
2015-12-30 21:55:20 +01:00
Jürg Lehni
bf65866b58
Port over boolean #intersect() fix from c6b1a8067f5045e94294735a21aa2fa222fbb2a1
...
Relates to #870
2015-12-30 21:55:20 +01:00
Jürg Lehni
fa9698aaaa
Revert back to always call #setClockwise() in #resolveCrossings()
...
This solves some regressions, e.g. https://github.com/paperjs/paper.js/issues/869#issuecomment-167586249
2015-12-30 21:55:20 +01:00
Jürg Lehni
4d13f0e1e0
Simple optimization in PathItem#contains()
...
Perform a handle bounds check before calculating winding, as described by @iconexperience in #869
2015-12-30 21:55:20 +01:00
Jürg Lehni
5c976420f8
Further improve #resolveCrossings() based on discussion with @iconexperience.
...
Closes #869
2015-12-30 21:55:20 +01:00
Jürg Lehni
d6a8538674
Fix overlap handling for boolean intersection.
...
Closes #870
2015-12-30 21:55:20 +01:00
Jürg Lehni
b5a38ae5ec
Fix orientation handling in new #resolveCrossings().
...
Closes #869
2015-12-30 21:55:20 +01:00
Jürg Lehni
ecad1c6a0d
More code clean-ups and simplifications for #852
2015-12-30 21:55:20 +01:00
Jürg Lehni
973491f962
Some code-clean up for #852
...
Mainly to make it fit into the 80 char line lenght.
2015-12-30 21:55:20 +01:00
Jürg Lehni
d67796f655
Some more documentation work.
2015-12-30 21:55:19 +01:00
Jürg Lehni
32cf1ba69e
Partly revert "Treat overlaps as crossings as well."
...
This partly reverts commit deafacdad0
and closes #868
2015-12-30 21:55:19 +01:00
Jürg Lehni
a7a07fb6d5
Update JSDoc and do some documentation spring-cleaning.
...
- Convert from {@code ...} to shorter `...`
- Reformat some documentation comment blocks
- Update copyright notices
2015-12-30 21:55:19 +01:00
Jürg Lehni
7d25096de6
Fix new failing #isCrossing() test-case.
2015-12-30 21:55:19 +01:00
Jürg Lehni
a20b0469d6
Correctly keep track of all straight curves that need their handles cleared at the end.
...
Closes #838
2015-12-30 21:55:19 +01:00
Jürg Lehni
08d75a48ff
Fix issue again with param.overlapping in #getItems()
...
This time, properly!
Closes #751
2015-12-30 21:55:18 +01:00
Jürg Lehni
93a5e2d18c
Refine some code comments.
2015-12-30 21:55:18 +01:00
Jürg Lehni
7592895445
Big overhaul of CurveLocation#isCrossing()
...
Improved to better handle touching curves and edge cases involving straight curves.
Closes #865
2015-12-30 21:55:18 +01:00
Jürg Lehni
83b53cb9e0
Fix a few edge cases in cloning and copying of attributes.
2015-12-30 21:55:17 +01:00
Jürg Lehni
2fea40f86f
Introduce new Item#copyAttributes() & #copyContent(), and revamp #clone() handling.
2015-12-30 21:55:17 +01:00
Jürg Lehni
463f50a0c1
Adjust comment by @iconexperience.
...
As outlined here: https://github.com/paperjs/paper.js/issues/854#issuecomment-167334294
2015-12-30 21:55:17 +01:00
Jürg Lehni
386632b0be
Implement new version of #reorient() and merge with #resolveCrossings()
...
As proposed by @iconexperience in #854
2015-12-30 21:55:17 +01:00
Jürg Lehni
a5f05c90f5
Rename #windingRule to #fillRule.
...
...keeping deprecated aliases on Style and Item around for now.
Closes #858
2015-12-30 21:55:17 +01:00
Jürg Lehni
086485dc95
Minor code clean-up.
2015-12-30 21:55:17 +01:00
iconexperience
b19bc5aaf4
Smaller improvements in addCurveIntersections()
2015-12-30 21:55:16 +01:00
iconexperience
0e3ac9d7f4
Handle cases when point y is equal to y of horizontal curve in path
2015-12-30 21:52:34 +01:00
sapics
9c1c00c11e
Minor minification
2015-12-30 21:52:34 +01:00
iconexperience
c0a5739254
Change addCurveIntersections() to handle cases when tDiff == 0
2015-12-19 10:48:31 +01:00
Jürg Lehni
deafacdad0
Treat overlaps as crossings as well.
...
This solves https://github.com/paperjs/paper.js/issues/784#issuecomment-153085486 , simplifies code quite a bit, and does not cause any new issues.
2015-11-04 01:19:20 +01:00
Jürg Lehni
f32a1def6e
Only complain about open paths in boolean ops when they are long enough.
2015-11-02 18:21:19 +01:00
Jürg Lehni
9a772678a8
Clean up #816 a bit.
...
Closes #815 also.
2015-10-28 22:17:44 +01:00
Tomas Junnonen
09d4de6a1b
Issue 815: Cannot add segment to Path after removing last segment
...
Fixed an issue where after removing the last segment of a path,
new segments cannot be re-added.
Added new Path Curve test cases to test the difference between
a path with one and no segments (zero curves in both cases), which
catches the bug.
2015-10-28 12:15:07 -04:00
Jürg Lehni
8eb0dcc87d
Fix various JS linting problems.
2015-10-27 23:35:30 +01:00
Jürg Lehni
238801e485
Improve docs for boolean operations.
2015-10-25 09:41:43 +01:00
Jürg Lehni
e9d54a05f0
Minor change in the way #reorient() is called.
2015-10-24 23:13:13 +02:00