Core and the app · crate
kinogaki-editor
Kinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one.
- Repository
- Core and the app (kinogaki/studio-core)
- Folder
studio/core/editor- Source
- 136 files, 35,985 lines
- Tests
- 70 files, 17,392 lines
What it is
Kinogaki Studio's editor: the document and everything the window shows of it, as parts one frame borrows one by one.
| Part | Module | What it owns |
|---|---|---|
| Document | core/document | the scene, networks, undo, where the user is, picks, slots |
CookState | cook | the scene cook, the results it published, packages' latest-wins jobs |
ViewState | view | the views and the transform tool |
Panes | panes | the docked panes: the network pane over every level |
ImagePipeline | core/image-pipeline (painted by paint) | the render engines the packages brought, live renders, the canvas's compositor, swatches, final writes |
Shell | shell | the document's file, file dialogs, the status line, frame input, services; holding the state of: |
commands | key stores, the menu bar, marking menus, Repeat, tools, shelves | |
settings | the user's settings, their file and the Settings window | |
log | the Console's log | |
places | where the frame's items drew (the harness's and --script's) | |
Packages | packages | the installed packages and each one's UI state |
What a part reports to the harness it records into a probe (probe), which holds data only with the harness feature; the part's readers sit in one place gated on it.
A part's fields are private to its module and a part never names Editor; frame alone names them all (the harness's readers, frame/drive, among its files). It destructures the editor and passes each part what it reads, so no part is shared or locked. A package's UI is called with a HostCx built from the parts (host): the SDK's host interface and nothing else.
No timers. Background work (the cook, opens and saves, packages' workers) takes the window's wake when it is made and wakes the UI once per result; a frame runs only when input arrives or something woke it.
Depends on
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-anim | Core and the app | normal | Studio's animation channels. |
kinogaki-color | lib-color | normal | Color science and color management for Kinogaki. |
kinogaki-color-service | Core and the app | normal | Studio's color service: the OpenColorIO config (lib-color's built-in ACES 2.0 CG config, or a file), the working space, and the viewer's display, view, look, exposure and gamma. |
kinogaki-cook | Core and the app | normal | Studio's core cooking engine, the same for every network kind (the owner's rule: the cooking DAG for nodes is core's). |
kinogaki-core-package | Core and the app | normal | Core's own SDK package (kinogaki.core): what Studio holds whatever plugins are installed. |
kinogaki-dialogs | lib-ui | normal | Native file dialogs behind one API: open one file, open several, save, or choose a directory, with file type filters, a starting directory and a suggested name. |
kinogaki-document | Core and the app | normal | Studio's document: the scene, a tree of objects under one root, and the core network each object of a kind naming a context holds. |
kinogaki-geometry-view | Core and the app | normal | Geometry, curves and B-reps in the viewport, independent of any GPU API: the SDK's standard values as surface packets (over the SDK's display triangulation and shading normals, so Solid draws what Render renders), the one picker that answers rays and boxes ... |
kinogaki-image-pipeline | Core and the app | normal | ImagePipeline: what renders become on screen and in files. |
kinogaki-math | lib-math | normal | Kinogaki's vectors, points, matrices, quaternions and deterministic elementary functions. |
kinogaki-network | Core and the app | normal | Studio's core networks (design: core-owned networks; "Cooking DAG for nodes is studio core"). |
kinogaki-plugin-host | Core and the app | normal | Studio's plugin loader. |
kinogaki-prism | lib-prism | normal | Prism documents for Kinogaki. |
kinogaki-project | Core and the app | normal | Studio's project files: a document as a Prism document. |
kinogaki-properties | lib-ui | normal | Property schemas: what an inspector shows, as data. |
kinogaki-render-api | SDK | normal | Kinogaki's render interface: what a host (Studio) sends a render engine and what comes back, with no GPU or OS API. |
kinogaki-scene | Core and the app | normal | Studio's scene: the document cooked object by object. |
kinogaki-sdk-ui | Core and the app | normal | The plugin SDK's UI layer over lib-ui: the SDK's Ui and Painter, its sheets and the host's services, implemented over lib-ui. |
kinogaki-spans | Core and the app | normal | Timed spans of Studio's own work: where a frame, a cook or a render sync spends its time, without an instrumented build. |
kinogaki-studio-api | SDK | normal | Kinogaki Studio's headless plugin API. |
kinogaki-studio-ui-api | SDK | normal | Kinogaki Studio's UI layer for plugins. |
kinogaki-ui | lib-ui | normal | Kinogaki UI: the immediate-mode UI framework Kinogaki applications are built on. |
kinogaki-ui-shell | lib-ui | normal | Kinogaki UI's native shell: opens the windows, runs the winit event loop, turns window events into kinogaki_ui input, paints each frame with kinogaki-ui-wgpu and drives an App. |
kinogaki-ui-wgpu | lib-ui | normal | kinogaki-ui drawn with wgpu. |
kinogaki-viewport-core | lib-viewport | normal | Kinogaki viewport core: what a 3D viewport shows, independent of any GPU API or UI toolkit. |
kinogaki-viewport-gpu | lib-viewport | normal | Kinogaki's wgpu viewport renderer: pipelines, retained GPU buffers, offscreen multisampled targets and owned WGSL shaders. |
kinogaki-viewport-ui | lib-viewport | normal | Kinogaki viewport widgets for Kinogaki UI (lib-ui): one/four-view layout, camera navigation, the six-axis view cube, transform gizmo handles and point number labels. |
For its tests alone
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-harness | Core and the app | tests | Studio's test harness: the real editor, its event routing and its background work, driven offscreen with only the packages a test names. |
kinogaki-studio-api-testing | SDK | tests | The SDK's test support (a dev-dependency only): assert_refused for admission tests, read_hostile for a format's tests of hostile files, format for its scratch folders and round trips, workers as a host installs them, with wgpu an ... |
kinogaki-testkit | Core and the app | tests | Kinogaki Studio's core testkit: toy packages written against the SDK alone, so core is tested with no real plugin. |
Third-party
| Crate | Version | Licence | Frozen in | As | Also used by |
|---|---|---|---|---|---|
log | 0.4.34 | MIT OR Apache-2.0 | lib-ui/vendor | normal, tests | kinogaki-image-pipeline, kinogaki-scene, kinogaki-shared, kinogaki-ui, kinogaki-ui-shell, kinogaki-ui-wgpu |
objc2 | 0.6.5 | MIT | lib-ui/vendor | normal | kinogaki-dialogs, kinogaki-spectre, kinogaki-ui-shell |
objc2-app-kit | 0.3.2 | Zlib OR Apache-2.0 OR MIT | lib-ui/vendor | normal | kinogaki-dialogs, kinogaki-ui-shell |
wgpu | 30.0.1 | MIT OR Apache-2.0 | lib-ui/vendor | normal | kinogaki-color-wgpu, kinogaki-composit-wgpu, kinogaki-render-api, kinogaki-shared, kinogaki-ui-shell, kinogaki-ui-wgpu, kinogaki-viewport-gpu |
Used by
| Crate | Repository | As | What it is |
|---|---|---|---|
kinogaki-harness | Core and the app | normal | Studio's test harness: the real editor, its event routing and its background work, driven offscreen with only the packages a test names. |
kinogaki-studio | Core and the app | normal | Kinogaki Studio: the editor in a window, after the plugins load. |
Modules
browser(private)The Tab browser: lib-ui's browser at the pointer, over the network pane or the views.373 linescommands(private)The commands: the key stores and what keys run (keys), the menu bar and the right-click menu (menus), the A, S and D marking menus (marking), Repeat (repeat), the tools' remembered values and adjustments (tools) and the shelves (shelves).26 linescommands::keys(private)Key stores: every key the editor answers, as one table of bindings, each in a store.703 linescommands::marking(private)The A, S and D marking menus: held over the views, a radial menu of eight compass items (North first, clockwise) and a list below South, drawn by lib-ui'sradialwithout icons.474 linescommands::menus(private)The menu bar and the right-click menu over the views as data: each menu's items, built from what applies now and drawn by one drawer; each item's shortcut is the key store's (keys), so what a menu shows, what its key does and what a test reads are the same ...628 linescommands::menus::draw(private)The menus drawn: the bar's through lib-ui's menu bar, the right-click menu over the views, and the library's items in submenus by family.264 linescommands::repeat(private)Repeat, core's for every context: running an item its library marks repeatable (Places::repeatable) over the views (a tool, not a node added from the network) makes it the item Repeat (REPEAT, an item of core's own ...51 linescommands::shelves(private)The user's shelves: whether the shelf shows under the views (Window ▸ Tool Shelf), and the shelves of each set of menus the user changed, whole, by its store (MenuDefaults::store).356 linescommands::tools(private)Tools remember their settings and the last tool stays adjustable, the same for every context's node types (the SDK'sHostTools).156 linescook(private)CookState: the editor's side of the scene cook, and the host's lanes for packages' latest-wins jobs.195 linescook::latest(private)Packages' latest-wins jobs (HostLatestExt::latest): one of core's lanes per package and kind, keeping the kind's last ask.161 linesframe(private)The editor and its frame: the one place that names every part.800 linesframe::calls(private)Calls into packages: each with its state and a host context over the other parts, the open context's parts among them, and what the inspector asked of a package.354 linesframe::drive(private)The surface core/harness drives the editor through (theharnessfeature).96 linesframe::drive::counts(private)What tests count of the editor's work: sheets made, key stores made, and whether the Settings window is open to make them.30 linesframe::drive::menus(private)Menus as the harness reads them: the bar's, the views' right-click menu, the marking menus and the shelf.164 linesframe::drive::panes(private)The panes as the harness reads them: the network, the outliner, the spreadsheet, the Console, the Timeline and the status line.246 linesframe::drive::render(private)Rendering as the harness drives it: Render views, final renders and their progress.57 linesframe::drive::types(private)The plain values the harness reads the editor as.397 linesframe::drive::views(private)The views as the harness reads them: what they draw, mark and preview, their cameras and their controls.262 linesframe::drive::work(private)The work counters the harness reads: what the views and the scene cook did so far, counted, never timed.87 linesframe::files(private)Projects and files: saving, importing and exporting, image files embedded and extracted, a finished open or import adopted, and a new document put in place of the old.309 linesframe::layer(private)The open context's live tools and the keyboard: keys and typed text over the views reach itsLiveTools::keybefore any binding, Escape never: it goes to the first of a handle drag (which puts back the drag alone), the host's modal state (a dialog, a menu, a ...146 linesframe::live(private)The open context's viewport parts, asked around the panes (the views draw inside the dock, where no package can be called;crate::view::live): before them its holds and whether its Gear has rows, then each view's panels, the branch picks into its live ...212 linesframe::offers(private)The frame's half of the menus built from libraries: what the place the user is at offers (Menus), each entry as it shows now (itsWhenheld against the place, its vocabulary'sshownandlabel), and running what was chosen: core's object items ...562 linesframe::outside(private)Files outside the document read again: when the window is focused again, and when the system's file-system events report a change to a file the document reads (a file its nodes' File rows name, a file the image store holds or failed to read: written over by ...66 linesframe::popover(private)The popover open over the views (view::popover), after the panes: the Gear, its rows core's own (the current tool's space, kept per context, while the context takes the host's transform tools: itsTransformspart) and that part's sheet ...197 linesframe::render(private)The views' and engines' rendering: the views drawn this frame rendered with what the open context adds, the render geometry and live engine in step with the document, final renders, and the project's colors.425 linesframe::settings(private)The frame's half of the Settings window: what it lists, read when it opens (the plugins found, the formats Import reads with, the packages' pages, every set of marking menus and of shelves, and every key store with what can be bound there), and each frame the ...371 linesframe::shelf(private)The frame's half of the shelf: what it shows where the user is, built from the user's shelves (else the library's) and what applies now (each tile'sshownasked), kept while what it was built from holds; and what it asked: a tile's item run as the menus run ...227 linesframe::status(private)The frame's half of the status line: what its pieces read, gathered each frame from the document, the cook and the views; the shell makes the pieces again only when that changed (crate::shell::status).70 linesgesture(private)A part's gesture: what a drag of the views, the network pane, the outliner, the timeline or a sheet holds while it lasts.76 lineshost(private)HostCx: the SDK's host interface over the editor's parts, for one call of a package's UI.705 lineslog(private)The Console's log: one bounded, thread-safe record of what the application reported (the cook's errors and warnings, opens and saves, packages throughHostStatus::console, rendering), for the Console pane and the status bar's counts.444 lineslog::sinks(private)What reaches the Console from outside the editor's own code: thelogfacade (wgpu, naga and any crate write to it) at warnings and worse, and panics (a worker that catches its own goes on; the message and its place still belong in the Console).80 linespackages(private)Packages: the installed packages with a UI, each one's UI state, and what their calls queued for after the call.225 linespackages::library(private)The libraries as the menus read them: for where the user is, the held-key menus' defaults, the right-click menu and the menu bar's entries, and every item they may hold, by name, with where it runs.343 linespackages::plugins(private)The plugins of a run, loaded once at startup, before the first editor is made: from the application's plugin folder and the user's (core/plugin-host), but those turned off in the settings; or, given a--pluginslist, exactly the packages it names and what ...73 linespaint(private)What the image pipeline draws, painted by the window: a Render view's image and the canvas's composite as paint callbacks inside the interface's own pass, and the swatches' pictures as textures, each uploaded once.123 linespanes(private)Panes: the panes docked between the menu bar and the status bar (dock): the network pane over every level, the inspector, the outliner, the spreadsheet, the Console, the Timeline, the 2D canvas and the views' slot (E5), the shelf across the bottom of ...440 linespanes::canvas(private)The 2D canvas pane: what the open object's result, or the active object's, paints through its data type'sCanvasfacet, drawn on the GPU (kinogaki_image_pipeline::canvas) and shown through the color service's view transform.738 linespanes::canvas::arrange(private)Arranging a picture's pieces on the canvas, for any context whose values say which node placed each piece (PieceSource) and whose nodes declare Translate, Rotate and Scale handles over their rows.611 linespanes::canvas::laid(private)The geometry of arranging on the canvas, on plain numbers: where a picture's pieces lie, the frame around a selection, what lies at a point or in a box, what a gizmo's drag makes of the pointer, and snapping.619 linespanes::canvas::paint(private)What the canvas draws over the picture while arranging: the picked pieces' outlines, the frame and its handles, a box being drawn and the lines a move snapped to, square and in the accent, as the interface draws everything.57 linespanes::canvas_text(private)A picture's text set: each text piece becomes an image piece in its place among the others, its color (the display's code values: white text is 255) times the text's coverage, at the sizeplacedshows it, one pixel a canvas unit.157 linespanes::console(private)The Console (R4 E4): the Shell's log drawn by lib-ui's console, a view only.67 linespanes::dock(private)The dock's panes and where they sit at first (bced4430's arrangement): on the left the views with the Timeline along their bottom, over the network pane with the spreadsheet and the Console as its tabs; on the right the outliner over the inspector.104 linespanes::inspector(private)The inspector (R4 E4): the sheet of what the user looks at.464 linespanes::inspector::edits(private)What the inspector asks for, as values: the pane reads&Documentand returns these (Asked): edits of the document, which the frame applies withapply, and asks of the frame (Ask).281 linespanes::inspector::keys(private)Keying rows, one way for every sheet: a node's parameters, an object's placement and its kind's rows.132 linespanes::inspector::node(private)A node's sheet, whatever its context: its Name; its type's rows (NodeType::schemaover its description and its spares, at the values cooks read: what subnet parameters drive written in); a Reload under each File row; its held delta's rows ...772 linespanes::inspector::node::edits(private)What the user did to a node's sheet or card, as the inspector's edits: parameter changes (one step per change, a drag's inside its gesture), renames, wire edits, promotions and row actions.259 linespanes::inspector::object(private)An object's sheet: its name and kind, its local transform where its kind has a place in the world (Scale's fields locked together or not), its kind rows (Scene::kind_sheet: a Render Output's own fields, a light's, fog's or Render Output's engine values, a ...326 linespanes::inspector::subnet(private)A subnet's sheet: its name and its interface.273 linespanes::network(private)The network pane (R4 E3): lib-ui's graph canvas over every level the document can show, an object level's tiles or a level of any core network, with the same gestures everywhere.627 linespanes::network::asset(private)Save as Asset…: a window asking what the picked subnet's asset is called (its label, and the name its definition is kept under, which follows the label until it is typed).88 linespanes::network::category(private)What kind of work a node does, which a network shows by color alone (owner 2026-10-25: tiles carry no per-tool icon): lib-ui's graph accent, a bar along the node's left edge and, in pixel art, its title band.86 linespanes::network::commands(private)The network pane's commands: what its right-click menus list and its keys run, in families (Edit, Flags, Actions, Subnet, Hierarchy).348 linespanes::network::edits(private)What the network pane asks of the document, as values: the pane reads&Documentand returns these; the frame applies them withapply.480 linespanes::network::header(private)The bars floating over the network canvas: Up and the breadcrumb at the top left, Frame at the bottom right, each a panel as wide as what it holds so nodes show (and take the pointer) everywhere else.94 linespanes::network::input(private)What the pane runs beside its canvas: its keys and the window's clipboard events while the pointer is over it, the commands those and its menus run on the picks, the in-place rename they start, and Tab and Save as Asset while they ask.163 linespanes::network::level(private)A level of the network pane as plain data, built from the document and the registry (no model trait): an object level's objects as tiles, or a level of a core network: its nodes, subnets and boundaries, their ports colored by their data types and their wires.442 linespanes::outliner(private)The outliner (R4 E4): the scene's object tree by lib-ui's tree view, with a search field over it and the flag columns (Lock, Visible, Template, Render).488 linespanes::probe(private)What the harness reads of the panes (theharnessfeature).67 linespanes::shelf(private)The shelf (Window ▸ Tool Shelf): lib-ui's Alias-style shelf across the bottom of the views' pane, or the canvas's where a context works on it, the pane and its toolbar above it.186 linespanes::spreadsheet(private)The spreadsheet (R4 E4): the tables the shown value's data type gives (itsTabularfacet), one tab a domain, a column a value of a row: vectors as components (.x .y .z,.r .g .b .a,.u .v), matrices as[r][c], arrays as their length and first items ...172 linespanes::spreadsheet::model(private)The spreadsheet's model of one table of one value: its sub-columns, the sort order and the block of rows on screen, built when the value, the table or the sort changes and read when the rows on screen do (never every frame).348 linespanes::timeline(private)The Timeline (R4 E4): lib-ui's time slider over the scene's time (Document::time), in frames at the range's rate, with a tick at each key of the inspected node.324 linesplaces(private)Where the frame drew what a driver may point at (menu titles and items, a modal's buttons), by label path, and the texts a context's live tools painted over each view: the harness's locators and a--script's@namesread it instead of the editor's state.154 linesprobe(private)Probe: what a part reports to the harness, held only in builds with theharnessfeature.69 linessettings(private)The user's settings, kept as a Prism text document (settings.prisma) in the user's configuration folder:542 linessettings::color(private)The user's color settings (def color "color"in the settings file) and Settings ▸ Color: the viewer's display, view, look, exposure and gamma.143 linessettings::import_page(private)Settings ▸ Import: File ▸ Import's options, one format at a time, chosen from a Format dropdown, as the format's own rows for reading a file's items as objects (FileFormat::schema,Purpose::Objects) over the draft's options of it (its defaults until the ...96 linessettings::marking_page(private)Settings ▸ Marking Menus: the menus' size, and for each set of menus (the object levels', each package's), each held key and each level, the eight compass items and the list below South.305 linessettings::shelves_page(private)Settings ▸ Shelves: for each set of shelves (the object levels', each package's), the shelves in order with their items.256 linessettings::shortcuts_page(private)Settings ▸ Shortcuts: one key store at a time (Global, the viewport's, the network's, each package's).193 linessettings::transform(private)The transform tools' user settings: the space each tool works in, per context, and snapping (on or off, Rotate's and Scale's steps, how near the pointer a target must be).328 linessettings::window(private)The Settings window (File ▸ Settings…, ⌘,): lib-ui's settings window over a draft of the user's settings, applied on OK or Apply, dropped on Cancel.470 linessettings::writer(private)The settings file written on a worker of its own: a change hands it the text; the worker writes the newest text it holds (changes that come while it writes are coalesced into one write), wakes the window with a failure, and the UI thread never waits on the ...136 linesshell(private)Shell: the application around the document: the system's file dialogs, the document's file and its opens and saves, the status line, what this frame's input says, and the services every worker wakes the window through.530 linesshell::chrome(private)The window's chrome around the workspace: the menu bar with the document's name and the status bar with the status line.142 linesshell::clipboard(private)What Copy and Cut put on the system clipboard.98 linesshell::confirm(private)"Save changes?": asked before an action that leaves the document, and the windows over everything it shows in.68 linesshell::dialogs(private)File dialogs: the editor asks, the system's panel answers later and wakes the UI, and the answer becomes an action in the next frame.147 linesshell::files(private)The document's file: where it is, what it kept unread, and the open, save, import, export, embedding or extracting under way.299 linesshell::machine(private)What the shell asks of the machine.113 linesshell::objects(private)The object levels' library (the scene root and a Part), in core's own vocabulary: the creations (core's Part and Camera, the installed kinds'), the commands on the selected objects and the object selection's.291 linesshell::probe(private)What the harness reads of the shell (theharnessfeature): every probe of the shell's state is here.72 linesshell::status(private)The status line's own pieces, beside the problems the shell keeps (the error, the progress, the Console's counts): on the left where the user is and what the selection holds, on the right the cook, the grid step and the up axis.195 linesview(private)ViewState: the viewport.531 linesview::apply(private)What the user asked of the document in the views, done to it (apply), and the gestures the views' drags hold.107 linesview::branches(private)Branch picks: while the open context's live tool works on a node (its viewport layer'slive_node), the open network's templated branches are picked in the views through the shown value's type (ObjectPicking::piece_rayon each template piece).148 linesview::camera_menu(private)A view's name at its top is its Camera menu: the Camera objects to look through (while there are any), the view's own Perspective, axis and isometric views, Camera from View, and Render (while an engine is installed), which shows the active render in the view.84 linesview::cameras(private)The views' cameras and display options, held here and nowhere else: one or four views (Top, Perspective, Front and Right), the active one, each view's camera, the installed packages' values of it (core's among them: what it draws,ViewDisplay) and its ...520 linesview::chrome(private)Core's controls over the views: each view's buttons and Camera menu, the popovers they open, the Tab browser, the toolbar's choices and what the controls cover of the views.227 linesview::components(private)Picking the open object's components: what lies under the pointer, or in a box, on its shown value's own surface, as the value'sComponentsthrough its type'sPickable.499 linesview::display(private)A view's Display popover, core's own beside its Camera menu: what the view draws, each view's own (saved with the project's view, never undone, nothing cooks).395 linesview::drag_events(private)The events a view's drag reads, one way for the transform gizmo and the declared handles: a drag takes the events of the view it began in alone (of_view), and each event reads as what it does to a drag (read): a press that may begin one, a move, the ...68 linesview::drawn(private)What the views draw of the scene: every shown object's pieces from the board, each placed by its object's world, in the look its role, its flags and the selection give it.416 linesview::edit(private)What the frame lends the views (Reads) and what the user asked of the document in them (Edit).175 linesview::edited(private)What the open context adds over its object in a view: theEditedits display part returns each frame, as the views draw it over the packet core prepared from the shown value.74 linesview::glyphs(private)Objects drawn as lines where they are (a camera's frustum, a light's shape): the glyphs of every kind with theGlyphsfacet, placed by their objects' worlds, drawn as world-space scene lines with the rest of the scene, picked by the pointer's distance to ...284 linesview::gpu(private)The views on the GPU: lib-viewport's renderer drawing each shown view into its own texture, which the view's pane paints.315 linesview::gpu::probe(private)What the harness reads of the renderer.36 linesview::handles(private)Declared and cooked handles (Houdini's handle bindings, Maya's manipulators): the handles a node type's description binds to its parameters and those its cook places on its result (Outputs::handles), or those an object kind gives its objects (a spot's ...520 linesview::handles::drag(private)What a drag of a declared handle's part writes: the values at the press, moved as the pointer says, kept to the handle's constraint and range and to the parameters' limits, and snapped while snapping is active (positions and lengths to the grid, turns by the ...370 linesview::handles::paint(private)How declared handles look: the gizmo kinds as the transform gizmo, the rest as accent lines and dots (the lit one larger).135 linesview::handles::shape(private)Where a declared handle's parts are in a view and which one a point is over: the transform gizmo's frame for the gizmo kinds, and the dots and rings of the others, each in the handle's place (its frame in its space) and from its anchor.448 linesview::handles::target(private)Whose handles a view shows, and how their values are written.179 linesview::harness(private)What the harness reads of the views (theharnessfeature).97 linesview::input(private)The views' input: handles and the gizmo, hover, clicks and the marquee on objects or the open value's components, the pivot pick and the views' keys.593 linesview::instance_marks(private)The open object's marked instances: the placements of those selected and of the one under the pointer, as extra scene objects drawn over the rest.94 linesview::levels(private)The open context's selection levels in the views: the level row at the top left of the view pane (the levels the context declares, then its preset), and the number keys over a view (the viewport's key store'sLevelandAddLevel).315 linesview::live(private)The open context's live tools over the views.154 linesview::looks(private)The colors and images the views shade pieces in: each shown value'sLookasked for each of its pieces against the scene's Materials (the render geometry's one store, asDisplays).104 linesview::moving(private)A drag of the open polygons' points, previewed over the shown value: theEdited::movingthe open context hands each frame, shown through geometry-view'sDragPreview.147 linesview::node_values(private)Nodes' values the open context has core draw (Edited::ghosts, each in its tone's theme role) or snaps its tools on (SnapOn::Node).130 linesview::objects_frame(private)The object level's gizmo frame: the selected objects' pivots and the box of their subtrees as the views draw them (ViewState::objects_frame), and the boxes F frames (ViewState::objects_bounds).143 linesview::pick(private)Picking objects at an object level through their results' types (ObjectPicking): the nearest surface under the pointer, and every object a marquee touches.173 linesview::popover(private)The viewport's popovers: the Gear at the foot of the left toolbar (the transform tool's settings here: its space, core's own row, then the open context's rows, itsTransforms::gear), shown while it has rows; and each view's Display beside its Camera menu ...229 linesview::press(private)Whose the pointer's press is: the camera's or the views' tools', never both.99 linesview::render(private)The views' images: each view's texture or render painted, then rendered at the frame's end with what the open context adds over its object; the drag preview, the marked selection and the tools' snaps.255 linesview::snaps(private)A context's tools snapping in a view (ViewCx::snap): the same search as the gizmo's (Probe) over one value (an object's shown value or a node's,super::node_values).56 linesview::space(private)The views' tapped key (Space by default,ViewKey::Views): a tap — a press and its release within half a second, with no other key or button between — shows four views or the one under the pointer, on the release; its fill key pressed while it is held ...157 linesview::through(private)Looking through Camera objects, as Maya does: a view bound to a camera shows what its lens sees (projection, view angle, film shape, clipping and roll), and navigating that view moves the camera, one undo step a drag or a scroll (an orthographic camera's zoom ...351 linesview::toolbar(private)The left toolbar of every view: manipulation only (owner, 2026-10-20), the same set in every context, in the middle of the views' height.90 linesview::transform(private)The transform tool every context shares: Q (Select), W (Move), E (Rotate), R (Scale) and T (the Manipulator); the space each tool works in; snapping and its steps; and the gizmo's drags (drag, typed values intyped).682 linesview::transform::drag(private)One gizmo drag, from press to release: what it makes of the pointer.179 linesview::transform::entry(private)The numeric bar at the bottom center of the active view (owner round 3): with objects selected and Move, Rotate or Scale on, the pivot button, then the active object's translate, rotate or scale (objects) as three fields, X, Y and Z in the axis colors, in ...199 linesview::transform::objects(private)W, E, R and T on the objects of an object level.195 linesview::transform::pivot(private)The transform pivot (owner, 2026-10-20): the point the gizmo sits at and Rotate and Scale turn and scale about, chosen from the numeric bar's pivot button.322 linesview::transform::selection(private)The gizmo inside an object, for the open context's selection (G7): while its viewport parttransforms(), the handles sit at the pivot resolved against what its levels'pivotgives, along the user's space in the open object's space, and each step of a drag ...82 linesview::transform::snap(private)Snapping a gizmo drag to targets.624 linesview::transform::typed(private)A value typed during a gizmo drag: digits, arithmetic and units (as the sheet's number fields take them) set the drag's distance, angle or factor exactly.108 lines
Public types and traits
At the crate root
Structs EditorLaunchOptionsPlugins
By module: 3 public types and traits in 2 modules
frame EditorLaunchOptions
packages::plugins Plugins
