booleanContains doesn't handle concavity
Open
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 10.5k
- Forks
- 1k
- Avg merge
- 1h 11m
- Merged PRs (30d)
- 4
Description
Similar to #2441
Example:
const outer = polygon([[
[0, 0],
[1, 0],
[1, 1],
[0, 1],
[0, 0]
]], {fill: '#ff0000'});
const inner = polygon([[
[0, 0],
[0.5, 0.5],
[1, 0],
[1, 1],
[0, 1],
[0, 0]
]], {fill: "#00ff00"});
// Should be false, but is true
const contains = booleanContains(inner, outer);
Clearly, red is not contained by green.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the booleanContains entry point and reproduce the concave polygon example from the issue. Trace how containment is determined for concave shapes, then add a regression test showing that the red outer polygon is not contained by the green inner polygon; done means the example returns false.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- data
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100