edemaine / cocreate

Cocreate Shared Whiteboard/Drawing
MIT License
209 stars 27 forks source link

Lasso select tool (feature request) #115

Open duetosymmetry opened 3 years ago

duetosymmetry commented 3 years ago

Freely-drawn selection boundaries are a pretty commonly-expected tool. This would involve point-in-polygon (PIP) detection, which if I understand correctly is not implemented in SVG across all browsers. But, there are already JS implementations of common PIP methods (e.g. this one; not specifically advocating for this one, it was just the first one I found).

edemaine commented 3 years ago

Related: #17 mentions this; #87 is about rectangle intersection algorithms which we need anyway (Chrome's implementation is incorrect; Firefox doesn't have one). So perhaps this and #87 should be done together, to make sure we use a library (or algorithm set) that supports both lasso and rectangle solution (though I guess the latter is a special case; it can probably be done faster).

By the way, I don't think I know any web-based whiteboards that support lasso selection. But I agree that it's common among non-web-based tools.

duetosymmetry commented 3 years ago

By the way, I don't think I know any web-based whiteboards that support lasso selection

Google's Jamboard has Lasso select, and otherwise a pretty decent UI interface, but lacks infinite scroll and arbitrary zoom. I've been using Jamboard for student meetings but am going to switch to cocreate. I think the Jamboard UI for navigating/editing pages (and seeing on which page are other viewers) is quite nice, and could serve as useful inspiration cocreate.

edemaine commented 3 years ago

Google's Jamboard has Lasso select, [...]

Hmm, how do you do lasso select in Jamboard? I must be missing something...

duetosymmetry commented 3 years ago

I wrongly assumed the web interface was the same as the (Android) app, which has a Lasso tool. Mea culpa. I was used to using the app.