# Signal Flow
## 2D SketchWidget

- 2D QPoint form custom Qpainter widget in linear space
- 2D QPoint ot cartesian space
- 2D tuple into slvspace dict system and solvespace 
- get calced position from Solvespace solver
- add to internal reference dict 
- Transform to linear QPainter space for display to show

## 3D custom Widget

- Take Tuple points form solvespace main dict
- Draw Interactor and sdfCAD model

### Select and Project

- Project cartesian flattened mesh into 2D 
- Transform to 2D xy
- Transform to linear space for 2D widget to draw.
- Result into 2D cartesian for body interaction extrude etc

### Elements

So far these are the elements: 

- Project: Main File 
- Timeline : Used to track the steps
- Assembly: Uses Components and Connectors to from Assemblies
- Component: Container for multiple smaller elements "part"
- Connector: Preserves connections between parts even if the part in between is deleted
- Code: A special type that directly builds bodys from sdfCAD code.
- Body: The 3D meshed result from sdfCAD
- Sketch: The base to draw new entities.
- Interactor (edges): A special component mesh that is used to manipulate the bodys in 3d view.