* Intital async of executor
The execture now sends websocket message instead of calling functions
directly from the engine, When it does so it holds onto the id.
The engine is still returning geo/polys directly but I'm working make it
so that the UI doesn't need to know about that, so that we can switch
over the streaming ui.
Things left to do:
- it is still making both direct function calls and websockets, and the former should be removed.
- It does highlighting of segments and sourceRanges not through websockets and that needs to be fixed.
- Tests have not been adjusted for these changes.
- Selecting the head of a segment is not working correctly again yet.
* Rough engine prep changes (#135)
* rough changes for engine prep
* mouse movements working again
* connect to engine for startsketch, line, close and extrude
* setup to get path to nodes back from ast-mods
* fix cursor setting for constraint buttons that use transformSecondarySketchLinesTagFirst
* fix cursors for constraints that use transformAstSketchLines
* some clean up
* Change perpendicular-distance constraint to something more intuitive to setting parallel distance
* delete
* add back
* force rename
* change name back
* try renaming again
If you have a yLine(-5, %) i.e. it's values is negative -5 than when constraining it to the length of another line, it should take the sign into account and transform it to yLine(-segLen('someSeg', %), %), currently it always does it positively i.e. yLine(segLen('someSeg', %), %) which is jaring for users to see the line they are constraining to flip direction.
* Refactor getNodePathFromSourceRange
getNodePathFromSourceRange wouldn't go as deep as it should have,
stopping at pipe expressions, when it should have followed as deep
into the ast as possible.
The fact that it stopped early then had other part of the code base that
expected this behaviour and it effected a lot, so a rather large refactor
* overhaul of getNodePathFromSourceRange
* quick fix for moreNodePathFromSourceRange
* minor bugs in moreNodePathFromSourceRange
* couple more tests
* add moveValueIntoNewVariable
* add UI for replacing valuse with variable
* update button text
* remove stream video controles
* Add mouse position logging
* clean up
* add todo
* Move mouse position into the same useEffect as the stream setup, so that it has access to socket
That will be useful when we're ready to send to the server
* make todo comment better
* button style tweak
* Remove duplication constraint ast transforms
* giveSketchFnCallTag to return if line already had a tag
* remove duplication
* update tag name to referenceSegName
* Update transform shape to return key details about the transform
* add modal to hor vert distance workflow
* fix browser env stuff from breaking tests
* fmt