Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interactivity: todos #80

Open
8 tasks
luucvanderzee opened this issue Mar 20, 2019 · 1 comment
Open
8 tasks

Interactivity: todos #80

luucvanderzee opened this issue Mar 20, 2019 · 1 comment
Assignees
Labels
component Features or graph components discussion Discuss! enhancement New feature or request mark Base marks

Comments

@luucvanderzee
Copy link
Collaborator

luucvanderzee commented Mar 20, 2019

Stuff that is still on the list for interactivity:

  • Some 'zooming' functionality. In Vega, 'zooming' is just done by changing the scaling of the coordinate system, and cropping everything that is supposed to be outside of your 'viewport' out with a clipPath. For our library, maybe we should have a separate zoom prop rather than doing everything with the scale-x and scale-y. This zoom prop can just receive a magnifying factor, or maybe just another domain specification to zoom to. I think we might also need to do cropping, but for a big part we can use our spatial index to just not draw stuff that is outside of the viewport.

  • Better support for polar coordinates. We can now just use our regular rectangular selection tools to make selections in polar coordinate systems, but it would be cool to have some selection tools that are specifically designed for polar coordinates, like a rectangle tool that moves clockwise through the coordinate system. This would also involve the currently not working $$inverseTransform for polar coordinates, which I haven't figured out how to do yet.

  • Line/MultiLine/other lines: improve collision detection. First, I think we should definitely store the line segments as separate items in the spatial index, that would immensely improve the performance. Second, I am not sure if the current method for collision detection is good. Maybe it would be faster to just treat lines a very thin polygons and store them like that instead.

  • For all marks, right now, a mark will be included in the selection if its centroid is inside of the drawn selection rectangle/polygon. I am not sure if this makes sense? Maybe for lines you would want to include all lines that intersect the selection shape? And maybe in some cases you would also want this for polygons?

  • Move addToSpatialIndex logic to watcher that is only triggered when necessary, instead of updating the spatial index on every render and using our own weird caching system.

  • Add interactivity for Labels?

  • Drag events, maybe with .sync?

  • Refactor the code a bit, to make it more readable?

Any other requests for interactivity features?

@luucvanderzee luucvanderzee added enhancement New feature or request component Features or graph components mark Base marks discussion Discuss! labels Mar 20, 2019
@luucvanderzee luucvanderzee self-assigned this Mar 20, 2019
@atepoorthuis
Copy link
Contributor

Looping in @johsi-k for the 'drag' type functionality.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component Features or graph components discussion Discuss! enhancement New feature or request mark Base marks
Projects
None yet
Development

No branches or pull requests

2 participants