face
The face editor: a graph of nodes, connections and triangles, a spreadsheet of formulas, and their OPAL tasks.
| Group | face |
Detailed description
A face::Project holds a face::Graph, its face::Style, a face::Player and a face::ExpressionsRegistry, and reads and writes the project file. The graph holds face::Node, face::Connection and face::Tri items and runs a spring simulation on them. face::GeometryEngine triangulates the nodes, and face::NodeView edits the graph.
face::SpreadSheet edits a sheet of cells. face::SpreadsheetEngine compiles the formulas of the cells with libeval and evaluates them.
The OPAL tasks in this namespace let an LLM evaluate and validate an expression, and examine how libeval lowers it.
Classes
| Class | What it is |
|---|---|
| CellData | Data structure for spreadsheet cell content |
| CellDelegate | Item delegate for spreadsheet cell editing |
| Connection | Edge connecting two nodes in a graph |
| ConnectionParameterWidget | Property editor for Connection parameters |
| EditMultipleCommand | Undo command for editing multiple spreadsheet cells |
| ExpressionsRegistry | Registry for compiled face expressions, evaluated each step |
| GeometryEngine | Delaunay triangulation and connection algorithms |
| Graph | Container for nodes, connections, and triangles |
| Node | Vertex in a face node graph |
| NodeParameterWidget | Property editor for Node parameters |
| NodeRenameDialog | Modal dialog for renaming nodes |
| NodeView | Interactive visual editor for face node graphs |
| OpalEvaluateExpressionTask | OPAL task wrapping eval::evaluate() for LLM-driven expression evaluation |
| OpalLoweringCompareTask | One expression, two lanes, and whether they agree |
| OpalLoweringExplainTask | Which lane would run this expression, and why |
| OpalSheetCompileStatusTask | What the session sheet compiles to, and what stops it going wider |
| OpalSpirvDumpTask | SPIR-V the front end emitted, disassembled |
| OpalValidateExpressionTask | OPAL task that parses + type-checks a candidate expression |
| Player | Animation timer for face project playback |
| Project | Top-level container for face graph editor |
| SpreadSheet | Spreadsheet widget with formula support |
| SpreadSheetModel | Data model for spreadsheet cells |
| SpreadsheetEngine | Evaluation engine behind a sheet of cells |
| Style | Descriptor (colours, line widths, fills) for the face renderer |
| Tri | Triangle element in node graph mesh |
| TriParameterWidget | Property editor for Tri parameters |